[Mesa-dev] [PATCH 1/3] mesa: Add utility function to get base format from a GL compressed format

Brian Paul brian.e.paul at gmail.com
Sat Jul 23 07:53:31 PDT 2011


On Sat, Jul 23, 2011 at 2:58 AM, Ian Romanick <idr at freedesktop.org> wrote:
> From: Ian Romanick <ian.d.romanick at intel.com>
>
> ---
>  src/mesa/main/texcompress.c |   63 +++++++++++++++++++++++++++++++++++++++++++
>  src/mesa/main/texcompress.h |    3 ++
>  2 files changed, 66 insertions(+), 0 deletions(-)
>
> diff --git a/src/mesa/main/texcompress.c b/src/mesa/main/texcompress.c
> index d820ae9..4a8094f 100644
> --- a/src/mesa/main/texcompress.c
> +++ b/src/mesa/main/texcompress.c
> @@ -40,6 +40,69 @@
>
>
>  /**
> + * Get the GL base format of a specified GL compressed texture format
> + *
> + * \return
> + * The base format of \c format if \c format is a compressed format (either
> + * generic or specific.  Otherwise 0 is returned.
> + */
> +GLenum
> +_mesa_gl_compressed_format_base_format(GLenum format)
> +{
> +   switch (format) {
> +   case GL_COMPRESSED_RGB:
> +   case GL_COMPRESSED_SRGB:
> +   case GL_COMPRESSED_RED:
> +   case GL_COMPRESSED_RG:
> +   case GL_COMPRESSED_RED_RGTC1:
> +   case GL_COMPRESSED_SIGNED_RED_RGTC1:
> +   case GL_COMPRESSED_RG_RGTC2:
> +   case GL_COMPRESSED_SIGNED_RG_RGTC2:
> +   case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
> +   case GL_COMPRESSED_RGB_FXT1_3DFX:
> +   case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
> +      return GL_RGB;

I think these cases need to be split up to return GL_RED and GL_RG
base formats.  The GL_ARB texture_rg extension defines those base
formats so I'd assume that the glGetTexLevel query should return them
too.  Though, we should probably check what other vendors do.

-Brian


More information about the mesa-dev mailing list