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

Fit*_*tzy 5 opengl macos shader version glsl

我一直在使用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相对应.

And*_*man 6

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

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

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