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

时间:2013-10-09 16:34:44

标签: macos qt opengl glsl qt5

我尝试将一些代码从固定函数OpenGL移动到GLSL着色器,并遵循arcsynthesis教程。首先我遇到了版本330不可用的问题,经过快速搜索似乎很常见,但建议150应该可以正常工作。然而,除了120以外没有其他GLSL着色器版本可用,对于2013款Macbook Air 10.8.4是否正常?或者OS X下的OpenGL + Qt 5的组合是否存在一些奇怪的现象?

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

1 个答案:

答案 0 :(得分:2)

所以:

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,它似乎给330版但我不知道这将是多么可靠,直到我做了更多工作。