2015-10-05 23 views
0

我目前正在使用LWJGL 3学习OpenGL,它使用GLFW for windows。我正在使用运行优胜美地的AMD M370X 2015 MacBook Pro。问题是,我使用的是现代OpenGL(3.30),出于某种原因,它不受支持。我用glGetString(GL_VERSION),显然计算机使用的是ATI的驱动程序,只支持OpenGL 2.1。为什么我的Mac只支持OpenGL 2.1?

回答

1

OSX仅在核心配置文件(这是GL规范要求支持的唯一配置文件)中支持现代GL。当创建上下文时,你必须明确地请求这个,否则它将回落到实现GL 2.1的传统上下文(用于与不知道概要文件或者更新的GL版本的旧应用程序的兼容性)。这意味着在OSX上,您永远无法将旧的,不推荐的GL featue与现代功能混合在一起(就像您可以使用兼容性配置文件一样)。但是,如果这是一件好事或一件坏事,取决于观点。

对于GLFW,您将不得不使用glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE)并要求GL版本> = 3.2。

+0

是的,这就是另一篇文章所说的。但现在我有另一个问题。如果我尝试启用现代OpenGL,GLFW只是无法创建窗口 - 我认为这意味着它不被支持。 –

+0

IIRC,你还必须在OSX上设置foreard兼容性位,但我不确定。 – derhass

+0

是的,OS X仅支持向前兼容的核心配置文件。 –