Files
XCEngine/editor/app/Services/Engine/EngineEditorServices.h

37 lines
1.1 KiB
C++

#pragma once
#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 {
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