extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API UnityPluginLoad(IUnityInterfaces* unityInterfaces) { s_UnityInterfaces = unityInterfaces; s_Graphics = s_UnityInterfaces->Get<IUnityGraphics>(); s_Graphics->RegisterDeviceEventCallback(OnGraphicsDeviceEvent); // Run OnGraphicsDeviceEvent(initialize) manually on plugin load OnGraphicsDeviceEvent(kUnityGfxDeviceEventInitialize); }
// Unity plugin load event extern "C" DLLEXPORT void UNITY_API UnityPluginLoad(IUnityInterfaces* unityInterfaces) { g_UnityInterfaces = unityInterfaces; g_Graphics = unityInterfaces->Get<IUnityGraphics>(); g_Graphics->RegisterDeviceEventCallback(OnGraphicsDeviceEvent); // Run OnGraphicsDeviceEvent(initialize) manually on plugin load // to not miss the event in case the graphics device is already initialized OnGraphicsDeviceEvent(kUnityGfxDeviceEventInitialize); }
// Called on load of the plugin void UnityPlugin::Load(IUnityInterfaces* unityInterfaces) { DebugLog("UnityPlugin::Load(unityInterfaces=%08x)", unityInterfaces); mUnityInterfaces = unityInterfaces; mUnityGraphics = mUnityInterfaces->Get<IUnityGraphics>(); mUnityGraphics->RegisterDeviceEventCallback(OnGraphicsDeviceEvent); // Run OnGraphicsDeviceEvent(initialize) manually on plugin load OnGraphicsDeviceEvent(kUnityGfxDeviceEventInitialize); }
void UNITY_INTERFACE_API UnityPluginUnload() { s_Graphics->UnregisterDeviceEventCallback(OnGraphicsDeviceEvent); OnGraphicsDeviceEvent(kUnityGfxDeviceEventShutdown); #if defined(ENABLE_LOGGING) && defined(ENABLE_LOGFILE) if (s_debugLogFile) { // Restore the buffers std::cout.rdbuf(s_oldCout); std::cerr.rdbuf(s_oldCerr); s_debugLogFile.close(); } #endif // defined(ENABLE_LOGGING) && defined(ENABLE_LOGFILE) }
// -------------------------------------------------------------------------- // UnitySetInterfaces void UNITY_INTERFACE_API UnityPluginLoad(IUnityInterfaces *unityInterfaces) { #if defined(ENABLE_LOGGING) && defined(ENABLE_LOGFILE) s_debugLogFile.open("RenderPluginLog.txt"); // Capture std::cout and std::cerr from RenderManager. if (s_debugLogFile) { s_oldCout = std::cout.rdbuf(); std::cout.rdbuf(s_debugLogFile.rdbuf()); s_oldCerr = std::cerr.rdbuf(); std::cerr.rdbuf(s_debugLogFile.rdbuf()); } #endif // defined(ENABLE_LOGGING) && defined(ENABLE_LOGFILE) s_UnityInterfaces = unityInterfaces; s_Graphics = s_UnityInterfaces->Get<IUnityGraphics>(); s_Graphics->RegisterDeviceEventCallback(OnGraphicsDeviceEvent); // Run OnGraphicsDeviceEvent(initialize) manually on plugin load OnGraphicsDeviceEvent(kUnityGfxDeviceEventInitialize); }