small bug wrt culling
authorDaniel Borca <dborca@users.sourceforge.net>
Fri, 12 Dec 2003 08:19:20 +0000 (08:19 +0000)
committerDaniel Borca <dborca@users.sourceforge.net>
Fri, 12 Dec 2003 08:19:20 +0000 (08:19 +0000)
src/mesa/drivers/glide/fxtris.c

index 9be2e1a88f8e014eb890aed4030dca9ae8bbdde5..56563fc4123bf5fa8bca57f457a1b06415a8b581 100644 (file)
@@ -389,9 +389,17 @@ static struct {
 #define VERT_X(_v) _v->x
 #define VERT_Y(_v) _v->y
 #define VERT_Z(_v) _v->ooz
-#define AREA_IS_CCW( a ) IS_NEGATIVE(a) /*(a < 0)*/
 #define GET_VERTEX(e) (fxMesa->verts + e)
 
+#ifdef USE_IEEE
+/* type-punning, keep -fstrict-aliasing happy */
+typedef union { GLfloat f; GLuint u; } fu_type;
+/* 0/1 value, to allow XOR'ing with other booleans */
+#define AREA_IS_CCW( a ) (((fu_type *)&(a))->u >> 31)
+#else
+#define AREA_IS_CCW( a ) (a < 0)
+#endif
+
 #define VERT_SET_RGBA( dst, f )                        \
 do {                                           \
    UNCLAMPED_FLOAT_TO_UBYTE(dst->pargb[2], f[0]);\