我想使用 OpenGL 3.0 功能(帧缓冲区对象、2D 纹理数组),但 Pyglet 创建的默认 OpenGL 上下文不支持这些。
Pyglet 源代码中有以下示例:https://code.google.com/p/pyglet/source/browse/examples/opengl_3.py
遗憾的是,这个示例最后一次编辑是在 2008 年,似乎不再有效(get_info()
不再是上下文方法),甚至 major_version
和 minor_version
参数似乎不再使用了。
然而,真正起作用的是将 PyOpenGL 与 Pyglet 结合使用。这是访问 OpenGL 3.0+ 的唯一方法吗?无论我最终使用什么方法,它都必须与 Py2exe 一起工作。
最佳答案
pyglet
应该自动创建它可以创建的最高版本上下文。您的硬件/驱动程序是否支持 OpenGL 3?
$ python -c "from pyglet.window import Window; print(Window().context.get_info
().get_version())"
4.2.0
major_version
和 minor_version
似乎也可以工作:
$ python -c "from pyglet.window import Window; \
from pyglet.gl import Config; \
print(Window(config=Config(major_version=3, minor_version=2))\
.context.get_info().get_version())"
3.2.0
get_info
是 still a Context method .你用什么 pyglet?
get_info
在 pyglet 1.2 之前不是 Context 方法,而且 pyglet 1.1 没有 OpenGL 3 示例。
您应该使用 pyglet 1.2 alpha(或最新的源代码)。
关于python - 如何使用 Pyglet 创建 OpenGL 3.0 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15753586/