繁体   English   中英

有条件地使用OpenGL扩展

[英]Using OpenGL extensions conditionally

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

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

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

没有。

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

是。 你也可以手动完成。

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

是。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM