【发布时间】:2013-02-02 17:21:26
【问题描述】:
我知道可以将 Xlib 和 OpenGL 与 GLX 一起使用(我自己用 C 语言完成了)。
问题是,我如何在 python 中做到这一点? OpenGL 模块具有 GLX 功能 [documentation],但它似乎使用 C 类型,我不知道(其他人也不知道)如何将 xlib types 与 PyOpenGL 一起使用。
我也尝试使用 ctypes 并直接加载库,但在尝试使用 Xlib 头文件中定义的 C 宏时遇到了(明显的)问题,例如 DefaultRootWindow。
我是否遗漏了一些明显的东西,比如 PyOpenGL 有自己的 xlib 实现,或者如果没有一些(编译的)模块编写,这是不可能的?
【问题讨论】:
-
您可能有充分的理由使用 Xlib 等低级库,但我不得不问:您是否考虑过使用更高级别的库,例如 PySide 的 QtOpenGL?与使用 Xlib 编写的代码不同,您使用 PySide 编写的代码也可以在多个平台(Windows、Linux、Mac)上运行。只是一个想法。
-
不,PyOpenGL 没有自己的 xlib 实现。 Python 方面实际上没有任何东西。 Python-xlib 最后一次发布是在 2009 年左右,所以它实际上已经死了。使用 GLUT 或更高级别的工具包之一。
-
@crayzeewulf:是的,我有充分的理由。我正在做一个涉及将交互式 OpenGL 壁纸绘制到桌面的 X-windows hack。它涉及设置 EMWH 提示和其他一些混乱的部分,所以我怀疑 Qt 或其他任何东西可以做到这一点。
-
@n.m.:好的。看起来 Boost::Python 可能是我的朋友。如果我最终这样做,我会回帖。
-
迈克尔,感谢您的解释。祝你好运。我以前使用
ctypes访问类似的低级库,但必须手动将预处理器宏转换为等效的 Python 函数。有时别无选择。