62 lines
1.5 KiB
C++
62 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include <XCEngine/Scene/Scene.h>
|
|
#include <XCEngine/UI/Types.h>
|
|
|
|
#include <memory>
|
|
|
|
namespace XCEngine {
|
|
namespace UI {
|
|
namespace Runtime {
|
|
|
|
class UISceneRuntimeContext;
|
|
class UISystem;
|
|
class UIScreenStackController;
|
|
struct UISystemFrameResult;
|
|
|
|
} // namespace Runtime
|
|
} // namespace UI
|
|
} // namespace XCEngine
|
|
|
|
namespace XCEngine {
|
|
namespace Components {
|
|
|
|
class SceneRuntime {
|
|
public:
|
|
SceneRuntime();
|
|
~SceneRuntime();
|
|
|
|
SceneRuntime(SceneRuntime&& other) noexcept;
|
|
SceneRuntime& operator=(SceneRuntime&& other) noexcept;
|
|
|
|
SceneRuntime(const SceneRuntime&) = delete;
|
|
SceneRuntime& operator=(const SceneRuntime&) = delete;
|
|
|
|
void Start(Scene* scene);
|
|
void Stop();
|
|
void ReplaceScene(Scene* scene);
|
|
|
|
void FixedUpdate(float fixedDeltaTime);
|
|
void Update(float deltaTime);
|
|
void LateUpdate(float deltaTime);
|
|
|
|
UI::Runtime::UISystem& GetUISystem();
|
|
UI::Runtime::UIScreenStackController& GetUIScreenStackController();
|
|
const UI::Runtime::UISystemFrameResult& GetLastUIFrame() const;
|
|
void SetUIViewportRect(const UI::UIRect& viewportRect);
|
|
void SetUIFocused(bool focused);
|
|
void QueueUIInputEvent(const UI::UIInputEvent& event);
|
|
void ClearQueuedUIInputEvents();
|
|
|
|
bool IsRunning() const { return m_running; }
|
|
Scene* GetScene() const { return m_scene; }
|
|
|
|
private:
|
|
std::unique_ptr<UI::Runtime::UISceneRuntimeContext> m_uiRuntime;
|
|
Scene* m_scene = nullptr;
|
|
bool m_running = false;
|
|
};
|
|
|
|
} // namespace Components
|
|
} // namespace XCEngine
|