我正在使用 10.8 Mountain Lion 遵循有关 OpenGL 3.3 的 arcsynthesis 教程,并且在构建项目时,它使用 GLSL 3.30 版本编译和运行着色器,但是即使在 Mac OS 10.8 的核心配置文件中,我也不应该支持 GLSL 3.30 - 只有1.50(如图所示)
有人能解释我是如何成功实现这种黑魔法的吗?
我正在使用 10.8 Mountain Lion 遵循有关 OpenGL 3.3 的 arcsynthesis 教程,并且在构建项目时,它使用 GLSL 3.30 版本编译和运行着色器,但是即使在 Mac OS 10.8 的核心配置文件中,我也不应该支持 GLSL 3.30 - 只有1.50(如图所示)
有人能解释我是如何成功实现这种黑魔法的吗?
OS X 10.8 仍然只支持 OpenGL 3.2,但具有一些 3.3 的特性,例如指定属性 location (#extension GL_ARB_explicit_attrib_location : enable)
。着色器编译器接受最高 4.10 的版本。他们可能将它留在那里是为了兼容性或(推测)他们最初打算支持 4.1。
这至少是我在使用 10.8 几周后得出的结论。
编辑:看起来 4.10 的猜测是正确的。10.9-10.12 支持最高版本 4.10。我猜他们想在他们的 Metal api 上花费资源,而不是继续前进并获得计算着色器。