Mac OS X上的GLSL版本130会导致错误

时间:2013-11-28 11:21:58

标签: macos opengl version glsl shader

我一直在使用Mac OS X完成第五版OpenGL Superbible的代码,并且偶然发现了一个问题。在我的顶点着色器中,我已经包含版本号,即#version 130。但是,它无法使用错误ERROR: 0:1: '' : version '130' is not supported进行编译。

信息:我在Mac OS版本10.8.5上使用Xcode,带有Intel HD Graphics 3000.它应该支持OpenGL 3.0版本,与GLSL版本1.30相对应。

1 个答案:

答案 0 :(得分:5)

除非您选择 明确 要求核心配置文件的像素格式,否则您将获得OpenGL 2.1实施。有关如何执行此操作的详细信息,请参阅我的answer to another question;这是对OS X 10.7引入的CGL / NSOpenGL API的一个新变化,因此一些较旧的书籍可能无法记录它。

GPU支持的内容与实际获得的内容之间存在很大差异。在许多其他平台上,不使用与OpenGL 3.2一起引入的窗口系统API的更改,您可以从OpenGL 2.1及更早版本获得OpenGL 3.2+实现的所有功能遗留的东西默认情况下 (这称为兼容性配置文件)。

OS X不同,它不支持兼容性配置文件。您要么获得传统的OpenGL 2.1实现,要么获得核心3.2(OS X 10.9中的3.3 / 4.1)实现,但您永远不能混合使用两者的功能。此外,除非您修改代码以请求核心配置文件,否则默认情况下仅限于OpenGL 2.1。

相关问题