mesa: added _mesa_get_compressed_fetch_func()
authorBrian Paul <brianp@vmware.com>
Sat, 8 Dec 2012 22:19:44 +0000 (15:19 -0700)
committerBrian Paul <brianp@vmware.com>
Fri, 14 Dec 2012 13:33:08 +0000 (06:33 -0700)
src/mesa/main/texcompress.c
src/mesa/main/texcompress.h

index 372a483faaabecaac21401f639a028d55c8e718b..9ad6a8b2e53c3f5d40e00f911d2c1b570322cbed 100644 (file)
@@ -522,6 +522,39 @@ _mesa_compressed_image_address(GLint col, GLint row, GLint img,
 }
 
 
+/**
+ * Return a texel-fetch function for the given format, or NULL if
+ * invalid format.
+ */
+compressed_fetch_func
+_mesa_get_compressed_fetch_func(gl_format format)
+{
+   switch (format) {
+   case MESA_FORMAT_RGB_DXT1:
+   case MESA_FORMAT_RGBA_DXT1:
+   case MESA_FORMAT_RGBA_DXT3:
+   case MESA_FORMAT_RGBA_DXT5:
+      return _mesa_get_dxt_fetch_func(format);
+   case MESA_FORMAT_RGB_FXT1:
+   case MESA_FORMAT_RGBA_FXT1:
+      return _mesa_get_fxt_fetch_func(format);
+   case MESA_FORMAT_RED_RGTC1:
+   case MESA_FORMAT_L_LATC1:
+   case MESA_FORMAT_SIGNED_RED_RGTC1:
+   case MESA_FORMAT_SIGNED_L_LATC1:
+   case MESA_FORMAT_RG_RGTC2:
+   case MESA_FORMAT_LA_LATC2:
+   case MESA_FORMAT_SIGNED_RG_RGTC2:
+   case MESA_FORMAT_SIGNED_LA_LATC2:
+      return _mesa_get_compressed_rgtc_func(format);
+   case MESA_FORMAT_ETC1_RGB8:
+      return _mesa_get_etc_fetch_func(format);
+   default:
+      return NULL;
+   }
+}
+
+
 /**
  * Decompress a compressed texture image, returning a GL_RGBA/GL_FLOAT image.
  * \param srcRowStride  stride in bytes between rows of blocks in the
index 7e3de0e9d5b84c3ad8d3630904790c62c513da1b..b45e7cf1b880d9575aacbd24ae6546fc590d2683 100644 (file)
@@ -56,6 +56,9 @@ typedef void (*compressed_fetch_func)(const GLubyte *map,
                                       GLint i, GLint j, GLint k,
                                       GLfloat *texel);
 
+extern compressed_fetch_func
+_mesa_get_compressed_fetch_func(gl_format format);
+
 
 extern void
 _mesa_decompress_image(gl_format format, GLuint width, GLuint height,