From c4b9e1aa1a2f1fda9e5764e3f7dd1a268216df09 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 24 Nov 2009 12:11:26 +0800 Subject: 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 --- src/mesa/es/main/APIspec.xml | 2 +- src/mesa/es/main/es_fbo.c | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/mesa/es/main/APIspec.xml b/src/mesa/es/main/APIspec.xml index a7dbdc4249..f6f33130b1 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 db53a1449f..1803637830 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); } -- cgit v1.2.3