diff options
-rw-r--r-- | src/mesa/main/image.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c index db14e38c57..03f6aff339 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: |