diff options
-rw-r--r-- | src/mesa/drivers/dri/mach64/mach64_native_vb.c | 38 | ||||
-rw-r--r-- | src/mesa/drivers/dri/mach64/mach64_native_vbtmp.h | 51 |
2 files changed, 34 insertions, 55 deletions
diff --git a/src/mesa/drivers/dri/mach64/mach64_native_vb.c b/src/mesa/drivers/dri/mach64/mach64_native_vb.c index db7bcd33348..7872c206f58 100644 --- a/src/mesa/drivers/dri/mach64/mach64_native_vb.c +++ b/src/mesa/drivers/dri/mach64/mach64_native_vb.c @@ -78,18 +78,20 @@ void TAG(translate_vertex)(GLcontext *ctx, dst->win[3] = LE32_IN_FLOAT( p++ ); case NOTEX_VERTEX_FORMAT: - dst->specular[2] = *((GLubyte *)p)++; - dst->specular[1] = *((GLubyte *)p)++; - dst->specular[0] = *((GLubyte *)p)++; - dst->fog = *((GLubyte *)p)++; + dst->specular[2] = ((GLubyte *)p)[0]; + dst->specular[1] = ((GLubyte *)p)[1]; + dst->specular[0] = ((GLubyte *)p)[2]; + dst->fog = ((GLubyte *)p)[3]; + p++; case TINY_VERTEX_FORMAT: dst->win[2] = UNVIEWPORT_Z( LE32_IN( p++ ) ); - dst->color[2] = *((GLubyte *)p)++; - dst->color[1] = *((GLubyte *)p)++; - dst->color[0] = *((GLubyte *)p)++; - dst->color[3] = *((GLubyte *)p)++; + dst->color[2] = ((GLubyte *)p)[0]; + dst->color[1] = ((GLubyte *)p)[1]; + dst->color[0] = ((GLubyte *)p)[2]; + dst->color[3] = ((GLubyte *)p)[3]; + p++; { GLuint xy = LE32_IN( p ); @@ -149,11 +151,11 @@ void TAG(print_vertex)( GLcontext *ctx, const VERTEX *v ) { GLubyte r, g, b, a; - b = *((GLubyte *)p)++; - g = *((GLubyte *)p)++; - r = *((GLubyte *)p)++; - a = *((GLubyte *)p)++; - + b = ((GLubyte *)p)[0]; + g = ((GLubyte *)p)[1]; + r = ((GLubyte *)p)[2]; + a = ((GLubyte *)p)[3]; + p++; fprintf(stderr, "spec: r %d g %d b %d a %d\n", r, g, b, a); } @@ -165,11 +167,11 @@ void TAG(print_vertex)( GLcontext *ctx, const VERTEX *v ) z = LE32_IN( p++ ) / 65536.0; - b = *((GLubyte *)p)++; - g = *((GLubyte *)p)++; - r = *((GLubyte *)p)++; - a = *((GLubyte *)p)++; - + b = ((GLubyte *)p)[0]; + g = ((GLubyte *)p)[1]; + r = ((GLubyte *)p)[2]; + a = ((GLubyte *)p)[3]; + p++; xy = LE32_IN( p ); x = (GLfloat)(GLshort)( xy >> 16 ) / 4.0; y = (GLfloat)(GLshort)( xy & 0xffff ) / 4.0; diff --git a/src/mesa/drivers/dri/mach64/mach64_native_vbtmp.h b/src/mesa/drivers/dri/mach64/mach64_native_vbtmp.h index 623e1eae3b4..f64b808ee75 100644 --- a/src/mesa/drivers/dri/mach64/mach64_native_vbtmp.h +++ b/src/mesa/drivers/dri/mach64/mach64_native_vbtmp.h @@ -274,14 +274,11 @@ static void TAG(emit)( GLcontext *ctx, #endif #if DO_RGBA - UNCLAMPED_FLOAT_TO_UBYTE(*((GLubyte *)p), col[0][2]); - *((GLubyte *)p)++; - UNCLAMPED_FLOAT_TO_UBYTE(*((GLubyte *)p), col[0][1]); - *((GLubyte *)p)++; - UNCLAMPED_FLOAT_TO_UBYTE(*((GLubyte *)p), col[0][0]); - *((GLubyte *)p)++; - UNCLAMPED_FLOAT_TO_UBYTE(*((GLubyte *)p), col[0][3]); - *((GLubyte *)p)++; + UNCLAMPED_FLOAT_TO_UBYTE(((GLubyte *)p)[0], col[0][2]); + UNCLAMPED_FLOAT_TO_UBYTE(((GLubyte *)p)[1], col[0][1]); + UNCLAMPED_FLOAT_TO_UBYTE(((GLubyte *)p)[2], col[0][0]); + UNCLAMPED_FLOAT_TO_UBYTE(((GLubyte *)p)[3], col[0][3]); + p++; STRIDE_4F(col, col_stride); #else p++; @@ -473,45 +470,25 @@ static void TAG(interp)( GLcontext *ctx, #endif /* !DO_TEX0 */ #if DO_SPEC - INTERP_UB( t, *(GLubyte *)dst, *(GLubyte *)out, *(GLubyte *)in ); /* VERTEX_?_SPEC_B */ - ((GLubyte *)dst)++; ((GLubyte *)out)++; ((GLubyte *)in)++; - - INTERP_UB( t, *(GLubyte *)dst, *(GLubyte *)out, *(GLubyte *)in ); /* VERTEX_?_SPEC_G */ - ((GLubyte *)dst)++; ((GLubyte *)out)++; ((GLubyte *)in)++; - - INTERP_UB( t, *(GLubyte *)dst, *(GLubyte *)out, *(GLubyte *)in ); /* VERTEX_?_SPEC_R */ -#if DO_FOG - ((GLubyte *)dst)++; ((GLubyte *)out)++; ((GLubyte *)in)++; -#else /* !DO_FOG */ - ((GLubyte *)dst) += 2; ((GLubyte *)out) += 2; ((GLubyte *)in) += 2; -#endif /* !DO_FOG */ -#elif DO_FOG - ((GLubyte *)dst) += 3; ((GLubyte *)out) += 3; ((GLubyte *)in) += 3; + INTERP_UB( t, ((GLubyte *)dst)[0], ((GLubyte *)out)[0], ((GLubyte *)in)[0] ); /* VERTEX_?_SPEC_B */ + INTERP_UB( t, ((GLubyte *)dst)[1], ((GLubyte *)out)[1], ((GLubyte *)in)[1] ); /* VERTEX_?_SPEC_G */ + INTERP_UB( t, ((GLubyte *)dst)[2], ((GLubyte *)out)[2], ((GLubyte *)in)[2] ); /* VERTEX_?_SPEC_R */ #endif #if DO_FOG - INTERP_UB( t, *(GLubyte *)dst, *(GLubyte *)out, *(GLubyte *)in ); /* VERTEX_?_SPEC_A */ - ((GLubyte *)dst)++; ((GLubyte *)out)++; ((GLubyte *)in)++; + INTERP_UB( t, ((GLubyte *)dst)[3], ((GLubyte *)out)[3], ((GLubyte *)in)[3] ); /* VERTEX_?_SPEC_A */ #endif /* DO_FOG */ -#if !DO_SPEC && !DO_FOG dst++; out++; in++; -#endif LE32_OUT( dst, VIEWPORT_Z( dstclip[2] * w ) ); /* VERTEX_?_Z */ dst++; out++; in++; - INTERP_UB( t, *(GLubyte *)dst, *(GLubyte *)out, *(GLubyte *)in ); /* VERTEX_?_B */ - ((GLubyte *)dst)++; ((GLubyte *)out)++; ((GLubyte *)in)++; - - INTERP_UB( t, *(GLubyte *)dst, *(GLubyte *)out, *(GLubyte *)in ); /* VERTEX_?_G */ - ((GLubyte *)dst)++; ((GLubyte *)out)++; ((GLubyte *)in)++; - - INTERP_UB( t, *(GLubyte *)dst, *(GLubyte *)out, *(GLubyte *)in ); /* VERTEX_?_R */ - ((GLubyte *)dst)++; ((GLubyte *)out)++; ((GLubyte *)in)++; - - INTERP_UB( t, *(GLubyte *)dst, *(GLubyte *)out, *(GLubyte *)in ); /* VERTEX_?_A */ - ((GLubyte *)dst)++; /* ((GLubyte *)out)++; ((GLubyte *)in)++; */ + INTERP_UB( t, ((GLubyte *)dst)[0], ((GLubyte *)out)[0], ((GLubyte *)in)[0] ); /* VERTEX_?_B */ + INTERP_UB( t, ((GLubyte *)dst)[1], ((GLubyte *)out)[1], ((GLubyte *)in)[1] ); /* VERTEX_?_G */ + INTERP_UB( t, ((GLubyte *)dst)[2], ((GLubyte *)out)[2], ((GLubyte *)in)[2] ); /* VERTEX_?_R */ + INTERP_UB( t, ((GLubyte *)dst)[3], ((GLubyte *)out)[3], ((GLubyte *)in)[3] ); /* VERTEX_?_A */ + dst++; /*out++; in++;*/ LE32_OUT( dst, (VIEWPORT_X( dstclip[0] * w ) << 16) | /* VERTEX_?_X */ |