refactor(editor): isolate engine service boundaries

This commit is contained in:
2026-04-29 03:19:46 +08:00
parent ef11651ec2
commit 313a571e43
60 changed files with 3804 additions and 2611 deletions

View File

@@ -1,11 +1,36 @@
#pragma once
#include "Engine/EditorEngineServices.h"
#include "Engine/EditorEngineLifecycle.h"
#include "Engine/EditorSceneBackendFactory.h"
#include "Engine/EditorShaderProvider.h"
#include "Engine/GameViewportEngineBridge.h"
#include "Engine/SceneViewportEngineBridge.h"
#include <memory>
namespace XCEngine::UI::Editor::App {
std::unique_ptr<EditorEngineServices> CreateEngineEditorServices();
class EngineEditorComposition {
public:
EngineEditorComposition();
~EngineEditorComposition();
EngineEditorComposition(const EngineEditorComposition&) = delete;
EngineEditorComposition& operator=(const EngineEditorComposition&) = delete;
EngineEditorComposition(EngineEditorComposition&&) = delete;
EngineEditorComposition& operator=(EngineEditorComposition&&) = delete;
EditorSceneBackendFactory& GetSceneBackendFactory();
SceneViewportEngineBridge& GetSceneViewportBridge();
GameViewportEngineBridge& GetGameViewportBridge();
EditorShaderProvider& GetShaderProvider();
EditorEngineLifecycle& GetLifecycle();
private:
class Impl;
std::unique_ptr<Impl> m_impl = {};
};
std::unique_ptr<EngineEditorComposition> CreateEngineEditorComposition();
} // namespace XCEngine::UI::Editor::App