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