On Fri, Aug 24, 2012 at 7:53 AM, Brian Paul <[email protected]> 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 > [email protected] > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Reviewed-by: Anuj Phogat <[email protected]> _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
