![]() |
ezEngine
Release 25.03
|
Base class for all subsystems. More...
#include <SubSystem.h>
Public Member Functions | |
virtual ezStringView | GetSubSystemName () const =0 |
Returns the name of the subsystem. Must be overridden. | |
virtual ezStringView | GetGroupName () const =0 |
Returns the name of the group to which this subsystem belongs. Must be overridden. | |
virtual ezStringView | GetDependency (ezInt32 iDep) |
Returns a series of strings with the names of the subsystem, which this subsystem depends on. nullptr indicates the last entry. Must be overridden. | |
ezStringView | GetPluginName () const |
Returns the plugin name to which this subsystem belongs. | |
bool | IsStartupPhaseDone (ezStartupStage::Enum stage) const |
Returns whether the given startup stage has been done on this subsystem. | |
Private Member Functions | |
virtual void | OnBaseSystemsStartup () |
This will be called to initialize the subsystems base components. Can be overridden to handle this event. | |
virtual void | OnCoreSystemsStartup () |
This will be called to initialize the subsystems core components. Can be overridden to handle this event. | |
virtual void | OnCoreSystemsShutdown () |
This will be called to shut down the subsystems core components. Can be overridden to handle this event. | |
virtual void | OnHighLevelSystemsStartup () |
This will be called to initialize the subsystems engine / rendering components. Can be overridden to handle this event. | |
virtual void | OnHighLevelSystemsShutdown () |
This will be called to shut down the subsystems engine / rendering components. Can be overridden to handle this event. | |
Friends | |
class | ezStartup |
Additional Inherited Members | |
![]() | |
static const ezRTTI * | GetStaticRTTI () |
![]() | |
ezEnumerable * | m_pNextInstance |
Base class for all subsystems.
ezStartup will initialize and shut down all instances of this class, according to their dependencies etc. If you have a subsystem that is a non-static class, just derive from this base class and override the virtual functions as required. If you have a subsystem that is implemented in a purely static way (there is no class instance), just use the macros EZ_BEGIN_SUBSYSTEM_DECLARATION, EZ_END_SUBSYSTEM_DECLARATION etc. Those macros will create a wrapper object (derived from ezSubSystem) to handle initialization.