module YampaSDL2.Internal.MainLoop ( mainLoop ) where import FRP.Yampa import YampaSDL2.Internal.AppInput (AppInput) import YampaSDL2.Internal.AppOutput (AppOutput) import YampaSDL2.Internal.SDL (SDLInit(..)) -- | Starts the game loop mainLoop :: SDLInit a AppOutput -> SF AppInput AppOutput -- ^ The main signal function -> IO () mainLoop backend sf = do reactimate (initAction backend) (inputAction backend) (outputAction backend) (parseInput backend >>> sf) closeAction backend