Defines a list of edge flag arrays.
OpenGL C bindings library: libGL.a
void glEdgeFlagPointerListIBM ( GLint stride, const GLboolean **pointer, GLint ptrstride)
The glEdgeFlagPointerListIBM subroutine specifies the location and data format of a list of arrays of edge flags to use when rendering. The stride parameter gives the byte stride from one edge flag to the next allowing vertices and attributes to be packed into a single array or stored in separate arrays. (Single-array storage may be more efficient on some implementations; see glInterleavedArrays). The ptrstride parameter specifies the byte stride from one pointer to the next in the pointer array.
When an edge flag array is specified, stride, pointer and ptrstride are saved as client side state.
A stride value of 0 does not specify a "tightly packed" array as it does in glEdgeFlagPointer. Instead, it causes the first array element of each array to be used for each vertex. Also, a negative value can be used for stride, which allows the user to move through each array in reverse order.
To enable and disable the edge flag arrays, call glEnableClientState and glDisableClientState with the argument GL_EDGE_FLAG_ARRAY. The edge flag array is initially disabled. When enabled, the edge flag arrays are used when glMultiDrawArraysEXT, glMultiDrawElementsEXT, glMultiModeDrawArraysIBM, glMultiModeDrawElementsIBM, glDrawArrays, glDrawElements or glArrayElement is called. The last three calls in this list will only use the first array (the one pointed at by pointer[0]). See the descriptions of these routines for more information on their use.
The glEdgeFlagPointerListIBM subroutine is available only if the GL_IBM_vertex_array_lists extension is supported.
Execution of glEdgeFlagPointerListIBM is not allowed between glBegin and the corresponding glEnd, but an error may or may not be generated. If an error is not generated, the operation is undefined.
The glEdgeFlagPointerListIBM subroutine is typically implemented on the client side.
Since the edge flag array parameters are client side state, they are not saved or restored by glPushAttrib and glPopAttrib. Use glPushClientAttrib and glPopClientAttrib instead.
When a glEdgeFlagPointerListIBM call is encountered while compiling a display list, the information it contains does NOT contribute to the display list, but is used to update the immediate context instead.
The glEdgeFlagPointer call and the glEdgeFlagPointerListIBM call share the same state variables. A glEdgeFlagPointer call will reset the edge flag list state to indicate that there is only one edge flag list, so that any and all lists specified by a previous glEdgeFlagPointerListIBM call will be lost, not just the first list that it specified.
None.
glIsEnabled with argument GL_EDGE_FLAG_ARRAY.
glGetPointerv with argument GL_EDGE_FLAG_ARRAY_LIST_IBM.
glGet with argument GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM.
glGet with argument GL_EDGE_FLAG_ARRAY_STRIDE.
The glArrayElement subroutine, glEdgeFlagPointer subroutine, glDrawArrays subroutine, glDrawElements subroutine, glEdgeFlagPointer subroutine, glEnable subroutine, glGetPointerv subroutine, glIndexPointer subroutine, glInterleavedArrays subroutine, glMultiDrawArraysEXT subroutine, glMultiDrawElementsEXT subroutine, glMultiModeDrawArraysIBM subroutine, glMultiModeDrawElementsIBM subroutine, glNormalPointer subroutine, glPopClientAttrib subroutine, glPushClientAttrib subroutine, glTexCoordPointer subroutine, glVertexPointer subroutine.