private static void InitializeHMD() { hmdInitLastAttempt = DateTime.Now; try { InitializeOpenVR(); hmdState = HmdState.Initialized; Utils.Log("Initialized OpenVR."); } catch (Exception e) { hmdState = HmdState.InitFailed; Utils.LogError("InitHMD failed: " + e); HmdIsEnabled = false; } }
private static void ProcessHmdState() { switch (hmdState) { case HmdState.Uninitialized: if (HmdIsEnabled) { hmdState = HmdState.Initializing; } break; case HmdState.Initializing: InitializeHMD(); break; case HmdState.InitFailed: if (DateTime.Now.Subtract(hmdInitLastAttempt).TotalSeconds > 10) { hmdState = HmdState.Uninitialized; } break; } }
/// <summary> /// Shuts down the OpenVR API. /// </summary> private void CloseHMD() { HmdIsEnabled = false; OpenVR.Shutdown(); hmdState = HmdState.Uninitialized; }
private static extern void ReadHMDState(ref HmdState state);