rhine-gloss 0.8.1 → 0.8.1.1
raw patch · 3 files changed
+22/−11 lines, 3 filesdep +mmorphdep ~basedep ~rhinePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: mmorph
Dependency ranges changed: base, rhine
API changes (from Hackage documentation)
+ FRP.Rhine.Gloss.IO: instance Control.Monad.Morph.MFunctor FRP.Rhine.Gloss.IO.GlossConcT
+ FRP.Rhine.Gloss.IO: instance Control.Monad.Morph.MMonad FRP.Rhine.Gloss.IO.GlossConcT
- FRP.Rhine.Gloss.IO: flowGlossIO :: (Clock (GlossConcT IO) cl, GetClockProxy cl, Time cl ~ Time (In cl), Time cl ~ Time (Out cl)) => GlossSettings -> Rhine (GlossConcT IO) cl () () -> IO ()
+ FRP.Rhine.Gloss.IO: flowGlossIO :: (MonadIO m, Clock (GlossConcT m) cl, GetClockProxy cl, Time cl ~ Time (In cl), Time cl ~ Time (Out cl)) => GlossSettings -> Rhine (GlossConcT m) cl () () -> m ()
- FRP.Rhine.Gloss.IO: glossConcurrently :: (Monad IO, Clock (GlossConcT IO) cl1, Clock (GlossConcT IO) cl2, Time cl1 ~ Time cl2) => Schedule (GlossConcT IO) cl1 cl2
+ FRP.Rhine.Gloss.IO: glossConcurrently :: (Clock (GlossConcT IO) cl1, Clock (GlossConcT IO) cl2, Time cl1 ~ Time cl2) => Schedule (GlossConcT IO) cl1 cl2
Files
- ChangeLog.md +5/−0
- rhine-gloss.cabal +8/−5
- src/FRP/Rhine/Gloss/IO.hs +9/−6
ChangeLog.md view
@@ -1,5 +1,10 @@ # Revision history for rhine-gloss +## 0.7.0++* Reworked `gloss` backends.+ There are now two pure backends and an `IO` backend.+ ## 0.4.0.0 -- 2017.12.04 * Version bump
rhine-gloss.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: rhine-gloss-version: 0.8.1+version: 0.8.1.1 synopsis: Gloss backend for Rhine description: This package provides a simple wrapper for the `gloss` library,@@ -26,7 +26,7 @@ source-repository this type: git location: https://github.com/turion/rhine.git- tag: v0.8.1+ tag: v0.8.1.1 library@@ -36,13 +36,16 @@ FRP.Rhine.Gloss.IO FRP.Rhine.Gloss.Pure FRP.Rhine.Gloss.Pure.Combined- build-depends: base >= 4.11 && < 4.17+ build-depends: base >= 4.14 && < 4.18 , transformers >= 0.5- , rhine == 0.8.1+ , rhine == 0.8.1.1 , dunai >= 0.8 , gloss >= 1.12+ , mmorph >= 1.1 hs-source-dirs: src default-language: Haskell2010+ default-extensions:+ TypeOperators ghc-options: -W if flag(dev) ghc-options: -Werror@@ -50,7 +53,7 @@ executable rhine-gloss-gears main-is: Main.hs ghc-options: -threaded- build-depends: base >= 4.9 && < 5+ build-depends: base >= 4.14 && < 4.18 , rhine-gloss default-language: Haskell2010 ghc-options: -W -threaded -rtsopts -with-rtsopts=-N
src/FRP/Rhine/Gloss/IO.hs view
@@ -28,6 +28,9 @@ import Control.Monad.Trans.Class import Control.Monad.Trans.Reader +-- mmorph+import Control.Monad.Morph+ -- gloss import Graphics.Gloss.Interface.IO.Game @@ -44,7 +47,7 @@ -- | Wraps the concurrent variables needed for communication with the @gloss@ backend. newtype GlossConcT m a = GlossConcT { unGlossConcT :: ReaderT GlossEnv m a }- deriving (Functor, Applicative, Monad, MonadTrans, MonadIO)+ deriving (Functor, Applicative, Monad, MonadTrans, MonadIO, MFunctor, MMonad) withPicRef :: MonadIO m@@ -134,21 +137,21 @@ -- | Run a 'Rhine' in the 'GlossConcT' monad by launching a separate thread for the @gloss@ backend, -- and reactimate in the foreground. flowGlossIO- :: ( Clock (GlossConcT IO) cl+ :: ( MonadIO m+ , Clock (GlossConcT m) cl , GetClockProxy cl , Time cl ~ Time (In cl) , Time cl ~ Time (Out cl) ) => GlossSettings- -> Rhine (GlossConcT IO) cl () ()- -> IO ()+ -> Rhine (GlossConcT m) cl () ()+ -> m () flowGlossIO settings = launchGlossThread settings . flow -- | A schedule in the 'GlossConcT' transformer, -- supplying the same backend connection to its scheduled clocks. glossConcurrently- :: ( Monad IO- , Clock (GlossConcT IO) cl1, Clock (GlossConcT IO) cl2+ :: ( Clock (GlossConcT IO) cl1, Clock (GlossConcT IO) cl2 , Time cl1 ~ Time cl2 ) => Schedule (GlossConcT IO) cl1 cl2