From b1755535ecfb5bacf21c3118c359196ad81b5e68 Mon Sep 17 00:00:00 2001 From: Eduardo Lima Mitev Date: Wed, 3 Feb 2016 13:40:27 +0100 Subject: [PATCH] mesa/glformats: Add a helper function _mesa_is_srgb_format() Returns true if the passed format is an sRGB format, false otherwise. Reviewed-by: Dave Airlie --- src/mesa/main/glformats.c | 45 +++++++++++++++++++++++++++++++++++++++ src/mesa/main/glformats.h | 3 +++ 2 files changed, 48 insertions(+) diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c index 3df845576a9..d29d70d4604 100644 --- a/src/mesa/main/glformats.c +++ b/src/mesa/main/glformats.c @@ -1338,6 +1338,51 @@ _mesa_is_compressed_format(const struct gl_context *ctx, GLenum format) } } +/** + * Test if the given format represents an sRGB format. + * \param format the GL format (can be an internal format) + * \return GL_TRUE if format is sRGB, GL_FALSE otherwise + */ +GLboolean +_mesa_is_srgb_format(GLenum format) +{ + switch (format) { + case GL_SRGB: + case GL_SRGB8: + case GL_SRGB_ALPHA: + case GL_SRGB8_ALPHA8: + case GL_COMPRESSED_SRGB: + case GL_COMPRESSED_SRGB_ALPHA: + case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT: + case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: + case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: + case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: + case GL_COMPRESSED_SRGB8_ETC2: + case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: + case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: + case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM: + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: + case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: + return GL_TRUE; + default: + break; + } + + return GL_FALSE; +} + /** * Convert various unpack formats to the corresponding base format. */ diff --git a/src/mesa/main/glformats.h b/src/mesa/main/glformats.h index b3668556da2..00d2767085d 100644 --- a/src/mesa/main/glformats.h +++ b/src/mesa/main/glformats.h @@ -101,6 +101,9 @@ _mesa_is_depth_or_stencil_format(GLenum format); extern GLboolean _mesa_is_compressed_format(const struct gl_context *ctx, GLenum format); +extern GLboolean +_mesa_is_srgb_format(GLenum format); + extern GLenum _mesa_base_format_to_integer_format(GLenum format); -- 2.30.2