mesa: add _mesa_get_format_max_bits()
authorBrian Paul <brianp@vmware.com>
Sat, 24 Dec 2011 15:54:25 +0000 (08:54 -0700)
committerBrian Paul <brianp@vmware.com>
Sat, 24 Dec 2011 15:54:25 +0000 (08:54 -0700)
Returns max bits per channel for the given format.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
src/mesa/main/formats.c
src/mesa/main/formats.h

index 1f83a5368d7d7ee93b789274ed92755e31913fc4..cca0014b1788a24f7b54c7dd7eb8c67c5cb2cc51 100644 (file)
@@ -27,6 +27,7 @@
 #include "imports.h"
 #include "formats.h"
 #include "mfeatures.h"
+#include "macros.h"
 
 
 /**
@@ -1613,6 +1614,21 @@ _mesa_get_format_bits(gl_format format, GLenum pname)
 }
 
 
+GLuint
+_mesa_get_format_max_bits(gl_format format)
+{
+   const struct gl_format_info *info = _mesa_get_format_info(format);
+   GLuint max = MAX2(info->RedBits, info->GreenBits);
+   max = MAX2(max, info->BlueBits);
+   max = MAX2(max, info->AlphaBits);
+   max = MAX2(max, info->LuminanceBits);
+   max = MAX2(max, info->IntensityBits);
+   max = MAX2(max, info->DepthBits);
+   max = MAX2(max, info->StencilBits);
+   return max;
+}
+
+
 /**
  * Return the data type (or more specifically, the data representation)
  * for the given format.
index e6b429d5f37cd984b481c66acb339da5aaae1a72..9609343387fb31f6f2900799a7b4d954faaf1ad2 100644 (file)
@@ -290,6 +290,9 @@ _mesa_get_format_bytes(gl_format format);
 extern GLint
 _mesa_get_format_bits(gl_format format, GLenum pname);
 
+extern GLuint
+_mesa_get_format_max_bits(gl_format format);
+
 extern GLenum
 _mesa_get_format_datatype(gl_format format);