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