A display list stores a sequence of GL commands, which can be "replayed" later
This can be more efficient than directly making the same function calls repeatedly
*** Data passed to the GL commands will not change ***
listNum = glGenLists(n)
glNewList(listNum, GL_COMPILE)
...
glEndList()
glCallList(listNum)