diff options
author | Brian Paul <brianp@vmware.com> | 2011-12-26 14:43:07 -0700 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2011-12-26 15:21:32 -0700 |
commit | 0a7602b938893e1b04a01ca8680376cbeec053ab (patch) | |
tree | 41c39c77028d1e940e61f33a22c5d094961babcd /src/mesa/vbo/vbo_save_draw.c | |
parent | 31bf243a92454758fb4b8efc6bd8ccac99b67b6e (diff) |
vbo: signal _NEW_ARRAY when transitioning between glBegin/End, glDrawArrays
This fixes a regression seen with the isosurf demo when switching between
glBegin/End and glDrawArrays (do it several times). The problem was the
driver wasn't getting _NEW_ARRAY when the arrays were subtly changed:
(vertex3f, normal3f) vs. (normal3f, vertex3f).
This patch fixes that by signaling _NEW_ARRAY whenever we transition
between glBegin/End and glDrawArrays mode and display lists.
The patch also fixes up the initialization of the map_vp_none[] array
to stop putting strange values in the last five elements of the array.
v2: remove DRAW_ELEMENTS, don't distinguish between glDrawArrays and
glDrawElements
v3: add DRAW_DISPLAY_LIST for the display list case, just to be safe.
Reviewed-by: Mathias Froehlich <Mathias.Froehlich@web.de>
Tested-by: Mathias Froehlich <Mathias.Froehlich@web.de>
Diffstat (limited to 'src/mesa/vbo/vbo_save_draw.c')
-rw-r--r-- | src/mesa/vbo/vbo_save_draw.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mesa/vbo/vbo_save_draw.c b/src/mesa/vbo/vbo_save_draw.c index fa93ca48f43..9f0290561e8 100644 --- a/src/mesa/vbo/vbo_save_draw.c +++ b/src/mesa/vbo/vbo_save_draw.c @@ -248,6 +248,7 @@ vbo_save_playback_vertex_list(struct gl_context *ctx, void *data) const struct vbo_save_vertex_list *node = (const struct vbo_save_vertex_list *) data; struct vbo_save_context *save = &vbo_context(ctx)->save; + struct vbo_exec_context *exec = &vbo_context(ctx)->exec; FLUSH_CURRENT(ctx, 0); @@ -286,6 +287,8 @@ vbo_save_playback_vertex_list(struct gl_context *ctx, void *data) vbo_bind_vertex_list( ctx, node ); + vbo_draw_method(exec, DRAW_DISPLAY_LIST); + /* Again... */ if (ctx->NewState) |