diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mesa/main/formats.c | 31 | ||||
| -rw-r--r-- | src/mesa/main/formats.h | 4 | 
2 files changed, 35 insertions, 0 deletions
diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c index 5c2bf5ece3..62a2d70744 100644 --- a/src/mesa/main/formats.c +++ b/src/mesa/main/formats.c @@ -24,6 +24,7 @@   */ +#include "imports.h"  #include "formats.h"  #include "config.h"  #include "texstore.h" @@ -785,3 +786,33 @@ _mesa_format_to_type_and_comps2(gl_format format,     }  } + +GLint +_mesa_get_format_bits(gl_format format, GLenum pname) +{ +   const struct gl_format_info *info = _mesa_get_format_info(format); + +   switch (pname) { +   case GL_TEXTURE_RED_SIZE: +      return info->RedBits; +   case GL_TEXTURE_GREEN_SIZE: +      return info->GreenBits; +   case GL_TEXTURE_BLUE_SIZE: +      return info->BlueBits; +   case GL_TEXTURE_ALPHA_SIZE: +      return info->AlphaBits; +   case GL_TEXTURE_INTENSITY_SIZE: +      return info->IntensityBits; +   case GL_TEXTURE_LUMINANCE_SIZE: +      return info->LuminanceBits; +   case GL_TEXTURE_INDEX_SIZE_EXT: +      return info->IndexBits; +   case GL_TEXTURE_DEPTH_SIZE_ARB: +      return info->DepthBits; +   case GL_TEXTURE_STENCIL_SIZE_EXT: +      return info->StencilBits; +   default: +      _mesa_problem(NULL, "bad pname in _mesa_get_format_bits()"); +      return 0; +   } +} diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h index e79991ad41..441cf3eac6 100644 --- a/src/mesa/main/formats.h +++ b/src/mesa/main/formats.h @@ -208,6 +208,10 @@ extern void  _mesa_format_to_type_and_comps2(gl_format format,                                  GLenum *datatype, GLuint *comps); +extern GLint +_mesa_get_format_bits(gl_format format, GLenum pname); + +  extern void  _mesa_test_formats(void);  | 
