Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ValveSoftware/openvr.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Ludwig <joe@valvesoftware.com>2019-05-24 01:03:27 +0300
committerJoe Ludwig <joe@valvesoftware.com>2019-05-24 01:03:27 +0300
commit02bc73b9bcfe9cc2d2802bd5fdc91f724de8ef10 (patch)
tree17a0fbbefadd4d5e5f404a4af2baec1af445bb0c
parentb72abcebff7e6c6c70ce8ac8f6a09b70d44397e2 (diff)
OpenVR SDK 1.4.18v1.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]
-rwxr-xr-xbin/linux32/libopenvr_api.sobin300692 -> 304708 bytes
-rwxr-xr-xbin/linux32/libopenvr_api.so.dbgbin2137537 -> 2143394 bytes
-rwxr-xr-xbin/linux64/libopenvr_api.sobin303356 -> 303268 bytes
-rwxr-xr-xbin/linux64/libopenvr_api.so.dbgbin2678494 -> 2681390 bytes
-rwxr-xr-xbin/osx32/libopenvr_api.dylibbin155616 -> 155684 bytes
-rw-r--r--bin/osx32/libopenvr_api.dylib.dSYM/Contents/Resources/DWARF/libopenvr_api.dylibbin1175802 -> 1185547 bytes
-rw-r--r--bin/win32/openvr_api.dllbin491808 -> 490784 bytes
-rw-r--r--bin/win32/openvr_api.pdbbin9924608 -> 9900032 bytes
-rw-r--r--bin/win64/openvr_api.dllbin598816 -> 597792 bytes
-rw-r--r--bin/win64/openvr_api.pdbbin9744384 -> 9736192 bytes
-rw-r--r--headers/openvr.h75
-rw-r--r--headers/openvr_api.cs82
-rw-r--r--headers/openvr_api.json60
-rw-r--r--headers/openvr_capi.h38
-rw-r--r--headers/openvr_driver.h36
-rwxr-xr-xlib/linux32/libopenvr_api.sobin2123105 -> 2128796 bytes
-rwxr-xr-xlib/linux64/libopenvr_api.sobin2662908 -> 2665637 bytes
-rw-r--r--lib/win32/openvr_api.libbin6738 -> 6956 bytes
-rw-r--r--lib/win64/openvr_api.libbin6630 -> 6844 bytes
-rw-r--r--samples/bin/hellovr_actions.json4
-rw-r--r--samples/bin/hellovr_bindings_generic.json94
-rw-r--r--samples/bin/linux64/libopenvr_api.sobin303356 -> 303268 bytes
-rw-r--r--samples/bin/osx32/libopenvr_api.dylibbin155616 -> 155684 bytes
-rw-r--r--samples/bin/win32/openvr_api.dllbin491808 -> 490784 bytes
-rw-r--r--samples/bin/win64/openvr_api.dllbin598816 -> 597792 bytes
-rw-r--r--samples/driver_sample/driver_sample.vcxproj9
-rw-r--r--samples/hellovr_dx12/hellovr_dx12.vcxproj4
-rw-r--r--samples/hellovr_opengl/hellovr_opengl.vcxproj4
-rw-r--r--samples/hellovr_opengl/hellovr_opengl_main.cpp2
-rw-r--r--samples/samples_vs2017.sln8
-rw-r--r--src/openvr_api_public.cpp66
-rw-r--r--src/vrcommon/hmderrors_public.cpp3
-rw-r--r--src/vrcommon/pathtools_public.cpp14
-rw-r--r--src/vrcommon/pathtools_public.h4
34 files changed, 424 insertions, 79 deletions
diff --git a/bin/linux32/libopenvr_api.so b/bin/linux32/libopenvr_api.so
index 7c3940b..f0c2bef 100755
--- a/bin/linux32/libopenvr_api.so
+++ b/bin/linux32/libopenvr_api.so
Binary files differ
diff --git a/bin/linux32/libopenvr_api.so.dbg b/bin/linux32/libopenvr_api.so.dbg
index 9520d4c..dc673e5 100755
--- a/bin/linux32/libopenvr_api.so.dbg
+++ b/bin/linux32/libopenvr_api.so.dbg
Binary files differ
diff --git a/bin/linux64/libopenvr_api.so b/bin/linux64/libopenvr_api.so
index 7ee96ea..b5db2f0 100755
--- a/bin/linux64/libopenvr_api.so
+++ b/bin/linux64/libopenvr_api.so
Binary files differ
diff --git a/bin/linux64/libopenvr_api.so.dbg b/bin/linux64/libopenvr_api.so.dbg
index 240ea67..e906635 100755
--- a/bin/linux64/libopenvr_api.so.dbg
+++ b/bin/linux64/libopenvr_api.so.dbg
Binary files differ
diff --git a/bin/osx32/libopenvr_api.dylib b/bin/osx32/libopenvr_api.dylib
index b3c2569..8a2df47 100755
--- a/bin/osx32/libopenvr_api.dylib
+++ b/bin/osx32/libopenvr_api.dylib
Binary files 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 095ca48..2351ff4 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
Binary files differ
diff --git a/bin/win32/openvr_api.dll b/bin/win32/openvr_api.dll
index 66d492b..4f5bdf1 100644
--- a/bin/win32/openvr_api.dll
+++ b/bin/win32/openvr_api.dll
Binary files differ
diff --git a/bin/win32/openvr_api.pdb b/bin/win32/openvr_api.pdb
index 0614e8f..f3429e0 100644
--- a/bin/win32/openvr_api.pdb
+++ b/bin/win32/openvr_api.pdb
Binary files differ
diff --git a/bin/win64/openvr_api.dll b/bin/win64/openvr_api.dll
index 7c9a0b1..3b05986 100644
--- a/bin/win64/openvr_api.dll
+++ b/bin/win64/openvr_api.dll
Binary files differ
diff --git a/bin/win64/openvr_api.pdb b/bin/win64/openvr_api.pdb
index 6b11a0a..3c53691 100644
--- a/bin/win64/openvr_api.pdb
+++ b/bin/win64/openvr_api.pdb
Binary files differ
diff --git a/headers/openvr.h b/headers/openvr.h
index 59d97a1..3585e25 100644
--- a/headers/openvr.h
+++ b/headers/openvr.h
@@ -15,8 +15,8 @@
namespace vr
{
static const uint32_t k_nSteamVRVersionMajor = 1;
- static const uint32_t k_nSteamVRVersionMinor = 3;
- static const uint32_t k_nSteamVRVersionBuild = 20;
+ static const uint32_t k_nSteamVRVersionMinor = 4;
+ static const uint32_t k_nSteamVRVersionBuild = 18;
} // namespace vr
// vrtypes.h
@@ -207,7 +207,7 @@ enum ETrackedControllerRole
TrackedControllerRole_RightHand = 2, // Tracked device associated with the right hand
TrackedControllerRole_OptOut = 3, // Tracked device is opting out of left/right hand selection
TrackedControllerRole_Treadmill = 4, // Tracked device is a treadmill
- TrackedControllerRole_Max = 4
+ TrackedControllerRole_Max = 5
};
@@ -430,6 +430,11 @@ enum ETrackedDeviceProperty
Prop_CameraDistortionCoefficients_Float_Array = 2073, // Prop_NumCameras_Int32-sized array of double[vr::k_unMaxDistortionFunctionParameters] (max size is vr::k_unMaxCameras)
Prop_ExpectedControllerType_String = 2074,
+ Prop_DisplayAvailableFrameRates_Float_Array = 2080, // populated by compositor from actual EDID list when available from GPU driver
+ Prop_DisplaySupportsMultipleFramerates_Bool = 2081, // if this is true but Prop_DisplayAvailableFrameRates_Float_Array is empty, explain to user
+
+ Prop_DashboardLayoutPathName_String = 2090,
+
// Driver requested mura correction properties
Prop_DriverRequestedMuraCorrectionMode_Int32 = 2200,
Prop_DriverRequestedMuraFeather_InnerLeft_Int32 = 2201,
@@ -490,7 +495,7 @@ enum ETrackedDeviceProperty
// Properties that are set internally based on other information provided by drivers
Prop_ControllerType_String = 7000,
- Prop_LegacyInputProfile_String = 7001,
+ //Prop_LegacyInputProfile_String = 7001, // This is no longer used. See "legacy_binding" in the input profile instead.
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
@@ -734,12 +739,14 @@ enum EVREventType
VREvent_DriverRequestedQuit = 704, // The driver has requested that SteamVR shut down
VREvent_RestartRequested = 705, // A driver or other component wants the user to restart SteamVR
- VREvent_ChaperoneDataHasChanged = 800, // Sent when the process needs to call VRChaperone()->ReloadInfo()
+ VREvent_ChaperoneDataHasChanged = 800, // this will never happen with the new chaperone system
VREvent_ChaperoneUniverseHasChanged = 801,
- VREvent_ChaperoneTempDataHasChanged = 802,
+ VREvent_ChaperoneTempDataHasChanged = 802, // this will never happen with the new chaperone system
VREvent_ChaperoneSettingsHaveChanged = 803,
VREvent_SeatedZeroPoseReset = 804,
VREvent_ChaperoneFlushCache = 805, // Sent when the process needs to reload any cached data it retrieved from VRChaperone()
+ VREvent_ChaperoneRoomSetupStarting = 806, // Triggered by CVRChaperoneClient::RoomSetupStarting
+ VREvent_ChaperoneRoomSetupFinished = 807, // Triggered by CVRChaperoneClient::CommitWorkingCopy
VREvent_AudioSettingsHaveChanged = 820,
@@ -794,6 +801,7 @@ enum EVREventType
VREvent_Compositor_HDCPError = 1414, // data is hdcpError
VREvent_Compositor_ApplicationNotResponding = 1415,
VREvent_Compositor_ApplicationResumed = 1416,
+ VREvent_Compositor_OutOfVideoMemory = 1417,
VREvent_TrackedCamera_StartVideoStream = 1500,
VREvent_TrackedCamera_StopVideoStream = 1501,
@@ -871,9 +879,9 @@ enum EVRButtonId
k_EButton_Dashboard_Back = k_EButton_Grip,
- k_EButton_Knuckles_A = k_EButton_Grip,
- k_EButton_Knuckles_B = k_EButton_ApplicationMenu,
- k_EButton_Knuckles_JoyStick = k_EButton_Axis3,
+ k_EButton_IndexController_A = k_EButton_Grip,
+ k_EButton_IndexController_B = k_EButton_ApplicationMenu,
+ k_EButton_IndexController_JoyStick = k_EButton_Axis3,
k_EButton_Max = 64
};
@@ -1099,7 +1107,7 @@ enum EShowUIType
{
ShowUI_ControllerBinding = 0,
ShowUI_ManageTrackers = 1,
- ShowUI_QuickStart = 2,
+ // ShowUI_QuickStart = 2, // Deprecated
ShowUI_Pairing = 3,
ShowUI_Settings = 4,
};
@@ -1428,7 +1436,7 @@ enum EVRSkeletalTrackingLevel
// body part location can be measured directly but with fewer degrees of freedom than the actual body
// part. Certain body part positions may be unmeasured by the device and estimated from other input data.
- // E.g. Knuckles, gloves that only measure finger curl
+ // E.g. Index Controllers, gloves that only measure finger curl
VRSkeletalTracking_Partial,
// Body part location can be measured directly throughout the entire range of motion of the body part.
@@ -1505,6 +1513,7 @@ enum EVRInitError
VRInitError_Init_VRWebHelperStartupFailed = 141,
VRInitError_Init_TrackerManagerInitFailed = 142,
VRInitError_Init_AlreadyRunning = 143,
+ VRInitError_Init_FailedForVrMonitor = 144,
VRInitError_Driver_Failed = 200,
VRInitError_Driver_Unknown = 201,
@@ -1519,6 +1528,7 @@ enum EVRInitError
// VRInitError_Driver_HmdDisplayNotFoundAfterFix = 210, // not needed: here for historic reasons
VRInitError_Driver_HmdDriverIdOutOfBounds = 211,
VRInitError_Driver_HmdDisplayMirrored = 212,
+ VRInitError_Driver_HmdDisplayNotFoundLaptop = 213,
VRInitError_IPC_ServerInitFailed = 300,
VRInitError_IPC_ConnectFailed = 301,
@@ -2523,6 +2533,7 @@ namespace vr
static const char * const k_pch_SteamVR_ForceWindows32bitVRMonitor = "forceWindows32BitVRMonitor";
static const char * const k_pch_SteamVR_DebugInput = "debugInput";
static const char * const k_pch_SteamVR_DebugInputBinding = "debugInputBinding";
+ static const char * const k_pch_SteamVR_DoNotFadeToGrid = "doNotFadeToGrid";
static const char * const k_pch_SteamVR_InputBindingUIBlock = "inputBindingUI";
static const char * const k_pch_SteamVR_RenderCameraMode = "renderCameraMode";
static const char * const k_pch_SteamVR_EnableSharedResourceJournaling = "enableSharedResourceJournaling";
@@ -2551,6 +2562,7 @@ namespace vr
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_PowerManagedBaseStations2_String = "PowerManagedBaseStations2";
+ static const char * const k_pch_Lighthouse_InactivityTimeoutForBaseStations_Int32 = "InactivityTimeoutForBaseStations";
static const char * const k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback";
static const char * const k_pch_Lighthouse_NewPairing_Bool = "newPairing";
@@ -2600,7 +2612,7 @@ namespace vr
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";
- static const char * const k_pch_Perf_LinuxGPUProfiling_Bool = "linuxGPUProfiling";
+ static const char * const k_pch_Perf_GPUProfiling_Bool = "GPUProfiling";
//-----------------------------------------------------------------------------
// collision bounds keys
@@ -2867,6 +2879,11 @@ public:
/** Hides the chaperone data in the working set to preview in the compositor (if it was visible).*/
virtual void HideWorkingSetPreview() = 0;
+
+ /** Fire 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. */
+ virtual void RoomSetupStarting() = 0;
};
static const char * const IVRChaperoneSetup_Version = "IVRChaperoneSetup_006";
@@ -3201,6 +3218,13 @@ public:
* If you want to know if motion smoothing actually triggered due to a late frame, check Compositor_FrameTiming
* m_nReprojectionFlags & VRCompositor_ReprojectionMotion instead. */
virtual bool IsMotionSmoothingEnabled() = 0;
+
+ /** Indicates whether or not motion smoothing is supported by the current hardware. */
+ virtual bool IsMotionSmoothingSupported() = 0;
+
+ /** Indicates whether or not the current scene focus app is currently loading. This 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. */
+ virtual bool IsCurrentSceneFocusAppLoading() = 0;
};
static const char * const IVRCompositor_Version = "IVRCompositor_022";
@@ -4296,6 +4320,16 @@ namespace vr
VRFingerSplay_Count
};
+ enum EVRSummaryType
+ {
+ // The skeletal summary data will match the animated bone transforms for the action.
+ VRSummaryType_FromAnimation = 0,
+
+ // The skeletal summary data will include unprocessed data directly from the device when available.
+ // This data is generally less latent than the data that is computed from the animations.
+ VRSummaryType_FromDevice = 1,
+ };
+
enum EVRInputFilterCancelType
{
VRInputFilterCancel_Timers = 0,
@@ -4448,8 +4482,13 @@ namespace vr
* action is something other than analog */
virtual EVRInputError GetAnalogActionData( VRActionHandle_t action, InputAnalogActionData_t *pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice ) = 0;
- /** Reads the state of a pose action given its handle. */
- virtual EVRInputError GetPoseActionData( VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, InputPoseActionData_t *pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice ) = 0;
+ /** Reads the state of a pose action given its handle for the number of seconds relative to now. This
+ * will generally be called with negative times from the fUpdateTime fields in other actions. */
+ virtual EVRInputError GetPoseActionDataRelativeToNow( VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, InputPoseActionData_t *pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice ) = 0;
+
+ /** Reads the state of a pose action given its handle. The returned values will match the values returned
+ * by the last call to IVRCompositor::WaitGetPoses(). */
+ virtual EVRInputError GetPoseActionDataForNextFrame( VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, InputPoseActionData_t *pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice ) = 0;
/** Reads the state of a skeletal action given its handle. */
virtual EVRInputError GetSkeletalActionData( VRActionHandle_t action, InputSkeletalActionData_t *pActionData, uint32_t unActionDataSize ) = 0;
@@ -4477,7 +4516,7 @@ namespace vr
virtual EVRInputError GetSkeletalBoneData( VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, VR_ARRAY_COUNT( unTransformArrayCount ) VRBoneTransform_t *pTransformArray, uint32_t unTransformArrayCount ) = 0;
/** Reads summary information about the current pose of the skeleton associated with the given action. */
- virtual EVRInputError GetSkeletalSummaryData( VRActionHandle_t action, VRSkeletalSummaryData_t * pSkeletalSummaryData ) = 0;
+ virtual EVRInputError GetSkeletalSummaryData( VRActionHandle_t action, EVRSummaryType eSummaryType, VRSkeletalSummaryData_t * pSkeletalSummaryData ) = 0;
/** Reads the state of the skeletal bone data in a compressed form that is suitable for
* sending over the network. The required buffer size will never exceed ( sizeof(VR_BoneTransform_t)*boneCount + 2).
@@ -4514,7 +4553,7 @@ namespace vr
virtual bool IsUsingLegacyInput() = 0;
};
- static const char * const IVRInput_Version = "IVRInput_005";
+ static const char * const IVRInput_Version = "IVRInput_006";
} // namespace vr
@@ -4656,8 +4695,8 @@ namespace vr
VR_INTERFACE bool VR_CALLTYPE VR_IsRuntimeInstalled();
/** Returns where the OpenVR runtime is installed. */
- VR_INTERFACE const char *VR_CALLTYPE VR_RuntimePath();
-
+ VR_INTERFACE bool VR_GetRuntimePath( VR_OUT_STRING() char *pchPathBuffer, uint32_t unBufferSize, uint32_t *punRequiredBufferSize );
+
/** Returns the name of the enum value for an EVRInitError. This function may be called outside of VR_Init()/VR_Shutdown(). */
VR_INTERFACE const char *VR_CALLTYPE VR_GetVRInitErrorAsSymbol( EVRInitError error );
diff --git a/headers/openvr_api.cs b/headers/openvr_api.cs
index 3f8267b..d593777 100644
--- a/headers/openvr_api.cs
+++ b/headers/openvr_api.cs
@@ -640,6 +640,11 @@ public struct IVRChaperoneSetup
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _HideWorkingSetPreview HideWorkingSetPreview;
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate void _RoomSetupStarting();
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _RoomSetupStarting RoomSetupStarting;
+
}
[StructLayout(LayoutKind.Sequential)]
@@ -865,6 +870,16 @@ public struct IVRCompositor
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _IsMotionSmoothingEnabled IsMotionSmoothingEnabled;
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate bool _IsMotionSmoothingSupported();
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _IsMotionSmoothingSupported IsMotionSmoothingSupported;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate bool _IsCurrentSceneFocusAppLoading();
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _IsCurrentSceneFocusAppLoading IsCurrentSceneFocusAppLoading;
+
}
[StructLayout(LayoutKind.Sequential)]
@@ -1576,9 +1591,14 @@ public struct IVRInput
internal _GetAnalogActionData GetAnalogActionData;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate EVRInputError _GetPoseActionData(ulong action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, ref InputPoseActionData_t pActionData, uint unActionDataSize, ulong ulRestrictToDevice);
+ internal delegate EVRInputError _GetPoseActionDataRelativeToNow(ulong action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, ref InputPoseActionData_t pActionData, uint unActionDataSize, ulong ulRestrictToDevice);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _GetPoseActionDataRelativeToNow GetPoseActionDataRelativeToNow;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVRInputError _GetPoseActionDataForNextFrame(ulong action, ETrackingUniverseOrigin eOrigin, ref InputPoseActionData_t pActionData, uint unActionDataSize, ulong ulRestrictToDevice);
[MarshalAs(UnmanagedType.FunctionPtr)]
- internal _GetPoseActionData GetPoseActionData;
+ internal _GetPoseActionDataForNextFrame GetPoseActionDataForNextFrame;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
internal delegate EVRInputError _GetSkeletalActionData(ulong action, ref InputSkeletalActionData_t pActionData, uint unActionDataSize);
@@ -1616,7 +1636,7 @@ public struct IVRInput
internal _GetSkeletalBoneData GetSkeletalBoneData;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate EVRInputError _GetSkeletalSummaryData(ulong action, ref VRSkeletalSummaryData_t pSkeletalSummaryData);
+ internal delegate EVRInputError _GetSkeletalSummaryData(ulong action, EVRSummaryType eSummaryType, ref VRSkeletalSummaryData_t pSkeletalSummaryData);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _GetSkeletalSummaryData GetSkeletalSummaryData;
@@ -2476,6 +2496,10 @@ public class CVRChaperoneSetup
{
FnTable.HideWorkingSetPreview();
}
+ public void RoomSetupStarting()
+ {
+ FnTable.RoomSetupStarting();
+ }
}
@@ -2687,6 +2711,16 @@ public class CVRCompositor
bool result = FnTable.IsMotionSmoothingEnabled();
return result;
}
+ public bool IsMotionSmoothingSupported()
+ {
+ bool result = FnTable.IsMotionSmoothingSupported();
+ return result;
+ }
+ public bool IsCurrentSceneFocusAppLoading()
+ {
+ bool result = FnTable.IsCurrentSceneFocusAppLoading();
+ return result;
+ }
}
@@ -3507,9 +3541,14 @@ public class CVRInput
EVRInputError result = FnTable.GetAnalogActionData(action,ref pActionData,unActionDataSize,ulRestrictToDevice);
return result;
}
- public EVRInputError GetPoseActionData(ulong action,ETrackingUniverseOrigin eOrigin,float fPredictedSecondsFromNow,ref InputPoseActionData_t pActionData,uint unActionDataSize,ulong ulRestrictToDevice)
+ public EVRInputError GetPoseActionDataRelativeToNow(ulong action,ETrackingUniverseOrigin eOrigin,float fPredictedSecondsFromNow,ref InputPoseActionData_t pActionData,uint unActionDataSize,ulong ulRestrictToDevice)
+ {
+ EVRInputError result = FnTable.GetPoseActionDataRelativeToNow(action,eOrigin,fPredictedSecondsFromNow,ref pActionData,unActionDataSize,ulRestrictToDevice);
+ return result;
+ }
+ public EVRInputError GetPoseActionDataForNextFrame(ulong action,ETrackingUniverseOrigin eOrigin,ref InputPoseActionData_t pActionData,uint unActionDataSize,ulong ulRestrictToDevice)
{
- EVRInputError result = FnTable.GetPoseActionData(action,eOrigin,fPredictedSecondsFromNow,ref pActionData,unActionDataSize,ulRestrictToDevice);
+ EVRInputError result = FnTable.GetPoseActionDataForNextFrame(action,eOrigin,ref pActionData,unActionDataSize,ulRestrictToDevice);
return result;
}
public EVRInputError GetSkeletalActionData(ulong action,ref InputSkeletalActionData_t pActionData,uint unActionDataSize)
@@ -3548,9 +3587,9 @@ public class CVRInput
EVRInputError result = FnTable.GetSkeletalBoneData(action,eTransformSpace,eMotionRange,pTransformArray,(uint) pTransformArray.Length);
return result;
}
- public EVRInputError GetSkeletalSummaryData(ulong action,ref VRSkeletalSummaryData_t pSkeletalSummaryData)
+ public EVRInputError GetSkeletalSummaryData(ulong action,EVRSummaryType eSummaryType,ref VRSkeletalSummaryData_t pSkeletalSummaryData)
{
- EVRInputError result = FnTable.GetSkeletalSummaryData(action,ref pSkeletalSummaryData);
+ EVRInputError result = FnTable.GetSkeletalSummaryData(action,eSummaryType,ref pSkeletalSummaryData);
return result;
}
public EVRInputError GetSkeletalBoneDataCompressed(ulong action,EVRSkeletalMotionRange eMotionRange,IntPtr pvCompressedData,uint unCompressedSize,ref uint punRequiredCompressedSize)
@@ -3750,7 +3789,7 @@ public enum ETrackedControllerRole
RightHand = 2,
OptOut = 3,
Treadmill = 4,
- Max = 4,
+ Max = 5,
}
public enum ETrackingUniverseOrigin
{
@@ -3887,6 +3926,9 @@ public enum ETrackedDeviceProperty
Prop_CameraDistortionFunction_Int32_Array = 2072,
Prop_CameraDistortionCoefficients_Float_Array = 2073,
Prop_ExpectedControllerType_String = 2074,
+ Prop_DisplayAvailableFrameRates_Float_Array = 2080,
+ Prop_DisplaySupportsMultipleFramerates_Bool = 2081,
+ Prop_DashboardLayoutPathName_String = 2090,
Prop_DriverRequestedMuraCorrectionMode_Int32 = 2200,
Prop_DriverRequestedMuraFeather_InnerLeft_Int32 = 2201,
Prop_DriverRequestedMuraFeather_InnerRight_Int32 = 2202,
@@ -3934,7 +3976,6 @@ public enum ETrackedDeviceProperty
Prop_HasVirtualDisplayComponent_Bool = 6006,
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,
@@ -4074,6 +4115,8 @@ public enum EVREventType
VREvent_ChaperoneSettingsHaveChanged = 803,
VREvent_SeatedZeroPoseReset = 804,
VREvent_ChaperoneFlushCache = 805,
+ VREvent_ChaperoneRoomSetupStarting = 806,
+ VREvent_ChaperoneRoomSetupFinished = 807,
VREvent_AudioSettingsHaveChanged = 820,
VREvent_BackgroundSettingHasChanged = 850,
VREvent_CameraSettingsHaveChanged = 851,
@@ -4119,6 +4162,7 @@ public enum EVREventType
VREvent_Compositor_HDCPError = 1414,
VREvent_Compositor_ApplicationNotResponding = 1415,
VREvent_Compositor_ApplicationResumed = 1416,
+ VREvent_Compositor_OutOfVideoMemory = 1417,
VREvent_TrackedCamera_StartVideoStream = 1500,
VREvent_TrackedCamera_StopVideoStream = 1501,
VREvent_TrackedCamera_PauseVideoStream = 1502,
@@ -4172,9 +4216,9 @@ public enum EVRButtonId
k_EButton_SteamVR_Touchpad = 32,
k_EButton_SteamVR_Trigger = 33,
k_EButton_Dashboard_Back = 2,
- k_EButton_Knuckles_A = 2,
- k_EButton_Knuckles_B = 1,
- k_EButton_Knuckles_JoyStick = 35,
+ k_EButton_IndexController_A = 2,
+ k_EButton_IndexController_B = 1,
+ k_EButton_IndexController_JoyStick = 35,
k_EButton_Max = 64,
}
public enum EVRMouseButton
@@ -4192,7 +4236,6 @@ public enum EShowUIType
{
ShowUI_ControllerBinding = 0,
ShowUI_ManageTrackers = 1,
- ShowUI_QuickStart = 2,
ShowUI_Pairing = 3,
ShowUI_Settings = 4,
}
@@ -4385,6 +4428,7 @@ public enum EVRInitError
Init_VRWebHelperStartupFailed = 141,
Init_TrackerManagerInitFailed = 142,
Init_AlreadyRunning = 143,
+ Init_FailedForVrMonitor = 144,
Driver_Failed = 200,
Driver_Unknown = 201,
Driver_HmdUnknown = 202,
@@ -4397,6 +4441,7 @@ public enum EVRInitError
Driver_TrackedDeviceInterfaceUnknown = 209,
Driver_HmdDriverIdOutOfBounds = 211,
Driver_HmdDisplayMirrored = 212,
+ Driver_HmdDisplayNotFoundLaptop = 213,
IPC_ServerInitFailed = 300,
IPC_ConnectFailed = 301,
IPC_SharedStateInitFailed = 302,
@@ -4831,6 +4876,11 @@ public enum EVRFingerSplay
Ring_Pinky = 3,
Count = 4,
}
+public enum EVRSummaryType
+{
+ FromAnimation = 0,
+ FromDevice = 1,
+}
public enum EVRInputFilterCancelType
{
VRInputFilterCancel_Timers = 0,
@@ -5952,6 +6002,7 @@ public class OpenVR
public const string k_pch_SteamVR_ForceWindows32bitVRMonitor = "forceWindows32BitVRMonitor";
public const string k_pch_SteamVR_DebugInput = "debugInput";
public const string k_pch_SteamVR_DebugInputBinding = "debugInputBinding";
+ public const string k_pch_SteamVR_DoNotFadeToGrid = "doNotFadeToGrid";
public const string k_pch_SteamVR_InputBindingUIBlock = "inputBindingUI";
public const string k_pch_SteamVR_RenderCameraMode = "renderCameraMode";
public const string k_pch_SteamVR_EnableSharedResourceJournaling = "enableSharedResourceJournaling";
@@ -5974,6 +6025,7 @@ public class OpenVR
public const string k_pch_Lighthouse_EnableBluetooth_Bool = "enableBluetooth";
public const string k_pch_Lighthouse_PowerManagedBaseStations_String = "PowerManagedBaseStations";
public const string k_pch_Lighthouse_PowerManagedBaseStations2_String = "PowerManagedBaseStations2";
+ public const string k_pch_Lighthouse_InactivityTimeoutForBaseStations_Int32 = "InactivityTimeoutForBaseStations";
public const string k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback";
public const string k_pch_Lighthouse_NewPairing_Bool = "newPairing";
public const string k_pch_Null_Section = "driver_null";
@@ -6008,7 +6060,7 @@ public class OpenVR
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";
- public const string k_pch_Perf_LinuxGPUProfiling_Bool = "linuxGPUProfiling";
+ public const string k_pch_Perf_GPUProfiling_Bool = "GPUProfiling";
public const string k_pch_CollisionBounds_Section = "collisionBounds";
public const string k_pch_CollisionBounds_Style_Int32 = "CollisionBoundsStyle";
public const string k_pch_CollisionBounds_GroundPerimeterOn_Bool = "CollisionBoundsGroundPerimeterOn";
@@ -6076,7 +6128,7 @@ public class OpenVR
public const uint k_unMaxActionSetNameLength = 64;
public const uint k_unMaxActionOriginCount = 16;
public const uint k_unMaxBoneNameLength = 32;
- public const string IVRInput_Version = "IVRInput_005";
+ public const string IVRInput_Version = "IVRInput_006";
public const ulong k_ulInvalidIOBufferHandle = 0;
public const string IVRIOBuffer_Version = "IVRIOBuffer_002";
public const uint k_ulInvalidSpatialAnchorHandle = 0;
diff --git a/headers/openvr_api.json b/headers/openvr_api.json
index 508e434..6dc415f 100644
--- a/headers/openvr_api.json
+++ b/headers/openvr_api.json
@@ -82,7 +82,7 @@
,{"name": "TrackedControllerRole_RightHand","value": "2"}
,{"name": "TrackedControllerRole_OptOut","value": "3"}
,{"name": "TrackedControllerRole_Treadmill","value": "4"}
- ,{"name": "TrackedControllerRole_Max","value": "4"}
+ ,{"name": "TrackedControllerRole_Max","value": "5"}
]}
, {"enumname": "vr::ETrackingUniverseOrigin","values": [
{"name": "TrackingUniverseSeated","value": "0"}
@@ -216,6 +216,9 @@
,{"name": "Prop_CameraDistortionFunction_Int32_Array","value": "2072"}
,{"name": "Prop_CameraDistortionCoefficients_Float_Array","value": "2073"}
,{"name": "Prop_ExpectedControllerType_String","value": "2074"}
+ ,{"name": "Prop_DisplayAvailableFrameRates_Float_Array","value": "2080"}
+ ,{"name": "Prop_DisplaySupportsMultipleFramerates_Bool","value": "2081"}
+ ,{"name": "Prop_DashboardLayoutPathName_String","value": "2090"}
,{"name": "Prop_DriverRequestedMuraCorrectionMode_Int32","value": "2200"}
,{"name": "Prop_DriverRequestedMuraFeather_InnerLeft_Int32","value": "2201"}
,{"name": "Prop_DriverRequestedMuraFeather_InnerRight_Int32","value": "2202"}
@@ -263,7 +266,6 @@
,{"name": "Prop_HasVirtualDisplayComponent_Bool","value": "6006"}
,{"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"}
@@ -399,6 +401,8 @@
,{"name": "VREvent_ChaperoneSettingsHaveChanged","value": "803"}
,{"name": "VREvent_SeatedZeroPoseReset","value": "804"}
,{"name": "VREvent_ChaperoneFlushCache","value": "805"}
+ ,{"name": "VREvent_ChaperoneRoomSetupStarting","value": "806"}
+ ,{"name": "VREvent_ChaperoneRoomSetupFinished","value": "807"}
,{"name": "VREvent_AudioSettingsHaveChanged","value": "820"}
,{"name": "VREvent_BackgroundSettingHasChanged","value": "850"}
,{"name": "VREvent_CameraSettingsHaveChanged","value": "851"}
@@ -444,6 +448,7 @@
,{"name": "VREvent_Compositor_HDCPError","value": "1414"}
,{"name": "VREvent_Compositor_ApplicationNotResponding","value": "1415"}
,{"name": "VREvent_Compositor_ApplicationResumed","value": "1416"}
+ ,{"name": "VREvent_Compositor_OutOfVideoMemory","value": "1417"}
,{"name": "VREvent_TrackedCamera_StartVideoStream","value": "1500"}
,{"name": "VREvent_TrackedCamera_StopVideoStream","value": "1501"}
,{"name": "VREvent_TrackedCamera_PauseVideoStream","value": "1502"}
@@ -495,9 +500,9 @@
,{"name": "k_EButton_SteamVR_Touchpad","value": "32"}
,{"name": "k_EButton_SteamVR_Trigger","value": "33"}
,{"name": "k_EButton_Dashboard_Back","value": "2"}
- ,{"name": "k_EButton_Knuckles_A","value": "2"}
- ,{"name": "k_EButton_Knuckles_B","value": "1"}
- ,{"name": "k_EButton_Knuckles_JoyStick","value": "35"}
+ ,{"name": "k_EButton_IndexController_A","value": "2"}
+ ,{"name": "k_EButton_IndexController_B","value": "1"}
+ ,{"name": "k_EButton_IndexController_JoyStick","value": "35"}
,{"name": "k_EButton_Max","value": "64"}
]}
, {"enumname": "vr::EVRMouseButton","values": [
@@ -512,7 +517,6 @@
, {"enumname": "vr::EShowUIType","values": [
{"name": "ShowUI_ControllerBinding","value": "0"}
,{"name": "ShowUI_ManageTrackers","value": "1"}
- ,{"name": "ShowUI_QuickStart","value": "2"}
,{"name": "ShowUI_Pairing","value": "3"}
,{"name": "ShowUI_Settings","value": "4"}
]}
@@ -691,6 +695,7 @@
,{"name": "VRInitError_Init_VRWebHelperStartupFailed","value": "141"}
,{"name": "VRInitError_Init_TrackerManagerInitFailed","value": "142"}
,{"name": "VRInitError_Init_AlreadyRunning","value": "143"}
+ ,{"name": "VRInitError_Init_FailedForVrMonitor","value": "144"}
,{"name": "VRInitError_Driver_Failed","value": "200"}
,{"name": "VRInitError_Driver_Unknown","value": "201"}
,{"name": "VRInitError_Driver_HmdUnknown","value": "202"}
@@ -703,6 +708,7 @@
,{"name": "VRInitError_Driver_TrackedDeviceInterfaceUnknown","value": "209"}
,{"name": "VRInitError_Driver_HmdDriverIdOutOfBounds","value": "211"}
,{"name": "VRInitError_Driver_HmdDisplayMirrored","value": "212"}
+ ,{"name": "VRInitError_Driver_HmdDisplayNotFoundLaptop","value": "213"}
,{"name": "VRInitError_IPC_ServerInitFailed","value": "300"}
,{"name": "VRInitError_IPC_ConnectFailed","value": "301"}
,{"name": "VRInitError_IPC_SharedStateInitFailed","value": "302"}
@@ -1102,6 +1108,10 @@
,{"name": "VRFingerSplay_Ring_Pinky","value": "3"}
,{"name": "VRFingerSplay_Count","value": "4"}
]}
+, {"enumname": "vr::EVRSummaryType","values": [
+ {"name": "VRSummaryType_FromAnimation","value": "0"}
+ ,{"name": "VRSummaryType_FromDevice","value": "1"}
+]}
, {"enumname": "vr::EVRInputFilterCancelType","values": [
{"name": "VRInputFilterCancel_Timers","value": "0"}
,{"name": "VRInputFilterCancel_Momentum","value": "1"}
@@ -1354,6 +1364,8 @@
,{
"constname": "k_pch_SteamVR_DebugInputBinding","consttype": "const char *const", "constval": "debugInputBinding"}
,{
+ "constname": "k_pch_SteamVR_DoNotFadeToGrid","consttype": "const char *const", "constval": "doNotFadeToGrid"}
+,{
"constname": "k_pch_SteamVR_InputBindingUIBlock","consttype": "const char *const", "constval": "inputBindingUI"}
,{
"constname": "k_pch_SteamVR_RenderCameraMode","consttype": "const char *const", "constval": "renderCameraMode"}
@@ -1398,6 +1410,8 @@
,{
"constname": "k_pch_Lighthouse_PowerManagedBaseStations2_String","consttype": "const char *const", "constval": "PowerManagedBaseStations2"}
,{
+ "constname": "k_pch_Lighthouse_InactivityTimeoutForBaseStations_Int32","consttype": "const char *const", "constval": "InactivityTimeoutForBaseStations"}
+,{
"constname": "k_pch_Lighthouse_EnableImuFallback_Bool","consttype": "const char *const", "constval": "enableImuFallback"}
,{
"constname": "k_pch_Lighthouse_NewPairing_Bool","consttype": "const char *const", "constval": "newPairing"}
@@ -1466,7 +1480,7 @@
,{
"constname": "k_pch_Perf_TestData_Float","consttype": "const char *const", "constval": "perfTestData"}
,{
- "constname": "k_pch_Perf_LinuxGPUProfiling_Bool","consttype": "const char *const", "constval": "linuxGPUProfiling"}
+ "constname": "k_pch_Perf_GPUProfiling_Bool","consttype": "const char *const", "constval": "GPUProfiling"}
,{
"constname": "k_pch_CollisionBounds_Section","consttype": "const char *const", "constval": "collisionBounds"}
,{
@@ -1602,7 +1616,7 @@
,{
"constname": "k_unMaxBoneNameLength","consttype": "const uint32_t", "constval": "32"}
,{
- "constname": "IVRInput_Version","consttype": "const char *const", "constval": "IVRInput_005"}
+ "constname": "IVRInput_Version","consttype": "const char *const", "constval": "IVRInput_006"}
,{
"constname": "k_ulInvalidIOBufferHandle","consttype": "const uint64_t", "constval": "0"}
,{
@@ -3073,6 +3087,11 @@
"returntype": "void"
}
,{
+ "classname": "vr::IVRChaperoneSetup",
+ "methodname": "RoomSetupStarting",
+ "returntype": "void"
+}
+,{
"classname": "vr::IVRCompositor",
"methodname": "SetTrackingSpace",
"returntype": "void",
@@ -3391,6 +3410,16 @@
"returntype": "bool"
}
,{
+ "classname": "vr::IVRCompositor",
+ "methodname": "IsMotionSmoothingSupported",
+ "returntype": "bool"
+}
+,{
+ "classname": "vr::IVRCompositor",
+ "methodname": "IsCurrentSceneFocusAppLoading",
+ "returntype": "bool"
+}
+,{
"classname": "vr::IVROverlay",
"methodname": "FindOverlay",
"returntype": "vr::EVROverlayError",
@@ -4666,7 +4695,7 @@
}
,{
"classname": "vr::IVRInput",
- "methodname": "GetPoseActionData",
+ "methodname": "GetPoseActionDataRelativeToNow",
"returntype": "vr::EVRInputError",
"params": [
{ "paramname": "action" ,"paramtype": "vr::VRActionHandle_t"},
@@ -4679,6 +4708,18 @@
}
,{
"classname": "vr::IVRInput",
+ "methodname": "GetPoseActionDataForNextFrame",
+ "returntype": "vr::EVRInputError",
+ "params": [
+{ "paramname": "action" ,"paramtype": "vr::VRActionHandle_t"},
+{ "paramname": "eOrigin" ,"paramtype": "vr::ETrackingUniverseOrigin"},
+{ "paramname": "pActionData" ,"paramtype": "struct vr::InputPoseActionData_t *"},
+{ "paramname": "unActionDataSize" ,"paramtype": "uint32_t"},
+{ "paramname": "ulRestrictToDevice" ,"paramtype": "vr::VRInputValueHandle_t"}
+ ]
+}
+,{
+ "classname": "vr::IVRInput",
"methodname": "GetSkeletalActionData",
"returntype": "vr::EVRInputError",
"params": [
@@ -4756,6 +4797,7 @@
"returntype": "vr::EVRInputError",
"params": [
{ "paramname": "action" ,"paramtype": "vr::VRActionHandle_t"},
+{ "paramname": "eSummaryType" ,"paramtype": "vr::EVRSummaryType"},
{ "paramname": "pSkeletalSummaryData" ,"paramtype": "struct vr::VRSkeletalSummaryData_t *"}
]
}
diff --git a/headers/openvr_capi.h b/headers/openvr_capi.h
index 03724dd..6cb9c44 100644
--- a/headers/openvr_capi.h
+++ b/headers/openvr_capi.h
@@ -176,6 +176,7 @@ static const char * k_pch_SteamVR_HaveStartedTutorialForNativeChaperoneDriver_Bo
static const char * k_pch_SteamVR_ForceWindows32bitVRMonitor = "forceWindows32BitVRMonitor";
static const char * k_pch_SteamVR_DebugInput = "debugInput";
static const char * k_pch_SteamVR_DebugInputBinding = "debugInputBinding";
+static const char * k_pch_SteamVR_DoNotFadeToGrid = "doNotFadeToGrid";
static const char * k_pch_SteamVR_InputBindingUIBlock = "inputBindingUI";
static const char * k_pch_SteamVR_RenderCameraMode = "renderCameraMode";
static const char * k_pch_SteamVR_EnableSharedResourceJournaling = "enableSharedResourceJournaling";
@@ -198,6 +199,7 @@ 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_PowerManagedBaseStations2_String = "PowerManagedBaseStations2";
+static const char * k_pch_Lighthouse_InactivityTimeoutForBaseStations_Int32 = "InactivityTimeoutForBaseStations";
static const char * k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback";
static const char * k_pch_Lighthouse_NewPairing_Bool = "newPairing";
static const char * k_pch_Null_Section = "driver_null";
@@ -232,7 +234,7 @@ 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";
-static const char * k_pch_Perf_LinuxGPUProfiling_Bool = "linuxGPUProfiling";
+static const char * k_pch_Perf_GPUProfiling_Bool = "GPUProfiling";
static const char * k_pch_CollisionBounds_Section = "collisionBounds";
static const char * k_pch_CollisionBounds_Style_Int32 = "CollisionBoundsStyle";
static const char * k_pch_CollisionBounds_GroundPerimeterOn_Bool = "CollisionBoundsGroundPerimeterOn";
@@ -300,7 +302,7 @@ static const unsigned int k_unMaxActionNameLength = 64;
static const unsigned int k_unMaxActionSetNameLength = 64;
static const unsigned int k_unMaxActionOriginCount = 16;
static const unsigned int k_unMaxBoneNameLength = 32;
-static const char * IVRInput_Version = "IVRInput_005";
+static const char * IVRInput_Version = "IVRInput_006";
static const unsigned long k_ulInvalidIOBufferHandle = 0;
static const char * IVRIOBuffer_Version = "IVRIOBuffer_002";
static const unsigned int k_ulInvalidSpatialAnchorHandle = 0;
@@ -361,7 +363,7 @@ typedef enum ETrackedControllerRole
ETrackedControllerRole_TrackedControllerRole_RightHand = 2,
ETrackedControllerRole_TrackedControllerRole_OptOut = 3,
ETrackedControllerRole_TrackedControllerRole_Treadmill = 4,
- ETrackedControllerRole_TrackedControllerRole_Max = 4,
+ ETrackedControllerRole_TrackedControllerRole_Max = 5,
} ETrackedControllerRole;
typedef enum ETrackingUniverseOrigin
@@ -501,6 +503,9 @@ typedef enum ETrackedDeviceProperty
ETrackedDeviceProperty_Prop_CameraDistortionFunction_Int32_Array = 2072,
ETrackedDeviceProperty_Prop_CameraDistortionCoefficients_Float_Array = 2073,
ETrackedDeviceProperty_Prop_ExpectedControllerType_String = 2074,
+ ETrackedDeviceProperty_Prop_DisplayAvailableFrameRates_Float_Array = 2080,
+ ETrackedDeviceProperty_Prop_DisplaySupportsMultipleFramerates_Bool = 2081,
+ ETrackedDeviceProperty_Prop_DashboardLayoutPathName_String = 2090,
ETrackedDeviceProperty_Prop_DriverRequestedMuraCorrectionMode_Int32 = 2200,
ETrackedDeviceProperty_Prop_DriverRequestedMuraFeather_InnerLeft_Int32 = 2201,
ETrackedDeviceProperty_Prop_DriverRequestedMuraFeather_InnerRight_Int32 = 2202,
@@ -548,7 +553,6 @@ typedef enum ETrackedDeviceProperty
ETrackedDeviceProperty_Prop_HasVirtualDisplayComponent_Bool = 6006,
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,
@@ -692,6 +696,8 @@ typedef enum EVREventType
EVREventType_VREvent_ChaperoneSettingsHaveChanged = 803,
EVREventType_VREvent_SeatedZeroPoseReset = 804,
EVREventType_VREvent_ChaperoneFlushCache = 805,
+ EVREventType_VREvent_ChaperoneRoomSetupStarting = 806,
+ EVREventType_VREvent_ChaperoneRoomSetupFinished = 807,
EVREventType_VREvent_AudioSettingsHaveChanged = 820,
EVREventType_VREvent_BackgroundSettingHasChanged = 850,
EVREventType_VREvent_CameraSettingsHaveChanged = 851,
@@ -737,6 +743,7 @@ typedef enum EVREventType
EVREventType_VREvent_Compositor_HDCPError = 1414,
EVREventType_VREvent_Compositor_ApplicationNotResponding = 1415,
EVREventType_VREvent_Compositor_ApplicationResumed = 1416,
+ EVREventType_VREvent_Compositor_OutOfVideoMemory = 1417,
EVREventType_VREvent_TrackedCamera_StartVideoStream = 1500,
EVREventType_VREvent_TrackedCamera_StopVideoStream = 1501,
EVREventType_VREvent_TrackedCamera_PauseVideoStream = 1502,
@@ -792,9 +799,9 @@ typedef enum EVRButtonId
EVRButtonId_k_EButton_SteamVR_Touchpad = 32,
EVRButtonId_k_EButton_SteamVR_Trigger = 33,
EVRButtonId_k_EButton_Dashboard_Back = 2,
- EVRButtonId_k_EButton_Knuckles_A = 2,
- EVRButtonId_k_EButton_Knuckles_B = 1,
- EVRButtonId_k_EButton_Knuckles_JoyStick = 35,
+ EVRButtonId_k_EButton_IndexController_A = 2,
+ EVRButtonId_k_EButton_IndexController_B = 1,
+ EVRButtonId_k_EButton_IndexController_JoyStick = 35,
EVRButtonId_k_EButton_Max = 64,
} EVRButtonId;
@@ -815,7 +822,6 @@ typedef enum EShowUIType
{
EShowUIType_ShowUI_ControllerBinding = 0,
EShowUIType_ShowUI_ManageTrackers = 1,
- EShowUIType_ShowUI_QuickStart = 2,
EShowUIType_ShowUI_Pairing = 3,
EShowUIType_ShowUI_Settings = 4,
} EShowUIType;
@@ -1022,6 +1028,7 @@ typedef enum EVRInitError
EVRInitError_VRInitError_Init_VRWebHelperStartupFailed = 141,
EVRInitError_VRInitError_Init_TrackerManagerInitFailed = 142,
EVRInitError_VRInitError_Init_AlreadyRunning = 143,
+ EVRInitError_VRInitError_Init_FailedForVrMonitor = 144,
EVRInitError_VRInitError_Driver_Failed = 200,
EVRInitError_VRInitError_Driver_Unknown = 201,
EVRInitError_VRInitError_Driver_HmdUnknown = 202,
@@ -1034,6 +1041,7 @@ typedef enum EVRInitError
EVRInitError_VRInitError_Driver_TrackedDeviceInterfaceUnknown = 209,
EVRInitError_VRInitError_Driver_HmdDriverIdOutOfBounds = 211,
EVRInitError_VRInitError_Driver_HmdDisplayMirrored = 212,
+ EVRInitError_VRInitError_Driver_HmdDisplayNotFoundLaptop = 213,
EVRInitError_VRInitError_IPC_ServerInitFailed = 300,
EVRInitError_VRInitError_IPC_ConnectFailed = 301,
EVRInitError_VRInitError_IPC_SharedStateInitFailed = 302,
@@ -1504,6 +1512,12 @@ typedef enum EVRFingerSplay
EVRFingerSplay_VRFingerSplay_Count = 4,
} EVRFingerSplay;
+typedef enum EVRSummaryType
+{
+ EVRSummaryType_VRSummaryType_FromAnimation = 0,
+ EVRSummaryType_VRSummaryType_FromDevice = 1,
+} EVRSummaryType;
+
typedef enum EVRInputFilterCancelType
{
EVRInputFilterCancelType_VRInputFilterCancel_Timers = 0,
@@ -2432,6 +2446,7 @@ struct VR_IVRChaperoneSetup_FnTable
bool (OPENVR_FNTABLE_CALLTYPE *ImportFromBufferToWorking)(char * pBuffer, uint32_t nImportFlags);
void (OPENVR_FNTABLE_CALLTYPE *ShowWorkingSetPreview)();
void (OPENVR_FNTABLE_CALLTYPE *HideWorkingSetPreview)();
+ void (OPENVR_FNTABLE_CALLTYPE *RoomSetupStarting)();
};
struct VR_IVRCompositor_FnTable
@@ -2480,6 +2495,8 @@ struct VR_IVRCompositor_FnTable
void (OPENVR_FNTABLE_CALLTYPE *SetExplicitTimingMode)(EVRCompositorTimingMode eTimingMode);
EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *SubmitExplicitTimingData)();
bool (OPENVR_FNTABLE_CALLTYPE *IsMotionSmoothingEnabled)();
+ bool (OPENVR_FNTABLE_CALLTYPE *IsMotionSmoothingSupported)();
+ bool (OPENVR_FNTABLE_CALLTYPE *IsCurrentSceneFocusAppLoading)();
};
struct VR_IVROverlay_FnTable
@@ -2646,7 +2663,8 @@ struct VR_IVRInput_FnTable
EVRInputError (OPENVR_FNTABLE_CALLTYPE *UpdateActionState)(struct VRActiveActionSet_t * pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetDigitalActionData)(VRActionHandle_t action, struct InputDigitalActionData_t * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetAnalogActionData)(VRActionHandle_t action, struct InputAnalogActionData_t * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice);
- EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetPoseActionData)(VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, struct InputPoseActionData_t * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice);
+ EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetPoseActionDataRelativeToNow)(VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, struct InputPoseActionData_t * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice);
+ EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetPoseActionDataForNextFrame)(VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, struct InputPoseActionData_t * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalActionData)(VRActionHandle_t action, struct InputSkeletalActionData_t * pActionData, uint32_t unActionDataSize);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetBoneCount)(VRActionHandle_t action, uint32_t * pBoneCount);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetBoneHierarchy)(VRActionHandle_t action, BoneIndex_t * pParentIndices, uint32_t unIndexArayCount);
@@ -2654,7 +2672,7 @@ struct VR_IVRInput_FnTable
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalReferenceTransforms)(VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalReferencePose eReferencePose, struct VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalTrackingLevel)(VRActionHandle_t action, EVRSkeletalTrackingLevel * pSkeletalTrackingLevel);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalBoneData)(VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, struct VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount);
- EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalSummaryData)(VRActionHandle_t action, struct VRSkeletalSummaryData_t * pSkeletalSummaryData);
+ EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalSummaryData)(VRActionHandle_t action, EVRSummaryType eSummaryType, struct VRSkeletalSummaryData_t * pSkeletalSummaryData);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalBoneDataCompressed)(VRActionHandle_t action, EVRSkeletalMotionRange eMotionRange, void * pvCompressedData, uint32_t unCompressedSize, uint32_t * punRequiredCompressedSize);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *DecompressSkeletalBoneData)(void * pvCompressedBuffer, uint32_t unCompressedBufferSize, EVRSkeletalTransformSpace eTransformSpace, struct VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *TriggerHapticVibrationAction)(VRActionHandle_t action, float fStartSecondsFromNow, float fDurationSeconds, float fFrequency, float fAmplitude, VRInputValueHandle_t ulRestrictToDevice);
diff --git a/headers/openvr_driver.h b/headers/openvr_driver.h
index 8a48bc5..960042e 100644
--- a/headers/openvr_driver.h
+++ b/headers/openvr_driver.h
@@ -15,8 +15,8 @@
namespace vr
{
static const uint32_t k_nSteamVRVersionMajor = 1;
- static const uint32_t k_nSteamVRVersionMinor = 3;
- static const uint32_t k_nSteamVRVersionBuild = 20;
+ static const uint32_t k_nSteamVRVersionMinor = 4;
+ static const uint32_t k_nSteamVRVersionBuild = 18;
} // namespace vr
// vrtypes.h
@@ -207,7 +207,7 @@ enum ETrackedControllerRole
TrackedControllerRole_RightHand = 2, // Tracked device associated with the right hand
TrackedControllerRole_OptOut = 3, // Tracked device is opting out of left/right hand selection
TrackedControllerRole_Treadmill = 4, // Tracked device is a treadmill
- TrackedControllerRole_Max = 4
+ TrackedControllerRole_Max = 5
};
@@ -430,6 +430,11 @@ enum ETrackedDeviceProperty
Prop_CameraDistortionCoefficients_Float_Array = 2073, // Prop_NumCameras_Int32-sized array of double[vr::k_unMaxDistortionFunctionParameters] (max size is vr::k_unMaxCameras)
Prop_ExpectedControllerType_String = 2074,
+ Prop_DisplayAvailableFrameRates_Float_Array = 2080, // populated by compositor from actual EDID list when available from GPU driver
+ Prop_DisplaySupportsMultipleFramerates_Bool = 2081, // if this is true but Prop_DisplayAvailableFrameRates_Float_Array is empty, explain to user
+
+ Prop_DashboardLayoutPathName_String = 2090,
+
// Driver requested mura correction properties
Prop_DriverRequestedMuraCorrectionMode_Int32 = 2200,
Prop_DriverRequestedMuraFeather_InnerLeft_Int32 = 2201,
@@ -490,7 +495,7 @@ enum ETrackedDeviceProperty
// Properties that are set internally based on other information provided by drivers
Prop_ControllerType_String = 7000,
- Prop_LegacyInputProfile_String = 7001,
+ //Prop_LegacyInputProfile_String = 7001, // This is no longer used. See "legacy_binding" in the input profile instead.
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
@@ -734,12 +739,14 @@ enum EVREventType
VREvent_DriverRequestedQuit = 704, // The driver has requested that SteamVR shut down
VREvent_RestartRequested = 705, // A driver or other component wants the user to restart SteamVR
- VREvent_ChaperoneDataHasChanged = 800, // Sent when the process needs to call VRChaperone()->ReloadInfo()
+ VREvent_ChaperoneDataHasChanged = 800, // this will never happen with the new chaperone system
VREvent_ChaperoneUniverseHasChanged = 801,
- VREvent_ChaperoneTempDataHasChanged = 802,
+ VREvent_ChaperoneTempDataHasChanged = 802, // this will never happen with the new chaperone system
VREvent_ChaperoneSettingsHaveChanged = 803,
VREvent_SeatedZeroPoseReset = 804,
VREvent_ChaperoneFlushCache = 805, // Sent when the process needs to reload any cached data it retrieved from VRChaperone()
+ VREvent_ChaperoneRoomSetupStarting = 806, // Triggered by CVRChaperoneClient::RoomSetupStarting
+ VREvent_ChaperoneRoomSetupFinished = 807, // Triggered by CVRChaperoneClient::CommitWorkingCopy
VREvent_AudioSettingsHaveChanged = 820,
@@ -794,6 +801,7 @@ enum EVREventType
VREvent_Compositor_HDCPError = 1414, // data is hdcpError
VREvent_Compositor_ApplicationNotResponding = 1415,
VREvent_Compositor_ApplicationResumed = 1416,
+ VREvent_Compositor_OutOfVideoMemory = 1417,
VREvent_TrackedCamera_StartVideoStream = 1500,
VREvent_TrackedCamera_StopVideoStream = 1501,
@@ -871,9 +879,9 @@ enum EVRButtonId
k_EButton_Dashboard_Back = k_EButton_Grip,
- k_EButton_Knuckles_A = k_EButton_Grip,
- k_EButton_Knuckles_B = k_EButton_ApplicationMenu,
- k_EButton_Knuckles_JoyStick = k_EButton_Axis3,
+ k_EButton_IndexController_A = k_EButton_Grip,
+ k_EButton_IndexController_B = k_EButton_ApplicationMenu,
+ k_EButton_IndexController_JoyStick = k_EButton_Axis3,
k_EButton_Max = 64
};
@@ -1099,7 +1107,7 @@ enum EShowUIType
{
ShowUI_ControllerBinding = 0,
ShowUI_ManageTrackers = 1,
- ShowUI_QuickStart = 2,
+ // ShowUI_QuickStart = 2, // Deprecated
ShowUI_Pairing = 3,
ShowUI_Settings = 4,
};
@@ -1428,7 +1436,7 @@ enum EVRSkeletalTrackingLevel
// body part location can be measured directly but with fewer degrees of freedom than the actual body
// part. Certain body part positions may be unmeasured by the device and estimated from other input data.
- // E.g. Knuckles, gloves that only measure finger curl
+ // E.g. Index Controllers, gloves that only measure finger curl
VRSkeletalTracking_Partial,
// Body part location can be measured directly throughout the entire range of motion of the body part.
@@ -1505,6 +1513,7 @@ enum EVRInitError
VRInitError_Init_VRWebHelperStartupFailed = 141,
VRInitError_Init_TrackerManagerInitFailed = 142,
VRInitError_Init_AlreadyRunning = 143,
+ VRInitError_Init_FailedForVrMonitor = 144,
VRInitError_Driver_Failed = 200,
VRInitError_Driver_Unknown = 201,
@@ -1519,6 +1528,7 @@ enum EVRInitError
// VRInitError_Driver_HmdDisplayNotFoundAfterFix = 210, // not needed: here for historic reasons
VRInitError_Driver_HmdDriverIdOutOfBounds = 211,
VRInitError_Driver_HmdDisplayMirrored = 212,
+ VRInitError_Driver_HmdDisplayNotFoundLaptop = 213,
VRInitError_IPC_ServerInitFailed = 300,
VRInitError_IPC_ConnectFailed = 301,
@@ -2106,6 +2116,7 @@ namespace vr
static const char * const k_pch_SteamVR_ForceWindows32bitVRMonitor = "forceWindows32BitVRMonitor";
static const char * const k_pch_SteamVR_DebugInput = "debugInput";
static const char * const k_pch_SteamVR_DebugInputBinding = "debugInputBinding";
+ static const char * const k_pch_SteamVR_DoNotFadeToGrid = "doNotFadeToGrid";
static const char * const k_pch_SteamVR_InputBindingUIBlock = "inputBindingUI";
static const char * const k_pch_SteamVR_RenderCameraMode = "renderCameraMode";
static const char * const k_pch_SteamVR_EnableSharedResourceJournaling = "enableSharedResourceJournaling";
@@ -2134,6 +2145,7 @@ namespace vr
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_PowerManagedBaseStations2_String = "PowerManagedBaseStations2";
+ static const char * const k_pch_Lighthouse_InactivityTimeoutForBaseStations_Int32 = "InactivityTimeoutForBaseStations";
static const char * const k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback";
static const char * const k_pch_Lighthouse_NewPairing_Bool = "newPairing";
@@ -2183,7 +2195,7 @@ namespace vr
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";
- static const char * const k_pch_Perf_LinuxGPUProfiling_Bool = "linuxGPUProfiling";
+ static const char * const k_pch_Perf_GPUProfiling_Bool = "GPUProfiling";
//-----------------------------------------------------------------------------
// collision bounds keys
diff --git a/lib/linux32/libopenvr_api.so b/lib/linux32/libopenvr_api.so
index 4e0e720..79b4e11 100755
--- a/lib/linux32/libopenvr_api.so
+++ b/lib/linux32/libopenvr_api.so
Binary files differ
diff --git a/lib/linux64/libopenvr_api.so b/lib/linux64/libopenvr_api.so
index e4676c9..fea27b3 100755
--- a/lib/linux64/libopenvr_api.so
+++ b/lib/linux64/libopenvr_api.so
Binary files differ
diff --git a/lib/win32/openvr_api.lib b/lib/win32/openvr_api.lib
index 9c1fdc9..7463e0f 100644
--- a/lib/win32/openvr_api.lib
+++ b/lib/win32/openvr_api.lib
Binary files differ
diff --git a/lib/win64/openvr_api.lib b/lib/win64/openvr_api.lib
index a7bf95d..ff58a77 100644
--- a/lib/win64/openvr_api.lib
+++ b/lib/win64/openvr_api.lib
Binary files differ
diff --git a/samples/bin/hellovr_actions.json b/samples/bin/hellovr_actions.json
index d410c86..dab1e9a 100644
--- a/samples/bin/hellovr_actions.json
+++ b/samples/bin/hellovr_actions.json
@@ -3,6 +3,10 @@
{
"controller_type" : "vive_controller",
"binding_url" : "hellovr_bindings_vive_controller.json"
+ },
+ {
+ "controller_type" : "generic",
+ "binding_url" : "hellovr_bindings_generic.json"
}
],
"actions": [
diff --git a/samples/bin/hellovr_bindings_generic.json b/samples/bin/hellovr_bindings_generic.json
new file mode 100644
index 0000000..ae5fb46
--- /dev/null
+++ b/samples/bin/hellovr_bindings_generic.json
@@ -0,0 +1,94 @@
+{
+ "bindings" : {
+ "/actions/demo" : {
+ "poses" : [
+ {
+ "output" : "/actions/demo/in/hand_left",
+ "path" : "/user/hand/left/pose/raw"
+ },
+ {
+ "output" : "/actions/demo/in/hand_right",
+ "path" : "/user/hand/right/pose/raw"
+ }
+ ],
+ "haptics" : [
+ {
+ "output" : "/actions/demo/out/haptic_right",
+ "path" : "/user/hand/right/output/haptic"
+ },
+ {
+ "output" : "/actions/demo/out/haptic_left",
+ "path" : "/user/hand/left/output/haptic"
+ }
+ ],
+ "sources" : [
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/demo/in/hidecubes"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/trigger"
+ },
+ {
+ "inputs" : {
+ "position" : {
+ "output" : "/actions/demo/in/analoginput"
+ }
+ },
+ "mode" : "trackpad",
+ "path" : "/user/hand/right/input/trackpad"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/demo/in/triggerhaptic"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/grip"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/demo/in/hidecubes"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/trigger"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/demo/in/triggerhaptic"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/grip"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/demo/in/hidethiscontroller"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/left/input/application_menu"
+ },
+ {
+ "inputs" : {
+ "click" : {
+ "output" : "/actions/demo/in/hidethiscontroller"
+ }
+ },
+ "mode" : "button",
+ "path" : "/user/hand/right/input/application_menu"
+ }
+ ]
+ }
+ },
+ "controller_type" : "generic",
+ "description" : "Bindings for the OpenVR SDK \"hellovr_opengl\" demo for a generic controller",
+ "name" : "HelloVR bindings for a generic controller"
+}
diff --git a/samples/bin/linux64/libopenvr_api.so b/samples/bin/linux64/libopenvr_api.so
index 35da755..b5db2f0 100644
--- a/samples/bin/linux64/libopenvr_api.so
+++ b/samples/bin/linux64/libopenvr_api.so
Binary files differ
diff --git a/samples/bin/osx32/libopenvr_api.dylib b/samples/bin/osx32/libopenvr_api.dylib
index b3c2569..8a2df47 100644
--- a/samples/bin/osx32/libopenvr_api.dylib
+++ b/samples/bin/osx32/libopenvr_api.dylib
Binary files differ
diff --git a/samples/bin/win32/openvr_api.dll b/samples/bin/win32/openvr_api.dll
index 66d492b..4f5bdf1 100644
--- a/samples/bin/win32/openvr_api.dll
+++ b/samples/bin/win32/openvr_api.dll
Binary files differ
diff --git a/samples/bin/win64/openvr_api.dll b/samples/bin/win64/openvr_api.dll
index 7c9a0b1..3b05986 100644
--- a/samples/bin/win64/openvr_api.dll
+++ b/samples/bin/win64/openvr_api.dll
Binary files differ
diff --git a/samples/driver_sample/driver_sample.vcxproj b/samples/driver_sample/driver_sample.vcxproj
index 94cb030..cd4beac 100644
--- a/samples/driver_sample/driver_sample.vcxproj
+++ b/samples/driver_sample/driver_sample.vcxproj
@@ -22,31 +22,32 @@
<ProjectGuid>{A47C788B-1BDA-4057-87A9-FC35ED711B44}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>driver_sample</RootNamespace>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v141</PlatformToolset>
+ <PlatformToolset>v140</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v120</PlatformToolset>
+ <PlatformToolset>v140</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v120</PlatformToolset>
+ <PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v120</PlatformToolset>
+ <PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
diff --git a/samples/hellovr_dx12/hellovr_dx12.vcxproj b/samples/hellovr_dx12/hellovr_dx12.vcxproj
index ca9661c..6b72322 100644
--- a/samples/hellovr_dx12/hellovr_dx12.vcxproj
+++ b/samples/hellovr_dx12/hellovr_dx12.vcxproj
@@ -11,10 +11,10 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
- <ProjectGuid>{FF19F6AE-67E0-4585-9D4A-038CB6E8DD09}</ProjectGuid>
+ <ProjectGuid>{407B75DC-C7A4-444B-B628-63BCAB83C981}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>hellovr_dx12</RootNamespace>
- <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion>
+ <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
diff --git a/samples/hellovr_opengl/hellovr_opengl.vcxproj b/samples/hellovr_opengl/hellovr_opengl.vcxproj
index 42e59bf..e6512d1 100644
--- a/samples/hellovr_opengl/hellovr_opengl.vcxproj
+++ b/samples/hellovr_opengl/hellovr_opengl.vcxproj
@@ -21,14 +21,14 @@
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v141</PlatformToolset>
+ <PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v141</PlatformToolset>
+ <PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/samples/hellovr_opengl/hellovr_opengl_main.cpp b/samples/hellovr_opengl/hellovr_opengl_main.cpp
index 14e6348..3e276ba 100644
--- a/samples/hellovr_opengl/hellovr_opengl_main.cpp
+++ b/samples/hellovr_opengl/hellovr_opengl_main.cpp
@@ -773,7 +773,7 @@ bool CMainApplication::HandleInput()
for ( EHand eHand = Left; eHand <= Right; ((int&)eHand)++ )
{
vr::InputPoseActionData_t poseData;
- if ( vr::VRInput()->GetPoseActionData( m_rHand[eHand].m_actionPose, vr::TrackingUniverseStanding, 0, &poseData, sizeof( poseData ), vr::k_ulInvalidInputValueHandle ) != vr::VRInputError_None
+ if ( vr::VRInput()->GetPoseActionDataForNextFrame( m_rHand[eHand].m_actionPose, vr::TrackingUniverseStanding, &poseData, sizeof( poseData ), vr::k_ulInvalidInputValueHandle ) != vr::VRInputError_None
|| !poseData.bActive || !poseData.pose.bPoseIsValid )
{
m_rHand[eHand].m_bShowController = false;
diff --git a/samples/samples_vs2017.sln b/samples/samples_vs2017.sln
index e6505e1..c6c3450 100644
--- a/samples/samples_vs2017.sln
+++ b/samples/samples_vs2017.sln
@@ -7,6 +7,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hellovr_opengl", "hellovr_o
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "driver_sample", "driver_sample\driver_sample.vcxproj", "{A47C788B-1BDA-4057-87A9-FC35ED711B44}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hellovr_dx12", "hellovr_dx12\hellovr_dx12.vcxproj", "{407B75DC-C7A4-444B-B628-63BCAB83C981}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -29,6 +31,12 @@ Global
{A47C788B-1BDA-4057-87A9-FC35ED711B44}.Release|Win32.Build.0 = Release|Win32
{A47C788B-1BDA-4057-87A9-FC35ED711B44}.Release|x64.ActiveCfg = Release|x64
{A47C788B-1BDA-4057-87A9-FC35ED711B44}.Release|x64.Build.0 = Release|x64
+ {407B75DC-C7A4-444B-B628-63BCAB83C981}.Debug|Win32.ActiveCfg = Debug|Win32
+ {407B75DC-C7A4-444B-B628-63BCAB83C981}.Debug|Win32.Build.0 = Debug|Win32
+ {407B75DC-C7A4-444B-B628-63BCAB83C981}.Debug|x64.ActiveCfg = Debug|Win32
+ {407B75DC-C7A4-444B-B628-63BCAB83C981}.Release|Win32.ActiveCfg = Release|Win32
+ {407B75DC-C7A4-444B-B628-63BCAB83C981}.Release|Win32.Build.0 = Release|Win32
+ {407B75DC-C7A4-444B-B628-63BCAB83C981}.Release|x64.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/openvr_api_public.cpp b/src/openvr_api_public.cpp
index c63bf2a..f92007d 100644
--- a/src/openvr_api_public.cpp
+++ b/src/openvr_api_public.cpp
@@ -6,6 +6,7 @@
#include "sharedlibtools_public.h"
#include "envvartools_public.h"
#include "hmderrors_public.h"
+#include "strtools_public.h"
#include "vrpathregistry_public.h"
#include <mutex>
@@ -14,6 +15,23 @@ using vr::IVRSystem;
using vr::IVRClientCore;
using vr::VRInitError_None;
+// figure out how to import from the VR API dll
+#if defined(_WIN32)
+
+#if !defined(OPENVR_BUILD_STATIC)
+#define VR_EXPORT_INTERFACE extern "C" __declspec( dllexport )
+#else
+#define VR_EXPORT_INTERFACE extern "C"
+#endif
+
+#elif defined(__GNUC__) || defined(COMPILER_GCC) || defined(__APPLE__)
+
+#define VR_EXPORT_INTERFACE extern "C" __attribute__((visibility("default")))
+
+#else
+#error "Unsupported Platform."
+#endif
+
namespace vr
{
@@ -238,27 +256,63 @@ bool VR_IsRuntimeInstalled()
}
+// -------------------------------------------------------------------------------
+// Purpose: This is the old Runtime Path interface that is no longer exported in the
+// latest header. We still want to export it from the DLL, though, so updating
+// to a new DLL doesn't break old compiled code. This version was not thread
+// safe and could change the buffer pointer to by a previous result on a
+// subsequent call
+// -------------------------------------------------------------------------------
+VR_EXPORT_INTERFACE const char *VR_CALLTYPE VR_RuntimePath();
+
/** Returns where OpenVR runtime is installed. */
const char *VR_RuntimePath()
{
+ static char rchBuffer[1024];
+ uint32_t unRequiredSize;
+ if ( VR_GetRuntimePath( rchBuffer, sizeof( rchBuffer ), &unRequiredSize ) && unRequiredSize < sizeof( rchBuffer ) )
+ {
+ return rchBuffer;
+ }
+ else
+ {
+ return nullptr;
+ }
+}
+
+
+/** Returns where OpenVR runtime is installed. */
+bool VR_GetRuntimePath( char *pchPathBuffer, uint32_t unBufferSize, uint32_t *punRequiredBufferSize )
+{
// otherwise we need to do a bit more work
- static std::string sRuntimePath;
- std::string sConfigPath, sLogPath;
+ std::string sRuntimePath;
- bool bReadPathRegistry = CVRPathRegistry_Public::GetPaths( &sRuntimePath, &sConfigPath, &sLogPath, NULL, NULL );
+ *punRequiredBufferSize = 0;
+
+ bool bReadPathRegistry = CVRPathRegistry_Public::GetPaths( &sRuntimePath, nullptr, nullptr, nullptr, nullptr );
if ( !bReadPathRegistry )
{
- return nullptr;
+ return false;
}
// figure out where we're going to look for vrclient.dll
// see if the specified path actually exists.
if ( !Path_IsDirectory( sRuntimePath ) )
{
- return nullptr;
+ return false;
+ }
+
+ *punRequiredBufferSize = (uint32_t)sRuntimePath.size() + 1;
+ if ( sRuntimePath.size() >= unBufferSize )
+ {
+ *pchPathBuffer = '\0';
+ }
+ else
+ {
+ strcpy_safe( pchPathBuffer, unBufferSize, sRuntimePath.c_str() );
}
- return sRuntimePath.c_str();
+ return true;
}
diff --git a/src/vrcommon/hmderrors_public.cpp b/src/vrcommon/hmderrors_public.cpp
index 14d4b8b..5b0ec64 100644
--- a/src/vrcommon/hmderrors_public.cpp
+++ b/src/vrcommon/hmderrors_public.cpp
@@ -70,6 +70,7 @@ const char *GetEnglishStringForHmdError( vr::EVRInitError eError )
// case VRInitError_Driver_HmdDisplayNotFoundAfterFix: return "HMD detected over USB, but Monitor not found after attempt to fix (210)"; // taken out upon Ben's request: He thinks that there is no need to separate that error from 208
case VRInitError_Driver_HmdDriverIdOutOfBounds: return "Hmd DriverId is our of bounds (211)";
case VRInitError_Driver_HmdDisplayMirrored: return "HMD detected over USB, but Monitor may be mirrored instead of extended (212)";
+ case VRInitError_Driver_HmdDisplayNotFoundLaptop: return "On laptop, HMD detected over USB, but Monitor not found (213)";
case VRInitError_IPC_ServerInitFailed: return "VR Server Init Failed (300)";
case VRInitError_IPC_ConnectFailed: return "Connect to VR Server Failed (301)";
@@ -166,6 +167,7 @@ const char *GetIDForVRInitError( vr::EVRInitError eError )
RETURN_ENUM_AS_STRING( VRInitError_Init_VRWebHelperStartupFailed );
RETURN_ENUM_AS_STRING( VRInitError_Init_TrackerManagerInitFailed );
RETURN_ENUM_AS_STRING( VRInitError_Init_AlreadyRunning );
+ RETURN_ENUM_AS_STRING( VRInitError_Init_FailedForVrMonitor);
RETURN_ENUM_AS_STRING( VRInitError_Driver_Failed );
RETURN_ENUM_AS_STRING( VRInitError_Driver_Unknown );
@@ -180,6 +182,7 @@ const char *GetIDForVRInitError( vr::EVRInitError eError )
// RETURN_ENUM_AS_STRING( VRInitError_Driver_HmdDisplayNotFoundAfterFix );
RETURN_ENUM_AS_STRING( VRInitError_Driver_HmdDriverIdOutOfBounds );
RETURN_ENUM_AS_STRING( VRInitError_Driver_HmdDisplayMirrored );
+ RETURN_ENUM_AS_STRING( VRInitError_Driver_HmdDisplayNotFoundLaptop );
RETURN_ENUM_AS_STRING( VRInitError_IPC_ServerInitFailed);
RETURN_ENUM_AS_STRING( VRInitError_IPC_ConnectFailed);
diff --git a/src/vrcommon/pathtools_public.cpp b/src/vrcommon/pathtools_public.cpp
index 3426c77..0f8573e 100644
--- a/src/vrcommon/pathtools_public.cpp
+++ b/src/vrcommon/pathtools_public.cpp
@@ -409,6 +409,20 @@ std::string Path_Compact( const std::string & sRawPath, char slash )
}
+/** Returns true if these two paths are the same without respect for internal . or ..
+* sequences, slash type, or case (on case-insensitive platforms). */
+bool Path_IsSamePath( const std::string & sPath1, const std::string & sPath2 )
+{
+ std::string sCompact1 = Path_Compact( sPath1 );
+ std::string sCompact2 = Path_Compact( sPath2 );
+#if defined(WIN32)
+ return !stricmp( sCompact1.c_str(), sCompact2.c_str() );
+#else
+ return !strcmp( sCompact1.c_str(), sCompact2.c_str() );
+#endif
+}
+
+
/** Returns the path to the current DLL or exe */
std::string Path_GetThisModulePath()
{
diff --git a/src/vrcommon/pathtools_public.h b/src/vrcommon/pathtools_public.h
index 9bf9ce1..3250e32 100644
--- a/src/vrcommon/pathtools_public.h
+++ b/src/vrcommon/pathtools_public.h
@@ -67,6 +67,10 @@ std::string Path_Join(
* will be used. */
std::string Path_Compact( const std::string & sRawPath, char slash = 0 );
+/** Returns true if these two paths are the same without respect for internal . or ..
+* sequences, slash type, or case (on case-insensitive platforms). */
+bool Path_IsSamePath( const std::string & sPath1, const std::string & sPath2 );
+
//** Removed trailing slashes */
std::string Path_RemoveTrailingSlash( const std::string & sRawPath, char slash = 0 );