Releases: ValveSoftware/openvr
v1.9.16
OpenVR SDK 1.9.16
This is identical to 1.9.15, except with the correct version information in the commit message
IVRDriverInput:
- Added TrackedControllerRole_Stylus, which allows a device to appear as /user/stylus in the binding system.
IVRSettings:
- Removed sync function. Saving of settings is controlled automatically by the system now. All existing calls to Sync can be deleted. Calls to sync using old APIs do nothing.
IVRCompositor:
- Added the ability for apps to skin the construct during loading transitions using a single model (limit 65k vertices) and a single texture (rendered unlit). See https://github.com/ValveSoftware/openvr/wiki/Compositor-Skinning for details.
IVROverlay:
- Added transform types for dashboard tabs and dashboard thumbs. These no longer use absolute transforms, so they no longer have getters for their transforms.
- Added SetOverlayTransformCursor, which will set an overlay's transform to "cursor", which means it will be centered around its hotspot and automatically positioned by the laser mouse system.
- Added GetOverlayTransformCursor in case an application needs to read back the cursor hotspot of a cursor.
- Added SetOverlayCursor, which allows an overlay to specify which cursor overlay should be used whenever the laser mouse is pointed at that overlay. The desktop overlay uses this to show custom cursors based on context.
- Added SetOverlayCursorPositionOverride, which lets an overlay set the position to show its cursor at a position that is independent from where the laser mouse is pointing. The desktop overlay uses this to allow the physical mouse to override the laser mouse.
- Added ClearOverlayCursorPositionOverride, which clears any cursor position override on the overlay and returns it to using the laser mouse position.
- Added TriggerLaserMouseHapticVibration, which will trigger a haptic vibration on the laser mouse device in the context of a particular transform.
v1.9.15
OpenVR SDK 1.9.15
IVRDriverInput:
- Added TrackedControllerRole_Stylus, which allows a device to appear as /user/stylus in the binding system.
IVRSettings:
- Removed sync function. Saving of settings is controlled automatically by the system now. All existing calls to Sync can be deleted. Calls to sync using old APIs do nothing.
IVRCompositor:
- Added the ability for apps to skin the construct during loading transitions using a single model (limit 65k vertices) and a single texture (rendered unlit). See https://github.com/ValveSoftware/openvr/wiki/Compositor-Skinning for details.
IVROverlay:
- Added transform types for dashboard tabs and dashboard thumbs. These no longer use absolute transforms, so they no longer have getters for their transforms.
- Added SetOverlayTransformCursor, which will set an overlay's transform to "cursor", which means it will be centered around its hotspot and automatically positioned by the laser mouse system.
- Added GetOverlayTransformCursor in case an application needs to read back the cursor hotspot of a cursor.
- Added SetOverlayCursor, which allows an overlay to specify which cursor overlay should be used whenever the laser mouse is pointed at that overlay. The desktop overlay uses this to show custom cursors based on context.
- Added SetOverlayCursorPositionOverride, which lets an overlay set the position to show its cursor at a position that is independent from where the laser mouse is pointing. The desktop overlay uses this to allow the physical mouse to override the laser mouse.
- Added ClearOverlayCursorPositionOverride, which clears any cursor position override on the overlay and returns it to using the laser mouse position.
- Added TriggerLaserMouseHapticVibration, which will trigger a haptic vibration on the laser mouse device in the context of a particular transform.
v1.8.19
OpenVR SDK 1.8.19
Properties:
- Added Prop_DashboardScale_Float. Each headset has the opportunity to provide a scale for 'comfortable dashboard UI legibility'. For reference, Vive is 1.0 scale and Index is 0.75 scale.
- Added Prop_IpdUIRangeMinMeters_Float, Prop_IpdUIRangeMaxMeters_Float to control the IPD user interface range, in-headset.
- Added Prop_Audio_DefaultPlaybackDeviceId_String, Prop_Audio_DefaultRecordingDeviceId_String for HMDs to provide identifiers for associated audio playback and recording devices. On Windows these are Endpoint ID Strings.
- Added Prop_Audio_DefaultPlaybackDeviceVolume_Float for HMDs to specify a default volume level which will be set the first time the HMDs associated audio playback device is selected. Prop_Audio_DefaultPlaybackDeviceId_String must also be set. The volume range is 0 to 1.
IVRApplications:
- Added GetSceneApplicationState(), which returns the running application state ( None, Starting, Quitting, Running, etc). See VREvent_SceneApplicationStateChanged
- Removed GetTransitionState()
- Removed IsQuitUserPromptRequested()
IVRSystem:
- Removed AcknowledgeQuit_UserPrompt(). "Prompt user on quit" functionality is no longer supported.
IVROverlay:
- Added VROverlayFlags_HideLaserIntersection - This causes the laser mouse to not draw the intersection blob for this overlay. The overlay is responsible for drawing its own cursor, if appropriate.
- Added support for rendering overlays as gravity aligned curved surfaces. See new Set/GetOverlayCurvature definitions for details.
- Removed gamepad support in overlays. This includes GetGamepadFocusOverlay(), SetGamepadFocusOverlay(), SetOverlayNeighbor(), and MoveGamepadFocusToNeighbor(). Going forward gamepads will be supported via lasermouse instead of with these custom calls.
IVRInput:
- Added OpenBindingUI - This function opens the binding user interface.
Events:
- Added VREvent_SceneApplicationStateChanged
- Removed VREvent_SceneFocusLost, VREvent_SceneFocusGained, VREvent_SceneApplicationSecondaryRenderingStarted, VREvent_ApplicationTransition{*}
- Removed VREvent_QuitAborted_UserPrompt
[git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 5469045]
v1.7.15
OpenVR SDK 1.7.15
Events:
- VREvent_Compositor_MirrorWindowShown and VREvent_Compositor_MirrorWindowHidden are no longer supported and have been removed.
IVRApplications:
- Added
VRApplicationProperty_IsHidden_Bool
, which is true for applications which the user has chosen to hide in their Steam library.
IVRCompositor:
- Disabled the following functions:
ShowMirrorWindow()
,HideMirrorWindow()
, andIsMirrorWindowVisible()
. These are no longer support with the new VR View window.
IVROverlay:
- Removed support for so-called "high quality" overlays, along with the functions that create them. These overlays never supported laser mouse interaction, were unable to act as dashboard overlays, and generally didn't play well with the rest of SteamVR. This approach to rendering overlays also didn't scale to modern displays. Any existing apps that still use the APIs in old versions of the SDK will fall back to being rendered as standard overlays.
IVRTrackedCamera:
- Added support for setting which tracking universe poses are returned in. Set the camera tracking universe with
SetCameraTrackingSpace(...)
and retrieve the current tracking universe withGetCameraTrackingSpace(...)
. The camera tracking universe defaults to standing.
Driver Interface:
- Added support for overriding HMD properties from display redirect drivers. Any properties written to the
k_ulDisplayRedirectContainer
property container will be read instead of the properties on the HMD itself. This container is only valid after Activate has been called on a display redirect device. - Created an optional Prop_NamedIconPathDeviceStandbyAlert_String that drivers can use to declare a device icon for a combination of standby + alert states. It's recommended to visually be a combination of the Prop_NamedIconPathDeviceReadyAlert_String and Prop_NamedIconPathDeviceStandby_String icons.
[git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 5356236]
v1.6.10
OpenVR SDK 1.6.10
IVRSystem:
- Added GetAppContainerFilePaths – Call this function to get a semicolon-delimited list of file paths that any app container that intends to act as a SteamVR application will need access to.
- Added GetRuntimeVersion – This returns the version of the SteamVR runtime as a string.
IVROverlay:
- VROverlayFlags_ProtectedContent – This flag prevents the overlay in question from being readable by any OpenVR SDK, and prevents it from showing up in the overlay viewer.
CVRPropertyHelpers:
- Added getters and setters for 2, 3, and 4 element vectors
Driver Interface:
- Added IVRServerDriverHost::GetFrameTimings, which allows drivers to retrieve frame timing data
- Added tracked device class to IVRWatchdogHost::WatchdogWakeUp – This allows more precise logging of how the user caused SteamVR to wake up from hardware activity.
[git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 5271985]
v1.5.17
OpenVR SDK 1.5.17
Properties:
- Deprecated Prop_DoNotApplyPrediction_Bool. Drivers should provide poses with zero velocity instead.
- Added Prop_DriverProvidedChaperoneVisibility_Bool – Drivers that set Prop_DriverProvidedChaperonePath_String can also set this property to indicate when the driver provided chaperone is visible or not visible.
- Added Prop_HmdTrackingStyle_Int32 - Drivers should set this to an EHmdTrackingStyle value to control what message is shown to users when the HMD isn't tracking.
Add a per-driver “loadPriority” (higher is earlier loading) to control the order that we check drivers for available HMDs. The default loadPriority is 0. Drivers can set a different default in resources/settings/default.vrsettings. The user can override those settings in their personal steam/config/steamvr.vrsettings file. Drivers with the same priority continue to be loaded in alphabetical order as before.
IVRDriverManager interface:
- Added IsEnabled, which returns true if the driver is enabled.
IVRInput interface:
- Added GetActionBindingInfo - This function allows the caller to learn details about exactly how an action is bound, including what input source the binding is for, what mode on that source, and what slot on that mode. For example, a dpad binding to a trackpad would be "/input/trackpad", "dpad", and "north".
IVRDebug Interface:
- Initial version of IVRDebug, an interface intended to collect SteamVR debugging functionality. It currently provides methods to interact with the VR Profiler and the driver debug interface.
- Added EmitVrProfilerEvent - Applications can use this method to emit a discrete event to the VR Profiler.
- Added BeginVrProfilerEvent/FinishVrProfilerEvent - Applications can use this pair of functions to create a duration based VR Profiler event. The methods signal the beginning and the end of the event respectively.
- Added DriverDebugRequest - Migrated this function from IVRSystem to IVRDebug.
[git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 5214411]
v1.4.18
OpenVR SDK 1.4.18
General:
- vr::VR_GetRunTimePath now takes a buffer to fill with the returned path. This form of the function is now thread-safe.
Driver Interface:
- Prop_DashboardLayoutPathName_String - specified the name of the dashboard layout control file. Allows per-HMD control over settings like dashboard distance, etc.
HelloVR Sample:
- Added an example of generic bindings that will work ifno device-specific bindings are specified.
Valve Index Controller:
- Renamed some references from Knuckles to Index Controller
IVRChaperoneSetup:
- Added RoomSetupStarting - This fires an event that the tracking system can use to know room setup is about to begin. This lets the tracking system make any last minute adjustments that should be incorporated into the new setup. If the user is adjusting live in HMD using a tweak tool, keep in mind that calling this might cause the user to see the room jump.
IVRCompositor:
- Added IsMotionSmoothingSupported - This returns true if Motion Smoothing is supported by the current hardware.
- Added IsCurrentSceneFocusAppLoading - This indicates whether or not the current scene focus app is currently loading. The return value is inferred from its use of FadeGrid to explicitly fade to the compositor to cover up the fact that it cannot render at a sustained full framerate during this time.
IVRInput:
- Split GetPoseActionData into two functions
- GetPoseActionRelativeToNow - returns the data for the pose action for any time, given a relative number of seconds.
- GetPoseActionDataForNextFrame - returns the data for the pose action that matches the application's most recent call to WaitGetPoses
- Added a eSummaryType argument to GetSkeletalSummaryData - This allows applications to specify how much filtering should be applied to the data:
- VRSummaryType_FromAnimation - The data should match the animated transforms in the skeleton transforms. This data will probably be smoothed and may be more latent
- VRSummaryType_FromDevice - The data should be the unprocessed values from the device when available. This data may include more jitter but may be provided with less latency.
[git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 5123272]
v1.3.22
OpenVR SDK 1.3.22
General:
- Removed DLL exports in the static library version of openvr_api.dll
Driver Interface:
- Added Prop_AdditionalSystemReportData_String, which allows drivers to put additional information about its devices in the system report.
- Added VREvent_SystemReport_Started, which gives drivers the opportunity to log before a system report is generated.
- Added IVRServerDriverHost::RequestRestart, which allows a driver to request a restart with a message that will be shown to the user, and an optional executable to run.
IVROverlay:
- Added viewportscale to scroll events. This is the overlay's vertical size relative to the overlay height.
IVRInput:
- Added IsUsingLegacyInput, which returns true if the application is using legacy input.
[git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 5016734]
v1.2.10
OpenVR SDK v1.2.10:
General:
- Added new, more specific error messages for many compositor startup failures.
- Fix for IVRCompositor.GetFrameTimings C# binding (#1001)
- Added VRNotifications and VRIOBuffer C# accessors.
Event and Overlay changes:
- Scroll events have been split into two types. The first, VREvent_ScrollDiscrete, is meant for applications that are tuned to accept primarily detented mousewheel events, which replaces the previous VREvent_Scroll event. The second, VREvent_ScrollSmooth, is for applications that are tuned for more touchscreen-like, analog scrolling.
- VROverlayFlags have been updated to allow overlays to indicate their preferred scroll event type. The VROverlayFlags_SendVRDiscreteScrollEvents flag renames the VROverlayFlags_SendVRScrollEvents flag, and the overlay will receive VREvent_ScrollDiscrete events when this flag is set. The VROverlayFlags_SendVRSmoothScrollEvents flag is added, and the overlay's owning application will receive VREvent_ScrollSmooth events when this flag is set.
- VREvent_Input_BindingsUpdated is sent when a user has updated controller bindings using the system input binding UI.
IVRIOBuffer:
- Adds ability for writers to detect if an IOBuffer has readers (IVRIOBuffer::HasReaders), to avoid potentially expensive writing work
[git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 4926575]
v1.1.3b
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]
OpenVR SDK 1.1.3b:
- Fixed issue with EVRSkeletalTrackingLevel not being defined in openvr_driver.h
Fixes #947
[git-p4: depot-paths = "//vr/steamvr/sdk_release/": change = 4837752]