vbo: introduce vbo_get_minmax_indices function
authorYuanhan Liu <yuanhan.liu@linux.intel.com>
Sat, 31 Dec 2011 06:22:46 +0000 (14:22 +0800)
committerYuanhan Liu <yuanhan.liu@linux.intel.com>
Thu, 12 Jan 2012 02:47:41 +0000 (10:47 +0800)
commit42d4972bf0b147b0241c2be7e6579fd64cf2c216
tree923e2f914bb758aced9e692d0391f4fbf83f9ed7
parent459a44460e4d31d69d7ff04c1000917ca7870ff3
vbo: introduce vbo_get_minmax_indices function

Introduce vbo_get_minmax_indices() function to handle the min/max index
computation for nr_prims(>= 1). The old code just compute the first
prim's min/max index; this would results an error rendering if user
called functions like glMultiDrawElements(). This patch servers as
fixing this issue.

As when nr_prims = 1, we can pass 1 to paramter nr_prims, thus I made
vbo_get_minmax_index() static.

v2: per Roland's suggestion, put the indices address compuation into
    vbo_get_minmax_index() instead.

    Also do comination if possible to reduce map/unmap count

v3: per Brian's suggestion, use a pointer for start_prim to avoid
    structure copy per loop.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/drivers/dri/i965/brw_draw.c
src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c
src/mesa/main/api_validate.c
src/mesa/state_tracker/st_draw.c
src/mesa/state_tracker/st_draw_feedback.c
src/mesa/tnl/t_draw.c
src/mesa/vbo/vbo.h
src/mesa/vbo/vbo_exec_array.c