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:
authorJeremy Selan <jeremys@valvesoftware.com>2020-09-18 21:20:27 +0300
committerJeremy Selan <jeremys@valvesoftware.com>2020-09-18 21:20:27 +0300
commit0eb70325a4ea3edca2a0ff8aefa631f2529e6eb7 (patch)
tree45a0d88dcacc59393e6e8627a074009bd50d14c5
parent793739cc6bd3937d713ebc6d073627a8881b8808 (diff)
# OpenVR SDK 1.14.15v1.14.15
New events: * VREvent_DesktopViewUpdating * VREvent_DesktopViewReady IVRDriverDirectModeComponent: * Updated CreateSwapTextureSet to (optionally) allow NTHandle support IVRServerDriverHost: * Added SetDisplayProjectionRaw * Added SetRecommendedRenderTargetSize * Renamed TrackedDeviceDisplayTransformUpdated -> SetDisplayEyeToHead [git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 6100641]
-rwxr-xr-xbin/linux32/libopenvr_api.sobin322065 -> 322067 bytes
-rwxr-xr-xbin/linux32/libopenvr_api.so.dbgbin2246588 -> 2246922 bytes
-rwxr-xr-xbin/linux64/libopenvr_api.sobin322960 -> 325366 bytes
-rwxr-xr-xbin/linux64/libopenvr_api.so.dbgbin2800424 -> 2814093 bytes
-rw-r--r--bin/linuxarm64/libopenvr_api.sobin322240 -> 313232 bytes
-rw-r--r--bin/linuxarm64/libopenvr_api.so.dbgbin2903912 -> 4437760 bytes
-rw-r--r--bin/linuxarm64/libopenvr_api_unity.sobin492560 -> 479592 bytes
-rw-r--r--bin/linuxarm64/libopenvr_api_unity.so.dbgbin5161944 -> 7704992 bytes
-rw-r--r--bin/win32/openvr_api.dllbin621520 -> 621520 bytes
-rw-r--r--bin/win32/openvr_api.dll.sigbin1450 -> 1450 bytes
-rw-r--r--bin/win32/openvr_api.pdbbin10989568 -> 10989568 bytes
-rw-r--r--bin/win64/openvr_api.dllbin819664 -> 819664 bytes
-rw-r--r--bin/win64/openvr_api.dll.sigbin1450 -> 1450 bytes
-rw-r--r--bin/win64/openvr_api.pdbbin10866688 -> 10866688 bytes
-rw-r--r--headers/openvr.h10
-rw-r--r--headers/openvr_api.cs5
-rw-r--r--headers/openvr_api.json7
-rw-r--r--headers/openvr_capi.h5
-rw-r--r--headers/openvr_driver.h49
-rwxr-xr-xlib/linux32/libopenvr_api.sobin2246588 -> 2246922 bytes
-rwxr-xr-xlib/linux64/libopenvr_api.sobin2800424 -> 2814093 bytes
-rw-r--r--lib/linuxarm64/libopenvr_api.sobin2903912 -> 4437760 bytes
-rw-r--r--lib/linuxarm64/libopenvr_api_unity.sobin5161944 -> 7704992 bytes
-rw-r--r--samples/bin/linux32/libopenvr_api.sobin322065 -> 322067 bytes
-rw-r--r--samples/bin/linux64/libopenvr_api.sobin322960 -> 325366 bytes
-rw-r--r--samples/bin/linuxarm64/libopenvr_api.sobin322240 -> 313232 bytes
-rw-r--r--samples/bin/win32/openvr_api.dllbin621520 -> 621520 bytes
-rw-r--r--samples/bin/win64/openvr_api.dllbin819664 -> 819664 bytes
-rw-r--r--src/vrcommon/sharedlibtools_public.cpp26
-rw-r--r--src/vrcommon/sharedlibtools_public.h4
30 files changed, 86 insertions, 20 deletions
diff --git a/bin/linux32/libopenvr_api.so b/bin/linux32/libopenvr_api.so
index 33ed9c4..af4b2e1 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 4a4ed69..d3341df 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 8daaeb3..cfb9c13 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 76929bc..7af8049 100755
--- a/bin/linux64/libopenvr_api.so.dbg
+++ b/bin/linux64/libopenvr_api.so.dbg
Binary files differ
diff --git a/bin/linuxarm64/libopenvr_api.so b/bin/linuxarm64/libopenvr_api.so
index 2654e31..d291c97 100644
--- a/bin/linuxarm64/libopenvr_api.so
+++ b/bin/linuxarm64/libopenvr_api.so
Binary files differ
diff --git a/bin/linuxarm64/libopenvr_api.so.dbg b/bin/linuxarm64/libopenvr_api.so.dbg
index 8952036..cf5d534 100644
--- a/bin/linuxarm64/libopenvr_api.so.dbg
+++ b/bin/linuxarm64/libopenvr_api.so.dbg
Binary files differ
diff --git a/bin/linuxarm64/libopenvr_api_unity.so b/bin/linuxarm64/libopenvr_api_unity.so
index 1c12307..058260a 100644
--- a/bin/linuxarm64/libopenvr_api_unity.so
+++ b/bin/linuxarm64/libopenvr_api_unity.so
Binary files differ
diff --git a/bin/linuxarm64/libopenvr_api_unity.so.dbg b/bin/linuxarm64/libopenvr_api_unity.so.dbg
index a9ddd6b..875cdb3 100644
--- a/bin/linuxarm64/libopenvr_api_unity.so.dbg
+++ b/bin/linuxarm64/libopenvr_api_unity.so.dbg
Binary files differ
diff --git a/bin/win32/openvr_api.dll b/bin/win32/openvr_api.dll
index 8f1a376..2c79942 100644
--- a/bin/win32/openvr_api.dll
+++ b/bin/win32/openvr_api.dll
Binary files differ
diff --git a/bin/win32/openvr_api.dll.sig b/bin/win32/openvr_api.dll.sig
index ff810fb..2c015a7 100644
--- a/bin/win32/openvr_api.dll.sig
+++ b/bin/win32/openvr_api.dll.sig
Binary files differ
diff --git a/bin/win32/openvr_api.pdb b/bin/win32/openvr_api.pdb
index 95ecc70..356597c 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 ef336cb..e0113cd 100644
--- a/bin/win64/openvr_api.dll
+++ b/bin/win64/openvr_api.dll
Binary files differ
diff --git a/bin/win64/openvr_api.dll.sig b/bin/win64/openvr_api.dll.sig
index 0c514e6..1f4c14f 100644
--- a/bin/win64/openvr_api.dll.sig
+++ b/bin/win64/openvr_api.dll.sig
Binary files differ
diff --git a/bin/win64/openvr_api.pdb b/bin/win64/openvr_api.pdb
index 9bf3e4d..51e6a1c 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 15c3822..5c03b28 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 = 13;
- static const uint32_t k_nSteamVRVersionBuild = 10;
+ static const uint32_t k_nSteamVRVersionMinor = 14;
+ static const uint32_t k_nSteamVRVersionBuild = 15;
} // namespace vr
// vrtypes.h
@@ -469,7 +469,8 @@ enum ETrackedDeviceProperty
Prop_Audio_DefaultPlaybackDeviceId_String = 2300,
Prop_Audio_DefaultRecordingDeviceId_String = 2301,
- Prop_Audio_DefaultPlaybackDeviceVolume_Float = 2302,
+ Prop_Audio_DefaultPlaybackDeviceVolume_Float = 2302,
+ Prop_Audio_SupportsDualSpeakerAndJackOutput_Bool = 2303,
// Properties that are unique to TrackedDeviceClass_Controller
Prop_AttachedDeviceId_String = 3000,
@@ -784,6 +785,8 @@ enum EVREventType
VREvent_RoomViewHidden = 527, // Sent by compositor whenever room-view is disabled
VREvent_ShowUI = 528, // data is showUi
VREvent_ShowDevTools = 529, // data is showDevTools
+ VREvent_DesktopViewUpdating = 530,
+ VREvent_DesktopViewReady = 531,
VREvent_Notification_Shown = 600,
VREvent_Notification_Hidden = 601,
@@ -2829,6 +2832,7 @@ namespace vr
static const char * const k_pch_audio_EnablePlaybackMirrorIndependentVolume_Bool = "enablePlaybackMirrorIndependentVolume";
static const char * const k_pch_audio_LastHmdPlaybackDeviceId_String = "lastHmdPlaybackDeviceId";
static const char * const k_pch_audio_VIVEHDMIGain = "viveHDMIGain";
+ static const char * const k_pch_audio_DualSpeakerAndJackOutput_Bool = "dualSpeakerAndJackOutput";
//-----------------------------------------------------------------------------
// power management keys
diff --git a/headers/openvr_api.cs b/headers/openvr_api.cs
index dbe789a..178724e 100644
--- a/headers/openvr_api.cs
+++ b/headers/openvr_api.cs
@@ -4719,6 +4719,7 @@ public enum ETrackedDeviceProperty
Prop_Audio_DefaultPlaybackDeviceId_String = 2300,
Prop_Audio_DefaultRecordingDeviceId_String = 2301,
Prop_Audio_DefaultPlaybackDeviceVolume_Float = 2302,
+ Prop_Audio_SupportsDualSpeakerAndJackOutput_Bool = 2303,
Prop_AttachedDeviceId_String = 3000,
Prop_SupportedButtons_Uint64 = 3001,
Prop_Axis0Type_Int32 = 3002,
@@ -4885,6 +4886,8 @@ public enum EVREventType
VREvent_RoomViewHidden = 527,
VREvent_ShowUI = 528,
VREvent_ShowDevTools = 529,
+ VREvent_DesktopViewUpdating = 530,
+ VREvent_DesktopViewReady = 531,
VREvent_Notification_Shown = 600,
VREvent_Notification_Hidden = 601,
VREvent_Notification_BeginInteraction = 602,
@@ -7699,6 +7702,7 @@ public class OpenVR
public const string k_pch_audio_EnablePlaybackMirrorIndependentVolume_Bool = "enablePlaybackMirrorIndependentVolume";
public const string k_pch_audio_LastHmdPlaybackDeviceId_String = "lastHmdPlaybackDeviceId";
public const string k_pch_audio_VIVEHDMIGain = "viveHDMIGain";
+ public const string k_pch_audio_DualSpeakerAndJackOutput_Bool = "dualSpeakerAndJackOutput";
public const string k_pch_Power_Section = "power";
public const string k_pch_Power_PowerOffOnExit_Bool = "powerOffOnExit";
public const string k_pch_Power_TurnOffScreensTimeout_Float = "turnOffScreensTimeout";
@@ -7773,6 +7777,7 @@ public class OpenVR
public const string k_pchPathBoundTrackerRole = "/bound_tracker_role";
public const string k_pchPathPoseRaw = "/pose/raw";
public const string k_pchPathPoseTip = "/pose/tip";
+ public const string k_pchPathPoseGrip = "/pose/grip";
public const string k_pchPathSystemButtonClick = "/input/system/click";
public const string k_pchPathProximity = "/proximity";
public const string k_pchPathControllerTypePrefix = "/controller_type/";
diff --git a/headers/openvr_api.json b/headers/openvr_api.json
index 179c4c3..1a38997 100644
--- a/headers/openvr_api.json
+++ b/headers/openvr_api.json
@@ -252,6 +252,7 @@
,{"name": "Prop_Audio_DefaultPlaybackDeviceId_String","value": "2300"}
,{"name": "Prop_Audio_DefaultRecordingDeviceId_String","value": "2301"}
,{"name": "Prop_Audio_DefaultPlaybackDeviceVolume_Float","value": "2302"}
+ ,{"name": "Prop_Audio_SupportsDualSpeakerAndJackOutput_Bool","value": "2303"}
,{"name": "Prop_AttachedDeviceId_String","value": "3000"}
,{"name": "Prop_SupportedButtons_Uint64","value": "3001"}
,{"name": "Prop_Axis0Type_Int32","value": "3002"}
@@ -413,6 +414,8 @@
,{"name": "VREvent_RoomViewHidden","value": "527"}
,{"name": "VREvent_ShowUI","value": "528"}
,{"name": "VREvent_ShowDevTools","value": "529"}
+ ,{"name": "VREvent_DesktopViewUpdating","value": "530"}
+ ,{"name": "VREvent_DesktopViewReady","value": "531"}
,{"name": "VREvent_Notification_Shown","value": "600"}
,{"name": "VREvent_Notification_Hidden","value": "601"}
,{"name": "VREvent_Notification_BeginInteraction","value": "602"}
@@ -1699,6 +1702,8 @@
,{
"constname": "k_pch_audio_VIVEHDMIGain","consttype": "const char *const", "constval": "viveHDMIGain"}
,{
+ "constname": "k_pch_audio_DualSpeakerAndJackOutput_Bool","consttype": "const char *const", "constval": "dualSpeakerAndJackOutput"}
+,{
"constname": "k_pch_Power_Section","consttype": "const char *const", "constval": "power"}
,{
"constname": "k_pch_Power_PowerOffOnExit_Bool","consttype": "const char *const", "constval": "powerOffOnExit"}
@@ -1847,6 +1852,8 @@
,{
"constname": "k_pchPathPoseTip","consttype": "const char *", "constval": "/pose/tip"}
,{
+ "constname": "k_pchPathPoseGrip","consttype": "const char *", "constval": "/pose/grip"}
+,{
"constname": "k_pchPathSystemButtonClick","consttype": "const char *", "constval": "/input/system/click"}
,{
"constname": "k_pchPathProximity","consttype": "const char *", "constval": "/proximity"}
diff --git a/headers/openvr_capi.h b/headers/openvr_capi.h
index 7a7319e..4304f79 100644
--- a/headers/openvr_capi.h
+++ b/headers/openvr_capi.h
@@ -298,6 +298,7 @@ static const char * k_pch_audio_ActiveMirrorDevice_String = "activePlaybackMirro
static const char * k_pch_audio_EnablePlaybackMirrorIndependentVolume_Bool = "enablePlaybackMirrorIndependentVolume";
static const char * k_pch_audio_LastHmdPlaybackDeviceId_String = "lastHmdPlaybackDeviceId";
static const char * k_pch_audio_VIVEHDMIGain = "viveHDMIGain";
+static const char * k_pch_audio_DualSpeakerAndJackOutput_Bool = "dualSpeakerAndJackOutput";
static const char * k_pch_Power_Section = "power";
static const char * k_pch_Power_PowerOffOnExit_Bool = "powerOffOnExit";
static const char * k_pch_Power_TurnOffScreensTimeout_Float = "turnOffScreensTimeout";
@@ -372,6 +373,7 @@ static const char * k_pchPathBoundTrackerAliasPath = "/bound_tracker_path";
static const char * k_pchPathBoundTrackerRole = "/bound_tracker_role";
static const char * k_pchPathPoseRaw = "/pose/raw";
static const char * k_pchPathPoseTip = "/pose/tip";
+static const char * k_pchPathPoseGrip = "/pose/grip";
static const char * k_pchPathSystemButtonClick = "/input/system/click";
static const char * k_pchPathProximity = "/proximity";
static const char * k_pchPathControllerTypePrefix = "/controller_type/";
@@ -627,6 +629,7 @@ typedef enum ETrackedDeviceProperty
ETrackedDeviceProperty_Prop_Audio_DefaultPlaybackDeviceId_String = 2300,
ETrackedDeviceProperty_Prop_Audio_DefaultRecordingDeviceId_String = 2301,
ETrackedDeviceProperty_Prop_Audio_DefaultPlaybackDeviceVolume_Float = 2302,
+ ETrackedDeviceProperty_Prop_Audio_SupportsDualSpeakerAndJackOutput_Bool = 2303,
ETrackedDeviceProperty_Prop_AttachedDeviceId_String = 3000,
ETrackedDeviceProperty_Prop_SupportedButtons_Uint64 = 3001,
ETrackedDeviceProperty_Prop_Axis0Type_Int32 = 3002,
@@ -798,6 +801,8 @@ typedef enum EVREventType
EVREventType_VREvent_RoomViewHidden = 527,
EVREventType_VREvent_ShowUI = 528,
EVREventType_VREvent_ShowDevTools = 529,
+ EVREventType_VREvent_DesktopViewUpdating = 530,
+ EVREventType_VREvent_DesktopViewReady = 531,
EVREventType_VREvent_Notification_Shown = 600,
EVREventType_VREvent_Notification_Hidden = 601,
EVREventType_VREvent_Notification_BeginInteraction = 602,
diff --git a/headers/openvr_driver.h b/headers/openvr_driver.h
index 7402f7f..c75cc26 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 = 13;
- static const uint32_t k_nSteamVRVersionBuild = 10;
+ static const uint32_t k_nSteamVRVersionMinor = 14;
+ static const uint32_t k_nSteamVRVersionBuild = 15;
} // namespace vr
// vrtypes.h
@@ -469,7 +469,8 @@ enum ETrackedDeviceProperty
Prop_Audio_DefaultPlaybackDeviceId_String = 2300,
Prop_Audio_DefaultRecordingDeviceId_String = 2301,
- Prop_Audio_DefaultPlaybackDeviceVolume_Float = 2302,
+ Prop_Audio_DefaultPlaybackDeviceVolume_Float = 2302,
+ Prop_Audio_SupportsDualSpeakerAndJackOutput_Bool = 2303,
// Properties that are unique to TrackedDeviceClass_Controller
Prop_AttachedDeviceId_String = 3000,
@@ -784,6 +785,8 @@ enum EVREventType
VREvent_RoomViewHidden = 527, // Sent by compositor whenever room-view is disabled
VREvent_ShowUI = 528, // data is showUi
VREvent_ShowDevTools = 529, // data is showDevTools
+ VREvent_DesktopViewUpdating = 530,
+ VREvent_DesktopViewReady = 531,
VREvent_Notification_Shown = 600,
VREvent_Notification_Hidden = 601,
@@ -2422,6 +2425,7 @@ namespace vr
static const char * const k_pch_audio_EnablePlaybackMirrorIndependentVolume_Bool = "enablePlaybackMirrorIndependentVolume";
static const char * const k_pch_audio_LastHmdPlaybackDeviceId_String = "lastHmdPlaybackDeviceId";
static const char * const k_pch_audio_VIVEHDMIGain = "viveHDMIGain";
+ static const char * const k_pch_audio_DualSpeakerAndJackOutput_Bool = "dualSpeakerAndJackOutput";
//-----------------------------------------------------------------------------
// power management keys
@@ -2679,12 +2683,15 @@ namespace vr
// ivrdriverdirectmodecomponent.h
namespace vr
{
-
+ enum VRSwapTextureFlag
+ {
+ // Specify that the shared texture resource was created with the SHARED_NTHANDLE option (Windows)
+ VRSwapTextureFlag_Shared_NTHandle = 1 << 0,
+ };
// ----------------------------------------------------------------------------------------------
// Purpose: This component is used for drivers that implement direct mode entirely on their own
- // without allowing the VR Compositor to own the window/device. Chances are you don't
- // need to implement this component in your driver.
+ // without allowing the VR Compositor to own the window/device.
// ----------------------------------------------------------------------------------------------
class IVRDriverDirectModeComponent
{
@@ -2694,7 +2701,6 @@ namespace vr
// Direct mode methods
// -----------------------------------
- /** Specific to Oculus compositor support, textures supplied must be created using this method. */
struct SwapTextureSetDesc_t
{
uint32_t nWidth;
@@ -2702,7 +2708,15 @@ namespace vr
uint32_t nFormat;
uint32_t nSampleCount;
};
- virtual void CreateSwapTextureSet( uint32_t unPid, const SwapTextureSetDesc_t *pSwapTextureSetDesc, vr::SharedTextureHandle_t( *pSharedTextureHandles )[ 3 ] ) {}
+
+ struct SwapTextureSet_t
+ {
+ vr::SharedTextureHandle_t rSharedTextureHandles[ 3 ];
+ uint32_t unTextureFlags;
+ };
+
+ /** Called to allocate textures for applications to render into. One of these per eye will be passed back to SubmitLayer each frame. */
+ virtual void CreateSwapTextureSet( uint32_t unPid, const SwapTextureSetDesc_t *pSwapTextureSetDesc, SwapTextureSet_t *pOutSwapTextureSet ) {}
/** Used to textures created using CreateSwapTextureSet. Only one of the set's handles needs to be used to destroy the entire set. */
virtual void DestroySwapTextureSet( vr::SharedTextureHandle_t sharedTextureHandle ) {}
@@ -2741,7 +2755,7 @@ namespace vr
virtual void GetFrameTiming( DriverDirectMode_FrameTiming *pFrameTiming ) {}
};
- static const char *IVRDriverDirectModeComponent_Version = "IVRDriverDirectModeComponent_006";
+ static const char *IVRDriverDirectModeComponent_Version = "IVRDriverDirectModeComponent_007";
}
@@ -3452,18 +3466,27 @@ public:
* other properties can be looked up via IVRProperties. */
virtual void GetRawTrackedDevicePoses( float fPredictedSecondsFromNow, TrackedDevicePose_t *pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount ) = 0;
- /** Notifies the server that a tracked device's display component transforms have been updated. */
- virtual void TrackedDeviceDisplayTransformUpdated( uint32_t unWhichDevice, HmdMatrix34_t eyeToHeadLeft, HmdMatrix34_t eyeToHeadRight ) = 0;
-
/** Requests that SteamVR be restarted. The provided reason will be displayed to the user and should be in the current locale. */
virtual void RequestRestart( const char *pchLocalizedReason, const char *pchExecutableToStart, const char *pchArguments, const char *pchWorkingDirectory ) = 0;
/** Interface for copying a range of timing data. Frames are returned in ascending order (oldest to newest) with the last being the most recent frame.
* Only the first entry's m_nSize needs to be set, as the rest will be inferred from that. Returns total number of entries filled out. */
virtual uint32_t GetFrameTimings( Compositor_FrameTiming *pTiming, uint32_t nFrames ) = 0;
+
+ /** Notifies the server that a tracked device's display component transforms have been updated.
+ * only permitted on devices of the HMD class. */
+ virtual void SetDisplayEyeToHead( uint32_t unWhichDevice, const HmdMatrix34_t & eyeToHeadLeft, const HmdMatrix34_t & eyeToHeadRight ) = 0;
+
+ /** Notifies the server that a tracked device's display projection has changed.
+ * only permitted on devices of the HMD class. */
+ virtual void SetDisplayProjectionRaw( uint32_t unWhichDevice, const HmdRect2_t & eyeLeft, const HmdRect2_t & eyeRight ) = 0;
+
+ /** Notifies the server that a tracked device's recommended render target resolution has changed.
+ * only permitted on devices of the HMD class. */
+ virtual void SetRecommendedRenderTargetSize( uint32_t unWhichDevice, uint32_t nWidth, uint32_t nHeight ) = 0;
};
-static const char *IVRServerDriverHost_Version = "IVRServerDriverHost_005";
+static const char *IVRServerDriverHost_Version = "IVRServerDriverHost_006";
}
diff --git a/lib/linux32/libopenvr_api.so b/lib/linux32/libopenvr_api.so
index 5be5a63..fc6a65e 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 76929bc..e3bf34d 100755
--- a/lib/linux64/libopenvr_api.so
+++ b/lib/linux64/libopenvr_api.so
Binary files differ
diff --git a/lib/linuxarm64/libopenvr_api.so b/lib/linuxarm64/libopenvr_api.so
index 8952036..cf5d534 100644
--- a/lib/linuxarm64/libopenvr_api.so
+++ b/lib/linuxarm64/libopenvr_api.so
Binary files differ
diff --git a/lib/linuxarm64/libopenvr_api_unity.so b/lib/linuxarm64/libopenvr_api_unity.so
index a9ddd6b..875cdb3 100644
--- a/lib/linuxarm64/libopenvr_api_unity.so
+++ b/lib/linuxarm64/libopenvr_api_unity.so
Binary files differ
diff --git a/samples/bin/linux32/libopenvr_api.so b/samples/bin/linux32/libopenvr_api.so
index 33ed9c4..af4b2e1 100644
--- a/samples/bin/linux32/libopenvr_api.so
+++ b/samples/bin/linux32/libopenvr_api.so
Binary files differ
diff --git a/samples/bin/linux64/libopenvr_api.so b/samples/bin/linux64/libopenvr_api.so
index 8daaeb3..cfb9c13 100644
--- a/samples/bin/linux64/libopenvr_api.so
+++ b/samples/bin/linux64/libopenvr_api.so
Binary files differ
diff --git a/samples/bin/linuxarm64/libopenvr_api.so b/samples/bin/linuxarm64/libopenvr_api.so
index 2654e31..d291c97 100644
--- a/samples/bin/linuxarm64/libopenvr_api.so
+++ b/samples/bin/linuxarm64/libopenvr_api.so
Binary files differ
diff --git a/samples/bin/win32/openvr_api.dll b/samples/bin/win32/openvr_api.dll
index 8f1a376..2c79942 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 ef336cb..e0113cd 100644
--- a/samples/bin/win64/openvr_api.dll
+++ b/samples/bin/win64/openvr_api.dll
Binary files differ
diff --git a/src/vrcommon/sharedlibtools_public.cpp b/src/vrcommon/sharedlibtools_public.cpp
index 048512a..f2cf57f 100644
--- a/src/vrcommon/sharedlibtools_public.cpp
+++ b/src/vrcommon/sharedlibtools_public.cpp
@@ -10,13 +10,33 @@
#include <dlfcn.h>
#endif
-SharedLibHandle SharedLib_Load( const char *pchPath )
+
+SharedLibHandle SharedLib_Load( const char *pchPath, uint32_t *pErrorCode )
{
+ SharedLibHandle pHandle = nullptr;
+#if defined( _WIN32)
+ pHandle = ( SharedLibHandle )LoadLibraryEx( pchPath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH );
+#elif defined(POSIX)
+ pHandle = (SharedLibHandle) dlopen(pchPath, RTLD_LOCAL|RTLD_NOW);
+#endif
+
+ if ( pErrorCode )
+ {
+ if ( pHandle == nullptr )
+ {
#if defined( _WIN32)
- return (SharedLibHandle)LoadLibraryEx( pchPath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH );
+ *pErrorCode = ( uint32_t ) GetLastError();
#elif defined(POSIX)
- return (SharedLibHandle)dlopen(pchPath, RTLD_LOCAL|RTLD_NOW);
+ *pErrorCode = 1;
#endif
+ }
+ else
+ {
+ *pErrorCode = 0;
+ }
+ }
+
+ return pHandle;
}
void *SharedLib_GetFunction( SharedLibHandle lib, const char *pchFunctionName)
diff --git a/src/vrcommon/sharedlibtools_public.h b/src/vrcommon/sharedlibtools_public.h
index 10163db..38e7c29 100644
--- a/src/vrcommon/sharedlibtools_public.h
+++ b/src/vrcommon/sharedlibtools_public.h
@@ -1,9 +1,11 @@
//========= Copyright Valve Corporation ============//
#pragma once
+#include <stdint.h>
+
typedef void *SharedLibHandle;
-SharedLibHandle SharedLib_Load( const char *pchPath );
+SharedLibHandle SharedLib_Load( const char *pchPath, uint32_t *pErrorCode = nullptr );
void *SharedLib_GetFunction( SharedLibHandle lib, const char *pchFunctionName);
void SharedLib_Unload( SharedLibHandle lib );