vbo: signal _NEW_ARRAY when transitioning between glBegin/End, glDrawArrays
authorBrian Paul <brianp@vmware.com>
Mon, 26 Dec 2011 21:43:07 +0000 (14:43 -0700)
committerBrian Paul <brianp@vmware.com>
Mon, 26 Dec 2011 22:21:32 +0000 (15:21 -0700)
commit0a7602b938893e1b04a01ca8680376cbeec053ab
tree41c39c77028d1e940e61f33a22c5d094961babcd
parent31bf243a92454758fb4b8efc6bd8ccac99b67b6e
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>
src/mesa/vbo/vbo_context.c
src/mesa/vbo/vbo_exec.h
src/mesa/vbo/vbo_exec_api.c
src/mesa/vbo/vbo_exec_array.c
src/mesa/vbo/vbo_save_draw.c