我在创建比2.1更新的OpenGL上下文时遇到了困难(Mac OS 10.9.1,Qt 4.8.5,PySide 1.2.1)。下面给出了最小的示例代码;它产生2.1上下文而不是3.2或更高。
代码基于this tutorial;在我的机器上运行时,教程的示例C ++代码也会失败。
此问题可能与this bug有关:QGLFormat.openGLVersionFlags()
返回0x7f
(表示与OpenGL 2.1的兼容性,但不会更晚)。
是否有某些我缺失的东西,或者在修复该错误之前它是否无望?
from PySide import QtGui, QtOpenGL
from OpenGL.GL import *
class Canvas(QtOpenGL.QGLWidget):
def __init__(self, parent=None):
format = QtOpenGL.QGLFormat()
format.setVersion(3, 2)
format.setProfile(QtOpenGL.QGLFormat.CoreProfile)
super(Canvas, self).__init__(format, parent)
def initializeGL(self): print glGetString(GL_VERSION)
def paintGL(self): pass
if __name__ == '__main__':
app = QtGui.QApplication("test")
canvas = Canvas()
canvas.show()
app.exec_()