draw: Assert that only the first vetex may have flags set.
authorChia-I Wu <olv@lunarg.com>
Sat, 7 Aug 2010 08:14:50 +0000 (02:14 -0600)
committerChia-I Wu <olv@lunarg.com>
Fri, 6 Aug 2010 18:14:50 +0000 (02:14 +0800)
642d5ba79abc6a231a5fdabb3454b9b082b0d7f8 removed flags masking for
vertices other than the first one.  Add assertions to be on the safe
side.

src/gallium/auxiliary/draw/draw_pipe.c

index 070ac803c85c8a3fc81cb7f577c7301c5da5aa93..58995e07248f96e440722df2880f6dc36e72d5d1 100644 (file)
@@ -175,21 +175,31 @@ static void do_triangle( struct draw_context *draw,
  * higher bits of i0.  Otherwise, flags do not matter.
  */
 
-#define TRIANGLE(flags,i0,i1,i2)                               \
-   do_triangle( draw,                                          \
-                i0,  /* flags */                               \
-                verts + stride * (i0 & ~DRAW_PIPE_FLAG_MASK),  \
-                verts + stride * (i1),                         \
-                verts + stride * (i2) )
-
-#define LINE(flags,i0,i1)                                      \
-   do_line( draw,                                              \
-            i0, /* flags */                                    \
-            verts + stride * (i0 & ~DRAW_PIPE_FLAG_MASK),      \
-            verts + stride * (i1) )
+#define TRIANGLE(flags,i0,i1,i2)                                  \
+   do {                                                           \
+      assert(!((i1) & DRAW_PIPE_FLAG_MASK));                      \
+      assert(!((i2) & DRAW_PIPE_FLAG_MASK));                      \
+      do_triangle( draw,                                          \
+                   i0,  /* flags */                               \
+                   verts + stride * (i0 & ~DRAW_PIPE_FLAG_MASK),  \
+                   verts + stride * (i1),                         \
+                   verts + stride * (i2) );                       \
+   } while (0)
+
+#define LINE(flags,i0,i1)                                         \
+   do {                                                           \
+      assert(!((i1) & DRAW_PIPE_FLAG_MASK));                      \
+      do_line( draw,                                              \
+               i0, /* flags */                                    \
+               verts + stride * (i0 & ~DRAW_PIPE_FLAG_MASK),      \
+               verts + stride * (i1) );                           \
+   } while (0)
 
 #define POINT(i0)                               \
-   do_point( draw, verts + stride * (i0) )
+   do {                                         \
+      assert(!((i0) & DRAW_PIPE_FLAG_MASK));    \
+      do_point( draw, verts + stride * (i0) );  \
+   } while (0)
 
 #define GET_ELT(idx) (elts[idx])