|
glInterleavedArrays(3G)
Contents
|
glInterleavedArrays - simultaneously specify and enable
several interleaved arrays
void glInterleavedArrays(
GLenum format,
GLsizei stride,
const GLvoid *pointer );
Specifies the type of array to enable. Symbolic constants
GL_V2F, GL_V3F, GL_C4UB_V2F, GL_C4UB_V3F, GL_C3F_V3F,
GL_N3F_V3F, GL_C4F_N3F_V3F, GL_T2F_V3F, GL_T4F_V4F,
GL_T2F_C4UB_V3F, GL_T2F_C3F_V3F, GL_T2F_N3F_V3F,
GL_T2F_C4F_N3F_V3F, and GL_T4F_C4F_N3F_V4F are accepted.
Specifies the offset in bytes between each aggregate array
element.
glInterleavedArrays() lets you specify and enable individual
color, normal, texture and vertex arrays whose elements
are part of a larger aggregate array element. For
some implementations, this is more efficient than specifying
the arrays separately.
If stride is 0, the aggregate elements are stored consecutively.
Otherwise, stride bytes occur between the beginning
of one aggregate array element and the beginning of
the next aggregate array element.
format serves as a ``key'' describing the extraction of
individual arrays from the aggregate array. If format contains
a T, then texture coordinates are extracted from the
interleaved array. If C is present, color values are
extracted. If N is present, normal coordinates are
extracted. Vertex coordinates are always extracted.
The digits 2, 3, and 4 denote how many values are
extracted. F indicates that values are extracted as floating-point
values. Colors may also be extracted as 4
unsigned bytes if 4UB follows the C. If a color is
extracted as 4 unsigned bytes, the vertex array element
which follows is located at the first possible floatingpoint
aligned address.
glInterleavedArrays() is available only if the GL version
is 1.1 or greater.
If glInterleavedArrays() is called while compiling a display
list, it is not compiled into the list, and it is
executed immediately.
Execution of glInterleavedArrays() is not allowed between
the execution of glBegin() and the corresponding execution
of glEnd(), but an error may or may not be generated. If
no error is generated, the operation is undefined.
glInterleavedArrays() is typically implemented on the
client side.
Vertex array parameters are client-side state and are
therefore not saved or restored by glPushAttrib() and
glPopAttrib(). Use glPushClientAttrib() and glPopClientAttrib()
instead.
When the GL_ARB_multitexture extension is supported, glInterleavedArrays()
only updates the texture coordinate
array for the active active texture unit. The texture
coordinate state for other client texture units is not
update, regardless if they are enabled or not.
GL_INVALID_ENUM is generated if format is not an accepted
value.
GL_INVALID_VALUE is generated if stride is negative.
glArrayElement(3), glClientActiveTextureARB(3), glColorPointer(3), glDrawArrays(3), glDrawElements(3), glEdgeFlagPointer(3), glEnableClientState(3), glGetPointer(3),
glIndexPointer(3), glNormalPointer(3), glTexCoordPointer(3), glVertexPointer(3)
glInterleavedArrays(3G)
[ Back ] |