SDL 2.0 Android API level

This delta http://hg.libsdl.org/SDL/rev/a15821a3471f means that the minimum API level supported is 9, as the EGL/egl.h file is not present in API level 8.

Unfortunately this drops support for (currently) 9% of devices (http://developer.android.com/about/dashboards/index.html). I opted to just copy the required EGL defines into SDL_android.cpp:

Code:

diff -r b3d3ef1e15b5 src/core/android/SDL_android.cpp
— a/src/core/android/SDL_android.cpp Mon Jan 14 20:20:33 2013 -0300
+++ b/src/core/android/SDL_android.cpp Sat Jan 26 13:07:45 2013 +0000
@@ -27,7 +27,9 @@

#include “SDL_system.h”
#include “SDL_android.h”
+#if 0
#include <EGL/egl.h>
+#endif

extern “C” {
#include “…/…/events/SDL_events_c.h”
@@ -295,6 +297,23 @@
};
int LocalReferenceHolder::s_active;

+#define EGL_BUFFER_SIZE 0x3020
+#define EGL_ALPHA_SIZE 0x3021
+#define EGL_BLUE_SIZE 0x3022
+#define EGL_GREEN_SIZE 0x3023
+#define EGL_RED_SIZE 0x3024
+#define EGL_DEPTH_SIZE 0x3025
+#define EGL_STENCIL_SIZE 0x3026
+#define EGL_SAMPLES 0x3031
+#define EGL_SAMPLE_BUFFERS 0x3032
+#define EGL_NONE 0x3038 /* Attrib list terminator /+
+#define EGL_RENDERABLE_TYPE 0x3040
+#define EGL_OPENGL_ES_BIT 0x0001 /
EGL_RENDERABLE_TYPE mask bits /
+#define EGL_OPENVG_BIT 0x0002 /
EGL_RENDERABLE_TYPE mask bits /
+#define EGL_OPENGL_ES2_BIT 0x0004 /
EGL_RENDERABLE_TYPE mask bits /
+#define EGL_OPENGL_BIT 0x0008 /
EGL_RENDERABLE_TYPE mask bits */
+
extern “C” SDL_bool Android_JNI_CreateContext(int majorVersion, int minorVersion,
int red, int green, int blue, int alpha,
int buffer, int depth, int stencil,

This seems to work fine building for API 8. Tested on Android 2.2.2.

Not sure I’m recommending this as a change to the SDL source, but it might be useful to someone.

Cheers,
Philip.