mesa: added _mesa_get_format_color_encoding()
authorBrian Paul <brianp@vmware.com>
Wed, 7 Oct 2009 00:56:29 +0000 (18:56 -0600)
committerBrian Paul <brianp@vmware.com>
Wed, 7 Oct 2009 00:56:29 +0000 (18:56 -0600)
src/mesa/main/formats.c
src/mesa/main/formats.h

index 9bc05093681f065c691708427e9688c28ca82a54..d1d8491391255c51e3ba653e4501931f6032ac9e 100644 (file)
@@ -637,6 +637,31 @@ _mesa_is_format_compressed(gl_format format)
 }
 
 
+/**
+ * Return color encoding for given format.
+ * \return GL_LINEAR or GL_SRGB
+ */
+GLenum
+_mesa_get_format_color_encoding(gl_format format)
+{
+   /* XXX this info should be encoded in gl_format_info */
+   switch (format) {
+   case MESA_FORMAT_SRGB8:
+   case MESA_FORMAT_SRGBA8:
+   case MESA_FORMAT_SARGB8:
+   case MESA_FORMAT_SL8:
+   case MESA_FORMAT_SLA8:
+   case MESA_FORMAT_SRGB_DXT1:
+   case MESA_FORMAT_SRGBA_DXT1:
+   case MESA_FORMAT_SRGBA_DXT3:
+   case MESA_FORMAT_SRGBA_DXT5:
+      return GL_SRGB;
+   default:
+      return GL_LINEAR;
+   }
+}
+
+
 /**
  * Return number of bytes needed to store an image of the given size
  * in the given format.
index 6aebb85f2be31dc75925ed1512d39f73e4fba29e..fcedbe9be212390609138d6e7cc79fd5c9756c4c 100644 (file)
@@ -152,6 +152,9 @@ _mesa_get_format_base_format(gl_format format);
 extern GLboolean
 _mesa_is_format_compressed(gl_format format);
 
+extern GLenum
+_mesa_get_format_color_encoding(gl_format format);
+
 extern GLuint
 _mesa_format_image_size(gl_format format, GLsizei width,
                         GLsizei height, GLsizei depth);