Skip to content

Commit 8129f36

Browse files
committed
Improvements: OpenVR 1.14.15 & FOV
1 parent 58afba9 commit 8129f36

File tree

16 files changed

+4310
-989
lines changed

16 files changed

+4310
-989
lines changed

OpenVR/FreeTrack/headers/openvr.h

Lines changed: 63 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
namespace vr
1616
{
1717
static const uint32_t k_nSteamVRVersionMajor = 1;
18-
static const uint32_t k_nSteamVRVersionMinor = 10;
19-
static const uint32_t k_nSteamVRVersionBuild = 30;
18+
static const uint32_t k_nSteamVRVersionMinor = 14;
19+
static const uint32_t k_nSteamVRVersionBuild = 15;
2020
} // namespace vr
2121

2222
// vrtypes.h
@@ -441,7 +441,7 @@ enum ETrackedDeviceProperty
441441
Prop_DriverProvidedChaperoneVisibility_Bool = 2076,
442442
Prop_HmdColumnCorrectionSettingPrefix_String = 2077,
443443
Prop_CameraSupportsCompatibilityModes_Bool = 2078,
444-
444+
Prop_SupportsRoomViewDepthProjection_Bool = 2079,
445445
Prop_DisplayAvailableFrameRates_Float_Array = 2080, // populated by compositor from actual EDID list when available from GPU driver
446446
Prop_DisplaySupportsMultipleFramerates_Bool = 2081, // if this is true but Prop_DisplayAvailableFrameRates_Float_Array is empty, explain to user
447447
Prop_DisplayColorMultLeft_Vector3 = 2082,
@@ -469,7 +469,8 @@ enum ETrackedDeviceProperty
469469

470470
Prop_Audio_DefaultPlaybackDeviceId_String = 2300,
471471
Prop_Audio_DefaultRecordingDeviceId_String = 2301,
472-
Prop_Audio_DefaultPlaybackDeviceVolume_Float = 2302,
472+
Prop_Audio_DefaultPlaybackDeviceVolume_Float = 2302,
473+
Prop_Audio_SupportsDualSpeakerAndJackOutput_Bool = 2303,
473474

474475
// Properties that are unique to TrackedDeviceClass_Controller
475476
Prop_AttachedDeviceId_String = 3000,
@@ -634,6 +635,9 @@ enum EVRSubmitFlags
634635
// Set to indicate a discontinuity between this and the last frame.
635636
// This will prevent motion smoothing from attempting to extrapolate using the pair.
636637
Submit_FrameDiscontinuty = 0x20,
638+
639+
// Set to indicate that pTexture->handle is a contains VRVulkanTextureArrayData_t
640+
Submit_VulkanTextureWithArrayData = 0x40,
637641
};
638642

639643
/** Data required for passing Vulkan textures to IVRCompositor::Submit.
@@ -650,6 +654,15 @@ struct VRVulkanTextureData_t
650654
uint32_t m_nWidth, m_nHeight, m_nFormat, m_nSampleCount;
651655
};
652656

657+
/** Data required for passing Vulkan texture arrays to IVRCompositor::Submit.
658+
* Be sure to call OpenVR_Shutdown before destroying these resources.
659+
* Please see https://github.com/ValveSoftware/openvr/wiki/Vulkan for Vulkan-specific documentation */
660+
struct VRVulkanTextureArrayData_t : public VRVulkanTextureData_t
661+
{
662+
uint32_t m_unArrayIndex;
663+
uint32_t m_unArraySize;
664+
};
665+
653666
/** Data required for passing D3D12 textures to IVRCompositor::Submit.
654667
* Be sure to call OpenVR_Shutdown before destroying these resources. */
655668
struct D3D12TextureData_t
@@ -746,7 +759,7 @@ enum EVREventType
746759
//VREvent_DashboardThumbSelected = 504, // Sent to the overlay manager - data is overlay - No longer sent
747760
VREvent_DashboardRequested = 505, // Sent to the overlay manager - data is overlay
748761
VREvent_ResetDashboard = 506, // Send to the overlay manager
749-
VREvent_RenderToast = 507, // Send to the dashboard to render a toast - data is the notification ID
762+
//VREvent_RenderToast = 507, // Send to the dashboard to render a toast - data is the notification ID -- no longer sent
750763
VREvent_ImageLoaded = 508, // Sent to overlays when a SetOverlayRaw or SetOverlayFromFile call finishes loading
751764
VREvent_ShowKeyboard = 509, // Sent to keyboard renderer in the dashboard to invoke it
752765
VREvent_HideKeyboard = 510, // Sent to keyboard renderer in the dashboard to hide it
@@ -772,6 +785,8 @@ enum EVREventType
772785
VREvent_RoomViewHidden = 527, // Sent by compositor whenever room-view is disabled
773786
VREvent_ShowUI = 528, // data is showUi
774787
VREvent_ShowDevTools = 529, // data is showDevTools
788+
VREvent_DesktopViewUpdating = 530,
789+
VREvent_DesktopViewReady = 531,
775790

776791
VREvent_Notification_Shown = 600,
777792
VREvent_Notification_Hidden = 601,
@@ -793,6 +808,7 @@ enum EVREventType
793808
VREvent_ChaperoneFlushCache = 805, // Sent when the process needs to reload any cached data it retrieved from VRChaperone()
794809
VREvent_ChaperoneRoomSetupStarting = 806, // Triggered by CVRChaperoneClient::RoomSetupStarting
795810
VREvent_ChaperoneRoomSetupFinished = 807, // Triggered by CVRChaperoneClient::CommitWorkingCopy
811+
VREvent_StandingZeroPoseReset = 808,
796812

797813
VREvent_AudioSettingsHaveChanged = 820,
798814

@@ -816,6 +832,8 @@ enum EVREventType
816832
VREvent_LastKnownSectionSettingChanged = 867,
817833
VREvent_DismissedWarningsSectionSettingChanged = 868,
818834
VREvent_GpuSpeedSectionSettingChanged = 869,
835+
VREvent_WindowsMRSectionSettingChanged = 870,
836+
VREvent_OtherSectionSettingChanged = 871,
819837

820838
VREvent_StatusUpdate = 900,
821839

@@ -1446,6 +1464,7 @@ enum EVRApplicationType
14461464
VRApplication_SteamWatchdog = 6,// Reserved for Steam
14471465
VRApplication_Bootstrapper = 7, // reserved for vrstartup
14481466
VRApplication_WebHelper = 8, // reserved for vrwebhelper
1467+
VRApplication_OpenXR = 9, // reserved for openxr
14491468

14501469
VRApplication_Max
14511470
};
@@ -2095,17 +2114,6 @@ class IVRSystem
20952114
*/
20962115
virtual void GetDeviceToAbsoluteTrackingPose( ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, VR_ARRAY_COUNT(unTrackedDevicePoseArrayCount) TrackedDevicePose_t *pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount ) = 0;
20972116

2098-
/** Sets the zero pose for the seated tracker coordinate system to the current position and yaw of the HMD. After
2099-
* ResetSeatedZeroPose all GetDeviceToAbsoluteTrackingPose calls that pass TrackingUniverseSeated as the origin
2100-
* will be relative to this new zero pose. The new zero coordinate system will not change the fact that the Y axis
2101-
* is up in the real world, so the next pose returned from GetDeviceToAbsoluteTrackingPose after a call to
2102-
* ResetSeatedZeroPose may not be exactly an identity matrix.
2103-
*
2104-
* NOTE: This function overrides the user's previously saved seated zero pose and should only be called as the result of a user action.
2105-
* Users are also able to set their seated zero pose via the OpenVR Dashboard.
2106-
**/
2107-
virtual void ResetSeatedZeroPose() = 0;
2108-
21092117
/** Returns the transform from the seated zero pose to the standing absolute tracking system. This allows
21102118
* applications to represent the seated origin to used or transform object positions from one coordinate
21112119
* system to the other.
@@ -2293,7 +2301,7 @@ class IVRSystem
22932301

22942302
};
22952303

2296-
static const char * const IVRSystem_Version = "IVRSystem_021";
2304+
static const char * const IVRSystem_Version = "IVRSystem_022";
22972305

22982306
}
22992307

@@ -2698,6 +2706,8 @@ namespace vr
26982706
static const char * const k_pch_SteamVR_CustomIconForceUpdate_String = "customIconForceUpdate";
26992707
static const char * const k_pch_SteamVR_AllowGlobalActionSetPriority = "globalActionSetPriority";
27002708
static const char * const k_pch_SteamVR_OverlayRenderQuality = "overlayRenderQuality_2";
2709+
static const char * const k_pch_SteamVR_BlockOculusSDKOnOpenVRLaunchOption_Bool = "blockOculusSDKOnOpenVRLaunchOption";
2710+
static const char * const k_pch_SteamVR_BlockOculusSDKOnAllLaunches_Bool = "blockOculusSDKOnAllLaunches";
27012711

27022712
//-----------------------------------------------------------------------------
27032713
// direct mode keys
@@ -2736,6 +2746,10 @@ namespace vr
27362746
static const char * const k_pch_Null_SecondsFromVsyncToPhotons_Float = "secondsFromVsyncToPhotons";
27372747
static const char * const k_pch_Null_DisplayFrequency_Float = "displayFrequency";
27382748

2749+
//-----------------------------------------------------------------------------
2750+
// Windows MR keys
2751+
static const char * const k_pch_WindowsMR_Section = "driver_holographic";
2752+
27392753
//-----------------------------------------------------------------------------
27402754
// user interface keys
27412755
static const char * const k_pch_UserInterface_Section = "userinterface";
@@ -2778,6 +2792,7 @@ namespace vr
27782792
static const char * const k_pch_CollisionBounds_CenterMarkerOn_Bool = "CollisionBoundsCenterMarkerOn";
27792793
static const char * const k_pch_CollisionBounds_PlaySpaceOn_Bool = "CollisionBoundsPlaySpaceOn";
27802794
static const char * const k_pch_CollisionBounds_FadeDistance_Float = "CollisionBoundsFadeDistance";
2795+
static const char * const k_pch_CollisionBounds_WallHeight_Float = "CollisionBoundsWallHeight";
27812796
static const char * const k_pch_CollisionBounds_ColorGammaR_Int32 = "CollisionBoundsColorGammaR";
27822797
static const char * const k_pch_CollisionBounds_ColorGammaG_Int32 = "CollisionBoundsColorGammaG";
27832798
static const char * const k_pch_CollisionBounds_ColorGammaB_Int32 = "CollisionBoundsColorGammaB";
@@ -2788,15 +2803,15 @@ namespace vr
27882803
// camera keys
27892804
static const char * const k_pch_Camera_Section = "camera";
27902805
static const char * const k_pch_Camera_EnableCamera_Bool = "enableCamera";
2791-
static const char * const k_pch_Camera_EnableCameraInDashboard_Bool = "enableCameraInDashboard";
2806+
static const char * const k_pch_Camera_ShowOnController_Bool = "showOnController";
27922807
static const char * const k_pch_Camera_EnableCameraForCollisionBounds_Bool = "enableCameraForCollisionBounds";
2793-
static const char * const k_pch_Camera_EnableCameraForRoomView_Bool = "enableCameraForRoomView";
2808+
static const char * const k_pch_Camera_RoomView_Int32 = "roomView";
27942809
static const char * const k_pch_Camera_BoundsColorGammaR_Int32 = "cameraBoundsColorGammaR";
27952810
static const char * const k_pch_Camera_BoundsColorGammaG_Int32 = "cameraBoundsColorGammaG";
27962811
static const char * const k_pch_Camera_BoundsColorGammaB_Int32 = "cameraBoundsColorGammaB";
27972812
static const char * const k_pch_Camera_BoundsColorGammaA_Int32 = "cameraBoundsColorGammaA";
27982813
static const char * const k_pch_Camera_BoundsStrength_Int32 = "cameraBoundsStrength";
2799-
static const char * const k_pch_Camera_RoomViewMode_Int32 = "cameraRoomViewMode";
2814+
static const char * const k_pch_Camera_RoomViewStyle_Int32 = "roomViewStyle";
28002815

28012816
//-----------------------------------------------------------------------------
28022817
// audio keys
@@ -2813,8 +2828,11 @@ namespace vr
28132828
static const char * const k_pch_audio_PlaybackMirrorDevice_String = "playbackMirrorDevice";
28142829
static const char * const k_pch_audio_PlaybackMirrorDeviceName_String = "playbackMirrorDeviceName";
28152830
static const char * const k_pch_audio_OldPlaybackMirrorDevice_String = "onPlaybackMirrorDevice";
2831+
static const char * const k_pch_audio_ActiveMirrorDevice_String = "activePlaybackMirrorDevice";
2832+
static const char * const k_pch_audio_EnablePlaybackMirrorIndependentVolume_Bool = "enablePlaybackMirrorIndependentVolume";
28162833
static const char * const k_pch_audio_LastHmdPlaybackDeviceId_String = "lastHmdPlaybackDeviceId";
28172834
static const char * const k_pch_audio_VIVEHDMIGain = "viveHDMIGain";
2835+
static const char * const k_pch_audio_DualSpeakerAndJackOutput_Bool = "dualSpeakerAndJackOutput";
28182836

28192837
//-----------------------------------------------------------------------------
28202838
// power management keys
@@ -2831,7 +2849,6 @@ namespace vr
28312849
static const char * const k_pch_Dashboard_Section = "dashboard";
28322850
static const char * const k_pch_Dashboard_EnableDashboard_Bool = "enableDashboard";
28332851
static const char * const k_pch_Dashboard_ArcadeMode_Bool = "arcadeMode";
2834-
static const char * const k_pch_Dashboard_UseWebSettings = "useWebSettings";
28352852
static const char * const k_pch_Dashboard_Position = "position";
28362853
static const char * const k_pch_Dashboard_DesktopScale = "desktopScale";
28372854
static const char * const k_pch_Dashboard_DashboardScale = "dashboardScale";
@@ -2870,6 +2887,7 @@ namespace vr
28702887
static const char* const k_pch_App_BindingPreviousURLSuffix_String = "PreviousURL";
28712888
static const char* const k_pch_App_NeedToUpdateAutosaveSuffix_Bool = "NeedToUpdateAutosave";
28722889
static const char* const k_pch_App_DominantHand_Int32 = "DominantHand";
2890+
static const char* const k_pch_App_BlockOculusSDK_Bool = "blockOculusSDK";
28732891

28742892
//-----------------------------------------------------------------------------
28752893
// configuration for trackers
@@ -2965,9 +2983,20 @@ class IVRChaperone
29652983

29662984
/** Force the bounds to show, mostly for utilities **/
29672985
virtual void ForceBoundsVisible( bool bForce ) = 0;
2986+
2987+
/** Sets the zero pose for the given tracker coordinate system to the current position and yaw of the HMD. After
2988+
* ResetZeroPose all GetDeviceToAbsoluteTrackingPose calls as the origin will be relative to this new zero pose.
2989+
* The new zero coordinate system will not change the fact that the Y axis is up in the real world, so the next
2990+
* pose returned from GetDeviceToAbsoluteTrackingPose after a call to ResetZeroPose may not be exactly an
2991+
* identity matrix.
2992+
*
2993+
* NOTE: This function overrides the user's previously saved zero pose and should only be called as the result of a user action.
2994+
* Users are also able to set their zero pose via the OpenVR Dashboard.
2995+
**/
2996+
virtual void ResetZeroPose( ETrackingUniverseOrigin eTrackingUniverseOrigin ) = 0;
29682997
};
29692998

2970-
static const char * const IVRChaperone_Version = "IVRChaperone_003";
2999+
static const char * const IVRChaperone_Version = "IVRChaperone_004";
29713000

29723001
#pragma pack( pop )
29733002

@@ -3033,7 +3062,7 @@ class IVRChaperoneSetup
30333062
/** Sets the Play Area in the working copy. */
30343063
virtual void SetWorkingPlayAreaSize( float sizeX, float sizeZ ) = 0;
30353064

3036-
/** Sets the Collision Bounds in the working copy. */
3065+
/** Sets the Collision Bounds in the working copy. Note: ceiling height is ignored. */
30373066
virtual void SetWorkingCollisionBoundsInfo( VR_ARRAY_COUNT(unQuadsCount) HmdQuad_t *pQuadsBuffer, uint32_t unQuadsCount ) = 0;
30383067

30393068
/** Sets the Collision Bounds in the working copy. */
@@ -4162,6 +4191,15 @@ enum EVRRenderModelError
41624191
VRRenderModelError_InvalidTexture = 400,
41634192
};
41644193

4194+
enum EVRRenderModelTextureFormat
4195+
{
4196+
VRRenderModelTextureFormat_RGBA8_SRGB = 0, // RGBA with 8 bits per channel per pixel. Data size is width * height * 4ub
4197+
VRRenderModelTextureFormat_BC2,
4198+
VRRenderModelTextureFormat_BC4,
4199+
VRRenderModelTextureFormat_BC7,
4200+
VRRenderModelTextureFormat_BC7_SRGB
4201+
};
4202+
41654203
/** A single vertex in a render model */
41664204
struct RenderModel_Vertex_t
41674205
{
@@ -4180,7 +4218,8 @@ struct RenderModel_Vertex_t
41804218
struct RenderModel_TextureMap_t
41814219
{
41824220
uint16_t unWidth, unHeight; // width and height of the texture map in pixels
4183-
const uint8_t *rubTextureMapData; // Map texture data. All textures are RGBA with 8 bits per channel per pixel. Data size is width * height * 4ub
4221+
const uint8_t *rubTextureMapData; // Map texture data.
4222+
EVRRenderModelTextureFormat format; // Refer to EVRRenderModelTextureFormat
41844223
};
41854224
#if defined(__linux__) || defined(__APPLE__)
41864225
#pragma pack( pop )

0 commit comments

Comments
 (0)