ImguiDrawer::Prepare now calls RenderInternal

This commit is contained in:
SweetId 2023-11-16 18:04:30 +05:30
parent 741b593033
commit 8da1fa5db5
3 changed files with 16 additions and 5 deletions

View File

@ -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<ImguiHandler*> m_handlers;
static Imgui* s_instance;
friend class ImguiDrawer;
};
}

View File

@ -1,5 +1,7 @@
#include <NazaraImgui/ImguiDrawer.hpp>
#include <NazaraImgui/NazaraImgui.hpp>
#include <Nazara/Renderer/CommandBufferBuilder.hpp>
#include <Nazara/Renderer/RenderDevice.hpp>
#include <Nazara/Renderer/RenderFrame.hpp>
@ -64,6 +66,8 @@ namespace Nz
void ImguiDrawer::Prepare(RenderFrame& frame)
{
Nz::Imgui::Instance()->RenderInternal();
m_drawCalls.clear();
ImDrawData* drawData = ImGui::GetDrawData();

View File

@ -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);