Plasma Engine  2.0
Loading...
Searching...
No Matches
StaticSubSystem.h
1#pragma once
2
4
35
39#define PL_BEGIN_SUBSYSTEM_DECLARATION(GroupName, SubsystemName) \
40 class GroupName##SubsystemName##SubSystem; \
41 class GroupName##SubsystemName##SubSystem : public plSubSystem \
42 { \
43 public: \
44 virtual plStringView GetGroupName() const override \
45 { \
46 return #GroupName; \
47 } \
48 \
49 public: \
50 virtual plStringView GetSubSystemName() const override \
51 { \
52 return #SubsystemName; \
53 }
54
56#define PL_END_SUBSYSTEM_DECLARATION \
57 } \
58 static PL_PP_CONCAT(s_SubSystem, PL_SOURCE_LINE)
59
63#define ON_BASESYSTEMS_STARTUP \
64private: \
65 virtual void OnBaseSystemsStartup() override
66
70#define ON_CORESYSTEMS_STARTUP \
71private: \
72 virtual void OnCoreSystemsStartup() override
73
77#define ON_CORESYSTEMS_SHUTDOWN \
78private: \
79 virtual void OnCoreSystemsShutdown() override
80
84#define ON_HIGHLEVELSYSTEMS_STARTUP \
85private: \
86 virtual void OnHighLevelSystemsStartup() override
87
91#define ON_HIGHLEVELSYSTEMS_SHUTDOWN \
92private: \
93 virtual void OnHighLevelSystemsShutdown() override
94
98#define BEGIN_SUBSYSTEM_DEPENDENCIES \
99public: \
100 virtual plStringView GetDependency(plInt32 iDep) override \
101 { \
102 plStringView szDeps[] = {
103
105#define END_SUBSYSTEM_DEPENDENCIES \
106 , nullptr \
107 } \
108 ; \
109 return szDeps[iDep]; \
110 }
111
113#define PL_MAKE_SUBSYSTEM_STARTUP_FRIEND(GroupName, SubsystemName) friend class GroupName##SubsystemName##SubSystem;