Cleaned up OpenGL initialization a bit so we fail if we can't create a surface.
--- a/android-project/src/org/libsdl/app/SDLActivity.java Sat Nov 03 22:46:03 2012 -0400
+++ b/android-project/src/org/libsdl/app/SDLActivity.java Sun Nov 04 08:51:43 2012 -0800
@@ -268,10 +268,10 @@
// EGL functions
public static boolean initEGL(int majorVersion, int minorVersion) {
- if (SDLActivity.mEGLDisplay == null) {
- //Log.v("SDL", "Starting up OpenGL ES " + majorVersion + "." + minorVersion);
+ try {
+ if (SDLActivity.mEGLDisplay == null) {
+ Log.v("SDL", "Starting up OpenGL ES " + majorVersion + "." + minorVersion);
- try {
EGL10 egl = (EGL10)EGLContext.getEGL();
EGLDisplay dpy = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
@@ -300,31 +300,20 @@
}
EGLConfig config = configs[0];
- /*int EGL_CONTEXT_CLIENT_VERSION=0x3098;
- int contextAttrs[] = new int[] { EGL_CONTEXT_CLIENT_VERSION, majorVersion, EGL10.EGL_NONE };
- EGLContext ctx = egl.eglCreateContext(dpy, config, EGL10.EGL_NO_CONTEXT, contextAttrs);
-
- if (ctx == EGL10.EGL_NO_CONTEXT) {
- Log.e("SDL", "Couldn't create context");
- return false;
- }
- SDLActivity.mEGLContext = ctx;*/
SDLActivity.mEGLDisplay = dpy;
SDLActivity.mEGLConfig = config;
SDLActivity.mGLMajor = majorVersion;
SDLActivity.mGLMinor = minorVersion;
+ }
+ return SDLActivity.createEGLSurface();
- SDLActivity.createEGLSurface();
- } catch(Exception e) {
- Log.v("SDL", e + "");
- for (StackTraceElement s : e.getStackTrace()) {
- Log.v("SDL", s.toString());
- }
+ } catch(Exception e) {
+ Log.v("SDL", e + "");
+ for (StackTraceElement s : e.getStackTrace()) {
+ Log.v("SDL", s.toString());
}
+ return false;
}
- else SDLActivity.createEGLSurface();
-
- return true;
}
public static boolean createEGLContext() {
@@ -364,8 +353,10 @@
}
SDLActivity.mEGLSurface = surface;
return true;
+ } else {
+ Log.e("SDL", "Surface creation failed, display = " + SDLActivity.mEGLDisplay + ", config = " + SDLActivity.mEGLConfig);
+ return false;
}
- return false;
}
// EGL buffer flip