在OS X Mavericks和Qt5 see this post for my code下在OpenGL中使用实例化时使用函数 glVertexAttribDivisor 时无法编译错误
erreur:使用未声明的标识符'glVertexAttribDivisor';你是否 是什么意思'glVertexAttribDivisorARB'?
我去了并使用了ARB功能,但不知道带后缀的函数与没有后缀的函数之间有什么区别。任何人都可以解释一下吗?
此外,为了能够使用正确的功能(意味着没有ARB后缀的功能),我是否有某种方式或缺点?
答案 0 :(得分:1)
正如已经很好地解释here ARB代表OpenGL Architecture review board。所以ARB后缀意味着供应商特定的扩展已被提升为核心规范,这意味着它将由所有人实现供应商作为核心功能的一部分。下一步是进入最终删除ARB后缀的核心。所以对你来说它并不重要。你应该使用与glVertexAttribDivisor相同的ARB版本。苹果通常落后于它最新标准背后的GL驱动程序实现。如果我没有弄错,glVertexAttribDivisor是自GL 3.3以来的核心,奇怪的是它们仍然只有ARB变体,而GL 4.1是支持的最新版本。
顺便说一下,如果你使用最新的GLEW,它确实同时拥有ARB和glVertexAttribDivisor核心。我个人用它在Mac Maverick上编写现代OpenGL功能。