0

我故意在模拟器上运行 OpenGL ES 2.0 应用程序。虽然我知道这应该会失败(确实如此),但我想了解如何以编程方式捕获错误。

我正在使用 HelloOpenGLES20 教程代码,所以我认为我不需要在这里重新发布它。我正在使用 Android 4.0.3(版本 15)代码库。

换句话说,我如何让我的应用程序更健壮,足够健壮以捕获这个错误?(例如,假设我疯狂到想要同时提供 OpenGL 2.0 和 1.0 支持,如果我无法运行 2.0,则回退到 1.0 代码 - 请不要告诉我检查 API 版本,因为那样不会解决如何检测此特定错误)

感谢大家

4

1 回答 1

0

一般来说,我建议不要检测错误。相反,最好的做法是测试您想要使用的特定功能,以防止出现错误。

在这种特殊情况下,检查系统是否支持 OpenGL ES 2.0:

ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);    ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();    
boolean supportsEs2 = configurationInfo.reqGlEsVersion >= 0x20000;
于 2012-04-08T19:15:25.483 回答