==== 1. In a GLUT program, how is control passed back to the programmer? How is this set up during initialization? ==== Control is passed back through callback functions. This is set up during initialization by passing function pointers to functions defined by the user (e.g. keyboard) to functions like glutDisplayFunc()/glutReshapeFunc()/glutKeyboardFunc(). ==== 2. What does the parameter to glutInitDisplayMode() in main() specify? ==== The call to the function specifies our display mode- RGBA, in this case, and that we are using double-buffering (i.e. passing in GLUT_RGBA | GLUT_DOUBLE as the parameter). ==== 3. What do the calls to glOrtho() and glViewport() in the reshape() function accomplish? If the window is to be resized, why might we want to change this? ==== As described in Chapter 2 (Redbook), glOrtho() specifies the coordinate system OpenGL will use to draw on. glViewport() adjusts the pixel rectangle for drawing to be the entire new window; it defines what 3d space is viewable.