Files
XCEngine/editor/app/Features/Scene/SceneViewportFeature.h

37 lines
1.1 KiB
C++

#pragma once
#include "Assets/EditorIconService.h"
#include "Scene/SceneViewportController.h"
#include "Viewport/EditorViewportRuntimeServices.h"
#include <XCEditor/Workspace/UIEditorWorkspaceCompose.h>
#include <XCEngine/UI/DrawData.h>
namespace XCEngine::UI::Editor::App {
class EditorCommandFocusService;
class EditorSceneRuntime;
class SceneViewportFeature {
public:
void Initialize(
const EditorIconService* iconService,
EditorSceneViewportRuntime& sceneViewportRuntime);
void Shutdown();
void ResetInteractionState();
void SetCommandFocusService(EditorCommandFocusService* commandFocusService);
void SyncRenderRequest(EditorSceneRuntime& sceneRuntime);
void Update(
EditorSceneRuntime& sceneRuntime,
const UIEditorWorkspaceComposeState& composeState,
const UIEditorWorkspaceComposeFrame& composeFrame);
void Append(::XCEngine::UI::UIDrawList& drawList) const;
private:
EditorSceneViewportRuntime* m_sceneViewportRuntime = nullptr;
SceneViewportController m_controller = {};
};
} // namespace XCEngine::UI::Editor::App