refactor(new_editor): tighten app dependency boundaries

This commit is contained in:
2026-04-19 02:48:41 +08:00
parent 7429f22fb1
commit c59cd83c38
86 changed files with 1754 additions and 1077 deletions

View File

@@ -1,28 +1,28 @@
#include "Composition/EditorShellRuntime.h"
#include "Host/TextureHost.h"
#include "Host/ViewportRenderHost.h"
#include "State/EditorContext.h"
#include <Rendering/D3D12/D3D12WindowRenderer.h>
#include <Rendering/Native/NativeRenderer.h>
#include <XCEngine/Rendering/RenderContext.h>
namespace XCEngine::UI::Editor::App {
void EditorShellRuntime::Initialize(
const std::filesystem::path& repoRoot,
Host::NativeRenderer& renderer) {
m_nativeRenderer = &renderer;
m_builtInIcons.Initialize(renderer);
m_sceneViewportController.Initialize(repoRoot, renderer);
Host::TextureHost& textureHost,
UIEditorTextMeasurer& textMeasurer) {
m_textureHost = &textureHost;
m_builtInIcons.Initialize(textureHost);
m_sceneViewportController.Initialize(repoRoot, textureHost);
m_hierarchyPanel.SetBuiltInIcons(&m_builtInIcons);
m_projectPanel.SetBuiltInIcons(&m_builtInIcons);
m_projectPanel.SetTextMeasurer(&renderer);
m_projectPanel.SetTextMeasurer(&textMeasurer);
m_hierarchyPanel.Initialize();
m_projectPanel.Initialize(repoRoot);
}
void EditorShellRuntime::AttachViewportWindowRenderer(Host::D3D12WindowRenderer& renderer) {
void EditorShellRuntime::AttachViewportWindowRenderer(Host::ViewportRenderHost& renderer) {
m_viewportHostService.AttachWindowRenderer(renderer);
}
@@ -40,10 +40,10 @@ void EditorShellRuntime::Shutdown() {
m_splitterDragCorrectionState = {};
m_traceEntries.clear();
m_sceneEditCommandRoute = {};
if (m_nativeRenderer != nullptr) {
m_sceneViewportController.Shutdown(*m_nativeRenderer);
if (m_textureHost != nullptr) {
m_sceneViewportController.Shutdown(*m_textureHost);
m_builtInIcons.Shutdown();
m_nativeRenderer = nullptr;
m_textureHost = nullptr;
} else {
m_builtInIcons.Shutdown();
}