summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/main/image.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c
index db14e38c57c..03f6aff3391 100644
--- a/src/mesa/main/image.c
+++ b/src/mesa/main/image.c
@@ -377,7 +377,6 @@ _mesa_is_legal_format_and_type( GLcontext *ctx, GLenum format, GLenum type )
return GL_FALSE;
}
case GL_RGB:
- case GL_BGR:
switch (type) {
case GL_BYTE:
case GL_UNSIGNED_BYTE:
@@ -396,6 +395,21 @@ _mesa_is_legal_format_and_type( GLcontext *ctx, GLenum format, GLenum type )
default:
return GL_FALSE;
}
+ case GL_BGR:
+ switch (type) {
+ case GL_BYTE:
+ case GL_UNSIGNED_BYTE:
+ case GL_SHORT:
+ case GL_UNSIGNED_SHORT:
+ case GL_INT:
+ case GL_UNSIGNED_INT:
+ case GL_FLOAT:
+ return GL_TRUE;
+ case GL_HALF_FLOAT_ARB:
+ return ctx->Extensions.ARB_half_float_pixel;
+ default:
+ return GL_FALSE;
+ }
case GL_RGBA:
case GL_BGRA:
case GL_ABGR_EXT: