mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
mesa: add new texel fetch code for fxt formats
This commit is contained in:
parent
a774eaa57e
commit
141d299965
2 changed files with 45 additions and 0 deletions
|
|
@ -1643,3 +1643,45 @@ fxt1_decode_1 (const void *texture, GLint stride, /* in pixels */
|
|||
|
||||
decode_1[mode](code, t, rgba);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
static void
|
||||
fetch_rgb_fxt1(const GLubyte *map, const GLuint imageOffsets[],
|
||||
GLint rowStride, GLint i, GLint j, GLint k, GLfloat *texel)
|
||||
{
|
||||
GLubyte rgba[4];
|
||||
fxt1_decode_1(map, rowStride, i, j, rgba);
|
||||
texel[RCOMP] = UBYTE_TO_FLOAT(rgba[RCOMP]);
|
||||
texel[GCOMP] = UBYTE_TO_FLOAT(rgba[GCOMP]);
|
||||
texel[BCOMP] = UBYTE_TO_FLOAT(rgba[BCOMP]);
|
||||
texel[ACOMP] = 1.0F;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
fetch_rgba_fxt1(const GLubyte *map, const GLuint imageOffsets[],
|
||||
GLint rowStride, GLint i, GLint j, GLint k, GLfloat *texel)
|
||||
{
|
||||
GLubyte rgba[4];
|
||||
fxt1_decode_1(map, rowStride, i, j, rgba);
|
||||
texel[RCOMP] = UBYTE_TO_FLOAT(rgba[RCOMP]);
|
||||
texel[GCOMP] = UBYTE_TO_FLOAT(rgba[GCOMP]);
|
||||
texel[BCOMP] = UBYTE_TO_FLOAT(rgba[BCOMP]);
|
||||
texel[ACOMP] = UBYTE_TO_FLOAT(rgba[ACOMP]);
|
||||
}
|
||||
|
||||
|
||||
compressed_fetch_func
|
||||
_mesa_get_fxt_fetch_func(gl_format format)
|
||||
{
|
||||
switch (format) {
|
||||
case MESA_FORMAT_RGB_FXT1:
|
||||
return fetch_rgb_fxt1;
|
||||
case MESA_FORMAT_RGBA_FXT1:
|
||||
return fetch_rgba_fxt1;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,4 +45,7 @@ extern void
|
|||
_mesa_fetch_texel_2d_f_rgb_fxt1(const struct swrast_texture_image *texImage,
|
||||
GLint i, GLint j, GLint k, GLfloat *texel);
|
||||
|
||||
compressed_fetch_func
|
||||
_mesa_get_fxt_fetch_func(gl_format format);
|
||||
|
||||
#endif /* TEXCOMPRESS_FXT1_H */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue