void GLAPIENTRY _mesa_noop_DrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices) { GET_CURRENT_CONTEXT(ctx); if (_mesa_validate_DrawRangeElements( ctx, mode, start, end, count, type, indices )) CALL_DrawElements(GET_DISPATCH(), (mode, count, type, indices)); }
static void GLAPIENTRY _save_OBE_MultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount) { GLsizei i; for (i = 0; i < primcount; i++) { if (count[i] > 0) { CALL_DrawElements(GET_DISPATCH(), (mode, count[i], type, indices[i])); } } }
/* GL_IBM_multimode_draw_arrays */ void GLAPIENTRY _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); /* XXX not sure about ARB_vertex_buffer_object handling here */ for ( i = 0 ; i < primcount ; i++ ) { if ( count[i] > 0 ) { GLenum m = *((GLenum *) ((GLubyte *) mode + i * modestride)); CALL_DrawElements(ctx->Exec, ( m, count[i], type, indices[i] )); } } }