glCallList causes the named display list to be executed.
The commands saved in the display list are executed in order,
just as if they were called without using a display list.
If list has not been defined as a display list,
glCallList is ignored.
glCallList can appear inside a display list.
To avoid the possibility of infinite recursion resulting from display lists
calling one another,
a limit is placed on the nesting level of display
lists during display-list execution.
This limit is at least 64, and it depends on the implementation.
GL state is not saved and restored across a call to glCallList .
Thus,
changes made to GL state during the execution of a display list
remain after execution of the display list is completed.
Use glPushAttrib ,
glPopAttrib ,
glPushMatrix ,
and glPopMatrix to preserve GL state across glCallList calls.