refactor(editor): isolate windowing from composition runtime

This commit is contained in:
2026-04-27 23:45:24 +08:00
parent 603d003684
commit 6b488d5eac
34 changed files with 418 additions and 193 deletions

View File

@@ -1,8 +1,8 @@
#pragma once
#include "EditorShellRuntime.h"
#include "Content/EditorWindowContentController.h"
#include "Frame/EditorWindowFrameOrchestrator.h"
#include "Windowing/EditorWorkspaceShellRuntime.h"
#include <XCEditor/Workspace/UIEditorWorkspaceController.h>
@@ -25,7 +25,7 @@ public:
EditorWorkspaceWindowContentController(
const UIEditorWindowWorkspaceState& windowState,
EditorWindowSystem& windowSystem,
EditorWorkspacePanelRuntimeSet workspacePanels);
std::unique_ptr<EditorWorkspaceShellRuntime> shellRuntime);
~EditorWorkspaceWindowContentController() override;
EditorWindowContentCapabilities GetCapabilities() const override;
@@ -82,13 +82,13 @@ private:
std::string m_windowId = {};
EditorWindowSystem& m_windowSystem;
EditorWorkspaceWindowProjection m_projection = {};
EditorShellRuntime m_shellRuntime = {};
std::unique_ptr<EditorWorkspaceShellRuntime> m_shellRuntime = {};
EditorWindowFrameOrchestrator m_frameOrchestrator = {};
};
std::unique_ptr<EditorWindowContentController> CreateEditorWorkspaceWindowContentController(
const UIEditorWindowWorkspaceState& windowState,
EditorWindowSystem& windowSystem,
EditorWorkspacePanelRuntimeSet workspacePanels);
std::unique_ptr<EditorWorkspaceShellRuntime> shellRuntime);
} // namespace XCEngine::UI::Editor::App