[Mesa-dev] [PATCH 05/27] mesa: Add necessary support to decode multiple ETC2 texture formats
Ian Romanick
idr at freedesktop.org
Tue Nov 6 15:17:03 PST 2012
On 10/19/2012 04:28 PM, Anuj Phogat wrote:
> Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
It seems like this patch should just be squashed into patch 3.
> ---
> src/mesa/main/texcompress_etc.c | 17 +++++++++--------
> src/mesa/main/texcompress_etc.h | 3 ++-
> 2 files changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/src/mesa/main/texcompress_etc.c b/src/mesa/main/texcompress_etc.c
> index cf8b687..8294144 100644
> --- a/src/mesa/main/texcompress_etc.c
> +++ b/src/mesa/main/texcompress_etc.c
> @@ -23,9 +23,9 @@
>
> /**
> * \file texcompress_etc.c
> + * GL_OES_compressed_ETC1_RGB8_texture support.
> * Supported ETC2 texture formats are:
> * GL_COMPRESSED_RGB8_ETC2
> - * GL_OES_compressed_ETC1_RGB8_texture support.
> */
>
>
> @@ -289,7 +289,7 @@ etc2_clamp(int color)
> }
>
> static void
> -etc2_parse_block(struct etc2_block *block, const GLubyte *src)
> +etc2_rgb8_parse_block(struct etc2_block *block, const GLubyte *src)
> {
> unsigned i;
> GLboolean diffbit = src[3] & 0x2;
> @@ -408,7 +408,7 @@ etc2_parse_block(struct etc2_block *block, const GLubyte *src)
> }
>
> static void
> -etc2_fetch_texel(const struct etc2_block *block,
> +etc2_rgb8_fetch_texel(const struct etc2_block *block,
> int x, int y, GLubyte *dst)
> {
> const GLubyte *base_color;
> @@ -475,12 +475,12 @@ etc2_unpack_rgb8(uint8_t *dst_row,
> const uint8_t *src = src_row;
>
> for (x = 0; x < width; x+= bw) {
> - etc2_parse_block(&block, src);
> + etc2_rgb8_parse_block(&block, src);
>
> for (j = 0; j < bh; j++) {
> uint8_t *dst = dst_row + (y + j) * dst_stride + x * comps;
> for (i = 0; i < bw; i++) {
> - etc2_fetch_texel(&block, i, j, dst);
> + etc2_rgb8_fetch_texel(&block, i, j, dst);
> dst[3] = 255;
> dst += comps;
> }
> @@ -514,8 +514,8 @@ _mesa_fetch_texel_2d_f_etc2_rgb8(const struct swrast_texture_image *texImage,
> src = (const GLubyte *) texImage->Map +
> (((texImage->RowStride + 3) / 4) * (j / 4) + (i / 4)) * 8;
>
> - etc2_parse_block(&block, src);
> - etc2_fetch_texel(&block, i % 4, j % 4, dst);
> + etc2_rgb8_parse_block(&block, src);
> + etc2_rgb8_fetch_texel(&block, i % 4, j % 4, dst);
>
> texel[RCOMP] = UBYTE_TO_FLOAT(dst[0]);
> texel[GCOMP] = UBYTE_TO_FLOAT(dst[1]);
> @@ -541,7 +541,8 @@ _mesa_unpack_etc2_format(uint8_t *dst_row,
> const uint8_t *src_row,
> unsigned src_stride,
> unsigned src_width,
> - unsigned src_height)
> + unsigned src_height,
> + gl_format format)
> {
> etc2_unpack_rgb8(dst_row, dst_stride,
> src_row, src_stride,
> diff --git a/src/mesa/main/texcompress_etc.h b/src/mesa/main/texcompress_etc.h
> index 8c6a40d..2508f5f 100644
> --- a/src/mesa/main/texcompress_etc.h
> +++ b/src/mesa/main/texcompress_etc.h
> @@ -56,5 +56,6 @@ _mesa_unpack_etc2_format(uint8_t *dst_row,
> const uint8_t *src_row,
> unsigned src_stride,
> unsigned src_width,
> - unsigned src_height);
> + unsigned src_height,
> + gl_format format);
> #endif
>
More information about the mesa-dev
mailing list