glformats: add _mesa_base_format_component_count

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Jordan Justen
2012-12-27 16:45:13 -08:00
parent 6d63b6e503
commit 89e07ccf61
2 changed files with 29 additions and 0 deletions
+26
View File
@@ -1057,6 +1057,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.
+3
View File
@@ -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);