#pragma once #include "Assets/EditorIconService.h" #include "Scene/SceneViewportController.h" #include "Viewport/EditorViewportRuntimeServices.h" #include #include 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