OSDN Git Service

fix color copying in twosided quads
authorKeith Whitwell <keith@tungstengraphics.com>
Sat, 28 Apr 2001 15:47:48 +0000 (15:47 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Sat, 28 Apr 2001 15:47:48 +0000 (15:47 +0000)
src/mesa/drivers/common/t_dd_tritmp.h

index 22eff7f..8780092 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: t_dd_tritmp.h,v 1.9 2001/04/28 08:39:18 keithw Exp $ */
+/* $Id: t_dd_tritmp.h,v 1.10 2001/04/28 15:47:48 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -389,21 +389,29 @@ static void TAG(quad)( GLcontext *ctx,
               (void)vbcolor;
 
               if (!DO_FLAT) {
+                 VERT_SAVE_RGBA( 0 );
+                 VERT_SAVE_RGBA( 1 );
+                 VERT_SAVE_RGBA( 2 );
                  VERT_SET_RGBA( v[0], vbcolor[e0] );
                  VERT_SET_RGBA( v[1], vbcolor[e1] );
                  VERT_SET_RGBA( v[2], vbcolor[e2] );
               }
+              VERT_SAVE_RGBA( 3 );
               VERT_SET_RGBA( v[3], vbcolor[e3] );
 
-              if (HAVE_SPEC && VB->SecondaryColorPtr[facing]) {
+              if (HAVE_SPEC && VB->SecondaryColorPtr[1]) {
                  GLchan (*vbspec)[4] = VB->SecondaryColorPtr[1]->Ptr;
                  ASSERT(VB->SecondaryColorPtr[1]->StrideB==4*sizeof(GLfloat));
 
                  if (!DO_FLAT) {
+                    VERT_SAVE_SPEC( 0 );
+                    VERT_SAVE_SPEC( 1 );
+                    VERT_SAVE_SPEC( 2 );
                     VERT_SET_SPEC( v[0], vbspec[e0] );
                     VERT_SET_SPEC( v[1], vbspec[e1] );
                     VERT_SET_SPEC( v[2], vbspec[e2] );
                  }
+                 VERT_SAVE_SPEC( 3 );
                  VERT_SET_SPEC( v[3], vbspec[e3] );
               }
            }