diff options
author | Brian <[email protected]> | 2008-01-10 17:01:11 -0700 |
---|---|---|
committer | Brian <[email protected]> | 2008-01-10 17:01:11 -0700 |
commit | cac8892ddb24ddb92b6f367689712925ee6c2d86 (patch) | |
tree | 1882b50046036a3602987a1b8fdfa68d44a2c34b | |
parent | 763e30748e99064fafeb0d9b34de8d732732689c (diff) |
Additional parameters to vbuf_render->draw()
Pass complete information about vertex/index buffer location, size, etc.
-rw-r--r-- | src/mesa/pipe/draw/draw_vbuf.c | 14 | ||||
-rw-r--r-- | src/mesa/pipe/draw/draw_vbuf.h | 6 | ||||
-rw-r--r-- | src/mesa/pipe/i915simple/i915_prim_vbuf.c | 6 |
3 files changed, 20 insertions, 6 deletions
diff --git a/src/mesa/pipe/draw/draw_vbuf.c b/src/mesa/pipe/draw/draw_vbuf.c index d010aaba076..3f6606de86f 100644 --- a/src/mesa/pipe/draw/draw_vbuf.c +++ b/src/mesa/pipe/draw/draw_vbuf.c @@ -291,8 +291,14 @@ vbuf_flush_indices( struct draw_stage *stage ) assert(0); } - vbuf->render->draw(vbuf->render, vbuf->indices, vbuf->nr_indices); - + vbuf->render->draw( vbuf->render, + vbuf->prim, + vbuf->indices, + vbuf->nr_indices, + vbuf->vertices, + vbuf->nr_vertices, + vbuf->vertex_size ); + vbuf->nr_indices = 0; } @@ -373,7 +379,7 @@ static void vbuf_destroy( struct draw_stage *stage ) { struct vbuf_stage *vbuf = vbuf_stage( stage ); - FREE( vbuf->indices ); + align_free( vbuf->indices ); FREE( stage ); } @@ -399,7 +405,7 @@ struct draw_stage *draw_vbuf_stage( struct draw_context *draw, assert(render->max_indices < UNDEFINED_VERTEX_ID); vbuf->max_indices = render->max_indices; - vbuf->indices = MALLOC( vbuf->max_indices ); + vbuf->indices = align_malloc( vbuf->max_indices, 16 ); vbuf->vertices = NULL; vbuf->vertex_ptr = vbuf->vertices; diff --git a/src/mesa/pipe/draw/draw_vbuf.h b/src/mesa/pipe/draw/draw_vbuf.h index 43aa740f646..be4c4ab77bc 100644 --- a/src/mesa/pipe/draw/draw_vbuf.h +++ b/src/mesa/pipe/draw/draw_vbuf.h @@ -82,8 +82,12 @@ struct vbuf_render { * DrawElements, note indices are ushort: */ void (*draw)( struct vbuf_render *, + uint prim, const ushort *indices, - unsigned nr_indices ); + uint nr_indices, + const void *vertices, + uint nr_vertices, + uint vertex_bytes); /** * Called when vbuf is done with this set of vertices: diff --git a/src/mesa/pipe/i915simple/i915_prim_vbuf.c b/src/mesa/pipe/i915simple/i915_prim_vbuf.c index 571ad40595a..bdcc027ed7b 100644 --- a/src/mesa/pipe/i915simple/i915_prim_vbuf.c +++ b/src/mesa/pipe/i915simple/i915_prim_vbuf.c @@ -136,8 +136,12 @@ i915_vbuf_render_set_primitive( struct vbuf_render *render, static void i915_vbuf_render_draw( struct vbuf_render *render, + uint prim, const ushort *indices, - unsigned nr_indices ) + uint nr_indices, + const void *vertices, + uint nr_vertices, + uint vertex_bytes) { struct i915_vbuf_render *i915_render = i915_vbuf_render(render); struct i915_context *i915 = i915_render->i915; |