我需要glGenerateMipmap *函数,但我想知道:glGenerateMipmap
和glGenerateMipmapEXT
之间是否存在任何差异?
我知道EXT早于ARB,所以EXT版本应该适用于较旧的硬件吗?行为有什么不同吗?
另一个问题:
我可以使用:
myGLGenerateMipmap = loadProcAddress("glGenerateMipmap")
或者我应该首先检查对GL_EXT_framebuffer_object
的支持?
请注意,我不想使用GLEW / GLEE或任何其他图书馆......
答案 0 :(得分:3)
直到OpenGL 3.0,此功能不是OpenGL规范的一部分。正确。 OpenGL 3.0中包含的版本实际上源自GL_ARB_framebuffer_object
规范。
如果您的驱动程序列出GL_ARB_framebuffer_object
扩展名,或者您知道自己拥有合法的OpenGL 3.0+实现,则可以保证通过proc获得此功能。地址1}}。在这种情况下,这是您使用的程序。
glGenerateMipmap
来自FBO规范的可怕EXT版本。我会像瘟疫一样避免它,除非你既没有OpenGL 3.0也没有glGenerateMipmapEXT
。但是,如果您的驱动程序未报告GL_ARB_framebuffer_object
,则您也不会执行此过程。
这是扩展争吵者让生活更轻松的地方......但我可以看到不想为你的软件添加另一个依赖。您将不得不研究阅读扩展规范的艺术并遵循OpenGL® Registry