diff options
author | Jordan Justen <[email protected]> | 2012-12-27 16:45:13 -0800 |
---|---|---|
committer | Jordan Justen <[email protected]> | 2013-01-12 01:44:25 -0800 |
commit | 89e07ccf613e6a5f65acc597ce888d4c12014647 (patch) | |
tree | 2d22d5750da2edcf03667abb982b70d4a3256c93 /src/mesa | |
parent | 6d63b6e50371afdcfe6dc7a4239380d07bc8e727 (diff) |
glformats: add _mesa_base_format_component_count
Signed-off-by: Jordan Justen <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/main/glformats.c | 26 | ||||
-rw-r--r-- | src/mesa/main/glformats.h | 3 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c index 5683d4b0a1a..fb69421c086 100644 --- a/src/mesa/main/glformats.c +++ b/src/mesa/main/glformats.c @@ -1058,6 +1058,32 @@ _mesa_base_format_has_channel(GLenum base_format, GLenum pname) /** + * Returns the number of channels/components for a base format. + */ +GLint +_mesa_base_format_component_count(GLenum base_format) +{ + switch (base_format) { + case GL_RED: + case GL_ALPHA: + case GL_INTENSITY: + case GL_DEPTH_COMPONENT: + return 1; + case GL_RG: + case GL_LUMINANCE_ALPHA: + case GL_DEPTH_STENCIL: + return 2; + case GL_RGB: + return 3; + case GL_RGBA: + return 4; + default: + return -1; + } +} + + +/** * If format is a generic compressed format, return the corresponding * non-compressed format. For other formats, return the format as-is. */ diff --git a/src/mesa/main/glformats.h b/src/mesa/main/glformats.h index d1208ef4ffe..fe604ddc973 100644 --- a/src/mesa/main/glformats.h +++ b/src/mesa/main/glformats.h @@ -100,6 +100,9 @@ _mesa_base_format_to_integer_format(GLenum format); extern GLboolean _mesa_base_format_has_channel(GLenum base_format, GLenum pname); +extern GLint +_mesa_base_format_component_count(GLenum base_format); + extern GLenum _mesa_generic_compressed_format_to_uncompressed_format(GLenum format); |