packages feed

keid-ui-dearimgui 0.1.1.1 → 0.1.2.0

raw patch · 3 files changed

+27/−8 lines, 3 filesdep ~keid-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: keid-core

API changes (from Hackage documentation)

+ Render.ImGui: renderWith :: HasRenderPass renderpass => (t -> renderpass) -> ("subpass index" ::: Word32) -> Rendering t p st -> Rendering t p st

Files

ChangeLog.md view
@@ -1,5 +1,9 @@ # Changelog for keid-dearimgui +## 0.1.2.0++- Added `renderWith` helper to inject DearImGui initialization in stage rendering components.+ ## 0.1.1.1  - Added `Vk.deviceWaitIdle` injection in `afterLoop`.
keid-ui-dearimgui.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           keid-ui-dearimgui-version:        0.1.1.1+version:        0.1.2.0 synopsis:       DearImGui elements for Keid engine. category:       Game Engine author:         IC Rainbow@@ -94,7 +94,7 @@     , binary     , bytestring     , dear-imgui >=1.3.0-    , keid-core >=0.1.6.1+    , keid-core >=0.1.7.0     , resourcet     , rio >=0.1.12.0     , rio-app
src/Render/ImGui.hs view
@@ -4,6 +4,8 @@   , allocateWithFonts   , allocateWith +  , renderWith+   , allocateLoop   , beforeLoop   , afterLoop@@ -24,17 +26,17 @@ import DearImGui.GLFW.Vulkan (glfwInitForVulkan) import DearImGui.Vulkan (InitInfo(..)) import DearImGui.Vulkan qualified as ImGui-import Engine.Vulkan.Types (getDevice)+import Engine.Stage.Component qualified as Stage+import Engine.Types (GlobalHandles(..), StageRIO)+import Engine.Vulkan.Types (HasRenderPass(..), HasSwapchain(..), Queues(..), getDevice, getMultisample)+import Resource.CommandBuffer qualified as CommandBuffer+import Resource.DescriptorSet qualified as DescriptorSet import RIO.App (appEnv) import Vulkan.Core10 qualified as Vk import Vulkan.Exception (VulkanException(..))+import Vulkan.NamedType (type (:::)) import Vulkan.Utils.QueueAssignment (QueueFamilyIndex(..)) -import Engine.Types (GlobalHandles(..), StageRIO)-import Engine.Vulkan.Types (HasRenderPass(..), HasSwapchain(..), Queues(..), getMultisample)-import Resource.CommandBuffer qualified as CommandBuffer-import Resource.DescriptorSet qualified as DescriptorSet- allocate   :: ( HasSwapchain swapchain      , HasRenderPass renderpass@@ -195,3 +197,16 @@ capturingMouse :: MonadIO m => m () -> m () capturingMouse action =   ImGui.wantCaptureMouse >>= (`unless` action)++renderWith+  :: HasRenderPass renderpass+  => (t -> renderpass)+  -> "subpass index" ::: Word32+  -> Stage.Rendering t p st+  -> Stage.Rendering t p st+renderWith getRP subpassIx Stage.Rendering{..} = Stage.Rendering+  { rAllocateRP+  , rAllocateP = \swapchain rps -> do+      void $! allocate swapchain (getRP rps) subpassIx+      rAllocateP swapchain rps+  }