More HW_DIVIDE checks.
authorKeith Whitwell <keith@tungstengraphics.com>
Sun, 29 Apr 2001 08:44:30 +0000 (08:44 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Sun, 29 Apr 2001 08:44:30 +0000 (08:44 +0000)
src/mesa/drivers/common/t_dd_vb.c

index 6682118..deada17 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: t_dd_vb.c,v 1.10 2001/04/29 08:41:09 keithw Exp $ */
+/* $Id: t_dd_vb.c,v 1.11 2001/04/29 08:44:30 keithw Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -103,10 +103,9 @@ void TAG(translate_vertex)(GLcontext *ctx,
       dst->color[3] = src->tv.color.alpha;
    }
    else {
-      GLfloat oow = (HAVE_HW_DIVIDE) ? 1.0 / src->v.w : src->v.w;
-
       if (HAVE_HW_VIEWPORT) {
-        if (HAVE_HW_DIVIDE) {
+        if (HAVE_HW_DIVIDE && CHECK_HW_DIVIDE) {
+           GLfloat oow = 1.0 / src->v.w;
            dst->win[0] = s[0]  * src->v.x * oow + s[12];
            dst->win[1] = s[5]  * src->v.y * oow + s[13];
            dst->win[2] = s[10] * src->v.z * oow + s[14];
@@ -115,13 +114,14 @@ void TAG(translate_vertex)(GLcontext *ctx,
            dst->win[0] = s[0]  * src->v.x + s[12];
            dst->win[1] = s[5]  * src->v.y + s[13];
            dst->win[2] = s[10] * src->v.z + s[14];
-           dst->win[3] = oow;
+           dst->win[3] = src->v.w;
         }
       } else {
+        oow = src->v.w;
         dst->win[0] = UNVIEWPORT_X( src->v.x );
         dst->win[1] = UNVIEWPORT_Y( src->v.y );
         dst->win[2] = UNVIEWPORT_Z( src->v.z );
-        dst->win[3] = oow;
+        dst->win[3] = src->v.w;
       }
 
       dst->color[0] = src->v.color.red;