Qt和OpenGL OS X:GLSL着色器版本仅在Mountain Lion上为120



我正在尝试按照 arcsynthesis 教程将一些代码从固定函数 OpenGL 移动到 GLSL 着色器。首先,我遇到了版本330不可用的问题,经过快速搜索后似乎很常见,但建议150应该可以正常工作。但是,除了 120 之外,没有其他可用的 GLSL 着色器版本,这对于 10.8.4 上的 2013 Macbook Air 来说正常吗?还是在OS X下OpenGL + Qt 5的组合发生了一些奇怪的事情?

编辑:https://developer.apple.com/library/ios/samplecode/GLEssentials/Introduction/Intro.html 如果我在那里构建示例应用程序,我可以使用 140 和 150(没有尝试 330,因为它需要着色器重写(。有谁知道这是否是与OpenGL,Qt5和OS X相关的特定问题?

所以:

QGLFormat glFormat;
glFormat.setVersion(3, 2);
glFormat.setProfile(QGLFormat::CoreProfile);
// Set the default GL format to OpenGL 3.2 Core
QGLFormat::setDefaultFormat(glFormat);

这就是它工作所需的,这在文档中并不明显。那会给你150。如果您将glFormat.setVersion(3, 2)更改为 3、3,它似乎给出了版本 330,但在我完成更多工作之前,我不知道这有多可靠。

相关内容

  • 没有找到相关文章

最新更新