【问题标题】:How to create OpenGL 3.0 context using Pyglet如何使用 Pyglet 创建 OpenGL 3.0 上下文
【发布时间】:2013-04-01 23:21:01
【问题描述】:

我想使用 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 一起使用。

【问题讨论】:

    标签: python opengl py2exe opengl-3 pyglet


    【解决方案1】:

    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(或最新源)。

    【讨论】:

    • 我使用的是 Pyglet 的当前版本 (1.1.4),现在已经升级到 1.2,这解决了我的问题(它为我创建了一个 OpenGL 3.3 上下文)。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 2018-03-21
    • 2020-07-15
    • 1970-01-01
    • 2015-07-12
    相关资源
    最近更新 更多