OpenGL - ARB与非ARB函数的区别

4
我知道ARB代表着该函数是OpenGL核心的扩展,但如果我使用GLEW,就能够使用例如以下代码:
glCompileShaderARB()

并且

glCompileShader()

他们之间有什么区别?

你只需要在谷歌上搜索答案:https://www.opengl.org/wiki/OpenGL_Extension - Michael IV
1个回答

5
前者仅在您的实现支持GL_ARB_shader_objects时可用。这个扩展与核心GLSL在功能上不完全相同,有一些小的东西在3D Labs/ARB的原始设计被改变/删除之前,它被促进到核心,并且当然很多函数名字也发生了变化。
例如,如果您习惯于看到glGetShaderiv和glGetProgramiv,则glGetObjectParameterivARB (…)会非常困惑。当GLSL被提升到核心时,他们将该函数分开。
glCompileShader (…)保证在实现OpenGL 2.0+的任何情况下都可用,除非您使用古老的(~2004)驱动程序,否则您应该始终使用它。所有值得阅读的教程都将针对核心GLSL编写,并且学习ARB扩展没有意义。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接