static void UNITY_INTERFACE_API OnGraphicsDeviceEvent(UnityGfxDeviceEventType eventType) { UnityGfxRenderer currentDeviceType = s_DeviceType; switch (eventType) { case kUnityGfxDeviceEventInitialize: { DebugLog("OnGraphicsDeviceEvent(Initialize).\n"); s_DeviceType = s_Graphics->GetRenderer(); currentDeviceType = s_DeviceType; break; } case kUnityGfxDeviceEventShutdown: { DebugLog("OnGraphicsDeviceEvent(Shutdown).\n"); s_DeviceType = kUnityGfxRendererNull; g_TexturePointer = NULL; break; } case kUnityGfxDeviceEventBeforeReset: { DebugLog("OnGraphicsDeviceEvent(BeforeReset).\n"); break; } case kUnityGfxDeviceEventAfterReset: { DebugLog("OnGraphicsDeviceEvent(AfterReset).\n"); break; } }; #if SUPPORT_D3D11 if (currentDeviceType == kUnityGfxRendererD3D11) DoEventGraphicsDeviceD3D11(eventType); #endif }
inline void dispatchEventToRenderer(UnityRendererType renderer, UnityGfxDeviceEventType eventType) { if (!renderer) { DebugLog("[OSVR Rendering Plugin] Current device type not supported"); return; } switch (renderer.getDeviceTypeEnum()) { #if SUPPORT_D3D11 case OSVRSupportedRenderers::D3D11: DoEventGraphicsDeviceD3D11(eventType); break; #endif #if SUPPORT_OPENGL case OSVRSupportedRenderers::OpenGL: DoEventGraphicsDeviceOpenGL(eventType); break; #endif case OSVRSupportedRenderers::EmptyRenderer: default: break; } }