有条件地使用OpenGL扩展

时间:2012-07-21 13:14:45

标签: c++ c opengl-es opengl-es-1.1

我对如何使用OpenGL扩展(特别是VBO和draw_texture)感到有点困惑。我知道你可以在GL_EXTENSIONS字符串中检查它们,但接着是什么?如果扩展可用,我可以根据需要调用相关功能,还是必须加载它们,例如使用GLEW?如果它们不可用,只要我不调用它们就可以在我的代码中使用这些函数,或者如果扩展不可用,它会在运行时链接器中导致未解决的符号错误吗? / p>

在多个平台上是一样的,即Linux,Windows,Android(原生),Mac和iOS?

1 个答案:

答案 0 :(得分:4)

  

如果扩展名可用,我可以根据需要调用相关功能

没有

  

或者我是否必须加载它们,例如使用GLEW?

是。你也可以手动完成。

  

如果它们不可用,只要我不调用它们就可以在我的代码中使用这些函数,

  

或者如果扩展名不可用,会导致运行时链接器中出现未解决的符号错误吗?

由于扩展是在运行时动态加载的,因此可执行链接器并不关心它们。它看到的只是一些名为__glew_gl…或类似的变量,它们在标题中被重新定义为gl…,而链接器并不关心它们具有什么值。

扩展加载器可以将它们设置为空指针(如果不可用),或者设置为发出警告消息,错误条件等的存根函数。

如果扩展名可用,则扩展加载程序将这些函数指针变量设置为指向实际函数。

相关问题