如何在 OS X 上初始化 QOpenGLContext 以使用 OpenGL 3.3 版?
Posted
技术标签:
【中文标题】如何在 OS X 上初始化 QOpenGLContext 以使用 OpenGL 3.3 版?【英文标题】:How to initialize a QOpenGLContext on OS X to use OpenGL version 3.3? 【发布时间】:2014-09-02 00:41:26 【问题描述】:我正在运行 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 版本的上下文 - 默认情况下。 )
【问题讨论】:
OSX 仅支持 GL > 2.1 的核心上下文。您是否正在创建核心上下文? 感谢您的快速回复 - 我是 Qt 新手,但我猜我正在创建一个核心上下文。我正在使用 OpenGL 窗口示例。现在,我只需要一个直接通过 gl 调用绘制并通过 Qt 响应键盘/鼠标事件的 OpenGL 3.3 主窗口。有更好的例子吗? 【参考方案1】:我的问题得到了回答,问题是当我调用 QSurfaceFormat::setVersion(3,3) 时,还需要在将生成的 QSurfaceFormat 传递给 setFormat 之前调用 QSurfaceFormat::setProfile(QSurfaceFormat::CoreProfile)。
【讨论】:
以上是关于如何在 OS X 上初始化 QOpenGLContext 以使用 OpenGL 3.3 版?的主要内容,如果未能解决你的问题,请参考以下文章