layers-game-0.4: src/Callback/MouseMove.hs
module Callback.MouseMove where
import qualified Data.IORef as R
import Control.Applicative ((<$>))
import qualified Utils as LU
import qualified Graphics.UI.GLFW as GLFW
import qualified AppData as AP
newMouseMoveCallback :: AP.AppDataRef -> GLFW.CursorPosCallback
newMouseMoveCallback appRef = callback
where
callback win x y = do
mp <- LU.windowToLevelCoords (floor x, floor y) <$> R.readIORef appRef
R.modifyIORef appRef (AP.handleMouseMoved mp)