如何在 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 版?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 OS X 上安装 Rancher

如何在 OS X 上使用 LaTeX

如何在Mac OS X上安装 Ruby运行环境

如何在Mac OS X上安装 Ruby运行环境

如何在Mac OS X Yosemite上安装 jdk 1.6 开发环境

如何 在Mac OS X 上的 Appium 上 Run *.app 文件