new_editor: stabilize multi-window host lifecycle

This commit is contained in:
2026-04-22 00:19:06 +08:00
parent 08ff505b67
commit 0411cd0ec1
10 changed files with 280 additions and 27 deletions

View File

@@ -181,16 +181,28 @@ bool EditorWindowRuntimeController::Initialize(
void EditorWindowRuntimeController::Shutdown() {
m_ready = false;
ResetFrameTiming();
LogRuntimeTrace("window-close", "EditorWindowRuntimeController::Shutdown stage=WaitForGpuIdle");
m_windowRenderer.WaitForGpuIdle();
LogRuntimeTrace("window-close", "EditorWindowRuntimeController::Shutdown stage=AutoScreenshot");
m_autoScreenshot.Shutdown();
LogRuntimeTrace("window-close", "EditorWindowRuntimeController::Shutdown stage=ShellRuntime");
m_shellRuntime.Shutdown();
LogRuntimeTrace("window-close", "EditorWindowRuntimeController::Shutdown stage=RenderLoopDetach");
m_windowRenderLoop.Detach();
LogRuntimeTrace("window-close", "EditorWindowRuntimeController::Shutdown stage=UiRenderer");
m_uiRenderer.Shutdown();
LogRuntimeTrace("window-close", "EditorWindowRuntimeController::Shutdown stage=TextSystem");
m_textSystem.Shutdown();
LogRuntimeTrace("window-close", "EditorWindowRuntimeController::Shutdown stage=TitleBarLogo");
m_textureHost.ReleaseTexture(m_titleBarLogoIcon);
LogRuntimeTrace("window-close", "EditorWindowRuntimeController::Shutdown stage=TextureHost");
m_textureHost.Shutdown();
LogRuntimeTrace("window-close", "EditorWindowRuntimeController::Shutdown stage=WindowRenderer");
m_windowRenderer.Shutdown();
LogRuntimeTrace("window-close", "EditorWindowRuntimeController::Shutdown stage=NativeRenderer");
m_renderer.Shutdown();
m_dpiScale = 1.0f;
LogRuntimeTrace("window-close", "EditorWindowRuntimeController::Shutdown end");
}
void EditorWindowRuntimeController::ResetInteractionState() {