python - 如何使用 Pyglet 创建 OpenGL 3.0 上下文

标签 python opengl py2exe opengl-3 pyglet

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

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

遗憾的是,这个示例最后一次编辑是在 2008 年,似乎不再有效(get_info() 不再是上下文方法),甚至 major_versionminor_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_versionminor_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_infostill 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/

相关文章:

python - Django通过表单识别对象

python - 创建可移植的 Django 应用程序——需要帮助

python - 打乱数据框以计算 Pandas 中 P 值的最快方法

c++ - 编译着色器 GLSL 3.30 时出错

python - PySide 无法卡住 PyQt4 端口 - PyInstaller、py2exe 或 cx_Freeze

python - 检查文件大写中行的第一个字母

C++ - 将 OpenGL 与代码块一起使用?

c++ - MSVC __debugbreak()与openGL错误回调一起使用时不产生调用栈

python - Py2Exe- "The application configuration is incorrect."

python - 通过快捷方式运行Python可执行文件会更改程序运行的位置