In addition to clearing the color buffer with the background color, the display
function makes calls to the diamond and disk functions to create instances of
them. Translation, scale and/or rotation transformations are used to obtain the
desired size, orientation and location of the geometry. Thus, for each instance, we
push the model-view matrix stack, set the appropriate transformations, create
the geometry through a call to its function with the desired color and then
pop the model-view stack to be ready for the next instance.