2
0

BsScriptEnginePlugin.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include "BsScriptEnginePrerequisites.h"
  2. #include "BsMonoManager.h"
  3. #include "BsMonoAssembly.h"
  4. #include "BsRuntimeScriptObjects.h"
  5. #include "BsScriptResourceManager.h"
  6. #include "BsScriptGameObjectManager.h"
  7. using namespace CamelotFramework;
  8. namespace BansheeEngine
  9. {
  10. extern "C" BS_SCR_BE_EXPORT const String& getPluginName()
  11. {
  12. static String pluginName = "SBansheeEngine";
  13. return pluginName;
  14. }
  15. extern "C" BS_SCR_BE_EXPORT void* loadPlugin()
  16. {
  17. const CM::String ENGINE_ASSEMBLY_PATH = "..\\..\\Assemblies\\MBansheeEngine.dll";
  18. const CM::String ENGINE_ASSEMBLY_NAME = BansheeEngineAssemblyName;
  19. const CM::String ASSEMBLY_ENTRY_POINT = "Program::Main";
  20. MonoManager::instance().loadAssembly(ENGINE_ASSEMBLY_PATH, ENGINE_ASSEMBLY_NAME, ASSEMBLY_ENTRY_POINT);
  21. RuntimeScriptObjects::startUp(cm_new<RuntimeScriptObjects>());
  22. ScriptResourceManager::startUp(cm_new<ScriptResourceManager>());
  23. ScriptGameObjectManager::startUp(cm_new<ScriptGameObjectManager>());
  24. RuntimeScriptObjects::instance().refreshScriptObjects(BansheeEngineAssemblyName);
  25. return nullptr;
  26. }
  27. extern "C" BS_SCR_BE_EXPORT void unloadPlugin()
  28. {
  29. ScriptGameObjectManager::shutDown();
  30. ScriptResourceManager::shutDown();
  31. RuntimeScriptObjects::shutDown();
  32. }
  33. }