diff options
author | Jeremy Selan <jeremys@valvesoftware.com> | 2020-09-18 21:20:27 +0300 |
---|---|---|
committer | Jeremy Selan <jeremys@valvesoftware.com> | 2020-09-18 21:20:27 +0300 |
commit | 0eb70325a4ea3edca2a0ff8aefa631f2529e6eb7 (patch) | |
tree | 45a0d88dcacc59393e6e8627a074009bd50d14c5 | |
parent | 793739cc6bd3937d713ebc6d073627a8881b8808 (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-x | bin/linux32/libopenvr_api.so | bin | 322065 -> 322067 bytes | |||
-rwxr-xr-x | bin/linux32/libopenvr_api.so.dbg | bin | 2246588 -> 2246922 bytes | |||
-rwxr-xr-x | bin/linux64/libopenvr_api.so | bin | 322960 -> 325366 bytes | |||
-rwxr-xr-x | bin/linux64/libopenvr_api.so.dbg | bin | 2800424 -> 2814093 bytes | |||
-rw-r--r-- | bin/linuxarm64/libopenvr_api.so | bin | 322240 -> 313232 bytes | |||
-rw-r--r-- | bin/linuxarm64/libopenvr_api.so.dbg | bin | 2903912 -> 4437760 bytes | |||
-rw-r--r-- | bin/linuxarm64/libopenvr_api_unity.so | bin | 492560 -> 479592 bytes | |||
-rw-r--r-- | bin/linuxarm64/libopenvr_api_unity.so.dbg | bin | 5161944 -> 7704992 bytes | |||
-rw-r--r-- | bin/win32/openvr_api.dll | bin | 621520 -> 621520 bytes | |||
-rw-r--r-- | bin/win32/openvr_api.dll.sig | bin | 1450 -> 1450 bytes | |||
-rw-r--r-- | bin/win32/openvr_api.pdb | bin | 10989568 -> 10989568 bytes | |||
-rw-r--r-- | bin/win64/openvr_api.dll | bin | 819664 -> 819664 bytes | |||
-rw-r--r-- | bin/win64/openvr_api.dll.sig | bin | 1450 -> 1450 bytes | |||
-rw-r--r-- | bin/win64/openvr_api.pdb | bin | 10866688 -> 10866688 bytes | |||
-rw-r--r-- | headers/openvr.h | 10 | ||||
-rw-r--r-- | headers/openvr_api.cs | 5 | ||||
-rw-r--r-- | headers/openvr_api.json | 7 | ||||
-rw-r--r-- | headers/openvr_capi.h | 5 | ||||
-rw-r--r-- | headers/openvr_driver.h | 49 | ||||
-rwxr-xr-x | lib/linux32/libopenvr_api.so | bin | 2246588 -> 2246922 bytes | |||
-rwxr-xr-x | lib/linux64/libopenvr_api.so | bin | 2800424 -> 2814093 bytes | |||
-rw-r--r-- | lib/linuxarm64/libopenvr_api.so | bin | 2903912 -> 4437760 bytes | |||
-rw-r--r-- | lib/linuxarm64/libopenvr_api_unity.so | bin | 5161944 -> 7704992 bytes | |||
-rw-r--r-- | samples/bin/linux32/libopenvr_api.so | bin | 322065 -> 322067 bytes | |||
-rw-r--r-- | samples/bin/linux64/libopenvr_api.so | bin | 322960 -> 325366 bytes | |||
-rw-r--r-- | samples/bin/linuxarm64/libopenvr_api.so | bin | 322240 -> 313232 bytes | |||
-rw-r--r-- | samples/bin/win32/openvr_api.dll | bin | 621520 -> 621520 bytes | |||
-rw-r--r-- | samples/bin/win64/openvr_api.dll | bin | 819664 -> 819664 bytes | |||
-rw-r--r-- | src/vrcommon/sharedlibtools_public.cpp | 26 | ||||
-rw-r--r-- | src/vrcommon/sharedlibtools_public.h | 4 |
30 files changed, 86 insertions, 20 deletions
diff --git a/bin/linux32/libopenvr_api.so b/bin/linux32/libopenvr_api.so Binary files differindex 33ed9c4..af4b2e1 100755 --- a/bin/linux32/libopenvr_api.so +++ b/bin/linux32/libopenvr_api.so diff --git a/bin/linux32/libopenvr_api.so.dbg b/bin/linux32/libopenvr_api.so.dbg Binary files differindex 4a4ed69..d3341df 100755 --- a/bin/linux32/libopenvr_api.so.dbg +++ b/bin/linux32/libopenvr_api.so.dbg diff --git a/bin/linux64/libopenvr_api.so b/bin/linux64/libopenvr_api.so Binary files differindex 8daaeb3..cfb9c13 100755 --- a/bin/linux64/libopenvr_api.so +++ b/bin/linux64/libopenvr_api.so diff --git a/bin/linux64/libopenvr_api.so.dbg b/bin/linux64/libopenvr_api.so.dbg Binary files differindex 76929bc..7af8049 100755 --- a/bin/linux64/libopenvr_api.so.dbg +++ b/bin/linux64/libopenvr_api.so.dbg diff --git a/bin/linuxarm64/libopenvr_api.so b/bin/linuxarm64/libopenvr_api.so Binary files differindex 2654e31..d291c97 100644 --- a/bin/linuxarm64/libopenvr_api.so +++ b/bin/linuxarm64/libopenvr_api.so diff --git a/bin/linuxarm64/libopenvr_api.so.dbg b/bin/linuxarm64/libopenvr_api.so.dbg Binary files differindex 8952036..cf5d534 100644 --- a/bin/linuxarm64/libopenvr_api.so.dbg +++ b/bin/linuxarm64/libopenvr_api.so.dbg diff --git a/bin/linuxarm64/libopenvr_api_unity.so b/bin/linuxarm64/libopenvr_api_unity.so Binary files differindex 1c12307..058260a 100644 --- a/bin/linuxarm64/libopenvr_api_unity.so +++ b/bin/linuxarm64/libopenvr_api_unity.so diff --git a/bin/linuxarm64/libopenvr_api_unity.so.dbg b/bin/linuxarm64/libopenvr_api_unity.so.dbg Binary files differindex a9ddd6b..875cdb3 100644 --- a/bin/linuxarm64/libopenvr_api_unity.so.dbg +++ b/bin/linuxarm64/libopenvr_api_unity.so.dbg diff --git a/bin/win32/openvr_api.dll b/bin/win32/openvr_api.dll Binary files differindex 8f1a376..2c79942 100644 --- a/bin/win32/openvr_api.dll +++ b/bin/win32/openvr_api.dll diff --git a/bin/win32/openvr_api.dll.sig b/bin/win32/openvr_api.dll.sig Binary files differindex ff810fb..2c015a7 100644 --- a/bin/win32/openvr_api.dll.sig +++ b/bin/win32/openvr_api.dll.sig diff --git a/bin/win32/openvr_api.pdb b/bin/win32/openvr_api.pdb Binary files differindex 95ecc70..356597c 100644 --- a/bin/win32/openvr_api.pdb +++ b/bin/win32/openvr_api.pdb diff --git a/bin/win64/openvr_api.dll b/bin/win64/openvr_api.dll Binary files differindex ef336cb..e0113cd 100644 --- a/bin/win64/openvr_api.dll +++ b/bin/win64/openvr_api.dll diff --git a/bin/win64/openvr_api.dll.sig b/bin/win64/openvr_api.dll.sig Binary files differindex 0c514e6..1f4c14f 100644 --- a/bin/win64/openvr_api.dll.sig +++ b/bin/win64/openvr_api.dll.sig diff --git a/bin/win64/openvr_api.pdb b/bin/win64/openvr_api.pdb Binary files differindex 9bf3e4d..51e6a1c 100644 --- a/bin/win64/openvr_api.pdb +++ b/bin/win64/openvr_api.pdb 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 Binary files differindex 5be5a63..fc6a65e 100755 --- a/lib/linux32/libopenvr_api.so +++ b/lib/linux32/libopenvr_api.so diff --git a/lib/linux64/libopenvr_api.so b/lib/linux64/libopenvr_api.so Binary files differindex 76929bc..e3bf34d 100755 --- a/lib/linux64/libopenvr_api.so +++ b/lib/linux64/libopenvr_api.so diff --git a/lib/linuxarm64/libopenvr_api.so b/lib/linuxarm64/libopenvr_api.so Binary files differindex 8952036..cf5d534 100644 --- a/lib/linuxarm64/libopenvr_api.so +++ b/lib/linuxarm64/libopenvr_api.so diff --git a/lib/linuxarm64/libopenvr_api_unity.so b/lib/linuxarm64/libopenvr_api_unity.so Binary files differindex a9ddd6b..875cdb3 100644 --- a/lib/linuxarm64/libopenvr_api_unity.so +++ b/lib/linuxarm64/libopenvr_api_unity.so diff --git a/samples/bin/linux32/libopenvr_api.so b/samples/bin/linux32/libopenvr_api.so Binary files differindex 33ed9c4..af4b2e1 100644 --- a/samples/bin/linux32/libopenvr_api.so +++ b/samples/bin/linux32/libopenvr_api.so diff --git a/samples/bin/linux64/libopenvr_api.so b/samples/bin/linux64/libopenvr_api.so Binary files differindex 8daaeb3..cfb9c13 100644 --- a/samples/bin/linux64/libopenvr_api.so +++ b/samples/bin/linux64/libopenvr_api.so diff --git a/samples/bin/linuxarm64/libopenvr_api.so b/samples/bin/linuxarm64/libopenvr_api.so Binary files differindex 2654e31..d291c97 100644 --- a/samples/bin/linuxarm64/libopenvr_api.so +++ b/samples/bin/linuxarm64/libopenvr_api.so diff --git a/samples/bin/win32/openvr_api.dll b/samples/bin/win32/openvr_api.dll Binary files differindex 8f1a376..2c79942 100644 --- a/samples/bin/win32/openvr_api.dll +++ b/samples/bin/win32/openvr_api.dll diff --git a/samples/bin/win64/openvr_api.dll b/samples/bin/win64/openvr_api.dll Binary files differindex ef336cb..e0113cd 100644 --- a/samples/bin/win64/openvr_api.dll +++ b/samples/bin/win64/openvr_api.dll 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 ); |