call draw_trim()
authorBrian <brian.paul@tungstengraphics.com>
Mon, 20 Aug 2007 17:49:16 +0000 (11:49 -0600)
committerBrian <brian.paul@tungstengraphics.com>
Mon, 20 Aug 2007 17:49:16 +0000 (11:49 -0600)
src/mesa/pipe/softpipe/sp_draw_arrays.c

index a7fb39ca093c256afe4033b4a0645558c0afec9a..5371ef58e69fe9c139609132fec2b232b8c8c464 100644 (file)
@@ -318,8 +318,9 @@ softpipe_draw_arrays(struct pipe_context *pipe, unsigned mode,
 {
    struct softpipe_context *sp = softpipe_context(pipe);
    struct draw_context *draw = sp->draw;
-   unsigned int i;
+   unsigned length, first, incr, i;
 
+   printf("Draw arrays start %u count %u\n", start, count);
    if (sp->dirty)
       softpipe_update_derived( sp );
 
@@ -346,10 +347,13 @@ softpipe_draw_arrays(struct pipe_context *pipe, unsigned mode,
    draw_invalidate_vcache( draw );
 
    draw_set_element_buffer(draw, 0, NULL);  /* no index/element buffer */
-   draw_set_prim( draw, mode );
 
-   /* XXX draw_prim_info() and TRIM here */
-   draw_prim(draw, start, count);
+   draw_prim_info( mode, &first, &incr );
+   length = draw_trim( count, first, incr );
+   if (length) {
+      draw_set_prim( draw, mode );
+      draw_prim(draw, start, count);
+   }
 
    /* draw any left-over buffered prims */
    draw_flush(draw);