keid-frp-banana 0.1.1.0 → 0.1.2.0
raw patch · 3 files changed
+19/−48 lines, 3 filesdep +geomancy-layoutdep ~geomancydep ~keid-corePVP ok
version bump matches the API change (PVP)
Dependencies added: geomancy-layout
Dependency ranges changed: geomancy, keid-core
API changes (from Hackage documentation)
Files
- ChangeLog.md +4/−0
- keid-frp-banana.cabal +8/−38
- src/Engine/ReactiveBanana/Window.hs +7/−10
ChangeLog.md view
@@ -1,5 +1,9 @@ # Changelog for keid-frp-banana +## 0.1.2.0++- Switched to `geomancy-layout`.+ ## 0.1.1.0 - Added more `Engine.Window.*` wrappers to `Engine.ReactiveBanana.Window`.
keid-frp-banana.cabal view
@@ -1,16 +1,16 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.34.4.+-- This file has been generated from package.yaml by hpack version 0.35.2. -- -- see: https://github.com/sol/hpack name: keid-frp-banana-version: 0.1.1.0+version: 0.1.2.0 synopsis: Reactive Banana integration for Keid engine. category: Game Engine author: IC Rainbow maintainer: keid@aenor.ru-copyright: 2022 IC Rainbow+copyright: 2023 IC Rainbow license: BSD3 license-file: LICENSE build-type: Simple@@ -36,68 +36,38 @@ default-extensions: NoImplicitPrelude ApplicativeDo- BangPatterns BinaryLiterals BlockArguments- ConstrainedClassMethods- ConstraintKinds DataKinds DefaultSignatures- DeriveDataTypeable- DeriveFunctor- DeriveGeneric- DeriveLift- DeriveTraversable DerivingStrategies DerivingVia DuplicateRecordFields- EmptyCase- EmptyDataDeriving- ExistentialQuantification- ExplicitForAll- FlexibleContexts- FlexibleInstances FunctionalDependencies- GADTs- GeneralizedNewtypeDeriving HexFloatLiterals ImportQualifiedPost- InstanceSigs- KindSignatures LambdaCase- LiberalTypeSynonyms- MultiParamTypeClasses NamedFieldPuns- NamedWildCards NumDecimals- NumericUnderscores+ OverloadedRecordDot OverloadedStrings PatternSynonyms- PostfixOperators- QuantifiedConstraints QuasiQuotes- RankNTypes RecordWildCards- ScopedTypeVariables- StandaloneDeriving- StandaloneKindSignatures StrictData TemplateHaskell- TupleSections- TypeApplications TypeFamilies TypeOperators- TypeSynonymInstances- UnicodeSyntax ViewPatterns ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wpartial-fields -Wredundant-constraints build-depends: base >=4.7 && <5- , geomancy >=0.2.4.0- , keid-core >=0.1.6.1+ , geomancy >=0.2.6.0+ , geomancy-layout+ , keid-core >=0.1.9.0 , reactive-banana >=1.3.0.0 , resourcet , rio >=0.1.12.0 , these , vulkan- default-language: Haskell2010+ default-language: GHC2021
src/Engine/ReactiveBanana/Window.hs view
@@ -6,7 +6,6 @@ import Engine.ReactiveBanana (eventHandler) import Engine.Types (StageRIO) import Engine.Types qualified as Engine-import Engine.UI.Layout qualified as Layout import Engine.Window.CursorPos qualified as CursorPos import Engine.Window.Drop qualified as Drop import Engine.Window.Key qualified as Key@@ -14,6 +13,7 @@ import Engine.Window.Scroll qualified as Scroll import Engine.Worker qualified as Worker import Geomancy (Vec2, vec2, (^/))+import Geomancy.Layout.Box (Box(..), box_) import GHC.Float (double2Float) import Reactive.Banana ((<@>), (<@>)) import Reactive.Banana qualified as RB@@ -73,7 +73,7 @@ -- | Screen-sized layout base. setupScreenBox :: (forall a. StageRIO env a -> RBF.MomentIO a)- -> RBF.MomentIO (RB.Behavior Layout.Box)+ -> RBF.MomentIO (RB.Behavior Box) setupScreenBox unlift = do screenExtent <- unlift Engine.askScreenVar >>= RBF.fromPoll . Worker.getOutputData@@ -87,11 +87,8 @@ (fromIntegral height) screenBox =- screenSize <&> \size ->- Layout.Box- { boxPosition = 0 -- XXX: since Camera.spawnOrthoPixelsCentered- , boxSize = size- }+ -- XXX: since Camera.spawnOrthoPixelsCentered+ fmap box_ screenSize pure screenBox @@ -99,7 +96,7 @@ setupCursorPos :: RB.MonadMoment m => m (RB.Event (Double, Double))- -> RB.Behavior Layout.Box+ -> RB.Behavior Box -> m (RB.Event Vec2, RB.Behavior Vec2) setupCursorPos fromCursorPos screenBox = do cursorPosRawE <- fromCursorPos@@ -110,10 +107,10 @@ cursorPosE pure (cursorPosE, cursorPos) where- convertPos Layout.Box{boxSize} (cx, cy) =+ convertPos Box{size} (cx, cy) = -- XXX: since Camera.spawnOrthoPixelsCentered vec2 (double2Float cx) (double2Float cy) -- boxSize ^/ 2+ size ^/ 2 -- | Set up a per-button collection of fused (position, modifier) click ("button pressed") events. setupMouseClicks