我一直在使用glGetIntegerv和glGetString查询OpenGL扩展和属性(例如最大纹理大小等)。现在,我想确定我的设备是否支持浮动纹理:

GLint ext_tex;
glGetIntegerv(GL_HALF_FLOAT_OES, &ext_tex);


不幸的是,对于所有设备,也包括那些支持浮动纹理的设备,它都返回“ 0”。如何确定设备是否支持此纹理格式?目前,我正在使用iOS,其中iPhone 4S和iPad2及更高版本支持此扩展,但我希望使用通用解决方案,而不是根据设备型号来决定。

最佳答案

您可以通过获取扩展字符串(glGetString(GL_EXTENSIONS))并搜索适当的扩展名来检测对扩展的支持。如果有,那就受支持。

关于iphone - 查询OpenGL功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12634401/

10-10 19:52