| stateAnimate :: Bool | Whether to call the user's draw repetedly to get an animation. | 
| stateAnimateStart :: Bool | Whether this is the first frame of the animation. | 
| stateAnimateTime :: Int | Number of msec the animation has been running for | 
| stateDisplayTime :: Int | The time when we entered the display callback for the current frame. | 
| stateDisplayTimeLast :: Int |  | 
| stateDisplayTimeClamp :: Int | Clamp the minimum time between frames to this value (in msec)
	Most LCD monitors refresh at around 50Hz so setting
	this to < 20msec probably isn't worthwhile. | 
| stateGateTimeStart :: Int | The time when the last call to the users render function finished. | 
| stateGateTimeEnd :: Int | The time when displayInWindow last finished (after sleeping to clamp fps). | 
| stateGateTimeElapsed :: Int | How long it took to draw this frame |