我想使用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。
答案 0 :(得分:3)
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
不是Context方法,并且没有使用pyglet 1.1的OpenGL 3示例。
你应该使用pyglet 1.2 alpha(或最新的源代码)。