From 15740faf9fe9fe4be08965098bbf2947e096aeeb Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 14 Aug 2019 22:50:43 +0800 Subject: +Unity Runtime code --- Runtime/BaseClasses/ManagerContext.h | 61 ++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Runtime/BaseClasses/ManagerContext.h (limited to 'Runtime/BaseClasses/ManagerContext.h') diff --git a/Runtime/BaseClasses/ManagerContext.h b/Runtime/BaseClasses/ManagerContext.h new file mode 100644 index 0000000..af4de7b --- /dev/null +++ b/Runtime/BaseClasses/ManagerContext.h @@ -0,0 +1,61 @@ +#ifndef MANAGERCONTEXT_H +#define MANAGERCONTEXT_H + +class Object; +struct ManagerContext; + +EXPORT_COREMODULE Object& GetManagerFromContext (int index); +EXPORT_COREMODULE Object* GetManagerPtrFromContext (int index); +void SetManagerPtrInContext(int index, Object* ptr); +void ManagerContextInitializeClasses(); + +#define GET_MANAGER(x) x& Get##x () { return reinterpret_cast (GetManagerFromContext (ManagerContext::k##x)); } +#define GET_MANAGER_PTR(x) x* Get##x##Ptr () { return reinterpret_cast (GetManagerPtrFromContext (ManagerContext::k##x)); } + +const ManagerContext& GetManagerContext (); + +struct ManagerContext +{ + enum Managers + { + // Global managers + kPlayerSettings = 0, + kInputManager, + kTagManager, + kAudioManager, + kScriptMapper, + kMonoManager, + kGraphicsSettings, + kTimeManager, + kDelayedCallManager, + kPhysicsManager, + kBuildSettings, + kQualitySettings, + kResourceManager, + kNetworkManager, + kMasterServerInterface, + kNavMeshLayers, + #if ENABLE_2D_PHYSICS + kPhysics2DSettings, + #endif + kGlobalManagerCount, + + // Level managers + kSceneSettings = kGlobalManagerCount, + kRenderSettings, + kHaloManager, + kLightmapSettings, + kNavMeshSettings, + kManagerCount + }; + + ManagerContext (); + Object* m_Managers[kManagerCount]; + int m_ManagerClassIDs[kManagerCount]; + #if DEBUGMODE + const char* m_ManagerNames[kManagerCount]; + #endif + void InitializeClasses (); +}; + +#endif -- cgit v1.1-26-g67d0