3 static void FUNC( ARGS
,
10 for (i
= 0; i
< count
; i
++) {
16 for (i
= 0; i
+1 < count
; i
+= 2) {
17 LINE( DRAW_PIPE_RESET_STIPPLE
,
23 case PIPE_PRIM_LINE_LOOP
:
25 flags
= DRAW_PIPE_RESET_STIPPLE
;
27 for (i
= 1; i
< count
; i
++, flags
= 0) {
39 case PIPE_PRIM_LINE_STRIP
:
40 flags
= DRAW_PIPE_RESET_STIPPLE
;
41 for (i
= 1; i
< count
; i
++, flags
= 0) {
48 case PIPE_PRIM_TRIANGLES
:
49 for (i
= 0; i
+2 < count
; i
+= 3) {
50 if (draw
->rasterizer
->flatshade_first
) {
51 /* put provoking vertex in last pos for clipper */
52 TRIANGLE( DRAW_PIPE_RESET_STIPPLE
| DRAW_PIPE_EDGE_FLAG_ALL
,
58 TRIANGLE( DRAW_PIPE_RESET_STIPPLE
| DRAW_PIPE_EDGE_FLAG_ALL
,
66 case PIPE_PRIM_TRIANGLE_STRIP
:
68 printf("%s tri strip %d %d %d\n",
75 for (i
= 0; i
+2 < count
; i
++) {
76 TRIANGLE( DRAW_PIPE_RESET_STIPPLE
| DRAW_PIPE_EDGE_FLAG_ALL
,
83 for (i
= 0; i
+2 < count
; i
++) {
84 TRIANGLE( DRAW_PIPE_RESET_STIPPLE
| DRAW_PIPE_EDGE_FLAG_ALL
,
92 case PIPE_PRIM_TRIANGLE_FAN
:
95 for (i
= 0; i
+2 < count
; i
++) {
96 TRIANGLE( DRAW_PIPE_RESET_STIPPLE
| DRAW_PIPE_EDGE_FLAG_ALL
,
103 for (i
= 0; i
+2 < count
; i
++) {
104 TRIANGLE( DRAW_PIPE_RESET_STIPPLE
| DRAW_PIPE_EDGE_FLAG_ALL
,
114 case PIPE_PRIM_QUADS
:
116 for (i
= 0; i
+3 < count
; i
+= 4) {
124 for (i
= 0; i
+3 < count
; i
+= 4) {
133 case PIPE_PRIM_QUAD_STRIP
:
135 for (i
= 0; i
+3 < count
; i
+= 2) {
143 for (i
= 0; i
+3 < count
; i
+= 2) {
152 case PIPE_PRIM_POLYGON
:
154 /* These bitflags look a little odd because we submit the
155 * vertices as (1,2,0) to satisfy flatshade requirements.
157 const ushort edge_first
= DRAW_PIPE_EDGE_FLAG_2
;
158 const ushort edge_middle
= DRAW_PIPE_EDGE_FLAG_0
;
159 const ushort edge_last
= DRAW_PIPE_EDGE_FLAG_1
;
161 flags
= DRAW_PIPE_RESET_STIPPLE
| edge_first
| edge_middle
;
163 for (i
= 0; i
+2 < count
; i
++, flags
= edge_middle
) {