Merge branch 'origin' into glsl-compiler-1
[mesa.git] / src / mesa / drivers / dri / mach64 / mach64_native_vb.c
index 0bf9afacbf6a4281d14ab0f03e1155f5c47461b8..519ec81e548a213481c9488536c291e85b696233 100644 (file)
@@ -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) );
       }
    }