Skip to content

Commit

Permalink
OpenVR SDK 1.4.18
Browse files Browse the repository at this point in the history
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]
  • Loading branch information
JoeLudwig committed May 23, 2019
1 parent b72abce commit 02bc73b
Show file tree
Hide file tree
Showing 34 changed files with 424 additions and 79 deletions.
Binary file modified bin/linux32/libopenvr_api.so
Binary file not shown.
Binary file modified bin/linux32/libopenvr_api.so.dbg
Binary file not shown.
Binary file modified bin/linux64/libopenvr_api.so
Binary file not shown.
Binary file modified bin/linux64/libopenvr_api.so.dbg
Binary file not shown.
Binary file modified bin/osx32/libopenvr_api.dylib
Binary file not shown.
Binary file not shown.
Binary file modified bin/win32/openvr_api.dll
Binary file not shown.
Binary file modified bin/win32/openvr_api.pdb
Binary file not shown.
Binary file modified bin/win64/openvr_api.dll
Binary file not shown.
Binary file modified bin/win64/openvr_api.pdb
Binary file not shown.
75 changes: 57 additions & 18 deletions headers/openvr.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
namespace vr
{
static const uint32_t k_nSteamVRVersionMajor = 1;
static const uint32_t k_nSteamVRVersionMinor = 3;
static const uint32_t k_nSteamVRVersionBuild = 20;
static const uint32_t k_nSteamVRVersionMinor = 4;
static const uint32_t k_nSteamVRVersionBuild = 18;
} // namespace vr

// vrtypes.h
Expand Down Expand Up @@ -207,7 +207,7 @@ enum ETrackedControllerRole
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
TrackedControllerRole_Max = 5
};


Expand Down Expand Up @@ -430,6 +430,11 @@ enum ETrackedDeviceProperty
Prop_CameraDistortionCoefficients_Float_Array = 2073, // Prop_NumCameras_Int32-sized array of double[vr::k_unMaxDistortionFunctionParameters] (max size is vr::k_unMaxCameras)
Prop_ExpectedControllerType_String = 2074,

Prop_DisplayAvailableFrameRates_Float_Array = 2080, // populated by compositor from actual EDID list when available from GPU driver
Prop_DisplaySupportsMultipleFramerates_Bool = 2081, // if this is true but Prop_DisplayAvailableFrameRates_Float_Array is empty, explain to user

Prop_DashboardLayoutPathName_String = 2090,

// Driver requested mura correction properties
Prop_DriverRequestedMuraCorrectionMode_Int32 = 2200,
Prop_DriverRequestedMuraFeather_InnerLeft_Int32 = 2201,
Expand Down Expand Up @@ -490,7 +495,7 @@ enum ETrackedDeviceProperty

// Properties that are set internally based on other information provided by drivers
Prop_ControllerType_String = 7000,
Prop_LegacyInputProfile_String = 7001,
//Prop_LegacyInputProfile_String = 7001, // This is no longer used. See "legacy_binding" in the input profile instead.
Prop_ControllerHandSelectionPriority_Int32 = 7002, // Allows hand assignments to prefer some controllers over others. High numbers are selected over low numbers

// Vendors are free to expose private debug data in this reserved region
Expand Down Expand Up @@ -734,12 +739,14 @@ enum EVREventType
VREvent_DriverRequestedQuit = 704, // The driver has requested that SteamVR shut down
VREvent_RestartRequested = 705, // A driver or other component wants the user to restart SteamVR

VREvent_ChaperoneDataHasChanged = 800, // Sent when the process needs to call VRChaperone()->ReloadInfo()
VREvent_ChaperoneDataHasChanged = 800, // this will never happen with the new chaperone system
VREvent_ChaperoneUniverseHasChanged = 801,
VREvent_ChaperoneTempDataHasChanged = 802,
VREvent_ChaperoneTempDataHasChanged = 802, // this will never happen with the new chaperone system
VREvent_ChaperoneSettingsHaveChanged = 803,
VREvent_SeatedZeroPoseReset = 804,
VREvent_ChaperoneFlushCache = 805, // Sent when the process needs to reload any cached data it retrieved from VRChaperone()
VREvent_ChaperoneRoomSetupStarting = 806, // Triggered by CVRChaperoneClient::RoomSetupStarting
VREvent_ChaperoneRoomSetupFinished = 807, // Triggered by CVRChaperoneClient::CommitWorkingCopy

VREvent_AudioSettingsHaveChanged = 820,

Expand Down Expand Up @@ -794,6 +801,7 @@ enum EVREventType
VREvent_Compositor_HDCPError = 1414, // data is hdcpError
VREvent_Compositor_ApplicationNotResponding = 1415,
VREvent_Compositor_ApplicationResumed = 1416,
VREvent_Compositor_OutOfVideoMemory = 1417,

VREvent_TrackedCamera_StartVideoStream = 1500,
VREvent_TrackedCamera_StopVideoStream = 1501,
Expand Down Expand Up @@ -871,9 +879,9 @@ enum EVRButtonId

k_EButton_Dashboard_Back = k_EButton_Grip,

k_EButton_Knuckles_A = k_EButton_Grip,
k_EButton_Knuckles_B = k_EButton_ApplicationMenu,
k_EButton_Knuckles_JoyStick = k_EButton_Axis3,
k_EButton_IndexController_A = k_EButton_Grip,
k_EButton_IndexController_B = k_EButton_ApplicationMenu,
k_EButton_IndexController_JoyStick = k_EButton_Axis3,

k_EButton_Max = 64
};
Expand Down Expand Up @@ -1099,7 +1107,7 @@ enum EShowUIType
{
ShowUI_ControllerBinding = 0,
ShowUI_ManageTrackers = 1,
ShowUI_QuickStart = 2,
// ShowUI_QuickStart = 2, // Deprecated
ShowUI_Pairing = 3,
ShowUI_Settings = 4,
};
Expand Down Expand Up @@ -1428,7 +1436,7 @@ enum EVRSkeletalTrackingLevel

// 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
// E.g. Index Controllers, 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.
Expand Down Expand Up @@ -1505,6 +1513,7 @@ enum EVRInitError
VRInitError_Init_VRWebHelperStartupFailed = 141,
VRInitError_Init_TrackerManagerInitFailed = 142,
VRInitError_Init_AlreadyRunning = 143,
VRInitError_Init_FailedForVrMonitor = 144,

VRInitError_Driver_Failed = 200,
VRInitError_Driver_Unknown = 201,
Expand All @@ -1519,6 +1528,7 @@ enum EVRInitError
// VRInitError_Driver_HmdDisplayNotFoundAfterFix = 210, // not needed: here for historic reasons
VRInitError_Driver_HmdDriverIdOutOfBounds = 211,
VRInitError_Driver_HmdDisplayMirrored = 212,
VRInitError_Driver_HmdDisplayNotFoundLaptop = 213,

VRInitError_IPC_ServerInitFailed = 300,
VRInitError_IPC_ConnectFailed = 301,
Expand Down Expand Up @@ -2523,6 +2533,7 @@ namespace vr
static const char * const k_pch_SteamVR_ForceWindows32bitVRMonitor = "forceWindows32BitVRMonitor";
static const char * const k_pch_SteamVR_DebugInput = "debugInput";
static const char * const k_pch_SteamVR_DebugInputBinding = "debugInputBinding";
static const char * const k_pch_SteamVR_DoNotFadeToGrid = "doNotFadeToGrid";
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";
Expand Down Expand Up @@ -2551,6 +2562,7 @@ namespace vr
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_InactivityTimeoutForBaseStations_Int32 = "InactivityTimeoutForBaseStations";
static const char * const k_pch_Lighthouse_EnableImuFallback_Bool = "enableImuFallback";
static const char * const k_pch_Lighthouse_NewPairing_Bool = "newPairing";

Expand Down Expand Up @@ -2600,7 +2612,7 @@ namespace vr
static const char * const k_pch_Perf_AllowTimingStore_Bool = "allowTimingStore";
static const char * const k_pch_Perf_SaveTimingsOnExit_Bool = "saveTimingsOnExit";
static const char * const k_pch_Perf_TestData_Float = "perfTestData";
static const char * const k_pch_Perf_LinuxGPUProfiling_Bool = "linuxGPUProfiling";
static const char * const k_pch_Perf_GPUProfiling_Bool = "GPUProfiling";

//-----------------------------------------------------------------------------
// collision bounds keys
Expand Down Expand Up @@ -2867,6 +2879,11 @@ class IVRChaperoneSetup

/** Hides the chaperone data in the working set to preview in the compositor (if it was visible).*/
virtual void HideWorkingSetPreview() = 0;

/** Fire 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. */
virtual void RoomSetupStarting() = 0;
};

static const char * const IVRChaperoneSetup_Version = "IVRChaperoneSetup_006";
Expand Down Expand Up @@ -3201,6 +3218,13 @@ class IVRCompositor
* 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;

/** Indicates whether or not motion smoothing is supported by the current hardware. */
virtual bool IsMotionSmoothingSupported() = 0;

/** Indicates whether or not the current scene focus app is currently loading. This 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. */
virtual bool IsCurrentSceneFocusAppLoading() = 0;
};

static const char * const IVRCompositor_Version = "IVRCompositor_022";
Expand Down Expand Up @@ -4296,6 +4320,16 @@ namespace vr
VRFingerSplay_Count
};

enum EVRSummaryType
{
// The skeletal summary data will match the animated bone transforms for the action.
VRSummaryType_FromAnimation = 0,

// The skeletal summary data will include unprocessed data directly from the device when available.
// This data is generally less latent than the data that is computed from the animations.
VRSummaryType_FromDevice = 1,
};

enum EVRInputFilterCancelType
{
VRInputFilterCancel_Timers = 0,
Expand Down Expand Up @@ -4448,8 +4482,13 @@ namespace vr
* action is something other than analog */
virtual EVRInputError GetAnalogActionData( VRActionHandle_t action, InputAnalogActionData_t *pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice ) = 0;

/** Reads the state of a pose action given its handle. */
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 pose action given its handle for the number of seconds relative to now. This
* will generally be called with negative times from the fUpdateTime fields in other actions. */
virtual EVRInputError GetPoseActionDataRelativeToNow( VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, InputPoseActionData_t *pActionData, uint32_t unActionDataSize, VRInputValueHandle_t ulRestrictToDevice ) = 0;

/** Reads the state of a pose action given its handle. The returned values will match the values returned
* by the last call to IVRCompositor::WaitGetPoses(). */
virtual EVRInputError GetPoseActionDataForNextFrame( VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, 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 ) = 0;
Expand Down Expand Up @@ -4477,7 +4516,7 @@ namespace vr
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;
virtual EVRInputError GetSkeletalSummaryData( VRActionHandle_t action, EVRSummaryType eSummaryType, 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).
Expand Down Expand Up @@ -4514,7 +4553,7 @@ namespace vr
virtual bool IsUsingLegacyInput() = 0;
};

static const char * const IVRInput_Version = "IVRInput_005";
static const char * const IVRInput_Version = "IVRInput_006";

} // namespace vr

Expand Down Expand Up @@ -4656,8 +4695,8 @@ namespace vr
VR_INTERFACE bool VR_CALLTYPE VR_IsRuntimeInstalled();

/** Returns where the OpenVR runtime is installed. */
VR_INTERFACE const char *VR_CALLTYPE VR_RuntimePath();

VR_INTERFACE bool VR_GetRuntimePath( VR_OUT_STRING() char *pchPathBuffer, uint32_t unBufferSize, uint32_t *punRequiredBufferSize );
/** Returns the name of the enum value for an EVRInitError. This function may be called outside of VR_Init()/VR_Shutdown(). */
VR_INTERFACE const char *VR_CALLTYPE VR_GetVRInitErrorAsSymbol( EVRInitError error );

Expand Down

0 comments on commit 02bc73b

Please sign in to comment.