diff options
author | Brian Paul <[email protected]> | 2012-01-26 20:01:11 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2012-01-27 18:21:44 -0700 |
commit | 952ca0785236729b69e154b3b48783fc4d9a5526 (patch) | |
tree | 661b877544b188c4e90c5dcde54ca47afe11c54a /src/mesa/main/formats.c | |
parent | 966720f507f71d2dce1f3499d7b29d98b615effe (diff) |
mesa: rewrite, simplify some of the logic in _mesa_format_matches_format_and_type()
In preparation for adding GL_PACK/UNPACK_SWAP_BYTES support.
Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src/mesa/main/formats.c')
-rw-r--r-- | src/mesa/main/formats.c | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c index d11b167f900..834d4c81ffb 100644 --- a/src/mesa/main/formats.c +++ b/src/mesa/main/formats.c @@ -2543,21 +2543,40 @@ _mesa_format_matches_format_and_type(gl_format gl_format, return GL_FALSE; case MESA_FORMAT_RGBA8888: - return ((format == GL_RGBA && (type == GL_UNSIGNED_INT_8_8_8_8 || - (type == GL_UNSIGNED_BYTE && !littleEndian))) || - (format == GL_ABGR_EXT && (type == GL_UNSIGNED_INT_8_8_8_8_REV || - (type == GL_UNSIGNED_BYTE && littleEndian)))); + if (format == GL_RGBA && type == GL_UNSIGNED_INT_8_8_8_8) + return GL_TRUE; + + if (format == GL_RGBA && type == GL_UNSIGNED_BYTE && !littleEndian) + return GL_TRUE; + + if (format == GL_ABGR_EXT && type == GL_UNSIGNED_INT_8_8_8_8_REV) + return GL_TRUE; + + if (format == GL_ABGR_EXT && type == GL_UNSIGNED_BYTE && littleEndian) + return GL_TRUE; + + return GL_FALSE; case MESA_FORMAT_RGBA8888_REV: - return ((format == GL_RGBA && type == GL_UNSIGNED_INT_8_8_8_8_REV)); + return format == GL_RGBA && type == GL_UNSIGNED_INT_8_8_8_8_REV; case MESA_FORMAT_ARGB8888: - return ((format == GL_BGRA && (type == GL_UNSIGNED_INT_8_8_8_8_REV || - (type == GL_UNSIGNED_BYTE && littleEndian)))); + if (format == GL_BGRA && type == GL_UNSIGNED_INT_8_8_8_8_REV) + return GL_TRUE; + + if (format == GL_BGRA && type == GL_UNSIGNED_BYTE && littleEndian) + return GL_TRUE; + + return GL_FALSE; case MESA_FORMAT_ARGB8888_REV: - return ((format == GL_BGRA && (type == GL_UNSIGNED_INT_8_8_8_8 || - (type == GL_UNSIGNED_BYTE && !littleEndian)))); + if (format == GL_BGRA && type == GL_UNSIGNED_INT_8_8_8_8) + return GL_TRUE; + + if (format == GL_BGRA && type == GL_UNSIGNED_BYTE && !littleEndian) + return GL_TRUE; + + return GL_FALSE; case MESA_FORMAT_RGBX8888: case MESA_FORMAT_RGBX8888_REV: |