From 7bd709460a43ef930b32e93a5373059a9e1c310b Mon Sep 17 00:00:00 2001 From: TwistedUmbrella Date: Fri, 24 Jul 2015 13:37:34 -0400 Subject: [PATCH] Properly test and set client version in EGL3 factory --- .../com/reicast/emulator/emu/GLCFactory6.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/shell/android/src/com/reicast/emulator/emu/GLCFactory6.java b/shell/android/src/com/reicast/emulator/emu/GLCFactory6.java index 801101d32..ec2b3d281 100644 --- a/shell/android/src/com/reicast/emulator/emu/GLCFactory6.java +++ b/shell/android/src/com/reicast/emulator/emu/GLCFactory6.java @@ -26,14 +26,20 @@ public class GLCFactory6 { private static final int EGL_CONTEXT_CLIENT_VERSION = 0x3098; public EGLContext createContext(EGL10 egl,EGLDisplay display,EGLConfig eglConfig) - { - int[] attrList = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL14.EGL_NONE }; + { + EGLContext context = EGL10.EGL_NO_CONTEXT; + for ( int clientVersion = 3; clientVersion >= 2; clientVersion-- ) { + int[] attrList = { EGL_CONTEXT_CLIENT_VERSION, clientVersion, EGL14.EGL_NONE }; - LOGI("Creating OpenGL ES X context"); + LOGI("Creating OpenGL ES " + clientVersion + " context"); - checkEglError("Before eglCreateContext",egl); - EGLContext context = egl.eglCreateContext(display,eglConfig,EGL10.EGL_NO_CONTEXT,attrList); - checkEglError("After eglCreateContext",egl); + checkEglError("Before eglCreateContext",egl); + context = egl.eglCreateContext(display,eglConfig,EGL10.EGL_NO_CONTEXT,attrList); + checkEglError("After eglCreateContext",egl); + if (context != EGL10.EGL_NO_CONTEXT) { + break; + } + } return(context); }