Skip to content

Commit 02bc73b

Browse files
committed
OpenVR SDK 1.4.18
General: * vr::VR_GetRunTimePath now takes a buffer to fill with the returned path. This form of the function is now thread-safe. Driver Interface: * Prop_DashboardLayoutPathName_String - specified the name of the dashboard layout control file. Allows per-HMD control over settings like dashboard distance, etc. HelloVR Sample: * Added an example of generic bindings that will work ifno device-specific bindings are specified. Valve Index Controller: * Renamed some references from Knuckles to Index Controller IVRChaperoneSetup: * Added RoomSetupStarting - This fires an event that the tracking system can use to know room setup is about to begin. This lets the tracking system make any last minute adjustments that should be incorporated into the new setup. If the user is adjusting live in HMD using a tweak tool, keep in mind that calling this might cause the user to see the room jump. IVRCompositor: * Added IsMotionSmoothingSupported - This returns true if Motion Smoothing is supported by the current hardware. * Added IsCurrentSceneFocusAppLoading - This indicates whether or not the current scene focus app is currently loading. The return value is inferred from its use of FadeGrid to explicitly fade to the compositor to cover up the fact that it cannot render at a sustained full framerate during this time. IVRInput: * Split GetPoseActionData into two functions * GetPoseActionRelativeToNow - returns the data for the pose action for any time, given a relative number of seconds. * GetPoseActionDataForNextFrame - returns the data for the pose action that matches the application's most recent call to WaitGetPoses * Added a eSummaryType argument to GetSkeletalSummaryData - This allows applications to specify how much filtering should be applied to the data: * VRSummaryType_FromAnimation - The data should match the animated transforms in the skeleton transforms. This data will probably be smoothed and may be more latent * VRSummaryType_FromDevice - The data should be the unprocessed values from the device when available. This data may include more jitter but may be provided with less latency. [git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 5123272]
1 parent b72abce commit 02bc73b

34 files changed

+424
-79
lines changed

bin/linux32/libopenvr_api.so

3.92 KB
Binary file not shown.

bin/linux32/libopenvr_api.so.dbg

5.72 KB
Binary file not shown.

bin/linux64/libopenvr_api.so

-88 Bytes
Binary file not shown.

bin/linux64/libopenvr_api.so.dbg

2.83 KB
Binary file not shown.

bin/osx32/libopenvr_api.dylib

68 Bytes
Binary file not shown.
Binary file not shown.

bin/win32/openvr_api.dll

-1 KB
Binary file not shown.

bin/win32/openvr_api.pdb

-24 KB
Binary file not shown.

bin/win64/openvr_api.dll

-1 KB
Binary file not shown.

bin/win64/openvr_api.pdb

-8 KB
Binary file not shown.

headers/openvr.h

+57-18
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
namespace vr
1616
{
1717
static const uint32_t k_nSteamVRVersionMajor = 1;
18-
static const uint32_t k_nSteamVRVersionMinor = 3;
19-
static const uint32_t k_nSteamVRVersionBuild = 20;
18+
static const uint32_t k_nSteamVRVersionMinor = 4;
19+
static const uint32_t k_nSteamVRVersionBuild = 18;
2020
} // namespace vr
2121

2222
// vrtypes.h
@@ -207,7 +207,7 @@ enum ETrackedControllerRole
207207
TrackedControllerRole_RightHand = 2, // Tracked device associated with the right hand
208208
TrackedControllerRole_OptOut = 3, // Tracked device is opting out of left/right hand selection
209209
TrackedControllerRole_Treadmill = 4, // Tracked device is a treadmill
210-
TrackedControllerRole_Max = 4
210+
TrackedControllerRole_Max = 5
211211
};
212212

213213

@@ -430,6 +430,11 @@ enum ETrackedDeviceProperty
430430
Prop_CameraDistortionCoefficients_Float_Array = 2073, // Prop_NumCameras_Int32-sized array of double[vr::k_unMaxDistortionFunctionParameters] (max size is vr::k_unMaxCameras)
431431
Prop_ExpectedControllerType_String = 2074,
432432

433+
Prop_DisplayAvailableFrameRates_Float_Array = 2080, // populated by compositor from actual EDID list when available from GPU driver
434+
Prop_DisplaySupportsMultipleFramerates_Bool = 2081, // if this is true but Prop_DisplayAvailableFrameRates_Float_Array is empty, explain to user
435+
436+
Prop_DashboardLayoutPathName_String = 2090,
437+
433438
// Driver requested mura correction properties
434439
Prop_DriverRequestedMuraCorrectionMode_Int32 = 2200,
435440
Prop_DriverRequestedMuraFeather_InnerLeft_Int32 = 2201,
@@ -490,7 +495,7 @@ enum ETrackedDeviceProperty
490495

491496
// Properties that are set internally based on other information provided by drivers
492497
Prop_ControllerType_String = 7000,
493-
Prop_LegacyInputProfile_String = 7001,
498+
//Prop_LegacyInputProfile_String = 7001, // This is no longer used. See "legacy_binding" in the input profile instead.
494499
Prop_ControllerHandSelectionPriority_Int32 = 7002, // Allows hand assignments to prefer some controllers over others. High numbers are selected over low numbers
495500

496501
// Vendors are free to expose private debug data in this reserved region
@@ -734,12 +739,14 @@ enum EVREventType
734739
VREvent_DriverRequestedQuit = 704, // The driver has requested that SteamVR shut down
735740
VREvent_RestartRequested = 705, // A driver or other component wants the user to restart SteamVR
736741

737-
VREvent_ChaperoneDataHasChanged = 800, // Sent when the process needs to call VRChaperone()->ReloadInfo()
742+
VREvent_ChaperoneDataHasChanged = 800, // this will never happen with the new chaperone system
738743
VREvent_ChaperoneUniverseHasChanged = 801,
739-
VREvent_ChaperoneTempDataHasChanged = 802,
744+
VREvent_ChaperoneTempDataHasChanged = 802, // this will never happen with the new chaperone system
740745
VREvent_ChaperoneSettingsHaveChanged = 803,
741746
VREvent_SeatedZeroPoseReset = 804,
742747
VREvent_ChaperoneFlushCache = 805, // Sent when the process needs to reload any cached data it retrieved from VRChaperone()
748+
VREvent_ChaperoneRoomSetupStarting = 806, // Triggered by CVRChaperoneClient::RoomSetupStarting
749+
VREvent_ChaperoneRoomSetupFinished = 807, // Triggered by CVRChaperoneClient::CommitWorkingCopy
743750

744751
VREvent_AudioSettingsHaveChanged = 820,
745752

@@ -794,6 +801,7 @@ enum EVREventType
794801
VREvent_Compositor_HDCPError = 1414, // data is hdcpError
795802
VREvent_Compositor_ApplicationNotResponding = 1415,
796803
VREvent_Compositor_ApplicationResumed = 1416,
804+
VREvent_Compositor_OutOfVideoMemory = 1417,
797805

798806
VREvent_TrackedCamera_StartVideoStream = 1500,
799807
VREvent_TrackedCamera_StopVideoStream = 1501,
@@ -871,9 +879,9 @@ enum EVRButtonId
871879

872880
k_EButton_Dashboard_Back = k_EButton_Grip,
873881

874-
k_EButton_Knuckles_A = k_EButton_Grip,
875-
k_EButton_Knuckles_B = k_EButton_ApplicationMenu,
876-
k_EButton_Knuckles_JoyStick = k_EButton_Axis3,
882+
k_EButton_IndexController_A = k_EButton_Grip,
883+
k_EButton_IndexController_B = k_EButton_ApplicationMenu,
884+
k_EButton_IndexController_JoyStick = k_EButton_Axis3,
877885

878886
k_EButton_Max = 64
879887
};
@@ -1099,7 +1107,7 @@ enum EShowUIType
10991107
{
11001108
ShowUI_ControllerBinding = 0,
11011109
ShowUI_ManageTrackers = 1,
1102-
ShowUI_QuickStart = 2,
1110+
// ShowUI_QuickStart = 2, // Deprecated
11031111
ShowUI_Pairing = 3,
11041112
ShowUI_Settings = 4,
11051113
};
@@ -1428,7 +1436,7 @@ enum EVRSkeletalTrackingLevel
14281436

14291437
// body part location can be measured directly but with fewer degrees of freedom than the actual body
14301438
// part. Certain body part positions may be unmeasured by the device and estimated from other input data.
1431-
// E.g. Knuckles, gloves that only measure finger curl
1439+
// E.g. Index Controllers, gloves that only measure finger curl
14321440
VRSkeletalTracking_Partial,
14331441

14341442
// Body part location can be measured directly throughout the entire range of motion of the body part.
@@ -1505,6 +1513,7 @@ enum EVRInitError
15051513
VRInitError_Init_VRWebHelperStartupFailed = 141,
15061514
VRInitError_Init_TrackerManagerInitFailed = 142,
15071515
VRInitError_Init_AlreadyRunning = 143,
1516+
VRInitError_Init_FailedForVrMonitor = 144,
15081517

15091518
VRInitError_Driver_Failed = 200,
15101519
VRInitError_Driver_Unknown = 201,
@@ -1519,6 +1528,7 @@ enum EVRInitError
15191528
// VRInitError_Driver_HmdDisplayNotFoundAfterFix = 210, // not needed: here for historic reasons
15201529
VRInitError_Driver_HmdDriverIdOutOfBounds = 211,
15211530
VRInitError_Driver_HmdDisplayMirrored = 212,
1531+
VRInitError_Driver_HmdDisplayNotFoundLaptop = 213,
15221532

15231533
VRInitError_IPC_ServerInitFailed = 300,
15241534
VRInitError_IPC_ConnectFailed = 301,
@@ -2523,6 +2533,7 @@ namespace vr
25232533
static const char * const k_pch_SteamVR_ForceWindows32bitVRMonitor = "forceWindows32BitVRMonitor";
25242534
static const char * const k_pch_SteamVR_DebugInput = "debugInput";
25252535
static const char * const k_pch_SteamVR_DebugInputBinding = "debugInputBinding";
2536+
static const char * const k_pch_SteamVR_DoNotFadeToGrid = "doNotFadeToGrid";
25262537
static const char * const k_pch_SteamVR_InputBindingUIBlock = "inputBindingUI";
25272538
static const char * const k_pch_SteamVR_RenderCameraMode = "renderCameraMode";
25282539
static const char * const k_pch_SteamVR_EnableSharedResourceJournaling = "enableSharedResourceJournaling";
@@ -2551,6 +2562,7 @@ namespace vr
25512562
static const char * const k_pch_Lighthouse_EnableBluetooth_Bool = "enableBluetooth";
25522563
static const char * const k_pch_Lighthouse_PowerManagedBaseStations_String = "PowerManagedBaseStations";
25532564
static const char * const k_pch_Lighthouse_PowerManagedBaseStations2_String = "PowerManagedBaseStations2";
2565+
static const char * const k_pch_Lighthouse_InactivityTimeoutForBaseStations_Int32 = "InactivityTimeoutForBaseStations";
25542566
static const char * const k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback";
25552567
static const char * const k_pch_Lighthouse_NewPairing_Bool = "newPairing";
25562568

@@ -2600,7 +2612,7 @@ namespace vr
26002612
static const char * const k_pch_Perf_AllowTimingStore_Bool = "allowTimingStore";
26012613
static const char * const k_pch_Perf_SaveTimingsOnExit_Bool = "saveTimingsOnExit";
26022614
static const char * const k_pch_Perf_TestData_Float = "perfTestData";
2603-
static const char * const k_pch_Perf_LinuxGPUProfiling_Bool = "linuxGPUProfiling";
2615+
static const char * const k_pch_Perf_GPUProfiling_Bool = "GPUProfiling";
26042616

26052617
//-----------------------------------------------------------------------------
26062618
// collision bounds keys
@@ -2867,6 +2879,11 @@ class IVRChaperoneSetup
28672879

28682880
/** Hides the chaperone data in the working set to preview in the compositor (if it was visible).*/
28692881
virtual void HideWorkingSetPreview() = 0;
2882+
2883+
/** Fire an event that the tracking system can use to know room setup is about to begin. This lets the tracking
2884+
* system make any last minute adjustments that should be incorporated into the new setup. If the user is adjusting
2885+
* live in HMD using a tweak tool, keep in mind that calling this might cause the user to see the room jump. */
2886+
virtual void RoomSetupStarting() = 0;
28702887
};
28712888

28722889
static const char * const IVRChaperoneSetup_Version = "IVRChaperoneSetup_006";
@@ -3201,6 +3218,13 @@ class IVRCompositor
32013218
* If you want to know if motion smoothing actually triggered due to a late frame, check Compositor_FrameTiming
32023219
* m_nReprojectionFlags & VRCompositor_ReprojectionMotion instead. */
32033220
virtual bool IsMotionSmoothingEnabled() = 0;
3221+
3222+
/** Indicates whether or not motion smoothing is supported by the current hardware. */
3223+
virtual bool IsMotionSmoothingSupported() = 0;
3224+
3225+
/** Indicates whether or not the current scene focus app is currently loading. This is inferred from its use of FadeGrid to
3226+
* explicitly fade to the compositor to cover up the fact that it cannot render at a sustained full framerate during this time. */
3227+
virtual bool IsCurrentSceneFocusAppLoading() = 0;
32043228
};
32053229

32063230
static const char * const IVRCompositor_Version = "IVRCompositor_022";
@@ -4296,6 +4320,16 @@ namespace vr
42964320
VRFingerSplay_Count
42974321
};
42984322

4323+
enum EVRSummaryType
4324+
{
4325+
// The skeletal summary data will match the animated bone transforms for the action.
4326+
VRSummaryType_FromAnimation = 0,
4327+
4328+
// The skeletal summary data will include unprocessed data directly from the device when available.
4329+
// This data is generally less latent than the data that is computed from the animations.
4330+
VRSummaryType_FromDevice = 1,
4331+
};
4332+
42994333
enum EVRInputFilterCancelType
43004334
{
43014335
VRInputFilterCancel_Timers = 0,
@@ -4448,8 +4482,13 @@ namespace vr
44484482
* action is something other than analog */
44494483
virtual EVRInputError GetAnalogActionData( VRActionHandle_t action, InputAnalogActionData_t *pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice ) = 0;
44504484

4451-
/** Reads the state of a pose action given its handle. */
4452-
virtual EVRInputError GetPoseActionData( VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, InputPoseActionData_t *pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice ) = 0;
4485+
/** Reads the state of a pose action given its handle for the number of seconds relative to now. This
4486+
* will generally be called with negative times from the fUpdateTime fields in other actions. */
4487+
virtual EVRInputError GetPoseActionDataRelativeToNow( VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, InputPoseActionData_t *pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice ) = 0;
4488+
4489+
/** Reads the state of a pose action given its handle. The returned values will match the values returned
4490+
* by the last call to IVRCompositor::WaitGetPoses(). */
4491+
virtual EVRInputError GetPoseActionDataForNextFrame( VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, InputPoseActionData_t *pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice ) = 0;
44534492

44544493
/** Reads the state of a skeletal action given its handle. */
44554494
virtual EVRInputError GetSkeletalActionData( VRActionHandle_t action, InputSkeletalActionData_t *pActionData, uint32_t unActionDataSize ) = 0;
@@ -4477,7 +4516,7 @@ namespace vr
44774516
virtual EVRInputError GetSkeletalBoneData( VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, VR_ARRAY_COUNT( unTransformArrayCount ) VRBoneTransform_t *pTransformArray, uint32_t unTransformArrayCount ) = 0;
44784517

44794518
/** Reads summary information about the current pose of the skeleton associated with the given action. */
4480-
virtual EVRInputError GetSkeletalSummaryData( VRActionHandle_t action, VRSkeletalSummaryData_t * pSkeletalSummaryData ) = 0;
4519+
virtual EVRInputError GetSkeletalSummaryData( VRActionHandle_t action, EVRSummaryType eSummaryType, VRSkeletalSummaryData_t * pSkeletalSummaryData ) = 0;
44814520

44824521
/** Reads the state of the skeletal bone data in a compressed form that is suitable for
44834522
* sending over the network. The required buffer size will never exceed ( sizeof(VR_BoneTransform_t)*boneCount + 2).
@@ -4514,7 +4553,7 @@ namespace vr
45144553
virtual bool IsUsingLegacyInput() = 0;
45154554
};
45164555

4517-
static const char * const IVRInput_Version = "IVRInput_005";
4556+
static const char * const IVRInput_Version = "IVRInput_006";
45184557

45194558
} // namespace vr
45204559

@@ -4656,8 +4695,8 @@ namespace vr
46564695
VR_INTERFACE bool VR_CALLTYPE VR_IsRuntimeInstalled();
46574696

46584697
/** Returns where the OpenVR runtime is installed. */
4659-
VR_INTERFACE const char *VR_CALLTYPE VR_RuntimePath();
4660-
4698+
VR_INTERFACE bool VR_GetRuntimePath( VR_OUT_STRING() char *pchPathBuffer, uint32_t unBufferSize, uint32_t *punRequiredBufferSize );
4699+
46614700
/** Returns the name of the enum value for an EVRInitError. This function may be called outside of VR_Init()/VR_Shutdown(). */
46624701
VR_INTERFACE const char *VR_CALLTYPE VR_GetVRInitErrorAsSymbol( EVRInitError error );
46634702

0 commit comments

Comments
 (0)