mesa: added _mesa_get_compressed_fetch_func()

This commit is contained in:
Brian Paul 2012-12-08 15:19:44 -07:00
parent ad3e39bb6d
commit ccbe7db1e6
2 changed files with 36 additions and 0 deletions

View 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

View 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,