From 44ee5acc328c9181a588dd2566ab9c9cfbc382ff Mon Sep 17 00:00:00 2001 From: Sanmay Date: Sun, 9 Jul 2023 19:01:19 +0530 Subject: [PATCH] Fixed unresponsive ui during window resize --- Hazel/src/Hazel/Core/Application.cpp | 47 +++++++++++++++------------- Hazel/src/Hazel/Core/Application.h | 1 + 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/Hazel/src/Hazel/Core/Application.cpp b/Hazel/src/Hazel/Core/Application.cpp index 8da18234b..b9bd887c2 100644 --- a/Hazel/src/Hazel/Core/Application.cpp +++ b/Hazel/src/Hazel/Core/Application.cpp @@ -90,37 +90,40 @@ namespace Hazel { { HZ_PROFILE_FUNCTION(); - while (m_Running) - { + while (m_Running) { HZ_PROFILE_SCOPE("RunLoop"); + OnUpdate(); + } + } - float time = Time::GetTime(); - Timestep timestep = time - m_LastFrameTime; - m_LastFrameTime = time; + void Application::OnUpdate() + { + float time = Time::GetTime(); + Timestep timestep = time - m_LastFrameTime; + m_LastFrameTime = time; - ExecuteMainThreadQueue(); + ExecuteMainThreadQueue(); - if (!m_Minimized) + if (!m_Minimized) + { { - { - HZ_PROFILE_SCOPE("LayerStack OnUpdate"); + HZ_PROFILE_SCOPE("LayerStack OnUpdate"); - for (Layer* layer : m_LayerStack) - layer->OnUpdate(timestep); - } + for (Layer* layer : m_LayerStack) + layer->OnUpdate(timestep); + } - m_ImGuiLayer->Begin(); - { - HZ_PROFILE_SCOPE("LayerStack OnImGuiRender"); + m_ImGuiLayer->Begin(); + { + HZ_PROFILE_SCOPE("LayerStack OnImGuiRender"); - for (Layer* layer : m_LayerStack) - layer->OnImGuiRender(); - } - m_ImGuiLayer->End(); + for (Layer* layer : m_LayerStack) + layer->OnImGuiRender(); } - - m_Window->OnUpdate(); + m_ImGuiLayer->End(); } + + m_Window->OnUpdate(); } bool Application::OnWindowClose(WindowCloseEvent& e) @@ -142,6 +145,8 @@ namespace Hazel { m_Minimized = false; Renderer::OnWindowResize(e.GetWidth(), e.GetHeight()); + OnUpdate(); + return false; } diff --git a/Hazel/src/Hazel/Core/Application.h b/Hazel/src/Hazel/Core/Application.h index 6374e8828..5a810e3a7 100644 --- a/Hazel/src/Hazel/Core/Application.h +++ b/Hazel/src/Hazel/Core/Application.h @@ -58,6 +58,7 @@ namespace Hazel { void SubmitToMainThread(const std::function& function); private: void Run(); + void OnUpdate(); bool OnWindowClose(WindowCloseEvent& e); bool OnWindowResize(WindowResizeEvent& e);