diff options
Diffstat (limited to 'src/mesa/vbo/vbo_split_copy.c')
-rw-r--r-- | src/mesa/vbo/vbo_split_copy.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mesa/vbo/vbo_split_copy.c b/src/mesa/vbo/vbo_split_copy.c index b53293c3120..9665c4fcd2f 100644 --- a/src/mesa/vbo/vbo_split_copy.c +++ b/src/mesa/vbo/vbo_split_copy.c @@ -171,6 +171,8 @@ dump_draw_info(struct gl_context *ctx, static void flush( struct copy_context *copy ) { + struct gl_context *ctx = copy->ctx; + const struct gl_client_array **saved_arrays = ctx->Array._DrawArrays; GLuint i; /* Set some counters: @@ -189,8 +191,9 @@ flush( struct copy_context *copy ) (void) dump_draw_info; #endif - copy->draw( copy->ctx, - copy->dstarray_ptr, + ctx->Array._DrawArrays = copy->dstarray_ptr; + + copy->draw( ctx, copy->dstprim, copy->dstprim_nr, ©->dstib, @@ -199,6 +202,8 @@ flush( struct copy_context *copy ) copy->dstbuf_nr - 1, NULL ); + ctx->Array._DrawArrays = saved_arrays; + /* Reset all pointers: */ copy->dstprim_nr = 0; |