public IEnumerator FirstPersonObserverRestartWhileActive() { base.InitializeAndStart(); MockRuntime.ActivateSecondaryView(XrViewConfigurationType.SecondaryMonoFirstPersonObserver, true); yield return(new WaitForXrFrame(1)); MockRuntime.GetEndFrameStats(out var primaryLayerCount, out var secondaryLayerCount); Assert.IsTrue(secondaryLayerCount == 1); // Transition to ready, which was causing a crash. MockRuntime.TransitionToState(XrSessionState.Visible, false); yield return(null); MockRuntime.TransitionToState(XrSessionState.Synchronized, false); yield return(null); MockRuntime.TransitionToState(XrSessionState.Stopping, false); yield return(null); MockRuntime.TransitionToState(XrSessionState.Idle, false); yield return(null); MockRuntime.TransitionToState(XrSessionState.Ready, false); yield return(null); // Check that secondary layer is still there MockRuntime.GetEndFrameStats(out primaryLayerCount, out secondaryLayerCount); Assert.IsTrue(secondaryLayerCount == 1); // Transition back to focused MockRuntime.TransitionToState(XrSessionState.Synchronized, false); yield return(null); MockRuntime.TransitionToState(XrSessionState.Visible, false); yield return(null); MockRuntime.TransitionToState(XrSessionState.Focused, false); yield return(null); yield return(new WaitForXrFrame(2)); // Verify secondary layer is still up and running MockRuntime.GetEndFrameStats(out primaryLayerCount, out secondaryLayerCount); Assert.IsTrue(secondaryLayerCount == 1); // Make sure we can turn it off MockRuntime.ActivateSecondaryView(XrViewConfigurationType.SecondaryMonoFirstPersonObserver, false); yield return(new WaitForXrFrame(2)); MockRuntime.GetEndFrameStats(out primaryLayerCount, out secondaryLayerCount); Assert.IsTrue(secondaryLayerCount == 0); }
public IEnumerator FirstPersonObserver() { base.InitializeAndStart(); MockRuntime.ActivateSecondaryView(XrViewConfigurationType.SecondaryMonoFirstPersonObserver, true); yield return(new WaitForXrFrame(2)); MockRuntime.GetEndFrameStats(out var primaryLayerCount, out var secondaryLayerCount); Assert.IsTrue(secondaryLayerCount == 1); MockRuntime.ActivateSecondaryView(XrViewConfigurationType.SecondaryMonoFirstPersonObserver, false); yield return(new WaitForXrFrame(2)); MockRuntime.GetEndFrameStats(out primaryLayerCount, out secondaryLayerCount); Assert.IsTrue(secondaryLayerCount == 0); }