ibis/src/Events.hs

28 lines
553 B
Haskell
Raw Normal View History

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