From: Chia-I Wu Date: Tue, 24 Nov 2009 04:11:26 +0000 (+0800) Subject: mesa/es: Fix GL_RGB565 support in FBO. X-Git-Tag: mesa-7.8~1515^2~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c4b9e1aa1a2f1fda9e5764e3f7dd1a268216df09;p=platform%2Fupstream%2Fmesa.git mesa/es: Fix GL_RGB565 support in FBO. In GL_OES_framebuffer_object and OpenGL ES 2.0, GL_RGB565 is a valid internal format. Since it is not supported by the core, map it to GL_RGB5 as a workaround. Signed-off-by: Chia-I Wu --- diff --git a/src/mesa/es/main/APIspec.xml b/src/mesa/es/main/APIspec.xml index a7dbdc4..f6f3313 100644 --- a/src/mesa/es/main/APIspec.xml +++ b/src/mesa/es/main/APIspec.xml @@ -4041,7 +4041,7 @@ - + diff --git a/src/mesa/es/main/es_fbo.c b/src/mesa/es/main/es_fbo.c index db53a14..1803637 100644 --- a/src/mesa/es/main/es_fbo.c +++ b/src/mesa/es/main/es_fbo.c @@ -10,6 +10,11 @@ #include "GLES2/gl2ext.h" +#ifndef GL_RGB5 +#define GL_RGB5 0x8050 +#endif + + extern void GL_APIENTRY _es_RenderbufferStorageEXT(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height); extern void GL_APIENTRY _mesa_RenderbufferStorageEXT(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height); @@ -20,18 +25,13 @@ _es_RenderbufferStorageEXT(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height) { switch (internalFormat) { - case GL_RGBA4: - case GL_RGB5_A1: case GL_RGB565: - internalFormat = GL_RGBA; - break; - case GL_STENCIL_INDEX1_OES: - case GL_STENCIL_INDEX4_OES: - case GL_STENCIL_INDEX8: - internalFormat = GL_STENCIL_INDEX; + /* XXX this confuses GL_RENDERBUFFER_INTERNAL_FORMAT_OES */ + /* choose a closest format */ + internalFormat = GL_RGB5; break; default: - ; /* no op */ + break; } _mesa_RenderbufferStorageEXT(target, internalFormat, width, height); }