diff options
author | Marek Olšák <[email protected]> | 2012-04-23 18:20:56 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-05-08 15:57:51 +0200 |
commit | 50f7e75f9e945cfbb2ae868cc961a2205a0b6e73 (patch) | |
tree | d55b1c38416040b9df653df6327dbaa0e82866fc /src/mesa/vbo/vbo_rebase.c | |
parent | a7ac9c9c7dc7401ca6143d1e7476df5e3c2758b7 (diff) |
mesa: move gl_client_array*[] from vbo_draw_func into gl_context
In the future we'd like to treat vertex arrays as a state and
not as a parameter to the draw function. This is the first step
towards that goal. Part of the goal is to avoid array re-validation
for every draw call.
This commit adds:
const struct gl_client_array **gl_context::Array::_DrawArrays.
The pointer is changed in:
* vbo_draw_method
* vbo_rebase_prims - unused by gallium
* vbo_split_prims - unused by gallium
* st_RasterPos
Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/mesa/vbo/vbo_rebase.c')
-rw-r--r-- | src/mesa/vbo/vbo_rebase.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mesa/vbo/vbo_rebase.c b/src/mesa/vbo/vbo_rebase.c index 597a8f46994..9a98ef7d449 100644 --- a/src/mesa/vbo/vbo_rebase.c +++ b/src/mesa/vbo/vbo_rebase.c @@ -129,6 +129,7 @@ void vbo_rebase_prims( struct gl_context *ctx, struct _mesa_index_buffer tmp_ib; struct _mesa_prim *tmp_prims = NULL; + const struct gl_client_array **saved_arrays = ctx->Array._DrawArrays; void *tmp_indices = NULL; GLuint i; @@ -226,15 +227,18 @@ void vbo_rebase_prims( struct gl_context *ctx, /* Re-issue the draw call. */ + ctx->Array._DrawArrays = tmp_array_pointers; + draw( ctx, - tmp_array_pointers, - prim, + prim, nr_prims, ib, GL_TRUE, 0, max_index - min_index, NULL ); + + ctx->Array._DrawArrays = saved_arrays; if (tmp_indices) free(tmp_indices); |