Perform check for dstclip[3] == 0.
authorKeith Whitwell <keith@tungstengraphics.com>
Thu, 8 Jan 2004 13:55:24 +0000 (13:55 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Thu, 8 Jan 2004 13:55:24 +0000 (13:55 +0000)
src/mesa/tnl/t_vertex.c

index 575db2a..7fe7194 100644 (file)
@@ -716,15 +716,17 @@ static void generic_interp( GLcontext *ctx,
 
    if (tnl->NeedNdcCoords) {
       const GLfloat *dstclip = VB->ClipPtr->data[edst];
-      const GLfloat w = 1.0 / dstclip[3];
-      GLfloat pos[4];
+      if (dstclip[3] != 0.0) {
+        const GLfloat w = 1.0 / dstclip[3];
+        GLfloat pos[4];
 
-      pos[0] = dstclip[0] * w;
-      pos[1] = dstclip[1] * w;
-      pos[2] = dstclip[2] * w;
-      pos[3] = w;
+        pos[0] = dstclip[0] * w;
+        pos[1] = dstclip[1] * w;
+        pos[2] = dstclip[2] * w;
+        pos[3] = w;
 
-      a[0].insert[4-1]( &a[0], vdst, pos );
+        a[0].insert[4-1]( &a[0], vdst, pos );
+      }
    }
    else {
       a[0].insert[4-1]( &a[0], vdst, VB->ClipPtr->data[edst] );