C++ 有条件地使用OpenGL扩展
我对如何使用OpenGL扩展(特别是VBOs和draw_纹理)有点困惑。我知道你可以在GL_扩展字符串中检查它们,但是接下来呢?如果扩展可用,我可以根据需要调用相关函数,还是必须使用GLEW加载它们?如果它们不可用,那么只要我不调用它们,代码中就可以有这些函数,还是在扩展不可用的情况下会导致运行时链接器中出现无法解决的符号错误 在多个平台上,如Linux、Windows、Android(本机)、Mac和iOS,情况是否相同 如果扩展可用,我可以根据需要调用相关函数吗 没有 或者我必须加载它们(如使用GLEW) 对。您也可以手动执行 如果它们不可用,只要我不调用它们,在代码中包含这些函数可以吗 对 或者,如果扩展不可用,这会导致运行时链接器中出现无法解决的符号错误吗 因为扩展是在运行时动态加载的,所以可执行链接器并不关心它们。它看到的只是一些名为C++ 有条件地使用OpenGL扩展,c++,c,opengl-es,opengl-es-1.1,C++,C,Opengl Es,Opengl Es 1.1,我对如何使用OpenGL扩展(特别是VBOs和draw_纹理)有点困惑。我知道你可以在GL_扩展字符串中检查它们,但是接下来呢?如果扩展可用,我可以根据需要调用相关函数,还是必须使用GLEW加载它们?如果它们不可用,那么只要我不调用它们,代码中就可以有这些函数,还是在扩展不可用的情况下会导致运行时链接器中出现无法解决的符号错误 在多个平台上,如Linux、Windows、Android(本机)、Mac和iOS,情况是否相同 如果扩展可用,我可以根据需要调用相关函数吗 没有 或者我必须加载它们(如
\uuuglew\ugl…
或类似的变量,这些变量在标题中被重新定义为gl…
,链接器不关心它们的值
扩展加载程序可以将它们设置为空指针(如果不可用),或者设置为发出警告消息、错误条件或类似情况的存根函数
如果扩展可用,则扩展加载器将这些函数指针变量设置为指向实际函数