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-07-05 20:35:49 +0300
committerJoe Ludwig <joe@valvesoftware.com>2019-07-05 20:35:49 +0300
commitcdaf2b330c8df58986391b253cd8f04328139823 (patch)
treeb0f424c30e5037312bbcc59c68271cff667267a5
parent02bc73b9bcfe9cc2d2802bd5fdc91f724de8ef10 (diff)
OpenVR SDK 1.5.17v1.5.17
Properties: * Deprecated Prop_DoNotApplyPrediction_Bool. Drivers should provide poses with zero velocity instead. * Added Prop_DriverProvidedChaperoneVisibility_Bool – Drivers that set Prop_DriverProvidedChaperonePath_String can also set this property to indicate when the driver provided chaperone is visible or not visible. * Added Prop_HmdTrackingStyle_Int32 - Drivers should set this to an EHmdTrackingStyle value to control what message is shown to users when the HMD isn't tracking. Add a per-driver “loadPriority” (higher is earlier loading) to control the order that we check drivers for available HMDs. The default loadPriority is 0. Drivers can set a different default in resources/settings/default.vrsettings. The user can override those settings in their personal steam/config/steamvr.vrsettings file. Drivers with the same priority continue to be loaded in alphabetical order as before. IVRDriverManager interface: * Added IsEnabled, which returns true if the driver is enabled. IVRInput interface: * Added GetActionBindingInfo - This function allows the caller to learn details about exactly how an action is bound, including what input source the binding is for, what mode on that source, and what slot on that mode. For example, a dpad binding to a trackpad would be "/input/trackpad", "dpad", and "north". IVRDebug Interface: * Initial version of IVRDebug, an interface intended to collect SteamVR debugging functionality. It currently provides methods to interact with the VR Profiler and the driver debug interface. * Added EmitVrProfilerEvent - Applications can use this method to emit a discrete event to the VR Profiler. * Added BeginVrProfilerEvent/FinishVrProfilerEvent - Applications can use this pair of functions to create a duration based VR Profiler event. The methods signal the beginning and the end of the event respectively. * Added DriverDebugRequest - Migrated this function from IVRSystem to IVRDebug. [git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 5214411]
-rwxr-xr-xbin/linux32/libopenvr_api.sobin304708 -> 304695 bytes
-rwxr-xr-xbin/linux32/libopenvr_api.so.dbgbin2143394 -> 2128520 bytes
-rwxr-xr-xbin/linux64/libopenvr_api.sobin303268 -> 303256 bytes
-rwxr-xr-xbin/linux64/libopenvr_api.so.dbgbin2681390 -> 2665453 bytes
-rwxr-xr-xbin/osx32/libopenvr_api.dylibbin155684 -> 155684 bytes
-rw-r--r--bin/osx32/libopenvr_api.dylib.dSYM/Contents/Resources/DWARF/libopenvr_api.dylibbin1185547 -> 1185501 bytes
-rw-r--r--bin/win32/openvr_api.dllbin490784 -> 491296 bytes
-rw-r--r--bin/win32/openvr_api.pdbbin9900032 -> 9900032 bytes
-rw-r--r--bin/win64/openvr_api.dllbin597792 -> 597792 bytes
-rw-r--r--bin/win64/openvr_api.pdbbin9736192 -> 9736192 bytes
-rw-r--r--headers/openvr.h114
-rw-r--r--headers/openvr_api.cs681
-rw-r--r--headers/openvr_api.json99
-rw-r--r--headers/openvr_capi.h48
-rw-r--r--headers/openvr_driver.h26
-rwxr-xr-xlib/linux32/libopenvr_api.sobin2128796 -> 2128520 bytes
-rwxr-xr-xlib/linux64/libopenvr_api.sobin2665637 -> 2665453 bytes
-rw-r--r--samples/bin/linux64/libopenvr_api.sobin303268 -> 303256 bytes
-rw-r--r--samples/bin/osx32/libopenvr_api.dylibbin155684 -> 155684 bytes
-rw-r--r--samples/bin/win32/openvr_api.dllbin490784 -> 491296 bytes
-rw-r--r--samples/bin/win64/openvr_api.dllbin597792 -> 597792 bytes
-rw-r--r--src/vrcommon/hmderrors_public.cpp4
22 files changed, 924 insertions, 48 deletions
diff --git a/bin/linux32/libopenvr_api.so b/bin/linux32/libopenvr_api.so
index f0c2bef..258c8f5 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 dc673e5..31d2871 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 b5db2f0..8d894cf 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 e906635..10fd1dc 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 8a2df47..aa0ac95 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 2351ff4..4d261f6 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 4f5bdf1..9d8ce6e 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 f3429e0..9070b31 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 3b05986..86f697b 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 3c53691..b7ec1bc 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 3585e25..9f4ac63 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 = 4;
- static const uint32_t k_nSteamVRVersionBuild = 18;
+ static const uint32_t k_nSteamVRVersionMinor = 5;
+ static const uint32_t k_nSteamVRVersionBuild = 17;
} // namespace vr
// vrtypes.h
@@ -354,6 +354,7 @@ enum ETrackedDeviceProperty
Prop_BootloaderVersion_Uint64 = 1044,
Prop_AdditionalSystemReportData_String = 1045, // additional string to include in system reports about a tracked device
Prop_CompositeFirmwareVersion_String = 1046, // additional FW components from a device that gets propagated into reports
+ Prop_Firmware_RemindUpdate_Bool = 1047,
// Properties that are unique to TrackedDeviceClass_HMD
Prop_ReportsTimeSinceVSync_Bool = 2000,
@@ -408,7 +409,7 @@ enum ETrackedDeviceProperty
Prop_NamedIconPathControllerLeftDeviceOff_String = 2051, // placeholder icon for "left" controller if not yet detected/loaded
Prop_NamedIconPathControllerRightDeviceOff_String = 2052, // placeholder icon for "right" controller if not yet detected/loaded
Prop_NamedIconPathTrackingReferenceDeviceOff_String = 2053, // placeholder icon for sensor/base if not yet detected/loaded
- Prop_DoNotApplyPrediction_Bool = 2054,
+ Prop_DoNotApplyPrediction_Bool = 2054, // currently no effect. was used to disable HMD pose prediction on MR, which is now done by MR driver setting velocity=0
Prop_CameraToHeadTransforms_Matrix34_Array = 2055,
Prop_DistortionMeshResolution_Int32 = 2056, // custom resolution of compositor calls to IVRSystem::ComputeDistortion
Prop_DriverIsDrawingControllers_Bool = 2057,
@@ -429,6 +430,9 @@ enum ETrackedDeviceProperty
Prop_CameraDistortionFunction_Int32_Array = 2072, // Prop_NumCameras_Int32-sized array of vr::EVRDistortionFunctionType values (max size is vr::k_unMaxCameras)
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_HmdTrackingStyle_Int32 = 2075, // one of EHmdTrackingStyle
+ Prop_DriverProvidedChaperoneVisibility_Bool = 2076,
+
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
@@ -527,6 +531,15 @@ enum ETrackedPropertyError
TrackedProp_IPCReadFailure = 13,
};
+/** Used to drive certain text in the UI when talking about the tracking system for the HMD */
+enum EHmdTrackingStyle
+{
+ HmdTrackingStyle_Unknown = 0,
+
+ HmdTrackingStyle_Lighthouse = 1, // base stations and lasers
+ HmdTrackingStyle_OutsideInCameras = 2, // Cameras and LED, Rift 1 style
+ HmdTrackingStyle_InsideOutCameras = 3, // Cameras on HMD looking at the world
+};
typedef uint64_t VRActionHandle_t;
typedef uint64_t VRActionSetHandle_t;
@@ -1110,6 +1123,7 @@ enum EShowUIType
// ShowUI_QuickStart = 2, // Deprecated
ShowUI_Pairing = 3,
ShowUI_Settings = 4,
+ ShowUI_DebugCommands = 5,
};
struct VREvent_ShowUI_t
@@ -1625,6 +1639,8 @@ enum EVRInitError
VRInitError_Compositor_CreateTextIndexBuffer = 482,
VRInitError_Compositor_CreateMirrorTextures = 483,
VRInitError_Compositor_CreateLastFrameRenderTexture = 484,
+ VRInitError_Compositor_CreateMirrorOverlay = 485,
+ VRInitError_Compositor_FailedToCreateVirtualDisplayBackbuffer = 486,
VRInitError_VendorSpecific_UnableToConnectToOculusRuntime = 1000,
VRInitError_VendorSpecific_WindowsNotInDevMode = 1001,
@@ -1642,6 +1658,7 @@ enum EVRInitError
VRInitError_VendorSpecific_HmdFound_UserDataAddressRange = 1111,
VRInitError_VendorSpecific_HmdFound_UserDataError = 1112,
VRInitError_VendorSpecific_HmdFound_ConfigFailedSanityCheck = 1113,
+ VRInitError_VendorSpecific_OculusRuntimeBadInstall = 1114,
VRInitError_Steam_SteamInstallationNotFound = 2000,
@@ -2102,15 +2119,6 @@ public:
virtual bool ShouldApplicationReduceRenderingWork() = 0;
// ------------------------------------
- // Debug Methods
- // ------------------------------------
-
- /** Sends a request to the driver for the specified device and returns the response. The maximum response size is 32k,
- * but this method can be called with a smaller buffer. If the response exceeds the size of the buffer, it is truncated.
- * The size of the response including its terminating null is returned. */
- virtual uint32_t DriverDebugRequest( vr::TrackedDeviceIndex_t unDeviceIndex, const char *pchRequest, VR_OUT_STRING() char *pchResponseBuffer, uint32_t unResponseBufferSize ) = 0;
-
- // ------------------------------------
// Firmware methods
// ------------------------------------
@@ -2136,7 +2144,7 @@ public:
};
-static const char * const IVRSystem_Version = "IVRSystem_019";
+static const char * const IVRSystem_Version = "IVRSystem_020";
}
@@ -2678,6 +2686,7 @@ namespace vr
//-----------------------------------------------------------------------------
// driver keys - These could be checked in any driver_<name> section
static const char * const k_pch_Driver_Enable_Bool = "enable";
+ static const char * const k_pch_Driver_LoadPriority_Int32 = "loadPriority";
//-----------------------------------------------------------------------------
// web interface keys
@@ -3141,13 +3150,14 @@ public:
/** Returns true if the current process has the scene focus */
virtual bool CanRenderScene() = 0;
- /** Creates a window on the primary monitor to display what is being shown in the headset. */
+ /** Opens the headset view (as either a window or docked widget depending on user's preferences) that displays what the user
+ * sees in the headset. */
virtual void ShowMirrorWindow() = 0;
- /** Closes the mirror window. */
+ /** Closes the headset view, either as a window or docked widget. */
virtual void HideMirrorWindow() = 0;
- /** Returns true if the mirror window is shown. */
+ /** Returns true if the headset view (either as a window or docked widget) is shown. */
virtual bool IsMirrorWindowVisible() = 0;
/** Writes back buffer and stereo left/right pair from the application to a 'screenshots' folder in the SteamVR runtime root. */
@@ -4271,6 +4281,8 @@ public:
virtual uint32_t GetDriverName( vr::DriverId_t nDriver, VR_OUT_STRING() char *pchValue, uint32_t unBufferSize ) = 0;
virtual DriverHandle_t GetDriverHandle( const char *pchDriverName ) = 0;
+
+ virtual bool IsEnabled( vr::DriverId_t nDriver ) const = 0;
};
static const char * const IVRDriverManager_Version = "IVRDriverManager_001";
@@ -4409,6 +4421,14 @@ namespace vr
char rchRenderModelComponentName[128];
};
+ struct InputBindingInfo_t
+ {
+ char rchDevicePathName[128];
+ char rchInputPathName[128];
+ char rchModeName[128];
+ char rchSlotName[128];
+ };
+
struct VRActiveActionSet_t
{
/** This is the handle of the action set to activate for this frame. */
@@ -4543,6 +4563,9 @@ namespace vr
/** Retrieves useful information for the origin of this action */
virtual EVRInputError GetOriginTrackedDeviceInfo( VRInputValueHandle_t origin, InputOriginInfo_t *pOriginInfo, uint32_t unOriginInfoSize ) = 0;
+ /** Retrieves useful information about the bindings for an action */
+ virtual EVRInputError GetActionBindingInfo( VRActionHandle_t action, InputBindingInfo_t *pOriginInfo, uint32_t unBindingInfoSize, uint32_t unBindingInfoCount, uint32_t *punReturnedBindingInfoCount ) = 0;
+
/** Shows the current binding for the action in-headset */
virtual EVRInputError ShowActionOrigins( VRActionSetHandle_t actionSetHandle, VRActionHandle_t ulActionHandle ) = 0;
@@ -4553,7 +4576,7 @@ namespace vr
virtual bool IsUsingLegacyInput() = 0;
};
- static const char * const IVRInput_Version = "IVRInput_006";
+ static const char * const IVRInput_Version = "IVRInput_007";
} // namespace vr
@@ -4661,6 +4684,49 @@ namespace vr
static const char * const IVRSpatialAnchors_Version = "IVRSpatialAnchors_001";
} // namespace vr
+
+// ivrdebug.h
+namespace vr
+{
+ enum EVRDebugError
+ {
+ VRDebugError_Success = 0,
+ VRDebugError_BadParameter
+ };
+
+ /** Handle for vr profiler events */
+ typedef uint64_t VrProfilerEventHandle_t;
+
+ class IVRDebug
+ {
+ public:
+
+ /** Create a vr profiler discrete event (point)
+ * The event will be associated with the message provided in pchMessage, and the current
+ * time will be used as the event timestamp. */
+ virtual EVRDebugError EmitVrProfilerEvent( const char *pchMessage ) = 0;
+
+ /** Create an vr profiler duration event (line)
+ * The current time will be used as the timestamp for the start of the line.
+ * On success, pHandleOut will contain a handle valid for terminating this event. */
+ virtual EVRDebugError BeginVrProfilerEvent( VrProfilerEventHandle_t *pHandleOut ) = 0;
+
+ /** Terminate a vr profiler event
+ * The event associated with hHandle will be considered completed when this method is called.
+ * The current time will be used assocaited to the termination time of the event, and
+ * pchMessage will be used as the event title. */
+ virtual EVRDebugError FinishVrProfilerEvent( VrProfilerEventHandle_t hHandle, const char *pchMessage ) = 0;
+
+ /** Sends a request to the driver for the specified device and returns the response. The maximum response size is 32k,
+ * but this method can be called with a smaller buffer. If the response exceeds the size of the buffer, it is truncated.
+ * The size of the response including its terminating null is returned. */
+ virtual uint32_t DriverDebugRequest( vr::TrackedDeviceIndex_t unDeviceIndex, const char *pchRequest, VR_OUT_STRING() char *pchResponseBuffer, uint32_t unResponseBufferSize ) = 0;
+
+ };
+
+ static const char * const IVRDebug_Version = "IVRDebug_001";
+
+} // namespace vr
// End
#endif // _OPENVR_API
@@ -4929,6 +4995,17 @@ namespace vr
return m_pVRSpatialAnchors;
}
+ IVRDebug *VRDebug()
+ {
+ CheckClear();
+ if ( !m_pVRDebug )
+ {
+ EVRInitError eError;
+ m_pVRDebug = (IVRDebug *)VR_GetGenericInterface( IVRDebug_Version, &eError );
+ }
+ return m_pVRDebug;
+ }
+
IVRNotifications *VRNotifications()
{
CheckClear();
@@ -4957,6 +5034,7 @@ namespace vr
IVRInput *m_pVRInput;
IVRIOBuffer *m_pVRIOBuffer;
IVRSpatialAnchors *m_pVRSpatialAnchors;
+ IVRDebug *m_pVRDebug;
IVRNotifications *m_pVRNotifications;
};
@@ -4983,6 +5061,7 @@ namespace vr
inline IVRIOBuffer *VR_CALLTYPE VRIOBuffer() { return OpenVRInternal_ModuleContext().VRIOBuffer(); }
inline IVRSpatialAnchors *VR_CALLTYPE VRSpatialAnchors() { return OpenVRInternal_ModuleContext().VRSpatialAnchors(); }
inline IVRNotifications *VR_CALLTYPE VRNotifications() { return OpenVRInternal_ModuleContext().VRNotifications(); }
+ inline IVRDebug *VR_CALLTYPE VRDebug() { return OpenVRInternal_ModuleContext().VRDebug(); }
inline void COpenVRContext::Clear()
{
@@ -5003,6 +5082,7 @@ namespace vr
m_pVRIOBuffer = nullptr;
m_pVRSpatialAnchors = nullptr;
m_pVRNotifications = nullptr;
+ m_pVRDebug = nullptr;
}
VR_INTERFACE uint32_t VR_CALLTYPE VR_InitInternal2( EVRInitError *peError, EVRApplicationType eApplicationType, const char *pStartupInfo );
diff --git a/headers/openvr_api.cs b/headers/openvr_api.cs
index d593777..cce689c 100644
--- a/headers/openvr_api.cs
+++ b/headers/openvr_api.cs
@@ -231,11 +231,6 @@ public struct IVRSystem
internal _ShouldApplicationReduceRenderingWork ShouldApplicationReduceRenderingWork;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate uint _DriverDebugRequest(uint unDeviceIndex, string pchRequest, System.Text.StringBuilder pchResponseBuffer, uint unResponseBufferSize);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _DriverDebugRequest DriverDebugRequest;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
internal delegate EVRFirmwareError _PerformFirmwareUpdate(uint unDeviceIndex);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _PerformFirmwareUpdate PerformFirmwareUpdate;
@@ -1550,6 +1545,11 @@ public struct IVRDriverManager
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _GetDriverHandle GetDriverHandle;
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate bool _IsEnabled(uint nDriver);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _IsEnabled IsEnabled;
+
}
[StructLayout(LayoutKind.Sequential)]
@@ -1671,6 +1671,11 @@ public struct IVRInput
internal _GetOriginTrackedDeviceInfo GetOriginTrackedDeviceInfo;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVRInputError _GetActionBindingInfo(ulong action, ref InputBindingInfo_t pOriginInfo, uint unBindingInfoSize, uint unBindingInfoCount, ref uint punReturnedBindingInfoCount);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _GetActionBindingInfo GetActionBindingInfo;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
internal delegate EVRInputError _ShowActionOrigins(ulong actionSetHandle, ulong ulActionHandle);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _ShowActionOrigins ShowActionOrigins;
@@ -1747,6 +1752,31 @@ public struct IVRSpatialAnchors
}
+[StructLayout(LayoutKind.Sequential)]
+public struct IVRDebug
+{
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVRDebugError _EmitVrProfilerEvent(string pchMessage);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _EmitVrProfilerEvent EmitVrProfilerEvent;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVRDebugError _BeginVrProfilerEvent(ref ulong pHandleOut);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _BeginVrProfilerEvent BeginVrProfilerEvent;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVRDebugError _FinishVrProfilerEvent(ulong hHandle, string pchMessage);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _FinishVrProfilerEvent FinishVrProfilerEvent;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate uint _DriverDebugRequest(uint unDeviceIndex, string pchRequest, System.Text.StringBuilder pchResponseBuffer, uint unResponseBufferSize);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _DriverDebugRequest DriverDebugRequest;
+
+}
+
public class CVRSystem
{
@@ -2050,11 +2080,6 @@ public class CVRSystem
bool result = FnTable.ShouldApplicationReduceRenderingWork();
return result;
}
- public uint DriverDebugRequest(uint unDeviceIndex,string pchRequest,System.Text.StringBuilder pchResponseBuffer,uint unResponseBufferSize)
- {
- uint result = FnTable.DriverDebugRequest(unDeviceIndex,pchRequest,pchResponseBuffer,unResponseBufferSize);
- return result;
- }
public EVRFirmwareError PerformFirmwareUpdate(uint unDeviceIndex)
{
EVRFirmwareError result = FnTable.PerformFirmwareUpdate(unDeviceIndex);
@@ -3493,6 +3518,11 @@ public class CVRDriverManager
ulong result = FnTable.GetDriverHandle(pchDriverName);
return result;
}
+ public bool IsEnabled(uint nDriver)
+ {
+ bool result = FnTable.IsEnabled(nDriver);
+ return result;
+ }
}
@@ -3623,6 +3653,12 @@ public class CVRInput
EVRInputError result = FnTable.GetOriginTrackedDeviceInfo(origin,ref pOriginInfo,unOriginInfoSize);
return result;
}
+ public EVRInputError GetActionBindingInfo(ulong action,ref InputBindingInfo_t pOriginInfo,uint unBindingInfoSize,uint unBindingInfoCount,ref uint punReturnedBindingInfoCount)
+ {
+ punReturnedBindingInfoCount = 0;
+ EVRInputError result = FnTable.GetActionBindingInfo(action,ref pOriginInfo,unBindingInfoSize,unBindingInfoCount,ref punReturnedBindingInfoCount);
+ return result;
+ }
public EVRInputError ShowActionOrigins(ulong actionSetHandle,ulong ulActionHandle)
{
EVRInputError result = FnTable.ShowActionOrigins(actionSetHandle,ulActionHandle);
@@ -3716,6 +3752,37 @@ public class CVRSpatialAnchors
}
+public class CVRDebug
+{
+ IVRDebug FnTable;
+ internal CVRDebug(IntPtr pInterface)
+ {
+ FnTable = (IVRDebug)Marshal.PtrToStructure(pInterface, typeof(IVRDebug));
+ }
+ public EVRDebugError EmitVrProfilerEvent(string pchMessage)
+ {
+ EVRDebugError result = FnTable.EmitVrProfilerEvent(pchMessage);
+ return result;
+ }
+ public EVRDebugError BeginVrProfilerEvent(ref ulong pHandleOut)
+ {
+ pHandleOut = 0;
+ EVRDebugError result = FnTable.BeginVrProfilerEvent(ref pHandleOut);
+ return result;
+ }
+ public EVRDebugError FinishVrProfilerEvent(ulong hHandle,string pchMessage)
+ {
+ EVRDebugError result = FnTable.FinishVrProfilerEvent(hHandle,pchMessage);
+ return result;
+ }
+ public uint DriverDebugRequest(uint unDeviceIndex,string pchRequest,System.Text.StringBuilder pchResponseBuffer,uint unResponseBufferSize)
+ {
+ uint result = FnTable.DriverDebugRequest(unDeviceIndex,pchRequest,pchResponseBuffer,unResponseBufferSize);
+ return result;
+ }
+}
+
+
public class OpenVRInterop
{
[DllImportAttribute("openvr_api", EntryPoint = "VR_InitInternal", CallingConvention = CallingConvention.Cdecl)]
@@ -3854,6 +3921,7 @@ public enum ETrackedDeviceProperty
Prop_BootloaderVersion_Uint64 = 1044,
Prop_AdditionalSystemReportData_String = 1045,
Prop_CompositeFirmwareVersion_String = 1046,
+ Prop_Firmware_RemindUpdate_Bool = 1047,
Prop_ReportsTimeSinceVSync_Bool = 2000,
Prop_SecondsFromVsyncToPhotons_Float = 2001,
Prop_DisplayFrequency_Float = 2002,
@@ -3926,6 +3994,8 @@ public enum ETrackedDeviceProperty
Prop_CameraDistortionFunction_Int32_Array = 2072,
Prop_CameraDistortionCoefficients_Float_Array = 2073,
Prop_ExpectedControllerType_String = 2074,
+ Prop_HmdTrackingStyle_Int32 = 2075,
+ Prop_DriverProvidedChaperoneVisibility_Bool = 2076,
Prop_DisplayAvailableFrameRates_Float_Array = 2080,
Prop_DisplaySupportsMultipleFramerates_Bool = 2081,
Prop_DashboardLayoutPathName_String = 2090,
@@ -3998,6 +4068,13 @@ public enum ETrackedPropertyError
TrackedProp_CannotWriteToWildcards = 12,
TrackedProp_IPCReadFailure = 13,
}
+public enum EHmdTrackingStyle
+{
+ Unknown = 0,
+ Lighthouse = 1,
+ OutsideInCameras = 2,
+ InsideOutCameras = 3,
+}
public enum EVRSubmitFlags
{
Submit_Default = 0,
@@ -4238,6 +4315,7 @@ public enum EShowUIType
ShowUI_ManageTrackers = 1,
ShowUI_Pairing = 3,
ShowUI_Settings = 4,
+ ShowUI_DebugCommands = 5,
}
public enum EHDCPError
{
@@ -4536,6 +4614,8 @@ public enum EVRInitError
Compositor_CreateTextIndexBuffer = 482,
Compositor_CreateMirrorTextures = 483,
Compositor_CreateLastFrameRenderTexture = 484,
+ Compositor_CreateMirrorOverlay = 485,
+ Compositor_FailedToCreateVirtualDisplayBackbuffer = 486,
VendorSpecific_UnableToConnectToOculusRuntime = 1000,
VendorSpecific_WindowsNotInDevMode = 1001,
VendorSpecific_HmdFound_CantOpenDevice = 1101,
@@ -4551,6 +4631,7 @@ public enum EVRInitError
VendorSpecific_HmdFound_UserDataAddressRange = 1111,
VendorSpecific_HmdFound_UserDataError = 1112,
VendorSpecific_HmdFound_ConfigFailedSanityCheck = 1113,
+ VendorSpecific_OculusRuntimeBadInstall = 1114,
Steam_SteamInstallationNotFound = 2000,
LastError = 2001,
}
@@ -4909,6 +4990,11 @@ public enum EIOBufferMode
Write = 2,
Create = 512,
}
+public enum EVRDebugError
+{
+ Success = 0,
+ BadParameter = 1,
+}
[StructLayout(LayoutKind.Explicit)] public struct VREvent_Data_t
{
@@ -5791,6 +5877,557 @@ public enum EIOBufferMode
}
}
}
+[StructLayout(LayoutKind.Sequential)] public struct InputBindingInfo_t
+{
+ public byte rchDevicePathName0,rchDevicePathName1,rchDevicePathName2,rchDevicePathName3,rchDevicePathName4,rchDevicePathName5,rchDevicePathName6,rchDevicePathName7,rchDevicePathName8,rchDevicePathName9,rchDevicePathName10,rchDevicePathName11,rchDevicePathName12,rchDevicePathName13,rchDevicePathName14,rchDevicePathName15,rchDevicePathName16,rchDevicePathName17,rchDevicePathName18,rchDevicePathName19,rchDevicePathName20,rchDevicePathName21,rchDevicePathName22,rchDevicePathName23,rchDevicePathName24,rchDevicePathName25,rchDevicePathName26,rchDevicePathName27,rchDevicePathName28,rchDevicePathName29,rchDevicePathName30,rchDevicePathName31,rchDevicePathName32,rchDevicePathName33,rchDevicePathName34,rchDevicePathName35,rchDevicePathName36,rchDevicePathName37,rchDevicePathName38,rchDevicePathName39,rchDevicePathName40,rchDevicePathName41,rchDevicePathName42,rchDevicePathName43,rchDevicePathName44,rchDevicePathName45,rchDevicePathName46,rchDevicePathName47,rchDevicePathName48,rchDevicePathName49,rchDevicePathName50,rchDevicePathName51,rchDevicePathName52,rchDevicePathName53,rchDevicePathName54,rchDevicePathName55,rchDevicePathName56,rchDevicePathName57,rchDevicePathName58,rchDevicePathName59,rchDevicePathName60,rchDevicePathName61,rchDevicePathName62,rchDevicePathName63,rchDevicePathName64,rchDevicePathName65,rchDevicePathName66,rchDevicePathName67,rchDevicePathName68,rchDevicePathName69,rchDevicePathName70,rchDevicePathName71,rchDevicePathName72,rchDevicePathName73,rchDevicePathName74,rchDevicePathName75,rchDevicePathName76,rchDevicePathName77,rchDevicePathName78,rchDevicePathName79,rchDevicePathName80,rchDevicePathName81,rchDevicePathName82,rchDevicePathName83,rchDevicePathName84,rchDevicePathName85,rchDevicePathName86,rchDevicePathName87,rchDevicePathName88,rchDevicePathName89,rchDevicePathName90,rchDevicePathName91,rchDevicePathName92,rchDevicePathName93,rchDevicePathName94,rchDevicePathName95,rchDevicePathName96,rchDevicePathName97,rchDevicePathName98,rchDevicePathName99,rchDevicePathName100,rchDevicePathName101,rchDevicePathName102,rchDevicePathName103,rchDevicePathName104,rchDevicePathName105,rchDevicePathName106,rchDevicePathName107,rchDevicePathName108,rchDevicePathName109,rchDevicePathName110,rchDevicePathName111,rchDevicePathName112,rchDevicePathName113,rchDevicePathName114,rchDevicePathName115,rchDevicePathName116,rchDevicePathName117,rchDevicePathName118,rchDevicePathName119,rchDevicePathName120,rchDevicePathName121,rchDevicePathName122,rchDevicePathName123,rchDevicePathName124,rchDevicePathName125,rchDevicePathName126,rchDevicePathName127;
+ public string rchDevicePathName
+ {
+ get
+ {
+ return new string(new char[] {
+ (char)rchDevicePathName0,
+ (char)rchDevicePathName1,
+ (char)rchDevicePathName2,
+ (char)rchDevicePathName3,
+ (char)rchDevicePathName4,
+ (char)rchDevicePathName5,
+ (char)rchDevicePathName6,
+ (char)rchDevicePathName7,
+ (char)rchDevicePathName8,
+ (char)rchDevicePathName9,
+ (char)rchDevicePathName10,
+ (char)rchDevicePathName11,
+ (char)rchDevicePathName12,
+ (char)rchDevicePathName13,
+ (char)rchDevicePathName14,
+ (char)rchDevicePathName15,
+ (char)rchDevicePathName16,
+ (char)rchDevicePathName17,
+ (char)rchDevicePathName18,
+ (char)rchDevicePathName19,
+ (char)rchDevicePathName20,
+ (char)rchDevicePathName21,
+ (char)rchDevicePathName22,
+ (char)rchDevicePathName23,
+ (char)rchDevicePathName24,
+ (char)rchDevicePathName25,
+ (char)rchDevicePathName26,
+ (char)rchDevicePathName27,
+ (char)rchDevicePathName28,
+ (char)rchDevicePathName29,
+ (char)rchDevicePathName30,
+ (char)rchDevicePathName31,
+ (char)rchDevicePathName32,
+ (char)rchDevicePathName33,
+ (char)rchDevicePathName34,
+ (char)rchDevicePathName35,
+ (char)rchDevicePathName36,
+ (char)rchDevicePathName37,
+ (char)rchDevicePathName38,
+ (char)rchDevicePathName39,
+ (char)rchDevicePathName40,
+ (char)rchDevicePathName41,
+ (char)rchDevicePathName42,
+ (char)rchDevicePathName43,
+ (char)rchDevicePathName44,
+ (char)rchDevicePathName45,
+ (char)rchDevicePathName46,
+ (char)rchDevicePathName47,
+ (char)rchDevicePathName48,
+ (char)rchDevicePathName49,
+ (char)rchDevicePathName50,
+ (char)rchDevicePathName51,
+ (char)rchDevicePathName52,
+ (char)rchDevicePathName53,
+ (char)rchDevicePathName54,
+ (char)rchDevicePathName55,
+ (char)rchDevicePathName56,
+ (char)rchDevicePathName57,
+ (char)rchDevicePathName58,
+ (char)rchDevicePathName59,
+ (char)rchDevicePathName60,
+ (char)rchDevicePathName61,
+ (char)rchDevicePathName62,
+ (char)rchDevicePathName63,
+ (char)rchDevicePathName64,
+ (char)rchDevicePathName65,
+ (char)rchDevicePathName66,
+ (char)rchDevicePathName67,
+ (char)rchDevicePathName68,
+ (char)rchDevicePathName69,
+ (char)rchDevicePathName70,
+ (char)rchDevicePathName71,
+ (char)rchDevicePathName72,
+ (char)rchDevicePathName73,
+ (char)rchDevicePathName74,
+ (char)rchDevicePathName75,
+ (char)rchDevicePathName76,
+ (char)rchDevicePathName77,
+ (char)rchDevicePathName78,
+ (char)rchDevicePathName79,
+ (char)rchDevicePathName80,
+ (char)rchDevicePathName81,
+ (char)rchDevicePathName82,
+ (char)rchDevicePathName83,
+ (char)rchDevicePathName84,
+ (char)rchDevicePathName85,
+ (char)rchDevicePathName86,
+ (char)rchDevicePathName87,
+ (char)rchDevicePathName88,
+ (char)rchDevicePathName89,
+ (char)rchDevicePathName90,
+ (char)rchDevicePathName91,
+ (char)rchDevicePathName92,
+ (char)rchDevicePathName93,
+ (char)rchDevicePathName94,
+ (char)rchDevicePathName95,
+ (char)rchDevicePathName96,
+ (char)rchDevicePathName97,
+ (char)rchDevicePathName98,
+ (char)rchDevicePathName99,
+ (char)rchDevicePathName100,
+ (char)rchDevicePathName101,
+ (char)rchDevicePathName102,
+ (char)rchDevicePathName103,
+ (char)rchDevicePathName104,
+ (char)rchDevicePathName105,
+ (char)rchDevicePathName106,
+ (char)rchDevicePathName107,
+ (char)rchDevicePathName108,
+ (char)rchDevicePathName109,
+ (char)rchDevicePathName110,
+ (char)rchDevicePathName111,
+ (char)rchDevicePathName112,
+ (char)rchDevicePathName113,
+ (char)rchDevicePathName114,
+ (char)rchDevicePathName115,
+ (char)rchDevicePathName116,
+ (char)rchDevicePathName117,
+ (char)rchDevicePathName118,
+ (char)rchDevicePathName119,
+ (char)rchDevicePathName120,
+ (char)rchDevicePathName121,
+ (char)rchDevicePathName122,
+ (char)rchDevicePathName123,
+ (char)rchDevicePathName124,
+ (char)rchDevicePathName125,
+ (char)rchDevicePathName126,
+ (char)rchDevicePathName127
+ }).TrimEnd('\0');
+ }
+ }
+ public byte rchInputPathName0,rchInputPathName1,rchInputPathName2,rchInputPathName3,rchInputPathName4,rchInputPathName5,rchInputPathName6,rchInputPathName7,rchInputPathName8,rchInputPathName9,rchInputPathName10,rchInputPathName11,rchInputPathName12,rchInputPathName13,rchInputPathName14,rchInputPathName15,rchInputPathName16,rchInputPathName17,rchInputPathName18,rchInputPathName19,rchInputPathName20,rchInputPathName21,rchInputPathName22,rchInputPathName23,rchInputPathName24,rchInputPathName25,rchInputPathName26,rchInputPathName27,rchInputPathName28,rchInputPathName29,rchInputPathName30,rchInputPathName31,rchInputPathName32,rchInputPathName33,rchInputPathName34,rchInputPathName35,rchInputPathName36,rchInputPathName37,rchInputPathName38,rchInputPathName39,rchInputPathName40,rchInputPathName41,rchInputPathName42,rchInputPathName43,rchInputPathName44,rchInputPathName45,rchInputPathName46,rchInputPathName47,rchInputPathName48,rchInputPathName49,rchInputPathName50,rchInputPathName51,rchInputPathName52,rchInputPathName53,rchInputPathName54,rchInputPathName55,rchInputPathName56,rchInputPathName57,rchInputPathName58,rchInputPathName59,rchInputPathName60,rchInputPathName61,rchInputPathName62,rchInputPathName63,rchInputPathName64,rchInputPathName65,rchInputPathName66,rchInputPathName67,rchInputPathName68,rchInputPathName69,rchInputPathName70,rchInputPathName71,rchInputPathName72,rchInputPathName73,rchInputPathName74,rchInputPathName75,rchInputPathName76,rchInputPathName77,rchInputPathName78,rchInputPathName79,rchInputPathName80,rchInputPathName81,rchInputPathName82,rchInputPathName83,rchInputPathName84,rchInputPathName85,rchInputPathName86,rchInputPathName87,rchInputPathName88,rchInputPathName89,rchInputPathName90,rchInputPathName91,rchInputPathName92,rchInputPathName93,rchInputPathName94,rchInputPathName95,rchInputPathName96,rchInputPathName97,rchInputPathName98,rchInputPathName99,rchInputPathName100,rchInputPathName101,rchInputPathName102,rchInputPathName103,rchInputPathName104,rchInputPathName105,rchInputPathName106,rchInputPathName107,rchInputPathName108,rchInputPathName109,rchInputPathName110,rchInputPathName111,rchInputPathName112,rchInputPathName113,rchInputPathName114,rchInputPathName115,rchInputPathName116,rchInputPathName117,rchInputPathName118,rchInputPathName119,rchInputPathName120,rchInputPathName121,rchInputPathName122,rchInputPathName123,rchInputPathName124,rchInputPathName125,rchInputPathName126,rchInputPathName127;
+ public string rchInputPathName
+ {
+ get
+ {
+ return new string(new char[] {
+ (char)rchInputPathName0,
+ (char)rchInputPathName1,
+ (char)rchInputPathName2,
+ (char)rchInputPathName3,
+ (char)rchInputPathName4,
+ (char)rchInputPathName5,
+ (char)rchInputPathName6,
+ (char)rchInputPathName7,
+ (char)rchInputPathName8,
+ (char)rchInputPathName9,
+ (char)rchInputPathName10,
+ (char)rchInputPathName11,
+ (char)rchInputPathName12,
+ (char)rchInputPathName13,
+ (char)rchInputPathName14,
+ (char)rchInputPathName15,
+ (char)rchInputPathName16,
+ (char)rchInputPathName17,
+ (char)rchInputPathName18,
+ (char)rchInputPathName19,
+ (char)rchInputPathName20,
+ (char)rchInputPathName21,
+ (char)rchInputPathName22,
+ (char)rchInputPathName23,
+ (char)rchInputPathName24,
+ (char)rchInputPathName25,
+ (char)rchInputPathName26,
+ (char)rchInputPathName27,
+ (char)rchInputPathName28,
+ (char)rchInputPathName29,
+ (char)rchInputPathName30,
+ (char)rchInputPathName31,
+ (char)rchInputPathName32,
+ (char)rchInputPathName33,
+ (char)rchInputPathName34,
+ (char)rchInputPathName35,
+ (char)rchInputPathName36,
+ (char)rchInputPathName37,
+ (char)rchInputPathName38,
+ (char)rchInputPathName39,
+ (char)rchInputPathName40,
+ (char)rchInputPathName41,
+ (char)rchInputPathName42,
+ (char)rchInputPathName43,
+ (char)rchInputPathName44,
+ (char)rchInputPathName45,
+ (char)rchInputPathName46,
+ (char)rchInputPathName47,
+ (char)rchInputPathName48,
+ (char)rchInputPathName49,
+ (char)rchInputPathName50,
+ (char)rchInputPathName51,
+ (char)rchInputPathName52,
+ (char)rchInputPathName53,
+ (char)rchInputPathName54,
+ (char)rchInputPathName55,
+ (char)rchInputPathName56,
+ (char)rchInputPathName57,
+ (char)rchInputPathName58,
+ (char)rchInputPathName59,
+ (char)rchInputPathName60,
+ (char)rchInputPathName61,
+ (char)rchInputPathName62,
+ (char)rchInputPathName63,
+ (char)rchInputPathName64,
+ (char)rchInputPathName65,
+ (char)rchInputPathName66,
+ (char)rchInputPathName67,
+ (char)rchInputPathName68,
+ (char)rchInputPathName69,
+ (char)rchInputPathName70,
+ (char)rchInputPathName71,
+ (char)rchInputPathName72,
+ (char)rchInputPathName73,
+ (char)rchInputPathName74,
+ (char)rchInputPathName75,
+ (char)rchInputPathName76,
+ (char)rchInputPathName77,
+ (char)rchInputPathName78,
+ (char)rchInputPathName79,
+ (char)rchInputPathName80,
+ (char)rchInputPathName81,
+ (char)rchInputPathName82,
+ (char)rchInputPathName83,
+ (char)rchInputPathName84,
+ (char)rchInputPathName85,
+ (char)rchInputPathName86,
+ (char)rchInputPathName87,
+ (char)rchInputPathName88,
+ (char)rchInputPathName89,
+ (char)rchInputPathName90,
+ (char)rchInputPathName91,
+ (char)rchInputPathName92,
+ (char)rchInputPathName93,
+ (char)rchInputPathName94,
+ (char)rchInputPathName95,
+ (char)rchInputPathName96,
+ (char)rchInputPathName97,
+ (char)rchInputPathName98,
+ (char)rchInputPathName99,
+ (char)rchInputPathName100,
+ (char)rchInputPathName101,
+ (char)rchInputPathName102,
+ (char)rchInputPathName103,
+ (char)rchInputPathName104,
+ (char)rchInputPathName105,
+ (char)rchInputPathName106,
+ (char)rchInputPathName107,
+ (char)rchInputPathName108,
+ (char)rchInputPathName109,
+ (char)rchInputPathName110,
+ (char)rchInputPathName111,
+ (char)rchInputPathName112,
+ (char)rchInputPathName113,
+ (char)rchInputPathName114,
+ (char)rchInputPathName115,
+ (char)rchInputPathName116,
+ (char)rchInputPathName117,
+ (char)rchInputPathName118,
+ (char)rchInputPathName119,
+ (char)rchInputPathName120,
+ (char)rchInputPathName121,
+ (char)rchInputPathName122,
+ (char)rchInputPathName123,
+ (char)rchInputPathName124,
+ (char)rchInputPathName125,
+ (char)rchInputPathName126,
+ (char)rchInputPathName127
+ }).TrimEnd('\0');
+ }
+ }
+ public byte rchModeName0,rchModeName1,rchModeName2,rchModeName3,rchModeName4,rchModeName5,rchModeName6,rchModeName7,rchModeName8,rchModeName9,rchModeName10,rchModeName11,rchModeName12,rchModeName13,rchModeName14,rchModeName15,rchModeName16,rchModeName17,rchModeName18,rchModeName19,rchModeName20,rchModeName21,rchModeName22,rchModeName23,rchModeName24,rchModeName25,rchModeName26,rchModeName27,rchModeName28,rchModeName29,rchModeName30,rchModeName31,rchModeName32,rchModeName33,rchModeName34,rchModeName35,rchModeName36,rchModeName37,rchModeName38,rchModeName39,rchModeName40,rchModeName41,rchModeName42,rchModeName43,rchModeName44,rchModeName45,rchModeName46,rchModeName47,rchModeName48,rchModeName49,rchModeName50,rchModeName51,rchModeName52,rchModeName53,rchModeName54,rchModeName55,rchModeName56,rchModeName57,rchModeName58,rchModeName59,rchModeName60,rchModeName61,rchModeName62,rchModeName63,rchModeName64,rchModeName65,rchModeName66,rchModeName67,rchModeName68,rchModeName69,rchModeName70,rchModeName71,rchModeName72,rchModeName73,rchModeName74,rchModeName75,rchModeName76,rchModeName77,rchModeName78,rchModeName79,rchModeName80,rchModeName81,rchModeName82,rchModeName83,rchModeName84,rchModeName85,rchModeName86,rchModeName87,rchModeName88,rchModeName89,rchModeName90,rchModeName91,rchModeName92,rchModeName93,rchModeName94,rchModeName95,rchModeName96,rchModeName97,rchModeName98,rchModeName99,rchModeName100,rchModeName101,rchModeName102,rchModeName103,rchModeName104,rchModeName105,rchModeName106,rchModeName107,rchModeName108,rchModeName109,rchModeName110,rchModeName111,rchModeName112,rchModeName113,rchModeName114,rchModeName115,rchModeName116,rchModeName117,rchModeName118,rchModeName119,rchModeName120,rchModeName121,rchModeName122,rchModeName123,rchModeName124,rchModeName125,rchModeName126,rchModeName127;
+ public string rchModeName
+ {
+ get
+ {
+ return new string(new char[] {
+ (char)rchModeName0,
+ (char)rchModeName1,
+ (char)rchModeName2,
+ (char)rchModeName3,
+ (char)rchModeName4,
+ (char)rchModeName5,
+ (char)rchModeName6,
+ (char)rchModeName7,
+ (char)rchModeName8,
+ (char)rchModeName9,
+ (char)rchModeName10,
+ (char)rchModeName11,
+ (char)rchModeName12,
+ (char)rchModeName13,
+ (char)rchModeName14,
+ (char)rchModeName15,
+ (char)rchModeName16,
+ (char)rchModeName17,
+ (char)rchModeName18,
+ (char)rchModeName19,
+ (char)rchModeName20,
+ (char)rchModeName21,
+ (char)rchModeName22,
+ (char)rchModeName23,
+ (char)rchModeName24,
+ (char)rchModeName25,
+ (char)rchModeName26,
+ (char)rchModeName27,
+ (char)rchModeName28,
+ (char)rchModeName29,
+ (char)rchModeName30,
+ (char)rchModeName31,
+ (char)rchModeName32,
+ (char)rchModeName33,
+ (char)rchModeName34,
+ (char)rchModeName35,
+ (char)rchModeName36,
+ (char)rchModeName37,
+ (char)rchModeName38,
+ (char)rchModeName39,
+ (char)rchModeName40,
+ (char)rchModeName41,
+ (char)rchModeName42,
+ (char)rchModeName43,
+ (char)rchModeName44,
+ (char)rchModeName45,
+ (char)rchModeName46,
+ (char)rchModeName47,
+ (char)rchModeName48,
+ (char)rchModeName49,
+ (char)rchModeName50,
+ (char)rchModeName51,
+ (char)rchModeName52,
+ (char)rchModeName53,
+ (char)rchModeName54,
+ (char)rchModeName55,
+ (char)rchModeName56,
+ (char)rchModeName57,
+ (char)rchModeName58,
+ (char)rchModeName59,
+ (char)rchModeName60,
+ (char)rchModeName61,
+ (char)rchModeName62,
+ (char)rchModeName63,
+ (char)rchModeName64,
+ (char)rchModeName65,
+ (char)rchModeName66,
+ (char)rchModeName67,
+ (char)rchModeName68,
+ (char)rchModeName69,
+ (char)rchModeName70,
+ (char)rchModeName71,
+ (char)rchModeName72,
+ (char)rchModeName73,
+ (char)rchModeName74,
+ (char)rchModeName75,
+ (char)rchModeName76,
+ (char)rchModeName77,
+ (char)rchModeName78,
+ (char)rchModeName79,
+ (char)rchModeName80,
+ (char)rchModeName81,
+ (char)rchModeName82,
+ (char)rchModeName83,
+ (char)rchModeName84,
+ (char)rchModeName85,
+ (char)rchModeName86,
+ (char)rchModeName87,
+ (char)rchModeName88,
+ (char)rchModeName89,
+ (char)rchModeName90,
+ (char)rchModeName91,
+ (char)rchModeName92,
+ (char)rchModeName93,
+ (char)rchModeName94,
+ (char)rchModeName95,
+ (char)rchModeName96,
+ (char)rchModeName97,
+ (char)rchModeName98,
+ (char)rchModeName99,
+ (char)rchModeName100,
+ (char)rchModeName101,
+ (char)rchModeName102,
+ (char)rchModeName103,
+ (char)rchModeName104,
+ (char)rchModeName105,
+ (char)rchModeName106,
+ (char)rchModeName107,
+ (char)rchModeName108,
+ (char)rchModeName109,
+ (char)rchModeName110,
+ (char)rchModeName111,
+ (char)rchModeName112,
+ (char)rchModeName113,
+ (char)rchModeName114,
+ (char)rchModeName115,
+ (char)rchModeName116,
+ (char)rchModeName117,
+ (char)rchModeName118,
+ (char)rchModeName119,
+ (char)rchModeName120,
+ (char)rchModeName121,
+ (char)rchModeName122,
+ (char)rchModeName123,
+ (char)rchModeName124,
+ (char)rchModeName125,
+ (char)rchModeName126,
+ (char)rchModeName127
+ }).TrimEnd('\0');
+ }
+ }
+ public byte rchSlotName0,rchSlotName1,rchSlotName2,rchSlotName3,rchSlotName4,rchSlotName5,rchSlotName6,rchSlotName7,rchSlotName8,rchSlotName9,rchSlotName10,rchSlotName11,rchSlotName12,rchSlotName13,rchSlotName14,rchSlotName15,rchSlotName16,rchSlotName17,rchSlotName18,rchSlotName19,rchSlotName20,rchSlotName21,rchSlotName22,rchSlotName23,rchSlotName24,rchSlotName25,rchSlotName26,rchSlotName27,rchSlotName28,rchSlotName29,rchSlotName30,rchSlotName31,rchSlotName32,rchSlotName33,rchSlotName34,rchSlotName35,rchSlotName36,rchSlotName37,rchSlotName38,rchSlotName39,rchSlotName40,rchSlotName41,rchSlotName42,rchSlotName43,rchSlotName44,rchSlotName45,rchSlotName46,rchSlotName47,rchSlotName48,rchSlotName49,rchSlotName50,rchSlotName51,rchSlotName52,rchSlotName53,rchSlotName54,rchSlotName55,rchSlotName56,rchSlotName57,rchSlotName58,rchSlotName59,rchSlotName60,rchSlotName61,rchSlotName62,rchSlotName63,rchSlotName64,rchSlotName65,rchSlotName66,rchSlotName67,rchSlotName68,rchSlotName69,rchSlotName70,rchSlotName71,rchSlotName72,rchSlotName73,rchSlotName74,rchSlotName75,rchSlotName76,rchSlotName77,rchSlotName78,rchSlotName79,rchSlotName80,rchSlotName81,rchSlotName82,rchSlotName83,rchSlotName84,rchSlotName85,rchSlotName86,rchSlotName87,rchSlotName88,rchSlotName89,rchSlotName90,rchSlotName91,rchSlotName92,rchSlotName93,rchSlotName94,rchSlotName95,rchSlotName96,rchSlotName97,rchSlotName98,rchSlotName99,rchSlotName100,rchSlotName101,rchSlotName102,rchSlotName103,rchSlotName104,rchSlotName105,rchSlotName106,rchSlotName107,rchSlotName108,rchSlotName109,rchSlotName110,rchSlotName111,rchSlotName112,rchSlotName113,rchSlotName114,rchSlotName115,rchSlotName116,rchSlotName117,rchSlotName118,rchSlotName119,rchSlotName120,rchSlotName121,rchSlotName122,rchSlotName123,rchSlotName124,rchSlotName125,rchSlotName126,rchSlotName127;
+ public string rchSlotName
+ {
+ get
+ {
+ return new string(new char[] {
+ (char)rchSlotName0,
+ (char)rchSlotName1,
+ (char)rchSlotName2,
+ (char)rchSlotName3,
+ (char)rchSlotName4,
+ (char)rchSlotName5,
+ (char)rchSlotName6,
+ (char)rchSlotName7,
+ (char)rchSlotName8,
+ (char)rchSlotName9,
+ (char)rchSlotName10,
+ (char)rchSlotName11,
+ (char)rchSlotName12,
+ (char)rchSlotName13,
+ (char)rchSlotName14,
+ (char)rchSlotName15,
+ (char)rchSlotName16,
+ (char)rchSlotName17,
+ (char)rchSlotName18,
+ (char)rchSlotName19,
+ (char)rchSlotName20,
+ (char)rchSlotName21,
+ (char)rchSlotName22,
+ (char)rchSlotName23,
+ (char)rchSlotName24,
+ (char)rchSlotName25,
+ (char)rchSlotName26,
+ (char)rchSlotName27,
+ (char)rchSlotName28,
+ (char)rchSlotName29,
+ (char)rchSlotName30,
+ (char)rchSlotName31,
+ (char)rchSlotName32,
+ (char)rchSlotName33,
+ (char)rchSlotName34,
+ (char)rchSlotName35,
+ (char)rchSlotName36,
+ (char)rchSlotName37,
+ (char)rchSlotName38,
+ (char)rchSlotName39,
+ (char)rchSlotName40,
+ (char)rchSlotName41,
+ (char)rchSlotName42,
+ (char)rchSlotName43,
+ (char)rchSlotName44,
+ (char)rchSlotName45,
+ (char)rchSlotName46,
+ (char)rchSlotName47,
+ (char)rchSlotName48,
+ (char)rchSlotName49,
+ (char)rchSlotName50,
+ (char)rchSlotName51,
+ (char)rchSlotName52,
+ (char)rchSlotName53,
+ (char)rchSlotName54,
+ (char)rchSlotName55,
+ (char)rchSlotName56,
+ (char)rchSlotName57,
+ (char)rchSlotName58,
+ (char)rchSlotName59,
+ (char)rchSlotName60,
+ (char)rchSlotName61,
+ (char)rchSlotName62,
+ (char)rchSlotName63,
+ (char)rchSlotName64,
+ (char)rchSlotName65,
+ (char)rchSlotName66,
+ (char)rchSlotName67,
+ (char)rchSlotName68,
+ (char)rchSlotName69,
+ (char)rchSlotName70,
+ (char)rchSlotName71,
+ (char)rchSlotName72,
+ (char)rchSlotName73,
+ (char)rchSlotName74,
+ (char)rchSlotName75,
+ (char)rchSlotName76,
+ (char)rchSlotName77,
+ (char)rchSlotName78,
+ (char)rchSlotName79,
+ (char)rchSlotName80,
+ (char)rchSlotName81,
+ (char)rchSlotName82,
+ (char)rchSlotName83,
+ (char)rchSlotName84,
+ (char)rchSlotName85,
+ (char)rchSlotName86,
+ (char)rchSlotName87,
+ (char)rchSlotName88,
+ (char)rchSlotName89,
+ (char)rchSlotName90,
+ (char)rchSlotName91,
+ (char)rchSlotName92,
+ (char)rchSlotName93,
+ (char)rchSlotName94,
+ (char)rchSlotName95,
+ (char)rchSlotName96,
+ (char)rchSlotName97,
+ (char)rchSlotName98,
+ (char)rchSlotName99,
+ (char)rchSlotName100,
+ (char)rchSlotName101,
+ (char)rchSlotName102,
+ (char)rchSlotName103,
+ (char)rchSlotName104,
+ (char)rchSlotName105,
+ (char)rchSlotName106,
+ (char)rchSlotName107,
+ (char)rchSlotName108,
+ (char)rchSlotName109,
+ (char)rchSlotName110,
+ (char)rchSlotName111,
+ (char)rchSlotName112,
+ (char)rchSlotName113,
+ (char)rchSlotName114,
+ (char)rchSlotName115,
+ (char)rchSlotName116,
+ (char)rchSlotName117,
+ (char)rchSlotName118,
+ (char)rchSlotName119,
+ (char)rchSlotName120,
+ (char)rchSlotName121,
+ (char)rchSlotName122,
+ (char)rchSlotName123,
+ (char)rchSlotName124,
+ (char)rchSlotName125,
+ (char)rchSlotName126,
+ (char)rchSlotName127
+ }).TrimEnd('\0');
+ }
+ }
+}
[StructLayout(LayoutKind.Sequential)] public struct VRActiveActionSet_t
{
public ulong ulActionSet;
@@ -5833,6 +6470,7 @@ public enum EIOBufferMode
public IntPtr m_pVRInput; // class vr::IVRInput *
public IntPtr m_pVRIOBuffer; // class vr::IVRIOBuffer *
public IntPtr m_pVRSpatialAnchors; // class vr::IVRSpatialAnchors *
+ public IntPtr m_pVRDebug; // class vr::IVRDebug *
public IntPtr m_pVRNotifications; // class vr::IVRNotifications *
}
@@ -5929,7 +6567,7 @@ public class OpenVR
public const ulong k_ulOverlayHandleInvalid = 0;
public const uint k_unMaxDistortionFunctionParameters = 8;
public const uint k_unScreenshotHandleInvalid = 0;
- public const string IVRSystem_Version = "IVRSystem_019";
+ public const string IVRSystem_Version = "IVRSystem_020";
public const string IVRExtendedDisplay_Version = "IVRExtendedDisplay_001";
public const string IVRTrackedCamera_Version = "IVRTrackedCamera_005";
public const uint k_unMaxApplicationKeyLength = 128;
@@ -6105,6 +6743,7 @@ public class OpenVR
public const string k_pch_Dashboard_UseWebPowerMenu = "useWebPowerMenu";
public const string k_pch_modelskin_Section = "modelskins";
public const string k_pch_Driver_Enable_Bool = "enable";
+ public const string k_pch_Driver_LoadPriority_Int32 = "loadPriority";
public const string k_pch_WebInterface_Section = "WebInterface";
public const string k_pch_WebInterface_WebEnable_Bool = "WebEnable";
public const string k_pch_WebInterface_WebPort_String = "WebPort";
@@ -6128,11 +6767,12 @@ 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_006";
+ public const string IVRInput_Version = "IVRInput_007";
public const ulong k_ulInvalidIOBufferHandle = 0;
public const string IVRIOBuffer_Version = "IVRIOBuffer_002";
public const uint k_ulInvalidSpatialAnchorHandle = 0;
public const string IVRSpatialAnchors_Version = "IVRSpatialAnchors_001";
+ public const string IVRDebug_Version = "IVRDebug_001";
static uint VRToken { get; set; }
@@ -6159,6 +6799,7 @@ public class OpenVR
m_pVRIOBuffer = null;
m_pVRSpatialAnchors = null;
m_pVRNotifications = null;
+ m_pVRDebug = null;
}
void CheckClear()
@@ -6352,6 +6993,19 @@ public class OpenVR
return m_pVRSpatialAnchors;
}
+ public CVRDebug VRDebug()
+ {
+ CheckClear();
+ if (m_pVRDebug == null)
+ {
+ var eError = EVRInitError.None;
+ var pInterface = OpenVRInterop.GetGenericInterface(FnTable_Prefix + IVRDebug_Version, ref eError);
+ if (pInterface != IntPtr.Zero && eError == EVRInitError.None)
+ m_pVRDebug = new CVRDebug(pInterface);
+ }
+ return m_pVRDebug;
+ }
+
public CVRNotifications VRNotifications()
{
CheckClear();
@@ -6380,6 +7034,7 @@ public class OpenVR
private CVRIOBuffer m_pVRIOBuffer;
private CVRSpatialAnchors m_pVRSpatialAnchors;
private CVRNotifications m_pVRNotifications;
+ private CVRDebug m_pVRDebug;
};
private static COpenVRContext _OpenVRInternal_ModuleContext = null;
@@ -6408,6 +7063,8 @@ public class OpenVR
public static CVRIOBuffer IOBuffer { get { return OpenVRInternal_ModuleContext.VRIOBuffer(); } }
public static CVRSpatialAnchors SpatialAnchors { get { return OpenVRInternal_ModuleContext.VRSpatialAnchors(); } }
public static CVRNotifications Notifications { get { return OpenVRInternal_ModuleContext.VRNotifications(); } }
+ public static CVRDebug Debug { get { return OpenVRInternal_ModuleContext.VRDebug(); } }
+
/** Finds the active installation of vrclient.dll and initializes it */
public static CVRSystem Init(ref EVRInitError peError, EVRApplicationType eApplicationType = EVRApplicationType.VRApplication_Scene, string pchStartupInfo= "")
diff --git a/headers/openvr_api.json b/headers/openvr_api.json
index 6dc415f..55f2fa3 100644
--- a/headers/openvr_api.json
+++ b/headers/openvr_api.json
@@ -23,6 +23,7 @@
,{"typedef": "vr::TextureID_t","type": "int32_t"}
,{"typedef": "vr::VRNotificationId","type": "uint32_t"}
,{"typedef": "vr::IOBufferHandle_t","type": "uint64_t"}
+,{"typedef": "vr::VrProfilerEventHandle_t","type": "uint64_t"}
,{"typedef": "vr::HmdError","type": "enum vr::EVRInitError"}
,{"typedef": "vr::Hmd_Eye","type": "enum vr::EVREye"}
,{"typedef": "vr::ColorSpace","type": "enum vr::EColorSpace"}
@@ -144,6 +145,7 @@
,{"name": "Prop_BootloaderVersion_Uint64","value": "1044"}
,{"name": "Prop_AdditionalSystemReportData_String","value": "1045"}
,{"name": "Prop_CompositeFirmwareVersion_String","value": "1046"}
+ ,{"name": "Prop_Firmware_RemindUpdate_Bool","value": "1047"}
,{"name": "Prop_ReportsTimeSinceVSync_Bool","value": "2000"}
,{"name": "Prop_SecondsFromVsyncToPhotons_Float","value": "2001"}
,{"name": "Prop_DisplayFrequency_Float","value": "2002"}
@@ -216,6 +218,8 @@
,{"name": "Prop_CameraDistortionFunction_Int32_Array","value": "2072"}
,{"name": "Prop_CameraDistortionCoefficients_Float_Array","value": "2073"}
,{"name": "Prop_ExpectedControllerType_String","value": "2074"}
+ ,{"name": "Prop_HmdTrackingStyle_Int32","value": "2075"}
+ ,{"name": "Prop_DriverProvidedChaperoneVisibility_Bool","value": "2076"}
,{"name": "Prop_DisplayAvailableFrameRates_Float_Array","value": "2080"}
,{"name": "Prop_DisplaySupportsMultipleFramerates_Bool","value": "2081"}
,{"name": "Prop_DashboardLayoutPathName_String","value": "2090"}
@@ -287,6 +291,12 @@
,{"name": "TrackedProp_CannotWriteToWildcards","value": "12"}
,{"name": "TrackedProp_IPCReadFailure","value": "13"}
]}
+, {"enumname": "vr::EHmdTrackingStyle","values": [
+ {"name": "HmdTrackingStyle_Unknown","value": "0"}
+ ,{"name": "HmdTrackingStyle_Lighthouse","value": "1"}
+ ,{"name": "HmdTrackingStyle_OutsideInCameras","value": "2"}
+ ,{"name": "HmdTrackingStyle_InsideOutCameras","value": "3"}
+]}
, {"enumname": "vr::EVRSubmitFlags","values": [
{"name": "Submit_Default","value": "0"}
,{"name": "Submit_LensDistortionAlreadyApplied","value": "1"}
@@ -519,6 +529,7 @@
,{"name": "ShowUI_ManageTrackers","value": "1"}
,{"name": "ShowUI_Pairing","value": "3"}
,{"name": "ShowUI_Settings","value": "4"}
+ ,{"name": "ShowUI_DebugCommands","value": "5"}
]}
, {"enumname": "vr::EHDCPError","values": [
{"name": "HDCPError_None","value": "0"}
@@ -803,6 +814,8 @@
,{"name": "VRInitError_Compositor_CreateTextIndexBuffer","value": "482"}
,{"name": "VRInitError_Compositor_CreateMirrorTextures","value": "483"}
,{"name": "VRInitError_Compositor_CreateLastFrameRenderTexture","value": "484"}
+ ,{"name": "VRInitError_Compositor_CreateMirrorOverlay","value": "485"}
+ ,{"name": "VRInitError_Compositor_FailedToCreateVirtualDisplayBackbuffer","value": "486"}
,{"name": "VRInitError_VendorSpecific_UnableToConnectToOculusRuntime","value": "1000"}
,{"name": "VRInitError_VendorSpecific_WindowsNotInDevMode","value": "1001"}
,{"name": "VRInitError_VendorSpecific_HmdFound_CantOpenDevice","value": "1101"}
@@ -818,6 +831,7 @@
,{"name": "VRInitError_VendorSpecific_HmdFound_UserDataAddressRange","value": "1111"}
,{"name": "VRInitError_VendorSpecific_HmdFound_UserDataError","value": "1112"}
,{"name": "VRInitError_VendorSpecific_HmdFound_ConfigFailedSanityCheck","value": "1113"}
+ ,{"name": "VRInitError_VendorSpecific_OculusRuntimeBadInstall","value": "1114"}
,{"name": "VRInitError_Steam_SteamInstallationNotFound","value": "2000"}
,{"name": "VRInitError_LastError","value": "2001"}
]}
@@ -1136,6 +1150,10 @@
,{"name": "IOBufferMode_Write","value": "2"}
,{"name": "IOBufferMode_Create","value": "512"}
]}
+, {"enumname": "vr::EVRDebugError","values": [
+ {"name": "VRDebugError_Success","value": "0"}
+ ,{"name": "VRDebugError_BadParameter","value": "1"}
+]}
],
"consts":[{
"constname": "k_nDriverNone","consttype": "const uint32_t", "constval": "4294967295"}
@@ -1218,7 +1236,7 @@
,{
"constname": "k_unScreenshotHandleInvalid","consttype": "const uint32_t", "constval": "0"}
,{
- "constname": "IVRSystem_Version","consttype": "const char *const", "constval": "IVRSystem_019"}
+ "constname": "IVRSystem_Version","consttype": "const char *const", "constval": "IVRSystem_020"}
,{
"constname": "IVRExtendedDisplay_Version","consttype": "const char *const", "constval": "IVRExtendedDisplay_001"}
,{
@@ -1570,6 +1588,8 @@
,{
"constname": "k_pch_Driver_Enable_Bool","consttype": "const char *const", "constval": "enable"}
,{
+ "constname": "k_pch_Driver_LoadPriority_Int32","consttype": "const char *const", "constval": "loadPriority"}
+,{
"constname": "k_pch_WebInterface_Section","consttype": "const char *const", "constval": "WebInterface"}
,{
"constname": "k_pch_WebInterface_WebEnable_Bool","consttype": "const char *const", "constval": "WebEnable"}
@@ -1616,7 +1636,7 @@
,{
"constname": "k_unMaxBoneNameLength","consttype": "const uint32_t", "constval": "32"}
,{
- "constname": "IVRInput_Version","consttype": "const char *const", "constval": "IVRInput_006"}
+ "constname": "IVRInput_Version","consttype": "const char *const", "constval": "IVRInput_007"}
,{
"constname": "k_ulInvalidIOBufferHandle","consttype": "const uint64_t", "constval": "0"}
,{
@@ -1625,6 +1645,8 @@
"constname": "k_ulInvalidSpatialAnchorHandle","consttype": "const SpatialAnchorHandle_t", "constval": "0"}
,{
"constname": "IVRSpatialAnchors_Version","consttype": "const char *const", "constval": "IVRSpatialAnchors_001"}
+,{
+ "constname": "IVRDebug_Version","consttype": "const char *const", "constval": "IVRDebug_001"}
],
"structs":[{"struct": "vr::HmdMatrix34_t","fields": [
{ "fieldname": "m", "fieldtype": "float [3][4]"}]}
@@ -2018,6 +2040,11 @@
{ "fieldname": "devicePath", "fieldtype": "VRInputValueHandle_t"},
{ "fieldname": "trackedDeviceIndex", "fieldtype": "TrackedDeviceIndex_t"},
{ "fieldname": "rchRenderModelComponentName", "fieldtype": "char [128]"}]}
+,{"struct": "vr::InputBindingInfo_t","fields": [
+{ "fieldname": "rchDevicePathName", "fieldtype": "char [128]"},
+{ "fieldname": "rchInputPathName", "fieldtype": "char [128]"},
+{ "fieldname": "rchModeName", "fieldtype": "char [128]"},
+{ "fieldname": "rchSlotName", "fieldtype": "char [128]"}]}
,{"struct": "vr::VRActiveActionSet_t","fields": [
{ "fieldname": "ulActionSet", "fieldtype": "VRActionSetHandle_t"},
{ "fieldname": "ulRestrictedToDevice", "fieldtype": "VRInputValueHandle_t"},
@@ -2046,6 +2073,7 @@
{ "fieldname": "m_pVRInput", "fieldtype": "class vr::IVRInput *"},
{ "fieldname": "m_pVRIOBuffer", "fieldtype": "class vr::IVRIOBuffer *"},
{ "fieldname": "m_pVRSpatialAnchors", "fieldtype": "class vr::IVRSpatialAnchors *"},
+{ "fieldname": "m_pVRDebug", "fieldtype": "class vr::IVRDebug *"},
{ "fieldname": "m_pVRNotifications", "fieldtype": "class vr::IVRNotifications *"}]}
],
"methods":[{
@@ -2420,17 +2448,6 @@
}
,{
"classname": "vr::IVRSystem",
- "methodname": "DriverDebugRequest",
- "returntype": "uint32_t",
- "params": [
-{ "paramname": "unDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
-{ "paramname": "pchRequest" ,"paramtype": "const char *"},
-{ "paramname": "pchResponseBuffer" ,"out_string": " " ,"paramtype": "char *"},
-{ "paramname": "unResponseBufferSize" ,"paramtype": "uint32_t"}
- ]
-}
-,{
- "classname": "vr::IVRSystem",
"methodname": "PerformFirmwareUpdate",
"returntype": "vr::EVRFirmwareError",
"params": [
@@ -4627,6 +4644,14 @@
]
}
,{
+ "classname": "vr::IVRDriverManager",
+ "methodname": "IsEnabled",
+ "returntype": "bool",
+ "params": [
+{ "paramname": "nDriver" ,"paramtype": "vr::DriverId_t"}
+ ]
+}
+,{
"classname": "vr::IVRInput",
"methodname": "SetActionManifestPath",
"returntype": "vr::EVRInputError",
@@ -4872,6 +4897,18 @@
}
,{
"classname": "vr::IVRInput",
+ "methodname": "GetActionBindingInfo",
+ "returntype": "vr::EVRInputError",
+ "params": [
+{ "paramname": "action" ,"paramtype": "vr::VRActionHandle_t"},
+{ "paramname": "pOriginInfo" ,"paramtype": "struct vr::InputBindingInfo_t *"},
+{ "paramname": "unBindingInfoSize" ,"paramtype": "uint32_t"},
+{ "paramname": "unBindingInfoCount" ,"paramtype": "uint32_t"},
+{ "paramname": "punReturnedBindingInfoCount" ,"paramtype": "uint32_t *"}
+ ]
+}
+,{
+ "classname": "vr::IVRInput",
"methodname": "ShowActionOrigins",
"returntype": "vr::EVRInputError",
"params": [
@@ -4992,5 +5029,41 @@
{ "paramname": "punDescriptorBufferLenInOut" ,"paramtype": "uint32_t *"}
]
}
+,{
+ "classname": "vr::IVRDebug",
+ "methodname": "EmitVrProfilerEvent",
+ "returntype": "vr::EVRDebugError",
+ "params": [
+{ "paramname": "pchMessage" ,"paramtype": "const char *"}
+ ]
+}
+,{
+ "classname": "vr::IVRDebug",
+ "methodname": "BeginVrProfilerEvent",
+ "returntype": "vr::EVRDebugError",
+ "params": [
+{ "paramname": "pHandleOut" ,"paramtype": "vr::VrProfilerEventHandle_t *"}
+ ]
+}
+,{
+ "classname": "vr::IVRDebug",
+ "methodname": "FinishVrProfilerEvent",
+ "returntype": "vr::EVRDebugError",
+ "params": [
+{ "paramname": "hHandle" ,"paramtype": "vr::VrProfilerEventHandle_t"},
+{ "paramname": "pchMessage" ,"paramtype": "const char *"}
+ ]
+}
+,{
+ "classname": "vr::IVRDebug",
+ "methodname": "DriverDebugRequest",
+ "returntype": "uint32_t",
+ "params": [
+{ "paramname": "unDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
+{ "paramname": "pchRequest" ,"paramtype": "const char *"},
+{ "paramname": "pchResponseBuffer" ,"out_string": " " ,"paramtype": "char *"},
+{ "paramname": "unResponseBufferSize" ,"paramtype": "uint32_t"}
+ ]
+}
]
} \ No newline at end of file
diff --git a/headers/openvr_capi.h b/headers/openvr_capi.h
index 6cb9c44..9654148 100644
--- a/headers/openvr_capi.h
+++ b/headers/openvr_capi.h
@@ -103,7 +103,7 @@ static const unsigned int k_unControllerStateAxisCount = 5;
static const unsigned long k_ulOverlayHandleInvalid = 0;
static const unsigned int k_unMaxDistortionFunctionParameters = 8;
static const unsigned int k_unScreenshotHandleInvalid = 0;
-static const char * IVRSystem_Version = "IVRSystem_019";
+static const char * IVRSystem_Version = "IVRSystem_020";
static const char * IVRExtendedDisplay_Version = "IVRExtendedDisplay_001";
static const char * IVRTrackedCamera_Version = "IVRTrackedCamera_005";
static const unsigned int k_unMaxApplicationKeyLength = 128;
@@ -279,6 +279,7 @@ static const char * k_pch_Dashboard_UseWebIPD = "useWebIPD";
static const char * k_pch_Dashboard_UseWebPowerMenu = "useWebPowerMenu";
static const char * k_pch_modelskin_Section = "modelskins";
static const char * k_pch_Driver_Enable_Bool = "enable";
+static const char * k_pch_Driver_LoadPriority_Int32 = "loadPriority";
static const char * k_pch_WebInterface_Section = "WebInterface";
static const char * k_pch_WebInterface_WebEnable_Bool = "WebEnable";
static const char * k_pch_WebInterface_WebPort_String = "WebPort";
@@ -302,11 +303,12 @@ 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_006";
+static const char * IVRInput_Version = "IVRInput_007";
static const unsigned long k_ulInvalidIOBufferHandle = 0;
static const char * IVRIOBuffer_Version = "IVRIOBuffer_002";
static const unsigned int k_ulInvalidSpatialAnchorHandle = 0;
static const char * IVRSpatialAnchors_Version = "IVRSpatialAnchors_001";
+static const char * IVRDebug_Version = "IVRDebug_001";
// OpenVR Enums
@@ -431,6 +433,7 @@ typedef enum ETrackedDeviceProperty
ETrackedDeviceProperty_Prop_BootloaderVersion_Uint64 = 1044,
ETrackedDeviceProperty_Prop_AdditionalSystemReportData_String = 1045,
ETrackedDeviceProperty_Prop_CompositeFirmwareVersion_String = 1046,
+ ETrackedDeviceProperty_Prop_Firmware_RemindUpdate_Bool = 1047,
ETrackedDeviceProperty_Prop_ReportsTimeSinceVSync_Bool = 2000,
ETrackedDeviceProperty_Prop_SecondsFromVsyncToPhotons_Float = 2001,
ETrackedDeviceProperty_Prop_DisplayFrequency_Float = 2002,
@@ -503,6 +506,8 @@ typedef enum ETrackedDeviceProperty
ETrackedDeviceProperty_Prop_CameraDistortionFunction_Int32_Array = 2072,
ETrackedDeviceProperty_Prop_CameraDistortionCoefficients_Float_Array = 2073,
ETrackedDeviceProperty_Prop_ExpectedControllerType_String = 2074,
+ ETrackedDeviceProperty_Prop_HmdTrackingStyle_Int32 = 2075,
+ ETrackedDeviceProperty_Prop_DriverProvidedChaperoneVisibility_Bool = 2076,
ETrackedDeviceProperty_Prop_DisplayAvailableFrameRates_Float_Array = 2080,
ETrackedDeviceProperty_Prop_DisplaySupportsMultipleFramerates_Bool = 2081,
ETrackedDeviceProperty_Prop_DashboardLayoutPathName_String = 2090,
@@ -577,6 +582,14 @@ typedef enum ETrackedPropertyError
ETrackedPropertyError_TrackedProp_IPCReadFailure = 13,
} ETrackedPropertyError;
+typedef enum EHmdTrackingStyle
+{
+ EHmdTrackingStyle_HmdTrackingStyle_Unknown = 0,
+ EHmdTrackingStyle_HmdTrackingStyle_Lighthouse = 1,
+ EHmdTrackingStyle_HmdTrackingStyle_OutsideInCameras = 2,
+ EHmdTrackingStyle_HmdTrackingStyle_InsideOutCameras = 3,
+} EHmdTrackingStyle;
+
typedef enum EVRSubmitFlags
{
EVRSubmitFlags_Submit_Default = 0,
@@ -824,6 +837,7 @@ typedef enum EShowUIType
EShowUIType_ShowUI_ManageTrackers = 1,
EShowUIType_ShowUI_Pairing = 3,
EShowUIType_ShowUI_Settings = 4,
+ EShowUIType_ShowUI_DebugCommands = 5,
} EShowUIType;
typedef enum EHDCPError
@@ -1136,6 +1150,8 @@ typedef enum EVRInitError
EVRInitError_VRInitError_Compositor_CreateTextIndexBuffer = 482,
EVRInitError_VRInitError_Compositor_CreateMirrorTextures = 483,
EVRInitError_VRInitError_Compositor_CreateLastFrameRenderTexture = 484,
+ EVRInitError_VRInitError_Compositor_CreateMirrorOverlay = 485,
+ EVRInitError_VRInitError_Compositor_FailedToCreateVirtualDisplayBackbuffer = 486,
EVRInitError_VRInitError_VendorSpecific_UnableToConnectToOculusRuntime = 1000,
EVRInitError_VRInitError_VendorSpecific_WindowsNotInDevMode = 1001,
EVRInitError_VRInitError_VendorSpecific_HmdFound_CantOpenDevice = 1101,
@@ -1151,6 +1167,7 @@ typedef enum EVRInitError
EVRInitError_VRInitError_VendorSpecific_HmdFound_UserDataAddressRange = 1111,
EVRInitError_VRInitError_VendorSpecific_HmdFound_UserDataError = 1112,
EVRInitError_VRInitError_VendorSpecific_HmdFound_ConfigFailedSanityCheck = 1113,
+ EVRInitError_VRInitError_VendorSpecific_OculusRuntimeBadInstall = 1114,
EVRInitError_VRInitError_Steam_SteamInstallationNotFound = 2000,
EVRInitError_VRInitError_LastError = 2001,
} EVRInitError;
@@ -1550,6 +1567,12 @@ typedef enum EIOBufferMode
EIOBufferMode_IOBufferMode_Create = 512,
} EIOBufferMode;
+typedef enum EVRDebugError
+{
+ EVRDebugError_VRDebugError_Success = 0,
+ EVRDebugError_VRDebugError_BadParameter = 1,
+} EVRDebugError;
+
// OpenVR typedefs
@@ -1579,6 +1602,7 @@ typedef uint32_t VRComponentProperties;
typedef int32_t TextureID_t;
typedef uint32_t VRNotificationId;
typedef uint64_t IOBufferHandle_t;
+typedef uint64_t VrProfilerEventHandle_t;
typedef EVRInitError HmdError;
typedef EVREye Hmd_Eye;
typedef EColorSpace ColorSpace;
@@ -2196,6 +2220,14 @@ typedef struct InputOriginInfo_t
char rchRenderModelComponentName[128]; //char[128]
} InputOriginInfo_t;
+typedef struct InputBindingInfo_t
+{
+ char rchDevicePathName[128]; //char[128]
+ char rchInputPathName[128]; //char[128]
+ char rchModeName[128]; //char[128]
+ char rchSlotName[128]; //char[128]
+} InputBindingInfo_t;
+
typedef struct VRActiveActionSet_t
{
VRActionSetHandle_t ulActionSet;
@@ -2234,6 +2266,7 @@ typedef struct COpenVRContext
intptr_t m_pVRInput; // class vr::IVRInput *
intptr_t m_pVRIOBuffer; // class vr::IVRIOBuffer *
intptr_t m_pVRSpatialAnchors; // class vr::IVRSpatialAnchors *
+ intptr_t m_pVRDebug; // class vr::IVRDebug *
intptr_t m_pVRNotifications; // class vr::IVRNotifications *
} COpenVRContext;
@@ -2349,7 +2382,6 @@ struct VR_IVRSystem_FnTable
bool (OPENVR_FNTABLE_CALLTYPE *IsSteamVRDrawingControllers)();
bool (OPENVR_FNTABLE_CALLTYPE *ShouldApplicationPause)();
bool (OPENVR_FNTABLE_CALLTYPE *ShouldApplicationReduceRenderingWork)();
- uint32_t (OPENVR_FNTABLE_CALLTYPE *DriverDebugRequest)(TrackedDeviceIndex_t unDeviceIndex, char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize);
EVRFirmwareError (OPENVR_FNTABLE_CALLTYPE *PerformFirmwareUpdate)(TrackedDeviceIndex_t unDeviceIndex);
void (OPENVR_FNTABLE_CALLTYPE *AcknowledgeQuit_Exiting)();
void (OPENVR_FNTABLE_CALLTYPE *AcknowledgeQuit_UserPrompt)();
@@ -2652,6 +2684,7 @@ struct VR_IVRDriverManager_FnTable
uint32_t (OPENVR_FNTABLE_CALLTYPE *GetDriverCount)();
uint32_t (OPENVR_FNTABLE_CALLTYPE *GetDriverName)(DriverId_t nDriver, char * pchValue, uint32_t unBufferSize);
DriverHandle_t (OPENVR_FNTABLE_CALLTYPE *GetDriverHandle)(char * pchDriverName);
+ bool (OPENVR_FNTABLE_CALLTYPE *IsEnabled)(DriverId_t nDriver);
};
struct VR_IVRInput_FnTable
@@ -2679,6 +2712,7 @@ struct VR_IVRInput_FnTable
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetActionOrigins)(VRActionSetHandle_t actionSetHandle, VRActionHandle_t digitalActionHandle, VRInputValueHandle_t * originsOut, uint32_t originOutCount);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetOriginLocalizedName)(VRInputValueHandle_t origin, char * pchNameArray, uint32_t unNameArraySize, int32_t unStringSectionsToInclude);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetOriginTrackedDeviceInfo)(VRInputValueHandle_t origin, struct InputOriginInfo_t * pOriginInfo, uint32_t unOriginInfoSize);
+ EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetActionBindingInfo)(VRActionHandle_t action, struct InputBindingInfo_t * pOriginInfo, uint32_t unBindingInfoSize, uint32_t unBindingInfoCount, uint32_t * punReturnedBindingInfoCount);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *ShowActionOrigins)(VRActionSetHandle_t actionSetHandle, VRActionHandle_t ulActionHandle);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *ShowBindingsForActionSet)(struct VRActiveActionSet_t * pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount, VRInputValueHandle_t originToHighlight);
bool (OPENVR_FNTABLE_CALLTYPE *IsUsingLegacyInput)();
@@ -2702,6 +2736,14 @@ struct VR_IVRSpatialAnchors_FnTable
EVRSpatialAnchorError (OPENVR_FNTABLE_CALLTYPE *GetSpatialAnchorDescriptor)(SpatialAnchorHandle_t unHandle, char * pchDescriptorOut, uint32_t * punDescriptorBufferLenInOut);
};
+struct VR_IVRDebug_FnTable
+{
+ EVRDebugError (OPENVR_FNTABLE_CALLTYPE *EmitVrProfilerEvent)(char * pchMessage);
+ EVRDebugError (OPENVR_FNTABLE_CALLTYPE *BeginVrProfilerEvent)(VrProfilerEventHandle_t * pHandleOut);
+ EVRDebugError (OPENVR_FNTABLE_CALLTYPE *FinishVrProfilerEvent)(VrProfilerEventHandle_t hHandle, char * pchMessage);
+ uint32_t (OPENVR_FNTABLE_CALLTYPE *DriverDebugRequest)(TrackedDeviceIndex_t unDeviceIndex, char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize);
+};
+
#if 0
// Global entry points
diff --git a/headers/openvr_driver.h b/headers/openvr_driver.h
index 960042e..26a76fd 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 = 4;
- static const uint32_t k_nSteamVRVersionBuild = 18;
+ static const uint32_t k_nSteamVRVersionMinor = 5;
+ static const uint32_t k_nSteamVRVersionBuild = 17;
} // namespace vr
// vrtypes.h
@@ -354,6 +354,7 @@ enum ETrackedDeviceProperty
Prop_BootloaderVersion_Uint64 = 1044,
Prop_AdditionalSystemReportData_String = 1045, // additional string to include in system reports about a tracked device
Prop_CompositeFirmwareVersion_String = 1046, // additional FW components from a device that gets propagated into reports
+ Prop_Firmware_RemindUpdate_Bool = 1047,
// Properties that are unique to TrackedDeviceClass_HMD
Prop_ReportsTimeSinceVSync_Bool = 2000,
@@ -408,7 +409,7 @@ enum ETrackedDeviceProperty
Prop_NamedIconPathControllerLeftDeviceOff_String = 2051, // placeholder icon for "left" controller if not yet detected/loaded
Prop_NamedIconPathControllerRightDeviceOff_String = 2052, // placeholder icon for "right" controller if not yet detected/loaded
Prop_NamedIconPathTrackingReferenceDeviceOff_String = 2053, // placeholder icon for sensor/base if not yet detected/loaded
- Prop_DoNotApplyPrediction_Bool = 2054,
+ Prop_DoNotApplyPrediction_Bool = 2054, // currently no effect. was used to disable HMD pose prediction on MR, which is now done by MR driver setting velocity=0
Prop_CameraToHeadTransforms_Matrix34_Array = 2055,
Prop_DistortionMeshResolution_Int32 = 2056, // custom resolution of compositor calls to IVRSystem::ComputeDistortion
Prop_DriverIsDrawingControllers_Bool = 2057,
@@ -429,6 +430,9 @@ enum ETrackedDeviceProperty
Prop_CameraDistortionFunction_Int32_Array = 2072, // Prop_NumCameras_Int32-sized array of vr::EVRDistortionFunctionType values (max size is vr::k_unMaxCameras)
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_HmdTrackingStyle_Int32 = 2075, // one of EHmdTrackingStyle
+ Prop_DriverProvidedChaperoneVisibility_Bool = 2076,
+
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
@@ -527,6 +531,15 @@ enum ETrackedPropertyError
TrackedProp_IPCReadFailure = 13,
};
+/** Used to drive certain text in the UI when talking about the tracking system for the HMD */
+enum EHmdTrackingStyle
+{
+ HmdTrackingStyle_Unknown = 0,
+
+ HmdTrackingStyle_Lighthouse = 1, // base stations and lasers
+ HmdTrackingStyle_OutsideInCameras = 2, // Cameras and LED, Rift 1 style
+ HmdTrackingStyle_InsideOutCameras = 3, // Cameras on HMD looking at the world
+};
typedef uint64_t VRActionHandle_t;
typedef uint64_t VRActionSetHandle_t;
@@ -1110,6 +1123,7 @@ enum EShowUIType
// ShowUI_QuickStart = 2, // Deprecated
ShowUI_Pairing = 3,
ShowUI_Settings = 4,
+ ShowUI_DebugCommands = 5,
};
struct VREvent_ShowUI_t
@@ -1625,6 +1639,8 @@ enum EVRInitError
VRInitError_Compositor_CreateTextIndexBuffer = 482,
VRInitError_Compositor_CreateMirrorTextures = 483,
VRInitError_Compositor_CreateLastFrameRenderTexture = 484,
+ VRInitError_Compositor_CreateMirrorOverlay = 485,
+ VRInitError_Compositor_FailedToCreateVirtualDisplayBackbuffer = 486,
VRInitError_VendorSpecific_UnableToConnectToOculusRuntime = 1000,
VRInitError_VendorSpecific_WindowsNotInDevMode = 1001,
@@ -1642,6 +1658,7 @@ enum EVRInitError
VRInitError_VendorSpecific_HmdFound_UserDataAddressRange = 1111,
VRInitError_VendorSpecific_HmdFound_UserDataError = 1112,
VRInitError_VendorSpecific_HmdFound_ConfigFailedSanityCheck = 1113,
+ VRInitError_VendorSpecific_OculusRuntimeBadInstall = 1114,
VRInitError_Steam_SteamInstallationNotFound = 2000,
@@ -2261,6 +2278,7 @@ namespace vr
//-----------------------------------------------------------------------------
// driver keys - These could be checked in any driver_<name> section
static const char * const k_pch_Driver_Enable_Bool = "enable";
+ static const char * const k_pch_Driver_LoadPriority_Int32 = "loadPriority";
//-----------------------------------------------------------------------------
// web interface keys
@@ -3415,6 +3433,8 @@ public:
virtual uint32_t GetDriverName( vr::DriverId_t nDriver, VR_OUT_STRING() char *pchValue, uint32_t unBufferSize ) = 0;
virtual DriverHandle_t GetDriverHandle( const char *pchDriverName ) = 0;
+
+ virtual bool IsEnabled( vr::DriverId_t nDriver ) const = 0;
};
static const char * const IVRDriverManager_Version = "IVRDriverManager_001";
diff --git a/lib/linux32/libopenvr_api.so b/lib/linux32/libopenvr_api.so
index 79b4e11..d728f4c 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 fea27b3..2352031 100755
--- a/lib/linux64/libopenvr_api.so
+++ b/lib/linux64/libopenvr_api.so
Binary files differ
diff --git a/samples/bin/linux64/libopenvr_api.so b/samples/bin/linux64/libopenvr_api.so
index b5db2f0..8d894cf 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 8a2df47..aa0ac95 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 4f5bdf1..9d8ce6e 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 3b05986..86f697b 100644
--- a/samples/bin/win64/openvr_api.dll
+++ b/samples/bin/win64/openvr_api.dll
Binary files differ
diff --git a/src/vrcommon/hmderrors_public.cpp b/src/vrcommon/hmderrors_public.cpp
index 5b0ec64..dcc9857 100644
--- a/src/vrcommon/hmderrors_public.cpp
+++ b/src/vrcommon/hmderrors_public.cpp
@@ -91,6 +91,7 @@ const char *GetEnglishStringForHmdError( vr::EVRInitError eError )
// Oculus
case VRInitError_VendorSpecific_UnableToConnectToOculusRuntime: return "Unable to connect to Oculus Runtime (1000)";
+ case VRInitError_VendorSpecific_OculusRuntimeBadInstall: return "Unable to connect to Oculus Runtime, possible bad install (1114)";
// Lighthouse
case VRInitError_VendorSpecific_HmdFound_CantOpenDevice: return "HMD found, but can not open device (1101)";
@@ -279,10 +280,13 @@ const char *GetIDForVRInitError( vr::EVRInitError eError )
RETURN_ENUM_AS_STRING( VRInitError_Compositor_CreateTextIndexBuffer );
RETURN_ENUM_AS_STRING( VRInitError_Compositor_CreateMirrorTextures );
RETURN_ENUM_AS_STRING( VRInitError_Compositor_CreateLastFrameRenderTexture );
+ RETURN_ENUM_AS_STRING( VRInitError_Compositor_CreateMirrorOverlay );
+ RETURN_ENUM_AS_STRING( VRInitError_Compositor_FailedToCreateVirtualDisplayBackbuffer );
// Vendor-specific errors
RETURN_ENUM_AS_STRING( VRInitError_VendorSpecific_UnableToConnectToOculusRuntime);
RETURN_ENUM_AS_STRING( VRInitError_VendorSpecific_WindowsNotInDevMode );
+ RETURN_ENUM_AS_STRING( VRInitError_VendorSpecific_OculusRuntimeBadInstall );
// Lighthouse
RETURN_ENUM_AS_STRING( VRInitError_VendorSpecific_HmdFound_CantOpenDevice);