// SteamVR System|SDK_SteamVR|002 namespace VRTK { #if VRTK_DEFINE_SDK_STEAMVR using Valve.VR; #endif /// <summary> /// The SteamVR System SDK script provides a bridge to the SteamVR SDK. /// </summary> [SDK_Description("SteamVR (Standalone:OpenVR)", SDK_SteamVRDefines.ScriptingDefineSymbol, "OpenVR", "Standalone")] public class SDK_SteamVRSystem #if VRTK_DEFINE_SDK_STEAMVR : SDK_BaseSystem #else : SDK_FallbackSystem #endif { #if VRTK_DEFINE_SDK_STEAMVR /// <summary> /// The IsDisplayOnDesktop method returns true if the display is extending the desktop. /// </summary> /// <returns>Returns true if the display is extending the desktop</returns> public override bool IsDisplayOnDesktop() { return (OpenVR.System == null || OpenVR.System.IsDisplayOnDesktop()); } /// <summary> /// The ShouldAppRenderWithLowResources method is used to determine if the Unity app should use low resource mode. Typically true when the dashboard is showing. /// </summary> /// <returns>Returns true if the Unity app should render with low resources.</returns> public override bool ShouldAppRenderWithLowResources() { return (OpenVR.Compositor != null && OpenVR.Compositor.ShouldAppRenderWithLowResources()); } /// <summary> /// The ForceInterleavedReprojectionOn method determines whether Interleaved Reprojection should be forced on or off. /// </summary> /// <param name="force">If true then Interleaved Reprojection will be forced on, if false it will not be forced on.</param> public override void ForceInterleavedReprojectionOn(bool force) { if (OpenVR.Compositor != null) { OpenVR.Compositor.ForceInterleavedReprojectionOn(force); } } #endif } }