Home | History | Annotate | Download | only in draw

Lines Matching refs:stage

29  * \brief  Drawing stage for handling glPolygonMode(line/point).
44 struct draw_stage stage;
56 static inline struct unfilled_stage *unfilled_stage( struct draw_stage *stage )
58 return (struct unfilled_stage *)stage;
62 inject_front_face_info(struct draw_stage *stage,
65 struct unfilled_stage *unfilled = unfilled_stage(stage);
68 (stage->draw->rasterizer->front_ccw && ccw) ||
69 (!stage->draw->rasterizer->front_ccw && !ccw));
89 static void point(struct draw_stage *stage,
97 stage->next->point(stage->next, &tmp);
100 static void line(struct draw_stage *stage,
110 stage->next->line(stage->next, &tmp);
114 static void points(struct draw_stage *stage,
121 inject_front_face_info(stage, header);
124 point(stage, header, v0);
126 point(stage, header, v1);
128 point(stage, header, v2);
132 static void lines(struct draw_stage *stage,
141 * XXX could revisit this. The only stage which cares is the line
142 * stipple stage. Could just emit correct reset flags here and not
146 * using vbuf (vbuf stage reset_stipple_counter does nothing).
148 stage->next->reset_stipple_counter(stage->next);
150 inject_front_face_info(stage, header);
153 line(stage, header, v2, v0);
155 line(stage, header, v0, v1);
157 line(stage, header, v1, v2);
186 static void unfilled_tri( struct draw_stage *stage,
189 struct unfilled_stage *unfilled = unfilled_stage(stage);
198 stage->next->tri( stage->next, header );
201 lines( stage, header );
204 points( stage, header );
212 static void unfilled_first_tri( struct draw_stage *stage,
215 struct unfilled_stage *unfilled = unfilled_stage(stage);
216 const struct pipe_rasterizer_state *rast = stage->draw->rasterizer;
221 stage->tri = unfilled_tri;
222 stage->tri( stage, header );
227 static void unfilled_flush( struct draw_stage *stage,
230 stage->next->flush( stage->next, flags );
232 stage->tri = unfilled_first_tri;
236 static void unfilled_reset_stipple_counter( struct draw_stage *stage )
238 stage->next->reset_stipple_counter( stage->next );
242 static void unfilled_destroy( struct draw_stage *stage )
244 draw_free_temp_verts( stage );
245 FREE( stage );
254 struct draw_stage *stage )
256 struct unfilled_stage *unfilled = unfilled_stage(stage);
265 stage->draw, TGSI_SEMANTIC_FACE, 0);
273 * Create unfilled triangle stage.
281 unfilled->stage.draw = draw;
282 unfilled->stage.name = "unfilled";
283 unfilled->stage.next = NULL;
284 unfilled->stage.tmp = NULL;
285 unfilled->stage.point = draw_pipe_passthrough_point;
286 unfilled->stage.line = draw_pipe_passthrough_line;
287 unfilled->stage.tri = unfilled_first_tri;
288 unfilled->stage.flush = unfilled_flush;
289 unfilled->stage.reset_stipple_counter = unfilled_reset_stipple_counter;
290 unfilled->stage.destroy = unfilled_destroy;
294 if (!draw_alloc_temp_verts( &unfilled->stage, 0 ))
297 return &unfilled->stage;
301 unfilled->stage.destroy( &unfilled->stage );