diff options
author | Yuanhan Liu <[email protected]> | 2011-12-31 14:22:46 +0800 |
---|---|---|
committer | Yuanhan Liu <[email protected]> | 2012-01-12 10:47:41 +0800 |
commit | 42d4972bf0b147b0241c2be7e6579fd64cf2c216 (patch) | |
tree | 923e2f914bb758aced9e692d0391f4fbf83f9ed7 /src/mesa/vbo/vbo.h | |
parent | 459a44460e4d31d69d7ff04c1000917ca7870ff3 (diff) |
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 <[email protected]>
Reviewed-by: Roland Scheidegger <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/mesa/vbo/vbo.h')
-rw-r--r-- | src/mesa/vbo/vbo.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mesa/vbo/vbo.h b/src/mesa/vbo/vbo.h index ed8fc1722ae..bf925ab16f3 100644 --- a/src/mesa/vbo/vbo.h +++ b/src/mesa/vbo/vbo.h @@ -127,9 +127,9 @@ int vbo_sizeof_ib_type(GLenum type); void -vbo_get_minmax_index(struct gl_context *ctx, const struct _mesa_prim *prim, - const struct _mesa_index_buffer *ib, - GLuint *min_index, GLuint *max_index); +vbo_get_minmax_indices(struct gl_context *ctx, const struct _mesa_prim *prim, + const struct _mesa_index_buffer *ib, + GLuint *min_index, GLuint *max_index, GLuint nr_prims); void vbo_use_buffer_objects(struct gl_context *ctx); |