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:
-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 );