diff options
author | Brian Paul <[email protected]> | 2002-06-30 15:47:00 +0000 |
---|---|---|
committer | Brian Paul <[email protected]> | 2002-06-30 15:47:00 +0000 |
commit | 2525bc7d305f6dcab3beb75535da25a488c969b0 (patch) | |
tree | 3c70b05a2c7e8649b89d68c2b7d5c1dd2c48095b /src/mesa/main/varray.c | |
parent | 1074d8c3613bb44f12ed5dc28aec4fd7fdd79f19 (diff) |
Implemented GL_EXT_multi_draw_arrays: glMultiDrawArraysEXT() and glMultiDrawElementsEXT().
Diffstat (limited to 'src/mesa/main/varray.c')
-rw-r--r-- | src/mesa/main/varray.c | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c index e9138693664..3fd318e7d4c 100644 --- a/src/mesa/main/varray.c +++ b/src/mesa/main/varray.c @@ -1,4 +1,4 @@ -/* $Id: varray.c,v 1.45 2002/06/15 02:38:16 brianp Exp $ */ +/* $Id: varray.c,v 1.46 2002/06/30 15:47:01 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -799,3 +799,41 @@ _mesa_UnlockArraysEXT( void ) if (ctx->Driver.UnlockArraysEXT) ctx->Driver.UnlockArraysEXT( ctx ); } + + + +/* GL_EXT_multi_draw_arrays */ +/* Somebody forgot to spec the first and count parameters as const! <sigh> */ +void +_mesa_MultiDrawArraysEXT( GLenum mode, GLint *first, + GLsizei *count, GLsizei primcount ) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + + ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); + + for (i = 0; i < primcount; i++) { + if (count[i] > 0) { + (ctx->Exec->DrawArrays)(mode, first[i], count[i]); + } + } +} + + +/* GL_EXT_multi_draw_arrays */ +void +_mesa_MultiDrawElementsEXT( GLenum mode, const GLsizei *count, GLenum type, + const GLvoid **indices, GLsizei primcount ) +{ + GET_CURRENT_CONTEXT(ctx); + GLint i; + + ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); + + for (i = 0; i < primcount; i++) { + if (count[i] > 0) { + (ctx->Exec->DrawElements)(mode, count[i], type, indices[i]); + } + } +} |