任何想法为什么这些属性无法在 Kindle Fire 上为我检索到任何合适的 EGL 配置?
EGL_RED_SIZE = 5
EGL_GREEN_SIZE = 6
EGL_BLUE_SIZE = 5
EGL_ALPHA_SIZE = 0
EGL_DEPTH_SIZE = 0
EGL_STENCIL_SIZE = 0
EGL_CONFIG_CAVEAT = EGL_NONE
我注意到这似乎也发生在摩托罗拉 XT320 上。但是,绝大多数 2.3+ android 设备似乎都可以使用这些属性,但不是这两个。
我没有这两种设备,但用户报告我的应用程序一开始就在这两种设备上崩溃,日志似乎表明这是因为没有找到有效的 EGL 配置。
我设法在安卓模拟器上重现了这个,使用亚马逊的插件来模拟 Kindle Fire。Kindle Fire HD 似乎运行良好。
代码片段(在 Kindle Fire 上抛出IllegalArgumentException "No configs match configSpec"
):
//mConfigSpec is an array of ints with config_attribs ending into EGL_NONE.
int[] num_config = new int[1];
EGLDisplay display = mEgl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
if (display == EGL10.EGL_NO_DISPLAY) {
throw new RuntimeException("eglGetDisplay failed");
}
if (!egl.eglChooseConfig(display, mConfigSpec, null, 0, num_config)) {
throw new IllegalArgumentException("eglChooseConfig failed");
}
int numConfigs = num_config[0];
if (numConfigs <= 0) {
throw new IllegalArgumentException("No configs match configSpec");
}