summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/texcompress.c
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2012-12-08 15:19:44 -0700
committerBrian Paul <brianp@vmware.com>2012-12-14 06:33:08 -0700
commitccbe7db1e6ab4a731fbd11445c7b5c2aca00fc4e (patch)
treec2206a32b8f3653a89262cb0cfbf79cf72dbd3f9 /src/mesa/main/texcompress.c
parentad3e39bb6dcb139c3eb6a460833f30ba0fb3e974 (diff)
downloadexternal_mesa3d-ccbe7db1e6ab4a731fbd11445c7b5c2aca00fc4e.zip
external_mesa3d-ccbe7db1e6ab4a731fbd11445c7b5c2aca00fc4e.tar.gz
external_mesa3d-ccbe7db1e6ab4a731fbd11445c7b5c2aca00fc4e.tar.bz2
mesa: added _mesa_get_compressed_fetch_func()
Diffstat (limited to 'src/mesa/main/texcompress.c')
-rw-r--r--src/mesa/main/texcompress.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/mesa/main/texcompress.c b/src/mesa/main/texcompress.c
index 372a483..9ad6a8b 100644
--- a/src/mesa/main/texcompress.c
+++ b/src/mesa/main/texcompress.c
@@ -523,6 +523,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
* compressed source image.