2

我使用 wglGetProcAddress 获得 OpenGL 扩展。但在不同的机器上,它使用不同的参数:例如,对于使用 glDrawArrays,我应该用“glDrawArrays”或“glDrawArraysEXT”调用 wglGetProcAddress。如何定义使用什么?

4

2 回答 2

2

有两个非常好的 OpenGL 扩展加载库—— GleeGLEW。GLEW 目前比 GLee 更先进。即使你不想使用它们中的任何一个,它们都是开源的,所以你可以做的比看看它们是如何做的更糟糕。

您可能还想查看http://www.opengl.org/sdk/,这是一个不错的在线 OpenGL 文档集合。

于 2012-12-17T09:35:18.183 回答
1

“glDrawArrays”或“glDrawArraysEXT”

两个都!即使它们的名称相似,并且过程签名和令牌值通常相同,它们也是不同的扩展,其中细节可能非常不同。

最终由程序员决定使用哪些函数。如果程序使用…EXT函数的变体,那么即使可能存在…ARB同名的或核心函数,也必须加载该函数;它们的签名和/或使用的令牌和状态可能不同,因此您不能盲目地将一个替换为另一个。

于 2012-12-17T09:49:13.040 回答