glGenerateMipmap或glGenerateMipmapEXT

时间:2013-08-15 16:22:09

标签: opengl

我需要glGenerateMipmap *函数,但我想知道:glGenerateMipmapglGenerateMipmapEXT之间是否存在任何差异?

我知道EXT早于ARB,所以EXT版本应该适用于较旧的硬件吗?行为有什么不同吗?

另一个问题:

我可以使用:

myGLGenerateMipmap = loadProcAddress("glGenerateMipmap")

或者我应该首先检查对GL_EXT_framebuffer_object的支持?

请注意,我不想使用GLEW / GLEE或任何其他图书馆......

1 个答案:

答案 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

上的版本更改历史记录