我使用wglGetProcAddress获取OpenGL扩展。但是在不同的机器上它使用不同的参数:例如对于使用glDrawArrays,我应该使用“glDrawArrays”或“glDrawArraysEXT”调用wglGetProcAddress。如何定义使用方法?
答案 0 :(得分:2)
有两个相当不错的OpenGL扩展加载库 - GLee和GLEW。 GLEW目前更新了GLee。即使你不想使用它们中的任何一个,它们都是开源的,所以你可能比看看它们是如何做的更糟糕。
您可能还想查看http://www.opengl.org/sdk/这是一个很好的在线OpenGL文档集合。
答案 1 :(得分:1)
“glDrawArrays”或“glDrawArraysEXT”
两个!即使它们被命名为相似,并且程序签名和令牌值通常是相同的,它们是不同的扩展,其中细节可能非常不同。
最终由程序员决定使用哪些功能。如果程序使用函数的…EXT
变体,那么即使可能存在同名的…ARB
或核心函数,也必须加载此函数;它们可能在签名和/或使用的令牌和状态方面有所不同,因此您无法盲目地将其替换为另一个。