gallium: a lot more complete implementation of stream output
[mesa.git] / src / gallium / auxiliary / draw / draw_pt_emit.c
index a7917f54b048257be04dcbe1aa6cda69d6bcff2d..575027684442730299c1a7d68285764f47bac6f5 100644 (file)
@@ -33,6 +33,7 @@
 #include "draw/draw_pt.h"
 #include "translate/translate.h"
 #include "translate/translate_cache.h"
+#include "util/u_format.h"
 
 struct pt_emit {
    struct draw_context *draw;
@@ -171,12 +172,14 @@ void draw_pt_emit( struct pt_emit *emit,
    translate->set_buffer(translate, 
                         0, 
                         vertex_data,
-                        stride );
+                        stride,
+                        ~0);
 
    translate->set_buffer(translate, 
                         1, 
                         &draw->rasterizer->point_size,
-                        0);
+                        0,
+                        ~0);
 
    translate->run( translate,
                   0, 
@@ -188,9 +191,9 @@ void draw_pt_emit( struct pt_emit *emit,
                            0, 
                            vertex_count - 1 );
 
-   render->draw(render,
-               elts,
-               count);
+   render->draw_elements(render,
+                         elts,
+                         count);
 
    render->release_vertices(render);
 }
@@ -232,11 +235,11 @@ void draw_pt_emit_linear(struct pt_emit *emit,
       goto fail;
 
    translate->set_buffer(translate, 0,
-                        vertex_data, stride);
+                        vertex_data, stride, count - 1);
 
    translate->set_buffer(translate, 1,
                         &draw->rasterizer->point_size,
-                        0);
+                        0, ~0);
 
    translate->run(translate,
                   0,