Fix r300SetTexOffset for big endian platforms.
authorMichel Dänzer <michel@tungstengraphics.com>
Wed, 30 May 2007 13:37:42 +0000 (15:37 +0200)
committerMichel Dänzer <michel@tungstengraphics.com>
Wed, 30 May 2007 13:37:42 +0000 (15:37 +0200)
This was broken by the unification of the texture format table.

src/mesa/drivers/dri/r300/r300_texstate.c

index eeaba584df8f9f20a103c11dd0b02fa9400e6515..ac5a5ba1cd49f21b3eead864d9f627787993aa80 100644 (file)
@@ -501,7 +501,6 @@ void r300SetTexOffset(__DRIcontext * pDRICtx, GLint texname,
        struct gl_texture_object *tObj =
            _mesa_lookup_texture(rmesa->radeon.glCtx, texname);
        r300TexObjPtr t;
-       int idx;
 
        if (!tObj)
                return;
@@ -518,24 +517,24 @@ void r300SetTexOffset(__DRIcontext * pDRICtx, GLint texname,
 
        switch (depth) {
        case 32:
-               idx = 2;
+               t->format = R300_EASY_TX_FORMAT(X, Y, Z, W, W8Z8Y8X8);
+               t->filter |= tx_table[2].filter;
                t->pitch_reg /= 4;
                break;
        case 24:
        default:
-               idx = 4;
+               t->format = R300_EASY_TX_FORMAT(X, Y, Z, ONE, W8Z8Y8X8);
+               t->filter |= tx_table[4].filter;
                t->pitch_reg /= 4;
                break;
        case 16:
-               idx = 5;
+               t->format = R300_EASY_TX_FORMAT(X, Y, Z, ONE, Z5Y6X5);
+               t->filter |= tx_table[5].filter;
                t->pitch_reg /= 2;
                break;
        }
 
        t->pitch_reg--;
-
-       t->format = tx_table[idx].format;
-       t->filter |= tx_table[idx].filter;
 }
 
 static GLboolean r300UpdateTextureUnit(GLcontext * ctx, int unit)