OpenGL.GL.IBM.vertex_array_lists
OpenGL extension IBM.vertex_array_lists
This module customises the behaviour of the
OpenGL.raw.GL.IBM.vertex_array_lists to provide a more
Python-friendly API
Overview (from the spec)
This extension introduces seven (7) new functions that set the
vertex array pointers. However, instead of a single pointer, these
functions provide a list of array pointers that can be used by the
EXT_multi_draw_arrays and IBM_multimode_draw_arrays extension
functions to draw from multiple of vertex arrays. The first
primitive will use the first array in the list, the second primitive
will use the second array in the list, and so forth. If a glDrawArray,
DrawElements, or DrawRangeElements function is used, then
only the first vertex array in the list is used.
When a vertex array list is specified, only the list pointer
is kept by the underlying OpenGL function. Therefore, the list
must be staticly defined for the entire duration of its usage,
much in the same manner as the vertex arrays themselves. Also
note that the list function can therefore also be used to change
array pointers without making a OpenGL API function call.
A <ptrstride> value of zero (0) can be used to force all primitives
of a multi-vertex array to use only the first vertex array in
the list.
The <stride> parameter of the list pointer functions differs from
that of the non-list vertex array pointer functions in that 1)
both negative and positive strides are accepted thusly allowing
vertex lists to be rendered in reverse order; 2) a <stride> of
zero (0) results in no stride and can be used to specify a single
vertex attribute for each vertex of the primitive.
These new functions are a superset of the standard OpenGL 1.2 vertex
array (non-list) pointer functions and share common state. Therefore,
the list pointer and non-list pointer functions can be used
interchangably.
New queries are provided by this extension so that ZAPdb can be extended
to query the list pointer state whenever a vertex array function
is traced. The pointer returned by a query of *_ARRAY_POINTER returns
the first entry in the array list.
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/IBM/vertex_array_lists.txt
Functions
Constants
GL_COLOR_ARRAY_LIST_IBM (103072)
GL_COLOR_ARRAY_LIST_STRIDE_IBM (103082)
GL_EDGE_FLAG_ARRAY_LIST_IBM (103075)
GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM (103085)
GL_FOG_COORDINATE_ARRAY_LIST_IBM (103076)
GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM (103086)
GL_INDEX_ARRAY_LIST_IBM (103073)
GL_INDEX_ARRAY_LIST_STRIDE_IBM (103083)
GL_NORMAL_ARRAY_LIST_IBM (103071)
GL_NORMAL_ARRAY_LIST_STRIDE_IBM (103081)
GL_SECONDARY_COLOR_ARRAY_LIST_IBM (103077)
GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM (103087)
GL_TEXTURE_COORD_ARRAY_LIST_IBM (103074)
GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM (103084)
GL_VERTEX_ARRAY_LIST_IBM (103070)
GL_VERTEX_ARRAY_LIST_STRIDE_IBM (103080)