В качестве official documentation состояний, устройство может не поддерживать OpenGL 3.0, поэтому вы должны проверить это, прежде чем устанавливать версию контекста egl.
Однако, если вы укажете required=true
в своем манифесте, как только приложение опубликовано в Google Play Store, оно не должно быть видимым для тех устройств, которые его не поддерживают. Таким образом, они не смогут установить его, если им не удастся загрузить APK из другого источника.
Чтобы проверить 3.0 доступен Вы можете сделать следующее:
private static double glVersion = 3.0;
private static class ContextFactory implements GLSurfaceView.EGLContextFactory {
private static int EGL_CONTEXT_CLIENT_VERSION = 0x3098;
public EGLContext createContext(EGL10 egl, EGLDisplay display, EGLConfig eglConfig) {
Log.w(TAG, "creating OpenGL ES " + glVersion + " context");
int[] attrib_list = {EGL_CONTEXT_CLIENT_VERSION, (int) glVersion, EGL10.EGL_NONE };
// attempt to create a OpenGL ES 3.0 context
EGLContext context = egl.eglCreateContext(display, eglConfig, EGL10.EGL_NO_CONTEXT, attrib_list);
return context; // returns null if 3.0 is not supported;
}
}
Поддерживает ли устройство ES 3.0? –