94 void InitializeEngineAPI();
96 std::vector<RuntimePluginState> mPlugins;
98 bool mInitialized =
false;
120#define POLYPHASE_REGISTER_PLUGIN(pluginId, getDescFunc) \
122 struct PluginRegistrar_##pluginId { \
123 PluginRegistrar_##pluginId() { \
124 QueuePluginRegistration(getDescFunc, #pluginId); \
127 static PluginRegistrar_##pluginId sRegistrar_##pluginId; \
Engine API exposed to native addon plugins.
Stable C ABI header for native addon plugins.
void QueuePluginRegistration(int(*getDescFunc)(PolyphasePluginDesc *), const char *pluginId)
Queue a plugin descriptor for registration.
Definition RuntimePluginManager.cpp:31
Singleton manager for runtime plugins.
Definition RuntimePluginManager.h:35
bool IsRegistered(const std::string &pluginId) const
Check if a plugin is registered.
Definition RuntimePluginManager.cpp:721
PolyphaseEngineAPI * GetEngineAPI()
Get the engine API struct for plugins.
Definition RuntimePluginManager.h:77
static void Destroy()
Definition RuntimePluginManager.cpp:486
static RuntimePluginManager * Get()
Definition RuntimePluginManager.cpp:495
void TickAllPlugins(float deltaTime)
Tick all loaded plugins.
Definition RuntimePluginManager.cpp:710
void RegisterPlugin(const PolyphasePluginDesc &desc, const std::string &pluginId)
Register a plugin descriptor.
Definition RuntimePluginManager.cpp:688
static void Create()
Definition RuntimePluginManager.cpp:460
size_t GetPluginCount() const
Get number of registered plugins.
Definition RuntimePluginManager.h:87
void Initialize()
Initialize the engine API and call OnLoad for all registered plugins.
Definition RuntimePluginManager.cpp:627
void Shutdown()
Shutdown all plugins (calls OnUnload).
Definition RuntimePluginManager.cpp:665
Engine API provided to plugins during OnLoad.
Definition PolyphaseEngineAPI.h:32
Plugin descriptor returned by PolyphasePlugin_GetDesc.
Definition PolyphasePluginAPI.h:46
Runtime state for a registered plugin.
Definition RuntimePluginManager.h:22
bool mLoaded
Definition RuntimePluginManager.h:25
PolyphasePluginDesc mDesc
Definition RuntimePluginManager.h:24
std::string mPluginId
Definition RuntimePluginManager.h:23