module KeyboardMouseC (keyboardMouse ) where import Graphics.Rendering.OpenGL import Graphics.UI.GLUT import States import KeyboardMouseState import Data.IORef keyboardMouse :: (IORef DState) -> (IORef KState) -> (IORef MState) -> Key -> KeyState -> Modifiers -> Position -> IO() keyboardMouse dst kst mst key keystate modifier position = do mst' <- readIORef mst kst' <- readIORef kst dst' <- readIORef dst kst $=! (setKState dst' mst' kst' key keystate modifier position)