packages feed

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 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