Mesa (master): glformats: add _mesa_base_format_component_count

Jordan Justen jljusten at kemper.freedesktop.org
Sat Jan 12 10:12:27 UTC 2013


Module: Mesa
Branch: master
Commit: 89e07ccf613e6a5f65acc597ce888d4c12014647
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=89e07ccf613e6a5f65acc597ce888d4c12014647

Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Thu Dec 27 16:45:13 2012 -0800

glformats: add _mesa_base_format_component_count

Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

---

 src/mesa/main/glformats.c |   26 ++++++++++++++++++++++++++
 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 5683d4b..fb69421 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 d1208ef..fe604dd 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);
 




More information about the mesa-commit mailing list