当在OS X Mavericks和Qt5下的OpenGL中使用实例化时,请参阅本文中的代码,我在使用函数glVertexAttribDivisor时无法编译,错误为
erreur:使用未声明的标识符"glVertexAttribDivisor";你做了吗意思是"glVertexAttribDivisiorARB"?
我去用了ARB函数,但不知道带后缀的函数和没有后缀的函数有什么区别。有人能解释一下吗?
此外,为了能够使用正确的函数(意思是没有ARB后缀的函数),我是否缺少了一种方法或东西?
ARB代表OpenGL Architecture评审委员会。因此,ARB后缀意味着特定于供应商的扩展已被提升为核心规范,这意味着,它将由所有供应商作为核心功能的一部分来实现。下一步是进入核心,其中ARB后缀最终被删除。所以对你来说,这其实并不重要。你应该使用与glVertexAttribDivisor相同的ARB版本。苹果的GL驱动程序实现通常落后于最新标准。如果我没有错的话,glVertexAttribDivisor是GL 3.3以来的核心,奇怪的是,他们仍然只有ARB变体,GL 4.1是支持的最新版本。
顺便说一句,如果你使用最新的GLEW,它确实有ARB和glVertexAttribDivisor核心。我个人使用它在Mac Maverick上编写现代OpenGL功能。