我试图学习OpenGL,材料在着色器中使用#version 330。我可以成功编译它,但是当我尝试运行它时,它会抱怨版本330不受支持。
在我的源代码中,我在Xcode中使用了免费的过剩和OpenGL框架。如果我还包括这两行代码
glutInitContextVersion(3,1); glutInitContextFlags(GLUT_CORE_PROFILE);
无法编译。
我的Mac是MacBook Pro Mid 2012.根据应用,它应该支持OpenGL4.1。
那么如何编译版本330着色器?
答案 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。