我正在尝试集成freetype_gl,并且他们使用的着色器是旧版本。我可以将它们转换为使用3.3+,我只是想知道是否可以在屏幕上显示任何内容。
答案 0 :(得分:3)
在Windows上,它会起作用。在OS X和Linux / Mesa上它将无法工作。
如果您使用兼容性配置文件,是的,它将起作用。如果您使用核心配置文件,则不支持1.40之前的GLSL版本。
Windows上的OpenGL实现往往对遗留应用程序提供强大支持,包括兼容性配置文件。其他实现(如Mesa和OS X实现)不支持更新版本的兼容性配置文件。对于非核心配置文件,OS X仅支持2.1版本,而Mesa支持3.0。
这意味着如果你想在Linux / Mesa或OS X上运行你的程序,你必须将着色器移植到至少1.40(此时你也可以使用3.30),但你没有如果您只关心Windows,请更改任何内容。
答案 1 :(得分:1)
OpenGL和GLSL版本
自2.0以来的每个OpenGL版本都已发布相应的GLSL版本。但是, GLSL版本号并不总是与GL版本同步。这是一个表:
> OpenGL Version GLSL Version
> 2.0 1.10
> 2.1 1.20
> 3.0 1.30
> 3.1 1.40
> 3.2 1.50
对于OpenGL 3.3及更高版本的所有版本,相应的GLSL版本与OpenGL版本匹配。所以GL 4.1使用GLSL 4.10。
在我的情况下,我使用glsl 1.30和opengl 3.3,但我认为你可能无法在那里使用glsl 1.2