diff options
author | Joe Ludwig <joe@valvesoftware.com> | 2018-10-16 04:14:19 +0300 |
---|---|---|
committer | Joe Ludwig <joe@valvesoftware.com> | 2018-10-16 04:14:19 +0300 |
commit | 1fb1030f2ac238456dca7615a4408fb2bb42afb6 (patch) | |
tree | 8bfdcb8c55cb2d4eb27acf0a6e79a364c6fa0c7d | |
parent | 6aacebd1246592d9911439d5abd0c657b8948ab0 (diff) |
OpenVR SDK 1.0.17v1.0.17
IVRProperties:
* Prop_CameraStreamFormat_Int32 - value from the openvr_driver.h ECameraVideoStreamFormat indicating the expected delivery format of the device
* TrackedProp_IPCReadFailure
IVRTrackedCamera:
* CameraVideoStreamFrameHeader_t:: ulFrameExposureTime - additional field which carries the time in absolute system ticks of when the frame exposure happened, and the time of the frames pose.
* CVS_FORMAT_YUYV16 - new opener_driver.h ECameraVideoStreamFormat value indicating 16-bit YUYV raw image encoding
OpenVR C API:
* Fixed cNewInput and rchRenderModelComponentName having an incorrect type
IVRCompositor FrameTiming:
* Added frame prediction and throttling bits to reprojection flags. Use the macros VR_COMPOSITOR_ADDITIONAL_PREDICTED_FRAMES and VR_COMPOSITOR_NUMBER_OF_THROTTLED_FRAMES for easy access. These values can be used to provide a better job at updating game simulation time for rendered frames when unable to meet native refresh rate requirements.
* Added m_nNumVSyncsReadyForUse for tracking how long each frame took to render.
* Added m_nNumVSyncsToFirstView for tracking how many vsync intervals before a given frame was first viewed (i.e. scanned out). This may differ from NumVSyncsReadyForUse if the frame was predicted further ahead since frames will never be displayed earlier than the time they were predicted to.
* See https://developer.valvesoftware.com/wiki/SteamVR/Frame_Timing for more details.
Driver API:
* Added TrackingResult_Fallback_RotationOnly, which drivers can return if they have lost positional tracking but wish to still provide rotation-only tracking.
[git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 4759625]
23 files changed, 302 insertions, 174 deletions
diff --git a/bin/linux32/libopenvr_api.so b/bin/linux32/libopenvr_api.so Binary files differindex 5f8f269..5be49bd 100755 --- a/bin/linux32/libopenvr_api.so +++ b/bin/linux32/libopenvr_api.so diff --git a/bin/linux32/libopenvr_api.so.dbg b/bin/linux32/libopenvr_api.so.dbg Binary files differindex 27803d2..15e6314 100755 --- a/bin/linux32/libopenvr_api.so.dbg +++ b/bin/linux32/libopenvr_api.so.dbg diff --git a/bin/linux64/empty.dir b/bin/linux64/empty.dir new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/bin/linux64/empty.dir diff --git a/bin/linux64/libopenvr_api.so b/bin/linux64/libopenvr_api.so Binary files differindex 0db0884..92ac9c2 100755 --- a/bin/linux64/libopenvr_api.so +++ b/bin/linux64/libopenvr_api.so diff --git a/bin/linux64/libopenvr_api.so.dbg b/bin/linux64/libopenvr_api.so.dbg Binary files differindex 893dc49..fa00393 100755 --- a/bin/linux64/libopenvr_api.so.dbg +++ b/bin/linux64/libopenvr_api.so.dbg diff --git a/bin/osx32/libopenvr_api.dylib b/bin/osx32/libopenvr_api.dylib Binary files differindex 7a719c3..b2877ce 100755 --- a/bin/osx32/libopenvr_api.dylib +++ b/bin/osx32/libopenvr_api.dylib 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 Binary files differindex 05fe06b..19f89dd 100644 --- 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 diff --git a/bin/win32/openvr_api.dll b/bin/win32/openvr_api.dll Binary files differindex 376529c..0a348d0 100644 --- a/bin/win32/openvr_api.dll +++ b/bin/win32/openvr_api.dll diff --git a/bin/win32/openvr_api.pdb b/bin/win32/openvr_api.pdb Binary files differindex e41c918..babdd1d 100644 --- a/bin/win32/openvr_api.pdb +++ b/bin/win32/openvr_api.pdb diff --git a/bin/win64/openvr_api.dll b/bin/win64/openvr_api.dll Binary files differindex b31cce4..6988b78 100644 --- a/bin/win64/openvr_api.dll +++ b/bin/win64/openvr_api.dll diff --git a/bin/win64/openvr_api.pdb b/bin/win64/openvr_api.pdb Binary files differindex 80f1167..59b5b38 100644 --- a/bin/win64/openvr_api.pdb +++ b/bin/win64/openvr_api.pdb diff --git a/headers/openvr.h b/headers/openvr.h index dd2addd..3b35125 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"; @@ -2411,6 +2422,12 @@ namespace vr 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 static const char* const k_pch_TrackingOverride_Section = "TrackingOverrides"; @@ -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 @@ public: 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 23966f3..116c1a3 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 enum EIOBufferMode { 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 enum EIOBufferMode 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 enum EIOBufferMode 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 enum EIOBufferMode { 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 class OpenVR 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 class OpenVR 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 class OpenVR 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 class OpenVR 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 class OpenVR 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 class OpenVR 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 class OpenVR 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 class OpenVR 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 class OpenVR { 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 528cd16..a6ea7b4 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"} @@ -1002,6 +1007,8 @@ ,{ "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"} ,{ "constname": "k_unOpenVRInternalReserved_End","consttype": "const PropertyTypeTag_t", "constval": "10000"} @@ -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"} ,{ @@ -1124,6 +1131,8 @@ ,{ "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"} ,{ "constname": "k_pch_SteamVR_AllowReprojection_Bool","consttype": "const char *const", "constval": "allowInterleavedReprojection"} @@ -1132,12 +1141,14 @@ ,{ "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"} ,{ "constname": "k_pch_SteamVR_StartCompositorFromAppLaunch_Bool","consttype": "const char *const", "constval": "startCompositorFromAppLaunch"} @@ -1194,6 +1205,8 @@ ,{ "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"} ,{ "constname": "k_pch_Null_SerialNumber_String","consttype": "const char *const", "constval": "serialNumber"} @@ -1222,6 +1235,8 @@ ,{ "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"} ,{ "constname": "k_pch_UserInterface_ScreenshotType_Int","consttype": "const char *const", "constval": "screenshotType"} @@ -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"} ,{ @@ -1354,6 +1365,12 @@ ,{ "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"} ,{ "constname": "k_pch_App_BindingAutosaveURLSuffix_String","consttype": "const char *const", "constval": "AutosaveURL"} @@ -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 1ee5a36..a0dda82 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 97a5d95..556a895 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"; @@ -1990,6 +2002,12 @@ namespace vr 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 static const char* const k_pch_TrackingOverride_Section = "TrackingOverrides"; @@ -2444,7 +2462,6 @@ public: /** 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 Binary files differindex 4104293..ef6bea3 100755 --- a/lib/linux32/libopenvr_api.so +++ b/lib/linux32/libopenvr_api.so diff --git a/lib/linux64/libopenvr_api.so b/lib/linux64/libopenvr_api.so Binary files differindex 80853c3..f2dba48 100755 --- a/lib/linux64/libopenvr_api.so +++ b/lib/linux64/libopenvr_api.so diff --git a/samples/bin/linux64/empty.dir b/samples/bin/linux64/empty.dir new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/samples/bin/linux64/empty.dir diff --git a/samples/bin/linux64/libopenvr_api.so b/samples/bin/linux64/libopenvr_api.so Binary files differindex 0db0884..92ac9c2 100644 --- a/samples/bin/linux64/libopenvr_api.so +++ b/samples/bin/linux64/libopenvr_api.so diff --git a/samples/bin/osx32/libopenvr_api.dylib b/samples/bin/osx32/libopenvr_api.dylib Binary files differindex 7a719c3..b2877ce 100644 --- a/samples/bin/osx32/libopenvr_api.dylib +++ b/samples/bin/osx32/libopenvr_api.dylib diff --git a/samples/bin/win32/openvr_api.dll b/samples/bin/win32/openvr_api.dll Binary files differindex 376529c..0a348d0 100644 --- a/samples/bin/win32/openvr_api.dll +++ b/samples/bin/win32/openvr_api.dll diff --git a/samples/bin/win64/openvr_api.dll b/samples/bin/win64/openvr_api.dll Binary files differindex b31cce4..6988b78 100644 --- a/samples/bin/win64/openvr_api.dll +++ b/samples/bin/win64/openvr_api.dll |