Maybe fixes bug #2291 (red tinted screen on some Samsung Android devices) Then again, maybe not!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
diff --git a/src/video/SDL_egl.c b/src/video/SDL_egl.c
index 72f9bee..461d0ac 100644
--- a/src/video/SDL_egl.c
+++ b/src/video/SDL_egl.c
@@ -449,7 +449,7 @@ SDL_EGL_CreateContext(_THIS, EGLSurface egl_surface)
else {
context_attrib_list[0] = EGL_NONE;
}
-#else /* EGL_KHR_create_context*/
+#else /* EGL_KHR_create_context */
context_attrib_list[0] = EGL_NONE;
#endif /* EGL_KHR_create_context */
egl_context = _this->egl_data->eglCreateContext(_this->egl_data->egl_display,
@@ -552,10 +552,23 @@ SDL_EGL_DeleteContext(_THIS, SDL_GLContext context)
EGLSurface *
SDL_EGL_CreateSurface(_THIS, NativeWindowType nw)
{
+ EGLint format;
+
if (SDL_EGL_ChooseConfig(_this) != 0) {
return EGL_NO_SURFACE;
}
+#if __ANDROID__
+ /* Android docs recommend doing this!
+ * Ref: http://developer.android.com/reference/android/app/NativeActivity.html
+ */
+ _this->egl_data->eglGetConfigAttrib(_this->egl_data->egl_display,
+ _this->egl_data->egl_config,
+ EGL_NATIVE_VISUAL_ID, &format);
+
+ ANativeWindow_setBuffersGeometry(nw, 0, 0, format);
+#endif
+
return _this->egl_data->eglCreateWindowSurface(
_this->egl_data->egl_display,
_this->egl_data->egl_config,