summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw/draw_context.c
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2012-05-25 09:44:53 -0600
committerBrian Paul <[email protected]>2012-05-31 09:40:35 -0600
commit185ed2105829d6f5eb19edb9abbf0d7977e157c3 (patch)
tree91716430893902305c60756e64b2ec8328895640 /src/gallium/auxiliary/draw/draw_context.c
parent151bf6e6cf8f9de4067cfcf15f6ac448ff295533 (diff)
draw: simplify index buffer specification
Replace draw_set_index_buffer() and draw_set_mapped_index_buffer() with draw_set_indexes() which simply takes a pointer and an index size.
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_context.c')
-rw-r--r--src/gallium/auxiliary/draw/draw_context.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c
index ad49ce733ac..2eae204ff2c 100644
--- a/src/gallium/auxiliary/draw/draw_context.c
+++ b/src/gallium/auxiliary/draw/draw_context.c
@@ -627,25 +627,23 @@ void draw_set_render( struct draw_context *draw,
}
-void
-draw_set_index_buffer(struct draw_context *draw,
- const struct pipe_index_buffer *ib)
-{
- if (ib)
- memcpy(&draw->pt.index_buffer, ib, sizeof(draw->pt.index_buffer));
- else
- memset(&draw->pt.index_buffer, 0, sizeof(draw->pt.index_buffer));
-}
-
-
/**
- * Tell drawing context where to find mapped index/element buffer.
+ * Tell the draw module where vertex indexes/elements are located, and
+ * their size (in bytes).
+ *
+ * Note: the caller must apply the pipe_index_buffer::offset value to
+ * the address. The draw module doesn't do that.
*/
void
-draw_set_mapped_index_buffer(struct draw_context *draw,
- const void *elements)
-{
- draw->pt.user.elts = elements;
+draw_set_indexes(struct draw_context *draw,
+ const void *elements, unsigned elem_size)
+{
+ assert(elem_size == 0 ||
+ elem_size == 1 ||
+ elem_size == 2 ||
+ elem_size == 4);
+ draw->pt.user.elts = elements;
+ draw->pt.user.eltSize = elem_size;
}