Frostbite2D/Fostbite2D/include/fostbite2D/module/module.h

93 lines
1.7 KiB
C
Raw Normal View History

2026-02-16 19:19:14 +08:00
#pragma once
namespace frostbite2D {
/**
* @brief
*
*/
class Module {
public:
/**
* @brief
*/
virtual ~Module() = default;
/**
* @brief
* Application::run()
*/
virtual void setupModule() {}
/**
* @brief
* Application
*/
virtual void destroyModule() {}
/**
* @brief
*
* @param ctx
*/
virtual void onUpdate() { }
/**
* @brief
*
* @param ctx
*/
virtual void beforeRender() { }
/**
* @brief
*
* @param ctx
*/
virtual void onRender() {}
/**
* @brief
*
* @param ctx
*/
virtual void afterRender() { }
/**
* @brief
*
* @param ctx
*/
virtual void handleEvent() { }
/**
* @brief
* @return
*/
virtual const char *getName() const = 0;
/**
* @brief
*
* @return
*/
virtual int getPriority() const { return 0; }
/**
* @brief
* @return true
*/
bool isInitialized() const { return initialized_; }
protected:
friend class Application;
/**
* @brief
* @param initialized
*/
void setInitialized(bool initialized) { initialized_ = initialized; }
bool initialized_ = false;
};
} // namespace frostbite2D