28 lines
553 B
Haskell
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 ()
|