From 3baefe663bb15b4fd60921155de38c12ec2758c4 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 22 Aug 2003 23:28:03 +0000 Subject: Added support for GL_IBM_multimode_draw_arrays. Added non-static entrypoints and the name string for GL_SUN_multi_draw_arrays (identical to GL_EXT_multi_draw_arrays). Made add_newer_entrypoints (in src/mesa/main/context.c) table driven. This reduced the size of context.o by about 3KB. --- src/mesa/main/varray.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'src/mesa/main/varray.c') diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c index 07b341e68a..14f609d31d 100644 --- a/src/mesa/main/varray.c +++ b/src/mesa/main/varray.c @@ -913,6 +913,46 @@ _mesa_MultiDrawElementsEXT( GLenum mode, const GLsizei *count, GLenum type, } +/* GL_IBM_multimode_draw_arrays */ +void +_mesa_MultiModeDrawArraysIBM( const GLenum * mode, const GLint * first, + const GLsizei * count, + GLsizei primcount, GLint modestride ) +{ + 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)( *(GLenum *) ((char *) mode + (i * modestride)), + first[i], count[i] ); + } + } +} + + +/* GL_IBM_multimode_draw_arrays */ +void +_mesa_MultiModeDrawElementsIBM( const GLenum * mode, const GLsizei * count, + GLenum type, const GLvoid * const * indices, + GLsizei primcount, GLint modestride ) +{ + 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)( *(GLenum *) ((char *) mode + (i * modestride)), + count[i], type, indices[i] ); + } + } +} + + /**********************************************************************/ /***** Initialization *****/ /**********************************************************************/ -- cgit v1.2.3