diff --git a/bin/linux32/libopenvr_api.so b/bin/linux32/libopenvr_api.so index 5f8f2696..5be49bd3 100755 Binary files a/bin/linux32/libopenvr_api.so and b/bin/linux32/libopenvr_api.so differ diff --git a/bin/linux32/libopenvr_api.so.dbg b/bin/linux32/libopenvr_api.so.dbg index 27803d26..15e6314b 100755 Binary files a/bin/linux32/libopenvr_api.so.dbg and b/bin/linux32/libopenvr_api.so.dbg differ diff --git a/bin/linux64/empty.dir b/bin/linux64/empty.dir new file mode 100644 index 00000000..e69de29b diff --git a/bin/linux64/libopenvr_api.so b/bin/linux64/libopenvr_api.so index 0db0884c..92ac9c2b 100755 Binary files a/bin/linux64/libopenvr_api.so and b/bin/linux64/libopenvr_api.so differ diff --git a/bin/linux64/libopenvr_api.so.dbg b/bin/linux64/libopenvr_api.so.dbg index 893dc497..fa003931 100755 Binary files a/bin/linux64/libopenvr_api.so.dbg and b/bin/linux64/libopenvr_api.so.dbg differ diff --git a/bin/osx32/libopenvr_api.dylib b/bin/osx32/libopenvr_api.dylib index 7a719c37..b2877ce5 100755 Binary files a/bin/osx32/libopenvr_api.dylib and b/bin/osx32/libopenvr_api.dylib differ diff --git a/bin/osx32/libopenvr_api.dylib.dSYM/Contents/Resources/DWARF/libopenvr_api.dylib b/bin/osx32/libopenvr_api.dylib.dSYM/Contents/Resources/DWARF/libopenvr_api.dylib index 05fe06bf..19f89dd8 100644 Binary files a/bin/osx32/libopenvr_api.dylib.dSYM/Contents/Resources/DWARF/libopenvr_api.dylib and b/bin/osx32/libopenvr_api.dylib.dSYM/Contents/Resources/DWARF/libopenvr_api.dylib differ diff --git a/bin/win32/openvr_api.dll b/bin/win32/openvr_api.dll index 376529cd..0a348d0f 100644 Binary files a/bin/win32/openvr_api.dll and b/bin/win32/openvr_api.dll differ diff --git a/bin/win32/openvr_api.pdb b/bin/win32/openvr_api.pdb index e41c9180..babdd1d5 100644 Binary files a/bin/win32/openvr_api.pdb and b/bin/win32/openvr_api.pdb differ diff --git a/bin/win64/openvr_api.dll b/bin/win64/openvr_api.dll index b31cce41..6988b785 100644 Binary files a/bin/win64/openvr_api.dll and b/bin/win64/openvr_api.dll differ diff --git a/bin/win64/openvr_api.pdb b/bin/win64/openvr_api.pdb index 80f1167c..59b5b382 100644 Binary files a/bin/win64/openvr_api.pdb and b/bin/win64/openvr_api.pdb differ diff --git a/headers/openvr.h b/headers/openvr.h index dd2addd2..3b351255 100644 --- a/headers/openvr.h +++ b/headers/openvr.h @@ -161,6 +161,8 @@ enum ETrackingResult TrackingResult_Running_OK = 200, TrackingResult_Running_OutOfRange = 201, + + TrackingResult_Fallback_RotationOnly = 300, }; typedef uint32_t DriverId_t; @@ -257,6 +259,7 @@ static const PropertyTypeTag_t k_unHapticVibrationPropertyTag = 35; static const PropertyTypeTag_t k_unSkeletonPropertyTag = 36; static const PropertyTypeTag_t k_unSpatialAnchorPosePropertyTag = 40; +static const PropertyTypeTag_t k_unJsonPropertyTag = 41; static const PropertyTypeTag_t k_unOpenVRInternalReserved_Start = 1000; static const PropertyTypeTag_t k_unOpenVRInternalReserved_End = 10000; @@ -310,6 +313,7 @@ enum ETrackedDeviceProperty Prop_NeverTracked_Bool = 1038, // Used for devices that will never have a valid pose by design Prop_NumCameras_Int32 = 1039, Prop_CameraFrameLayout_Int32 = 1040, // EVRTrackedCameraFrameLayout value + Prop_CameraStreamFormat_Int32 = 1041, // ECameraVideoStreamFormat value // Properties that are unique to TrackedDeviceClass_HMD Prop_ReportsTimeSinceVSync_Bool = 2000, @@ -440,6 +444,7 @@ enum ETrackedDeviceProperty // Properties that are set internally based on other information provided by drivers Prop_ControllerType_String = 7000, Prop_LegacyInputProfile_String = 7001, + Prop_ControllerHandSelectionPriority_Int32 = 7002, // Allows hand assignments to prefer some controllers over others. High numbers are selected over low numbers // Vendors are free to expose private debug data in this reserved region Prop_VendorSpecific_Reserved_Start = 10000, @@ -467,6 +472,7 @@ enum ETrackedPropertyError TrackedProp_PermissionDenied = 10, TrackedProp_InvalidOperation = 11, TrackedProp_CannotWriteToWildcards = 12, + TrackedProp_IPCReadFailure = 13, }; @@ -747,6 +753,7 @@ enum EVREventType VREvent_Input_BindingLoadSuccessful = 1702, // data is inputBinding VREvent_Input_ActionManifestReloaded = 1703, // no data VREvent_Input_ActionManifestLoadFailed = 1704, // data is actionManifest + VREvent_Input_TrackerActivated = 1706, VREvent_SpatialAnchors_PoseUpdated = 1800, // data is spatialAnchor. broadcast VREvent_SpatialAnchors_DescriptorUpdated = 1801, // data is spatialAnchor. broadcast @@ -1472,6 +1479,8 @@ struct CameraVideoStreamFrameHeader_t uint32_t nFrameSequence; TrackedDevicePose_t standingTrackedDevicePose; + + uint64_t ulFrameExposureTime; // mid-point of the exposure of the image in host system ticks }; // Screenshot types @@ -2143,7 +2152,7 @@ namespace vr class CVRSettingHelper { - IVRSettings *m_pSettings = nullptr; + IVRSettings *m_pSettings; public: CVRSettingHelper( IVRSettings *pSettings ) { @@ -2252,13 +2261,15 @@ namespace vr static const char * const k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement"; static const char * const k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses"; static const char * const k_pch_SteamVR_SupersampleScale_Float = "supersampleScale"; + static const char * const k_pch_SteamVR_MaxRecommendedResolution_Int32 = "maxRecommendedResolution"; static const char * const k_pch_SteamVR_AllowAsyncReprojection_Bool = "allowAsyncReprojection"; static const char * const k_pch_SteamVR_AllowReprojection_Bool = "allowInterleavedReprojection"; static const char * const k_pch_SteamVR_ForceReprojection_Bool = "forceReprojection"; static const char * const k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking"; - static const char * const k_pch_SteamVR_DefaultMirrorView_Int32 = "defaultMirrorView"; + static const char * const k_pch_SteamVR_DefaultMirrorView_Int32 = "mirrorView"; static const char * const k_pch_SteamVR_ShowMirrorView_Bool = "showMirrorView"; static const char * const k_pch_SteamVR_MirrorViewGeometry_String = "mirrorViewGeometry"; + static const char * const k_pch_SteamVR_MirrorViewGeometryMaximized_String = "mirrorViewGeometryMaximized"; static const char * const k_pch_SteamVR_StartMonitorFromAppLaunch = "startMonitorFromAppLaunch"; static const char * const k_pch_SteamVR_StartCompositorFromAppLaunch_Bool = "startCompositorFromAppLaunch"; static const char * const k_pch_SteamVR_StartDashboardFromAppLaunch_Bool = "startDashboardFromAppLaunch"; @@ -2290,6 +2301,7 @@ namespace vr static const char * const k_pch_Lighthouse_DBHistory_Bool = "dbhistory"; static const char * const k_pch_Lighthouse_EnableBluetooth_Bool = "enableBluetooth"; static const char * const k_pch_Lighthouse_PowerManagedBaseStations_String = "PowerManagedBaseStations"; + static const char * const k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback"; //----------------------------------------------------------------------------- // null keys @@ -2310,6 +2322,7 @@ namespace vr static const char * const k_pch_UserInterface_Section = "userinterface"; static const char * const k_pch_UserInterface_StatusAlwaysOnTop_Bool = "StatusAlwaysOnTop"; static const char * const k_pch_UserInterface_MinimizeToTray_Bool = "MinimizeToTray"; + static const char * const k_pch_UserInterface_HidePopupsWhenStatusMinimized_Bool = "HidePopupsWhenStatusMinimized"; static const char * const k_pch_UserInterface_Screenshots_Bool = "screenshots"; static const char * const k_pch_UserInterface_ScreenshotType_Int = "screenshotType"; @@ -2332,9 +2345,7 @@ namespace vr //----------------------------------------------------------------------------- // perf keys static const char * const k_pch_Perf_Section = "perfcheck"; - static const char * const k_pch_Perf_HeuristicActive_Bool = "heuristicActive"; - static const char * const k_pch_Perf_NotifyInHMD_Bool = "warnInHMD"; - static const char * const k_pch_Perf_NotifyOnlyOnce_Bool = "warnOnlyOnce"; + static const char * const k_pch_Perf_PerfGraphInHMD_Bool = "perfGraphInHMD"; static const char * const k_pch_Perf_AllowTimingStore_Bool = "allowTimingStore"; static const char * const k_pch_Perf_SaveTimingsOnExit_Bool = "saveTimingsOnExit"; static const char * const k_pch_Perf_TestData_Float = "perfTestData"; @@ -2410,6 +2421,12 @@ namespace vr static const char* const k_pch_WebInterface_WebEnable_Bool = "WebEnable"; static const char* const k_pch_WebInterface_WebPort_String = "WebPort"; + //----------------------------------------------------------------------------- + // vrwebhelper keys + static const char* const k_pch_VRWebHelper_Section = "VRWebHelper"; + static const char* const k_pch_VRWebHelper_DebuggerEnabled_Bool = "DebuggerEnabled"; + static const char* const k_pch_VRWebHelper_DebuggerPort_Int32 = "DebuggerPort"; + //----------------------------------------------------------------------------- // tracking overrides - keys are device paths, values are the device paths their // tracking/pose information overrides @@ -2629,6 +2646,19 @@ const uint32_t VRCompositor_ReprojectionAsync = 0x04; // This flag indicate // NumFramePresents > 1 also indicates the scene texture was reused, // and also the number of times that it was presented in total. +const uint32_t VRCompositor_PredictionMask = 0x30; // The runtime may predict more than one frame (up to four) ahead if + // it detects the application is taking too long to render. These two + // bits will contain the count of additional frames (normally zero). + // Use the VR_COMPOSITOR_ADDITIONAL_PREDICTED_FRAMES macro to read from + // the latest frame timing entry. + +const uint32_t VRCompositor_ThrottleMask = 0xC0; // Number of frames the compositor is throttling the application. + // Use the VR_COMPOSITOR_NUMBER_OF_THROTTLED_FRAMES macro to read from + // the latest frame timing entry. + +#define VR_COMPOSITOR_ADDITIONAL_PREDICTED_FRAMES( timing ) ( ( ( timing ).m_nReprojectionFlags & vr::VRCompositor_PredictionMask ) >> 4 ) +#define VR_COMPOSITOR_NUMBER_OF_THROTTLED_FRAMES( timing ) ( ( ( timing ).m_nReprojectionFlags & vr::VRCompositor_ThrottleMask ) >> 6 ) + /** Provides a single frame's timing information to the app */ struct Compositor_FrameTiming { @@ -2668,6 +2698,9 @@ struct Compositor_FrameTiming float m_flCompositorRenderStartMs; vr::TrackedDevicePose_t m_HmdPose; // pose used by app to render this frame + + uint32_t m_nNumVSyncsReadyForUse; + uint32_t m_nNumVSyncsToFirstView; }; /** Cumulative stats for current application. These are not cleared until a new app connects, @@ -3777,7 +3810,7 @@ class IVRTrackedCamera virtual vr::EVRTrackedCameraError ReleaseVideoStreamTextureGL( vr::TrackedCameraHandle_t hTrackedCamera, vr::glUInt_t glTextureId ) = 0; }; -static const char * const IVRTrackedCamera_Version = "IVRTrackedCamera_003"; +static const char * const IVRTrackedCamera_Version = "IVRTrackedCamera_004"; } // namespace vr diff --git a/headers/openvr_api.cs b/headers/openvr_api.cs index 23966f36..116c1a3f 100644 --- a/headers/openvr_api.cs +++ b/headers/openvr_api.cs @@ -3616,6 +3616,8 @@ public class OpenVRInterop internal static extern bool IsHmdPresent(); [DllImportAttribute("openvr_api", EntryPoint = "VR_IsRuntimeInstalled", CallingConvention = CallingConvention.Cdecl)] internal static extern bool IsRuntimeInstalled(); + [DllImportAttribute("openvr_api", EntryPoint = "VR_RuntimePath", CallingConvention = CallingConvention.Cdecl)] + internal static extern string RuntimePath(); [DllImportAttribute("openvr_api", EntryPoint = "VR_GetStringForHmdError", CallingConvention = CallingConvention.Cdecl)] internal static extern IntPtr GetStringForHmdError(EVRInitError error); [DllImportAttribute("openvr_api", EntryPoint = "VR_GetGenericInterface", CallingConvention = CallingConvention.Cdecl)] @@ -3656,6 +3658,7 @@ public enum ETrackingResult Calibrating_OutOfRange = 101, Running_OK = 200, Running_OutOfRange = 201, + Fallback_RotationOnly = 300, } public enum ETrackedDeviceClass { @@ -3725,6 +3728,7 @@ public enum ETrackedDeviceProperty Prop_NeverTracked_Bool = 1038, Prop_NumCameras_Int32 = 1039, Prop_CameraFrameLayout_Int32 = 1040, + Prop_CameraStreamFormat_Int32 = 1041, Prop_ReportsTimeSinceVSync_Bool = 2000, Prop_SecondsFromVsyncToPhotons_Float = 2001, Prop_DisplayFrequency_Float = 2002, @@ -3838,6 +3842,7 @@ public enum ETrackedDeviceProperty Prop_HasSpatialAnchorsSupport_Bool = 6007, Prop_ControllerType_String = 7000, Prop_LegacyInputProfile_String = 7001, + Prop_ControllerHandSelectionPriority_Int32 = 7002, Prop_VendorSpecific_Reserved_Start = 10000, Prop_VendorSpecific_Reserved_End = 10999, Prop_TrackedDeviceProperty_Max = 1000000, @@ -3857,6 +3862,7 @@ public enum ETrackedPropertyError TrackedProp_PermissionDenied = 10, TrackedProp_InvalidOperation = 11, TrackedProp_CannotWriteToWildcards = 12, + TrackedProp_IPCReadFailure = 13, } public enum EVRSubmitFlags { @@ -4023,6 +4029,7 @@ public enum EVREventType VREvent_Input_BindingLoadSuccessful = 1702, VREvent_Input_ActionManifestReloaded = 1703, VREvent_Input_ActionManifestLoadFailed = 1704, + VREvent_Input_TrackerActivated = 1706, VREvent_SpatialAnchors_PoseUpdated = 1800, VREvent_SpatialAnchors_DescriptorUpdated = 1801, VREvent_SpatialAnchors_RequestPoseUpdate = 1802, @@ -4625,6 +4632,7 @@ public enum EIOBufferMode [FieldOffset(0)] public VREvent_WebConsole_t webConsole; [FieldOffset(0)] public VREvent_InputBindingLoad_t inputBinding; [FieldOffset(0)] public VREvent_SpatialAnchor_t spatialAnchor; + [FieldOffset(0)] public VREvent_InputActionManifestLoad_t actionManifest; [FieldOffset(0)] public VREvent_Keyboard_t keyboard; // This has to be at the end due to a mono bug } @@ -4862,16 +4870,16 @@ public string cNewInput { get { - var stringBuilder = new System.Text.StringBuilder(8); - stringBuilder.Append(cNewInput0); - stringBuilder.Append(cNewInput1); - stringBuilder.Append(cNewInput2); - stringBuilder.Append(cNewInput3); - stringBuilder.Append(cNewInput4); - stringBuilder.Append(cNewInput5); - stringBuilder.Append(cNewInput6); - stringBuilder.Append(cNewInput7); - return stringBuilder.ToString(); + return new string(new char[] { + (char)cNewInput0, + (char)cNewInput1, + (char)cNewInput2, + (char)cNewInput3, + (char)cNewInput4, + (char)cNewInput5, + (char)cNewInput6, + (char)cNewInput7 + }).TrimEnd('\0'); } } public ulong uUserValue; @@ -5083,6 +5091,7 @@ public void Unpack(ref VRControllerState_t unpacked) public uint nBytesPerPixel; public uint nFrameSequence; public TrackedDevicePose_t standingTrackedDevicePose; + public ulong ulFrameExposureTime; } [StructLayout(LayoutKind.Sequential)] public struct DriverDirectMode_FrameTiming { @@ -5130,6 +5139,8 @@ public void Unpack(ref VRControllerState_t unpacked) public float m_flCompositorUpdateEndMs; public float m_flCompositorRenderStartMs; public TrackedDevicePose_t m_HmdPose; + public uint m_nNumVSyncsReadyForUse; + public uint m_nNumVSyncsToFirstView; } [StructLayout(LayoutKind.Sequential)] public struct Compositor_CumulativeStats { @@ -5314,136 +5325,136 @@ public string rchRenderModelComponentName { get { - var stringBuilder = new System.Text.StringBuilder(128); - stringBuilder.Append(rchRenderModelComponentName0); - stringBuilder.Append(rchRenderModelComponentName1); - stringBuilder.Append(rchRenderModelComponentName2); - stringBuilder.Append(rchRenderModelComponentName3); - stringBuilder.Append(rchRenderModelComponentName4); - stringBuilder.Append(rchRenderModelComponentName5); - stringBuilder.Append(rchRenderModelComponentName6); - stringBuilder.Append(rchRenderModelComponentName7); - stringBuilder.Append(rchRenderModelComponentName8); - stringBuilder.Append(rchRenderModelComponentName9); - stringBuilder.Append(rchRenderModelComponentName10); - stringBuilder.Append(rchRenderModelComponentName11); - stringBuilder.Append(rchRenderModelComponentName12); - stringBuilder.Append(rchRenderModelComponentName13); - stringBuilder.Append(rchRenderModelComponentName14); - stringBuilder.Append(rchRenderModelComponentName15); - stringBuilder.Append(rchRenderModelComponentName16); - stringBuilder.Append(rchRenderModelComponentName17); - stringBuilder.Append(rchRenderModelComponentName18); - stringBuilder.Append(rchRenderModelComponentName19); - stringBuilder.Append(rchRenderModelComponentName20); - stringBuilder.Append(rchRenderModelComponentName21); - stringBuilder.Append(rchRenderModelComponentName22); - stringBuilder.Append(rchRenderModelComponentName23); - stringBuilder.Append(rchRenderModelComponentName24); - stringBuilder.Append(rchRenderModelComponentName25); - stringBuilder.Append(rchRenderModelComponentName26); - stringBuilder.Append(rchRenderModelComponentName27); - stringBuilder.Append(rchRenderModelComponentName28); - stringBuilder.Append(rchRenderModelComponentName29); - stringBuilder.Append(rchRenderModelComponentName30); - stringBuilder.Append(rchRenderModelComponentName31); - stringBuilder.Append(rchRenderModelComponentName32); - stringBuilder.Append(rchRenderModelComponentName33); - stringBuilder.Append(rchRenderModelComponentName34); - stringBuilder.Append(rchRenderModelComponentName35); - stringBuilder.Append(rchRenderModelComponentName36); - stringBuilder.Append(rchRenderModelComponentName37); - stringBuilder.Append(rchRenderModelComponentName38); - stringBuilder.Append(rchRenderModelComponentName39); - stringBuilder.Append(rchRenderModelComponentName40); - stringBuilder.Append(rchRenderModelComponentName41); - stringBuilder.Append(rchRenderModelComponentName42); - stringBuilder.Append(rchRenderModelComponentName43); - stringBuilder.Append(rchRenderModelComponentName44); - stringBuilder.Append(rchRenderModelComponentName45); - stringBuilder.Append(rchRenderModelComponentName46); - stringBuilder.Append(rchRenderModelComponentName47); - stringBuilder.Append(rchRenderModelComponentName48); - stringBuilder.Append(rchRenderModelComponentName49); - stringBuilder.Append(rchRenderModelComponentName50); - stringBuilder.Append(rchRenderModelComponentName51); - stringBuilder.Append(rchRenderModelComponentName52); - stringBuilder.Append(rchRenderModelComponentName53); - stringBuilder.Append(rchRenderModelComponentName54); - stringBuilder.Append(rchRenderModelComponentName55); - stringBuilder.Append(rchRenderModelComponentName56); - stringBuilder.Append(rchRenderModelComponentName57); - stringBuilder.Append(rchRenderModelComponentName58); - stringBuilder.Append(rchRenderModelComponentName59); - stringBuilder.Append(rchRenderModelComponentName60); - stringBuilder.Append(rchRenderModelComponentName61); - stringBuilder.Append(rchRenderModelComponentName62); - stringBuilder.Append(rchRenderModelComponentName63); - stringBuilder.Append(rchRenderModelComponentName64); - stringBuilder.Append(rchRenderModelComponentName65); - stringBuilder.Append(rchRenderModelComponentName66); - stringBuilder.Append(rchRenderModelComponentName67); - stringBuilder.Append(rchRenderModelComponentName68); - stringBuilder.Append(rchRenderModelComponentName69); - stringBuilder.Append(rchRenderModelComponentName70); - stringBuilder.Append(rchRenderModelComponentName71); - stringBuilder.Append(rchRenderModelComponentName72); - stringBuilder.Append(rchRenderModelComponentName73); - stringBuilder.Append(rchRenderModelComponentName74); - stringBuilder.Append(rchRenderModelComponentName75); - stringBuilder.Append(rchRenderModelComponentName76); - stringBuilder.Append(rchRenderModelComponentName77); - stringBuilder.Append(rchRenderModelComponentName78); - stringBuilder.Append(rchRenderModelComponentName79); - stringBuilder.Append(rchRenderModelComponentName80); - stringBuilder.Append(rchRenderModelComponentName81); - stringBuilder.Append(rchRenderModelComponentName82); - stringBuilder.Append(rchRenderModelComponentName83); - stringBuilder.Append(rchRenderModelComponentName84); - stringBuilder.Append(rchRenderModelComponentName85); - stringBuilder.Append(rchRenderModelComponentName86); - stringBuilder.Append(rchRenderModelComponentName87); - stringBuilder.Append(rchRenderModelComponentName88); - stringBuilder.Append(rchRenderModelComponentName89); - stringBuilder.Append(rchRenderModelComponentName90); - stringBuilder.Append(rchRenderModelComponentName91); - stringBuilder.Append(rchRenderModelComponentName92); - stringBuilder.Append(rchRenderModelComponentName93); - stringBuilder.Append(rchRenderModelComponentName94); - stringBuilder.Append(rchRenderModelComponentName95); - stringBuilder.Append(rchRenderModelComponentName96); - stringBuilder.Append(rchRenderModelComponentName97); - stringBuilder.Append(rchRenderModelComponentName98); - stringBuilder.Append(rchRenderModelComponentName99); - stringBuilder.Append(rchRenderModelComponentName100); - stringBuilder.Append(rchRenderModelComponentName101); - stringBuilder.Append(rchRenderModelComponentName102); - stringBuilder.Append(rchRenderModelComponentName103); - stringBuilder.Append(rchRenderModelComponentName104); - stringBuilder.Append(rchRenderModelComponentName105); - stringBuilder.Append(rchRenderModelComponentName106); - stringBuilder.Append(rchRenderModelComponentName107); - stringBuilder.Append(rchRenderModelComponentName108); - stringBuilder.Append(rchRenderModelComponentName109); - stringBuilder.Append(rchRenderModelComponentName110); - stringBuilder.Append(rchRenderModelComponentName111); - stringBuilder.Append(rchRenderModelComponentName112); - stringBuilder.Append(rchRenderModelComponentName113); - stringBuilder.Append(rchRenderModelComponentName114); - stringBuilder.Append(rchRenderModelComponentName115); - stringBuilder.Append(rchRenderModelComponentName116); - stringBuilder.Append(rchRenderModelComponentName117); - stringBuilder.Append(rchRenderModelComponentName118); - stringBuilder.Append(rchRenderModelComponentName119); - stringBuilder.Append(rchRenderModelComponentName120); - stringBuilder.Append(rchRenderModelComponentName121); - stringBuilder.Append(rchRenderModelComponentName122); - stringBuilder.Append(rchRenderModelComponentName123); - stringBuilder.Append(rchRenderModelComponentName124); - stringBuilder.Append(rchRenderModelComponentName125); - stringBuilder.Append(rchRenderModelComponentName126); - stringBuilder.Append(rchRenderModelComponentName127); - return stringBuilder.ToString(); + return new string(new char[] { + (char)rchRenderModelComponentName0, + (char)rchRenderModelComponentName1, + (char)rchRenderModelComponentName2, + (char)rchRenderModelComponentName3, + (char)rchRenderModelComponentName4, + (char)rchRenderModelComponentName5, + (char)rchRenderModelComponentName6, + (char)rchRenderModelComponentName7, + (char)rchRenderModelComponentName8, + (char)rchRenderModelComponentName9, + (char)rchRenderModelComponentName10, + (char)rchRenderModelComponentName11, + (char)rchRenderModelComponentName12, + (char)rchRenderModelComponentName13, + (char)rchRenderModelComponentName14, + (char)rchRenderModelComponentName15, + (char)rchRenderModelComponentName16, + (char)rchRenderModelComponentName17, + (char)rchRenderModelComponentName18, + (char)rchRenderModelComponentName19, + (char)rchRenderModelComponentName20, + (char)rchRenderModelComponentName21, + (char)rchRenderModelComponentName22, + (char)rchRenderModelComponentName23, + (char)rchRenderModelComponentName24, + (char)rchRenderModelComponentName25, + (char)rchRenderModelComponentName26, + (char)rchRenderModelComponentName27, + (char)rchRenderModelComponentName28, + (char)rchRenderModelComponentName29, + (char)rchRenderModelComponentName30, + (char)rchRenderModelComponentName31, + (char)rchRenderModelComponentName32, + (char)rchRenderModelComponentName33, + (char)rchRenderModelComponentName34, + (char)rchRenderModelComponentName35, + (char)rchRenderModelComponentName36, + (char)rchRenderModelComponentName37, + (char)rchRenderModelComponentName38, + (char)rchRenderModelComponentName39, + (char)rchRenderModelComponentName40, + (char)rchRenderModelComponentName41, + (char)rchRenderModelComponentName42, + (char)rchRenderModelComponentName43, + (char)rchRenderModelComponentName44, + (char)rchRenderModelComponentName45, + (char)rchRenderModelComponentName46, + (char)rchRenderModelComponentName47, + (char)rchRenderModelComponentName48, + (char)rchRenderModelComponentName49, + (char)rchRenderModelComponentName50, + (char)rchRenderModelComponentName51, + (char)rchRenderModelComponentName52, + (char)rchRenderModelComponentName53, + (char)rchRenderModelComponentName54, + (char)rchRenderModelComponentName55, + (char)rchRenderModelComponentName56, + (char)rchRenderModelComponentName57, + (char)rchRenderModelComponentName58, + (char)rchRenderModelComponentName59, + (char)rchRenderModelComponentName60, + (char)rchRenderModelComponentName61, + (char)rchRenderModelComponentName62, + (char)rchRenderModelComponentName63, + (char)rchRenderModelComponentName64, + (char)rchRenderModelComponentName65, + (char)rchRenderModelComponentName66, + (char)rchRenderModelComponentName67, + (char)rchRenderModelComponentName68, + (char)rchRenderModelComponentName69, + (char)rchRenderModelComponentName70, + (char)rchRenderModelComponentName71, + (char)rchRenderModelComponentName72, + (char)rchRenderModelComponentName73, + (char)rchRenderModelComponentName74, + (char)rchRenderModelComponentName75, + (char)rchRenderModelComponentName76, + (char)rchRenderModelComponentName77, + (char)rchRenderModelComponentName78, + (char)rchRenderModelComponentName79, + (char)rchRenderModelComponentName80, + (char)rchRenderModelComponentName81, + (char)rchRenderModelComponentName82, + (char)rchRenderModelComponentName83, + (char)rchRenderModelComponentName84, + (char)rchRenderModelComponentName85, + (char)rchRenderModelComponentName86, + (char)rchRenderModelComponentName87, + (char)rchRenderModelComponentName88, + (char)rchRenderModelComponentName89, + (char)rchRenderModelComponentName90, + (char)rchRenderModelComponentName91, + (char)rchRenderModelComponentName92, + (char)rchRenderModelComponentName93, + (char)rchRenderModelComponentName94, + (char)rchRenderModelComponentName95, + (char)rchRenderModelComponentName96, + (char)rchRenderModelComponentName97, + (char)rchRenderModelComponentName98, + (char)rchRenderModelComponentName99, + (char)rchRenderModelComponentName100, + (char)rchRenderModelComponentName101, + (char)rchRenderModelComponentName102, + (char)rchRenderModelComponentName103, + (char)rchRenderModelComponentName104, + (char)rchRenderModelComponentName105, + (char)rchRenderModelComponentName106, + (char)rchRenderModelComponentName107, + (char)rchRenderModelComponentName108, + (char)rchRenderModelComponentName109, + (char)rchRenderModelComponentName110, + (char)rchRenderModelComponentName111, + (char)rchRenderModelComponentName112, + (char)rchRenderModelComponentName113, + (char)rchRenderModelComponentName114, + (char)rchRenderModelComponentName115, + (char)rchRenderModelComponentName116, + (char)rchRenderModelComponentName117, + (char)rchRenderModelComponentName118, + (char)rchRenderModelComponentName119, + (char)rchRenderModelComponentName120, + (char)rchRenderModelComponentName121, + (char)rchRenderModelComponentName122, + (char)rchRenderModelComponentName123, + (char)rchRenderModelComponentName124, + (char)rchRenderModelComponentName125, + (char)rchRenderModelComponentName126, + (char)rchRenderModelComponentName127 + }).TrimEnd('\0'); } } } @@ -5507,6 +5518,11 @@ public static bool IsRuntimeInstalled() return OpenVRInterop.IsRuntimeInstalled(); } + public static string RuntimePath() + { + return OpenVRInterop.RuntimePath(); + } + public static string GetStringForHmdError(EVRInitError error) { return Marshal.PtrToStringAnsi(OpenVRInterop.GetStringForHmdError(error)); @@ -5553,6 +5569,7 @@ public static uint GetInitToken() public const uint k_unHapticVibrationPropertyTag = 35; public const uint k_unSkeletonPropertyTag = 36; public const uint k_unSpatialAnchorPosePropertyTag = 40; + public const uint k_unJsonPropertyTag = 41; public const uint k_unOpenVRInternalReserved_Start = 1000; public const uint k_unOpenVRInternalReserved_End = 10000; public const uint k_unMaxPropertyStringSize = 32768; @@ -5564,7 +5581,7 @@ public static uint GetInitToken() public const uint k_unScreenshotHandleInvalid = 0; public const string IVRSystem_Version = "IVRSystem_019"; public const string IVRExtendedDisplay_Version = "IVRExtendedDisplay_001"; - public const string IVRTrackedCamera_Version = "IVRTrackedCamera_003"; + public const string IVRTrackedCamera_Version = "IVRTrackedCamera_004"; public const uint k_unMaxApplicationKeyLength = 128; public const string k_pch_MimeType_HomeApp = "vr/home"; public const string k_pch_MimeType_GameTheater = "vr/game_theater"; @@ -5614,13 +5631,15 @@ public static uint GetInitToken() public const string k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement"; public const string k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses"; public const string k_pch_SteamVR_SupersampleScale_Float = "supersampleScale"; + public const string k_pch_SteamVR_MaxRecommendedResolution_Int32 = "maxRecommendedResolution"; public const string k_pch_SteamVR_AllowAsyncReprojection_Bool = "allowAsyncReprojection"; public const string k_pch_SteamVR_AllowReprojection_Bool = "allowInterleavedReprojection"; public const string k_pch_SteamVR_ForceReprojection_Bool = "forceReprojection"; public const string k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking"; - public const string k_pch_SteamVR_DefaultMirrorView_Int32 = "defaultMirrorView"; + public const string k_pch_SteamVR_DefaultMirrorView_Int32 = "mirrorView"; public const string k_pch_SteamVR_ShowMirrorView_Bool = "showMirrorView"; public const string k_pch_SteamVR_MirrorViewGeometry_String = "mirrorViewGeometry"; + public const string k_pch_SteamVR_MirrorViewGeometryMaximized_String = "mirrorViewGeometryMaximized"; public const string k_pch_SteamVR_StartMonitorFromAppLaunch = "startMonitorFromAppLaunch"; public const string k_pch_SteamVR_StartCompositorFromAppLaunch_Bool = "startCompositorFromAppLaunch"; public const string k_pch_SteamVR_StartDashboardFromAppLaunch_Bool = "startDashboardFromAppLaunch"; @@ -5649,6 +5668,7 @@ public static uint GetInitToken() public const string k_pch_Lighthouse_DBHistory_Bool = "dbhistory"; public const string k_pch_Lighthouse_EnableBluetooth_Bool = "enableBluetooth"; public const string k_pch_Lighthouse_PowerManagedBaseStations_String = "PowerManagedBaseStations"; + public const string k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback"; public const string k_pch_Null_Section = "driver_null"; public const string k_pch_Null_SerialNumber_String = "serialNumber"; public const string k_pch_Null_ModelNumber_String = "modelNumber"; @@ -5663,6 +5683,7 @@ public static uint GetInitToken() public const string k_pch_UserInterface_Section = "userinterface"; public const string k_pch_UserInterface_StatusAlwaysOnTop_Bool = "StatusAlwaysOnTop"; public const string k_pch_UserInterface_MinimizeToTray_Bool = "MinimizeToTray"; + public const string k_pch_UserInterface_HidePopupsWhenStatusMinimized_Bool = "HidePopupsWhenStatusMinimized"; public const string k_pch_UserInterface_Screenshots_Bool = "screenshots"; public const string k_pch_UserInterface_ScreenshotType_Int = "screenshotType"; public const string k_pch_Notifications_Section = "notifications"; @@ -5676,9 +5697,7 @@ public static uint GetInitToken() public const string k_pch_Keyboard_OffsetY = "OffsetY"; public const string k_pch_Keyboard_Smoothing = "Smoothing"; public const string k_pch_Perf_Section = "perfcheck"; - public const string k_pch_Perf_HeuristicActive_Bool = "heuristicActive"; - public const string k_pch_Perf_NotifyInHMD_Bool = "warnInHMD"; - public const string k_pch_Perf_NotifyOnlyOnce_Bool = "warnOnlyOnce"; + public const string k_pch_Perf_PerfGraphInHMD_Bool = "perfGraphInHMD"; public const string k_pch_Perf_AllowTimingStore_Bool = "allowTimingStore"; public const string k_pch_Perf_SaveTimingsOnExit_Bool = "saveTimingsOnExit"; public const string k_pch_Perf_TestData_Float = "perfTestData"; @@ -5729,6 +5748,9 @@ public static uint GetInitToken() public const string k_pch_WebInterface_Section = "WebInterface"; public const string k_pch_WebInterface_WebEnable_Bool = "WebEnable"; public const string k_pch_WebInterface_WebPort_String = "WebPort"; + public const string k_pch_VRWebHelper_Section = "VRWebHelper"; + public const string k_pch_VRWebHelper_DebuggerEnabled_Bool = "DebuggerEnabled"; + public const string k_pch_VRWebHelper_DebuggerPort_Int32 = "DebuggerPort"; public const string k_pch_TrackingOverride_Section = "TrackingOverrides"; public const string k_pch_App_BindingAutosaveURLSuffix_String = "AutosaveURL"; public const string k_pch_App_BindingCurrentURLSuffix_String = "CurrentURL"; @@ -5997,7 +6019,7 @@ public static CVRSystem Init(ref EVRInitError peError, EVRApplicationType eAppli { VRToken = InitInternal2(ref peError, eApplicationType, pchStartupInfo); } - catch (EntryPointNotFoundException e) + catch (EntryPointNotFoundException) { VRToken = InitInternal(ref peError, eApplicationType); } diff --git a/headers/openvr_api.json b/headers/openvr_api.json index 528cd166..a6ea7b4e 100644 --- a/headers/openvr_api.json +++ b/headers/openvr_api.json @@ -64,6 +64,7 @@ ,{"name": "TrackingResult_Calibrating_OutOfRange","value": "101"} ,{"name": "TrackingResult_Running_OK","value": "200"} ,{"name": "TrackingResult_Running_OutOfRange","value": "201"} + ,{"name": "TrackingResult_Fallback_RotationOnly","value": "300"} ]} , {"enumname": "vr::ETrackedDeviceClass","values": [ {"name": "TrackedDeviceClass_Invalid","value": "0"} @@ -129,6 +130,7 @@ ,{"name": "Prop_NeverTracked_Bool","value": "1038"} ,{"name": "Prop_NumCameras_Int32","value": "1039"} ,{"name": "Prop_CameraFrameLayout_Int32","value": "1040"} + ,{"name": "Prop_CameraStreamFormat_Int32","value": "1041"} ,{"name": "Prop_ReportsTimeSinceVSync_Bool","value": "2000"} ,{"name": "Prop_SecondsFromVsyncToPhotons_Float","value": "2001"} ,{"name": "Prop_DisplayFrequency_Float","value": "2002"} @@ -242,6 +244,7 @@ ,{"name": "Prop_HasSpatialAnchorsSupport_Bool","value": "6007"} ,{"name": "Prop_ControllerType_String","value": "7000"} ,{"name": "Prop_LegacyInputProfile_String","value": "7001"} + ,{"name": "Prop_ControllerHandSelectionPriority_Int32","value": "7002"} ,{"name": "Prop_VendorSpecific_Reserved_Start","value": "10000"} ,{"name": "Prop_VendorSpecific_Reserved_End","value": "10999"} ,{"name": "Prop_TrackedDeviceProperty_Max","value": "1000000"} @@ -260,6 +263,7 @@ ,{"name": "TrackedProp_PermissionDenied","value": "10"} ,{"name": "TrackedProp_InvalidOperation","value": "11"} ,{"name": "TrackedProp_CannotWriteToWildcards","value": "12"} + ,{"name": "TrackedProp_IPCReadFailure","value": "13"} ]} , {"enumname": "vr::EVRSubmitFlags","values": [ {"name": "Submit_Default","value": "0"} @@ -423,6 +427,7 @@ ,{"name": "VREvent_Input_BindingLoadSuccessful","value": "1702"} ,{"name": "VREvent_Input_ActionManifestReloaded","value": "1703"} ,{"name": "VREvent_Input_ActionManifestLoadFailed","value": "1704"} + ,{"name": "VREvent_Input_TrackerActivated","value": "1706"} ,{"name": "VREvent_SpatialAnchors_PoseUpdated","value": "1800"} ,{"name": "VREvent_SpatialAnchors_DescriptorUpdated","value": "1801"} ,{"name": "VREvent_SpatialAnchors_RequestPoseUpdate","value": "1802"} @@ -1001,6 +1006,8 @@ "constname": "k_unSkeletonPropertyTag","consttype": "const PropertyTypeTag_t", "constval": "36"} ,{ "constname": "k_unSpatialAnchorPosePropertyTag","consttype": "const PropertyTypeTag_t", "constval": "40"} +,{ + "constname": "k_unJsonPropertyTag","consttype": "const PropertyTypeTag_t", "constval": "41"} ,{ "constname": "k_unOpenVRInternalReserved_Start","consttype": "const PropertyTypeTag_t", "constval": "1000"} ,{ @@ -1024,7 +1031,7 @@ ,{ "constname": "IVRExtendedDisplay_Version","consttype": "const char *const", "constval": "IVRExtendedDisplay_001"} ,{ - "constname": "IVRTrackedCamera_Version","consttype": "const char *const", "constval": "IVRTrackedCamera_003"} + "constname": "IVRTrackedCamera_Version","consttype": "const char *const", "constval": "IVRTrackedCamera_004"} ,{ "constname": "k_unMaxApplicationKeyLength","consttype": "const uint32_t", "constval": "128"} ,{ @@ -1123,6 +1130,8 @@ "constname": "k_pch_SteamVR_NeverKillProcesses_Bool","consttype": "const char *const", "constval": "neverKillProcesses"} ,{ "constname": "k_pch_SteamVR_SupersampleScale_Float","consttype": "const char *const", "constval": "supersampleScale"} +,{ + "constname": "k_pch_SteamVR_MaxRecommendedResolution_Int32","consttype": "const char *const", "constval": "maxRecommendedResolution"} ,{ "constname": "k_pch_SteamVR_AllowAsyncReprojection_Bool","consttype": "const char *const", "constval": "allowAsyncReprojection"} ,{ @@ -1132,11 +1141,13 @@ ,{ "constname": "k_pch_SteamVR_ForceFadeOnBadTracking_Bool","consttype": "const char *const", "constval": "forceFadeOnBadTracking"} ,{ - "constname": "k_pch_SteamVR_DefaultMirrorView_Int32","consttype": "const char *const", "constval": "defaultMirrorView"} + "constname": "k_pch_SteamVR_DefaultMirrorView_Int32","consttype": "const char *const", "constval": "mirrorView"} ,{ "constname": "k_pch_SteamVR_ShowMirrorView_Bool","consttype": "const char *const", "constval": "showMirrorView"} ,{ "constname": "k_pch_SteamVR_MirrorViewGeometry_String","consttype": "const char *const", "constval": "mirrorViewGeometry"} +,{ + "constname": "k_pch_SteamVR_MirrorViewGeometryMaximized_String","consttype": "const char *const", "constval": "mirrorViewGeometryMaximized"} ,{ "constname": "k_pch_SteamVR_StartMonitorFromAppLaunch","consttype": "const char *const", "constval": "startMonitorFromAppLaunch"} ,{ @@ -1193,6 +1204,8 @@ "constname": "k_pch_Lighthouse_EnableBluetooth_Bool","consttype": "const char *const", "constval": "enableBluetooth"} ,{ "constname": "k_pch_Lighthouse_PowerManagedBaseStations_String","consttype": "const char *const", "constval": "PowerManagedBaseStations"} +,{ + "constname": "k_pch_Lighthouse_EnableImuFallback_Bool","consttype": "const char *const", "constval": "enableImuFallback"} ,{ "constname": "k_pch_Null_Section","consttype": "const char *const", "constval": "driver_null"} ,{ @@ -1221,6 +1234,8 @@ "constname": "k_pch_UserInterface_StatusAlwaysOnTop_Bool","consttype": "const char *const", "constval": "StatusAlwaysOnTop"} ,{ "constname": "k_pch_UserInterface_MinimizeToTray_Bool","consttype": "const char *const", "constval": "MinimizeToTray"} +,{ + "constname": "k_pch_UserInterface_HidePopupsWhenStatusMinimized_Bool","consttype": "const char *const", "constval": "HidePopupsWhenStatusMinimized"} ,{ "constname": "k_pch_UserInterface_Screenshots_Bool","consttype": "const char *const", "constval": "screenshots"} ,{ @@ -1248,11 +1263,7 @@ ,{ "constname": "k_pch_Perf_Section","consttype": "const char *const", "constval": "perfcheck"} ,{ - "constname": "k_pch_Perf_HeuristicActive_Bool","consttype": "const char *const", "constval": "heuristicActive"} -,{ - "constname": "k_pch_Perf_NotifyInHMD_Bool","consttype": "const char *const", "constval": "warnInHMD"} -,{ - "constname": "k_pch_Perf_NotifyOnlyOnce_Bool","consttype": "const char *const", "constval": "warnOnlyOnce"} + "constname": "k_pch_Perf_PerfGraphInHMD_Bool","consttype": "const char *const", "constval": "perfGraphInHMD"} ,{ "constname": "k_pch_Perf_AllowTimingStore_Bool","consttype": "const char *const", "constval": "allowTimingStore"} ,{ @@ -1353,6 +1364,12 @@ "constname": "k_pch_WebInterface_WebEnable_Bool","consttype": "const char *const", "constval": "WebEnable"} ,{ "constname": "k_pch_WebInterface_WebPort_String","consttype": "const char *const", "constval": "WebPort"} +,{ + "constname": "k_pch_VRWebHelper_Section","consttype": "const char *const", "constval": "VRWebHelper"} +,{ + "constname": "k_pch_VRWebHelper_DebuggerEnabled_Bool","consttype": "const char *const", "constval": "DebuggerEnabled"} +,{ + "constname": "k_pch_VRWebHelper_DebuggerPort_Int32","consttype": "const char *const", "constval": "DebuggerPort"} ,{ "constname": "k_pch_TrackingOverride_Section","consttype": "const char *const", "constval": "TrackingOverrides"} ,{ @@ -1622,7 +1639,8 @@ { "fieldname": "nHeight", "fieldtype": "uint32_t"}, { "fieldname": "nBytesPerPixel", "fieldtype": "uint32_t"}, { "fieldname": "nFrameSequence", "fieldtype": "uint32_t"}, -{ "fieldname": "standingTrackedDevicePose", "fieldtype": "struct vr::TrackedDevicePose_t"}]} +{ "fieldname": "standingTrackedDevicePose", "fieldtype": "struct vr::TrackedDevicePose_t"}, +{ "fieldname": "ulFrameExposureTime", "fieldtype": "uint64_t"}]} ,{"struct": "vr::DriverDirectMode_FrameTiming","fields": [ { "fieldname": "m_nSize", "fieldtype": "uint32_t"}, { "fieldname": "m_nNumFramePresents", "fieldtype": "uint32_t"}, @@ -1661,7 +1679,9 @@ { "fieldname": "m_flCompositorUpdateStartMs", "fieldtype": "float"}, { "fieldname": "m_flCompositorUpdateEndMs", "fieldtype": "float"}, { "fieldname": "m_flCompositorRenderStartMs", "fieldtype": "float"}, -{ "fieldname": "m_HmdPose", "fieldtype": "vr::TrackedDevicePose_t"}]} +{ "fieldname": "m_HmdPose", "fieldtype": "vr::TrackedDevicePose_t"}, +{ "fieldname": "m_nNumVSyncsReadyForUse", "fieldtype": "uint32_t"}, +{ "fieldname": "m_nNumVSyncsToFirstView", "fieldtype": "uint32_t"}]} ,{"struct": "vr::Compositor_CumulativeStats","fields": [ { "fieldname": "m_nPid", "fieldtype": "uint32_t"}, { "fieldname": "m_nNumFramePresents", "fieldtype": "uint32_t"}, diff --git a/headers/openvr_capi.h b/headers/openvr_capi.h index 1ee5a367..a0dda82f 100644 --- a/headers/openvr_capi.h +++ b/headers/openvr_capi.h @@ -89,6 +89,7 @@ static const unsigned int k_unWildcardPropertyTag = 34; static const unsigned int k_unHapticVibrationPropertyTag = 35; static const unsigned int k_unSkeletonPropertyTag = 36; static const unsigned int k_unSpatialAnchorPosePropertyTag = 40; +static const unsigned int k_unJsonPropertyTag = 41; static const unsigned int k_unOpenVRInternalReserved_Start = 1000; static const unsigned int k_unOpenVRInternalReserved_End = 10000; static const unsigned int k_unMaxPropertyStringSize = 32768; @@ -100,7 +101,7 @@ static const unsigned long k_ulOverlayHandleInvalid = 0; static const unsigned int k_unScreenshotHandleInvalid = 0; static const char * IVRSystem_Version = "IVRSystem_019"; static const char * IVRExtendedDisplay_Version = "IVRExtendedDisplay_001"; -static const char * IVRTrackedCamera_Version = "IVRTrackedCamera_003"; +static const char * IVRTrackedCamera_Version = "IVRTrackedCamera_004"; static const unsigned int k_unMaxApplicationKeyLength = 128; static const char * k_pch_MimeType_HomeApp = "vr/home"; static const char * k_pch_MimeType_GameTheater = "vr/game_theater"; @@ -150,13 +151,15 @@ static const char * k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float = "speak static const char * k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement"; static const char * k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses"; static const char * k_pch_SteamVR_SupersampleScale_Float = "supersampleScale"; +static const char * k_pch_SteamVR_MaxRecommendedResolution_Int32 = "maxRecommendedResolution"; static const char * k_pch_SteamVR_AllowAsyncReprojection_Bool = "allowAsyncReprojection"; static const char * k_pch_SteamVR_AllowReprojection_Bool = "allowInterleavedReprojection"; static const char * k_pch_SteamVR_ForceReprojection_Bool = "forceReprojection"; static const char * k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking"; -static const char * k_pch_SteamVR_DefaultMirrorView_Int32 = "defaultMirrorView"; +static const char * k_pch_SteamVR_DefaultMirrorView_Int32 = "mirrorView"; static const char * k_pch_SteamVR_ShowMirrorView_Bool = "showMirrorView"; static const char * k_pch_SteamVR_MirrorViewGeometry_String = "mirrorViewGeometry"; +static const char * k_pch_SteamVR_MirrorViewGeometryMaximized_String = "mirrorViewGeometryMaximized"; static const char * k_pch_SteamVR_StartMonitorFromAppLaunch = "startMonitorFromAppLaunch"; static const char * k_pch_SteamVR_StartCompositorFromAppLaunch_Bool = "startCompositorFromAppLaunch"; static const char * k_pch_SteamVR_StartDashboardFromAppLaunch_Bool = "startDashboardFromAppLaunch"; @@ -185,6 +188,7 @@ static const char * k_pch_Lighthouse_PrimaryBasestation_Int32 = "primarybasestat static const char * k_pch_Lighthouse_DBHistory_Bool = "dbhistory"; static const char * k_pch_Lighthouse_EnableBluetooth_Bool = "enableBluetooth"; static const char * k_pch_Lighthouse_PowerManagedBaseStations_String = "PowerManagedBaseStations"; +static const char * k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback"; static const char * k_pch_Null_Section = "driver_null"; static const char * k_pch_Null_SerialNumber_String = "serialNumber"; static const char * k_pch_Null_ModelNumber_String = "modelNumber"; @@ -199,6 +203,7 @@ static const char * k_pch_Null_DisplayFrequency_Float = "displayFrequency"; static const char * k_pch_UserInterface_Section = "userinterface"; static const char * k_pch_UserInterface_StatusAlwaysOnTop_Bool = "StatusAlwaysOnTop"; static const char * k_pch_UserInterface_MinimizeToTray_Bool = "MinimizeToTray"; +static const char * k_pch_UserInterface_HidePopupsWhenStatusMinimized_Bool = "HidePopupsWhenStatusMinimized"; static const char * k_pch_UserInterface_Screenshots_Bool = "screenshots"; static const char * k_pch_UserInterface_ScreenshotType_Int = "screenshotType"; static const char * k_pch_Notifications_Section = "notifications"; @@ -212,9 +217,7 @@ static const char * k_pch_Keyboard_OffsetRightX = "OffsetRightX"; static const char * k_pch_Keyboard_OffsetY = "OffsetY"; static const char * k_pch_Keyboard_Smoothing = "Smoothing"; static const char * k_pch_Perf_Section = "perfcheck"; -static const char * k_pch_Perf_HeuristicActive_Bool = "heuristicActive"; -static const char * k_pch_Perf_NotifyInHMD_Bool = "warnInHMD"; -static const char * k_pch_Perf_NotifyOnlyOnce_Bool = "warnOnlyOnce"; +static const char * k_pch_Perf_PerfGraphInHMD_Bool = "perfGraphInHMD"; static const char * k_pch_Perf_AllowTimingStore_Bool = "allowTimingStore"; static const char * k_pch_Perf_SaveTimingsOnExit_Bool = "saveTimingsOnExit"; static const char * k_pch_Perf_TestData_Float = "perfTestData"; @@ -265,6 +268,9 @@ static const char * k_pch_Driver_Enable_Bool = "enable"; static const char * k_pch_WebInterface_Section = "WebInterface"; static const char * k_pch_WebInterface_WebEnable_Bool = "WebEnable"; static const char * k_pch_WebInterface_WebPort_String = "WebPort"; +static const char * k_pch_VRWebHelper_Section = "VRWebHelper"; +static const char * k_pch_VRWebHelper_DebuggerEnabled_Bool = "DebuggerEnabled"; +static const char * k_pch_VRWebHelper_DebuggerPort_Int32 = "DebuggerPort"; static const char * k_pch_TrackingOverride_Section = "TrackingOverrides"; static const char * k_pch_App_BindingAutosaveURLSuffix_String = "AutosaveURL"; static const char * k_pch_App_BindingCurrentURLSuffix_String = "CurrentURL"; @@ -317,6 +323,7 @@ typedef enum ETrackingResult ETrackingResult_TrackingResult_Calibrating_OutOfRange = 101, ETrackingResult_TrackingResult_Running_OK = 200, ETrackingResult_TrackingResult_Running_OutOfRange = 201, + ETrackingResult_TrackingResult_Fallback_RotationOnly = 300, } ETrackingResult; typedef enum ETrackedDeviceClass @@ -390,6 +397,7 @@ typedef enum ETrackedDeviceProperty ETrackedDeviceProperty_Prop_NeverTracked_Bool = 1038, ETrackedDeviceProperty_Prop_NumCameras_Int32 = 1039, ETrackedDeviceProperty_Prop_CameraFrameLayout_Int32 = 1040, + ETrackedDeviceProperty_Prop_CameraStreamFormat_Int32 = 1041, ETrackedDeviceProperty_Prop_ReportsTimeSinceVSync_Bool = 2000, ETrackedDeviceProperty_Prop_SecondsFromVsyncToPhotons_Float = 2001, ETrackedDeviceProperty_Prop_DisplayFrequency_Float = 2002, @@ -503,6 +511,7 @@ typedef enum ETrackedDeviceProperty ETrackedDeviceProperty_Prop_HasSpatialAnchorsSupport_Bool = 6007, ETrackedDeviceProperty_Prop_ControllerType_String = 7000, ETrackedDeviceProperty_Prop_LegacyInputProfile_String = 7001, + ETrackedDeviceProperty_Prop_ControllerHandSelectionPriority_Int32 = 7002, ETrackedDeviceProperty_Prop_VendorSpecific_Reserved_Start = 10000, ETrackedDeviceProperty_Prop_VendorSpecific_Reserved_End = 10999, ETrackedDeviceProperty_Prop_TrackedDeviceProperty_Max = 1000000, @@ -523,6 +532,7 @@ typedef enum ETrackedPropertyError ETrackedPropertyError_TrackedProp_PermissionDenied = 10, ETrackedPropertyError_TrackedProp_InvalidOperation = 11, ETrackedPropertyError_TrackedProp_CannotWriteToWildcards = 12, + ETrackedPropertyError_TrackedProp_IPCReadFailure = 13, } ETrackedPropertyError; typedef enum EVRSubmitFlags @@ -692,6 +702,7 @@ typedef enum EVREventType EVREventType_VREvent_Input_BindingLoadSuccessful = 1702, EVREventType_VREvent_Input_ActionManifestReloaded = 1703, EVREventType_VREvent_Input_ActionManifestLoadFailed = 1704, + EVREventType_VREvent_Input_TrackerActivated = 1706, EVREventType_VREvent_SpatialAnchors_PoseUpdated = 1800, EVREventType_VREvent_SpatialAnchors_DescriptorUpdated = 1801, EVREventType_VREvent_SpatialAnchors_RequestPoseUpdate = 1802, @@ -1564,7 +1575,7 @@ typedef struct VREvent_Status_t typedef struct VREvent_Keyboard_t { - char * cNewInput[8]; //char[8] + char cNewInput[8]; //char[8] uint64_t uUserValue; } VREvent_Keyboard_t; @@ -1727,6 +1738,7 @@ typedef struct CameraVideoStreamFrameHeader_t uint32_t nBytesPerPixel; uint32_t nFrameSequence; struct TrackedDevicePose_t standingTrackedDevicePose; + uint64_t ulFrameExposureTime; } CameraVideoStreamFrameHeader_t; typedef struct DriverDirectMode_FrameTiming @@ -1778,6 +1790,8 @@ typedef struct Compositor_FrameTiming float m_flCompositorUpdateEndMs; float m_flCompositorRenderStartMs; TrackedDevicePose_t m_HmdPose; + uint32_t m_nNumVSyncsReadyForUse; + uint32_t m_nNumVSyncsToFirstView; } Compositor_FrameTiming; typedef struct Compositor_CumulativeStats @@ -1929,7 +1943,7 @@ typedef struct InputOriginInfo_t { VRInputValueHandle_t devicePath; TrackedDeviceIndex_t trackedDeviceIndex; - char * rchRenderModelComponentName[128]; //char[128] + char rchRenderModelComponentName[128]; //char[128] } InputOriginInfo_t; typedef struct VRActiveActionSet_t @@ -1983,8 +1997,26 @@ typedef union VREvent_PerformanceTest_t performanceTest; VREvent_TouchPadMove_t touchPadMove; VREvent_SeatedZeroPoseReset_t seatedZeroPoseReset; + VREvent_Screenshot_t screenshot; + VREvent_ScreenshotProgress_t screenshotProgress; + VREvent_ApplicationLaunch_t applicationLaunch; + VREvent_EditingCameraSurface_t cameraSurface; + VREvent_MessageOverlay_t messageOverlay; + VREvent_Property_t property; + VREvent_DualAnalog_t dualAnalog; + VREvent_HapticVibration_t hapticVibration; + VREvent_WebConsole_t webConsole; + VREvent_InputBindingLoad_t inputBinding; + VREvent_InputActionManifestLoad_t actionManifest; + VREvent_SpatialAnchor_t spatialAnchor; } VREvent_Data_t; +#if defined(__linux__) || defined(__APPLE__) +// This structure was originally defined mis-packed on Linux, preserved for +// compatibility. +#pragma pack( push, 4 ) +#endif + /** An event posted by the server to all running applications */ struct VREvent_t { @@ -1995,6 +2027,10 @@ struct VREvent_t VREvent_Data_t data; }; +#if defined(__linux__) || defined(__APPLE__) +#pragma pack( pop ) +#endif + typedef union { diff --git a/headers/openvr_driver.h b/headers/openvr_driver.h index 97a5d953..556a8950 100644 --- a/headers/openvr_driver.h +++ b/headers/openvr_driver.h @@ -161,6 +161,8 @@ enum ETrackingResult TrackingResult_Running_OK = 200, TrackingResult_Running_OutOfRange = 201, + + TrackingResult_Fallback_RotationOnly = 300, }; typedef uint32_t DriverId_t; @@ -257,6 +259,7 @@ static const PropertyTypeTag_t k_unHapticVibrationPropertyTag = 35; static const PropertyTypeTag_t k_unSkeletonPropertyTag = 36; static const PropertyTypeTag_t k_unSpatialAnchorPosePropertyTag = 40; +static const PropertyTypeTag_t k_unJsonPropertyTag = 41; static const PropertyTypeTag_t k_unOpenVRInternalReserved_Start = 1000; static const PropertyTypeTag_t k_unOpenVRInternalReserved_End = 10000; @@ -310,6 +313,7 @@ enum ETrackedDeviceProperty Prop_NeverTracked_Bool = 1038, // Used for devices that will never have a valid pose by design Prop_NumCameras_Int32 = 1039, Prop_CameraFrameLayout_Int32 = 1040, // EVRTrackedCameraFrameLayout value + Prop_CameraStreamFormat_Int32 = 1041, // ECameraVideoStreamFormat value // Properties that are unique to TrackedDeviceClass_HMD Prop_ReportsTimeSinceVSync_Bool = 2000, @@ -440,6 +444,7 @@ enum ETrackedDeviceProperty // Properties that are set internally based on other information provided by drivers Prop_ControllerType_String = 7000, Prop_LegacyInputProfile_String = 7001, + Prop_ControllerHandSelectionPriority_Int32 = 7002, // Allows hand assignments to prefer some controllers over others. High numbers are selected over low numbers // Vendors are free to expose private debug data in this reserved region Prop_VendorSpecific_Reserved_Start = 10000, @@ -467,6 +472,7 @@ enum ETrackedPropertyError TrackedProp_PermissionDenied = 10, TrackedProp_InvalidOperation = 11, TrackedProp_CannotWriteToWildcards = 12, + TrackedProp_IPCReadFailure = 13, }; @@ -747,6 +753,7 @@ enum EVREventType VREvent_Input_BindingLoadSuccessful = 1702, // data is inputBinding VREvent_Input_ActionManifestReloaded = 1703, // no data VREvent_Input_ActionManifestLoadFailed = 1704, // data is actionManifest + VREvent_Input_TrackerActivated = 1706, VREvent_SpatialAnchors_PoseUpdated = 1800, // data is spatialAnchor. broadcast VREvent_SpatialAnchors_DescriptorUpdated = 1801, // data is spatialAnchor. broadcast @@ -1472,6 +1479,8 @@ struct CameraVideoStreamFrameHeader_t uint32_t nFrameSequence; TrackedDevicePose_t standingTrackedDevicePose; + + uint64_t ulFrameExposureTime; // mid-point of the exposure of the image in host system ticks }; // Screenshot types @@ -1591,6 +1600,7 @@ enum ECameraVideoStreamFormat CVS_FORMAT_NV12 = 2, // 12 bits per pixel CVS_FORMAT_RGB24 = 3, // 24 bits per pixel CVS_FORMAT_NV12_2 = 4, // 12 bits per pixel, 2x height + CVS_FORMAT_YUYV16 = 5, // 16 bits per pixel CVS_MAX_FORMATS }; @@ -1722,7 +1732,7 @@ namespace vr class CVRSettingHelper { - IVRSettings *m_pSettings = nullptr; + IVRSettings *m_pSettings; public: CVRSettingHelper( IVRSettings *pSettings ) { @@ -1831,13 +1841,15 @@ namespace vr static const char * const k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement"; static const char * const k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses"; static const char * const k_pch_SteamVR_SupersampleScale_Float = "supersampleScale"; + static const char * const k_pch_SteamVR_MaxRecommendedResolution_Int32 = "maxRecommendedResolution"; static const char * const k_pch_SteamVR_AllowAsyncReprojection_Bool = "allowAsyncReprojection"; static const char * const k_pch_SteamVR_AllowReprojection_Bool = "allowInterleavedReprojection"; static const char * const k_pch_SteamVR_ForceReprojection_Bool = "forceReprojection"; static const char * const k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking"; - static const char * const k_pch_SteamVR_DefaultMirrorView_Int32 = "defaultMirrorView"; + static const char * const k_pch_SteamVR_DefaultMirrorView_Int32 = "mirrorView"; static const char * const k_pch_SteamVR_ShowMirrorView_Bool = "showMirrorView"; static const char * const k_pch_SteamVR_MirrorViewGeometry_String = "mirrorViewGeometry"; + static const char * const k_pch_SteamVR_MirrorViewGeometryMaximized_String = "mirrorViewGeometryMaximized"; static const char * const k_pch_SteamVR_StartMonitorFromAppLaunch = "startMonitorFromAppLaunch"; static const char * const k_pch_SteamVR_StartCompositorFromAppLaunch_Bool = "startCompositorFromAppLaunch"; static const char * const k_pch_SteamVR_StartDashboardFromAppLaunch_Bool = "startDashboardFromAppLaunch"; @@ -1869,6 +1881,7 @@ namespace vr static const char * const k_pch_Lighthouse_DBHistory_Bool = "dbhistory"; static const char * const k_pch_Lighthouse_EnableBluetooth_Bool = "enableBluetooth"; static const char * const k_pch_Lighthouse_PowerManagedBaseStations_String = "PowerManagedBaseStations"; + static const char * const k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback"; //----------------------------------------------------------------------------- // null keys @@ -1889,6 +1902,7 @@ namespace vr static const char * const k_pch_UserInterface_Section = "userinterface"; static const char * const k_pch_UserInterface_StatusAlwaysOnTop_Bool = "StatusAlwaysOnTop"; static const char * const k_pch_UserInterface_MinimizeToTray_Bool = "MinimizeToTray"; + static const char * const k_pch_UserInterface_HidePopupsWhenStatusMinimized_Bool = "HidePopupsWhenStatusMinimized"; static const char * const k_pch_UserInterface_Screenshots_Bool = "screenshots"; static const char * const k_pch_UserInterface_ScreenshotType_Int = "screenshotType"; @@ -1911,9 +1925,7 @@ namespace vr //----------------------------------------------------------------------------- // perf keys static const char * const k_pch_Perf_Section = "perfcheck"; - static const char * const k_pch_Perf_HeuristicActive_Bool = "heuristicActive"; - static const char * const k_pch_Perf_NotifyInHMD_Bool = "warnInHMD"; - static const char * const k_pch_Perf_NotifyOnlyOnce_Bool = "warnOnlyOnce"; + static const char * const k_pch_Perf_PerfGraphInHMD_Bool = "perfGraphInHMD"; static const char * const k_pch_Perf_AllowTimingStore_Bool = "allowTimingStore"; static const char * const k_pch_Perf_SaveTimingsOnExit_Bool = "saveTimingsOnExit"; static const char * const k_pch_Perf_TestData_Float = "perfTestData"; @@ -1989,6 +2001,12 @@ namespace vr static const char* const k_pch_WebInterface_WebEnable_Bool = "WebEnable"; static const char* const k_pch_WebInterface_WebPort_String = "WebPort"; + //----------------------------------------------------------------------------- + // vrwebhelper keys + static const char* const k_pch_VRWebHelper_Section = "VRWebHelper"; + static const char* const k_pch_VRWebHelper_DebuggerEnabled_Bool = "DebuggerEnabled"; + static const char* const k_pch_VRWebHelper_DebuggerPort_Int32 = "DebuggerPort"; + //----------------------------------------------------------------------------- // tracking overrides - keys are device paths, values are the device paths their // tracking/pose information overrides @@ -2444,7 +2462,6 @@ class IVRProperties /** Returns a container handle given a tracked device index */ virtual PropertyContainerHandle_t TrackedDeviceToPropertyContainer( TrackedDeviceIndex_t nDevice ) = 0; - }; static const char * const IVRProperties_Version = "IVRProperties_001"; diff --git a/lib/linux32/libopenvr_api.so b/lib/linux32/libopenvr_api.so index 4104293d..ef6bea3f 100755 Binary files a/lib/linux32/libopenvr_api.so and b/lib/linux32/libopenvr_api.so differ diff --git a/lib/linux64/libopenvr_api.so b/lib/linux64/libopenvr_api.so index 80853c38..f2dba48d 100755 Binary files a/lib/linux64/libopenvr_api.so and b/lib/linux64/libopenvr_api.so differ diff --git a/samples/bin/linux64/empty.dir b/samples/bin/linux64/empty.dir new file mode 100644 index 00000000..e69de29b diff --git a/samples/bin/linux64/libopenvr_api.so b/samples/bin/linux64/libopenvr_api.so index 0db0884c..92ac9c2b 100644 Binary files a/samples/bin/linux64/libopenvr_api.so and b/samples/bin/linux64/libopenvr_api.so differ diff --git a/samples/bin/osx32/libopenvr_api.dylib b/samples/bin/osx32/libopenvr_api.dylib index 7a719c37..b2877ce5 100644 Binary files a/samples/bin/osx32/libopenvr_api.dylib and b/samples/bin/osx32/libopenvr_api.dylib differ diff --git a/samples/bin/win32/openvr_api.dll b/samples/bin/win32/openvr_api.dll index 376529cd..0a348d0f 100644 Binary files a/samples/bin/win32/openvr_api.dll and b/samples/bin/win32/openvr_api.dll differ diff --git a/samples/bin/win64/openvr_api.dll b/samples/bin/win64/openvr_api.dll index b31cce41..6988b785 100644 Binary files a/samples/bin/win64/openvr_api.dll and b/samples/bin/win64/openvr_api.dll differ