From e92a0428c32218ba9780f59a88b88573d174628d Mon Sep 17 00:00:00 2001
From: Sam Lantinga <slouken@libsdl.org>
Date: Wed, 5 Jan 2011 00:09:19 -0800
Subject: [PATCH] Fixed screen texture format on Android I think this also
 fixes some of the red/blue channel swap bugs reported on iPhone.

---
 src/video/SDL_renderer_gles.c        | 6 ++++--
 src/video/android/SDL_androidvideo.c | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/video/SDL_renderer_gles.c b/src/video/SDL_renderer_gles.c
index dd81e90b..e0d90dcf 100644
--- a/src/video/SDL_renderer_gles.c
+++ b/src/video/SDL_renderer_gles.c
@@ -118,7 +118,8 @@ SDL_RenderDriver GL_ES_RenderDriver = {
       SDL_PIXELFORMAT_ABGR4444,
       SDL_PIXELFORMAT_ABGR1555,
       SDL_PIXELFORMAT_BGR565,
-      SDL_PIXELFORMAT_BGR24,
+      SDL_PIXELFORMAT_RGB24,
+      SDL_PIXELFORMAT_BGR888,
       SDL_PIXELFORMAT_ABGR8888},
      0,
      0}
@@ -380,11 +381,12 @@ GLES_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
     GLenum result;
 
     switch (texture->format) {
-    case SDL_PIXELFORMAT_BGR24:
+    case SDL_PIXELFORMAT_RGB24:
         internalFormat = GL_RGB;
         format = GL_RGB;
         type = GL_UNSIGNED_BYTE;
         break;
+    case SDL_PIXELFORMAT_BGR888:
     case SDL_PIXELFORMAT_ABGR8888:
         internalFormat = GL_RGBA;
         format = GL_RGBA;
diff --git a/src/video/android/SDL_androidvideo.c b/src/video/android/SDL_androidvideo.c
index 391a884e..a85307ef 100644
--- a/src/video/android/SDL_androidvideo.c
+++ b/src/video/android/SDL_androidvideo.c
@@ -124,7 +124,7 @@ Android_VideoInit(_THIS)
     SDL_DisplayMode mode;
 
     /* Use a fake 32-bpp desktop mode */
-    mode.format = SDL_PIXELFORMAT_RGB888;
+    mode.format = SDL_PIXELFORMAT_BGR888;
     mode.w = iScreenWidth;
     mode.h = iScreenHeight;
     mode.refresh_rate = 0;
-- 
2.18.1