Extra2D/include/scene/scene_module.h

49 lines
1.1 KiB
C
Raw Normal View History

#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 {
// 优先级为 5在 RendererModule (优先级 4) 之后初始化
E2D_REGISTER_MODULE(SceneModule, "Scene", 5)
public:
SceneModule();
~SceneModule() override;
// 禁止拷贝和移动
SceneModule(const SceneModule &) = delete;
SceneModule &operator=(const SceneModule &) = delete;
SceneModule(SceneModule &&) = delete;
SceneModule &operator=(SceneModule &&) = delete;
// 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