{-# LANGUAGE ExplicitForAll #-}
module Graphics.Gloss.Interface.Pure.Game
( module Graphics.Gloss.Data.Display
, module Graphics.Gloss.Data.Picture
, module Graphics.Gloss.Data.Color
, play
, Event(..), Key(..), SpecialKey(..), MouseButton(..), KeyState(..), Modifiers(..))
where
import Graphics.Gloss.Data.Display
import Graphics.Gloss.Data.Picture
import Graphics.Gloss.Data.Color
import Graphics.Gloss.Internals.Interface.Game
import Graphics.Gloss.Internals.Interface.Backend
play :: Display
-> Color
-> Int
-> world
-> (world -> Picture)
-> (Event -> world -> world)
-> (Float -> world -> world)
-> IO ()
play display backColor simResolution
worldStart worldToPicture worldHandleEvent worldAdvance
= do _ <- playWithBackendIO defaultBackendState
display backColor simResolution
worldStart
(return . worldToPicture)
(\event world -> return $ worldHandleEvent event world)
(\time world -> return $ worldAdvance time world)
True
return ()