make sure we avoid assertion failure wrt VB->ColorPtr[1]->stride
authorDaniel Borca <dborca@users.sourceforge.net>
Wed, 19 Jan 2005 07:57:52 +0000 (07:57 +0000)
committerDaniel Borca <dborca@users.sourceforge.net>
Wed, 19 Jan 2005 07:57:52 +0000 (07:57 +0000)
src/mesa/drivers/glide/fxvb.c

index 8b731355b5172dfd5ecccd6ca802553bac7ea049..34ada61f4e444d342105e18563a046567b75b34f 100644 (file)
@@ -104,17 +104,18 @@ static void interp_extras( GLcontext *ctx,
 {
    struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
 
-   /* If stride is zero, ColorPtr[1] is constant across the VB, so
-    * there is no point interpolating between two values as they will
-    * be identical.
-    */
    if (VB->ColorPtr[1]) {
-      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 stride is zero, ColorPtr[1] is constant across the VB, so
+       * there is no point interpolating between two values as they will
+       * be identical.  This case is handled in t_dd_tritmp.h
+       */
+      if (VB->ColorPtr[1]->stride) {
+        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_3F( t,