Contents /
Previous /
Next
Executing Multiple Display Lists
OpenGL provides an efficient mechanism to execute several display lists in
succession. This mechanism requires that you put the display-list indices in an
array and call glCallLists(). An obvious use for such a mechanism occurs
when display-list indices correspond to meaningful values. For example, if
you're creating a font, each display-list index might correspond to the ASCII
value of a character in that font. To have several such fonts, you would need
to establish a different initial display-list index for each font. You can
specify this initial index by using glListBase() before calling
glCallLists().
- void glListBase(GLuint
base);
Specifies the offset that's added to the display-list indices in
glCallLists() to obtain the final display-list indices. The default
display-list base is 0. The list base has no effect on glCallList(),
which executes only one display list or on glNewList().
void glCallLists(GLsizei n, GLenum type, const GLvoid *lists);
Executes n display lists. The indices of the lists to
be executed are computed by adding the offset indicated by the current
display-list base (specified with glListBase()) to the signed integer
values in the array pointed to by lists.
The type parameter indicates the data type of the values
in lists. It can be set to GL_BYTE, GL_UNSIGNED_BYTE,
GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, or GL_FLOAT, indicating
that lists should be treated as an array of bytes, unsigned
bytes, shorts, unsigned shorts, integers, unsigned integers, or floats,
respectively. Type can also be GL_2_BYTES, GL_3_BYTES, or
GL_4_BYTES, in which case sequences of 2, 3, or 4 bytes are read from
lists and then shifted and added together, byte by byte, to
calculate the display-list offset.