如何在OSX上初始化QOpenGLContext以使用OpenGL 3.3版

How to initialize a QOpenGLContext on OS X to use OpenGL version 3.3?

本文关键字:OpenGL 3版 QOpenGLContext OSX 初始化      更新时间:2023-10-16

我运行的是OS X 10.9.4和Qt 5.3.1。我需要创建一个使用Open GL 3.3的QOpenGLContext。我的系统报告与OpenGL 3.3 100%兼容,但我得到的上下文仅支持2.1。同时,调用versionFunctions()返回0。

对OpenGL窗口示例的正确修改是什么(http://qt-project.org/doc/qt-5/qtgui-openglwindow-example.html)这使得使用OpenGL 3.3成为可能?我试着在QSurfaceFormat上设置所需的版本,但我没能在这个系统上运行(在Windows上,我得到了一个OpenGL版本的上下文,默认情况下,它与该系统支持的最高版本相匹配。)

我的问题得到了回答,问题是当我调用QSurfaceFormat::setVersion(3,3)时,在将生成的QSurfaceFormat传递给setFormat之前,还需要调用QSuraceFormat::setProfile(QSurfaceFormat::CoreProfile)。