{-# OPTIONS_HADDOCK hide #-} module Graphics.Gloss.Internals.Interface.Animate.State ( State (..) , stateInit ) where -- | Animation State data State = State { -- | Whether the animation is running. stateAnimate :: !Bool -- | How many times we've entered the animation loop. , stateAnimateCount :: !Integer -- | Whether this is the first frame of the animation. , stateAnimateStart :: !Bool -- | Number of msec the animation has been running for , stateAnimateTime :: !Double -- | The time when we entered the display callback for the current frame. , stateDisplayTime :: !Double , stateDisplayTimeLast :: !Double -- | Clamp the minimum time between frames to this value (in seconds) -- Setting this to < 10ms probably isn't worthwhile. , stateDisplayTimeClamp :: !Double -- | The time when the last call to the users render function finished. , stateGateTimeStart :: !Double -- | The time when displayInWindow last finished (after sleeping to clamp fps). , stateGateTimeEnd :: !Double -- | How long it took to draw this frame , stateGateTimeElapsed :: !Double } stateInit :: State stateInit = State { stateAnimate = True , stateAnimateCount = 0 , stateAnimateStart = True , stateAnimateTime = 0 , stateDisplayTime = 0 , stateDisplayTimeLast = 0 , stateDisplayTimeClamp = 0.01 , stateGateTimeStart = 0 , stateGateTimeEnd = 0 , stateGateTimeElapsed = 0 }