ios - 如何在运行时获取任何给定 iOS 设备上可用的受支持 OpenGL ES 版本?

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

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

理想情况下,解决方案不得:

  • 不检查特定的设备型号

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

最佳答案

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

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

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

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

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

关于ios - 如何在运行时获取任何给定 iOS 设备上可用的受支持 OpenGL ES 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22433134/

相关文章:

java - LibGDX FreeType 字体模糊

opengl-es - 如何在 OpenGL ES 着色器中使用 3x3 单应矩阵?

java - 使用静态 int 数组进行缓存的阶乘

ios - NSFileManager.defaultManager().createFileAtPath() 返回 false

iphone - 将联系人图像添加到地址簿 iPhone

opengl-es - 是否有工具可以获取 GLSL 着色器的预处理输出?

c++ - Mex 函数比相同的 C++ 代码更快

ios - 如何在 Swift 中以编程方式调整 UILabel 行间距?

ios - 如何在 swift 上创建样式或主题以便我可以为所有 UITextField 设置颜色

java - 能否对 Java 程序进行分析以将其剥离为基本包以及 JRE?