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.