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 ()
|