Renders primitives of multiple primitive types from array data.
OpenGL C bindings library: libGL.a
void glMultiModeDrawElementsIBM(GLenum *mode, GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount, GLint modestride)
for(i=0; i < primcount; i++) { if (*(count+i) > 0) glDrawElements(*((GLenum *)((char *)mode+i*modestride)), *(count+i), type, *(indices+i)); }
The glMultiModeDrawElementsIBM subroutine is available only if the IBM_multimode_draw_arrays extension is supported.
The glMultiModeDrawElementsIBM subroutine is included in display lists. If glMultiModeDrawElementsIBM is entered into a display list, the necessary array data (determined by the array pointers and enables) is also entered into the display list. Because the array pointers and enables are client side state, their values affect display lists when the lists are created, not when the lists are executed.
GL_INVALID_ENUM is generated if mode is not an accepted value.
GL_INVALID_OPERATION is generated if glMultiModeDrawElementsIBM is executed between the execution of glBegin and the corresponding glEnd.
The glArrayElement subroutine, glColorPointer subroutine, glColorPointerListIBM subroutine, glDrawArrays subroutine, glEdgeFlagPointer glEdgeFlagPointerListIBM subroutine, glGetPointerv subroutine, glIndexPointer subroutine, glIndexPointerListIBM subroutine, glMultiModeDrawArraysIBM subroutine, glNormalPointer subroutine, glNormalPointerListIBM subroutine, glTexCoordPointer glTexCoordPointerListIBM subroutine, glVertexPointer subroutine, glVertexPointerListIBM subroutine.