Extra2D/include/scene/scene_module.h

51 lines
1.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <event/events.h>
#include <module/module.h>
#include <module/module_registry.h>
#include <scene/director.h>
namespace extra2d {
/**
* @brief 场景模块
*
* 将导演系统集成到引擎模块系统中
*/
class SceneModule : public Module {
// 自动注册到模块系统,优先级为 4在 Renderer 之后)
E2D_REGISTER_MODULE(SceneModule, "Scene", 4)
public:
SceneModule();
~SceneModule() override;
// 禁止拷贝
SceneModule(const SceneModule &) = delete;
SceneModule &operator=(const SceneModule &) = delete;
// 允许移动
SceneModule(SceneModule &&) noexcept;
SceneModule &operator=(SceneModule &&) noexcept;
// Module 接口实现
bool init() override;
void shutdown() override;
/**
* @brief 获取导演
* @return 导演指针
*/
Director *getDirector() const { return director_.get(); }
private:
Ptr<Director> director_;
// 事件监听器
events::OnUpdate::Listener onUpdateListener_;
events::OnRenderBegin::Listener onRenderBeginListener_;
events::OnRenderEnd::Listener onRenderEndListener_;
};
} // namespace extra2d