module KeyboardMouseC (keyboardMouse ) where import Graphics.Rendering.OpenGL import Graphics.UI.GLUT import States import KeyboardMouseState import Data.IORef keyboardMouse :: 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 kst $=! (setKState dst mst' kst' key keystate modifier position)