refactor(new_editor): unify d3d12 text run caching

This commit is contained in:
2026-04-21 21:07:06 +08:00
parent 5d3d52496e
commit 0f84e52c21
6 changed files with 131 additions and 366 deletions

View File

@@ -74,9 +74,10 @@ void EditorWindowRuntimeController::ClearExternalDockHostDropPreview() {
}
void EditorWindowRuntimeController::SetDpiScale(float dpiScale) {
m_dpiScale = dpiScale > 0.0f ? dpiScale : 1.0f;
m_renderer.SetDpiScale(dpiScale);
m_textSystem.SetDpiScale(dpiScale);
m_uiRenderer.SetDpiScale(dpiScale);
m_textSystem.SetDpiScale(m_dpiScale);
m_uiRenderer.SetDpiScale(m_dpiScale);
}
::XCEngine::UI::Editor::UIEditorTextMeasurer& EditorWindowRuntimeController::GetTextMeasurer() {
@@ -124,7 +125,7 @@ bool EditorWindowRuntimeController::Initialize(
m_windowRenderer.Shutdown();
return false;
}
m_textSystem.SetDpiScale(m_renderer.GetDpiScale());
m_textSystem.SetDpiScale(m_dpiScale);
if (!m_uiRenderer.Initialize(m_windowRenderer, m_textureHost, m_textSystem)) {
LogRuntimeTrace("app", "d3d12 ui renderer initialization failed");
@@ -133,7 +134,7 @@ bool EditorWindowRuntimeController::Initialize(
m_windowRenderer.Shutdown();
return false;
}
m_uiRenderer.SetDpiScale(m_renderer.GetDpiScale());
m_uiRenderer.SetDpiScale(m_dpiScale);
const Host::D3D12WindowRenderLoopAttachResult attachResult =
m_windowRenderLoop.Attach(m_uiRenderer, m_windowRenderer);
@@ -189,6 +190,7 @@ void EditorWindowRuntimeController::Shutdown() {
m_textureHost.Shutdown();
m_windowRenderer.Shutdown();
m_renderer.Shutdown();
m_dpiScale = 1.0f;
}
void EditorWindowRuntimeController::ResetInteractionState() {