Refactor new editor boundaries and test ownership

This commit is contained in:
2026-04-19 15:52:28 +08:00
parent dc13b56cf3
commit 93f06e84ed
279 changed files with 6349 additions and 3238 deletions

View File

@@ -7,7 +7,7 @@
#include "Features/Inspector/InspectorPanel.h"
#include "Features/Project/ProjectPanel.h"
#include "Features/Scene/SceneEditCommandRoute.h"
#include "Features/Scene/SceneViewportController.h"
#include "Features/Scene/SceneViewportFeature.h"
#include "Rendering/Assets/BuiltInIcons.h"
#include "Rendering/Viewport/ViewportHostService.h"
#include "Composition/WorkspaceEventSync.h"
@@ -29,12 +29,12 @@ class EditorContext;
} // namespace XCEngine::UI::Editor::App
namespace XCEngine::UI::Editor::Host {
namespace XCEngine::UI::Editor::Ports {
class TextureHost;
class ViewportRenderHost;
class TexturePort;
class ViewportRenderPort;
} // namespace XCEngine::UI::Editor::Host
} // namespace XCEngine::UI::Editor::Ports
namespace XCEngine::Rendering {
@@ -48,11 +48,11 @@ class EditorShellRuntime {
public:
void Initialize(
const std::filesystem::path& repoRoot,
Host::TextureHost& textureHost,
Ports::TexturePort& textureHost,
UIEditorTextMeasurer& textMeasurer);
void Shutdown();
void ResetInteractionState();
void AttachViewportWindowRenderer(Host::ViewportRenderHost& renderer);
void AttachViewportWindowRenderer(Ports::ViewportRenderPort& renderer);
void DetachViewportWindowRenderer();
void SetViewportSurfacePresentationEnabled(bool enabled);
@@ -90,14 +90,14 @@ public:
private:
ViewportHostService m_viewportHostService = {};
SceneViewportFeature m_sceneViewportFeature = {};
BuiltInIcons m_builtInIcons = {};
Host::TextureHost* m_textureHost = nullptr;
Ports::TexturePort* m_textureHost = nullptr;
ConsolePanel m_consolePanel = {};
HierarchyPanel m_hierarchyPanel = {};
InspectorPanel m_inspectorPanel = {};
ProjectPanel m_projectPanel = {};
SceneEditCommandRoute m_sceneEditCommandRoute = {};
SceneViewportController m_sceneViewportController = {};
UIEditorShellInteractionState m_shellInteractionState = {};
UIEditorShellInteractionFrame m_shellFrame = {};
std::vector<WorkspaceTraceEntry> m_traceEntries = {};