Mesa (master): mesa: fix unpacking of RG88_REV texels

Brian Paul brianp at kemper.freedesktop.org
Fri Dec 2 14:52:46 UTC 2011


Module: Mesa
Branch: master
Commit: 0be753a14333b1298649da1d889fe1fc7d3e9f43
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0be753a14333b1298649da1d889fe1fc7d3e9f43

Author: Brian Paul <brianp at vmware.com>
Date:   Wed Nov 30 20:35:02 2011 -0700

mesa: fix unpacking of RG88_REV texels

R should be in the high byte and G in the low byte for this format.

---

 src/mesa/main/format_unpack.c    |    4 ++--
 src/mesa/swrast/s_texfetch_tmp.h |    6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/mesa/main/format_unpack.c b/src/mesa/main/format_unpack.c
index 7da9546..079f71b 100644
--- a/src/mesa/main/format_unpack.c
+++ b/src/mesa/main/format_unpack.c
@@ -522,8 +522,8 @@ unpack_RG88_REV(const void *src, GLfloat dst[][4], GLuint n)
    const GLushort *s = ((const GLushort *) src);
    GLuint i;
    for (i = 0; i < n; i++) {
-      dst[i][RCOMP] = UBYTE_TO_FLOAT( s[i] & 0xff );
-      dst[i][GCOMP] = UBYTE_TO_FLOAT( s[i] >> 8 );
+      dst[i][RCOMP] = UBYTE_TO_FLOAT( s[i] >> 8 );
+      dst[i][GCOMP] = UBYTE_TO_FLOAT( s[i] & 0xff );
       dst[i][BCOMP] = 0.0;
       dst[i][ACOMP] = 1.0;
    }
diff --git a/src/mesa/swrast/s_texfetch_tmp.h b/src/mesa/swrast/s_texfetch_tmp.h
index 4ee05a5..88711b0 100644
--- a/src/mesa/swrast/s_texfetch_tmp.h
+++ b/src/mesa/swrast/s_texfetch_tmp.h
@@ -1040,8 +1040,8 @@ static void FETCH(f_rg88_rev)( const struct swrast_texture_image *texImage,
                            GLint i, GLint j, GLint k, GLfloat *texel )
 {
    const GLushort s = *TEXEL_ADDR(GLushort, texImage, i, j, k, 1);
-   texel[RCOMP] = UBYTE_TO_FLOAT( s & 0xff );
-   texel[GCOMP] = UBYTE_TO_FLOAT( s >> 8 );
+   texel[RCOMP] = UBYTE_TO_FLOAT( s >> 8 );
+   texel[GCOMP] = UBYTE_TO_FLOAT( s & 0xff );
    texel[BCOMP] = 0.0;
    texel[ACOMP] = 1.0;
 }
@@ -1052,7 +1052,7 @@ static void store_texel_rg88_rev(struct swrast_texture_image *texImage,
 {
    const GLubyte *rgba = (const GLubyte *) texel;
    GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 1);
-   *dst = PACK_COLOR_88(rgba[GCOMP], rgba[RCOMP]);
+   *dst = PACK_COLOR_88(rgba[RCOMP], rgba[GCOMP]);
 }
 #endif
 




More information about the mesa-commit mailing list