[Mesa-dev] [PATCH 3/4] mesa: add generic compressed -> uncompressed format helper
Anuj Phogat
anuj.phogat at gmail.com
Fri Aug 24 10:51:22 PDT 2012
On Fri, Aug 24, 2012 at 7:53 AM, Brian Paul <brianp at vmware.com> wrote:
> _mesa_generic_compressed_format_to_uncompressed_format() probably wins the
> prize for longest function name in Mesa.
> ---
> src/mesa/main/glformats.c | 39 +++++++++++++++++++++++++++++++++++++++
> src/mesa/main/glformats.h | 3 +++
> 2 files changed, 42 insertions(+), 0 deletions(-)
>
> diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c
> index b6f9e94..2d06cb7 100644
> --- a/src/mesa/main/glformats.c
> +++ b/src/mesa/main/glformats.c
> @@ -971,6 +971,45 @@ _mesa_base_format_has_channel(GLenum base_format, GLenum pname)
>
>
> /**
> + * If format is a generic compressed format, return the corresponding
> + * non-compressed format. For other formats, return the format as-is.
> + */
> +GLenum
> +_mesa_generic_compressed_format_to_uncompressed_format(GLenum format)
> +{
> + switch (format) {
> + case GL_COMPRESSED_RED:
> + return GL_RED;
> + case GL_COMPRESSED_RG:
> + return GL_RG;
> + case GL_COMPRESSED_RGB:
> + return GL_RGB;
> + case GL_COMPRESSED_RGBA:
> + return GL_RGBA;
> + case GL_COMPRESSED_ALPHA:
> + return GL_ALPHA;
> + case GL_COMPRESSED_LUMINANCE:
> + return GL_LUMINANCE;
> + case GL_COMPRESSED_LUMINANCE_ALPHA:
> + return GL_LUMINANCE_ALPHA;
> + case GL_COMPRESSED_INTENSITY:
> + return GL_INTENSITY;
> + /* sRGB formats */
> + case GL_COMPRESSED_SRGB:
> + return GL_SRGB;
> + case GL_COMPRESSED_SRGB_ALPHA:
> + return GL_SRGB_ALPHA;
> + case GL_COMPRESSED_SLUMINANCE:
> + return GL_SLUMINANCE;
> + case GL_COMPRESSED_SLUMINANCE_ALPHA:
> + return GL_SLUMINANCE_ALPHA;
> + default:
> + return format;
> + }
> +}
> +
> +
> +/**
> * Do error checking of format/type combinations for glReadPixels,
> * glDrawPixels and glTex[Sub]Image. Note that depending on the format
> * and type values, we may either generate GL_INVALID_OPERATION or
> diff --git a/src/mesa/main/glformats.h b/src/mesa/main/glformats.h
> index d553eae..24fbda9 100644
> --- a/src/mesa/main/glformats.h
> +++ b/src/mesa/main/glformats.h
> @@ -92,6 +92,9 @@ extern GLboolean
> _mesa_base_format_has_channel(GLenum base_format, GLenum pname);
>
> extern GLenum
> +_mesa_generic_compressed_format_to_uncompressed_format(GLenum format);
> +
> +extern GLenum
> _mesa_error_check_format_and_type(const struct gl_context *ctx,
> GLenum format, GLenum type);
>
> --
> 1.7.3.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
More information about the mesa-dev
mailing list