From 8da1fa5db579d90f0cac25d7f825622ddb3bd3c9 Mon Sep 17 00:00:00 2001 From: SweetId <2630750+SweetId@users.noreply.github.com> Date: Thu, 16 Nov 2023 18:04:30 +0530 Subject: [PATCH] ImguiDrawer::Prepare now calls RenderInternal --- include/NazaraImgui/NazaraImgui.hpp | 4 ++++ src/NazaraImgui/ImguiDrawer.cpp | 4 ++++ src/NazaraImgui/NazaraImgui.cpp | 13 ++++++++----- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/include/NazaraImgui/NazaraImgui.hpp b/include/NazaraImgui/NazaraImgui.hpp index 5df04f8..8f70b95 100644 --- a/include/NazaraImgui/NazaraImgui.hpp +++ b/include/NazaraImgui/NazaraImgui.hpp @@ -58,6 +58,8 @@ namespace Nz static void GetAllocatorFunctions(ImGuiMemAllocFunc* allocFunc, ImGuiMemFreeFunc* freeFunc, void** userData); private: + void RenderInternal(); + void SetupInputs(Nz::WindowEventHandler& handler); void Update(const Nz::Vector2i& mousePosition, const Nz::Vector2ui& displaySize, float dt); @@ -78,6 +80,8 @@ namespace Nz std::unordered_set m_handlers; static Imgui* s_instance; + + friend class ImguiDrawer; }; } diff --git a/src/NazaraImgui/ImguiDrawer.cpp b/src/NazaraImgui/ImguiDrawer.cpp index c95910b..5442e2f 100644 --- a/src/NazaraImgui/ImguiDrawer.cpp +++ b/src/NazaraImgui/ImguiDrawer.cpp @@ -1,5 +1,7 @@ #include +#include + #include #include #include @@ -64,6 +66,8 @@ namespace Nz void ImguiDrawer::Prepare(RenderFrame& frame) { + Nz::Imgui::Instance()->RenderInternal(); + m_drawCalls.clear(); ImDrawData* drawData = ImGui::GetDrawData(); diff --git a/src/NazaraImgui/NazaraImgui.cpp b/src/NazaraImgui/NazaraImgui.cpp index a3c8d5d..325a4a9 100644 --- a/src/NazaraImgui/NazaraImgui.cpp +++ b/src/NazaraImgui/NazaraImgui.cpp @@ -277,11 +277,6 @@ namespace Nz void Imgui::Render(Nz::RenderTarget* renderTarget, Nz::RenderFrame& frame) { - for (auto* handler : m_handlers) - handler->OnRenderImgui(); - - ImGui::Render(); - m_imguiDrawer.Prepare(frame); frame.Execute([this, renderTarget, &frame](Nz::CommandBufferBuilder& builder) { @@ -300,6 +295,14 @@ namespace Nz }, Nz::QueueType::Graphics); } + void Imgui::RenderInternal() + { + for (auto* handler : m_handlers) + handler->OnRenderImgui(); + + ImGui::Render(); + } + void Imgui::AddHandler(ImguiHandler* handler) { m_handlers.insert(handler);