如何在运行时在任何给定的iOS设备上获得支持的OpenGL ES版本?

时间:2014-03-16 04:58:00

标签: ios opengl-es runtime opengl-es-2.0 opengl-es-3.0

我正在寻找一种方法来获取支持的OpenGL ES版本列表或iOS设备上提供的最大OpenGL ES版本在运行时

理想情况下,解决方案绝不能

  • 不检查特定设备型号

PS:项目设置: 基础SDK =最新iOS(7.0) 部署目标:4.3

1 个答案:

答案 0 :(得分:11)

执行此操作的首选方法是尝试为各种OpenGL ES版本创建上下文,如果失败则回退到旧版本。例如,您可以使用以下方法检查OpenGL ES 3支持:

    EAGLContext *aContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];

如果aContext为零,则该设备不支持OpenGL ES 3.0。然后你可以回到

    aContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];

测试2.0支持。如果失败(aContext再次为nil),则设备仅支持OpenGL ES 1.1。这并不要求您检查设备类型(它会考虑未来的未发布设备)。