packages feed

netwire-input-glfw 0.0.8 → 0.0.9

raw patch · 2 files changed

+29/−23 lines, 2 filesdep +deepseqdep ~netwire-input

Dependencies added: deepseq

Dependency ranges changed: netwire-input

Files

lib/FRP/Netwire/Input/GLFW.hs view
@@ -1,7 +1,7 @@ {-| Module      : FRP.Netwire.Input.GLFW Description : netwire-input instances for use with GLFW-Copyright   : (c) Pavel Krajcevski, 2017+Copyright   : (c) Pavel Krajcevski, 2018 License     : MIT Maintainer  : Krajcevski@gmail.com Stability   : experimental@@ -13,10 +13,13 @@ 'MonadMouse'  -}-+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE InstanceSigs #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE TypeSynonymInstances #-} {-# LANGUAGE UndecidableInstances #-}- module FRP.Netwire.Input.GLFW (   -- * GLFW Input @@ -40,12 +43,14 @@ import qualified Graphics.UI.GLFW as GLFW import Control.Applicative import Control.Concurrent.STM+import Control.DeepSeq import Control.Monad.RWS import Control.Monad.State import Control.Monad.Except import Control.Monad.Cont import Control.Monad.Identity import GHC.Float hiding (clamp)+import GHC.Generics  import FRP.Netwire.Input --------------------------------------------------------------------------------@@ -82,8 +87,12 @@   cursorPos :: (Float, Float),   cmode :: CursorMode,   scrollAmt :: (Double, Double)-} deriving(Show)+} deriving(Show, Generic) +instance NFData GLFW.Key+instance NFData GLFW.MouseButton+instance NFData GLFWInputState+ instance Key GLFW.Key instance MouseButton GLFW.MouseButton @@ -213,7 +222,6 @@  setInput :: GLFWInputControl -> GLFWInputState -> IO () setInput (IptCtl var win) ipt = do-   -- Do we need to change the cursor mode?   curMode <- GLFW.getCursorInputMode win   let newMode = modeToGLFWMode (cmode ipt)@@ -221,18 +229,20 @@     GLFW.setCursorInputMode win newMode    -- Write the new input-  atomically $ writeTVar var (ipt { scrollAmt = (0, 0) })+  atomically $ writeTVar var $!! (ipt { scrollAmt = (0, 0) })  resetCursorPos :: GLFWInputState -> GLFWInputState resetCursorPos input = input { cursorPos = (0, 0) }  resolveReleased :: GLFWInputState -> GLFWInputState resolveReleased input = input {-  keysPressed = Map.map (+1) $-                foldl (flip Map.delete) (keysPressed input) (Set.elems $ keysReleased input),+  keysPressed =+     (+1) <$>+     foldl (flip Map.delete) (keysPressed input) (Set.elems $ keysReleased input),   keysReleased = Set.empty,-  mbPressed = Map.map (+1) $-              foldl (flip Map.delete) (mbPressed input) (Set.elems $ mbReleased input),+  mbPressed =+    (+1) <$>+    foldl (flip Map.delete) (mbPressed input) (Set.elems $ mbReleased input),   mbReleased = Set.empty   } 
netwire-input-glfw.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                netwire-input-glfw-version:             0.0.8+version:             0.0.9 synopsis:            GLFW instance of netwire-input description:         This package contains the necessary glue to allow the use                      of wires from the netwire-input package. In general, the@@ -14,7 +14,7 @@ license-file:        LICENSE author:              Pavel Krajcevski maintainer:          Krajcevski@gmail.com-copyright:           Pavel Krajcevski, 2014-2017+copyright:           Pavel Krajcevski, 2014-2018 category:            Game build-type:          Simple extra-source-files:  examples/Cursor.hs README.md@@ -29,18 +29,14 @@   location:       https://github.com/Mokosha/netwire-input-glfw  library-  default-extensions:  FlexibleInstances,-                       TypeSynonymInstances,-                       MultiParamTypeClasses,-                       InstanceSigs   exposed-modules:     FRP.Netwire.Input.GLFW-  -- other-modules:       -  build-depends:       base >= 4.6 && < 6,-                       netwire-input,-                       containers,-                       GLFW-b,-                       stm,-                       mtl+  build-depends:         base              >= 4.6 && < 6+                       , netwire-input     >= 0.0.7+                       , containers+                       , deepseq+                       , GLFW-b+                       , stm+                       , mtl   hs-source-dirs:      lib   default-language:    Haskell2010