diff --git a/Engine/src/Core/Application.cpp b/Engine/src/Core/Application.cpp index fbbc7c5..83d5717 100644 --- a/Engine/src/Core/Application.cpp +++ b/Engine/src/Core/Application.cpp @@ -54,6 +54,8 @@ namespace Engine { m_Renderer->GetDevice().GetDevice().waitIdle(); } + if (m_ImGuiLayer) m_ImGuiLayer.reset(); + Logger::Shutdown(); } @@ -106,16 +108,16 @@ namespace Engine { m_Scene->FlushDestroyQueue(); m_Scene->UpdateTransforms(); // UE transform-update 阶段:渲染前保证 world 新鲜 - const auto uiStart = std::chrono::steady_clock::now(); // ---- UI 构建段:OnRenderOverlay 只"声明"控件,不直接碰 GPU ---- if (m_ImGuiLayer && m_ImGuiLayer->IsEnabled()) { + const auto uiStart = std::chrono::steady_clock::now(); m_ImGuiLayer->NewFrame(); OnRenderOverlay(); m_ImGuiLayer->BuildDrawData(); + const auto uiEnd = std::chrono::steady_clock::now(); } - const auto uiEnd = std::chrono::steady_clock::now(); // ---- 主渲染(框架行为):RG 顺序 Forward → ImGui(loadOp=Load) → // Present,draw data 在 ImGui pass 里才真正提交 GPU ----