module YampaSDL2.Internal.SDL.Init
( firstEvent
, SDLInit(..)
, SDLConfiguration(..)
, defaultSDLConfiguration
) where
import FRP.Yampa
import qualified SDL
import YampaSDL2.Internal.AppInput (AppInput)
firstEvent :: IO (Event SDL.EventPayload)
firstEvent = return NoEvent
data SDLInit a b = SDLInit
{ initAction :: IO a
, inputAction :: Bool -> IO (DTime, Maybe a)
, outputAction :: Bool -> b -> IO Bool
, parseInput :: SF a AppInput
, closeAction :: IO ()
}
data SDLConfiguration = SDLConfiguration
{ windowWidth :: Int
, windowHeight :: Int
, windowName :: String
, windowResizable :: Bool
, fps :: Double
}
defaultSDLConfiguration :: SDLConfiguration
defaultSDLConfiguration =
SDLConfiguration
{ windowWidth = 800
, windowHeight = 600
, windowName = "App"
, windowResizable = True
, fps = 60
}