X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmesa%2Fdrivers%2Fdri%2Fmach64%2Fmach64_native_vb.c;h=519ec81e548a213481c9488536c291e85b696233;hb=2cf5fd48d1586f961910a14324a457854cb66221;hp=0bf9afacbf6a4281d14ab0f03e1155f5c47461b8;hpb=d2f0be152e3eeb88639f44c13adfb4a23688a23b;p=mesa.git diff --git a/src/mesa/drivers/dri/mach64/mach64_native_vb.c b/src/mesa/drivers/dri/mach64/mach64_native_vb.c index 0bf9afacbf6..519ec81e548 100644 --- a/src/mesa/drivers/dri/mach64/mach64_native_vb.c +++ b/src/mesa/drivers/dri/mach64/mach64_native_vb.c @@ -52,14 +52,14 @@ void TAG(translate_vertex)(GLcontext *ctx, { float rhw = 1.0 / LE32_IN_FLOAT( p + 2 ); - dst->texcoord[1][0] = rhw*LE32_IN_FLOAT( p++ ); - dst->texcoord[1][1] = rhw*LE32_IN_FLOAT( p++ ); + dst->attrib[FRAG_ATTRIB_TEX1][0] = rhw*LE32_IN_FLOAT( p++ ); + dst->attrib[FRAG_ATTRIB_TEX1][1] = rhw*LE32_IN_FLOAT( p++ ); } #else - dst->texcoord[1][0] = LE32_IN_FLOAT( p++ ); - dst->texcoord[1][1] = LE32_IN_FLOAT( p++ ); + dst->attrib[FRAG_ATTRIB_TEX1][0] = LE32_IN_FLOAT( p++ ); + dst->attrib[FRAG_ATTRIB_TEX1][1] = LE32_IN_FLOAT( p++ ); #endif - dst->texcoord[1][3] = 1.0; + dst->attrib[FRAG_ATTRIB_TEX1][3] = 1.0; p++; case TEX0_VERTEX_FORMAT: @@ -67,29 +67,31 @@ void TAG(translate_vertex)(GLcontext *ctx, { float rhw = 1.0 / LE32_IN_FLOAT( p + 2 ); - dst->texcoord[0][0] = rhw*LE32_IN_FLOAT( p++ ); - dst->texcoord[0][1] = rhw*LE32_IN_FLOAT( p++ ); + dst->attrib[FRAG_ATTRIB_TEX0][0] = rhw*LE32_IN_FLOAT( p++ ); + dst->attrib[FRAG_ATTRIB_TEX0][1] = rhw*LE32_IN_FLOAT( p++ ); } #else - dst->texcoord[0][0] = LE32_IN_FLOAT( p++ ); - dst->texcoord[0][1] = LE32_IN_FLOAT( p++ ); + dst->attrib[FRAG_ATTRIB_TEX0][0] = LE32_IN_FLOAT( p++ ); + dst->attrib[FRAG_ATTRIB_TEX0][1] = LE32_IN_FLOAT( p++ ); #endif - dst->texcoord[0][3] = 1.0; + dst->attrib[FRAG_ATTRIB_TEX0][3] = 1.0; 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; @@ -206,13 +208,15 @@ INTERP_QUALIFIER void TAG(interp_extras)( GLcontext *ctx, struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; if (VB->ColorPtr[1]) { - INTERP_4CHAN( t, + assert(VB->ColorPtr[1]->stride == 4 * sizeof(GLfloat)); + + INTERP_4F( t, GET_COLOR(VB->ColorPtr[1], dst), GET_COLOR(VB->ColorPtr[1], out), GET_COLOR(VB->ColorPtr[1], in) ); if (VB->SecondaryColorPtr[1]) { - INTERP_3CHAN( t, + INTERP_3F( t, GET_COLOR(VB->SecondaryColorPtr[1], dst), GET_COLOR(VB->SecondaryColorPtr[1], out), GET_COLOR(VB->SecondaryColorPtr[1], in) ); @@ -233,12 +237,12 @@ INTERP_QUALIFIER void TAG(copy_pv_extras)( GLcontext *ctx, struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; if (VB->ColorPtr[1]) { - COPY_CHAN4( GET_COLOR(VB->ColorPtr[1], dst), - GET_COLOR(VB->ColorPtr[1], src) ); + COPY_4FV( GET_COLOR(VB->ColorPtr[1], dst), + GET_COLOR(VB->ColorPtr[1], src) ); if (VB->SecondaryColorPtr[1]) { - COPY_CHAN4( GET_COLOR(VB->SecondaryColorPtr[1], dst), - GET_COLOR(VB->SecondaryColorPtr[1], src) ); + COPY_4FV( GET_COLOR(VB->SecondaryColorPtr[1], dst), + GET_COLOR(VB->SecondaryColorPtr[1], src) ); } }