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