MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / InitializePlugins

Method InitializePlugins

Source/Engine/Scripting/Plugins/PluginManager.cpp:318–344  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

316}
317
318void PluginManagerImpl::InitializePlugins()
319{
320 if (EditorPlugins.Count() + GamePlugins.Count() == 0)
321 return;
322 PROFILE_CPU_NAMED("InitializePlugins");
323 PROFILE_MEM(Scripting);
324
325 auto engineAssembly = ((NativeBinaryModule*)GetBinaryModuleFlaxEngine())->Assembly;
326 auto pluginLoadOrderAttribute = engineAssembly->GetClass("FlaxEngine.PluginLoadOrderAttribute");
327 auto afterTypeField = pluginLoadOrderAttribute->GetField("InitializeAfter");
328 ASSERT(afterTypeField);
329
330#if USE_EDITOR
331 auto editorPlugins = SortPlugins(EditorPlugins, pluginLoadOrderAttribute, afterTypeField);
332 for (auto plugin : editorPlugins)
333 {
334 PluginManagerService::InvokeInitialize(plugin);
335 }
336#else
337 // Game plugins are managed via InitializeGamePlugins/DeinitializeGamePlugins by Editor for play mode
338 auto gamePlugins = SortPlugins(GamePlugins, pluginLoadOrderAttribute, afterTypeField);
339 for (auto plugin : gamePlugins)
340 {
341 PluginManagerService::InvokeInitialize(plugin);
342 }
343#endif
344}
345
346void PluginManagerImpl::DeinitializePlugins()
347{

Callers

nothing calls this directly

Calls 4

SortPluginsFunction · 0.85
CountMethod · 0.45
GetClassMethod · 0.45
GetFieldMethod · 0.45

Tested by

no test coverage detected