Maybe fixes bug #2291 (red tinted screen on some Samsung Android devices)
authorGabriel Jacobo <gabomdq@gmail.com>
Thu, 03 Jul 2014 17:36:08 -0300
changeset 8971 c30e826412d1
parent 8970 c566c1634307
child 8972 dfc759d7486f
Maybe fixes bug #2291 (red tinted screen on some Samsung Android devices) Then again, maybe not!
src/video/SDL_egl.c
--- a/src/video/SDL_egl.c	Thu Jul 03 10:22:26 2014 -0700
+++ b/src/video/SDL_egl.c	Thu Jul 03 17:36:08 2014 -0300
@@ -449,7 +449,7 @@
         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 @@
 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,