packages feed

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