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 +4/−0
- keid-ui-dearimgui.cabal +2/−2
- src/Render/ImGui.hs +21/−6
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+ }