1. '''In a GLUT program, how is control passed back to the programmer? How is this set up during initialization?''' Control is passed to the programmer in the form of callback functions: functions that will be called when events occur, e.g. when the window needs to be drawn or when a key is pressed. This is set up during initialization through calls to functions such as ''glutDisplayFunc'', ''glutReshapeFunc'' and ''glutKeyboardFunc''. Each of these functions takes as an argument a function pointer indicating the function to be called when that event occurs.