3

我想使用 OpenGL 3.0 功能(帧缓冲区对象、2D 纹理数组),但 Pyglet 创建的默认 OpenGL 上下文不支持这些。

在 Pyglet 源中有以下示例:https ://code.google.com/p/pyglet/source/browse/examples/opengl_3.py

可悲的是,这个示例最后一次编辑是在 2008 年,似乎不再有效(不再get_info()是上下文方法),甚至似乎不再使用major_versionand参数。minor_version

然而,真正起作用的是将 PyOpenGL 与 Pyglet 结合使用。这是访问 OpenGL 3.0+ 的唯一方法吗?无论我最终使用哪种方法,它都必须与 Py2exe 一起使用。

4

1 回答 1

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仍然是一个 Context 方法。你用什么pyglet?

get_info在 pyglet 1.2 之前不是 Context 方法,并且 pyglet 1.1 没有 OpenGL 3 示例。

您应该使用 pyglet 1.2 alpha(或最新源)。

于 2013-04-02T13:18:23.263 回答