2016-09-05 9 views
0

мой вопрос: является ли GLSurfaceView поддержкой EGL context 3.0 для api18 +. , потому что я использовал setEGLContextClientVersion (3), а затем авария accurs, я не пробовал только с одним устройством, которое имеет андроид 4.4.2 и манифест содержитGLSurfaceView с opengl ES 3.0

<uses-feature android:glEsVersion="0x00030000" android:required="true"/> 
+0

Поддерживает ли устройство ES 3.0? –

ответ

0

В качестве 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; 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^