The choice to pause our animation is accomplished by setting the idle function to NULL. This means in essence that our application does not update the screen and the display remains fixed while the event queue remains empty. When the user chooses to resume the animation, we (re-)register our idle function animation with a call to glutIdleFunc.