summaryrefslogtreecommitdiffstats
path: root/src/mesa/vbo
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/vbo')
-rw-r--r--src/mesa/vbo/vbo.h2
-rw-r--r--src/mesa/vbo/vbo_split_copy.c8
-rw-r--r--src/mesa/vbo/vbo_split_inplace.c8
3 files changed, 4 insertions, 14 deletions
diff --git a/src/mesa/vbo/vbo.h b/src/mesa/vbo/vbo.h
index 13f77d9db37..37aa59d3061 100644
--- a/src/mesa/vbo/vbo.h
+++ b/src/mesa/vbo/vbo.h
@@ -145,6 +145,7 @@ vbo_save_EndCallList(struct gl_context *ctx);
* Draw a number of primitives.
* \param prims array [nr_prims] describing what to draw (prim type,
* vertex count, first index, instance count, etc).
+ * \param arrays array of vertex arrays for draw
* \param ib index buffer for indexed drawing, NULL for array drawing
* \param index_bounds_valid are min_index and max_index valid?
* \param min_index lowest vertex index used
@@ -158,6 +159,7 @@ vbo_save_EndCallList(struct gl_context *ctx);
* This may be deprecated in the future
*/
typedef void (*vbo_draw_func)(struct gl_context *ctx,
+ const struct gl_vertex_array* arrays,
const struct _mesa_prim *prims,
GLuint nr_prims,
const struct _mesa_index_buffer *ib,
diff --git a/src/mesa/vbo/vbo_split_copy.c b/src/mesa/vbo/vbo_split_copy.c
index 96828a073fe..2aab670de1e 100644
--- a/src/mesa/vbo/vbo_split_copy.c
+++ b/src/mesa/vbo/vbo_split_copy.c
@@ -179,7 +179,6 @@ static void
flush(struct copy_context *copy)
{
struct gl_context *ctx = copy->ctx;
- const struct gl_vertex_array *saved_arrays = ctx->Array._DrawArrays;
GLuint i;
/* Set some counters:
@@ -198,10 +197,8 @@ flush(struct copy_context *copy)
(void) dump_draw_info;
#endif
- ctx->Array._DrawArrays = copy->dstarray;
- ctx->NewDriverState |= ctx->DriverFlags.NewArray;
-
copy->draw(ctx,
+ copy->dstarray,
copy->dstprim,
copy->dstprim_nr,
&copy->dstib,
@@ -210,9 +207,6 @@ flush(struct copy_context *copy)
copy->dstbuf_nr - 1,
NULL, 0, NULL);
- ctx->Array._DrawArrays = saved_arrays;
- ctx->NewDriverState |= ctx->DriverFlags.NewArray;
-
/* Reset all pointers:
*/
copy->dstprim_nr = 0;
diff --git a/src/mesa/vbo/vbo_split_inplace.c b/src/mesa/vbo/vbo_split_inplace.c
index 971c52a078c..b63c05c75f0 100644
--- a/src/mesa/vbo/vbo_split_inplace.c
+++ b/src/mesa/vbo/vbo_split_inplace.c
@@ -63,7 +63,6 @@ static void
flush_vertex( struct split_context *split)
{
struct gl_context *ctx = split->ctx;
- const struct gl_vertex_array *saved_arrays = ctx->Array._DrawArrays;
struct _mesa_index_buffer ib;
GLuint i;
@@ -84,10 +83,8 @@ flush_vertex( struct split_context *split)
assert(split->max_index >= split->min_index);
- ctx->Array._DrawArrays = split->array;
- ctx->NewDriverState |= ctx->DriverFlags.NewArray;
-
split->draw(ctx,
+ split->array,
split->dstprim,
split->dstprim_nr,
split->ib ? &ib : NULL,
@@ -96,9 +93,6 @@ flush_vertex( struct split_context *split)
split->max_index,
NULL, 0, NULL);
- ctx->Array._DrawArrays = saved_arrays;
- ctx->NewDriverState |= ctx->DriverFlags.NewArray;
-
split->dstprim_nr = 0;
split->min_index = ~0;
split->max_index = 0;