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>2018-11-27 19:54:42 +0300
committerJoe Ludwig <joe@valvesoftware.com>2018-11-27 19:54:42 +0300
commit25d2b814afa76e5a482638a78138da47ba177599 (patch)
tree0cf1c1c3ff7d39986bdf04a0dbee70c21ec16f05
parent1fb1030f2ac238456dca7615a4408fb2bb42afb6 (diff)
OpenVR SDK Update 1.1.3
General: * Added required SteamVR version number to the header file. IVRCompositor: * New VRCompositor_FrameTiming ReprojectionFlag: VRCompositor_ReprojectionMotion. This flag will be set for application frames where motion smoothing was applied at least one of the times it was displayed. * New interface IsMotionSmoothingEnabled added to determine if that user has enabled motion smoothing or not. IVRChaperone: * Added VREvent_ChaperoneFlushCache, which is sent when the application should reload any cached data they loaded from the chaperone API. This event indicates the user's current chaperone settings have changed. * The VREvent_ChaperoneDataHasChanged event will no longer be sent, and IVRChaperone::ReloadInfo no longer has any effect. IVRChaperoneSetup: * Removed some unimplemented functions: * SetWorkingCollisionBoundsTagsInfo * GetLiveCollisionBoundsTagsInfo * SetWorkingPhysicalBoundsInfo * GetLivePhysicalBoundsInfo * Added ShowWorkingSetPreview/HideWorkingSetPreview, which will cause the application's current working set to show as the chaperone bounds rendered by the compositor. Unless your application is modifying the user's chaperone bounds, you won't need to call these functions. They are independent of bounds turning on and off based on how close the user is to them. IVROverlay: * Added flag VROverlayFlags_MakeOverlaysInteractiveIfVisible. If this flag is set on an overlay and that overlay is visible, SteamVR will be placed into laser mouse mode. This will prevent the scene application from receiving any input, so use this flag carefully. * Changed SetOverlayDualAnalogTransform to take a pointer to better support the C API. IVRTrackedCamera: * for headsets (like Vive Pro) which include multiple camera images in a single video stream, GetCameraIntrinsics and GetCameraProjection now support a uint32_t nCameraIndex parameter to get data about the specific camera. IVRInput: * Added an argument to GetOriginLocalizedName to allow the caller to specify which parts of the name they want in the returned string. The possible values are: * VRInputString_Hand - Which hand the origin is in. E.g. "Left Hand" * VRInputString_ControllerType - What kind of controller the user has in that hand. E.g. "Vive Controller" * VRInputString_InputSource - What part of that controller is the origin. E.g. "Trackpad" * VRInputString_All - All of the above. E.g. "Left Hand Vive Controller Trackpad" * Skeletal Input: * Added GetBoneCount to return the number of bones in the skeleton associated with an action * Added GetBoneHierarchy which returns the index of each bone's parent in a user-provided array * Added GetBoneName to retrieve the name of the bones in the skeleton * Added GetSkeletalReferenceTransforms to retrieve the transforms for several specific hand skeleton poses: * Bind Pose * Open Hand * Fist * Grip Limit, which is the shape of the hand when closed around the controller * Added GetSkeletalTrackingLevel to retrieve an estimate of the level of detail with which the controller associated with an action can track actual the movement of the user's body. The levels are: * Estimated: body part location can't be directly determined by the device. Any skeletal pose provided by the device is estimated by assuming the position required to active buttons, triggers, joysticks, or other input sensors. e.g. Vive Controller, Gamepad * Partial: body part location can be measured directly but with fewer degrees of freedom than the actual body part. Certain body part positions may be unmeasured by the device and estimated from other input data. e.g. Knuckles, gloves that only measure finger curl * Full: body part location can be measured directly throughout the entire range of motion of the body part. e.g. Mocap suit for the full body, gloves that measure rotation of each finger segment * Added GetSkeletalSummaryData which returns meta data about the current pose of the hand such as finger curl and splay * Removed ulRestrictToDevice as a parameter from all skeletal input functions Driver API: * Added TrackedControllerRole_Treadmill, which lets a driver specify that a device is intended to function as a treadmill. This opts the device out of hand selection. The new input path /user/treadmill is automatically assigned to the first treadmill device to activate. IVRCameraComponent: * CVS_FORMAT_BAYER16BG for cameras which support delivering raw sensor data * Added camera index to GetCameraDistortion, GetCameraProjection, and GetCameraIntrinsics to support multiple cameras on the same device (see also IVRTrackedCamera) * Added the ability for cameras to return one of a small set of programmatic distortion function types and function parameters in addition to or instead of UV-sampling distortion through GetCameraDistortion. See EVRDistortionFunctionType and IVRCameraComponent::GetCameraIntrinsics and refer to OpenCV camera calibration and undistortion documentation. IVRDriverInput: * Added parameter to CreateSkeletonComponent to allow the driver to specify the skeletal tracking level that the controller supports Samples: * Fixed texture corruption bug with hellovr_vulkan when controller is turned on after starting the application. [git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 4837234]
-rw-r--r--CMakeLists.txt6
-rwxr-xr-xbin/linux32/libopenvr_api.sobin296293 -> 296524 bytes
-rwxr-xr-xbin/linux32/libopenvr_api.so.dbgbin2117442 -> 2125976 bytes
-rwxr-xr-xbin/linux64/libopenvr_api.sobin294808 -> 299168 bytes
-rwxr-xr-xbin/linux64/libopenvr_api.so.dbgbin2651445 -> 2665394 bytes
-rwxr-xr-xbin/osx32/libopenvr_api.dylibbin306968 -> 307176 bytes
-rw-r--r--bin/osx32/libopenvr_api.dylib.dSYM/Contents/Resources/DWARF/libopenvr_api.dylibbin2117303 -> 2123647 bytes
-rw-r--r--bin/win32/openvr_api.dllbin485664 -> 486176 bytes
-rw-r--r--bin/win32/openvr_api.pdbbin9555968 -> 9891840 bytes
-rw-r--r--bin/win64/openvr_api.dllbin592160 -> 593184 bytes
-rw-r--r--bin/win64/openvr_api.pdbbin9342976 -> 9728000 bytes
-rw-r--r--headers/openvr.h319
-rw-r--r--headers/openvr_api.cs316
-rw-r--r--headers/openvr_api.json278
-rw-r--r--headers/openvr_capi.h161
-rw-r--r--headers/openvr_driver.h127
-rwxr-xr-xlib/linux32/libopenvr_api.sobin2108666 -> 2111702 bytes
-rwxr-xr-xlib/linux64/libopenvr_api.sobin2642469 -> 2649975 bytes
-rw-r--r--lib/win32/openvr_api.libbin6544 -> 6738 bytes
-rw-r--r--lib/win64/openvr_api.libbin6442 -> 6630 bytes
-rw-r--r--samples/bin/linux64/libopenvr_api.sobin294808 -> 299168 bytes
-rw-r--r--samples/bin/osx32/libopenvr_api.dylibbin306968 -> 307176 bytes
-rw-r--r--samples/bin/win32/openvr_api.dllbin485664 -> 486176 bytes
-rw-r--r--samples/bin/win64/openvr_api.dllbin592160 -> 593184 bytes
-rw-r--r--samples/hellovr_vulkan/hellovr_vulkan_main.cpp39
-rw-r--r--src/CMakeLists.txt5
-rw-r--r--src/vrcommon/pathtools_public.cpp31
-rw-r--r--src/vrcommon/pathtools_public.h6
28 files changed, 1032 insertions, 256 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 94de3ce..406a008 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -48,9 +48,9 @@ elseif(APPLE)
endif()
# Set output folder for static and shared libraries
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/${PLATFORM_NAME}${PROCESSOR_ARCH})
-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/${PLATFORM_NAME}${PROCESSOR_ARCH})
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/${PLATFORM_NAME}${PROCESSOR_ARCH})
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin/${PLATFORM_NAME}${PROCESSOR_ARCH})
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin/${PLATFORM_NAME}${PROCESSOR_ARCH})
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin/${PLATFORM_NAME}${PROCESSOR_ARCH})
# Enable some properties.
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
diff --git a/bin/linux32/libopenvr_api.so b/bin/linux32/libopenvr_api.so
index 5be49bd..3c0d73c 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 15e6314..530371e 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 92ac9c2..46dac9e 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 fa00393..e9407f1 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 b2877ce..2e59051 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 19f89dd..98a4503 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 0a348d0..c440068 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 babdd1d..6edb41d 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 6988b78..f4ddebd 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 59b5b38..168480c 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 3b35125..9b5784c 100644
--- a/headers/openvr.h
+++ b/headers/openvr.h
@@ -11,6 +11,14 @@
+// version.h
+namespace vr
+{
+ static const uint32_t k_nSteamVRVersionMajor = 1;
+ static const uint32_t k_nSteamVRVersionMinor = 1;
+ static const uint32_t k_nSteamVRVersionBuild = 3;
+} // namespace vr
+
// vrtypes.h
#ifndef _INCLUDE_VRTYPES_H
#define _INCLUDE_VRTYPES_H
@@ -198,10 +206,26 @@ enum ETrackedControllerRole
TrackedControllerRole_LeftHand = 1, // Tracked device associated with the left hand
TrackedControllerRole_RightHand = 2, // Tracked device associated with the right hand
TrackedControllerRole_OptOut = 3, // Tracked device is opting out of left/right hand selection
+ TrackedControllerRole_Treadmill = 4, // Tracked device is a treadmill
TrackedControllerRole_Max = 4
};
+/** Returns true if the tracked controller role is allowed to be a hand */
+inline bool IsRoleAllowedAsHand( ETrackedControllerRole eRole )
+{
+ switch ( eRole )
+ {
+ case TrackedControllerRole_Invalid:
+ case TrackedControllerRole_LeftHand:
+ case TrackedControllerRole_RightHand:
+ return true;
+ default:
+ return false;
+ }
+}
+
+
/** describes a single pose for a tracked object */
struct TrackedDevicePose_t
{
@@ -249,6 +273,8 @@ static const PropertyTypeTag_t k_unHmdMatrix34PropertyTag = 20;
static const PropertyTypeTag_t k_unHmdMatrix44PropertyTag = 21;
static const PropertyTypeTag_t k_unHmdVector3PropertyTag = 22;
static const PropertyTypeTag_t k_unHmdVector4PropertyTag = 23;
+static const PropertyTypeTag_t k_unHmdVector2PropertyTag = 24;
+static const PropertyTypeTag_t k_unHmdQuadPropertyTag = 25;
static const PropertyTypeTag_t k_unHiddenAreaPropertyTag = 30;
static const PropertyTypeTag_t k_unPathHandleInfoTag = 31;
@@ -314,6 +340,8 @@ enum ETrackedDeviceProperty
Prop_NumCameras_Int32 = 1039,
Prop_CameraFrameLayout_Int32 = 1040, // EVRTrackedCameraFrameLayout value
Prop_CameraStreamFormat_Int32 = 1041, // ECameraVideoStreamFormat value
+ Prop_AdditionalDeviceSettingsPath_String = 1042, // driver-relative path to additional device and global configuration settings
+ Prop_Identifiable_Bool = 1043, // Whether device supports being identified from vrmonitor (e.g. blink LED, vibrate haptics, etc)
// Properties that are unique to TrackedDeviceClass_HMD
Prop_ReportsTimeSinceVSync_Bool = 2000,
@@ -621,6 +649,7 @@ enum EVREventType
VREvent_Scroll = 305, // data is mouse
VREvent_TouchPadMove = 306, // data is mouse
VREvent_OverlayFocusChanged = 307, // data is overlay, global event
+ VREvent_ReloadOverlays = 308,
VREvent_InputFocusCaptured = 400, // data is process DEPRECATED
VREvent_InputFocusReleased = 401, // data is process DEPRECATED
@@ -670,6 +699,7 @@ enum EVREventType
VREvent_PrimaryDashboardDeviceChanged = 525,
VREvent_RoomViewShown = 526, // Sent by compositor whenever room-view is enabled
VREvent_RoomViewHidden = 527, // Sent by compositor whenever room-view is disabled
+ VREvent_ShowUI = 528, // data is showUi
VREvent_Notification_Shown = 600,
VREvent_Notification_Hidden = 601,
@@ -682,11 +712,12 @@ enum EVREventType
VREvent_QuitAcknowledged = 703, // data is process
VREvent_DriverRequestedQuit = 704, // The driver has requested that SteamVR shut down
- VREvent_ChaperoneDataHasChanged = 800,
+ VREvent_ChaperoneDataHasChanged = 800, // Sent when the process needs to call VRChaperone()->ReloadInfo()
VREvent_ChaperoneUniverseHasChanged = 801,
VREvent_ChaperoneTempDataHasChanged = 802,
VREvent_ChaperoneSettingsHaveChanged = 803,
VREvent_SeatedZeroPoseReset = 804,
+ VREvent_ChaperoneFlushCache = 805, // Sent when the process needs to reload any cached data it retrieved from VRChaperone()
VREvent_AudioSettingsHaveChanged = 820,
@@ -705,8 +736,9 @@ enum EVREventType
VREvent_KeyboardSectionSettingChanged = 862,
VREvent_PerfSectionSettingChanged = 863,
VREvent_DashboardSectionSettingChanged = 864,
- VREvent_WebInterfaceSectionSettingChanged = 865,
- VREvent_TrackersSectionSettingChanged = 866,
+ VREvent_WebInterfaceSectionSettingChanged = 865,
+ VREvent_TrackersSectionSettingChanged = 866,
+ VREvent_LastKnownSectionSettingChanged = 867,
VREvent_StatusUpdate = 900,
@@ -753,6 +785,7 @@ enum EVREventType
VREvent_Input_BindingLoadSuccessful = 1702, // data is inputBinding
VREvent_Input_ActionManifestReloaded = 1703, // no data
VREvent_Input_ActionManifestLoadFailed = 1704, // data is actionManifest
+ VREvent_Input_ProgressUpdate = 1705, // data is progressUpdate
VREvent_Input_TrackerActivated = 1706,
VREvent_SpatialAnchors_PoseUpdated = 1800, // data is spatialAnchor. broadcast
@@ -922,6 +955,8 @@ struct VREvent_Reserved_t
uint64_t reserved1;
uint64_t reserved2;
uint64_t reserved3;
+ uint64_t reserved4;
+ uint64_t reserved5;
};
struct VREvent_PerformanceTest_t
@@ -1016,6 +1051,28 @@ struct VREvent_SpatialAnchor_t
SpatialAnchorHandle_t unHandle;
};
+struct VREvent_ProgressUpdate_t
+{
+ uint64_t ulApplicationPropertyContainer;
+ uint64_t pathDevice;
+ uint64_t pathInputSource;
+ uint64_t pathProgressAction;
+ uint64_t pathIcon;
+ float fProgress;
+};
+
+enum EShowUIType
+{
+ ShowUI_ControllerBinding = 0,
+ ShowUI_ManageTrackers = 1,
+ ShowUI_QuickStart = 2,
+};
+
+struct VREvent_ShowUI_t
+{
+ EShowUIType eType;
+};
+
typedef union
{
VREvent_Reserved_t reserved;
@@ -1044,6 +1101,8 @@ typedef union
VREvent_InputBindingLoad_t inputBinding;
VREvent_InputActionManifestLoad_t actionManifest;
VREvent_SpatialAnchor_t spatialAnchor;
+ VREvent_ProgressUpdate_t progressUpdate;
+ VREvent_ShowUI_t showUi;
/** NOTE!!! If you change this you MUST manually update openvr_interop.cs.py */
} VREvent_Data_t;
@@ -1087,6 +1146,7 @@ enum EVRInputError
VRInputError_BufferTooSmall = 14,
VRInputError_MismatchedActionManifest = 15,
VRInputError_MissingSkeletonData = 16,
+ VRInputError_InvalidBoneIndex = 17,
};
enum EVRSpatialAnchorError
@@ -1262,7 +1322,8 @@ enum EVRApplicationType
// interfaces (like IVRSettings and IVRApplications) but not hardware.
VRApplication_VRMonitor = 5, // Reserved for vrmonitor
VRApplication_SteamWatchdog = 6,// Reserved for Steam
- VRApplication_Bootstrapper = 7, // Start up SteamVR
+ VRApplication_Bootstrapper = 7, // reserved for vrstartup
+ VRApplication_WebHelper = 8, // reserved for vrwebhelper
VRApplication_Max
};
@@ -1308,6 +1369,10 @@ struct VRBoneTransform_t
HmdQuaternionf_t orientation;
};
+/** Type used for referring to bones by their index */
+typedef int32_t BoneIndex_t;
+const BoneIndex_t k_unInvalidBoneIndex = -1;
+
/** error codes returned by Vr_Init */
@@ -1465,6 +1530,16 @@ enum EVRTrackedCameraFrameType
MAX_CAMERA_FRAME_TYPES
};
+enum EVRDistortionFunctionType
+{
+ VRDistortionFunctionType_None,
+ VRDistortionFunctionType_FTheta,
+ VRDistortionFucntionType_Extended_FTheta,
+ MAX_DISTORTION_FUNCTION_TYPES,
+};
+
+static const uint32_t k_unMaxDistortionFunctionParameters = 8;
+
typedef uint64_t TrackedCameraHandle_t;
#define INVALID_TRACKED_CAMERA_HANDLE ((vr::TrackedCameraHandle_t)0)
@@ -2253,18 +2328,14 @@ namespace vr
static const char * const k_pch_SteamVR_PlayAreaColor_String = "playAreaColor";
static const char * const k_pch_SteamVR_ShowStage_Bool = "showStage";
static const char * const k_pch_SteamVR_ActivateMultipleDrivers_Bool = "activateMultipleDrivers";
- static const char * const k_pch_SteamVR_DirectMode_Bool = "directMode";
- static const char * const k_pch_SteamVR_DirectModeEdidVid_Int32 = "directModeEdidVid";
- static const char * const k_pch_SteamVR_DirectModeEdidPid_Int32 = "directModeEdidPid";
static const char * const k_pch_SteamVR_UsingSpeakers_Bool = "usingSpeakers";
static const char * const k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float = "speakersForwardYawOffsetDegrees";
static const char * const k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement";
static const char * const k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses";
static const char * const k_pch_SteamVR_SupersampleScale_Float = "supersampleScale";
static const char * const k_pch_SteamVR_MaxRecommendedResolution_Int32 = "maxRecommendedResolution";
- static const char * const k_pch_SteamVR_AllowAsyncReprojection_Bool = "allowAsyncReprojection";
- static const char * const k_pch_SteamVR_AllowReprojection_Bool = "allowInterleavedReprojection";
- static const char * const k_pch_SteamVR_ForceReprojection_Bool = "forceReprojection";
+ static const char * const k_pch_SteamVR_MotionSmoothing_Bool = "motionSmoothing";
+ static const char * const k_pch_SteamVR_MotionSmoothingOverride_Int32 = "motionSmoothingOverride";
static const char * const k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking";
static const char * const k_pch_SteamVR_DefaultMirrorView_Int32 = "mirrorView";
static const char * const k_pch_SteamVR_ShowMirrorView_Bool = "showMirrorView";
@@ -2289,6 +2360,17 @@ namespace vr
static const char * const k_pch_SteamVR_DebugInputBinding = "debugInputBinding";
static const char * const k_pch_SteamVR_InputBindingUIBlock = "inputBindingUI";
static const char * const k_pch_SteamVR_RenderCameraMode = "renderCameraMode";
+ static const char * const k_pch_SteamVR_EnableSharedResourceJournaling = "enableSharedResourceJournaling";
+ static const char * const k_pch_SteamVR_EnableSafeMode = "enableSafeMode";
+ static const char * const k_pch_SteamVR_PreferredRefreshRate = "preferredRefreshRate";
+
+ //-----------------------------------------------------------------------------
+ // direct mode keys
+ static const char * const k_pch_DirectMode_Section = "direct_mode";
+ static const char * const k_pch_DirectMode_Enable_Bool = "enable";
+ static const char * const k_pch_DirectMode_Count_Int32 = "count";
+ static const char * const k_pch_DirectMode_EdidVid_Int32 = "edidVid";
+ static const char * const k_pch_DirectMode_EdidPid_Int32 = "edidPid";
//-----------------------------------------------------------------------------
// lighthouse keys
@@ -2301,6 +2383,7 @@ namespace vr
static const char * const k_pch_Lighthouse_DBHistory_Bool = "dbhistory";
static const char * const k_pch_Lighthouse_EnableBluetooth_Bool = "enableBluetooth";
static const char * const k_pch_Lighthouse_PowerManagedBaseStations_String = "PowerManagedBaseStations";
+ static const char * const k_pch_Lighthouse_PowerManagedBaseStations2_String = "PowerManagedBaseStations2";
static const char * const k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback";
//-----------------------------------------------------------------------------
@@ -2443,6 +2526,16 @@ namespace vr
// configuration for trackers
static const char * const k_pch_Trackers_Section = "trackers";
+ //-----------------------------------------------------------------------------
+ // configuration for desktop UI windows
+ static const char * const k_pch_DesktopUI_Section = "DesktopUI";
+
+ //-----------------------------------------------------------------------------
+ // Last known keys for righting recovery
+ static const char * const k_pch_LastKnown_Section = "LastKnown";
+ static const char* const k_pch_LastKnown_HMDManufacturer_String = "HMDManufacturer";
+ static const char* const k_pch_LastKnown_HMDModel_String = "HMDModel";
+
} // namespace vr
// ivrchaperone.h
@@ -2579,6 +2672,9 @@ public:
/** Sets the Collision Bounds in the working copy. */
virtual void SetWorkingCollisionBoundsInfo( VR_ARRAY_COUNT(unQuadsCount) HmdQuad_t *pQuadsBuffer, uint32_t unQuadsCount ) = 0;
+ /** Sets the Collision Bounds in the working copy. */
+ virtual void SetWorkingPerimeter( VR_ARRAY_COUNT( unPointCount ) HmdVector2_t *pPointBuffer, uint32_t unPointCount ) = 0;
+
/** Sets the preferred seated position in the working copy. */
virtual void SetWorkingSeatedZeroPoseToRawTrackingPose( const HmdMatrix34_t *pMatSeatedZeroPoseToRawTrackingPose ) = 0;
@@ -2591,17 +2687,17 @@ public:
/** Returns the preferred seated position. */
virtual bool GetLiveSeatedZeroPoseToRawTrackingPose( HmdMatrix34_t *pmatSeatedZeroPoseToRawTrackingPose ) = 0;
- virtual void SetWorkingCollisionBoundsTagsInfo( VR_ARRAY_COUNT(unTagCount) uint8_t *pTagsBuffer, uint32_t unTagCount ) = 0;
- virtual bool GetLiveCollisionBoundsTagsInfo( VR_OUT_ARRAY_COUNT(punTagCount) uint8_t *pTagsBuffer, uint32_t *punTagCount ) = 0;
-
- virtual bool SetWorkingPhysicalBoundsInfo( VR_ARRAY_COUNT(unQuadsCount) HmdQuad_t *pQuadsBuffer, uint32_t unQuadsCount ) = 0;
- virtual bool GetLivePhysicalBoundsInfo( VR_OUT_ARRAY_COUNT(punQuadsCount) HmdQuad_t *pQuadsBuffer, uint32_t* punQuadsCount ) = 0;
-
virtual bool ExportLiveToBuffer( VR_OUT_STRING() char *pBuffer, uint32_t *pnBufferLength ) = 0;
virtual bool ImportFromBufferToWorking( const char *pBuffer, uint32_t nImportFlags ) = 0;
+
+ /** Shows the chaperone data in the working set to preview in the compositor.*/
+ virtual void ShowWorkingSetPreview() = 0;
+
+ /** Hides the chaperone data in the working set to preview in the compositor (if it was visible).*/
+ virtual void HideWorkingSetPreview() = 0;
};
-static const char * const IVRChaperoneSetup_Version = "IVRChaperoneSetup_005";
+static const char * const IVRChaperoneSetup_Version = "IVRChaperoneSetup_006";
}
@@ -2646,6 +2742,8 @@ const uint32_t VRCompositor_ReprojectionAsync = 0x04; // This flag indicate
// NumFramePresents > 1 also indicates the scene texture was reused,
// and also the number of times that it was presented in total.
+const uint32_t VRCompositor_ReprojectionMotion = 0x08; // This flag indicates whether or not motion smoothing was triggered for this frame
+
const uint32_t VRCompositor_PredictionMask = 0x30; // The runtime may predict more than one frame (up to four) ahead if
// it detects the application is taking too long to render. These two
// bits will contain the count of additional frames (normally zero).
@@ -2926,6 +3024,11 @@ public:
* will perform a vkQueueSubmit on Vulkan so must not be done simultaneously with VkQueue operations on another thread.
* Returns VRCompositorError_RequestFailed if SetExplicitTimingMode is not enabled. */
virtual EVRCompositorError SubmitExplicitTimingData() = 0;
+
+ /** Indicates whether or not motion smoothing is enabled by the user settings.
+ * If you want to know if motion smoothing actually triggered due to a late frame, check Compositor_FrameTiming
+ * m_nReprojectionFlags & VRCompositor_ReprojectionMotion instead. */
+ virtual bool IsMotionSmoothingEnabled() = 0;
};
static const char * const IVRCompositor_Version = "IVRCompositor_022";
@@ -3099,6 +3202,10 @@ namespace vr
// If set, the overlay will be shown in the dashboard, otherwise it will be hidden.
VROverlayFlags_VisibleInDashboard = 15,
+
+ // If this is set and the overlay's input method is not none, the system-wide laser mouse
+ // mode will be activated whenever this overlay is visible.
+ VROverlayFlags_MakeOverlaysInteractiveIfVisible = 16,
};
enum VRMessageOverlayResponse
@@ -3404,7 +3511,7 @@ namespace vr
virtual EVROverlayError MoveGamepadFocusToNeighbor( EOverlayDirection eDirection, VROverlayHandle_t ulFrom ) = 0;
/** Sets the analog input to Dual Analog coordinate scale for the specified overlay. */
- virtual EVROverlayError SetOverlayDualAnalogTransform( VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, const HmdVector2_t & vCenter, float fRadius ) = 0;
+ virtual EVROverlayError SetOverlayDualAnalogTransform( VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, const HmdVector2_t *pvCenter, float fRadius ) = 0;
/** Gets the analog input to Dual Analog coordinate scale for the specified overlay. */
virtual EVROverlayError GetOverlayDualAnalogTransform( VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, HmdVector2_t *pvCenter, float *pfRadius ) = 0;
@@ -3518,7 +3625,7 @@ namespace vr
virtual void CloseMessageOverlay() = 0;
};
- static const char * const IVROverlay_Version = "IVROverlay_018";
+ static const char * const IVROverlay_Version = "IVROverlay_019";
} // namespace vr
@@ -3776,9 +3883,9 @@ public:
/** Gets size of the image frame. */
virtual vr::EVRTrackedCameraError GetCameraFrameSize( vr::TrackedDeviceIndex_t nDeviceIndex, vr::EVRTrackedCameraFrameType eFrameType, uint32_t *pnWidth, uint32_t *pnHeight, uint32_t *pnFrameBufferSize ) = 0;
- virtual vr::EVRTrackedCameraError GetCameraIntrinsics( vr::TrackedDeviceIndex_t nDeviceIndex, vr::EVRTrackedCameraFrameType eFrameType, vr::HmdVector2_t *pFocalLength, vr::HmdVector2_t *pCenter ) = 0;
+ virtual vr::EVRTrackedCameraError GetCameraIntrinsics( vr::TrackedDeviceIndex_t nDeviceIndex, uint32_t nCameraIndex, vr::EVRTrackedCameraFrameType eFrameType, vr::HmdVector2_t *pFocalLength, vr::HmdVector2_t *pCenter ) = 0;
- virtual vr::EVRTrackedCameraError GetCameraProjection( vr::TrackedDeviceIndex_t nDeviceIndex, vr::EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, vr::HmdMatrix44_t *pProjection ) = 0;
+ virtual vr::EVRTrackedCameraError GetCameraProjection( vr::TrackedDeviceIndex_t nDeviceIndex, uint32_t nCameraIndex, vr::EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, vr::HmdMatrix44_t *pProjection ) = 0;
/** Acquiring streaming service permits video streaming for the caller. Releasing hints the system that video services do not need to be maintained for this client.
* If the camera has not already been activated, a one time spin up may incur some auto exposure as well as initial streaming frame delays.
@@ -3810,7 +3917,7 @@ public:
virtual vr::EVRTrackedCameraError ReleaseVideoStreamTextureGL( vr::TrackedCameraHandle_t hTrackedCamera, vr::glUInt_t glTextureId ) = 0;
};
-static const char * const IVRTrackedCamera_Version = "IVRTrackedCamera_004";
+static const char * const IVRTrackedCamera_Version = "IVRTrackedCamera_005";
} // namespace vr
@@ -3972,82 +4079,135 @@ static const char * const IVRDriverManager_Version = "IVRDriverManager_001";
// ivrinput.h
namespace vr
{
-
static const uint32_t k_unMaxActionNameLength = 64;
static const uint32_t k_unMaxActionSetNameLength = 64;
static const uint32_t k_unMaxActionOriginCount = 16;
+ static const uint32_t k_unMaxBoneNameLength = 32;
+
+ enum EVRSkeletalTransformSpace
+ {
+ VRSkeletalTransformSpace_Model = 0,
+ VRSkeletalTransformSpace_Parent = 1
+ };
+
+ enum EVRSkeletalReferencePose
+ {
+ VRSkeletalReferencePose_BindPose = 0,
+ VRSkeletalReferencePose_OpenHand,
+ VRSkeletalReferencePose_Fist,
+ VRSkeletalReferencePose_GripLimit
+ };
+
+ enum EVRFinger
+ {
+ VRFinger_Thumb = 0,
+ VRFinger_Index,
+ VRFinger_Middle,
+ VRFinger_Ring,
+ VRFinger_Pinky,
+ VRFinger_Count
+ };
+
+ enum EVRFingerSplay
+ {
+ VRFingerSplay_Thumb_Index = 0,
+ VRFingerSplay_Index_Middle,
+ VRFingerSplay_Middle_Ring,
+ VRFingerSplay_Ring_Pinky,
+ VRFingerSplay_Count
+ };
+
+ enum EVRSkeletalTrackingLevel
+ {
+ // body part location can’t be directly determined by the device. Any skeletal pose provided by
+ // the device is estimated by assuming the position required to active buttons, triggers, joysticks,
+ // or other input sensors.
+ // E.g. Vive Controller, Gamepad
+ VRSkeletalTracking_Estimated = 0,
+
+ // body part location can be measured directly but with fewer degrees of freedom than the actual body
+ // part. Certain body part positions may be unmeasured by the device and estimated from other input data.
+ // E.g. Knuckles, gloves that only measure finger curl
+ VRSkeletalTracking_Partial,
+
+ // Body part location can be measured directly throughout the entire range of motion of the body part.
+ // E.g. Mocap suit for the full body, gloves that measure rotation of each finger segment
+ VRSkeletalTracking_Full,
+
+ VRSkeletalTrackingLevel_Count,
+ VRSkeletalTrackingLevel_Max = VRSkeletalTrackingLevel_Count - 1
+ };
+
+ enum EVRInputFilterCancelType
+ {
+ VRInputFilterCancel_Timers = 0,
+ VRInputFilterCancel_Momentum = 1,
+ };
+
+ enum EVRInputStringBits
+ {
+ VRInputString_Hand = 0x01,
+ VRInputString_ControllerType = 0x02,
+ VRInputString_InputSource = 0x04,
+
+ VRInputString_All = 0xFFFFFFFF
+ };
struct InputAnalogActionData_t
{
- // Whether or not this action is currently available to be bound in the active action set
+ /** Whether or not this action is currently available to be bound in the active action set */
bool bActive;
- // The origin that caused this action's current state
+ /** The origin that caused this action's current state */
VRInputValueHandle_t activeOrigin;
- // The current state of this action; will be delta updates for mouse actions
+ /** The current state of this action; will be delta updates for mouse actions */
float x, y, z;
- // Deltas since the previous call to UpdateActionState()
+ /** Deltas since the previous call to UpdateActionState() */
float deltaX, deltaY, deltaZ;
- // Time relative to now when this event happened. Will be negative to indicate a past time.
+ /** Time relative to now when this event happened. Will be negative to indicate a past time. */
float fUpdateTime;
};
struct InputDigitalActionData_t
{
- // Whether or not this action is currently available to be bound in the active action set
+ /** Whether or not this action is currently available to be bound in the active action set */
bool bActive;
- // The origin that caused this action's current state
+ /** The origin that caused this action's current state */
VRInputValueHandle_t activeOrigin;
- // The current state of this action; will be true if currently pressed
+ /** The current state of this action; will be true if currently pressed */
bool bState;
- // This is true if the state has changed since the last frame
+ /** This is true if the state has changed since the last frame */
bool bChanged;
- // Time relative to now when this event happened. Will be negative to indicate a past time.
+ /** Time relative to now when this event happened. Will be negative to indicate a past time. */
float fUpdateTime;
};
struct InputPoseActionData_t
{
- // Whether or not this action is currently available to be bound in the active action set
+ /** Whether or not this action is currently available to be bound in the active action set */
bool bActive;
- // The origin that caused this action's current state
+ /** The origin that caused this action's current state */
VRInputValueHandle_t activeOrigin;
- // The current state of this action
+ /** The current state of this action */
TrackedDevicePose_t pose;
};
struct InputSkeletalActionData_t
{
- // Whether or not this action is currently available to be bound in the active action set
+ /** Whether or not this action is currently available to be bound in the active action set */
bool bActive;
- // The origin that caused this action's current state
+ /** The origin that caused this action's current state */
VRInputValueHandle_t activeOrigin;
-
- // The number of bones in the skeletal data
- uint32_t boneCount;
- };
-
- enum EVRSkeletalTransformSpace
- {
- VRSkeletalTransformSpace_Model = 0,
- VRSkeletalTransformSpace_Parent = 1,
- VRSkeletalTransformSpace_Additive = 2,
- };
-
- enum EVRInputFilterCancelType
- {
- VRInputFilterCancel_Timers = 0,
- VRInputFilterCancel_Momentum = 1,
};
struct InputOriginInfo_t
@@ -4080,6 +4240,20 @@ namespace vr
int32_t nPriority;
};
+ /** Contains summary information about the current skeletal pose */
+ struct VRSkeletalSummaryData_t
+ {
+ /** The amount that each finger is 'curled' inwards towards the palm. In the case of the thumb,
+ * this represents how much the thumb is wrapped around the fist.
+ * 0 means straight, 1 means fully curled */
+ float flFingerCurl[ VRFinger_Count ];
+
+ /** The amount that each pair of adjacent fingers are separated.
+ * 0 means the digits are touching, 1 means they are fully separated.
+ */
+ float flFingerSplay[ VRFingerSplay_Count ];
+ };
+
class IVRInput
{
@@ -4120,20 +4294,40 @@ namespace vr
virtual EVRInputError GetPoseActionData( VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, InputPoseActionData_t *pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice ) = 0;
/** Reads the state of a skeletal action given its handle. */
- virtual EVRInputError GetSkeletalActionData( VRActionHandle_t action, InputSkeletalActionData_t *pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice ) = 0;
+ virtual EVRInputError GetSkeletalActionData( VRActionHandle_t action, InputSkeletalActionData_t *pActionData, uint32_t unActionDataSize ) = 0;
+
+ // --------------- Static Skeletal Data ------------------- //
+
+ /** Reads the number of bones in skeleton associated with the given action */
+ virtual EVRInputError GetBoneCount( VRActionHandle_t action, uint32_t* pBoneCount ) = 0;
- // --------------- Skeletal Bone Data ------------------- //
+ /** Fills the given array with the index of each bone's parent in the skeleton associated with the given action */
+ virtual EVRInputError GetBoneHierarchy( VRActionHandle_t action, VR_ARRAY_COUNT( unIndexArayCount ) BoneIndex_t* pParentIndices, uint32_t unIndexArayCount ) = 0;
+
+ /** Fills the given buffer with the name of the bone at the given index in the skeleton associated with the given action */
+ virtual EVRInputError GetBoneName( VRActionHandle_t action, BoneIndex_t nBoneIndex, VR_OUT_STRING() char* pchBoneName, uint32_t unNameBufferSize ) = 0;
+
+ /** Fills the given buffer with the transforms for a specific static skeletal reference pose */
+ virtual EVRInputError GetSkeletalReferenceTransforms( VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalReferencePose eReferencePose, VR_ARRAY_COUNT( unTransformArrayCount ) VRBoneTransform_t *pTransformArray, uint32_t unTransformArrayCount ) = 0;
+
+ /** Reads the level of accuracy to which the controller is able to track the user to recreate a skeletal pose */
+ virtual EVRInputError GetSkeletalTrackingLevel( VRActionHandle_t action, EVRSkeletalTrackingLevel* pSkeletalTrackingLevel ) = 0;
+
+ // --------------- Dynamic Skeletal Data ------------------- //
/** Reads the state of the skeletal bone data associated with this action and copies it into the given buffer. */
- virtual EVRInputError GetSkeletalBoneData( VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, VR_ARRAY_COUNT( unTransformArrayCount ) VRBoneTransform_t *pTransformArray, uint32_t unTransformArrayCount, VRInputValueHandle_t ulRestrictToDevice ) = 0;
+ virtual EVRInputError GetSkeletalBoneData( VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, VR_ARRAY_COUNT( unTransformArrayCount ) VRBoneTransform_t *pTransformArray, uint32_t unTransformArrayCount ) = 0;
+
+ /** Reads summary information about the current pose of the skeleton associated with the given action. */
+ virtual EVRInputError GetSkeletalSummaryData( VRActionHandle_t action, VRSkeletalSummaryData_t * pSkeletalSummaryData ) = 0;
/** Reads the state of the skeletal bone data in a compressed form that is suitable for
* sending over the network. The required buffer size will never exceed ( sizeof(VR_BoneTransform_t)*boneCount + 2).
* Usually the size will be much smaller. */
- virtual EVRInputError GetSkeletalBoneDataCompressed( VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, VR_OUT_BUFFER_COUNT( unCompressedSize ) void *pvCompressedData, uint32_t unCompressedSize, uint32_t *punRequiredCompressedSize, VRInputValueHandle_t ulRestrictToDevice ) = 0;
+ virtual EVRInputError GetSkeletalBoneDataCompressed( VRActionHandle_t action, EVRSkeletalMotionRange eMotionRange, VR_OUT_BUFFER_COUNT( unCompressedSize ) void *pvCompressedData, uint32_t unCompressedSize, uint32_t *punRequiredCompressedSize ) = 0;
/** Turns a compressed buffer from GetSkeletalBoneDataCompressed and turns it back into a bone transform array. */
- virtual EVRInputError DecompressSkeletalBoneData( void *pvCompressedBuffer, uint32_t unCompressedBufferSize, EVRSkeletalTransformSpace *peTransformSpace, VR_ARRAY_COUNT( unTransformArrayCount ) VRBoneTransform_t *pTransformArray, uint32_t unTransformArrayCount ) = 0;
+ virtual EVRInputError DecompressSkeletalBoneData( const void *pvCompressedBuffer, uint32_t unCompressedBufferSize, EVRSkeletalTransformSpace eTransformSpace, VR_ARRAY_COUNT( unTransformArrayCount ) VRBoneTransform_t *pTransformArray, uint32_t unTransformArrayCount ) = 0;
// --------------- Haptics ------------------- //
@@ -4145,8 +4339,9 @@ namespace vr
/** Retrieve origin handles for an action */
virtual EVRInputError GetActionOrigins( VRActionSetHandle_t actionSetHandle, VRActionHandle_t digitalActionHandle, VR_ARRAY_COUNT( originOutCount ) VRInputValueHandle_t *originsOut, uint32_t originOutCount ) = 0;
- /** Retrieves the name of the origin in the current language */
- virtual EVRInputError GetOriginLocalizedName( VRInputValueHandle_t origin, VR_OUT_STRING() char *pchNameArray, uint32_t unNameArraySize ) = 0;
+ /** Retrieves the name of the origin in the current language. unStringSectionsToInclude is a bitfield of values in EVRInputStringBits that allows the
+ application to specify which parts of the origin's information it wants a string for. */
+ virtual EVRInputError GetOriginLocalizedName( VRInputValueHandle_t origin, VR_OUT_STRING() char *pchNameArray, uint32_t unNameArraySize, int32_t unStringSectionsToInclude ) = 0;
/** Retrieves useful information for the origin of this action */
virtual EVRInputError GetOriginTrackedDeviceInfo( VRInputValueHandle_t origin, InputOriginInfo_t *pOriginInfo, uint32_t unOriginInfoSize ) = 0;
@@ -4158,7 +4353,7 @@ namespace vr
virtual EVRInputError ShowBindingsForActionSet( VR_ARRAY_COUNT( unSetCount ) VRActiveActionSet_t *pSets, uint32_t unSizeOfVRSelectedActionSet_t, uint32_t unSetCount, VRInputValueHandle_t originToHighlight ) = 0;
};
- static const char * const IVRInput_Version = "IVRInput_004";
+ static const char * const IVRInput_Version = "IVRInput_005";
} // namespace vr
diff --git a/headers/openvr_api.cs b/headers/openvr_api.cs
index 116c1a3..1bb833f 100644
--- a/headers/openvr_api.cs
+++ b/headers/openvr_api.cs
@@ -291,12 +291,12 @@ public struct IVRTrackedCamera
internal _GetCameraFrameSize GetCameraFrameSize;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate EVRTrackedCameraError _GetCameraIntrinsics(uint nDeviceIndex, EVRTrackedCameraFrameType eFrameType, ref HmdVector2_t pFocalLength, ref HmdVector2_t pCenter);
+ internal delegate EVRTrackedCameraError _GetCameraIntrinsics(uint nDeviceIndex, uint nCameraIndex, EVRTrackedCameraFrameType eFrameType, ref HmdVector2_t pFocalLength, ref HmdVector2_t pCenter);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _GetCameraIntrinsics GetCameraIntrinsics;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate EVRTrackedCameraError _GetCameraProjection(uint nDeviceIndex, EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, ref HmdMatrix44_t pProjection);
+ internal delegate EVRTrackedCameraError _GetCameraProjection(uint nDeviceIndex, uint nCameraIndex, EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, ref HmdMatrix44_t pProjection);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _GetCameraProjection GetCameraProjection;
@@ -596,6 +596,11 @@ public struct IVRChaperoneSetup
internal _SetWorkingCollisionBoundsInfo SetWorkingCollisionBoundsInfo;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate void _SetWorkingPerimeter([In, Out] HmdVector2_t[] pPointBuffer, uint unPointCount);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _SetWorkingPerimeter SetWorkingPerimeter;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
internal delegate void _SetWorkingSeatedZeroPoseToRawTrackingPose(ref HmdMatrix34_t pMatSeatedZeroPoseToRawTrackingPose);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _SetWorkingSeatedZeroPoseToRawTrackingPose SetWorkingSeatedZeroPoseToRawTrackingPose;
@@ -616,34 +621,24 @@ public struct IVRChaperoneSetup
internal _GetLiveSeatedZeroPoseToRawTrackingPose GetLiveSeatedZeroPoseToRawTrackingPose;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate void _SetWorkingCollisionBoundsTagsInfo([In, Out] byte[] pTagsBuffer, uint unTagCount);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _SetWorkingCollisionBoundsTagsInfo SetWorkingCollisionBoundsTagsInfo;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _GetLiveCollisionBoundsTagsInfo([In, Out] byte[] pTagsBuffer, ref uint punTagCount);
+ internal delegate bool _ExportLiveToBuffer(System.Text.StringBuilder pBuffer, ref uint pnBufferLength);
[MarshalAs(UnmanagedType.FunctionPtr)]
- internal _GetLiveCollisionBoundsTagsInfo GetLiveCollisionBoundsTagsInfo;
+ internal _ExportLiveToBuffer ExportLiveToBuffer;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _SetWorkingPhysicalBoundsInfo([In, Out] HmdQuad_t[] pQuadsBuffer, uint unQuadsCount);
+ internal delegate bool _ImportFromBufferToWorking(string pBuffer, uint nImportFlags);
[MarshalAs(UnmanagedType.FunctionPtr)]
- internal _SetWorkingPhysicalBoundsInfo SetWorkingPhysicalBoundsInfo;
+ internal _ImportFromBufferToWorking ImportFromBufferToWorking;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _GetLivePhysicalBoundsInfo([In, Out] HmdQuad_t[] pQuadsBuffer, ref uint punQuadsCount);
+ internal delegate void _ShowWorkingSetPreview();
[MarshalAs(UnmanagedType.FunctionPtr)]
- internal _GetLivePhysicalBoundsInfo GetLivePhysicalBoundsInfo;
+ internal _ShowWorkingSetPreview ShowWorkingSetPreview;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _ExportLiveToBuffer(System.Text.StringBuilder pBuffer, ref uint pnBufferLength);
+ internal delegate void _HideWorkingSetPreview();
[MarshalAs(UnmanagedType.FunctionPtr)]
- internal _ExportLiveToBuffer ExportLiveToBuffer;
-
- [UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate bool _ImportFromBufferToWorking(string pBuffer, uint nImportFlags);
- [MarshalAs(UnmanagedType.FunctionPtr)]
- internal _ImportFromBufferToWorking ImportFromBufferToWorking;
+ internal _HideWorkingSetPreview HideWorkingSetPreview;
}
@@ -865,6 +860,11 @@ public struct IVRCompositor
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _SubmitExplicitTimingData SubmitExplicitTimingData;
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate bool _IsMotionSmoothingEnabled();
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _IsMotionSmoothingEnabled IsMotionSmoothingEnabled;
+
}
[StructLayout(LayoutKind.Sequential)]
@@ -1151,7 +1151,7 @@ public struct IVROverlay
internal _MoveGamepadFocusToNeighbor MoveGamepadFocusToNeighbor;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate EVROverlayError _SetOverlayDualAnalogTransform(ulong ulOverlay, EDualAnalogWhich eWhich, IntPtr vCenter, float fRadius);
+ internal delegate EVROverlayError _SetOverlayDualAnalogTransform(ulong ulOverlay, EDualAnalogWhich eWhich, ref HmdVector2_t pvCenter, float fRadius);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _SetOverlayDualAnalogTransform SetOverlayDualAnalogTransform;
@@ -1581,22 +1581,52 @@ public struct IVRInput
internal _GetPoseActionData GetPoseActionData;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate EVRInputError _GetSkeletalActionData(ulong action, ref InputSkeletalActionData_t pActionData, uint unActionDataSize, ulong ulRestrictToDevice);
+ internal delegate EVRInputError _GetSkeletalActionData(ulong action, ref InputSkeletalActionData_t pActionData, uint unActionDataSize);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _GetSkeletalActionData GetSkeletalActionData;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate EVRInputError _GetSkeletalBoneData(ulong action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, [In, Out] VRBoneTransform_t[] pTransformArray, uint unTransformArrayCount, ulong ulRestrictToDevice);
+ internal delegate EVRInputError _GetBoneCount(ulong action, ref uint pBoneCount);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _GetBoneCount GetBoneCount;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVRInputError _GetBoneHierarchy(ulong action, [In, Out] int[] pParentIndices, uint unIndexArayCount);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _GetBoneHierarchy GetBoneHierarchy;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVRInputError _GetBoneName(ulong action, int nBoneIndex, System.Text.StringBuilder pchBoneName, uint unNameBufferSize);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _GetBoneName GetBoneName;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVRInputError _GetSkeletalReferenceTransforms(ulong action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalReferencePose eReferencePose, [In, Out] VRBoneTransform_t[] pTransformArray, uint unTransformArrayCount);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _GetSkeletalReferenceTransforms GetSkeletalReferenceTransforms;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVRInputError _GetSkeletalTrackingLevel(ulong action, ref EVRSkeletalTrackingLevel pSkeletalTrackingLevel);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _GetSkeletalTrackingLevel GetSkeletalTrackingLevel;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVRInputError _GetSkeletalBoneData(ulong action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, [In, Out] VRBoneTransform_t[] pTransformArray, uint unTransformArrayCount);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _GetSkeletalBoneData GetSkeletalBoneData;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate EVRInputError _GetSkeletalBoneDataCompressed(ulong action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, IntPtr pvCompressedData, uint unCompressedSize, ref uint punRequiredCompressedSize, ulong ulRestrictToDevice);
+ internal delegate EVRInputError _GetSkeletalSummaryData(ulong action, ref VRSkeletalSummaryData_t pSkeletalSummaryData);
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ internal _GetSkeletalSummaryData GetSkeletalSummaryData;
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ internal delegate EVRInputError _GetSkeletalBoneDataCompressed(ulong action, EVRSkeletalMotionRange eMotionRange, IntPtr pvCompressedData, uint unCompressedSize, ref uint punRequiredCompressedSize);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _GetSkeletalBoneDataCompressed GetSkeletalBoneDataCompressed;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate EVRInputError _DecompressSkeletalBoneData(IntPtr pvCompressedBuffer, uint unCompressedBufferSize, ref EVRSkeletalTransformSpace peTransformSpace, [In, Out] VRBoneTransform_t[] pTransformArray, uint unTransformArrayCount);
+ internal delegate EVRInputError _DecompressSkeletalBoneData(IntPtr pvCompressedBuffer, uint unCompressedBufferSize, EVRSkeletalTransformSpace eTransformSpace, [In, Out] VRBoneTransform_t[] pTransformArray, uint unTransformArrayCount);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _DecompressSkeletalBoneData DecompressSkeletalBoneData;
@@ -1611,7 +1641,7 @@ public struct IVRInput
internal _GetActionOrigins GetActionOrigins;
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
- internal delegate EVRInputError _GetOriginLocalizedName(ulong origin, System.Text.StringBuilder pchNameArray, uint unNameArraySize);
+ internal delegate EVRInputError _GetOriginLocalizedName(ulong origin, System.Text.StringBuilder pchNameArray, uint unNameArraySize, int unStringSectionsToInclude);
[MarshalAs(UnmanagedType.FunctionPtr)]
internal _GetOriginLocalizedName GetOriginLocalizedName;
@@ -2069,14 +2099,14 @@ public class CVRTrackedCamera
EVRTrackedCameraError result = FnTable.GetCameraFrameSize(nDeviceIndex,eFrameType,ref pnWidth,ref pnHeight,ref pnFrameBufferSize);
return result;
}
- public EVRTrackedCameraError GetCameraIntrinsics(uint nDeviceIndex,EVRTrackedCameraFrameType eFrameType,ref HmdVector2_t pFocalLength,ref HmdVector2_t pCenter)
+ public EVRTrackedCameraError GetCameraIntrinsics(uint nDeviceIndex,uint nCameraIndex,EVRTrackedCameraFrameType eFrameType,ref HmdVector2_t pFocalLength,ref HmdVector2_t pCenter)
{
- EVRTrackedCameraError result = FnTable.GetCameraIntrinsics(nDeviceIndex,eFrameType,ref pFocalLength,ref pCenter);
+ EVRTrackedCameraError result = FnTable.GetCameraIntrinsics(nDeviceIndex,nCameraIndex,eFrameType,ref pFocalLength,ref pCenter);
return result;
}
- public EVRTrackedCameraError GetCameraProjection(uint nDeviceIndex,EVRTrackedCameraFrameType eFrameType,float flZNear,float flZFar,ref HmdMatrix44_t pProjection)
+ public EVRTrackedCameraError GetCameraProjection(uint nDeviceIndex,uint nCameraIndex,EVRTrackedCameraFrameType eFrameType,float flZNear,float flZFar,ref HmdMatrix44_t pProjection)
{
- EVRTrackedCameraError result = FnTable.GetCameraProjection(nDeviceIndex,eFrameType,flZNear,flZFar,ref pProjection);
+ EVRTrackedCameraError result = FnTable.GetCameraProjection(nDeviceIndex,nCameraIndex,eFrameType,flZNear,flZFar,ref pProjection);
return result;
}
public EVRTrackedCameraError AcquireVideoStreamingService(uint nDeviceIndex,ref ulong pHandle)
@@ -2396,6 +2426,10 @@ public class CVRChaperoneSetup
{
FnTable.SetWorkingCollisionBoundsInfo(pQuadsBuffer,(uint) pQuadsBuffer.Length);
}
+ public void SetWorkingPerimeter(HmdVector2_t [] pPointBuffer)
+ {
+ FnTable.SetWorkingPerimeter(pPointBuffer,(uint) pPointBuffer.Length);
+ }
public void SetWorkingSeatedZeroPoseToRawTrackingPose(ref HmdMatrix34_t pMatSeatedZeroPoseToRawTrackingPose)
{
FnTable.SetWorkingSeatedZeroPoseToRawTrackingPose(ref pMatSeatedZeroPoseToRawTrackingPose);
@@ -2413,31 +2447,6 @@ public class CVRChaperoneSetup
bool result = FnTable.GetLiveSeatedZeroPoseToRawTrackingPose(ref pmatSeatedZeroPoseToRawTrackingPose);
return result;
}
- public void SetWorkingCollisionBoundsTagsInfo(byte [] pTagsBuffer)
- {
- FnTable.SetWorkingCollisionBoundsTagsInfo(pTagsBuffer,(uint) pTagsBuffer.Length);
- }
- public bool GetLiveCollisionBoundsTagsInfo(out byte [] pTagsBuffer)
- {
- uint punTagCount = 0;
- bool result = FnTable.GetLiveCollisionBoundsTagsInfo(null,ref punTagCount);
- pTagsBuffer= new byte[punTagCount];
- result = FnTable.GetLiveCollisionBoundsTagsInfo(pTagsBuffer,ref punTagCount);
- return result;
- }
- public bool SetWorkingPhysicalBoundsInfo(HmdQuad_t [] pQuadsBuffer)
- {
- bool result = FnTable.SetWorkingPhysicalBoundsInfo(pQuadsBuffer,(uint) pQuadsBuffer.Length);
- return result;
- }
- public bool GetLivePhysicalBoundsInfo(out HmdQuad_t [] pQuadsBuffer)
- {
- uint punQuadsCount = 0;
- bool result = FnTable.GetLivePhysicalBoundsInfo(null,ref punQuadsCount);
- pQuadsBuffer= new HmdQuad_t[punQuadsCount];
- result = FnTable.GetLivePhysicalBoundsInfo(pQuadsBuffer,ref punQuadsCount);
- return result;
- }
public bool ExportLiveToBuffer(System.Text.StringBuilder pBuffer,ref uint pnBufferLength)
{
pnBufferLength = 0;
@@ -2449,6 +2458,14 @@ public class CVRChaperoneSetup
bool result = FnTable.ImportFromBufferToWorking(pBuffer,nImportFlags);
return result;
}
+ public void ShowWorkingSetPreview()
+ {
+ FnTable.ShowWorkingSetPreview();
+ }
+ public void HideWorkingSetPreview()
+ {
+ FnTable.HideWorkingSetPreview();
+ }
}
@@ -2655,6 +2672,11 @@ public class CVRCompositor
EVRCompositorError result = FnTable.SubmitExplicitTimingData();
return result;
}
+ public bool IsMotionSmoothingEnabled()
+ {
+ bool result = FnTable.IsMotionSmoothingEnabled();
+ return result;
+ }
}
@@ -2988,9 +3010,9 @@ public class CVROverlay
EVROverlayError result = FnTable.MoveGamepadFocusToNeighbor(eDirection,ulFrom);
return result;
}
- public EVROverlayError SetOverlayDualAnalogTransform(ulong ulOverlay,EDualAnalogWhich eWhich,IntPtr vCenter,float fRadius)
+ public EVROverlayError SetOverlayDualAnalogTransform(ulong ulOverlay,EDualAnalogWhich eWhich,ref HmdVector2_t pvCenter,float fRadius)
{
- EVROverlayError result = FnTable.SetOverlayDualAnalogTransform(ulOverlay,eWhich,vCenter,fRadius);
+ EVROverlayError result = FnTable.SetOverlayDualAnalogTransform(ulOverlay,eWhich,ref pvCenter,fRadius);
return result;
}
public EVROverlayError GetOverlayDualAnalogTransform(ulong ulOverlay,EDualAnalogWhich eWhich,ref HmdVector2_t pvCenter,ref float pfRadius)
@@ -3480,25 +3502,56 @@ public class CVRInput
EVRInputError result = FnTable.GetPoseActionData(action,eOrigin,fPredictedSecondsFromNow,ref pActionData,unActionDataSize,ulRestrictToDevice);
return result;
}
- public EVRInputError GetSkeletalActionData(ulong action,ref InputSkeletalActionData_t pActionData,uint unActionDataSize,ulong ulRestrictToDevice)
+ public EVRInputError GetSkeletalActionData(ulong action,ref InputSkeletalActionData_t pActionData,uint unActionDataSize)
+ {
+ EVRInputError result = FnTable.GetSkeletalActionData(action,ref pActionData,unActionDataSize);
+ return result;
+ }
+ public EVRInputError GetBoneCount(ulong action,ref uint pBoneCount)
+ {
+ pBoneCount = 0;
+ EVRInputError result = FnTable.GetBoneCount(action,ref pBoneCount);
+ return result;
+ }
+ public EVRInputError GetBoneHierarchy(ulong action,int [] pParentIndices)
+ {
+ EVRInputError result = FnTable.GetBoneHierarchy(action,pParentIndices,(uint) pParentIndices.Length);
+ return result;
+ }
+ public EVRInputError GetBoneName(ulong action,int nBoneIndex,System.Text.StringBuilder pchBoneName,uint unNameBufferSize)
+ {
+ EVRInputError result = FnTable.GetBoneName(action,nBoneIndex,pchBoneName,unNameBufferSize);
+ return result;
+ }
+ public EVRInputError GetSkeletalReferenceTransforms(ulong action,EVRSkeletalTransformSpace eTransformSpace,EVRSkeletalReferencePose eReferencePose,VRBoneTransform_t [] pTransformArray)
+ {
+ EVRInputError result = FnTable.GetSkeletalReferenceTransforms(action,eTransformSpace,eReferencePose,pTransformArray,(uint) pTransformArray.Length);
+ return result;
+ }
+ public EVRInputError GetSkeletalTrackingLevel(ulong action,ref EVRSkeletalTrackingLevel pSkeletalTrackingLevel)
{
- EVRInputError result = FnTable.GetSkeletalActionData(action,ref pActionData,unActionDataSize,ulRestrictToDevice);
+ EVRInputError result = FnTable.GetSkeletalTrackingLevel(action,ref pSkeletalTrackingLevel);
return result;
}
- public EVRInputError GetSkeletalBoneData(ulong action,EVRSkeletalTransformSpace eTransformSpace,EVRSkeletalMotionRange eMotionRange,VRBoneTransform_t [] pTransformArray,ulong ulRestrictToDevice)
+ public EVRInputError GetSkeletalBoneData(ulong action,EVRSkeletalTransformSpace eTransformSpace,EVRSkeletalMotionRange eMotionRange,VRBoneTransform_t [] pTransformArray)
{
- EVRInputError result = FnTable.GetSkeletalBoneData(action,eTransformSpace,eMotionRange,pTransformArray,(uint) pTransformArray.Length,ulRestrictToDevice);
+ EVRInputError result = FnTable.GetSkeletalBoneData(action,eTransformSpace,eMotionRange,pTransformArray,(uint) pTransformArray.Length);
return result;
}
- public EVRInputError GetSkeletalBoneDataCompressed(ulong action,EVRSkeletalTransformSpace eTransformSpace,EVRSkeletalMotionRange eMotionRange,IntPtr pvCompressedData,uint unCompressedSize,ref uint punRequiredCompressedSize,ulong ulRestrictToDevice)
+ public EVRInputError GetSkeletalSummaryData(ulong action,ref VRSkeletalSummaryData_t pSkeletalSummaryData)
+ {
+ EVRInputError result = FnTable.GetSkeletalSummaryData(action,ref pSkeletalSummaryData);
+ return result;
+ }
+ public EVRInputError GetSkeletalBoneDataCompressed(ulong action,EVRSkeletalMotionRange eMotionRange,IntPtr pvCompressedData,uint unCompressedSize,ref uint punRequiredCompressedSize)
{
punRequiredCompressedSize = 0;
- EVRInputError result = FnTable.GetSkeletalBoneDataCompressed(action,eTransformSpace,eMotionRange,pvCompressedData,unCompressedSize,ref punRequiredCompressedSize,ulRestrictToDevice);
+ EVRInputError result = FnTable.GetSkeletalBoneDataCompressed(action,eMotionRange,pvCompressedData,unCompressedSize,ref punRequiredCompressedSize);
return result;
}
- public EVRInputError DecompressSkeletalBoneData(IntPtr pvCompressedBuffer,uint unCompressedBufferSize,ref EVRSkeletalTransformSpace peTransformSpace,VRBoneTransform_t [] pTransformArray)
+ public EVRInputError DecompressSkeletalBoneData(IntPtr pvCompressedBuffer,uint unCompressedBufferSize,EVRSkeletalTransformSpace eTransformSpace,VRBoneTransform_t [] pTransformArray)
{
- EVRInputError result = FnTable.DecompressSkeletalBoneData(pvCompressedBuffer,unCompressedBufferSize,ref peTransformSpace,pTransformArray,(uint) pTransformArray.Length);
+ EVRInputError result = FnTable.DecompressSkeletalBoneData(pvCompressedBuffer,unCompressedBufferSize,eTransformSpace,pTransformArray,(uint) pTransformArray.Length);
return result;
}
public EVRInputError TriggerHapticVibrationAction(ulong action,float fStartSecondsFromNow,float fDurationSeconds,float fFrequency,float fAmplitude,ulong ulRestrictToDevice)
@@ -3511,9 +3564,9 @@ public class CVRInput
EVRInputError result = FnTable.GetActionOrigins(actionSetHandle,digitalActionHandle,originsOut,(uint) originsOut.Length);
return result;
}
- public EVRInputError GetOriginLocalizedName(ulong origin,System.Text.StringBuilder pchNameArray,uint unNameArraySize)
+ public EVRInputError GetOriginLocalizedName(ulong origin,System.Text.StringBuilder pchNameArray,uint unNameArraySize,int unStringSectionsToInclude)
{
- EVRInputError result = FnTable.GetOriginLocalizedName(origin,pchNameArray,unNameArraySize);
+ EVRInputError result = FnTable.GetOriginLocalizedName(origin,pchNameArray,unNameArraySize,unStringSectionsToInclude);
return result;
}
public EVRInputError GetOriginTrackedDeviceInfo(ulong origin,ref InputOriginInfo_t pOriginInfo,uint unOriginInfoSize)
@@ -3676,6 +3729,7 @@ public enum ETrackedControllerRole
LeftHand = 1,
RightHand = 2,
OptOut = 3,
+ Treadmill = 4,
Max = 4,
}
public enum ETrackingUniverseOrigin
@@ -3729,6 +3783,8 @@ public enum ETrackedDeviceProperty
Prop_NumCameras_Int32 = 1039,
Prop_CameraFrameLayout_Int32 = 1040,
Prop_CameraStreamFormat_Int32 = 1041,
+ Prop_AdditionalDeviceSettingsPath_String = 1042,
+ Prop_Identifiable_Bool = 1043,
Prop_ReportsTimeSinceVSync_Bool = 2000,
Prop_SecondsFromVsyncToPhotons_Float = 2001,
Prop_DisplayFrequency_Float = 2002,
@@ -3922,6 +3978,7 @@ public enum EVREventType
VREvent_Scroll = 305,
VREvent_TouchPadMove = 306,
VREvent_OverlayFocusChanged = 307,
+ VREvent_ReloadOverlays = 308,
VREvent_InputFocusCaptured = 400,
VREvent_InputFocusReleased = 401,
VREvent_SceneFocusLost = 402,
@@ -3962,6 +4019,7 @@ public enum EVREventType
VREvent_PrimaryDashboardDeviceChanged = 525,
VREvent_RoomViewShown = 526,
VREvent_RoomViewHidden = 527,
+ VREvent_ShowUI = 528,
VREvent_Notification_Shown = 600,
VREvent_Notification_Hidden = 601,
VREvent_Notification_BeginInteraction = 602,
@@ -3976,6 +4034,7 @@ public enum EVREventType
VREvent_ChaperoneTempDataHasChanged = 802,
VREvent_ChaperoneSettingsHaveChanged = 803,
VREvent_SeatedZeroPoseReset = 804,
+ VREvent_ChaperoneFlushCache = 805,
VREvent_AudioSettingsHaveChanged = 820,
VREvent_BackgroundSettingHasChanged = 850,
VREvent_CameraSettingsHaveChanged = 851,
@@ -3994,6 +4053,7 @@ public enum EVREventType
VREvent_DashboardSectionSettingChanged = 864,
VREvent_WebInterfaceSectionSettingChanged = 865,
VREvent_TrackersSectionSettingChanged = 866,
+ VREvent_LastKnownSectionSettingChanged = 867,
VREvent_StatusUpdate = 900,
VREvent_WebInterface_InstallDriverCompleted = 950,
VREvent_MCImageUpdated = 1000,
@@ -4029,6 +4089,7 @@ public enum EVREventType
VREvent_Input_BindingLoadSuccessful = 1702,
VREvent_Input_ActionManifestReloaded = 1703,
VREvent_Input_ActionManifestLoadFailed = 1704,
+ VREvent_Input_ProgressUpdate = 1705,
VREvent_Input_TrackerActivated = 1706,
VREvent_SpatialAnchors_PoseUpdated = 1800,
VREvent_SpatialAnchors_DescriptorUpdated = 1801,
@@ -4080,6 +4141,12 @@ public enum EDualAnalogWhich
k_EDualAnalog_Left = 0,
k_EDualAnalog_Right = 1,
}
+public enum EShowUIType
+{
+ ShowUI_ControllerBinding = 0,
+ ShowUI_ManageTrackers = 1,
+ ShowUI_QuickStart = 2,
+}
public enum EVRInputError
{
None = 0,
@@ -4099,6 +4166,7 @@ public enum EVRInputError
BufferTooSmall = 14,
MismatchedActionManifest = 15,
MissingSkeletonData = 16,
+ InvalidBoneIndex = 17,
}
public enum EVRSpatialAnchorError
{
@@ -4182,7 +4250,8 @@ public enum EVRApplicationType
VRApplication_VRMonitor = 5,
VRApplication_SteamWatchdog = 6,
VRApplication_Bootstrapper = 7,
- VRApplication_Max = 8,
+ VRApplication_WebHelper = 8,
+ VRApplication_Max = 9,
}
public enum EVRFirmwareError
{
@@ -4342,6 +4411,13 @@ public enum EVRTrackedCameraFrameType
MaximumUndistorted = 2,
MAX_CAMERA_FRAME_TYPES = 3,
}
+public enum EVRDistortionFunctionType
+{
+ None = 0,
+ FTheta = 1,
+ VRDistortionFucntionType_Extended_FTheta = 2,
+ MAX_DISTORTION_FUNCTION_TYPES = 3,
+}
public enum EVSync
{
None = 0,
@@ -4487,6 +4563,7 @@ public enum VROverlayFlags
StereoPanorama = 13,
SortWithNonSceneOverlays = 14,
VisibleInDashboard = 15,
+ MakeOverlaysInteractiveIfVisible = 16,
}
public enum VRMessageOverlayResponse
{
@@ -4582,13 +4659,51 @@ public enum EVRSkeletalTransformSpace
{
Model = 0,
Parent = 1,
- Additive = 2,
+}
+public enum EVRSkeletalReferencePose
+{
+ BindPose = 0,
+ OpenHand = 1,
+ Fist = 2,
+ GripLimit = 3,
+}
+public enum EVRFinger
+{
+ Thumb = 0,
+ Index = 1,
+ Middle = 2,
+ Ring = 3,
+ Pinky = 4,
+ Count = 5,
+}
+public enum EVRFingerSplay
+{
+ Thumb_Index = 0,
+ Index_Middle = 1,
+ Middle_Ring = 2,
+ Ring_Pinky = 3,
+ Count = 4,
+}
+public enum EVRSkeletalTrackingLevel
+{
+ VRSkeletalTracking_Estimated = 0,
+ VRSkeletalTracking_Partial = 1,
+ VRSkeletalTracking_Full = 2,
+ Count = 3,
+ Max = 2,
}
public enum EVRInputFilterCancelType
{
VRInputFilterCancel_Timers = 0,
VRInputFilterCancel_Momentum = 1,
}
+public enum EVRInputStringBits
+{
+ VRInputString_Hand = 1,
+ VRInputString_ControllerType = 2,
+ VRInputString_InputSource = 4,
+ VRInputString_All = -1,
+}
public enum EIOBufferError
{
IOBuffer_Success = 0,
@@ -4633,6 +4748,8 @@ public enum EIOBufferMode
[FieldOffset(0)] public VREvent_InputBindingLoad_t inputBinding;
[FieldOffset(0)] public VREvent_SpatialAnchor_t spatialAnchor;
[FieldOffset(0)] public VREvent_InputActionManifestLoad_t actionManifest;
+ [FieldOffset(0)] public VREvent_ProgressUpdate_t progressUpdate;
+ [FieldOffset(0)] public VREvent_ShowUI_t showUi;
[FieldOffset(0)] public VREvent_Keyboard_t keyboard; // This has to be at the end due to a mono bug
}
@@ -4899,6 +5016,8 @@ public enum EIOBufferMode
public ulong reserved1;
public ulong reserved2;
public ulong reserved3;
+ public ulong reserved4;
+ public ulong reserved5;
}
[StructLayout(LayoutKind.Sequential)] public struct VREvent_PerformanceTest_t
{
@@ -4975,6 +5094,19 @@ public enum EIOBufferMode
{
public uint unHandle;
}
+[StructLayout(LayoutKind.Sequential)] public struct VREvent_ProgressUpdate_t
+{
+ public ulong ulApplicationPropertyContainer;
+ public ulong pathDevice;
+ public ulong pathInputSource;
+ public ulong pathProgressAction;
+ public ulong pathIcon;
+ public float fProgress;
+}
+[StructLayout(LayoutKind.Sequential)] public struct VREvent_ShowUI_t
+{
+ public EShowUIType eType;
+}
[StructLayout(LayoutKind.Sequential)] public struct VREvent_t
{
public uint eventType;
@@ -5314,7 +5446,6 @@ public enum EIOBufferMode
[MarshalAs(UnmanagedType.I1)]
public bool bActive;
public ulong activeOrigin;
- public uint boneCount;
}
[StructLayout(LayoutKind.Sequential)] public struct InputOriginInfo_t
{
@@ -5466,6 +5597,18 @@ public enum EIOBufferMode
public uint unPadding;
public int nPriority;
}
+[StructLayout(LayoutKind.Sequential)] public struct VRSkeletalSummaryData_t
+{
+ public float flFingerCurl0; //float[5]
+ public float flFingerCurl1;
+ public float flFingerCurl2;
+ public float flFingerCurl3;
+ public float flFingerCurl4;
+ public float flFingerSplay0; //float[4]
+ public float flFingerSplay1;
+ public float flFingerSplay2;
+ public float flFingerSplay3;
+}
[StructLayout(LayoutKind.Sequential)] public struct SpatialAnchorPose_t
{
public HmdMatrix34_t mAnchorToAbsoluteTracking;
@@ -5561,6 +5704,8 @@ public class OpenVR
public const uint k_unHmdMatrix44PropertyTag = 21;
public const uint k_unHmdVector3PropertyTag = 22;
public const uint k_unHmdVector4PropertyTag = 23;
+ public const uint k_unHmdVector2PropertyTag = 24;
+ public const uint k_unHmdQuadPropertyTag = 25;
public const uint k_unHiddenAreaPropertyTag = 30;
public const uint k_unPathHandleInfoTag = 31;
public const uint k_unActionPropertyTag = 32;
@@ -5578,22 +5723,23 @@ public class OpenVR
public const ulong k_ulInvalidInputValueHandle = 0;
public const uint k_unControllerStateAxisCount = 5;
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 IVRExtendedDisplay_Version = "IVRExtendedDisplay_001";
- public const string IVRTrackedCamera_Version = "IVRTrackedCamera_004";
+ public const string IVRTrackedCamera_Version = "IVRTrackedCamera_005";
public const uint k_unMaxApplicationKeyLength = 128;
public const string k_pch_MimeType_HomeApp = "vr/home";
public const string k_pch_MimeType_GameTheater = "vr/game_theater";
public const string IVRApplications_Version = "IVRApplications_006";
public const string IVRChaperone_Version = "IVRChaperone_003";
- public const string IVRChaperoneSetup_Version = "IVRChaperoneSetup_005";
+ public const string IVRChaperoneSetup_Version = "IVRChaperoneSetup_006";
public const string IVRCompositor_Version = "IVRCompositor_022";
public const uint k_unVROverlayMaxKeyLength = 128;
public const uint k_unVROverlayMaxNameLength = 128;
public const uint k_unMaxOverlayCount = 64;
public const uint k_unMaxOverlayIntersectionMaskPrimitivesCount = 32;
- public const string IVROverlay_Version = "IVROverlay_018";
+ public const string IVROverlay_Version = "IVROverlay_019";
public const string k_pch_Controller_Component_GDC2015 = "gdc2015";
public const string k_pch_Controller_Component_Base = "base";
public const string k_pch_Controller_Component_Tip = "tip";
@@ -5623,18 +5769,14 @@ public class OpenVR
public const string k_pch_SteamVR_PlayAreaColor_String = "playAreaColor";
public const string k_pch_SteamVR_ShowStage_Bool = "showStage";
public const string k_pch_SteamVR_ActivateMultipleDrivers_Bool = "activateMultipleDrivers";
- public const string k_pch_SteamVR_DirectMode_Bool = "directMode";
- public const string k_pch_SteamVR_DirectModeEdidVid_Int32 = "directModeEdidVid";
- public const string k_pch_SteamVR_DirectModeEdidPid_Int32 = "directModeEdidPid";
public const string k_pch_SteamVR_UsingSpeakers_Bool = "usingSpeakers";
public const string k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float = "speakersForwardYawOffsetDegrees";
public const string k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement";
public const string k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses";
public const string k_pch_SteamVR_SupersampleScale_Float = "supersampleScale";
public const string k_pch_SteamVR_MaxRecommendedResolution_Int32 = "maxRecommendedResolution";
- public const string k_pch_SteamVR_AllowAsyncReprojection_Bool = "allowAsyncReprojection";
- public const string k_pch_SteamVR_AllowReprojection_Bool = "allowInterleavedReprojection";
- public const string k_pch_SteamVR_ForceReprojection_Bool = "forceReprojection";
+ public const string k_pch_SteamVR_MotionSmoothing_Bool = "motionSmoothing";
+ public const string k_pch_SteamVR_MotionSmoothingOverride_Int32 = "motionSmoothingOverride";
public const string k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking";
public const string k_pch_SteamVR_DefaultMirrorView_Int32 = "mirrorView";
public const string k_pch_SteamVR_ShowMirrorView_Bool = "showMirrorView";
@@ -5659,6 +5801,14 @@ public class OpenVR
public const string k_pch_SteamVR_DebugInputBinding = "debugInputBinding";
public const string k_pch_SteamVR_InputBindingUIBlock = "inputBindingUI";
public const string k_pch_SteamVR_RenderCameraMode = "renderCameraMode";
+ public const string k_pch_SteamVR_EnableSharedResourceJournaling = "enableSharedResourceJournaling";
+ public const string k_pch_SteamVR_EnableSafeMode = "enableSafeMode";
+ public const string k_pch_SteamVR_PreferredRefreshRate = "preferredRefreshRate";
+ public const string k_pch_DirectMode_Section = "direct_mode";
+ public const string k_pch_DirectMode_Enable_Bool = "enable";
+ public const string k_pch_DirectMode_Count_Int32 = "count";
+ public const string k_pch_DirectMode_EdidVid_Int32 = "edidVid";
+ public const string k_pch_DirectMode_EdidPid_Int32 = "edidPid";
public const string k_pch_Lighthouse_Section = "driver_lighthouse";
public const string k_pch_Lighthouse_DisableIMU_Bool = "disableimu";
public const string k_pch_Lighthouse_DisableIMUExceptHMD_Bool = "disableimuexcepthmd";
@@ -5668,6 +5818,7 @@ public class OpenVR
public const string k_pch_Lighthouse_DBHistory_Bool = "dbhistory";
public const string k_pch_Lighthouse_EnableBluetooth_Bool = "enableBluetooth";
public const string k_pch_Lighthouse_PowerManagedBaseStations_String = "PowerManagedBaseStations";
+ public const string k_pch_Lighthouse_PowerManagedBaseStations2_String = "PowerManagedBaseStations2";
public const string k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback";
public const string k_pch_Null_Section = "driver_null";
public const string k_pch_Null_SerialNumber_String = "serialNumber";
@@ -5757,13 +5908,18 @@ public class OpenVR
public const string k_pch_App_NeedToUpdateAutosaveSuffix_Bool = "NeedToUpdateAutosave";
public const string k_pch_App_ActionManifestURL_String = "ActionManifestURL";
public const string k_pch_Trackers_Section = "trackers";
+ public const string k_pch_DesktopUI_Section = "DesktopUI";
+ public const string k_pch_LastKnown_Section = "LastKnown";
+ public const string k_pch_LastKnown_HMDManufacturer_String = "HMDManufacturer";
+ public const string k_pch_LastKnown_HMDModel_String = "HMDModel";
public const string IVRScreenshots_Version = "IVRScreenshots_001";
public const string IVRResources_Version = "IVRResources_001";
public const string IVRDriverManager_Version = "IVRDriverManager_001";
public const uint k_unMaxActionNameLength = 64;
public const uint k_unMaxActionSetNameLength = 64;
public const uint k_unMaxActionOriginCount = 16;
- public const string IVRInput_Version = "IVRInput_004";
+ public const uint k_unMaxBoneNameLength = 32;
+ public const string IVRInput_Version = "IVRInput_005";
public const ulong k_ulInvalidIOBufferHandle = 0;
public const string IVRIOBuffer_Version = "IVRIOBuffer_001";
public const uint k_ulInvalidSpatialAnchorHandle = 0;
diff --git a/headers/openvr_api.json b/headers/openvr_api.json
index a6ea7b4..da9ba1e 100644
--- a/headers/openvr_api.json
+++ b/headers/openvr_api.json
@@ -15,6 +15,7 @@
,{"typedef": "vr::VREvent_Data_t","type": "union VREvent_Data_t"}
,{"typedef": "vr::VRControllerState_t","type": "struct vr::VRControllerState001_t"}
,{"typedef": "vr::VROverlayHandle_t","type": "uint64_t"}
+,{"typedef": "vr::BoneIndex_t","type": "int32_t"}
,{"typedef": "vr::TrackedCameraHandle_t","type": "uint64_t"}
,{"typedef": "vr::ScreenshotHandle_t","type": "uint32_t"}
,{"typedef": "vr::VROverlayIntersectionMaskPrimitive_Data_t","type": "union VROverlayIntersectionMaskPrimitive_Data_t"}
@@ -80,6 +81,7 @@
,{"name": "TrackedControllerRole_LeftHand","value": "1"}
,{"name": "TrackedControllerRole_RightHand","value": "2"}
,{"name": "TrackedControllerRole_OptOut","value": "3"}
+ ,{"name": "TrackedControllerRole_Treadmill","value": "4"}
,{"name": "TrackedControllerRole_Max","value": "4"}
]}
, {"enumname": "vr::ETrackingUniverseOrigin","values": [
@@ -131,6 +133,8 @@
,{"name": "Prop_NumCameras_Int32","value": "1039"}
,{"name": "Prop_CameraFrameLayout_Int32","value": "1040"}
,{"name": "Prop_CameraStreamFormat_Int32","value": "1041"}
+ ,{"name": "Prop_AdditionalDeviceSettingsPath_String","value": "1042"}
+ ,{"name": "Prop_Identifiable_Bool","value": "1043"}
,{"name": "Prop_ReportsTimeSinceVSync_Bool","value": "2000"}
,{"name": "Prop_SecondsFromVsyncToPhotons_Float","value": "2001"}
,{"name": "Prop_DisplayFrequency_Float","value": "2002"}
@@ -320,6 +324,7 @@
,{"name": "VREvent_Scroll","value": "305"}
,{"name": "VREvent_TouchPadMove","value": "306"}
,{"name": "VREvent_OverlayFocusChanged","value": "307"}
+ ,{"name": "VREvent_ReloadOverlays","value": "308"}
,{"name": "VREvent_InputFocusCaptured","value": "400"}
,{"name": "VREvent_InputFocusReleased","value": "401"}
,{"name": "VREvent_SceneFocusLost","value": "402"}
@@ -360,6 +365,7 @@
,{"name": "VREvent_PrimaryDashboardDeviceChanged","value": "525"}
,{"name": "VREvent_RoomViewShown","value": "526"}
,{"name": "VREvent_RoomViewHidden","value": "527"}
+ ,{"name": "VREvent_ShowUI","value": "528"}
,{"name": "VREvent_Notification_Shown","value": "600"}
,{"name": "VREvent_Notification_Hidden","value": "601"}
,{"name": "VREvent_Notification_BeginInteraction","value": "602"}
@@ -374,6 +380,7 @@
,{"name": "VREvent_ChaperoneTempDataHasChanged","value": "802"}
,{"name": "VREvent_ChaperoneSettingsHaveChanged","value": "803"}
,{"name": "VREvent_SeatedZeroPoseReset","value": "804"}
+ ,{"name": "VREvent_ChaperoneFlushCache","value": "805"}
,{"name": "VREvent_AudioSettingsHaveChanged","value": "820"}
,{"name": "VREvent_BackgroundSettingHasChanged","value": "850"}
,{"name": "VREvent_CameraSettingsHaveChanged","value": "851"}
@@ -392,6 +399,7 @@
,{"name": "VREvent_DashboardSectionSettingChanged","value": "864"}
,{"name": "VREvent_WebInterfaceSectionSettingChanged","value": "865"}
,{"name": "VREvent_TrackersSectionSettingChanged","value": "866"}
+ ,{"name": "VREvent_LastKnownSectionSettingChanged","value": "867"}
,{"name": "VREvent_StatusUpdate","value": "900"}
,{"name": "VREvent_WebInterface_InstallDriverCompleted","value": "950"}
,{"name": "VREvent_MCImageUpdated","value": "1000"}
@@ -427,6 +435,7 @@
,{"name": "VREvent_Input_BindingLoadSuccessful","value": "1702"}
,{"name": "VREvent_Input_ActionManifestReloaded","value": "1703"}
,{"name": "VREvent_Input_ActionManifestLoadFailed","value": "1704"}
+ ,{"name": "VREvent_Input_ProgressUpdate","value": "1705"}
,{"name": "VREvent_Input_TrackerActivated","value": "1706"}
,{"name": "VREvent_SpatialAnchors_PoseUpdated","value": "1800"}
,{"name": "VREvent_SpatialAnchors_DescriptorUpdated","value": "1801"}
@@ -474,6 +483,11 @@
{"name": "k_EDualAnalog_Left","value": "0"}
,{"name": "k_EDualAnalog_Right","value": "1"}
]}
+, {"enumname": "vr::EShowUIType","values": [
+ {"name": "ShowUI_ControllerBinding","value": "0"}
+ ,{"name": "ShowUI_ManageTrackers","value": "1"}
+ ,{"name": "ShowUI_QuickStart","value": "2"}
+]}
, {"enumname": "vr::EVRInputError","values": [
{"name": "VRInputError_None","value": "0"}
,{"name": "VRInputError_NameNotFound","value": "1"}
@@ -492,6 +506,7 @@
,{"name": "VRInputError_BufferTooSmall","value": "14"}
,{"name": "VRInputError_MismatchedActionManifest","value": "15"}
,{"name": "VRInputError_MissingSkeletonData","value": "16"}
+ ,{"name": "VRInputError_InvalidBoneIndex","value": "17"}
]}
, {"enumname": "vr::EVRSpatialAnchorError","values": [
{"name": "VRSpatialAnchorError_Success","value": "0"}
@@ -568,7 +583,8 @@
,{"name": "VRApplication_VRMonitor","value": "5"}
,{"name": "VRApplication_SteamWatchdog","value": "6"}
,{"name": "VRApplication_Bootstrapper","value": "7"}
- ,{"name": "VRApplication_Max","value": "8"}
+ ,{"name": "VRApplication_WebHelper","value": "8"}
+ ,{"name": "VRApplication_Max","value": "9"}
]}
, {"enumname": "vr::EVRFirmwareError","values": [
{"name": "VRFirmwareError_None","value": "0"}
@@ -719,6 +735,12 @@
,{"name": "VRTrackedCameraFrameType_MaximumUndistorted","value": "2"}
,{"name": "MAX_CAMERA_FRAME_TYPES","value": "3"}
]}
+, {"enumname": "vr::EVRDistortionFunctionType","values": [
+ {"name": "VRDistortionFunctionType_None","value": "0"}
+ ,{"name": "VRDistortionFunctionType_FTheta","value": "1"}
+ ,{"name": "VRDistortionFucntionType_Extended_FTheta","value": "2"}
+ ,{"name": "MAX_DISTORTION_FUNCTION_TYPES","value": "3"}
+]}
, {"enumname": "vr::EVSync","values": [
{"name": "VSync_None","value": "0"}
,{"name": "VSync_WaitRender","value": "1"}
@@ -850,6 +872,7 @@
,{"name": "VROverlayFlags_StereoPanorama","value": "13"}
,{"name": "VROverlayFlags_SortWithNonSceneOverlays","value": "14"}
,{"name": "VROverlayFlags_VisibleInDashboard","value": "15"}
+ ,{"name": "VROverlayFlags_MakeOverlaysInteractiveIfVisible","value": "16"}
]}
, {"enumname": "vr::VRMessageOverlayResponse","values": [
{"name": "VRMessageOverlayResponse_ButtonPress_0","value": "0"}
@@ -933,12 +956,45 @@
, {"enumname": "vr::EVRSkeletalTransformSpace","values": [
{"name": "VRSkeletalTransformSpace_Model","value": "0"}
,{"name": "VRSkeletalTransformSpace_Parent","value": "1"}
- ,{"name": "VRSkeletalTransformSpace_Additive","value": "2"}
+]}
+, {"enumname": "vr::EVRSkeletalReferencePose","values": [
+ {"name": "VRSkeletalReferencePose_BindPose","value": "0"}
+ ,{"name": "VRSkeletalReferencePose_OpenHand","value": "1"}
+ ,{"name": "VRSkeletalReferencePose_Fist","value": "2"}
+ ,{"name": "VRSkeletalReferencePose_GripLimit","value": "3"}
+]}
+, {"enumname": "vr::EVRFinger","values": [
+ {"name": "VRFinger_Thumb","value": "0"}
+ ,{"name": "VRFinger_Index","value": "1"}
+ ,{"name": "VRFinger_Middle","value": "2"}
+ ,{"name": "VRFinger_Ring","value": "3"}
+ ,{"name": "VRFinger_Pinky","value": "4"}
+ ,{"name": "VRFinger_Count","value": "5"}
+]}
+, {"enumname": "vr::EVRFingerSplay","values": [
+ {"name": "VRFingerSplay_Thumb_Index","value": "0"}
+ ,{"name": "VRFingerSplay_Index_Middle","value": "1"}
+ ,{"name": "VRFingerSplay_Middle_Ring","value": "2"}
+ ,{"name": "VRFingerSplay_Ring_Pinky","value": "3"}
+ ,{"name": "VRFingerSplay_Count","value": "4"}
+]}
+, {"enumname": "vr::EVRSkeletalTrackingLevel","values": [
+ {"name": "VRSkeletalTracking_Estimated","value": "0"}
+ ,{"name": "VRSkeletalTracking_Partial","value": "1"}
+ ,{"name": "VRSkeletalTracking_Full","value": "2"}
+ ,{"name": "VRSkeletalTrackingLevel_Count","value": "3"}
+ ,{"name": "VRSkeletalTrackingLevel_Max","value": "2"}
]}
, {"enumname": "vr::EVRInputFilterCancelType","values": [
{"name": "VRInputFilterCancel_Timers","value": "0"}
,{"name": "VRInputFilterCancel_Momentum","value": "1"}
]}
+, {"enumname": "vr::EVRInputStringBits","values": [
+ {"name": "VRInputString_Hand","value": "1"}
+ ,{"name": "VRInputString_ControllerType","value": "2"}
+ ,{"name": "VRInputString_InputSource","value": "4"}
+ ,{"name": "VRInputString_All","value": "-1"}
+]}
, {"enumname": "vr::EIOBufferError","values": [
{"name": "IOBuffer_Success","value": "0"}
,{"name": "IOBuffer_OperationFailed","value": "100"}
@@ -991,6 +1047,10 @@
,{
"constname": "k_unHmdVector4PropertyTag","consttype": "const PropertyTypeTag_t", "constval": "23"}
,{
+ "constname": "k_unHmdVector2PropertyTag","consttype": "const PropertyTypeTag_t", "constval": "24"}
+,{
+ "constname": "k_unHmdQuadPropertyTag","consttype": "const PropertyTypeTag_t", "constval": "25"}
+,{
"constname": "k_unHiddenAreaPropertyTag","consttype": "const PropertyTypeTag_t", "constval": "30"}
,{
"constname": "k_unPathHandleInfoTag","consttype": "const PropertyTypeTag_t", "constval": "31"}
@@ -1025,13 +1085,15 @@
,{
"constname": "k_ulOverlayHandleInvalid","consttype": "const VROverlayHandle_t", "constval": "0"}
,{
+ "constname": "k_unMaxDistortionFunctionParameters","consttype": "const uint32_t", "constval": "8"}
+,{
"constname": "k_unScreenshotHandleInvalid","consttype": "const uint32_t", "constval": "0"}
,{
"constname": "IVRSystem_Version","consttype": "const char *const", "constval": "IVRSystem_019"}
,{
"constname": "IVRExtendedDisplay_Version","consttype": "const char *const", "constval": "IVRExtendedDisplay_001"}
,{
- "constname": "IVRTrackedCamera_Version","consttype": "const char *const", "constval": "IVRTrackedCamera_004"}
+ "constname": "IVRTrackedCamera_Version","consttype": "const char *const", "constval": "IVRTrackedCamera_005"}
,{
"constname": "k_unMaxApplicationKeyLength","consttype": "const uint32_t", "constval": "128"}
,{
@@ -1043,7 +1105,7 @@
,{
"constname": "IVRChaperone_Version","consttype": "const char *const", "constval": "IVRChaperone_003"}
,{
- "constname": "IVRChaperoneSetup_Version","consttype": "const char *const", "constval": "IVRChaperoneSetup_005"}
+ "constname": "IVRChaperoneSetup_Version","consttype": "const char *const", "constval": "IVRChaperoneSetup_006"}
,{
"constname": "IVRCompositor_Version","consttype": "const char *const", "constval": "IVRCompositor_022"}
,{
@@ -1055,7 +1117,7 @@
,{
"constname": "k_unMaxOverlayIntersectionMaskPrimitivesCount","consttype": "const uint32_t", "constval": "32"}
,{
- "constname": "IVROverlay_Version","consttype": "const char *const", "constval": "IVROverlay_018"}
+ "constname": "IVROverlay_Version","consttype": "const char *const", "constval": "IVROverlay_019"}
,{
"constname": "k_pch_Controller_Component_GDC2015","consttype": "const char *const", "constval": "gdc2015"}
,{
@@ -1115,12 +1177,6 @@
,{
"constname": "k_pch_SteamVR_ActivateMultipleDrivers_Bool","consttype": "const char *const", "constval": "activateMultipleDrivers"}
,{
- "constname": "k_pch_SteamVR_DirectMode_Bool","consttype": "const char *const", "constval": "directMode"}
-,{
- "constname": "k_pch_SteamVR_DirectModeEdidVid_Int32","consttype": "const char *const", "constval": "directModeEdidVid"}
-,{
- "constname": "k_pch_SteamVR_DirectModeEdidPid_Int32","consttype": "const char *const", "constval": "directModeEdidPid"}
-,{
"constname": "k_pch_SteamVR_UsingSpeakers_Bool","consttype": "const char *const", "constval": "usingSpeakers"}
,{
"constname": "k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float","consttype": "const char *const", "constval": "speakersForwardYawOffsetDegrees"}
@@ -1133,11 +1189,9 @@
,{
"constname": "k_pch_SteamVR_MaxRecommendedResolution_Int32","consttype": "const char *const", "constval": "maxRecommendedResolution"}
,{
- "constname": "k_pch_SteamVR_AllowAsyncReprojection_Bool","consttype": "const char *const", "constval": "allowAsyncReprojection"}
-,{
- "constname": "k_pch_SteamVR_AllowReprojection_Bool","consttype": "const char *const", "constval": "allowInterleavedReprojection"}
+ "constname": "k_pch_SteamVR_MotionSmoothing_Bool","consttype": "const char *const", "constval": "motionSmoothing"}
,{
- "constname": "k_pch_SteamVR_ForceReprojection_Bool","consttype": "const char *const", "constval": "forceReprojection"}
+ "constname": "k_pch_SteamVR_MotionSmoothingOverride_Int32","consttype": "const char *const", "constval": "motionSmoothingOverride"}
,{
"constname": "k_pch_SteamVR_ForceFadeOnBadTracking_Bool","consttype": "const char *const", "constval": "forceFadeOnBadTracking"}
,{
@@ -1187,6 +1241,22 @@
,{
"constname": "k_pch_SteamVR_RenderCameraMode","consttype": "const char *const", "constval": "renderCameraMode"}
,{
+ "constname": "k_pch_SteamVR_EnableSharedResourceJournaling","consttype": "const char *const", "constval": "enableSharedResourceJournaling"}
+,{
+ "constname": "k_pch_SteamVR_EnableSafeMode","consttype": "const char *const", "constval": "enableSafeMode"}
+,{
+ "constname": "k_pch_SteamVR_PreferredRefreshRate","consttype": "const char *const", "constval": "preferredRefreshRate"}
+,{
+ "constname": "k_pch_DirectMode_Section","consttype": "const char *const", "constval": "direct_mode"}
+,{
+ "constname": "k_pch_DirectMode_Enable_Bool","consttype": "const char *const", "constval": "enable"}
+,{
+ "constname": "k_pch_DirectMode_Count_Int32","consttype": "const char *const", "constval": "count"}
+,{
+ "constname": "k_pch_DirectMode_EdidVid_Int32","consttype": "const char *const", "constval": "edidVid"}
+,{
+ "constname": "k_pch_DirectMode_EdidPid_Int32","consttype": "const char *const", "constval": "edidPid"}
+,{
"constname": "k_pch_Lighthouse_Section","consttype": "const char *const", "constval": "driver_lighthouse"}
,{
"constname": "k_pch_Lighthouse_DisableIMU_Bool","consttype": "const char *const", "constval": "disableimu"}
@@ -1205,6 +1275,8 @@
,{
"constname": "k_pch_Lighthouse_PowerManagedBaseStations_String","consttype": "const char *const", "constval": "PowerManagedBaseStations"}
,{
+ "constname": "k_pch_Lighthouse_PowerManagedBaseStations2_String","consttype": "const char *const", "constval": "PowerManagedBaseStations2"}
+,{
"constname": "k_pch_Lighthouse_EnableImuFallback_Bool","consttype": "const char *const", "constval": "enableImuFallback"}
,{
"constname": "k_pch_Null_Section","consttype": "const char *const", "constval": "driver_null"}
@@ -1383,6 +1455,14 @@
,{
"constname": "k_pch_Trackers_Section","consttype": "const char *const", "constval": "trackers"}
,{
+ "constname": "k_pch_DesktopUI_Section","consttype": "const char *const", "constval": "DesktopUI"}
+,{
+ "constname": "k_pch_LastKnown_Section","consttype": "const char *const", "constval": "LastKnown"}
+,{
+ "constname": "k_pch_LastKnown_HMDManufacturer_String","consttype": "const char *const", "constval": "HMDManufacturer"}
+,{
+ "constname": "k_pch_LastKnown_HMDModel_String","consttype": "const char *const", "constval": "HMDModel"}
+,{
"constname": "IVRScreenshots_Version","consttype": "const char *const", "constval": "IVRScreenshots_001"}
,{
"constname": "IVRResources_Version","consttype": "const char *const", "constval": "IVRResources_001"}
@@ -1395,7 +1475,9 @@
,{
"constname": "k_unMaxActionOriginCount","consttype": "const uint32_t", "constval": "16"}
,{
- "constname": "IVRInput_Version","consttype": "const char *const", "constval": "IVRInput_004"}
+ "constname": "k_unMaxBoneNameLength","consttype": "const uint32_t", "constval": "32"}
+,{
+ "constname": "IVRInput_Version","consttype": "const char *const", "constval": "IVRInput_005"}
,{
"constname": "k_ulInvalidIOBufferHandle","consttype": "const uint64_t", "constval": "0"}
,{
@@ -1525,7 +1607,9 @@
{ "fieldname": "reserved0", "fieldtype": "uint64_t"},
{ "fieldname": "reserved1", "fieldtype": "uint64_t"},
{ "fieldname": "reserved2", "fieldtype": "uint64_t"},
-{ "fieldname": "reserved3", "fieldtype": "uint64_t"}]}
+{ "fieldname": "reserved3", "fieldtype": "uint64_t"},
+{ "fieldname": "reserved4", "fieldtype": "uint64_t"},
+{ "fieldname": "reserved5", "fieldtype": "uint64_t"}]}
,{"struct": "vr::VREvent_PerformanceTest_t","fields": [
{ "fieldname": "m_nFidelityLevel", "fieldtype": "uint32_t"}]}
,{"struct": "vr::VREvent_SeatedZeroPoseReset_t","fields": [
@@ -1572,6 +1656,15 @@
{ "fieldname": "pathManifestPath", "fieldtype": "uint64_t"}]}
,{"struct": "vr::VREvent_SpatialAnchor_t","fields": [
{ "fieldname": "unHandle", "fieldtype": "SpatialAnchorHandle_t"}]}
+,{"struct": "vr::VREvent_ProgressUpdate_t","fields": [
+{ "fieldname": "ulApplicationPropertyContainer", "fieldtype": "uint64_t"},
+{ "fieldname": "pathDevice", "fieldtype": "uint64_t"},
+{ "fieldname": "pathInputSource", "fieldtype": "uint64_t"},
+{ "fieldname": "pathProgressAction", "fieldtype": "uint64_t"},
+{ "fieldname": "pathIcon", "fieldtype": "uint64_t"},
+{ "fieldname": "fProgress", "fieldtype": "float"}]}
+,{"struct": "vr::VREvent_ShowUI_t","fields": [
+{ "fieldname": "eType", "fieldtype": "enum vr::EShowUIType"}]}
,{"struct": "vr::(anonymous)","fields": [
{ "fieldname": "reserved", "fieldtype": "struct vr::VREvent_Reserved_t"},
{ "fieldname": "controller", "fieldtype": "struct vr::VREvent_Controller_t"},
@@ -1598,7 +1691,9 @@
{ "fieldname": "webConsole", "fieldtype": "struct vr::VREvent_WebConsole_t"},
{ "fieldname": "inputBinding", "fieldtype": "struct vr::VREvent_InputBindingLoad_t"},
{ "fieldname": "actionManifest", "fieldtype": "struct vr::VREvent_InputActionManifestLoad_t"},
-{ "fieldname": "spatialAnchor", "fieldtype": "struct vr::VREvent_SpatialAnchor_t"}]}
+{ "fieldname": "spatialAnchor", "fieldtype": "struct vr::VREvent_SpatialAnchor_t"},
+{ "fieldname": "progressUpdate", "fieldtype": "struct vr::VREvent_ProgressUpdate_t"},
+{ "fieldname": "showUi", "fieldtype": "struct vr::VREvent_ShowUI_t"}]}
,{"struct": "vr::VREvent_t","fields": [
{ "fieldname": "eventType", "fieldtype": "uint32_t"},
{ "fieldname": "trackedDeviceIndex", "fieldtype": "TrackedDeviceIndex_t"},
@@ -1771,8 +1866,7 @@
{ "fieldname": "pose", "fieldtype": "struct vr::TrackedDevicePose_t"}]}
,{"struct": "vr::InputSkeletalActionData_t","fields": [
{ "fieldname": "bActive", "fieldtype": "_Bool"},
-{ "fieldname": "activeOrigin", "fieldtype": "VRInputValueHandle_t"},
-{ "fieldname": "boneCount", "fieldtype": "uint32_t"}]}
+{ "fieldname": "activeOrigin", "fieldtype": "VRInputValueHandle_t"}]}
,{"struct": "vr::InputOriginInfo_t","fields": [
{ "fieldname": "devicePath", "fieldtype": "VRInputValueHandle_t"},
{ "fieldname": "trackedDeviceIndex", "fieldtype": "TrackedDeviceIndex_t"},
@@ -1783,6 +1877,9 @@
{ "fieldname": "ulSecondaryActionSet", "fieldtype": "VRActionSetHandle_t"},
{ "fieldname": "unPadding", "fieldtype": "uint32_t"},
{ "fieldname": "nPriority", "fieldtype": "int32_t"}]}
+,{"struct": "vr::VRSkeletalSummaryData_t","fields": [
+{ "fieldname": "flFingerCurl", "fieldtype": "float [5]"},
+{ "fieldname": "flFingerSplay", "fieldtype": "float [4]"}]}
,{"struct": "vr::SpatialAnchorPose_t","fields": [
{ "fieldname": "mAnchorToAbsoluteTracking", "fieldtype": "struct vr::HmdMatrix34_t"}]}
,{"struct": "vr::COpenVRContext","fields": [
@@ -2269,6 +2366,7 @@
"returntype": "vr::EVRTrackedCameraError",
"params": [
{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
+{ "paramname": "nCameraIndex" ,"paramtype": "uint32_t"},
{ "paramname": "eFrameType" ,"paramtype": "vr::EVRTrackedCameraFrameType"},
{ "paramname": "pFocalLength" ,"paramtype": "vr::HmdVector2_t *"},
{ "paramname": "pCenter" ,"paramtype": "vr::HmdVector2_t *"}
@@ -2280,6 +2378,7 @@
"returntype": "vr::EVRTrackedCameraError",
"params": [
{ "paramname": "nDeviceIndex" ,"paramtype": "vr::TrackedDeviceIndex_t"},
+{ "paramname": "nCameraIndex" ,"paramtype": "uint32_t"},
{ "paramname": "eFrameType" ,"paramtype": "vr::EVRTrackedCameraFrameType"},
{ "paramname": "flZNear" ,"paramtype": "float"},
{ "paramname": "flZFar" ,"paramtype": "float"},
@@ -2772,6 +2871,15 @@
}
,{
"classname": "vr::IVRChaperoneSetup",
+ "methodname": "SetWorkingPerimeter",
+ "returntype": "void",
+ "params": [
+{ "paramname": "pPointBuffer" ,"array_count": "unPointCount" ,"paramtype": "struct vr::HmdVector2_t *"},
+{ "paramname": "unPointCount" ,"paramtype": "uint32_t"}
+ ]
+}
+,{
+ "classname": "vr::IVRChaperoneSetup",
"methodname": "SetWorkingSeatedZeroPoseToRawTrackingPose",
"returntype": "void",
"params": [
@@ -2804,42 +2912,6 @@
}
,{
"classname": "vr::IVRChaperoneSetup",
- "methodname": "SetWorkingCollisionBoundsTagsInfo",
- "returntype": "void",
- "params": [
-{ "paramname": "pTagsBuffer" ,"array_count": "unTagCount" ,"paramtype": "uint8_t *"},
-{ "paramname": "unTagCount" ,"paramtype": "uint32_t"}
- ]
-}
-,{
- "classname": "vr::IVRChaperoneSetup",
- "methodname": "GetLiveCollisionBoundsTagsInfo",
- "returntype": "bool",
- "params": [
-{ "paramname": "pTagsBuffer" ,"out_array_count": "punTagCount" ,"paramtype": "uint8_t *"},
-{ "paramname": "punTagCount" ,"paramtype": "uint32_t *"}
- ]
-}
-,{
- "classname": "vr::IVRChaperoneSetup",
- "methodname": "SetWorkingPhysicalBoundsInfo",
- "returntype": "bool",
- "params": [
-{ "paramname": "pQuadsBuffer" ,"array_count": "unQuadsCount" ,"paramtype": "struct vr::HmdQuad_t *"},
-{ "paramname": "unQuadsCount" ,"paramtype": "uint32_t"}
- ]
-}
-,{
- "classname": "vr::IVRChaperoneSetup",
- "methodname": "GetLivePhysicalBoundsInfo",
- "returntype": "bool",
- "params": [
-{ "paramname": "pQuadsBuffer" ,"out_array_count": "punQuadsCount" ,"paramtype": "struct vr::HmdQuad_t *"},
-{ "paramname": "punQuadsCount" ,"paramtype": "uint32_t *"}
- ]
-}
-,{
- "classname": "vr::IVRChaperoneSetup",
"methodname": "ExportLiveToBuffer",
"returntype": "bool",
"params": [
@@ -2857,6 +2929,16 @@
]
}
,{
+ "classname": "vr::IVRChaperoneSetup",
+ "methodname": "ShowWorkingSetPreview",
+ "returntype": "void"
+}
+,{
+ "classname": "vr::IVRChaperoneSetup",
+ "methodname": "HideWorkingSetPreview",
+ "returntype": "void"
+}
+,{
"classname": "vr::IVRCompositor",
"methodname": "SetTrackingSpace",
"returntype": "void",
@@ -3170,6 +3252,11 @@
"returntype": "vr::EVRCompositorError"
}
,{
+ "classname": "vr::IVRCompositor",
+ "methodname": "IsMotionSmoothingEnabled",
+ "returntype": "bool"
+}
+,{
"classname": "vr::IVROverlay",
"methodname": "FindOverlay",
"returntype": "vr::EVROverlayError",
@@ -3697,7 +3784,7 @@
"params": [
{ "paramname": "ulOverlay" ,"paramtype": "vr::VROverlayHandle_t"},
{ "paramname": "eWhich" ,"paramtype": "vr::EDualAnalogWhich"},
-{ "paramname": "vCenter" ,"paramtype": "const struct vr::HmdVector2_t &"},
+{ "paramname": "pvCenter" ,"paramtype": "const struct vr::HmdVector2_t *"},
{ "paramname": "fRadius" ,"paramtype": "float"}
]
}
@@ -4463,8 +4550,58 @@
"params": [
{ "paramname": "action" ,"paramtype": "vr::VRActionHandle_t"},
{ "paramname": "pActionData" ,"paramtype": "struct vr::InputSkeletalActionData_t *"},
-{ "paramname": "unActionDataSize" ,"paramtype": "uint32_t"},
-{ "paramname": "ulRestrictToDevice" ,"paramtype": "vr::VRInputValueHandle_t"}
+{ "paramname": "unActionDataSize" ,"paramtype": "uint32_t"}
+ ]
+}
+,{
+ "classname": "vr::IVRInput",
+ "methodname": "GetBoneCount",
+ "returntype": "vr::EVRInputError",
+ "params": [
+{ "paramname": "action" ,"paramtype": "vr::VRActionHandle_t"},
+{ "paramname": "pBoneCount" ,"paramtype": "uint32_t *"}
+ ]
+}
+,{
+ "classname": "vr::IVRInput",
+ "methodname": "GetBoneHierarchy",
+ "returntype": "vr::EVRInputError",
+ "params": [
+{ "paramname": "action" ,"paramtype": "vr::VRActionHandle_t"},
+{ "paramname": "pParentIndices" ,"array_count": "unIndexArayCount" ,"paramtype": "vr::BoneIndex_t *"},
+{ "paramname": "unIndexArayCount" ,"paramtype": "uint32_t"}
+ ]
+}
+,{
+ "classname": "vr::IVRInput",
+ "methodname": "GetBoneName",
+ "returntype": "vr::EVRInputError",
+ "params": [
+{ "paramname": "action" ,"paramtype": "vr::VRActionHandle_t"},
+{ "paramname": "nBoneIndex" ,"paramtype": "vr::BoneIndex_t"},
+{ "paramname": "pchBoneName" ,"out_string": " " ,"paramtype": "char *"},
+{ "paramname": "unNameBufferSize" ,"paramtype": "uint32_t"}
+ ]
+}
+,{
+ "classname": "vr::IVRInput",
+ "methodname": "GetSkeletalReferenceTransforms",
+ "returntype": "vr::EVRInputError",
+ "params": [
+{ "paramname": "action" ,"paramtype": "vr::VRActionHandle_t"},
+{ "paramname": "eTransformSpace" ,"paramtype": "vr::EVRSkeletalTransformSpace"},
+{ "paramname": "eReferencePose" ,"paramtype": "vr::EVRSkeletalReferencePose"},
+{ "paramname": "pTransformArray" ,"array_count": "unTransformArrayCount" ,"paramtype": "struct vr::VRBoneTransform_t *"},
+{ "paramname": "unTransformArrayCount" ,"paramtype": "uint32_t"}
+ ]
+}
+,{
+ "classname": "vr::IVRInput",
+ "methodname": "GetSkeletalTrackingLevel",
+ "returntype": "vr::EVRInputError",
+ "params": [
+{ "paramname": "action" ,"paramtype": "vr::VRActionHandle_t"},
+{ "paramname": "pSkeletalTrackingLevel" ,"paramtype": "vr::EVRSkeletalTrackingLevel *"}
]
}
,{
@@ -4476,8 +4613,16 @@
{ "paramname": "eTransformSpace" ,"paramtype": "vr::EVRSkeletalTransformSpace"},
{ "paramname": "eMotionRange" ,"paramtype": "vr::EVRSkeletalMotionRange"},
{ "paramname": "pTransformArray" ,"array_count": "unTransformArrayCount" ,"paramtype": "struct vr::VRBoneTransform_t *"},
-{ "paramname": "unTransformArrayCount" ,"paramtype": "uint32_t"},
-{ "paramname": "ulRestrictToDevice" ,"paramtype": "vr::VRInputValueHandle_t"}
+{ "paramname": "unTransformArrayCount" ,"paramtype": "uint32_t"}
+ ]
+}
+,{
+ "classname": "vr::IVRInput",
+ "methodname": "GetSkeletalSummaryData",
+ "returntype": "vr::EVRInputError",
+ "params": [
+{ "paramname": "action" ,"paramtype": "vr::VRActionHandle_t"},
+{ "paramname": "pSkeletalSummaryData" ,"paramtype": "struct vr::VRSkeletalSummaryData_t *"}
]
}
,{
@@ -4486,12 +4631,10 @@
"returntype": "vr::EVRInputError",
"params": [
{ "paramname": "action" ,"paramtype": "vr::VRActionHandle_t"},
-{ "paramname": "eTransformSpace" ,"paramtype": "vr::EVRSkeletalTransformSpace"},
{ "paramname": "eMotionRange" ,"paramtype": "vr::EVRSkeletalMotionRange"},
{ "paramname": "pvCompressedData" ,"out_buffer_count": "unCompressedSize" ,"paramtype": "void *"},
{ "paramname": "unCompressedSize" ,"paramtype": "uint32_t"},
-{ "paramname": "punRequiredCompressedSize" ,"paramtype": "uint32_t *"},
-{ "paramname": "ulRestrictToDevice" ,"paramtype": "vr::VRInputValueHandle_t"}
+{ "paramname": "punRequiredCompressedSize" ,"paramtype": "uint32_t *"}
]
}
,{
@@ -4499,9 +4642,9 @@
"methodname": "DecompressSkeletalBoneData",
"returntype": "vr::EVRInputError",
"params": [
-{ "paramname": "pvCompressedBuffer" ,"paramtype": "void *"},
+{ "paramname": "pvCompressedBuffer" ,"paramtype": "const void *"},
{ "paramname": "unCompressedBufferSize" ,"paramtype": "uint32_t"},
-{ "paramname": "peTransformSpace" ,"paramtype": "vr::EVRSkeletalTransformSpace *"},
+{ "paramname": "eTransformSpace" ,"paramtype": "vr::EVRSkeletalTransformSpace"},
{ "paramname": "pTransformArray" ,"array_count": "unTransformArrayCount" ,"paramtype": "struct vr::VRBoneTransform_t *"},
{ "paramname": "unTransformArrayCount" ,"paramtype": "uint32_t"}
]
@@ -4537,7 +4680,8 @@
"params": [
{ "paramname": "origin" ,"paramtype": "vr::VRInputValueHandle_t"},
{ "paramname": "pchNameArray" ,"out_string": " " ,"paramtype": "char *"},
-{ "paramname": "unNameArraySize" ,"paramtype": "uint32_t"}
+{ "paramname": "unNameArraySize" ,"paramtype": "uint32_t"},
+{ "paramname": "unStringSectionsToInclude" ,"paramtype": "int32_t"}
]
}
,{
diff --git a/headers/openvr_capi.h b/headers/openvr_capi.h
index a0dda82..9a2ad5c 100644
--- a/headers/openvr_capi.h
+++ b/headers/openvr_capi.h
@@ -81,6 +81,8 @@ static const unsigned int k_unHmdMatrix34PropertyTag = 20;
static const unsigned int k_unHmdMatrix44PropertyTag = 21;
static const unsigned int k_unHmdVector3PropertyTag = 22;
static const unsigned int k_unHmdVector4PropertyTag = 23;
+static const unsigned int k_unHmdVector2PropertyTag = 24;
+static const unsigned int k_unHmdQuadPropertyTag = 25;
static const unsigned int k_unHiddenAreaPropertyTag = 30;
static const unsigned int k_unPathHandleInfoTag = 31;
static const unsigned int k_unActionPropertyTag = 32;
@@ -98,22 +100,23 @@ static const unsigned long k_ulInvalidActionSetHandle = 0;
static const unsigned long k_ulInvalidInputValueHandle = 0;
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 * IVRExtendedDisplay_Version = "IVRExtendedDisplay_001";
-static const char * IVRTrackedCamera_Version = "IVRTrackedCamera_004";
+static const char * IVRTrackedCamera_Version = "IVRTrackedCamera_005";
static const unsigned int k_unMaxApplicationKeyLength = 128;
static const char * k_pch_MimeType_HomeApp = "vr/home";
static const char * k_pch_MimeType_GameTheater = "vr/game_theater";
static const char * IVRApplications_Version = "IVRApplications_006";
static const char * IVRChaperone_Version = "IVRChaperone_003";
-static const char * IVRChaperoneSetup_Version = "IVRChaperoneSetup_005";
+static const char * IVRChaperoneSetup_Version = "IVRChaperoneSetup_006";
static const char * IVRCompositor_Version = "IVRCompositor_022";
static const unsigned int k_unVROverlayMaxKeyLength = 128;
static const unsigned int k_unVROverlayMaxNameLength = 128;
static const unsigned int k_unMaxOverlayCount = 64;
static const unsigned int k_unMaxOverlayIntersectionMaskPrimitivesCount = 32;
-static const char * IVROverlay_Version = "IVROverlay_018";
+static const char * IVROverlay_Version = "IVROverlay_019";
static const char * k_pch_Controller_Component_GDC2015 = "gdc2015";
static const char * k_pch_Controller_Component_Base = "base";
static const char * k_pch_Controller_Component_Tip = "tip";
@@ -143,18 +146,14 @@ static const char * k_pch_SteamVR_GridColor_String = "gridColor";
static const char * k_pch_SteamVR_PlayAreaColor_String = "playAreaColor";
static const char * k_pch_SteamVR_ShowStage_Bool = "showStage";
static const char * k_pch_SteamVR_ActivateMultipleDrivers_Bool = "activateMultipleDrivers";
-static const char * k_pch_SteamVR_DirectMode_Bool = "directMode";
-static const char * k_pch_SteamVR_DirectModeEdidVid_Int32 = "directModeEdidVid";
-static const char * k_pch_SteamVR_DirectModeEdidPid_Int32 = "directModeEdidPid";
static const char * k_pch_SteamVR_UsingSpeakers_Bool = "usingSpeakers";
static const char * k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float = "speakersForwardYawOffsetDegrees";
static const char * k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement";
static const char * k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses";
static const char * k_pch_SteamVR_SupersampleScale_Float = "supersampleScale";
static const char * k_pch_SteamVR_MaxRecommendedResolution_Int32 = "maxRecommendedResolution";
-static const char * k_pch_SteamVR_AllowAsyncReprojection_Bool = "allowAsyncReprojection";
-static const char * k_pch_SteamVR_AllowReprojection_Bool = "allowInterleavedReprojection";
-static const char * k_pch_SteamVR_ForceReprojection_Bool = "forceReprojection";
+static const char * k_pch_SteamVR_MotionSmoothing_Bool = "motionSmoothing";
+static const char * k_pch_SteamVR_MotionSmoothingOverride_Int32 = "motionSmoothingOverride";
static const char * k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking";
static const char * k_pch_SteamVR_DefaultMirrorView_Int32 = "mirrorView";
static const char * k_pch_SteamVR_ShowMirrorView_Bool = "showMirrorView";
@@ -179,6 +178,14 @@ static const char * k_pch_SteamVR_LegacyInputRebinding = "legacyInputRebinding";
static const char * k_pch_SteamVR_DebugInputBinding = "debugInputBinding";
static const char * k_pch_SteamVR_InputBindingUIBlock = "inputBindingUI";
static const char * k_pch_SteamVR_RenderCameraMode = "renderCameraMode";
+static const char * k_pch_SteamVR_EnableSharedResourceJournaling = "enableSharedResourceJournaling";
+static const char * k_pch_SteamVR_EnableSafeMode = "enableSafeMode";
+static const char * k_pch_SteamVR_PreferredRefreshRate = "preferredRefreshRate";
+static const char * k_pch_DirectMode_Section = "direct_mode";
+static const char * k_pch_DirectMode_Enable_Bool = "enable";
+static const char * k_pch_DirectMode_Count_Int32 = "count";
+static const char * k_pch_DirectMode_EdidVid_Int32 = "edidVid";
+static const char * k_pch_DirectMode_EdidPid_Int32 = "edidPid";
static const char * k_pch_Lighthouse_Section = "driver_lighthouse";
static const char * k_pch_Lighthouse_DisableIMU_Bool = "disableimu";
static const char * k_pch_Lighthouse_DisableIMUExceptHMD_Bool = "disableimuexcepthmd";
@@ -188,6 +195,7 @@ static const char * k_pch_Lighthouse_PrimaryBasestation_Int32 = "primarybasestat
static const char * k_pch_Lighthouse_DBHistory_Bool = "dbhistory";
static const char * k_pch_Lighthouse_EnableBluetooth_Bool = "enableBluetooth";
static const char * k_pch_Lighthouse_PowerManagedBaseStations_String = "PowerManagedBaseStations";
+static const char * k_pch_Lighthouse_PowerManagedBaseStations2_String = "PowerManagedBaseStations2";
static const char * k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback";
static const char * k_pch_Null_Section = "driver_null";
static const char * k_pch_Null_SerialNumber_String = "serialNumber";
@@ -277,13 +285,18 @@ static const char * k_pch_App_BindingCurrentURLSuffix_String = "CurrentURL";
static const char * k_pch_App_NeedToUpdateAutosaveSuffix_Bool = "NeedToUpdateAutosave";
static const char * k_pch_App_ActionManifestURL_String = "ActionManifestURL";
static const char * k_pch_Trackers_Section = "trackers";
+static const char * k_pch_DesktopUI_Section = "DesktopUI";
+static const char * k_pch_LastKnown_Section = "LastKnown";
+static const char * k_pch_LastKnown_HMDManufacturer_String = "HMDManufacturer";
+static const char * k_pch_LastKnown_HMDModel_String = "HMDModel";
static const char * IVRScreenshots_Version = "IVRScreenshots_001";
static const char * IVRResources_Version = "IVRResources_001";
static const char * IVRDriverManager_Version = "IVRDriverManager_001";
static const unsigned int k_unMaxActionNameLength = 64;
static const unsigned int k_unMaxActionSetNameLength = 64;
static const unsigned int k_unMaxActionOriginCount = 16;
-static const char * IVRInput_Version = "IVRInput_004";
+static const unsigned int k_unMaxBoneNameLength = 32;
+static const char * IVRInput_Version = "IVRInput_005";
static const unsigned long k_ulInvalidIOBufferHandle = 0;
static const char * IVRIOBuffer_Version = "IVRIOBuffer_001";
static const unsigned int k_ulInvalidSpatialAnchorHandle = 0;
@@ -343,6 +356,7 @@ typedef enum ETrackedControllerRole
ETrackedControllerRole_TrackedControllerRole_LeftHand = 1,
ETrackedControllerRole_TrackedControllerRole_RightHand = 2,
ETrackedControllerRole_TrackedControllerRole_OptOut = 3,
+ ETrackedControllerRole_TrackedControllerRole_Treadmill = 4,
ETrackedControllerRole_TrackedControllerRole_Max = 4,
} ETrackedControllerRole;
@@ -398,6 +412,8 @@ typedef enum ETrackedDeviceProperty
ETrackedDeviceProperty_Prop_NumCameras_Int32 = 1039,
ETrackedDeviceProperty_Prop_CameraFrameLayout_Int32 = 1040,
ETrackedDeviceProperty_Prop_CameraStreamFormat_Int32 = 1041,
+ ETrackedDeviceProperty_Prop_AdditionalDeviceSettingsPath_String = 1042,
+ ETrackedDeviceProperty_Prop_Identifiable_Bool = 1043,
ETrackedDeviceProperty_Prop_ReportsTimeSinceVSync_Bool = 2000,
ETrackedDeviceProperty_Prop_SecondsFromVsyncToPhotons_Float = 2001,
ETrackedDeviceProperty_Prop_DisplayFrequency_Float = 2002,
@@ -595,6 +611,7 @@ typedef enum EVREventType
EVREventType_VREvent_Scroll = 305,
EVREventType_VREvent_TouchPadMove = 306,
EVREventType_VREvent_OverlayFocusChanged = 307,
+ EVREventType_VREvent_ReloadOverlays = 308,
EVREventType_VREvent_InputFocusCaptured = 400,
EVREventType_VREvent_InputFocusReleased = 401,
EVREventType_VREvent_SceneFocusLost = 402,
@@ -635,6 +652,7 @@ typedef enum EVREventType
EVREventType_VREvent_PrimaryDashboardDeviceChanged = 525,
EVREventType_VREvent_RoomViewShown = 526,
EVREventType_VREvent_RoomViewHidden = 527,
+ EVREventType_VREvent_ShowUI = 528,
EVREventType_VREvent_Notification_Shown = 600,
EVREventType_VREvent_Notification_Hidden = 601,
EVREventType_VREvent_Notification_BeginInteraction = 602,
@@ -649,6 +667,7 @@ typedef enum EVREventType
EVREventType_VREvent_ChaperoneTempDataHasChanged = 802,
EVREventType_VREvent_ChaperoneSettingsHaveChanged = 803,
EVREventType_VREvent_SeatedZeroPoseReset = 804,
+ EVREventType_VREvent_ChaperoneFlushCache = 805,
EVREventType_VREvent_AudioSettingsHaveChanged = 820,
EVREventType_VREvent_BackgroundSettingHasChanged = 850,
EVREventType_VREvent_CameraSettingsHaveChanged = 851,
@@ -667,6 +686,7 @@ typedef enum EVREventType
EVREventType_VREvent_DashboardSectionSettingChanged = 864,
EVREventType_VREvent_WebInterfaceSectionSettingChanged = 865,
EVREventType_VREvent_TrackersSectionSettingChanged = 866,
+ EVREventType_VREvent_LastKnownSectionSettingChanged = 867,
EVREventType_VREvent_StatusUpdate = 900,
EVREventType_VREvent_WebInterface_InstallDriverCompleted = 950,
EVREventType_VREvent_MCImageUpdated = 1000,
@@ -702,6 +722,7 @@ typedef enum EVREventType
EVREventType_VREvent_Input_BindingLoadSuccessful = 1702,
EVREventType_VREvent_Input_ActionManifestReloaded = 1703,
EVREventType_VREvent_Input_ActionManifestLoadFailed = 1704,
+ EVREventType_VREvent_Input_ProgressUpdate = 1705,
EVREventType_VREvent_Input_TrackerActivated = 1706,
EVREventType_VREvent_SpatialAnchors_PoseUpdated = 1800,
EVREventType_VREvent_SpatialAnchors_DescriptorUpdated = 1801,
@@ -758,6 +779,13 @@ typedef enum EDualAnalogWhich
EDualAnalogWhich_k_EDualAnalog_Right = 1,
} EDualAnalogWhich;
+typedef enum EShowUIType
+{
+ EShowUIType_ShowUI_ControllerBinding = 0,
+ EShowUIType_ShowUI_ManageTrackers = 1,
+ EShowUIType_ShowUI_QuickStart = 2,
+} EShowUIType;
+
typedef enum EVRInputError
{
EVRInputError_VRInputError_None = 0,
@@ -777,6 +805,7 @@ typedef enum EVRInputError
EVRInputError_VRInputError_BufferTooSmall = 14,
EVRInputError_VRInputError_MismatchedActionManifest = 15,
EVRInputError_VRInputError_MissingSkeletonData = 16,
+ EVRInputError_VRInputError_InvalidBoneIndex = 17,
} EVRInputError;
typedef enum EVRSpatialAnchorError
@@ -867,7 +896,8 @@ typedef enum EVRApplicationType
EVRApplicationType_VRApplication_VRMonitor = 5,
EVRApplicationType_VRApplication_SteamWatchdog = 6,
EVRApplicationType_VRApplication_Bootstrapper = 7,
- EVRApplicationType_VRApplication_Max = 8,
+ EVRApplicationType_VRApplication_WebHelper = 8,
+ EVRApplicationType_VRApplication_Max = 9,
} EVRApplicationType;
typedef enum EVRFirmwareError
@@ -1037,6 +1067,14 @@ typedef enum EVRTrackedCameraFrameType
EVRTrackedCameraFrameType_MAX_CAMERA_FRAME_TYPES = 3,
} EVRTrackedCameraFrameType;
+typedef enum EVRDistortionFunctionType
+{
+ EVRDistortionFunctionType_VRDistortionFunctionType_None = 0,
+ EVRDistortionFunctionType_VRDistortionFunctionType_FTheta = 1,
+ EVRDistortionFunctionType_VRDistortionFucntionType_Extended_FTheta = 2,
+ EVRDistortionFunctionType_MAX_DISTORTION_FUNCTION_TYPES = 3,
+} EVRDistortionFunctionType;
+
typedef enum EVSync
{
EVSync_VSync_None = 0,
@@ -1195,6 +1233,7 @@ typedef enum VROverlayFlags
VROverlayFlags_StereoPanorama = 13,
VROverlayFlags_SortWithNonSceneOverlays = 14,
VROverlayFlags_VisibleInDashboard = 15,
+ VROverlayFlags_MakeOverlaysInteractiveIfVisible = 16,
} VROverlayFlags;
typedef enum VRMessageOverlayResponse
@@ -1302,15 +1341,58 @@ typedef enum EVRSkeletalTransformSpace
{
EVRSkeletalTransformSpace_VRSkeletalTransformSpace_Model = 0,
EVRSkeletalTransformSpace_VRSkeletalTransformSpace_Parent = 1,
- EVRSkeletalTransformSpace_VRSkeletalTransformSpace_Additive = 2,
} EVRSkeletalTransformSpace;
+typedef enum EVRSkeletalReferencePose
+{
+ EVRSkeletalReferencePose_VRSkeletalReferencePose_BindPose = 0,
+ EVRSkeletalReferencePose_VRSkeletalReferencePose_OpenHand = 1,
+ EVRSkeletalReferencePose_VRSkeletalReferencePose_Fist = 2,
+ EVRSkeletalReferencePose_VRSkeletalReferencePose_GripLimit = 3,
+} EVRSkeletalReferencePose;
+
+typedef enum EVRFinger
+{
+ EVRFinger_VRFinger_Thumb = 0,
+ EVRFinger_VRFinger_Index = 1,
+ EVRFinger_VRFinger_Middle = 2,
+ EVRFinger_VRFinger_Ring = 3,
+ EVRFinger_VRFinger_Pinky = 4,
+ EVRFinger_VRFinger_Count = 5,
+} EVRFinger;
+
+typedef enum EVRFingerSplay
+{
+ EVRFingerSplay_VRFingerSplay_Thumb_Index = 0,
+ EVRFingerSplay_VRFingerSplay_Index_Middle = 1,
+ EVRFingerSplay_VRFingerSplay_Middle_Ring = 2,
+ EVRFingerSplay_VRFingerSplay_Ring_Pinky = 3,
+ EVRFingerSplay_VRFingerSplay_Count = 4,
+} EVRFingerSplay;
+
+typedef enum EVRSkeletalTrackingLevel
+{
+ EVRSkeletalTrackingLevel_VRSkeletalTracking_Estimated = 0,
+ EVRSkeletalTrackingLevel_VRSkeletalTracking_Partial = 1,
+ EVRSkeletalTrackingLevel_VRSkeletalTracking_Full = 2,
+ EVRSkeletalTrackingLevel_VRSkeletalTrackingLevel_Count = 3,
+ EVRSkeletalTrackingLevel_VRSkeletalTrackingLevel_Max = 2,
+} EVRSkeletalTrackingLevel;
+
typedef enum EVRInputFilterCancelType
{
EVRInputFilterCancelType_VRInputFilterCancel_Timers = 0,
EVRInputFilterCancelType_VRInputFilterCancel_Momentum = 1,
} EVRInputFilterCancelType;
+typedef enum EVRInputStringBits
+{
+ EVRInputStringBits_VRInputString_Hand = 1,
+ EVRInputStringBits_VRInputString_ControllerType = 2,
+ EVRInputStringBits_VRInputString_InputSource = 4,
+ EVRInputStringBits_VRInputString_All = -1,
+} EVRInputStringBits;
+
typedef enum EIOBufferError
{
EIOBufferError_IOBuffer_Success = 0,
@@ -1351,6 +1433,7 @@ typedef uint64_t VRActionHandle_t;
typedef uint64_t VRActionSetHandle_t;
typedef uint64_t VRInputValueHandle_t;
typedef uint64_t VROverlayHandle_t;
+typedef int32_t BoneIndex_t;
typedef uint64_t TrackedCameraHandle_t;
typedef uint32_t ScreenshotHandle_t;
typedef uint32_t VRComponentProperties;
@@ -1596,6 +1679,8 @@ typedef struct VREvent_Reserved_t
uint64_t reserved1;
uint64_t reserved2;
uint64_t reserved3;
+ uint64_t reserved4;
+ uint64_t reserved5;
} VREvent_Reserved_t;
typedef struct VREvent_PerformanceTest_t
@@ -1686,6 +1771,21 @@ typedef struct VREvent_SpatialAnchor_t
SpatialAnchorHandle_t unHandle;
} VREvent_SpatialAnchor_t;
+typedef struct VREvent_ProgressUpdate_t
+{
+ uint64_t ulApplicationPropertyContainer;
+ uint64_t pathDevice;
+ uint64_t pathInputSource;
+ uint64_t pathProgressAction;
+ uint64_t pathIcon;
+ float fProgress;
+} VREvent_ProgressUpdate_t;
+
+typedef struct VREvent_ShowUI_t
+{
+ enum EShowUIType eType;
+} VREvent_ShowUI_t;
+
typedef struct HiddenAreaMesh_t
{
struct HmdVector2_t * pVertexData; // const struct vr::HmdVector2_t *
@@ -1936,7 +2036,6 @@ typedef struct InputSkeletalActionData_t
{
bool bActive;
VRInputValueHandle_t activeOrigin;
- uint32_t boneCount;
} InputSkeletalActionData_t;
typedef struct InputOriginInfo_t
@@ -1955,6 +2054,12 @@ typedef struct VRActiveActionSet_t
int32_t nPriority;
} VRActiveActionSet_t;
+typedef struct VRSkeletalSummaryData_t
+{
+ float flFingerCurl[5]; //float[5]
+ float flFingerSplay[4]; //float[4]
+} VRSkeletalSummaryData_t;
+
typedef struct SpatialAnchorPose_t
{
struct HmdMatrix34_t mAnchorToAbsoluteTracking;
@@ -2110,8 +2215,8 @@ struct VR_IVRTrackedCamera_FnTable
char * (OPENVR_FNTABLE_CALLTYPE *GetCameraErrorNameFromEnum)(EVRTrackedCameraError eCameraError);
EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *HasCamera)(TrackedDeviceIndex_t nDeviceIndex, bool * pHasCamera);
EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetCameraFrameSize)(TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, uint32_t * pnWidth, uint32_t * pnHeight, uint32_t * pnFrameBufferSize);
- EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetCameraIntrinsics)(TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, HmdVector2_t * pFocalLength, HmdVector2_t * pCenter);
- EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetCameraProjection)(TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, HmdMatrix44_t * pProjection);
+ EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetCameraIntrinsics)(TrackedDeviceIndex_t nDeviceIndex, uint32_t nCameraIndex, EVRTrackedCameraFrameType eFrameType, HmdVector2_t * pFocalLength, HmdVector2_t * pCenter);
+ EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetCameraProjection)(TrackedDeviceIndex_t nDeviceIndex, uint32_t nCameraIndex, EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, HmdMatrix44_t * pProjection);
EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *AcquireVideoStreamingService)(TrackedDeviceIndex_t nDeviceIndex, TrackedCameraHandle_t * pHandle);
EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *ReleaseVideoStreamingService)(TrackedCameraHandle_t hTrackedCamera);
EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetVideoStreamFrameBuffer)(TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, void * pFrameBuffer, uint32_t nFrameBufferSize, CameraVideoStreamFrameHeader_t * pFrameHeader, uint32_t nFrameHeaderSize);
@@ -2180,16 +2285,15 @@ struct VR_IVRChaperoneSetup_FnTable
bool (OPENVR_FNTABLE_CALLTYPE *GetWorkingStandingZeroPoseToRawTrackingPose)(struct HmdMatrix34_t * pmatStandingZeroPoseToRawTrackingPose);
void (OPENVR_FNTABLE_CALLTYPE *SetWorkingPlayAreaSize)(float sizeX, float sizeZ);
void (OPENVR_FNTABLE_CALLTYPE *SetWorkingCollisionBoundsInfo)(struct HmdQuad_t * pQuadsBuffer, uint32_t unQuadsCount);
+ void (OPENVR_FNTABLE_CALLTYPE *SetWorkingPerimeter)(struct HmdVector2_t * pPointBuffer, uint32_t unPointCount);
void (OPENVR_FNTABLE_CALLTYPE *SetWorkingSeatedZeroPoseToRawTrackingPose)(struct HmdMatrix34_t * pMatSeatedZeroPoseToRawTrackingPose);
void (OPENVR_FNTABLE_CALLTYPE *SetWorkingStandingZeroPoseToRawTrackingPose)(struct HmdMatrix34_t * pMatStandingZeroPoseToRawTrackingPose);
void (OPENVR_FNTABLE_CALLTYPE *ReloadFromDisk)(EChaperoneConfigFile configFile);
bool (OPENVR_FNTABLE_CALLTYPE *GetLiveSeatedZeroPoseToRawTrackingPose)(struct HmdMatrix34_t * pmatSeatedZeroPoseToRawTrackingPose);
- void (OPENVR_FNTABLE_CALLTYPE *SetWorkingCollisionBoundsTagsInfo)(uint8_t * pTagsBuffer, uint32_t unTagCount);
- bool (OPENVR_FNTABLE_CALLTYPE *GetLiveCollisionBoundsTagsInfo)(uint8_t * pTagsBuffer, uint32_t * punTagCount);
- bool (OPENVR_FNTABLE_CALLTYPE *SetWorkingPhysicalBoundsInfo)(struct HmdQuad_t * pQuadsBuffer, uint32_t unQuadsCount);
- bool (OPENVR_FNTABLE_CALLTYPE *GetLivePhysicalBoundsInfo)(struct HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount);
bool (OPENVR_FNTABLE_CALLTYPE *ExportLiveToBuffer)(char * pBuffer, uint32_t * pnBufferLength);
bool (OPENVR_FNTABLE_CALLTYPE *ImportFromBufferToWorking)(char * pBuffer, uint32_t nImportFlags);
+ void (OPENVR_FNTABLE_CALLTYPE *ShowWorkingSetPreview)();
+ void (OPENVR_FNTABLE_CALLTYPE *HideWorkingSetPreview)();
};
struct VR_IVRCompositor_FnTable
@@ -2237,6 +2341,7 @@ struct VR_IVRCompositor_FnTable
uint32_t (OPENVR_FNTABLE_CALLTYPE *GetVulkanDeviceExtensionsRequired)(struct VkPhysicalDevice_T * pPhysicalDevice, char * pchValue, uint32_t unBufferSize);
void (OPENVR_FNTABLE_CALLTYPE *SetExplicitTimingMode)(EVRCompositorTimingMode eTimingMode);
EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *SubmitExplicitTimingData)();
+ bool (OPENVR_FNTABLE_CALLTYPE *IsMotionSmoothingEnabled)();
};
struct VR_IVROverlay_FnTable
@@ -2297,7 +2402,7 @@ struct VR_IVROverlay_FnTable
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetGamepadFocusOverlay)(VROverlayHandle_t ulNewFocusOverlay);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayNeighbor)(EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *MoveGamepadFocusToNeighbor)(EOverlayDirection eDirection, VROverlayHandle_t ulFrom);
- EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayDualAnalogTransform)(VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, struct HmdVector2_t & vCenter, float fRadius);
+ EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayDualAnalogTransform)(VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, struct HmdVector2_t * pvCenter, float fRadius);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayDualAnalogTransform)(VROverlayHandle_t ulOverlay, EDualAnalogWhich eWhich, struct HmdVector2_t * pvCenter, float * pfRadius);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTexture)(VROverlayHandle_t ulOverlayHandle, struct Texture_t * pTexture);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *ClearOverlayTexture)(VROverlayHandle_t ulOverlayHandle);
@@ -2404,13 +2509,19 @@ struct VR_IVRInput_FnTable
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetDigitalActionData)(VRActionHandle_t action, struct InputDigitalActionData_t * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetAnalogActionData)(VRActionHandle_t action, struct InputAnalogActionData_t * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetPoseActionData)(VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, struct InputPoseActionData_t * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice);
- EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalActionData)(VRActionHandle_t action, struct InputSkeletalActionData_t * pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice);
- EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalBoneData)(VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, struct VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount, VRInputValueHandle_t ulRestrictToDevice);
- EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalBoneDataCompressed)(VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, void * pvCompressedData, uint32_t unCompressedSize, uint32_t * punRequiredCompressedSize, VRInputValueHandle_t ulRestrictToDevice);
- EVRInputError (OPENVR_FNTABLE_CALLTYPE *DecompressSkeletalBoneData)(void * pvCompressedBuffer, uint32_t unCompressedBufferSize, EVRSkeletalTransformSpace * peTransformSpace, struct VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount);
+ EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalActionData)(VRActionHandle_t action, struct InputSkeletalActionData_t * pActionData, uint32_t unActionDataSize);
+ EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetBoneCount)(VRActionHandle_t action, uint32_t * pBoneCount);
+ EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetBoneHierarchy)(VRActionHandle_t action, BoneIndex_t * pParentIndices, uint32_t unIndexArayCount);
+ EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetBoneName)(VRActionHandle_t action, BoneIndex_t nBoneIndex, char * pchBoneName, uint32_t unNameBufferSize);
+ EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalReferenceTransforms)(VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalReferencePose eReferencePose, struct VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount);
+ EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalTrackingLevel)(VRActionHandle_t action, EVRSkeletalTrackingLevel * pSkeletalTrackingLevel);
+ EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalBoneData)(VRActionHandle_t action, EVRSkeletalTransformSpace eTransformSpace, EVRSkeletalMotionRange eMotionRange, struct VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount);
+ EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalSummaryData)(VRActionHandle_t action, struct VRSkeletalSummaryData_t * pSkeletalSummaryData);
+ EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalBoneDataCompressed)(VRActionHandle_t action, EVRSkeletalMotionRange eMotionRange, void * pvCompressedData, uint32_t unCompressedSize, uint32_t * punRequiredCompressedSize);
+ EVRInputError (OPENVR_FNTABLE_CALLTYPE *DecompressSkeletalBoneData)(void * pvCompressedBuffer, uint32_t unCompressedBufferSize, EVRSkeletalTransformSpace eTransformSpace, struct VRBoneTransform_t * pTransformArray, uint32_t unTransformArrayCount);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *TriggerHapticVibrationAction)(VRActionHandle_t action, float fStartSecondsFromNow, float fDurationSeconds, float fFrequency, float fAmplitude, VRInputValueHandle_t ulRestrictToDevice);
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);
+ 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 *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);
diff --git a/headers/openvr_driver.h b/headers/openvr_driver.h
index 556a895..780d44e 100644
--- a/headers/openvr_driver.h
+++ b/headers/openvr_driver.h
@@ -11,6 +11,14 @@
+// version.h
+namespace vr
+{
+ static const uint32_t k_nSteamVRVersionMajor = 1;
+ static const uint32_t k_nSteamVRVersionMinor = 1;
+ static const uint32_t k_nSteamVRVersionBuild = 3;
+} // namespace vr
+
// vrtypes.h
#ifndef _INCLUDE_VRTYPES_H
#define _INCLUDE_VRTYPES_H
@@ -198,10 +206,26 @@ enum ETrackedControllerRole
TrackedControllerRole_LeftHand = 1, // Tracked device associated with the left hand
TrackedControllerRole_RightHand = 2, // Tracked device associated with the right hand
TrackedControllerRole_OptOut = 3, // Tracked device is opting out of left/right hand selection
+ TrackedControllerRole_Treadmill = 4, // Tracked device is a treadmill
TrackedControllerRole_Max = 4
};
+/** Returns true if the tracked controller role is allowed to be a hand */
+inline bool IsRoleAllowedAsHand( ETrackedControllerRole eRole )
+{
+ switch ( eRole )
+ {
+ case TrackedControllerRole_Invalid:
+ case TrackedControllerRole_LeftHand:
+ case TrackedControllerRole_RightHand:
+ return true;
+ default:
+ return false;
+ }
+}
+
+
/** describes a single pose for a tracked object */
struct TrackedDevicePose_t
{
@@ -249,6 +273,8 @@ static const PropertyTypeTag_t k_unHmdMatrix34PropertyTag = 20;
static const PropertyTypeTag_t k_unHmdMatrix44PropertyTag = 21;
static const PropertyTypeTag_t k_unHmdVector3PropertyTag = 22;
static const PropertyTypeTag_t k_unHmdVector4PropertyTag = 23;
+static const PropertyTypeTag_t k_unHmdVector2PropertyTag = 24;
+static const PropertyTypeTag_t k_unHmdQuadPropertyTag = 25;
static const PropertyTypeTag_t k_unHiddenAreaPropertyTag = 30;
static const PropertyTypeTag_t k_unPathHandleInfoTag = 31;
@@ -314,6 +340,8 @@ enum ETrackedDeviceProperty
Prop_NumCameras_Int32 = 1039,
Prop_CameraFrameLayout_Int32 = 1040, // EVRTrackedCameraFrameLayout value
Prop_CameraStreamFormat_Int32 = 1041, // ECameraVideoStreamFormat value
+ Prop_AdditionalDeviceSettingsPath_String = 1042, // driver-relative path to additional device and global configuration settings
+ Prop_Identifiable_Bool = 1043, // Whether device supports being identified from vrmonitor (e.g. blink LED, vibrate haptics, etc)
// Properties that are unique to TrackedDeviceClass_HMD
Prop_ReportsTimeSinceVSync_Bool = 2000,
@@ -621,6 +649,7 @@ enum EVREventType
VREvent_Scroll = 305, // data is mouse
VREvent_TouchPadMove = 306, // data is mouse
VREvent_OverlayFocusChanged = 307, // data is overlay, global event
+ VREvent_ReloadOverlays = 308,
VREvent_InputFocusCaptured = 400, // data is process DEPRECATED
VREvent_InputFocusReleased = 401, // data is process DEPRECATED
@@ -670,6 +699,7 @@ enum EVREventType
VREvent_PrimaryDashboardDeviceChanged = 525,
VREvent_RoomViewShown = 526, // Sent by compositor whenever room-view is enabled
VREvent_RoomViewHidden = 527, // Sent by compositor whenever room-view is disabled
+ VREvent_ShowUI = 528, // data is showUi
VREvent_Notification_Shown = 600,
VREvent_Notification_Hidden = 601,
@@ -682,11 +712,12 @@ enum EVREventType
VREvent_QuitAcknowledged = 703, // data is process
VREvent_DriverRequestedQuit = 704, // The driver has requested that SteamVR shut down
- VREvent_ChaperoneDataHasChanged = 800,
+ VREvent_ChaperoneDataHasChanged = 800, // Sent when the process needs to call VRChaperone()->ReloadInfo()
VREvent_ChaperoneUniverseHasChanged = 801,
VREvent_ChaperoneTempDataHasChanged = 802,
VREvent_ChaperoneSettingsHaveChanged = 803,
VREvent_SeatedZeroPoseReset = 804,
+ VREvent_ChaperoneFlushCache = 805, // Sent when the process needs to reload any cached data it retrieved from VRChaperone()
VREvent_AudioSettingsHaveChanged = 820,
@@ -705,8 +736,9 @@ enum EVREventType
VREvent_KeyboardSectionSettingChanged = 862,
VREvent_PerfSectionSettingChanged = 863,
VREvent_DashboardSectionSettingChanged = 864,
- VREvent_WebInterfaceSectionSettingChanged = 865,
- VREvent_TrackersSectionSettingChanged = 866,
+ VREvent_WebInterfaceSectionSettingChanged = 865,
+ VREvent_TrackersSectionSettingChanged = 866,
+ VREvent_LastKnownSectionSettingChanged = 867,
VREvent_StatusUpdate = 900,
@@ -753,6 +785,7 @@ enum EVREventType
VREvent_Input_BindingLoadSuccessful = 1702, // data is inputBinding
VREvent_Input_ActionManifestReloaded = 1703, // no data
VREvent_Input_ActionManifestLoadFailed = 1704, // data is actionManifest
+ VREvent_Input_ProgressUpdate = 1705, // data is progressUpdate
VREvent_Input_TrackerActivated = 1706,
VREvent_SpatialAnchors_PoseUpdated = 1800, // data is spatialAnchor. broadcast
@@ -922,6 +955,8 @@ struct VREvent_Reserved_t
uint64_t reserved1;
uint64_t reserved2;
uint64_t reserved3;
+ uint64_t reserved4;
+ uint64_t reserved5;
};
struct VREvent_PerformanceTest_t
@@ -1016,6 +1051,28 @@ struct VREvent_SpatialAnchor_t
SpatialAnchorHandle_t unHandle;
};
+struct VREvent_ProgressUpdate_t
+{
+ uint64_t ulApplicationPropertyContainer;
+ uint64_t pathDevice;
+ uint64_t pathInputSource;
+ uint64_t pathProgressAction;
+ uint64_t pathIcon;
+ float fProgress;
+};
+
+enum EShowUIType
+{
+ ShowUI_ControllerBinding = 0,
+ ShowUI_ManageTrackers = 1,
+ ShowUI_QuickStart = 2,
+};
+
+struct VREvent_ShowUI_t
+{
+ EShowUIType eType;
+};
+
typedef union
{
VREvent_Reserved_t reserved;
@@ -1044,6 +1101,8 @@ typedef union
VREvent_InputBindingLoad_t inputBinding;
VREvent_InputActionManifestLoad_t actionManifest;
VREvent_SpatialAnchor_t spatialAnchor;
+ VREvent_ProgressUpdate_t progressUpdate;
+ VREvent_ShowUI_t showUi;
/** NOTE!!! If you change this you MUST manually update openvr_interop.cs.py */
} VREvent_Data_t;
@@ -1087,6 +1146,7 @@ enum EVRInputError
VRInputError_BufferTooSmall = 14,
VRInputError_MismatchedActionManifest = 15,
VRInputError_MissingSkeletonData = 16,
+ VRInputError_InvalidBoneIndex = 17,
};
enum EVRSpatialAnchorError
@@ -1262,7 +1322,8 @@ enum EVRApplicationType
// interfaces (like IVRSettings and IVRApplications) but not hardware.
VRApplication_VRMonitor = 5, // Reserved for vrmonitor
VRApplication_SteamWatchdog = 6,// Reserved for Steam
- VRApplication_Bootstrapper = 7, // Start up SteamVR
+ VRApplication_Bootstrapper = 7, // reserved for vrstartup
+ VRApplication_WebHelper = 8, // reserved for vrwebhelper
VRApplication_Max
};
@@ -1308,6 +1369,10 @@ struct VRBoneTransform_t
HmdQuaternionf_t orientation;
};
+/** Type used for referring to bones by their index */
+typedef int32_t BoneIndex_t;
+const BoneIndex_t k_unInvalidBoneIndex = -1;
+
/** error codes returned by Vr_Init */
@@ -1465,6 +1530,16 @@ enum EVRTrackedCameraFrameType
MAX_CAMERA_FRAME_TYPES
};
+enum EVRDistortionFunctionType
+{
+ VRDistortionFunctionType_None,
+ VRDistortionFunctionType_FTheta,
+ VRDistortionFucntionType_Extended_FTheta,
+ MAX_DISTORTION_FUNCTION_TYPES,
+};
+
+static const uint32_t k_unMaxDistortionFunctionParameters = 8;
+
typedef uint64_t TrackedCameraHandle_t;
#define INVALID_TRACKED_CAMERA_HANDLE ((vr::TrackedCameraHandle_t)0)
@@ -1601,6 +1676,7 @@ enum ECameraVideoStreamFormat
CVS_FORMAT_RGB24 = 3, // 24 bits per pixel
CVS_FORMAT_NV12_2 = 4, // 12 bits per pixel, 2x height
CVS_FORMAT_YUYV16 = 5, // 16 bits per pixel
+ CVS_FORMAT_BAYER16BG = 6, // 16 bits per pixel, 10-bit BG-format Bayer, see https://docs.opencv.org/3.1.0/de/d25/imgproc_color_conversions.html
CVS_MAX_FORMATS
};
@@ -1638,6 +1714,7 @@ enum ETrackedCameraRoomViewMode
#define VR_CAMERA_DECL_ALIGN( x ) //
#endif
+#define MAX_CAMERAS 4
#define MAX_CAMERA_FRAME_SHARED_HANDLES 4
VR_CAMERA_DECL_ALIGN( 8 ) struct CameraVideoStreamFrame_t
@@ -1833,18 +1910,14 @@ namespace vr
static const char * const k_pch_SteamVR_PlayAreaColor_String = "playAreaColor";
static const char * const k_pch_SteamVR_ShowStage_Bool = "showStage";
static const char * const k_pch_SteamVR_ActivateMultipleDrivers_Bool = "activateMultipleDrivers";
- static const char * const k_pch_SteamVR_DirectMode_Bool = "directMode";
- static const char * const k_pch_SteamVR_DirectModeEdidVid_Int32 = "directModeEdidVid";
- static const char * const k_pch_SteamVR_DirectModeEdidPid_Int32 = "directModeEdidPid";
static const char * const k_pch_SteamVR_UsingSpeakers_Bool = "usingSpeakers";
static const char * const k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float = "speakersForwardYawOffsetDegrees";
static const char * const k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement";
static const char * const k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses";
static const char * const k_pch_SteamVR_SupersampleScale_Float = "supersampleScale";
static const char * const k_pch_SteamVR_MaxRecommendedResolution_Int32 = "maxRecommendedResolution";
- static const char * const k_pch_SteamVR_AllowAsyncReprojection_Bool = "allowAsyncReprojection";
- static const char * const k_pch_SteamVR_AllowReprojection_Bool = "allowInterleavedReprojection";
- static const char * const k_pch_SteamVR_ForceReprojection_Bool = "forceReprojection";
+ static const char * const k_pch_SteamVR_MotionSmoothing_Bool = "motionSmoothing";
+ static const char * const k_pch_SteamVR_MotionSmoothingOverride_Int32 = "motionSmoothingOverride";
static const char * const k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking";
static const char * const k_pch_SteamVR_DefaultMirrorView_Int32 = "mirrorView";
static const char * const k_pch_SteamVR_ShowMirrorView_Bool = "showMirrorView";
@@ -1869,6 +1942,17 @@ namespace vr
static const char * const k_pch_SteamVR_DebugInputBinding = "debugInputBinding";
static const char * const k_pch_SteamVR_InputBindingUIBlock = "inputBindingUI";
static const char * const k_pch_SteamVR_RenderCameraMode = "renderCameraMode";
+ static const char * const k_pch_SteamVR_EnableSharedResourceJournaling = "enableSharedResourceJournaling";
+ static const char * const k_pch_SteamVR_EnableSafeMode = "enableSafeMode";
+ static const char * const k_pch_SteamVR_PreferredRefreshRate = "preferredRefreshRate";
+
+ //-----------------------------------------------------------------------------
+ // direct mode keys
+ static const char * const k_pch_DirectMode_Section = "direct_mode";
+ static const char * const k_pch_DirectMode_Enable_Bool = "enable";
+ static const char * const k_pch_DirectMode_Count_Int32 = "count";
+ static const char * const k_pch_DirectMode_EdidVid_Int32 = "edidVid";
+ static const char * const k_pch_DirectMode_EdidPid_Int32 = "edidPid";
//-----------------------------------------------------------------------------
// lighthouse keys
@@ -1881,6 +1965,7 @@ namespace vr
static const char * const k_pch_Lighthouse_DBHistory_Bool = "dbhistory";
static const char * const k_pch_Lighthouse_EnableBluetooth_Bool = "enableBluetooth";
static const char * const k_pch_Lighthouse_PowerManagedBaseStations_String = "PowerManagedBaseStations";
+ static const char * const k_pch_Lighthouse_PowerManagedBaseStations2_String = "PowerManagedBaseStations2";
static const char * const k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback";
//-----------------------------------------------------------------------------
@@ -2023,6 +2108,16 @@ namespace vr
// configuration for trackers
static const char * const k_pch_Trackers_Section = "trackers";
+ //-----------------------------------------------------------------------------
+ // configuration for desktop UI windows
+ static const char * const k_pch_DesktopUI_Section = "DesktopUI";
+
+ //-----------------------------------------------------------------------------
+ // Last known keys for righting recovery
+ static const char * const k_pch_LastKnown_Section = "LastKnown";
+ static const char* const k_pch_LastKnown_HMDManufacturer_String = "HMDManufacturer";
+ static const char* const k_pch_LastKnown_HMDModel_String = "HMDModel";
+
} // namespace vr
// iservertrackeddevicedriver.h
@@ -2291,17 +2386,17 @@ namespace vr
virtual bool SetAutoExposure( bool bEnable ) = 0;
virtual bool PauseVideoStream() = 0;
virtual bool ResumeVideoStream() = 0;
- virtual bool GetCameraDistortion( float flInputU, float flInputV, float *pflOutputU, float *pflOutputV ) = 0;
- virtual bool GetCameraProjection( vr::EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, vr::HmdMatrix44_t *pProjection ) = 0;
+ virtual bool GetCameraDistortion( uint32_t nCameraIndex, float flInputU, float flInputV, float *pflOutputU, float *pflOutputV ) = 0;
+ virtual bool GetCameraProjection( uint32_t nCameraIndex, vr::EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, vr::HmdMatrix44_t *pProjection ) = 0;
virtual bool SetFrameRate( int nISPFrameRate, int nSensorFrameRate ) = 0;
virtual bool SetCameraVideoSinkCallback( vr::ICameraVideoSinkCallback *pCameraVideoSinkCallback ) = 0;
virtual bool GetCameraCompatibilityMode( vr::ECameraCompatibilityMode *pCameraCompatibilityMode ) = 0;
virtual bool SetCameraCompatibilityMode( vr::ECameraCompatibilityMode nCameraCompatibilityMode ) = 0;
virtual bool GetCameraFrameBounds( vr::EVRTrackedCameraFrameType eFrameType, uint32_t *pLeft, uint32_t *pTop, uint32_t *pWidth, uint32_t *pHeight ) = 0;
- virtual bool GetCameraIntrinsics( vr::EVRTrackedCameraFrameType eFrameType, HmdVector2_t *pFocalLength, HmdVector2_t *pCenter ) = 0;
+ virtual bool GetCameraIntrinsics( uint32_t nCameraIndex, vr::EVRTrackedCameraFrameType eFrameType, HmdVector2_t *pFocalLength, HmdVector2_t *pCenter, vr::EVRDistortionFunctionType *peDistortionType, double rCoefficients[ k_unMaxDistortionFunctionParameters ] ) = 0;
};
- static const char *IVRCameraComponent_Version = "IVRCameraComponent_002";
+ static const char *IVRCameraComponent_Version = "IVRCameraComponent_003";
}
// itrackeddevicedriverprovider.h
namespace vr
@@ -2841,14 +2936,14 @@ namespace vr
virtual EVRInputError CreateHapticComponent( PropertyContainerHandle_t ulContainer, const char *pchName, VRInputComponentHandle_t *pHandle ) = 0;
/** Creates a skeleton component. */
- virtual EVRInputError CreateSkeletonComponent( PropertyContainerHandle_t ulContainer, const char *pchName, const char *pchSkeletonPath, const char *pchBasePosePath, const VRBoneTransform_t *pGripLimitTransforms, uint32_t unGripLimitTransformCount, VRInputComponentHandle_t *pHandle ) = 0;
+ virtual EVRInputError CreateSkeletonComponent( PropertyContainerHandle_t ulContainer, const char *pchName, const char *pchSkeletonPath, const char *pchBasePosePath, EVRSkeletalTrackingLevel eSkeletalTrackingLevel, const VRBoneTransform_t *pGripLimitTransforms, uint32_t unGripLimitTransformCount, VRInputComponentHandle_t *pHandle ) = 0;
/** Updates a skeleton component. */
virtual EVRInputError UpdateSkeletonComponent( VRInputComponentHandle_t ulComponent, EVRSkeletalMotionRange eMotionRange, const VRBoneTransform_t *pTransforms, uint32_t unTransformCount ) = 0;
};
- static const char * const IVRDriverInput_Version = "IVRDriverInput_002";
+ static const char * const IVRDriverInput_Version = "IVRDriverInput_003";
} // namespace vr
diff --git a/lib/linux32/libopenvr_api.so b/lib/linux32/libopenvr_api.so
index ef6bea3..552f31f 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 f2dba48..5552074 100755
--- a/lib/linux64/libopenvr_api.so
+++ b/lib/linux64/libopenvr_api.so
Binary files differ
diff --git a/lib/win32/openvr_api.lib b/lib/win32/openvr_api.lib
index b3f0b47..9c1fdc9 100644
--- a/lib/win32/openvr_api.lib
+++ b/lib/win32/openvr_api.lib
Binary files differ
diff --git a/lib/win64/openvr_api.lib b/lib/win64/openvr_api.lib
index 2ce7e75..a7bf95d 100644
--- a/lib/win64/openvr_api.lib
+++ b/lib/win64/openvr_api.lib
Binary files differ
diff --git a/samples/bin/linux64/libopenvr_api.so b/samples/bin/linux64/libopenvr_api.so
index 92ac9c2..46dac9e 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 b2877ce..2e59051 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 0a348d0..c440068 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 6988b78..f4ddebd 100644
--- a/samples/bin/win64/openvr_api.dll
+++ b/samples/bin/win64/openvr_api.dll
Binary files differ
diff --git a/samples/hellovr_vulkan/hellovr_vulkan_main.cpp b/samples/hellovr_vulkan/hellovr_vulkan_main.cpp
index b72ce48..07aa245 100644
--- a/samples/hellovr_vulkan/hellovr_vulkan_main.cpp
+++ b/samples/hellovr_vulkan/hellovr_vulkan_main.cpp
@@ -329,7 +329,7 @@ void dprintf( const char *fmt, ... )
char buffer[ 2048 ];
va_start( args, fmt );
- vsprintf_s( buffer, fmt, args );
+ vsnprintf( buffer, sizeof( buffer ), fmt, args );
va_end( args );
if ( g_bPrintf )
@@ -1458,6 +1458,9 @@ bool CMainApplication::BInitVulkan()
vkQueueSubmit( m_pQueue, 1, &submitInfo, m_currentCommandBuffer.m_pFence );
m_commandBuffers.push_front( m_currentCommandBuffer );
+ m_currentCommandBuffer.m_pCommandBuffer = VK_NULL_HANDLE;
+ m_currentCommandBuffer.m_pFence = VK_NULL_HANDLE;
+
// Wait for the GPU before proceeding
vkQueueWaitIdle( m_pQueue );
@@ -1720,6 +1723,9 @@ void CMainApplication::RenderFrame()
// Add the command buffer back for later recycling
m_commandBuffers.push_front( m_currentCommandBuffer );
+ m_currentCommandBuffer.m_pCommandBuffer = VK_NULL_HANDLE;
+ m_currentCommandBuffer.m_pFence = VK_NULL_HANDLE;
+
// Submit to SteamVR
vr::VRTextureBounds_t bounds;
bounds.uMin = 0.0f;
@@ -3303,6 +3309,20 @@ VulkanRenderModel *CMainApplication::FindOrLoadRenderModel( vr::TrackedDeviceInd
m_pDescriptorSets[ DESCRIPTOR_SET_LEFT_EYE_RENDER_MODEL0 + unTrackedDeviceIndex ],
m_pDescriptorSets[ DESCRIPTOR_SET_RIGHT_EYE_RENDER_MODEL0 + unTrackedDeviceIndex ],
};
+
+ // If this gets called during HandleInput() there will be no command buffer current, so create one
+ // and submit it immediately.
+ bool bNewCommandBuffer = false;
+ if ( m_currentCommandBuffer.m_pCommandBuffer == VK_NULL_HANDLE )
+ {
+ m_currentCommandBuffer = GetCommandBuffer();
+
+ // Start the command buffer
+ VkCommandBufferBeginInfo commandBufferBeginInfo = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO };
+ commandBufferBeginInfo.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
+ vkBeginCommandBuffer( m_currentCommandBuffer.m_pCommandBuffer, &commandBufferBeginInfo );
+ bNewCommandBuffer = true;
+ }
if ( !pRenderModel->BInit( m_pDevice, m_physicalDeviceMemoryProperties, m_currentCommandBuffer.m_pCommandBuffer, unTrackedDeviceIndex, pDescriptorSets, *pModel, *pTexture ) )
{
dprintf( "Unable to create Vulkan model from render model %s\n", pchRenderModelName );
@@ -3312,6 +3332,23 @@ VulkanRenderModel *CMainApplication::FindOrLoadRenderModel( vr::TrackedDeviceInd
else
{
m_vecRenderModels.push_back( pRenderModel );
+
+ // If this is during HandleInput() there is was no command buffer current, so submit it now.
+ if ( bNewCommandBuffer )
+ {
+ vkEndCommandBuffer( m_currentCommandBuffer.m_pCommandBuffer );
+
+ // Submit now
+ VkSubmitInfo submitInfo = { VK_STRUCTURE_TYPE_SUBMIT_INFO };
+ submitInfo.commandBufferCount = 1;
+ submitInfo.pCommandBuffers = &m_currentCommandBuffer.m_pCommandBuffer;
+ vkQueueSubmit( m_pQueue, 1, &submitInfo, m_currentCommandBuffer.m_pFence );
+ m_commandBuffers.push_front( m_currentCommandBuffer );
+
+ // Reset current command buffer
+ m_currentCommandBuffer.m_pCommandBuffer = VK_NULL_HANDLE;
+ m_currentCommandBuffer.m_pFence = VK_NULL_HANDLE;
+ }
}
vr::VRRenderModels()->FreeRenderModel( pModel );
vr::VRRenderModels()->FreeTexture( pTexture );
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 58954d6..8ac19f9 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -22,7 +22,7 @@ elseif(WIN32)
endif()
# Add include folders.
-include_directories(${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/headers ${CMAKE_SOURCE_DIR}/src/vrcommon)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../headers ${CMAKE_CURRENT_SOURCE_DIR}/vrcommon)
if(USE_CUSTOM_LIBCXX)
link_directories(
@@ -91,6 +91,7 @@ if(USE_CUSTOM_LIBCXX)
set(EXTRA_LIBS ${EXTRA_LIBS} c++ c++abi)
endif()
-target_link_libraries(${LIBNAME} ${EXTRA_LIBS})
+target_link_libraries(${LIBNAME} ${EXTRA_LIBS} ${CMAKE_DL_LIBS})
+target_include_directories(${LIBNAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../headers)
install(TARGETS ${LIBNAME} DESTINATION lib)
diff --git a/src/vrcommon/pathtools_public.cpp b/src/vrcommon/pathtools_public.cpp
index 2885544..7069c5e 100644
--- a/src/vrcommon/pathtools_public.cpp
+++ b/src/vrcommon/pathtools_public.cpp
@@ -97,6 +97,24 @@ bool Path_SetWorkingDirectory( const std::string & sPath )
return bSuccess;
}
+/** Gets the path to a temporary directory. */
+std::string Path_GetTemporaryDirectory()
+{
+#if defined( _WIN32 )
+ wchar_t buf[MAX_UNICODE_PATH];
+ if ( GetTempPathW( MAX_UNICODE_PATH, buf ) == 0 )
+ return Path_GetWorkingDirectory();
+ return UTF16to8( buf );
+#else
+ const char *pchTmpDir = getenv( "TMPDIR" );
+ if ( pchTmpDir == NULL )
+ {
+ return "";
+ }
+ return pchTmpDir;
+#endif
+}
+
/** Returns the specified path without its filename */
std::string Path_StripFilename( const std::string & sPath, char slash )
{
@@ -820,3 +838,16 @@ std::string GetUserDocumentsPath()
#endif
}
+
+// -----------------------------------------------------------------------------------------------------
+// Purpose: deletes / unlinks a single file
+// -----------------------------------------------------------------------------------------------------
+bool Path_UnlinkFile( const std::string &strFilename )
+{
+#if defined( WIN32 )
+ std::wstring wsFilename = UTF8to16( strFilename.c_str() );
+ return ( 0 != DeleteFileW( wsFilename.c_str() ) );
+#else
+ return ( 0 == unlink( strFilename.c_str() ) );
+#endif
+}
diff --git a/src/vrcommon/pathtools_public.h b/src/vrcommon/pathtools_public.h
index c13e4d7..4283a9b 100644
--- a/src/vrcommon/pathtools_public.h
+++ b/src/vrcommon/pathtools_public.h
@@ -13,6 +13,9 @@ std::string Path_GetWorkingDirectory();
/** Sets the path of the current working directory. Returns true if this was successful. */
bool Path_SetWorkingDirectory( const std::string & sPath );
+/** Gets the path to a temporary directory. */
+std::string Path_GetTemporaryDirectory();
+
/** returns the path (including filename) of the current shared lib or DLL */
std::string Path_GetThisModulePath();
@@ -97,6 +100,9 @@ std::string Path_UrlToFilePath( const std::string & sFileUrl );
/** Returns the root of the directory the system wants us to store user documents in */
std::string GetUserDocumentsPath();
+/** deletes / unlinks a single file */
+bool Path_UnlinkFile( const std::string &strFilename );
+
#ifndef MAX_UNICODE_PATH
#define MAX_UNICODE_PATH 32767
#endif