ibis/src/Events.hs
2019-01-31 16:09:01 +01:00

28 lines
553 B
Haskell

module Events where
import qualified SDL
import Linear
import Control.Concurrent.MVar
-- internal impomrts
import Util
eventHandler :: MVar Bool -> SDL.Event -> IO ()
eventHandler run (SDL.Event _ payload) =
handlePayload run payload
handlePayload :: MVar Bool -> SDL.EventPayload -> IO ()
handlePayload _ (SDL.WindowResizedEvent (SDL.WindowResizedEventData _ dim)) =
fitViewport (800 / 600) dim
handlePayload run (SDL.WindowClosedEvent _) = do
_ <- swapMVar run False
return ()
-- catch all other events
handlePayload _ _ = return ()