不能在mac mavericks上使用GLSL 330

时间:2014-04-08 03:03:54

标签: macos opengl glew freeglut

我试图学习OpenGL,材料在着色器中使用#version 330。我可以成功编译它,但是当我尝试运行它时,它会抱怨版本330不受支持。

在我的源代码中,我在Xcode中使用了免费的过剩和OpenGL框架。如果我还包括这两行代码

glutInitContextVersion(3,1);  glutInitContextFlags(GLUT_CORE_PROFILE);

无法编译。

我的Mac是MacBook Pro Mid 2012.根据应用,它应该支持OpenGL4.1。

那么如何编译版本330着色器?

1 个答案:

答案 0 :(得分:1)

OS X要求您请求3.2 core profile以便接收3.3或更高版本的上下文。这是因为3.2最终删除了3.0中弃用的功能。

因此,如果您想使用#version 330着色器,那么您的代码应该如下所示:

glutInitContextVersion(3,2);
glutInitContextFlags(GLUT_CORE_PROFILE);

编辑显然X11在OS X上不支持高于2.1的OpenGL。因此,我建议您切换到GLFW