2013-04-01 72 views
2

我想使用OpenGL 3.0功能(幀緩衝區對象,2D紋理數組),但由Pyglet創建的默認OpenGL上下文不支持這些。如何使用Pyglet創建OpenGL 3.0上下文

在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。

回答

2

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

+0

我正在使用Pyglet的當前版本(1.1.4),現在已升級到1.2,這已經解決了我的問題(它爲我創建了一個OpenGL 3.3上下文)。謝謝! – doeke