* fix recenter behavior

* temp fix issues

* increment version to dev

* Fix autosave profile initialization, fix openxr movement up/down, allow using space fix in openxr state

* adjusted logging to reduce spam

* removed unused variable

* added delay to openxr space drag to improve performance and stop ovr api calls

* add logging for debugging issues

* improved log verbage

* fix wrong fn call error

* typemismatch error fix

* add default frame bindings

* openXR space drag skip frames increased 3->5, performance still not great

* remove chaperone universe checking completely, we shouldn't need any features

* fix compiler warnings

* update version string to rel

* fix chaperone moving on recenter, fix log spam

* increment version and back to dev

* clarify log

* change to release

* fix openxr space drag issues

* remove commented code around openxr

* increment version

* change how desktop mode displays from URL to steam setting window

* updated openvr to 2.15.6

* increment version

* moved openxr fix to seated mode

* removed calibration state log calls, as without context they aren't particularly useful

* increment version 5.8.16

* remove uncessary logging

* switch keyboard over to instant input instead of buffered

* Fix Edge Cases around keyboard submit, remove permissive compile options

* increment version
This commit is contained in:
ykeara
2026-09-09 11:57:54 -05:00
committed by GitHub
parent 483a010fb8
commit 31df8b476b
25 changed files with 2538 additions and 336 deletions
+1 -1
View File
@@ -1 +1 @@
5.8.13-release
5.8.17-release
+1 -1
View File
@@ -9,4 +9,4 @@ warnings_as_errors {
QMAKE_CXXFLAGS += /GL
# Force standards-conformance
QMAKE_CXXFLAGS += /permissive-
# QMAKE_CXXFLAGS += /permissive-
+35 -4
View File
@@ -1235,17 +1235,39 @@ void OverlayController::mainEventLoop()
LOG( DEBUG ) << "Dashboard deactivated";
m_dashboardVisible = false;
settings::saveChangedSettings();
if(0UL != m_lastTextUID){
submitLastTextField(m_lastTextUID);
m_lastTextUID = 0;
}
}
break;
case vr::VREvent_KeyboardDone:
case vr::VREvent_HideKeyboard:
{
char keyboardBuffer[1024];
vr::VROverlay()->GetKeyboardText( keyboardBuffer, 1024 );
if(0UL != m_lastTextUID){
submitLastTextField(m_lastTextUID);
m_lastTextUID = 0;
}
}
break;
case vr::VREvent_KeyboardCharInput:
{
char keyboardBuffer[64];
vr::VROverlay()->GetKeyboardText( keyboardBuffer, 64 );
emit keyBoardInputSignal( QString( keyboardBuffer ),
static_cast<unsigned long>(
vrEvent.data.keyboard.uUserValue ) );
m_lastTextUID = static_cast<unsigned long>(vrEvent.data.keyboard.uUserValue);
}
// case vr::VREvent_KeyboardDone:
// {
// char keyboardBuffer[1024];
// vr::VROverlay()->GetKeyboardText( keyboardBuffer, 1024 );
// emit keyBoardInputSignal( QString( keyboardBuffer ),
// static_cast<unsigned long>(
// vrEvent.data.keyboard.uUserValue ) );
// }
break;
case vr::VREvent_SeatedZeroPoseReset:
@@ -1572,11 +1594,20 @@ const vr::VROverlayHandle_t& OverlayController::overlayThumbnailHandle()
void OverlayController::showKeyboard( QString existingText,
unsigned long userValue )
{
// vr::VROverlay()->ShowKeyboardForOverlay(
// m_ulOverlayHandle,
// vr::k_EGamepadTextInputModeNormal,
// vr::k_EGamepadTextInputLineModeSingleLine,
// 0,
// "Advanced Settings Overlay",
// 1024,
// existingText.toStdString().c_str(),
// userValue );
vr::VROverlay()->ShowKeyboardForOverlay(
m_ulOverlayHandle,
vr::k_EGamepadTextInputModeNormal,
vr::k_EGamepadTextInputLineModeSingleLine,
0,
vr::KeyboardFlag_Modal+vr::KeyboardFlag_Minimal+vr::KeyboardFlag_HideDoneKey,
"Advanced Settings Overlay",
1024,
existingText.toStdString().c_str(),
+2 -1
View File
@@ -1,5 +1,4 @@
#pragma once
#include <openvr.h>
#include <QtCore/QtCore>
// because of incompatibilities with QtOpenGL and GLEW we need to cherry pick
@@ -131,6 +130,7 @@ private:
QString m_updateMessage = "";
QString m_optionalMessage = "";
QString m_versionCheckText = "";
unsigned long m_lastTextUID = 0;
QUrl m_runtimePathUrl;
@@ -293,6 +293,7 @@ signals:
void autoApplyChaperoneEnabledChanged( bool value );
void soundVolumeChanged( double value );
void desktopModeToggleChanged( bool value );
void submitLastTextField(unsigned long value = 0);
};
} // namespace advsettings
+48 -5
View File
@@ -5,6 +5,7 @@ import ovras.advsettings 1.0
TextField {
property int keyBoardUID: 0
property string savedText: ""
property bool active: false
id: myTextField
color: "#d9dbe0"
text: ""
@@ -18,19 +19,25 @@ TextField {
}
onClicked: {
myTextField.forceActiveFocus()
active = true;
}
}
onActiveFocusChanged: {
if (activeFocus) {
active = true;
if (!OverlayController.desktopMode) {
OverlayController.showKeyboard(text, keyBoardUID)
} else {
savedText = text
}
//savedText = text
}
//When box loses focus apply changes
else{
myTextField.onInputEvent(text)
active = false;
}
}
onEditingFinished: {
if (OverlayController.desktopMode && savedText !== text) {
if(OverlayController.desktopMode){
myTextField.onInputEvent(text)
}
}
@@ -39,11 +46,47 @@ TextField {
}
Connections {
target: OverlayController
onSubmitLastTextField:{
//value here is UID
if(value == 0){
active = false;
return;
}
if(value == keyBoardUID && active == true){
myTextField.onInputEvent(text)
active = false;
}
}
onKeyBoardInputSignal: {
if (userValue == keyBoardUID) {
if (myTextField.text !== input) {
myTextField.onInputEvent(input)
if(input == '\b'){
myTextField.text = text.slice(0,-1)
return
}
else if(input == '\e'){
myTextField.text = text.slice(0,cursorPosition)+text.slice(cursorposition+1)
return;
}
//Execute input
else if(input == '\n'){
if(!OverlayController.desktopMode){
//myTextField.onInputEvent(input)
myTextField.focus = false;
}
return;
}
else if(input=='\r'){
return;
}
else{
myTextField.text = text + input;
}
//if (myTextField.text !== input) {
// myTextField.onInputEvent(input)
//}
}
}
}
+17 -31
View File
@@ -274,10 +274,11 @@ void MoveCenterTabController::setTrackingUniverse( int value, bool notify )
if ( m_trackingUniverse != value )
{
vr::VRChaperoneSetup()->HideWorkingSetPreview();
if ( !m_roomSetupModeDetected && value == vr::TrackingUniverseStanding )
{
reset();
}
//TODO verify
// if ( !m_roomSetupModeDetected && value == vr::TrackingUniverseStanding )
// {
// reset();
// }
m_trackingUniverse = value;
if ( notify )
@@ -914,20 +915,15 @@ void MoveCenterTabController::incomingZeroReset()
// aspects) IN mixed tracking environments I get this issue, the check if
// there is an error and apply autosaved profile is hopefully a workaround
//This should catch OpenXR games, and helps prevent a loop on zero resets.
if(m_trackingUniverse==vr::TrackingUniverseRawAndUncalibrated){
return;
}
auto calState = vr::VRChaperone()->GetCalibrationState();
LOG( INFO ) << "Calibration State on Recenter is: " << calState;
//Any Logging should be handled after openXR check to avoid spam;
//auto calState = vr::VRChaperone()->GetCalibrationState();
//LOG( INFO ) << "Calibration State on Recenter is: " << calState;
//TODO 8/3/2026 SteamFrame May Need special handling, will discuss With Valve currently
//reset zero pose seems to move floor level as well as our changes, requiring 2 resets to set at correct level
//or we could potentially not apply our offset during this process
float offset[3] = { 0, 0, 0 };
offset[1] = -m_offsetY;
//TODO set universe center and seated recenter as 0 for this part
vr::VRChaperoneSetup()->RevertWorkingCopy();
vr::VRChaperoneSetup()->GetWorkingStandingZeroPoseToRawTrackingPose(
&m_universeCenterForReset );
@@ -939,12 +935,14 @@ void MoveCenterTabController::incomingZeroReset()
return;
}
//TODO 9/4/26 This needs to be looked at This moves the chaperone, and seems to do same thing as
//zerooffsets....
void MoveCenterTabController::reset()
{
// DO NOT attempt to apply autosaved profile on reset, as it is triggered by
// the apply chaperone profile Side effects are bad!
auto calState = vr::VRChaperone()->GetCalibrationState();
LOG( INFO ) << "Calibration State on Reset is: " << calState;
//auto calState = vr::VRChaperone()->GetCalibrationState();
//LOG( INFO ) << "Calibration State on Reset is: " << calState;
if ( !m_chaperoneBasisAcquired )
{
@@ -1146,7 +1144,7 @@ void MoveCenterTabController::zeroOffsets()
m_roomSetupModeDetected = false;
}
LOG( INFO ) << "SUCCESS: Chaperone Data Updated and Offsets zeroed out";
//LOG( INFO ) << "SUCCESS: Chaperone Data Updated and Offsets zeroed out";
}
void MoveCenterTabController::sendSeatedRecenter()
@@ -1893,8 +1891,9 @@ void MoveCenterTabController::resetOffsets( bool resetOffsetsJustPressed )
emit offsetZChanged( m_offsetZ );
emit rotationChanged( m_rotation );
updateSpace( true );
auto calState = vr::VRChaperone()->GetCalibrationState();
LOG( INFO ) << "Calibration State on Reset Offsets is: " << calState;
//auto calState = vr::VRChaperone()->GetCalibrationState();
//LOG( INFO ) << "Calibration State on Reset Offsets is: " << calState;
// if ( calState > 199 && m_initComplete )
// {
@@ -2623,7 +2622,7 @@ void MoveCenterTabController::updateSpace( bool forceUpdate )
}
// keep the seated origin synced with offsets if in seated mode
if ( m_trackingUniverse == vr::TrackingUniverseSeated )
if ( m_trackingUniverse == vr::TrackingUniverseSeated || m_trackingUniverse == vr::TrackingUniverseRawAndUncalibrated )
{
vr::HmdMatrix34_t offsetSeatedCenter;
@@ -2708,19 +2707,6 @@ void MoveCenterTabController::updateSpace( bool forceUpdate )
vr::VRChaperoneSetup()->SetWorkingStandingZeroPoseToRawTrackingPose(
&offsetUniverseCenter );
//openxr
//In OpenXR titles commitworkingcopy essentially causes zero resets, this is too much work, and causes lag
//As such we will update every third frame for OpenXR titles, this should be reasonably responsive.
//We may have to re-visit or make user adjustable
if(m_trackingUniverse==vr::TrackingUniverseRawAndUncalibrated){
m_openXRSkip++;
if(m_openXRSkip % 5==0){
vr::VRChaperoneSetup()->CommitWorkingCopy(
vr::EChaperoneConfigFile_Live );
m_openXRSkip = 0;
}
}
//This is what actually throws you into the "working set" instead of live.
vr::VRChaperoneSetup()->ShowWorkingSetPreview();
if ( m_collisionBoundsCountForReset > 0 )
+3 -4
View File
@@ -507,14 +507,13 @@ void SteamVRTabController::launchBindingUI()
LOG( ERROR )
<< "failed to get input handle? is your right controller on?";
}
bool desktopShow = false;
if ( parent->isDesktopMode() )
{
QDesktopServices::openUrl(
QUrl( "http://127.0.0.1:27062/dashboard/controllerbinding.html" ) );
return;
desktopShow = true;
}
auto error = vr::VRInput()->OpenBindingUI(
application_strings::applicationKey, actionHandle, inputHandle, false );
application_strings::applicationKey, actionHandle, inputHandle, desktopShow );
if ( error != vr::VRInputError_None )
{
LOG( ERROR ) << "Input Error: " << error;
+14 -2
View File
@@ -8,6 +8,18 @@ and samples. The runtime is under SteamVR in Tools on Steam.
### Documentation
Documentation for the API is available on the [Github Wiki](https://github.com/ValveSoftware/openvr/wiki/API-Documentation)
#### Application API
More information on OpenVR and SteamVR can be found on http://steamvr.com
Documentation for the Application API is available on
the [GitHub Wiki](https://github.com/ValveSoftware/openvr/wiki/API-Documentation).
#### Driver API
Current documentation for the Driver API can be found in [docs/Driver_API_Documentation.md](docs/).
* Old driver API documentation can still be found on
the [GitHub Wiki](https://github.com/ValveSoftware/openvr/wiki/Driver-Documentation).
### About
More information on OpenVR and SteamVR can be found on https://steamvr.com
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+507 -66
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+266 -19
View File
@@ -74,6 +74,7 @@ typedef double vrshared_double;
// OpenVR Constants
static const unsigned long MaxDmabufPlaneCount = 4;
static const unsigned long k_nDriverNone = 4294967295;
static const unsigned long k_unMaxDriverDebugResponseSize = 32768;
static const unsigned long k_unTrackedDeviceIndex_Hmd = 0;
@@ -112,25 +113,26 @@ static const unsigned long k_unMaxPropertyStringSize = 32768;
static const unsigned long long k_ulInvalidActionHandle = 0;
static const unsigned long long k_ulInvalidActionSetHandle = 0;
static const unsigned long long k_ulInvalidInputValueHandle = 0;
static const unsigned long long k_ulInvalidInputComponentHandle = 0;
static const unsigned long k_unControllerStateAxisCount = 5;
static const unsigned long long k_ulOverlayHandleInvalid = 0;
static const unsigned long k_unMaxDistortionFunctionParameters = 8;
static const unsigned long k_unScreenshotHandleInvalid = 0;
static const char * IVRSystem_Version = "IVRSystem_022";
static const char * IVRSystem_Version = "IVRSystem_026";
static const char * IVRExtendedDisplay_Version = "IVRExtendedDisplay_001";
static const char * IVRTrackedCamera_Version = "IVRTrackedCamera_006";
static const unsigned long 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_007";
static const char * IVRApplications_Version = "IVRApplications_008";
static const char * IVRChaperone_Version = "IVRChaperone_004";
static const char * IVRChaperoneSetup_Version = "IVRChaperoneSetup_006";
static const char * IVRCompositor_Version = "IVRCompositor_027";
static const char * IVRCompositor_Version = "IVRCompositor_029";
static const unsigned long k_unVROverlayMaxKeyLength = 128;
static const unsigned long k_unVROverlayMaxNameLength = 128;
static const unsigned long k_unMaxOverlayCount = 128;
static const unsigned long k_unMaxOverlayIntersectionMaskPrimitivesCount = 32;
static const char * IVROverlay_Version = "IVROverlay_027";
static const char * IVROverlay_Version = "IVROverlay_028";
static const char * IVROverlayView_Version = "IVROverlayView_003";
static const unsigned long k_unHeadsetViewMaxWidth = 3840;
static const unsigned long k_unHeadsetViewMaxHeight = 2160;
@@ -139,7 +141,10 @@ static const char * IVRHeadsetView_Version = "IVRHeadsetView_001";
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";
static const char * k_pch_Controller_Component_OpenXR_Aim = "openxr_aim";
static const char * k_pch_Controller_Component_HandGrip = "handgrip";
static const char * k_pch_Controller_Component_OpenXR_Grip = "openxr_grip";
static const char * k_pch_Controller_Component_OpenXR_HandModel = "openxr_handmodel";
static const char * k_pch_Controller_Component_Status = "status";
static const char * IVRRenderModels_Version = "IVRRenderModels_006";
static const unsigned long k_unNotificationTextMaxSize = 256;
@@ -147,6 +152,7 @@ static const char * IVRNotifications_Version = "IVRNotifications_002";
static const unsigned long k_unMaxSettingsKeyLength = 128;
static const char * IVRSettings_Version = "IVRSettings_003";
static const char * k_pch_SteamVR_Section = "steamvr";
static const char * k_pch_SteamVR_Contrast_Float = "contrast";
static const char * k_pch_SteamVR_RequireHmd_String = "requireHmd";
static const char * k_pch_SteamVR_ForcedDriverKey_String = "forcedDriver";
static const char * k_pch_SteamVR_ForcedHmdKey_String = "forcedHmd";
@@ -164,6 +170,7 @@ static const char * k_pch_SteamVR_BackgroundDomeRadius_Float = "backgroundDomeRa
static const char * k_pch_SteamVR_GridColor_String = "gridColor";
static const char * k_pch_SteamVR_PlayAreaColor_String = "playAreaColor";
static const char * k_pch_SteamVR_TrackingLossColor_String = "trackingLossColor";
static const char * k_pch_SteamVR_StartColor_String = "startColor";
static const char * k_pch_SteamVR_ShowStage_Bool = "showStage";
static const char * k_pch_SteamVR_DrawTrackingReferences_Bool = "drawTrackingReferences";
static const char * k_pch_SteamVR_ActivateMultipleDrivers_Bool = "activateMultipleDrivers";
@@ -176,10 +183,17 @@ static const char * k_pch_SteamVR_SupersampleScale_Float = "supersampleScale";
static const char * k_pch_SteamVR_MaxRecommendedResolution_Int32 = "maxRecommendedResolution";
static const char * k_pch_SteamVR_MotionSmoothing_Bool = "motionSmoothing";
static const char * k_pch_SteamVR_MotionSmoothingOverride_Int32 = "motionSmoothingOverride";
static const char * k_pch_SteamVR_FoveatedSharpening_Bool = "sharpening";
static const char * k_pch_SteamVR_FoveatedSharpeningOverride_Int32 = "sharpeningOverride";
static const char * k_pch_SteamVR_FramesToThrottle_Int32 = "framesToThrottle";
static const char * k_pch_SteamVR_AdditionalFramesToPredict_Int32 = "additionalFramesToPredict";
static const char * k_pch_SteamVR_WorldScale_Float = "worldScale";
static const char * k_pch_SteamVR_FovScale_Int32 = "fovScale";
static const char * k_pch_SteamVR_FovScaleInner_Int32 = "fovScaleInner";
static const char * k_pch_SteamVR_FovScaleUpper_Int32 = "fovScaleUpper";
static const char * k_pch_SteamVR_FovScaleLower_Int32 = "fovScaleLower";
static const char * k_pch_SteamVR_FovScaleFormat_Int32 = "fovScaleFormat";
static const char * k_pch_SteamVR_FovScaleLetterboxed_Bool = "fovScaleLetterboxed";
static const char * k_pch_SteamVR_DisableAsyncReprojection_Bool = "disableAsync";
static const char * k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking";
static const char * k_pch_SteamVR_DefaultMirrorView_Int32 = "mirrorView";
@@ -203,7 +217,6 @@ static const char * k_pch_SteamVR_SupersampleManualOverride_Bool = "supersampleM
static const char * k_pch_SteamVR_EnableLinuxVulkanAsync_Bool = "enableLinuxVulkanAsync";
static const char * k_pch_SteamVR_AllowDisplayLockedMode_Bool = "allowDisplayLockedMode";
static const char * k_pch_SteamVR_HaveStartedTutorialForNativeChaperoneDriver_Bool = "haveStartedTutorialForNativeChaperoneDriver";
static const char * k_pch_SteamVR_ForceWindows32bitVRMonitor = "forceWindows32BitVRMonitor";
static const char * k_pch_SteamVR_DebugInputBinding = "debugInputBinding";
static const char * k_pch_SteamVR_DoNotFadeToGrid = "doNotFadeToGrid";
static const char * k_pch_SteamVR_EnableSharedResourceJournaling = "enableSharedResourceJournaling";
@@ -224,6 +237,10 @@ static const char * k_pch_SteamVR_BlockOculusSDKOnAllLaunches_Bool = "blockOculu
static const char * k_pch_SteamVR_HDCPLegacyCompatibility_Bool = "hdcp14legacyCompatibility";
static const char * k_pch_SteamVR_DisplayPortTrainingMode_Int = "displayPortTrainingMode";
static const char * k_pch_SteamVR_UsePrism_Bool = "usePrism";
static const char * k_pch_SteamVR_AllowFallbackMirrorWindowLinux_Bool = "allowFallbackMirrorWindowLinux";
static const char * k_pch_SteamVR_DisableKeyboardPrivacy_Bool = "disableKeyboardPrivacy";
static const char * k_pch_OpenXR_Section = "openxr";
static const char * k_pch_OpenXR_MetaUnityPluginCompatibility_Int32 = "metaUnityPluginCompatibility";
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";
@@ -259,6 +276,8 @@ static const char * k_pch_UserInterface_MinimizeToTray_Bool = "MinimizeToTray";
static const char * k_pch_UserInterface_HidePopupsWhenStatusMinimized_Bool = "HidePopupsWhenStatusMinimized";
static const char * k_pch_UserInterface_Screenshots_Bool = "screenshots";
static const char * k_pch_UserInterface_ScreenshotType_Int = "screenshotType";
static const char * k_pch_UserInterface_CheckStatusInterval_Int = "vrmStatusCheckInterval";
static const char * k_pch_UserInterface_CheckForSteam_Bool = "vrmCheckForSteam";
static const char * k_pch_Notifications_Section = "notifications";
static const char * k_pch_Notifications_DoNotDisturb_Bool = "DoNotDisturb";
static const char * k_pch_Keyboard_Section = "keyboard";
@@ -325,19 +344,24 @@ static const char * k_pch_Power_TurnOffControllersTimeout_Float = "turnOffContro
static const char * k_pch_Power_ReturnToWatchdogTimeout_Float = "returnToWatchdogTimeout";
static const char * k_pch_Power_AutoLaunchSteamVROnButtonPress = "autoLaunchSteamVROnButtonPress";
static const char * k_pch_Power_PauseCompositorOnStandby_Bool = "pauseCompositorOnStandby";
static const char * k_pch_Power_OverrideWindowsPowerScheme_Bool = "overrideWindowsPowerScheme";
static const char * k_pch_Dashboard_Section = "dashboard";
static const char * k_pch_Dashboard_EnableDashboard_Bool = "enableDashboard";
static const char * k_pch_Dashboard_ArcadeMode_Bool = "arcadeMode";
static const char * k_pch_Dashboard_Position = "position";
static const char * k_pch_Dashboard_DesktopScale = "desktopScale";
static const char * k_pch_Dashboard_DashboardScale = "dashboardScale";
static const char * k_pch_Dashboard_UseStandaloneSystemLayer = "standaloneSystemLayer";
static const char * k_pch_Dashboard_StickyDashboard = "stickyDashboard";
static const char * k_pch_Dashboard_AllowSteamOverlays_Bool = "allowSteamOverlays";
static const char * k_pch_Dashboard_AllowVRGamepadUI_Bool = "allowVRGamepadUI";
static const char * k_pch_Dashboard_SteamMatchesHMDFramerate = "steamMatchesHMDFramerate";
static const char * k_pch_Dashboard_GrabHandleAcceleration = "grabHandleAcceleration";
static const char * k_pch_Dashboard_OverlayBacksideColor_String = "overlayBacksideColor";
static const char * k_pch_modelskin_Section = "modelskins";
static const char * k_pch_Driver_Enable_Bool = "enable";
static const char * k_pch_Driver_BlockedBySafemode_Bool = "blocked_by_safe_mode";
static const char * k_pch_Driver_LoadPriority_Int32 = "loadPriority";
static const char * k_pch_Driver_Hmd_AllowsClientToControlTextureIndex_Bool = "hmdAllowsClientToControlTextureIndex";
static const char * k_pch_Driver_ForceSystemLayerUseAppPoses_Bool = "forceSystemLayerUseAppPoses";
static const char * k_pch_WebInterface_Section = "WebInterface";
static const char * k_pch_VRWebHelper_Section = "VRWebHelper";
static const char * k_pch_VRWebHelper_DebuggerEnabled_Bool = "DebuggerEnabled";
@@ -357,12 +381,16 @@ 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 * k_pch_LastKnown_ActualHMDDriver_String = "ActualHMDDriver";
static const char * k_pch_LastKnown_HMDSerialNumber_String = "HMDSerialNumber";
static const char * k_pch_LastKnown_HMDRemoteClientID_String = "RemoteClientID";
static const char * k_pch_DismissedWarnings_Section = "DismissedWarnings";
static const char * k_pch_Input_Section = "input";
static const char * k_pch_Input_LeftThumbstickRotation_Float = "leftThumbstickRotation";
static const char * k_pch_Input_RightThumbstickRotation_Float = "rightThumbstickRotation";
static const char * k_pch_Input_ThumbstickDeadzone_Float = "thumbstickDeadzone";
static const char * k_pch_GpuSpeed_Section = "GpuSpeed";
static const char * k_pch_XRRenderModelCache_Section = "XRRenderModelUuidCache";
static const char * IVRScreenshots_Version = "IVRScreenshots_001";
static const char * IVRResources_Version = "IVRResources_001";
static const char * IVRDriverManager_Version = "IVRDriverManager_001";
@@ -373,12 +401,16 @@ static const unsigned long k_unMaxBoneNameLength = 32;
static const int k_nActionSetOverlayGlobalPriorityMin = 16777216;
static const int k_nActionSetOverlayGlobalPriorityMax = 33554431;
static const int k_nActionSetPriorityReservedMin = 33554432;
static const char * IVRInput_Version = "IVRInput_010";
static const char * IVRInput_Version = "IVRInput_011";
static const unsigned long long k_ulInvalidIOBufferHandle = 0;
static const char * IVRIOBuffer_Version = "IVRIOBuffer_002";
static const unsigned long k_ulInvalidSpatialAnchorHandle = 0;
static const char * IVRSpatialAnchors_Version = "IVRSpatialAnchors_001";
static const char * IVRDebug_Version = "IVRDebug_001";
static const char * IVRIPCResourceManagerClient_Version = "IVRIPCResourceManagerClient_003";
static const unsigned long k_nSteamVRVersionMajor = 2;
static const unsigned long k_nSteamVRVersionMinor = 15;
static const unsigned long k_nSteamVRVersionBuild = 6;
static const unsigned long long k_ulDisplayRedirectContainer = 25769803779;
static const char * IVRProperties_Version = "IVRProperties_001";
static const char * k_pchPathUserHandRight = "/user/hand/right";
@@ -424,7 +456,7 @@ static const char * k_pchPathUserCamera = "/user/camera";
static const char * k_pchPathUserKeyboard = "/user/keyboard";
static const char * k_pchPathClientAppKey = "/client_info/app_key";
static const unsigned long long k_ulInvalidPathHandle = 0;
static const char * IVRPaths_Version = "IVRPaths_001";
static const char * IVRPaths_Version = "IVRPaths_002";
static const char * IVRBlockQueue_Version = "IVRBlockQueue_005";
// OpenVR Enums
@@ -445,6 +477,8 @@ typedef enum ETextureType
ETextureType_TextureType_DirectX12 = 4,
ETextureType_TextureType_DXGISharedHandle = 5,
ETextureType_TextureType_Metal = 6,
ETextureType_TextureType_Reserved = 7,
ETextureType_TextureType_SharedTextureHandle = 8,
} ETextureType;
typedef enum EColorSpace
@@ -558,12 +592,19 @@ typedef enum ETrackedDeviceProperty
ETrackedDeviceProperty_Prop_EstimatedDeviceFirstUseTime_Int32 = 1051,
ETrackedDeviceProperty_Prop_DevicePowerUsage_Float = 1052,
ETrackedDeviceProperty_Prop_IgnoreMotionForStandby_Bool = 1053,
ETrackedDeviceProperty_Prop_ActualTrackingSystemName_String = 1054,
ETrackedDeviceProperty_Prop_AllowCameraToggle_Bool = 1055,
ETrackedDeviceProperty_Prop_AllowLightSourceFrequency_Bool = 1056,
ETrackedDeviceProperty_Prop_SteamRemoteClientID_Uint64 = 1057,
ETrackedDeviceProperty_Prop_Reserved_1058 = 1058,
ETrackedDeviceProperty_Prop_Reserved_1059 = 1059,
ETrackedDeviceProperty_Prop_Reserved_1060 = 1060,
ETrackedDeviceProperty_Prop_ReportsTimeSinceVSync_Bool = 2000,
ETrackedDeviceProperty_Prop_SecondsFromVsyncToPhotons_Float = 2001,
ETrackedDeviceProperty_Prop_DisplayFrequency_Float = 2002,
ETrackedDeviceProperty_Prop_UserIpdMeters_Float = 2003,
ETrackedDeviceProperty_Prop_CurrentUniverseId_Uint64 = 2004,
ETrackedDeviceProperty_Prop_PreviousUniverseId_Uint64 = 2005,
ETrackedDeviceProperty_Prop_PreviousUniverseId_Uint64_deprecated = 0,
ETrackedDeviceProperty_Prop_DisplayFirmwareVersion_Uint64 = 2006,
ETrackedDeviceProperty_Prop_IsOnDesktop_Bool = 2007,
ETrackedDeviceProperty_Prop_DisplayMCType_Int32 = 2008,
@@ -646,10 +687,12 @@ typedef enum ETrackedDeviceProperty
ETrackedDeviceProperty_Prop_CameraExposureTime_Float = 2088,
ETrackedDeviceProperty_Prop_CameraGlobalGain_Float = 2089,
ETrackedDeviceProperty_Prop_DashboardScale_Float = 2091,
ETrackedDeviceProperty_Prop_PeerButtonInfo_String = 2092,
ETrackedDeviceProperty_Prop_Hmd_SupportsHDR10_Bool = 2093,
ETrackedDeviceProperty_Prop_Hmd_EnableParallelRenderCameras_Bool = 2094,
ETrackedDeviceProperty_Prop_DriverProvidedChaperoneJson_String = 2095,
ETrackedDeviceProperty_Prop_ForceSystemLayerUseAppPoses_Bool = 2096,
ETrackedDeviceProperty_Prop_DashboardLinkSupport_Int32 = 2097,
ETrackedDeviceProperty_Prop_DisplayMinUIAnalogGain_Float = 2098,
ETrackedDeviceProperty_Prop_IpdUIRangeMinMeters_Float = 2100,
ETrackedDeviceProperty_Prop_IpdUIRangeMaxMeters_Float = 2101,
ETrackedDeviceProperty_Prop_Hmd_SupportsHDCP14LegacyCompat_Bool = 2102,
@@ -658,9 +701,15 @@ typedef enum ETrackedDeviceProperty
ETrackedDeviceProperty_Prop_Hmd_SupportsRoomViewDirect_Bool = 2105,
ETrackedDeviceProperty_Prop_Hmd_SupportsAppThrottling_Bool = 2106,
ETrackedDeviceProperty_Prop_Hmd_SupportsGpuBusMonitoring_Bool = 2107,
ETrackedDeviceProperty_Prop_DSCVersion_Int32 = 2110,
ETrackedDeviceProperty_Prop_DSCSliceCount_Int32 = 2111,
ETrackedDeviceProperty_Prop_DSCBPPx16_Int32 = 2112,
ETrackedDeviceProperty_Prop_DriverDisplaysIPDChanges_Bool = 2108,
ETrackedDeviceProperty_Prop_Reserved_2110 = 2110,
ETrackedDeviceProperty_Prop_Reserved_2111 = 2111,
ETrackedDeviceProperty_Prop_Reserved_2112 = 2112,
ETrackedDeviceProperty_Prop_Hmd_MaxDistortedTextureWidth_Int32 = 2113,
ETrackedDeviceProperty_Prop_Hmd_MaxDistortedTextureHeight_Int32 = 2114,
ETrackedDeviceProperty_Prop_Hmd_AllowSupersampleFiltering_Bool = 2115,
ETrackedDeviceProperty_Prop_Hmd_AllowsClientToControlTextureIndex = 2116,
ETrackedDeviceProperty_Prop_Reserved_2117 = 2117,
ETrackedDeviceProperty_Prop_DriverRequestedMuraCorrectionMode_Int32 = 2200,
ETrackedDeviceProperty_Prop_DriverRequestedMuraFeather_InnerLeft_Int32 = 2201,
ETrackedDeviceProperty_Prop_DriverRequestedMuraFeather_InnerRight_Int32 = 2202,
@@ -674,6 +723,14 @@ typedef enum ETrackedDeviceProperty
ETrackedDeviceProperty_Prop_Audio_DefaultRecordingDeviceId_String = 2301,
ETrackedDeviceProperty_Prop_Audio_DefaultPlaybackDeviceVolume_Float = 2302,
ETrackedDeviceProperty_Prop_Audio_SupportsDualSpeakerAndJackOutput_Bool = 2303,
ETrackedDeviceProperty_Prop_Audio_DriverManagesPlaybackVolumeControl_Bool = 2304,
ETrackedDeviceProperty_Prop_Audio_DriverPlaybackVolume_Float = 2305,
ETrackedDeviceProperty_Prop_Audio_DriverPlaybackMute_Bool = 2306,
ETrackedDeviceProperty_Prop_Audio_DriverManagesRecordingVolumeControl_Bool = 2307,
ETrackedDeviceProperty_Prop_Audio_DriverRecordingVolume_Float = 2308,
ETrackedDeviceProperty_Prop_Audio_DriverRecordingMute_Bool = 2309,
ETrackedDeviceProperty_Prop_Audio_PipewirePlaybackNode_Int32 = 2400,
ETrackedDeviceProperty_Prop_Audio_PipewireRecordingNode_Int32 = 2401,
ETrackedDeviceProperty_Prop_AttachedDeviceId_String = 3000,
ETrackedDeviceProperty_Prop_SupportedButtons_Uint64 = 3001,
ETrackedDeviceProperty_Prop_Axis0Type_Int32 = 3002,
@@ -713,10 +770,19 @@ typedef enum ETrackedDeviceProperty
ETrackedDeviceProperty_Prop_HasDriverDirectModeComponent_Bool = 6005,
ETrackedDeviceProperty_Prop_HasVirtualDisplayComponent_Bool = 6006,
ETrackedDeviceProperty_Prop_HasSpatialAnchorsSupport_Bool = 6007,
ETrackedDeviceProperty_Prop_SupportsXrTextureSets_Bool = 6008,
ETrackedDeviceProperty_Prop_SupportsXrEyeGazeInteraction_Bool = 6009,
ETrackedDeviceProperty_Prop_DeviceHasNoIMU_Bool = 6010,
ETrackedDeviceProperty_Prop_UseAdvancedPrediction_Bool = 6011,
ETrackedDeviceProperty_Prop_ControllerType_String = 7000,
ETrackedDeviceProperty_Prop_ControllerHandSelectionPriority_Int32 = 7002,
ETrackedDeviceProperty_Prop_VendorSpecific_Reserved_Start = 10000,
ETrackedDeviceProperty_Prop_VendorSpecific_Reserved_End = 10999,
ETrackedDeviceProperty_Prop_Reserved_11000 = 11000,
ETrackedDeviceProperty_Prop_Reserved_11001 = 11001,
ETrackedDeviceProperty_Prop_Reserved_11002 = 11002,
ETrackedDeviceProperty_Prop_Reserved_11003 = 11003,
ETrackedDeviceProperty_Prop_Reserved_11004 = 11004,
ETrackedDeviceProperty_Prop_TrackedDeviceProperty_Max = 1000000,
} ETrackedDeviceProperty;
@@ -756,11 +822,16 @@ typedef enum EVRSubmitFlags
EVRSubmitFlags_Submit_Reserved = 4,
EVRSubmitFlags_Submit_TextureWithPose = 8,
EVRSubmitFlags_Submit_TextureWithDepth = 16,
EVRSubmitFlags_Submit_FrameDiscontinuty = 32,
EVRSubmitFlags_Submit_FrameDiscontinuity = 32,
EVRSubmitFlags_Submit_VulkanTextureWithArrayData = 64,
EVRSubmitFlags_Submit_GlArrayTexture = 128,
EVRSubmitFlags_Submit_IsEgl = 256,
EVRSubmitFlags_Submit_TextureWithMotion = 536,
EVRSubmitFlags_Submit_Reserved2 = 32768,
EVRSubmitFlags_Submit_Reserved3 = 65536,
EVRSubmitFlags_Submit_Reserved4 = 131072,
EVRSubmitFlags_Submit_Reserved5 = 262144,
EVRSubmitFlags_Submit_Reserved6 = 524288,
} EVRSubmitFlags;
typedef enum EVRState
@@ -793,6 +864,8 @@ typedef enum EVREventType
EVREventType_VREvent_PropertyChanged = 111,
EVREventType_VREvent_WirelessDisconnect = 112,
EVREventType_VREvent_WirelessReconnect = 113,
EVREventType_VREvent_Reserved_0114 = 114,
EVREventType_VREvent_Reserved_0115 = 115,
EVREventType_VREvent_ButtonPress = 200,
EVREventType_VREvent_ButtonUnpress = 201,
EVREventType_VREvent_ButtonTouch = 202,
@@ -826,7 +899,6 @@ typedef enum EVREventType
EVREventType_VREvent_OverlayHidden = 501,
EVREventType_VREvent_DashboardActivated = 502,
EVREventType_VREvent_DashboardDeactivated = 503,
EVREventType_VREvent_DashboardRequested = 505,
EVREventType_VREvent_ResetDashboard = 506,
EVREventType_VREvent_ImageLoaded = 508,
EVREventType_VREvent_ShowKeyboard = 509,
@@ -853,6 +925,20 @@ typedef enum EVREventType
EVREventType_VREvent_StartDashboard = 532,
EVREventType_VREvent_ElevatePrism = 533,
EVREventType_VREvent_OverlayClosed = 534,
EVREventType_VREvent_DashboardThumbChanged = 535,
EVREventType_VREvent_DesktopMightBeVisible = 536,
EVREventType_VREvent_DesktopMightBeHidden = 537,
EVREventType_VREvent_MutualSteamCapabilitiesChanged = 538,
EVREventType_VREvent_OverlayCreated = 539,
EVREventType_VREvent_OverlayDestroyed = 540,
EVREventType_VREvent_OverlayNameChanged = 544,
EVREventType_VREvent_TrackingRecordingStarted = 541,
EVREventType_VREvent_TrackingRecordingStopped = 542,
EVREventType_VREvent_SetTrackingRecordingPath = 543,
EVREventType_VREvent_Reserved_0560 = 560,
EVREventType_VREvent_Reserved_0561 = 561,
EVREventType_VREvent_Reserved_0562 = 562,
EVREventType_VREvent_Reserved_0563 = 563,
EVREventType_VREvent_Notification_Shown = 600,
EVREventType_VREvent_Notification_Hidden = 601,
EVREventType_VREvent_Notification_BeginInteraction = 602,
@@ -863,6 +949,7 @@ typedef enum EVREventType
EVREventType_VREvent_DriverRequestedQuit = 704,
EVREventType_VREvent_RestartRequested = 705,
EVREventType_VREvent_InvalidateSwapTextureSets = 706,
EVREventType_VREvent_RequestDisconnectWirelessHMD = 707,
EVREventType_VREvent_ChaperoneDataHasChanged = 800,
EVREventType_VREvent_ChaperoneUniverseHasChanged = 801,
EVREventType_VREvent_ChaperoneTempDataHasChanged = 802,
@@ -870,8 +957,14 @@ typedef enum EVREventType
EVREventType_VREvent_SeatedZeroPoseReset = 804,
EVREventType_VREvent_ChaperoneFlushCache = 805,
EVREventType_VREvent_ChaperoneRoomSetupStarting = 806,
EVREventType_VREvent_ChaperoneRoomSetupFinished = 807,
EVREventType_VREvent_ChaperoneRoomSetupCommitted = 807,
EVREventType_VREvent_StandingZeroPoseReset = 808,
EVREventType_VREvent_Reserved_0809 = 809,
EVREventType_VREvent_Reserved_0810 = 810,
EVREventType_VREvent_Reserved_0811 = 811,
EVREventType_VREvent_Reserved_0812 = 812,
EVREventType_VREvent_Reserved_0813 = 813,
EVREventType_VREvent_Reserved_0814 = 814,
EVREventType_VREvent_AudioSettingsHaveChanged = 820,
EVREventType_VREvent_BackgroundSettingHasChanged = 850,
EVREventType_VREvent_CameraSettingsHaveChanged = 851,
@@ -895,6 +988,8 @@ typedef enum EVREventType
EVREventType_VREvent_GpuSpeedSectionSettingChanged = 869,
EVREventType_VREvent_WindowsMRSectionSettingChanged = 870,
EVREventType_VREvent_OtherSectionSettingChanged = 871,
EVREventType_VREvent_AnyDriverSettingsChanged = 872,
EVREventType_VREvent_Reserved_0873 = 873,
EVREventType_VREvent_StatusUpdate = 900,
EVREventType_VREvent_WebInterface_InstallDriverCompleted = 950,
EVREventType_VREvent_MCImageUpdated = 1000,
@@ -903,6 +998,8 @@ typedef enum EVREventType
EVREventType_VREvent_KeyboardClosed = 1200,
EVREventType_VREvent_KeyboardCharInput = 1201,
EVREventType_VREvent_KeyboardDone = 1202,
EVREventType_VREvent_KeyboardOpened_Global = 1203,
EVREventType_VREvent_KeyboardClosed_Global = 1204,
EVREventType_VREvent_ApplicationListUpdated = 1303,
EVREventType_VREvent_ApplicationMimeTypeLoad = 1304,
EVREventType_VREvent_ProcessConnected = 1306,
@@ -944,6 +1041,11 @@ typedef enum EVREventType
EVREventType_VREvent_SystemReport_Started = 1900,
EVREventType_VREvent_Monitor_ShowHeadsetView = 2000,
EVREventType_VREvent_Monitor_HideHeadsetView = 2001,
EVREventType_VREvent_Audio_SetSpeakersVolume = 2100,
EVREventType_VREvent_Audio_SetSpeakersMute = 2101,
EVREventType_VREvent_Audio_SetMicrophoneVolume = 2102,
EVREventType_VREvent_Audio_SetMicrophoneMute = 2103,
EVREventType_VREvent_RenderModel_CountChanged = 2200,
EVREventType_VREvent_VendorSpecific_Reserved_Start = 10000,
EVREventType_VREvent_VendorSpecific_Reserved_End = 19999,
} EVREventType;
@@ -1159,6 +1261,7 @@ typedef enum EVRNotificationError
EVRNotificationError_VRNotificationError_NotificationQueueFull = 101,
EVRNotificationError_VRNotificationError_InvalidOverlayHandle = 102,
EVRNotificationError_VRNotificationError_SystemWithUserValueAlreadyExists = 103,
EVRNotificationError_VRNotificationError_ServiceUnavailable = 104,
} EVRNotificationError;
typedef enum EVRSkeletalMotionRange
@@ -1248,6 +1351,8 @@ typedef enum EVRInitError
EVRInitError_VRInitError_Init_VRDashboardTokenFailure = 165,
EVRInitError_VRInitError_Init_VRDashboardEnvironmentFailure = 166,
EVRInitError_VRInitError_Init_VRDashboardPathFailure = 167,
EVRInitError_VRInitError_Init_InstallationTooOld = 168,
EVRInitError_VRInitError_Init_ClientVersionAlreadyProvided = 169,
EVRInitError_VRInitError_Driver_Failed = 200,
EVRInitError_VRInitError_Driver_Unknown = 201,
EVRInitError_VRInitError_Driver_HmdUnknown = 202,
@@ -1370,6 +1475,11 @@ typedef enum EVRInitError
EVRInitError_VRInitError_Compositor_SystemLayerCreateSession = 493,
EVRInitError_VRInitError_Compositor_CreateInverseDistortUVs = 494,
EVRInitError_VRInitError_Compositor_CreateBackbufferDepth = 495,
EVRInitError_VRInitError_Compositor_CannotDRMLeaseDisplay = 496,
EVRInitError_VRInitError_Compositor_CannotConnectToDisplayServer = 497,
EVRInitError_VRInitError_Compositor_GnomeNoDRMLeasing = 498,
EVRInitError_VRInitError_Compositor_FailedToInitializeEncoder = 499,
EVRInitError_VRInitError_Compositor_CreateBlurTexture = 500,
EVRInitError_VRInitError_VendorSpecific_UnableToConnectToOculusRuntime = 1000,
EVRInitError_VRInitError_VendorSpecific_WindowsNotInDevMode = 1001,
EVRInitError_VRInitError_VendorSpecific_OculusLinkNotEnabled = 1002,
@@ -1388,6 +1498,10 @@ typedef enum EVRInitError
EVRInitError_VRInitError_VendorSpecific_HmdFound_ConfigFailedSanityCheck = 1113,
EVRInitError_VRInitError_VendorSpecific_OculusRuntimeBadInstall = 1114,
EVRInitError_VRInitError_VendorSpecific_HmdFound_UnexpectedConfiguration_1 = 1115,
EVRInitError_VRInitError_VendorSpecific_Oasis_UnlockRequired = 1150,
EVRInitError_VRInitError_VendorSpecific_VRLink_OutdatedDriverMESA = 1200,
EVRInitError_VRInitError_VendorSpecific_VRLink_OutdatedDriverNVIDIA = 1201,
EVRInitError_VRInitError_VendorSpecific_VRLink_NoVideoSupport = 1202,
EVRInitError_VRInitError_Steam_SteamInstallationNotFound = 2000,
EVRInitError_VRInitError_LastError = 2001,
} EVRInitError;
@@ -1476,6 +1590,17 @@ typedef enum Imu_OffScaleFlags
Imu_OffScaleFlags_OffScale_GyroZ = 32,
} Imu_OffScaleFlags;
typedef enum EVRDistortionChannel
{
EVRDistortionChannel_Red = 0,
EVRDistortionChannel_Green = 1,
EVRDistortionChannel_Blue = 2,
EVRDistortionChannel_InverseRed = 3,
EVRDistortionChannel_InverseGreen = 4,
EVRDistortionChannel_InverseBlue = 5,
EVRDistortionChannel_Count = 6,
} EVRDistortionChannel;
typedef enum EVRApplicationError
{
EVRApplicationError_VRApplicationError_None = 0,
@@ -1495,6 +1620,7 @@ typedef enum EVRApplicationError
EVRApplicationError_VRApplicationError_TransitionAborted = 113,
EVRApplicationError_VRApplicationError_IsTemplate = 114,
EVRApplicationError_VRApplicationError_SteamVRIsExiting = 115,
EVRApplicationError_VRApplicationError_WaitingForChaperone = 116,
EVRApplicationError_VRApplicationError_BufferTooSmall = 200,
EVRApplicationError_VRApplicationError_PropertyNotSet = 201,
EVRApplicationError_VRApplicationError_UnknownProperty = 202,
@@ -1513,6 +1639,7 @@ typedef enum EVRApplicationProperty
EVRApplicationProperty_VRApplicationProperty_Description_String = 50,
EVRApplicationProperty_VRApplicationProperty_NewsURL_String = 51,
EVRApplicationProperty_VRApplicationProperty_ImagePath_String = 52,
EVRApplicationProperty_VRApplicationProperty_ImagePathCapsule_String = 55,
EVRApplicationProperty_VRApplicationProperty_Source_String = 53,
EVRApplicationProperty_VRApplicationProperty_ActionManifestURL_String = 54,
EVRApplicationProperty_VRApplicationProperty_IsDashboardOverlay_Bool = 60,
@@ -1575,6 +1702,13 @@ typedef enum EVRCompositorError
EVRCompositorError_VRCompositorError_AlreadySet = 110,
} EVRCompositorError;
typedef enum EVRCompositorTextureUsage
{
EVRCompositorTextureUsage_VRCompositorTextureUsage_Left = 0,
EVRCompositorTextureUsage_VRCompositorTextureUsage_Right = 1,
EVRCompositorTextureUsage_VRCompositorTextureUsage_Both = 2,
} EVRCompositorTextureUsage;
typedef enum EVRCompositorTimingMode
{
EVRCompositorTimingMode_VRCompositorTimingMode_Implicit = 0,
@@ -1622,7 +1756,13 @@ typedef enum VROverlayFlags
VROverlayFlags_WantsModalBehavior = 1048576,
VROverlayFlags_IsPremultiplied = 2097152,
VROverlayFlags_IgnoreTextureAlpha = 4194304,
VROverlayFlags_Reserved = 67108864,
VROverlayFlags_EnableControlBar = 8388608,
VROverlayFlags_EnableControlBarKeyboard = 16777216,
VROverlayFlags_EnableControlBarClose = 33554432,
VROverlayFlags_MinimalControlBar = 67108864,
VROverlayFlags_EnableClickStabilization = 134217728,
VROverlayFlags_MultiCursor = 268435456,
VROverlayFlags_NoBackside = 536870912,
} VROverlayFlags;
typedef enum VRMessageOverlayResponse
@@ -1659,6 +1799,8 @@ typedef enum EKeyboardFlags
{
EKeyboardFlags_KeyboardFlag_Minimal = 1,
EKeyboardFlags_KeyboardFlag_Modal = 2,
EKeyboardFlags_KeyboardFlag_ShowArrowKeys = 4,
EKeyboardFlags_KeyboardFlag_HideDoneKey = 8,
} EKeyboardFlags;
typedef enum EDeviceType
@@ -1726,6 +1868,7 @@ typedef enum EVRSettingsError
EVRSettingsError_VRSettingsError_ReadFailed = 3,
EVRSettingsError_VRSettingsError_JsonParseFailed = 4,
EVRSettingsError_VRSettingsError_UnsetSettingHasNoDefault = 5,
EVRSettingsError_VRSettingsError_AccessDenied = 6,
} EVRSettingsError;
typedef enum EVRScreenshotError
@@ -1871,6 +2014,7 @@ typedef PropertyContainerHandle_t DriverHandle_t;
typedef uint64_t VRActionHandle_t;
typedef uint64_t VRActionSetHandle_t;
typedef uint64_t VRInputValueHandle_t;
typedef uint64_t VRInputComponentHandle_t;
typedef uint32_t VRComponentProperties;
typedef uint64_t VROverlayHandle_t;
typedef int32_t BoneIndex_t;
@@ -1975,6 +2119,15 @@ typedef struct VRBoneTransform_t
struct HmdQuaternionf_t orientation;
} VRBoneTransform_t;
typedef struct VREyeTrackingData_t
{
bool bActive;
bool bValid;
bool bTracked;
HmdVector3_t vGazeOrigin;
HmdVector3_t vGazeTarget;
} VREyeTrackingData_t;
typedef struct DistortionCoordinates_t
{
float rfRed[2]; //float[2]
@@ -2029,6 +2182,39 @@ typedef struct VRTextureWithPoseAndDepth_t
struct VRTextureDepthInfo_t depth;
} VRTextureWithPoseAndDepth_t;
typedef struct VRTextureMotionInfo_t
{
void * handle; // void *
struct HmdMatrix44_t mDeltaPose;
} VRTextureMotionInfo_t;
typedef struct VRTextureWithMotion_t
{
struct VRTextureMotionInfo_t motion;
} VRTextureWithMotion_t;
typedef struct DmabufPlane_t
{
uint32_t unOffset;
uint32_t unStride;
int32_t nFd;
} DmabufPlane_t;
typedef struct DmabufAttributes_t
{
void * pNext; // void *
uint32_t unWidth;
uint32_t unHeight;
uint32_t unDepth;
uint32_t unMipLevels;
uint32_t unArrayLayers;
uint32_t unSampleCount;
uint32_t unFormat;
uint64_t ulModifier;
uint32_t unPlaneCount;
struct DmabufPlane_t plane[4]; //struct vr::DmabufPlane_t[4]
} DmabufAttributes_t;
typedef struct TrackedDevicePose_t
{
struct HmdMatrix34_t mDeviceToAbsoluteTracking;
@@ -2076,6 +2262,7 @@ typedef struct VREvent_Mouse_t
float x;
float y;
uint32_t button;
uint32_t cursorIndex;
} VREvent_Mouse_t;
typedef struct VREvent_Scroll_t
@@ -2084,6 +2271,7 @@ typedef struct VREvent_Scroll_t
float ydelta;
uint32_t unused;
float viewportscale;
uint32_t cursorIndex;
} VREvent_Scroll_t;
typedef struct VREvent_TouchPadMove_t
@@ -2115,6 +2303,7 @@ typedef struct VREvent_Overlay_t
uint64_t overlayHandle;
uint64_t devicePath;
uint64_t memoryBlockId;
uint32_t cursorIndex;
} VREvent_Overlay_t;
typedef struct VREvent_Status_t
@@ -2126,6 +2315,7 @@ typedef struct VREvent_Keyboard_t
{
char cNewInput[8]; //char[8]
uint64_t uUserValue;
uint64_t overlayHandle;
} VREvent_Keyboard_t;
typedef struct VREvent_Ipd_t
@@ -2135,7 +2325,7 @@ typedef struct VREvent_Ipd_t
typedef struct VREvent_Chaperone_t
{
uint64_t m_nPreviousUniverse;
uint64_t m_nPreviousUniverse_deprecated;
uint64_t m_nCurrentUniverse;
} VREvent_Chaperone_t;
@@ -2253,6 +2443,16 @@ typedef struct VREvent_HDCPError_t
enum EHDCPError eCode;
} VREvent_HDCPError_t;
typedef struct VREvent_AudioVolumeControl_t
{
float fVolumeLevel;
} VREvent_AudioVolumeControl_t;
typedef struct VREvent_AudioMuteControl_t
{
bool bMute;
} VREvent_AudioMuteControl_t;
typedef struct RenderModel_ComponentState_t
{
struct HmdMatrix34_t mTrackingToComponentRenderModel;
@@ -2319,6 +2519,7 @@ typedef struct Compositor_FrameTiming
TrackedDevicePose_t m_HmdPose;
uint32_t m_nNumVSyncsReadyForUse;
uint32_t m_nNumVSyncsToFirstView;
float m_flTransferLatencyMs;
} Compositor_FrameTiming;
typedef struct Compositor_BenchmarkResults
@@ -2344,6 +2545,12 @@ typedef struct ImuSample_t
uint32_t unOffScaleFlags;
} ImuSample_t;
typedef struct DistortionCoordinate_t
{
float u;
float v;
} DistortionCoordinate_t;
typedef struct AppOverrideKeys_t
{
char * pchKey; // const char *
@@ -2596,6 +2803,7 @@ typedef struct COpenVRContext
intptr_t m_pVRSpatialAnchors; // class vr::IVRSpatialAnchors *
intptr_t m_pVRDebug; // class vr::IVRDebug *
intptr_t m_pVRNotifications; // class vr::IVRNotifications *
intptr_t m_pVRIPCResourceManagerClient; // class vr::IVRIPCResourceManagerClient *
} COpenVRContext;
typedef struct PropertyWrite_t
@@ -2624,6 +2832,11 @@ typedef struct CVRPropertyHelpers
intptr_t m_pProperties; // class vr::IVRProperties *
} CVRPropertyHelpers;
typedef struct PathWriteOptions_t
{
bool bPostEvents;
} PathWriteOptions_t;
typedef struct PathWrite_t
{
PathHandle_t ulPath;
@@ -2634,6 +2847,8 @@ typedef struct PathWrite_t
PropertyTypeTag_t unTag;
enum ETrackedPropertyError eError;
char * pszPath; // const char *
bool bPostEvents;
bool bValueChanged;
} PathWrite_t;
typedef struct PathRead_t
@@ -2675,6 +2890,12 @@ typedef union
VREvent_InputBindingLoad_t inputBinding;
VREvent_InputActionManifestLoad_t actionManifest;
VREvent_SpatialAnchor_t spatialAnchor;
VREvent_ProgressUpdate_t progressUpdate;
VREvent_ShowUI_t showUi;
VREvent_ShowDevTools_t showDevTools;
VREvent_HDCPError_t hdcpError;
VREvent_AudioVolumeControl_t audioVolumeControl;
VREvent_AudioMuteControl_t audioMuteControl;
} VREvent_Data_t;
#if defined(__linux__) || defined(__APPLE__)
@@ -2719,6 +2940,7 @@ struct VR_IVRSystem_FnTable
struct HmdMatrix44_t (OPENVR_FNTABLE_CALLTYPE *GetProjectionMatrix)(EVREye eEye, float fNearZ, float fFarZ);
void (OPENVR_FNTABLE_CALLTYPE *GetProjectionRaw)(EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom);
bool (OPENVR_FNTABLE_CALLTYPE *ComputeDistortion)(EVREye eEye, float fU, float fV, struct DistortionCoordinates_t * pDistortionCoordinates);
bool (OPENVR_FNTABLE_CALLTYPE *ComputeDistortionSet)(EVREye eEye, EVRDistortionChannel eChannel, bool bAsNormalizedDeviceCoordinates, uint32_t nNumCoordinates, struct DistortionCoordinate_t * pInput, struct DistortionCoordinate_t * pOutput);
struct HmdMatrix34_t (OPENVR_FNTABLE_CALLTYPE *GetEyeToHeadTransform)(EVREye eEye);
bool (OPENVR_FNTABLE_CALLTYPE *GetTimeSinceLastVsync)(float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter);
int32_t (OPENVR_FNTABLE_CALLTYPE *GetD3D9AdapterIndex)();
@@ -2746,8 +2968,11 @@ struct VR_IVRSystem_FnTable
char * (OPENVR_FNTABLE_CALLTYPE *GetPropErrorNameFromEnum)(ETrackedPropertyError error);
bool (OPENVR_FNTABLE_CALLTYPE *PollNextEvent)(struct VREvent_t * pEvent, uint32_t uncbVREvent);
bool (OPENVR_FNTABLE_CALLTYPE *PollNextEventWithPose)(ETrackingUniverseOrigin eOrigin, struct VREvent_t * pEvent, uint32_t uncbVREvent, TrackedDevicePose_t * pTrackedDevicePose);
bool (OPENVR_FNTABLE_CALLTYPE *PollNextEventWithPoseAndOverlays)(ETrackingUniverseOrigin eOrigin, struct VREvent_t * pEvent, uint32_t uncbVREvent, struct TrackedDevicePose_t * pTrackedDevicePose, VROverlayHandle_t * pulOverlayHandle);
char * (OPENVR_FNTABLE_CALLTYPE *GetEventTypeNameFromEnum)(EVREventType eType);
struct HiddenAreaMesh_t (OPENVR_FNTABLE_CALLTYPE *GetHiddenAreaMesh)(EVREye eEye, EHiddenAreaMeshType type);
bool (OPENVR_FNTABLE_CALLTYPE *GetEyeTrackedFoveationCenter)(struct HmdVector2_t * pNdcLeft, struct HmdVector2_t * pNdcRight);
bool (OPENVR_FNTABLE_CALLTYPE *GetEyeTrackedFoveationCenterForProjection)(struct HmdMatrix44_t * pProjMat, struct HmdVector2_t * pNdc);
bool (OPENVR_FNTABLE_CALLTYPE *GetControllerState)(TrackedDeviceIndex_t unControllerDeviceIndex, VRControllerState_t * pControllerState, uint32_t unControllerStateSize);
bool (OPENVR_FNTABLE_CALLTYPE *GetControllerStateWithPose)(ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, VRControllerState_t * pControllerState, uint32_t unControllerStateSize, struct TrackedDevicePose_t * pTrackedDevicePose);
void (OPENVR_FNTABLE_CALLTYPE *TriggerHapticPulse)(TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec);
@@ -2761,6 +2986,7 @@ struct VR_IVRSystem_FnTable
void (OPENVR_FNTABLE_CALLTYPE *AcknowledgeQuit_Exiting)();
uint32_t (OPENVR_FNTABLE_CALLTYPE *GetAppContainerFilePaths)(char * pchBuffer, uint32_t unBufferSize);
char * (OPENVR_FNTABLE_CALLTYPE *GetRuntimeVersion)();
EVRInitError (OPENVR_FNTABLE_CALLTYPE *SetSDKVersion)(uint32_t nVersionMajor, uint32_t nVersionMinor, uint32_t nVersionBuild);
};
struct VR_IVRExtendedDisplay_FnTable
@@ -2819,6 +3045,7 @@ struct VR_IVRApplications_FnTable
EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *PerformApplicationPrelaunchCheck)(char * pchAppKey);
char * (OPENVR_FNTABLE_CALLTYPE *GetSceneApplicationStateNameFromEnum)(EVRSceneApplicationState state);
EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *LaunchInternalProcess)(char * pchBinaryPath, char * pchArguments, char * pchWorkingDirectory);
EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *RegisterSubprocess)(uint32_t nPid);
uint32_t (OPENVR_FNTABLE_CALLTYPE *GetCurrentSceneProcessId)();
};
@@ -2866,7 +3093,9 @@ struct VR_IVRCompositor_FnTable
EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *WaitGetPoses)(struct TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, struct TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount);
EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *GetLastPoses)(struct TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, struct TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount);
EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *GetLastPoseForTrackedDeviceIndex)(TrackedDeviceIndex_t unDeviceIndex, struct TrackedDevicePose_t * pOutputPose, struct TrackedDevicePose_t * pOutputGamePose);
EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *GetSubmitTexture)(struct Texture_t * pOutTexture, bool * pNeedsFlush, EVRCompositorTextureUsage eUsage, struct Texture_t * pTexture, struct VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags);
EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *Submit)(EVREye eEye, struct Texture_t * pTexture, struct VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags);
EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *SubmitWithArrayIndex)(EVREye eEye, struct Texture_t * pTexture, uint32_t unTextureArrayIndex, struct VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags);
void (OPENVR_FNTABLE_CALLTYPE *ClearLastSubmittedFrame)();
void (OPENVR_FNTABLE_CALLTYPE *PostPresentHandoff)();
bool (OPENVR_FNTABLE_CALLTYPE *GetFrameTiming)(struct Compositor_FrameTiming * pTiming, uint32_t unFramesAgo);
@@ -2918,6 +3147,7 @@ struct VR_IVROverlay_FnTable
{
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *FindOverlay)(char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *CreateOverlay)(char * pchOverlayKey, char * pchOverlayName, VROverlayHandle_t * pOverlayHandle);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *CreateSubviewOverlay)(VROverlayHandle_t parentOverlayHandle, char * pchSubviewOverlayKey, char * pchSubviewOverlayName, VROverlayHandle_t * pSubviewOverlayHandle);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *DestroyOverlay)(VROverlayHandle_t ulOverlayHandle);
uint32_t (OPENVR_FNTABLE_CALLTYPE *GetOverlayKey)(VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError);
uint32_t (OPENVR_FNTABLE_CALLTYPE *GetOverlayName)(VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError);
@@ -2957,6 +3187,7 @@ struct VR_IVROverlay_FnTable
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTransformCursor)(VROverlayHandle_t ulCursorOverlayHandle, struct HmdVector2_t * pvHotspot);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTransformCursor)(VROverlayHandle_t ulOverlayHandle, struct HmdVector2_t * pvHotspot);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTransformProjection)(VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, struct HmdMatrix34_t * pmatTrackingOriginToOverlayTransform, struct VROverlayProjection_t * pProjection, EVREye eEye);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetSubviewPosition)(VROverlayHandle_t ulOverlayHandle, float fX, float fY);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *ShowOverlay)(VROverlayHandle_t ulOverlayHandle);
EVROverlayError (OPENVR_FNTABLE_CALLTYPE *HideOverlay)(VROverlayHandle_t ulOverlayHandle);
bool (OPENVR_FNTABLE_CALLTYPE *IsOverlayVisible)(VROverlayHandle_t ulOverlayHandle);
@@ -3102,6 +3333,8 @@ struct VR_IVRInput_FnTable
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetSkeletalActionData)(VRActionHandle_t action, struct InputSkeletalActionData_t * pActionData, uint32_t unActionDataSize);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetDominantHand)(ETrackedControllerRole * peDominantHand);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *SetDominantHand)(ETrackedControllerRole eDominantHand);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetEyeTrackingDataRelativeToNow)(VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, float fPredictedSecondsFromNow, VREyeTrackingData_t * pEyeTrackingData, uint32_t ulEyeTrackingDataSize);
EVRInputError (OPENVR_FNTABLE_CALLTYPE *GetEyeTrackingDataForNextFrame)(VRActionHandle_t action, ETrackingUniverseOrigin eOrigin, VREyeTrackingData_t * pEyeTrackingData, uint32_t ulEyeTrackingDataSize);
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);
@@ -3150,6 +3383,20 @@ struct VR_IVRDebug_FnTable
uint32_t (OPENVR_FNTABLE_CALLTYPE *DriverDebugRequest)(TrackedDeviceIndex_t unDeviceIndex, char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize);
};
struct VR_IVRIPCResourceManagerClient_FnTable
{
bool (OPENVR_FNTABLE_CALLTYPE *NewSharedVulkanImage)(uint32_t nImageFormat, uint32_t nWidth, uint32_t nHeight, bool bRenderable, bool bMappable, bool bComputeAccess, uint32_t unMipLevels, uint32_t unArrayLayerCount, uint32_t unAdditionalVkCreateFlags, uint32_t unAdditionalVkUsageFlags, SharedTextureHandle_t * pSharedHandle);
bool (OPENVR_FNTABLE_CALLTYPE *NewSharedVulkanBuffer)(uint32_t nSize, uint32_t nUsageFlags, SharedTextureHandle_t * pSharedHandle);
bool (OPENVR_FNTABLE_CALLTYPE *NewSharedVulkanSemaphore)(bool bCounting, SharedTextureHandle_t * pSharedHandle);
bool (OPENVR_FNTABLE_CALLTYPE *RefResource)(SharedTextureHandle_t hSharedHandle, uint64_t * pNewIpcHandle);
bool (OPENVR_FNTABLE_CALLTYPE *UnrefResource)(SharedTextureHandle_t hSharedHandle);
bool (OPENVR_FNTABLE_CALLTYPE *GetDmabufFormats)(uint32_t * pOutFormatCount, uint32_t * pOutFormats);
bool (OPENVR_FNTABLE_CALLTYPE *GetDmabufModifiers)(EVRApplicationType eApplicationType, uint32_t unDRMFormat, uint32_t * pOutModifierCount, uint64_t * pOutModifiers);
bool (OPENVR_FNTABLE_CALLTYPE *ImportDmabuf)(EVRApplicationType eApplicationType, DmabufAttributes_t * pDmabufAttributes, SharedTextureHandle_t * pSharedHandle);
bool (OPENVR_FNTABLE_CALLTYPE *ReceiveSharedFd)(uint64_t ulIpcHandle, int * pOutFd);
void (OPENVR_FNTABLE_CALLTYPE *DestructIVRIPCResourceManagerClient)();
};
struct VR_IVRProperties_FnTable
{
ETrackedPropertyError (OPENVR_FNTABLE_CALLTYPE *ReadPropertyBatch)(PropertyContainerHandle_t ulContainerHandle, struct PropertyRead_t * pBatch, uint32_t unBatchEntryCount);
+458 -49
View File
@@ -15,9 +15,9 @@
namespace vr
{
static const uint32_t k_nSteamVRVersionMajor = 1;
static const uint32_t k_nSteamVRVersionMinor = 26;
static const uint32_t k_nSteamVRVersionBuild = 7;
static const uint32_t k_nSteamVRVersionMajor = 2;
static const uint32_t k_nSteamVRVersionMinor = 15;
static const uint32_t k_nSteamVRVersionBuild = 6;
} // namespace vr
// public_vrtypes.h
@@ -104,6 +104,16 @@ struct VRBoneTransform_t
HmdQuaternionf_t orientation;
};
struct VREyeTrackingData_t
{
bool bActive;
bool bValid;
bool bTracked;
vr::HmdVector3_t vGazeOrigin; // Ray origin
vr::HmdVector3_t vGazeTarget; // Gaze target (fixation point)
};
/** Used to return the post-distortion UVs for each color channel.
* UVs range from 0 to 1 with 0,0 in the upper left corner of the
* source render target. The 0,0 to 1,1 range covers a single eye. */
@@ -133,6 +143,9 @@ enum ETextureType
TextureType_Metal = 6, // Handle is a MTLTexture conforming to the MTLSharedTexture protocol. Textures submitted to IVRCompositor::Submit which
// are of type MTLTextureType2DArray assume layer 0 is the left eye texture (vr::EVREye::Eye_left), layer 1 is the right
// eye texture (vr::EVREye::Eye_Right)
TextureType_Reserved = 7,
TextureType_SharedTextureHandle = 8, // A pointer to a vr::SharedTextureHandle_t that was imported via, eg. ImportDmabuf.
};
enum EColorSpace
@@ -180,6 +193,17 @@ struct VRTextureWithPoseAndDepth_t : public VRTextureWithPose_t
VRTextureDepthInfo_t depth;
};
struct VRTextureMotionInfo_t
{
void *handle; // See ETextureType definition above
HmdMatrix44_t mDeltaPose; // Incremental application-applied transform, if any, since the previous frame that affects the view.
};
struct VRTextureWithMotion_t : VRTextureWithPoseAndDepth_t
{
VRTextureMotionInfo_t motion;
};
// 64-bit types that are part of public structures
// that are replicated in shared memory.
#if defined(__linux__) || defined(__APPLE__)
@@ -190,6 +214,32 @@ typedef uint64_t vrshared_uint64_t;
typedef double vrshared_double;
#endif
static const uint32_t MaxDmabufPlaneCount = 4;
struct DmabufPlane_t
{
uint32_t unOffset;
uint32_t unStride;
int32_t nFd; // This is not consumed, it is dup'ed.
};
struct DmabufAttributes_t
{
void *pNext; // MUST be NULL. Unused right now, but could be used to extend this structure in the future.
uint32_t unWidth;
uint32_t unHeight;
uint32_t unDepth;
uint32_t unMipLevels;
uint32_t unArrayLayers;
uint32_t unSampleCount;
uint32_t unFormat; // DRM_FORMAT_
uint64_t ulModifier; // DRM_FORMAT_MOD_
uint32_t unPlaneCount;
DmabufPlane_t plane[MaxDmabufPlaneCount];
};
#pragma pack( pop )
} // namespace vr
@@ -432,6 +482,13 @@ enum ETrackedDeviceProperty
Prop_EstimatedDeviceFirstUseTime_Int32 = 1051,
Prop_DevicePowerUsage_Float = 1052,
Prop_IgnoreMotionForStandby_Bool = 1053,
Prop_ActualTrackingSystemName_String = 1054, // the literal local driver name in case someone is playing games with prop 1000
Prop_AllowCameraToggle_Bool = 1055, // Shows the Enable/Disable camera option. Hide this for certain headsets if they have the camera tracking (since it's always on)
Prop_AllowLightSourceFrequency_Bool = 1056, // Shows the Anti-Flicker option in camera settings.
Prop_SteamRemoteClientID_Uint64 = 1057, // For vrlink
Prop_Reserved_1058 = 1058,
Prop_Reserved_1059 = 1059,
Prop_Reserved_1060 = 1060,
// Properties that are unique to TrackedDeviceClass_HMD
Prop_ReportsTimeSinceVSync_Bool = 2000,
@@ -439,7 +496,7 @@ enum ETrackedDeviceProperty
Prop_DisplayFrequency_Float = 2002,
Prop_UserIpdMeters_Float = 2003,
Prop_CurrentUniverseId_Uint64 = 2004,
Prop_PreviousUniverseId_Uint64 = 2005,
Prop_PreviousUniverseId_Uint64_deprecated = Prop_Invalid,
Prop_DisplayFirmwareVersion_Uint64 = 2006,
Prop_IsOnDesktop_Bool = 2007,
Prop_DisplayMCType_Int32 = 2008,
@@ -524,10 +581,13 @@ enum ETrackedDeviceProperty
Prop_CameraGlobalGain_Float = 2089,
// Prop_DashboardLayoutPathName_String = 2090, // DELETED
Prop_DashboardScale_Float = 2091,
Prop_PeerButtonInfo_String = 2092,
// Prop_PeerButtonInfo_String = 2092, // DELETED
Prop_Hmd_SupportsHDR10_Bool = 2093,
Prop_Hmd_EnableParallelRenderCameras_Bool = 2094,
Prop_DriverProvidedChaperoneJson_String = 2095, // higher priority than Prop_DriverProvidedChaperonePath_String
Prop_ForceSystemLayerUseAppPoses_Bool = 2096,
Prop_DashboardLinkSupport_Int32 = 2097,
Prop_DisplayMinUIAnalogGain_Float = 2098,
Prop_IpdUIRangeMinMeters_Float = 2100,
Prop_IpdUIRangeMaxMeters_Float = 2101,
@@ -537,10 +597,18 @@ enum ETrackedDeviceProperty
Prop_Hmd_SupportsRoomViewDirect_Bool = 2105,
Prop_Hmd_SupportsAppThrottling_Bool = 2106,
Prop_Hmd_SupportsGpuBusMonitoring_Bool = 2107,
Prop_DriverDisplaysIPDChanges_Bool = 2108,
// Prop_Driver_RecenterSupport_Int32 = 2109, // DELETED
Prop_Reserved_2110 = 2110,
Prop_Reserved_2111 = 2111,
Prop_Reserved_2112 = 2112,
Prop_DSCVersion_Int32 = 2110,
Prop_DSCSliceCount_Int32 = 2111,
Prop_DSCBPPx16_Int32 = 2112,
Prop_Hmd_MaxDistortedTextureWidth_Int32 = 2113,
Prop_Hmd_MaxDistortedTextureHeight_Int32 = 2114,
Prop_Hmd_AllowSupersampleFiltering_Bool = 2115,
Prop_Hmd_AllowsClientToControlTextureIndex = 2116,
Prop_Reserved_2117 = 2117,
// Driver requested mura correction properties
Prop_DriverRequestedMuraCorrectionMode_Int32 = 2200,
@@ -557,6 +625,16 @@ enum ETrackedDeviceProperty
Prop_Audio_DefaultRecordingDeviceId_String = 2301,
Prop_Audio_DefaultPlaybackDeviceVolume_Float = 2302,
Prop_Audio_SupportsDualSpeakerAndJackOutput_Bool = 2303,
Prop_Audio_DriverManagesPlaybackVolumeControl_Bool = 2304,
Prop_Audio_DriverPlaybackVolume_Float = 2305,
Prop_Audio_DriverPlaybackMute_Bool = 2306,
Prop_Audio_DriverManagesRecordingVolumeControl_Bool = 2307,
Prop_Audio_DriverRecordingVolume_Float = 2308,
Prop_Audio_DriverRecordingMute_Bool = 2309,
// Pipewire Audio Stuff
Prop_Audio_PipewirePlaybackNode_Int32 = 2400,
Prop_Audio_PipewireRecordingNode_Int32 = 2401,
// Properties that are unique to TrackedDeviceClass_Controller
Prop_AttachedDeviceId_String = 3000,
@@ -606,6 +684,10 @@ enum ETrackedDeviceProperty
Prop_HasDriverDirectModeComponent_Bool = 6005,
Prop_HasVirtualDisplayComponent_Bool = 6006,
Prop_HasSpatialAnchorsSupport_Bool = 6007,
Prop_SupportsXrTextureSets_Bool = 6008,
Prop_SupportsXrEyeGazeInteraction_Bool = 6009,
Prop_DeviceHasNoIMU_Bool = 6010,
Prop_UseAdvancedPrediction_Bool = 6011,
// Properties that are set internally based on other information provided by drivers
Prop_ControllerType_String = 7000,
@@ -616,6 +698,13 @@ enum ETrackedDeviceProperty
Prop_VendorSpecific_Reserved_Start = 10000,
Prop_VendorSpecific_Reserved_End = 10999,
// Addl SteamVR Reserved Space
Prop_Reserved_11000 = 11000,
Prop_Reserved_11001 = 11001,
Prop_Reserved_11002 = 11002,
Prop_Reserved_11003 = 11003,
Prop_Reserved_11004 = 11004,
Prop_TrackedDeviceProperty_Max = 1000000,
};
@@ -656,10 +745,12 @@ enum EHmdTrackingStyle
typedef uint64_t VRActionHandle_t;
typedef uint64_t VRActionSetHandle_t;
typedef uint64_t VRInputValueHandle_t;
typedef uint64_t VRInputComponentHandle_t;
static const VRActionHandle_t k_ulInvalidActionHandle = 0;
static const VRActionSetHandle_t k_ulInvalidActionSetHandle = 0;
static const VRInputValueHandle_t k_ulInvalidInputValueHandle = 0;
static const VRInputComponentHandle_t k_ulInvalidInputComponentHandle = 0;
/** Allows the application to control how scene textures are used by the compositor when calling Submit. */
@@ -689,7 +780,7 @@ enum EVRSubmitFlags
// Set to indicate a discontinuity between this and the last frame.
// This will prevent motion smoothing from attempting to extrapolate using the pair.
Submit_FrameDiscontinuty = 0x20,
Submit_FrameDiscontinuity = 0x20,
// Set to indicate that pTexture->handle is a contains VRVulkanTextureArrayData_t
Submit_VulkanTextureWithArrayData = 0x40,
@@ -697,10 +788,18 @@ enum EVRSubmitFlags
// If the texture pointer passed in is an OpenGL Array texture, set this flag
Submit_GlArrayTexture = 0x80,
// If the texture is an EGL texture and not an glX/wGL texture (Linux only, currently)
Submit_IsEgl = 0x100,
// Set to indicate that pTexture is a pointer to a VRTextureWithMotion_t.
Submit_TextureWithMotion = 0x200 | Submit_TextureWithPose | Submit_TextureWithDepth,
// Do not use
Submit_Reserved2 = 0x08000,
Submit_Reserved3 = 0x10000,
Submit_Reserved4 = 0x20000,
Submit_Reserved5 = 0x40000,
Submit_Reserved6 = 0x80000,
};
/** Data required for passing Vulkan textures to IVRCompositor::Submit.
@@ -768,6 +867,8 @@ enum EVREventType
VREvent_PropertyChanged = 111,
VREvent_WirelessDisconnect = 112,
VREvent_WirelessReconnect = 113,
VREvent_Reserved_0114 = 114,
VREvent_Reserved_0115 = 115,
VREvent_ButtonPress = 200, // data is controller
VREvent_ButtonUnpress = 201, // data is controller
@@ -793,8 +894,8 @@ enum EVREventType
VREvent_OverlayFocusChanged = 307, // data is overlay, global event
VREvent_ReloadOverlays = 308,
VREvent_ScrollSmooth = 309, // data is scroll
VREvent_LockMousePosition = 310,
VREvent_UnlockMousePosition = 311,
VREvent_LockMousePosition = 310, // data is mouse
VREvent_UnlockMousePosition = 311, // data is mouse
VREvent_InputFocusCaptured = 400, // data is process DEPRECATED
VREvent_InputFocusReleased = 401, // data is process DEPRECATED
@@ -817,12 +918,12 @@ enum EVREventType
VREvent_ConsoleOpened = 420,
VREvent_ConsoleClosed = 421,
VREvent_OverlayShown = 500,
VREvent_OverlayHidden = 501,
VREvent_OverlayShown = 500, // Indicates that an overlay is now visible to someone and should be rendering normally. Reflects IVROverlay::IsOverlayVisible() becoming true.
VREvent_OverlayHidden = 501, // Indicates that an overlay is no longer visible to someone and doesn't need to render frames. Reflects IVROverlay::IsOverlayVisible() becoming false.
VREvent_DashboardActivated = 502,
VREvent_DashboardDeactivated = 503,
//VREvent_DashboardThumbSelected = 504, // Sent to the overlay manager - data is overlay - No longer sent
VREvent_DashboardRequested = 505, // Sent to the overlay manager - data is overlay
//VREvent_DashboardRequested = 505, // Sent to the overlay manager - data is overlay
VREvent_ResetDashboard = 506, // Send to the overlay manager
//VREvent_RenderToast = 507, // Send to the dashboard to render a toast - data is the notification ID -- no longer sent
VREvent_ImageLoaded = 508, // Sent to overlays when a SetOverlayRaw or SetOverlayFromFile call finishes loading
@@ -846,8 +947,8 @@ enum EVREventType
VREvent_ScreenshotProgressToDashboard = 524, // Sent by compositor to the dashboard that a completed screenshot was submitted
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_RoomViewShown = 526, // Sent by compositor whenever room-view is enabled (for scene apps only - not for construct or transient bounds)
VREvent_RoomViewHidden = 527, // Sent by compositor whenever room-view is disabled (for scene apps only - not for construct or transient bounds)
VREvent_ShowUI = 528, // data is showUi
VREvent_ShowDevTools = 529, // data is showDevTools
VREvent_DesktopViewUpdating = 530,
@@ -855,8 +956,23 @@ enum EVREventType
VREvent_StartDashboard = 532,
VREvent_ElevatePrism = 533,
VREvent_OverlayClosed = 534, // The overlay's close button is pressed.
VREvent_DashboardThumbChanged = 535, // Sent when a dashboard thumbnail image changes
VREvent_DesktopMightBeVisible = 536, // Sent when any known desktop related overlay is visible
VREvent_DesktopMightBeHidden = 537, // Sent when all known desktop related overlays are hidden
VREvent_MutualSteamCapabilitiesChanged = 538, // Sent when the set of capabilities common between both Steam and SteamVR have changed.
VREvent_OverlayCreated = 539, // An OpenVR overlay of any sort was created. Data is overlay.
VREvent_OverlayDestroyed = 540, // An OpenVR overlay of any sort was destroyed. Data is overlay.
VREvent_OverlayNameChanged = 544, // An OpenVR overlay's name changed. Data is overlay.
VREvent_OverlayClosed = 534,
VREvent_TrackingRecordingStarted = 541,
VREvent_TrackingRecordingStopped = 542,
VREvent_SetTrackingRecordingPath = 543,
VREvent_Reserved_0560 = 560, // No data
VREvent_Reserved_0561 = 561, // No data
VREvent_Reserved_0562 = 562, // No data
VREvent_Reserved_0563 = 563, // No data
VREvent_Notification_Shown = 600,
VREvent_Notification_Hidden = 601,
@@ -870,6 +986,7 @@ 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_InvalidateSwapTextureSets = 706,
VREvent_RequestDisconnectWirelessHMD = 707, // vrserver asks vrlink to disconnect
VREvent_ChaperoneDataHasChanged = 800, // this will never happen with the new chaperone system
VREvent_ChaperoneUniverseHasChanged = 801,
@@ -878,8 +995,14 @@ enum EVREventType
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_ChaperoneRoomSetupCommitted = 807, // Triggered by CVRChaperoneClient::CommitWorkingCopy (formerly VREvent_ChaperoneRoomSetupFinished)
VREvent_StandingZeroPoseReset = 808,
VREvent_Reserved_0809 = 809,
VREvent_Reserved_0810 = 810,
VREvent_Reserved_0811 = 811,
VREvent_Reserved_0812 = 812,
VREvent_Reserved_0813 = 813,
VREvent_Reserved_0814 = 814,
VREvent_AudioSettingsHaveChanged = 820,
@@ -905,6 +1028,8 @@ enum EVREventType
VREvent_GpuSpeedSectionSettingChanged = 869,
VREvent_WindowsMRSectionSettingChanged = 870,
VREvent_OtherSectionSettingChanged = 871,
VREvent_AnyDriverSettingsChanged = 872,
VREvent_Reserved_0873 = 873,
VREvent_StatusUpdate = 900,
@@ -915,9 +1040,11 @@ enum EVREventType
VREvent_FirmwareUpdateStarted = 1100,
VREvent_FirmwareUpdateFinished = 1101,
VREvent_KeyboardClosed = 1200,
VREvent_KeyboardCharInput = 1201,
VREvent_KeyboardDone = 1202, // Sent when DONE button clicked on keyboard
VREvent_KeyboardClosed = 1200, // DEPRECATED: Sent only to the overlay it closed for, or globally if it was closed for a scene app
VREvent_KeyboardCharInput = 1201, // Sent on keyboard input. Warning: event type appears as both global event and overlay event
VREvent_KeyboardDone = 1202, // Sent when DONE button clicked on keyboard. Warning: event type appears as both global event and overlay event
VREvent_KeyboardOpened_Global = 1203, // Sent globally when the keyboard is opened. data.keyboard.overlayHandle is who it was opened for (scene app if k_ulOverlayHandleInvalid)
VREvent_KeyboardClosed_Global = 1204, // Sent globally when the keyboard is closed. data.keyboard.overlayHandle is who it was opened for (scene app if k_ulOverlayHandleInvalid)
//VREvent_ApplicationTransitionStarted = 1300,
//VREvent_ApplicationTransitionAborted = 1301,
@@ -975,6 +1102,13 @@ enum EVREventType
VREvent_Monitor_ShowHeadsetView = 2000, // data is process
VREvent_Monitor_HideHeadsetView = 2001, // data is process
VREvent_Audio_SetSpeakersVolume = 2100,
VREvent_Audio_SetSpeakersMute = 2101,
VREvent_Audio_SetMicrophoneVolume = 2102,
VREvent_Audio_SetMicrophoneMute = 2103,
VREvent_RenderModel_CountChanged = 2200, //Number of RenderModels in the system has changed
// Vendors are free to expose private events in this reserved region
VREvent_VendorSpecific_Reserved_Start = 10000,
VREvent_VendorSpecific_Reserved_End = 19999,
@@ -1056,6 +1190,10 @@ struct VREvent_Mouse_t
{
float x, y; // co-ords are in GL space, bottom left of the texture is 0,0
uint32_t button; // EVRMouseButton enum
// if from an event triggered by cursor input on an overlay that supports multiple cursors, this is the index of
// which tracked cursor the event is for
uint32_t cursorIndex;
};
/** used for simulated mouse wheel scroll */
@@ -1064,6 +1202,10 @@ struct VREvent_Scroll_t
float xdelta, ydelta;
uint32_t unused;
float viewportscale; // For scrolling on an overlay with laser mouse, this is the overlay's vertical size relative to the overlay height. Range: [0,1]
// if from an event triggered by cursor input on an overlay that supports multiple cursors, this is the index of
// which tracked cursor the event is for
uint32_t cursorIndex;
};
/** when in mouse input mode you can receive data from the touchpad, these events are only sent if the users finger
@@ -1108,9 +1250,13 @@ struct VREvent_Process_t
/** Used for a few events about overlays */
struct VREvent_Overlay_t
{
uint64_t overlayHandle;
uint64_t overlayHandle; // VROverlayHandle_t
uint64_t devicePath;
uint64_t memoryBlockId;
// if from an event triggered by cursor input on an overlay that supports multiple cursors, this is the index of
// which tracked cursor the event is for
uint32_t cursorIndex;
};
@@ -1120,11 +1266,12 @@ struct VREvent_Status_t
uint32_t statusState; // EVRState enum
};
/** Used for keyboard events **/
/** Used for keyboard events */
struct VREvent_Keyboard_t
{
char cNewInput[8]; // Up to 11 bytes of new input
uint64_t uUserValue; // Possible flags about the new input
char cNewInput[8]; // 7 bytes of utf8 + null
uint64_t uUserValue; // caller specified opaque token
uint64_t overlayHandle; // VROverlayHandle_t
};
struct VREvent_Ipd_t
@@ -1134,7 +1281,7 @@ struct VREvent_Ipd_t
struct VREvent_Chaperone_t
{
uint64_t m_nPreviousUniverse;
uint64_t m_nPreviousUniverse_deprecated;
uint64_t m_nCurrentUniverse;
};
@@ -1274,6 +1421,16 @@ struct VREvent_HDCPError_t
EHDCPError eCode;
};
struct VREvent_AudioVolumeControl_t
{
float fVolumeLevel;
};
struct VREvent_AudioMuteControl_t
{
bool bMute;
};
typedef union
{
VREvent_Reserved_t reserved;
@@ -1305,7 +1462,9 @@ typedef union
VREvent_ShowUI_t showUi;
VREvent_ShowDevTools_t showDevTools;
VREvent_HDCPError_t hdcpError;
/** NOTE!!! If you change this you MUST manually update openvr_interop.cs.py */
VREvent_AudioVolumeControl_t audioVolumeControl;
VREvent_AudioMuteControl_t audioMuteControl;
/** NOTE!!! If you change this you MUST manually update openvr_interop.cs.py and openvr_api_flat.h.py */
} VREvent_Data_t;
@@ -1587,6 +1746,7 @@ enum EVRNotificationError
VRNotificationError_NotificationQueueFull = 101,
VRNotificationError_InvalidOverlayHandle = 102,
VRNotificationError_SystemWithUserValueAlreadyExists = 103,
VRNotificationError_ServiceUnavailable = 104,
};
@@ -1705,6 +1865,8 @@ enum EVRInitError
VRInitError_Init_VRDashboardTokenFailure = 165,
VRInitError_Init_VRDashboardEnvironmentFailure = 166,
VRInitError_Init_VRDashboardPathFailure = 167,
VRInitError_Init_InstallationTooOld = 168,
VRInitError_Init_ClientVersionAlreadyProvided = 169,
VRInitError_Driver_Failed = 200,
VRInitError_Driver_Unknown = 201,
@@ -1833,6 +1995,11 @@ enum EVRInitError
VRInitError_Compositor_SystemLayerCreateSession = 493,
VRInitError_Compositor_CreateInverseDistortUVs = 494,
VRInitError_Compositor_CreateBackbufferDepth = 495,
VRInitError_Compositor_CannotDRMLeaseDisplay = 496,
VRInitError_Compositor_CannotConnectToDisplayServer = 497,
VRInitError_Compositor_GnomeNoDRMLeasing = 498,
VRInitError_Compositor_FailedToInitializeEncoder = 499,
VRInitError_Compositor_CreateBlurTexture = 500,
VRInitError_VendorSpecific_UnableToConnectToOculusRuntime = 1000,
VRInitError_VendorSpecific_WindowsNotInDevMode = 1001,
@@ -1854,6 +2021,12 @@ enum EVRInitError
VRInitError_VendorSpecific_OculusRuntimeBadInstall = 1114,
VRInitError_VendorSpecific_HmdFound_UnexpectedConfiguration_1 = 1115,
VRInitError_VendorSpecific_Oasis_UnlockRequired = 1150,
VRInitError_VendorSpecific_VRLink_OutdatedDriverMESA = 1200,
VRInitError_VendorSpecific_VRLink_OutdatedDriverNVIDIA = 1201,
VRInitError_VendorSpecific_VRLink_NoVideoSupport = 1202,
VRInitError_Steam_SteamInstallationNotFound = 2000,
// Strictly a placeholder
@@ -1958,8 +2131,8 @@ const uint32_t VRCompositor_ReprojectionAsync = 0x04; // This flag indicates the
const uint32_t VRCompositor_ReprojectionMotion = 0x08; // This flag indicates whether or not motion smoothing was triggered for this frame
const uint32_t VRCompositor_PredictionMask = 0xF0; // 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
const uint32_t VRCompositor_PredictionMask = 0xF0; // The runtime may predict more than one frame ahead if
// it detects the application is taking too long to render. These
// bits will contain the count of additional frames (normally zero).
// Use the VR_COMPOSITOR_ADDITIONAL_PREDICTED_FRAMES macro to read from
// the latest frame timing entry.
@@ -1971,6 +2144,9 @@ const uint32_t VRCompositor_ThrottleMask = 0xF00; // Number of frames the compos
#define VR_COMPOSITOR_ADDITIONAL_PREDICTED_FRAMES( timing ) ( ( ( timing ).m_nReprojectionFlags & vr::VRCompositor_PredictionMask ) >> 4 )
#define VR_COMPOSITOR_NUMBER_OF_THROTTLED_FRAMES( timing ) ( ( ( timing ).m_nReprojectionFlags & vr::VRCompositor_ThrottleMask ) >> 8 )
#if defined(__linux__) || defined(__APPLE__)
#pragma pack( push, 4 )
#endif
/** Provides a single frame's timing information to the app */
struct Compositor_FrameTiming
{
@@ -2013,7 +2189,12 @@ struct Compositor_FrameTiming
uint32_t m_nNumVSyncsReadyForUse;
uint32_t m_nNumVSyncsToFirstView;
float m_flTransferLatencyMs;
};
#if defined(__linux__) || defined(__APPLE__)
#pragma pack( pop )
#endif
/** Provides compositor benchmark results to the app */
struct Compositor_BenchmarkResults
@@ -2070,6 +2251,22 @@ struct ImuSample_t
uint32_t unOffScaleFlags;
};
enum class EVRDistortionChannel : uint32_t
{
Red = 0, // given a coordinate in distorted panel space, returns the coordinate to sample in rectilinear render space for the red channel
Green, // given a coordinate in distorted panel space, returns the coordinate to sample in rectilinear render space for the green channel
Blue, // given a coordinate in distorted panel space, returns the coordinate to sample in rectilinear render space for the blue channel
InverseRed, // given a coordinate in rectilinear render space, returns the corresponding coordinate in distorted panel space for the red channel
InverseGreen, // given a coordinate in rectilinear render space, returns the corresponding coordinate in distorted panel space for the green channel
InverseBlue, // given a coordinate in rectilinear render space, returns the corresponding coordinate in distorted panel space for the blue channel
Count
};
struct DistortionCoordinate_t
{
float u, v; // 0..1
};
#pragma pack( pop )
// figure out how to import from the VR API dll
@@ -2237,7 +2434,9 @@ VR_CAMERA_DECL_ALIGN( 8 ) struct CameraVideoStreamFrame_t
// ivrsettings.h
#ifndef OPENVR_NO_STL
#include <string>
#endif
namespace vr
{
@@ -2249,6 +2448,7 @@ namespace vr
VRSettingsError_ReadFailed = 3,
VRSettingsError_JsonParseFailed = 4,
VRSettingsError_UnsetSettingHasNoDefault = 5, // This will be returned if the setting does not appear in the appropriate default file and has not been set
VRSettingsError_AccessDenied = 6,
};
// The maximum length of a settings key
@@ -2309,10 +2509,12 @@ namespace vr
{
m_pSettings->SetString( pchSection, pchSettingsKey, pchValue, peError );
}
#ifndef OPENVR_NO_STL
void SetString( const std::string & sSection, const std::string & sSettingsKey, const std::string & sValue, EVRSettingsError *peError = nullptr )
{
m_pSettings->SetString( sSection.c_str(), sSettingsKey.c_str(), sValue.c_str(), peError );
}
#endif
bool GetBool( const char *pchSection, const char *pchSettingsKey, EVRSettingsError *peError = nullptr )
{
@@ -2330,6 +2532,7 @@ namespace vr
{
m_pSettings->GetString( pchSection, pchSettingsKey, pchValue, unValueLen, peError );
}
#ifndef OPENVR_NO_STL
std::string GetString( const std::string & sSection, const std::string & sSettingsKey, EVRSettingsError *peError = nullptr )
{
char buf[4096];
@@ -2342,6 +2545,7 @@ namespace vr
else
return "";
}
#endif
void RemoveSection( const char *pchSection, EVRSettingsError *peError = nullptr )
{
@@ -2357,6 +2561,7 @@ namespace vr
//-----------------------------------------------------------------------------
// steamvr keys
static const char * const k_pch_SteamVR_Section = "steamvr";
static const char * const k_pch_SteamVR_Contrast_Float = "contrast";
static const char * const k_pch_SteamVR_RequireHmd_String = "requireHmd";
static const char * const k_pch_SteamVR_ForcedDriverKey_String = "forcedDriver";
static const char * const k_pch_SteamVR_ForcedHmdKey_String = "forcedHmd";
@@ -2374,6 +2579,7 @@ namespace vr
static const char * const k_pch_SteamVR_GridColor_String = "gridColor";
static const char * const k_pch_SteamVR_PlayAreaColor_String = "playAreaColor";
static const char * const k_pch_SteamVR_TrackingLossColor_String = "trackingLossColor";
static const char * const k_pch_SteamVR_StartColor_String = "startColor";
static const char * const k_pch_SteamVR_ShowStage_Bool = "showStage";
static const char * const k_pch_SteamVR_DrawTrackingReferences_Bool = "drawTrackingReferences";
static const char * const k_pch_SteamVR_ActivateMultipleDrivers_Bool = "activateMultipleDrivers";
@@ -2386,10 +2592,17 @@ namespace vr
static const char * const k_pch_SteamVR_MaxRecommendedResolution_Int32 = "maxRecommendedResolution";
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_FoveatedSharpening_Bool = "sharpening";
static const char * const k_pch_SteamVR_FoveatedSharpeningOverride_Int32 = "sharpeningOverride";
static const char * const k_pch_SteamVR_FramesToThrottle_Int32 = "framesToThrottle";
static const char * const k_pch_SteamVR_AdditionalFramesToPredict_Int32 = "additionalFramesToPredict";
static const char * const k_pch_SteamVR_WorldScale_Float = "worldScale";
static const char * const k_pch_SteamVR_FovScale_Int32 = "fovScale";
static const char * const k_pch_SteamVR_FovScaleInner_Int32 = "fovScaleInner";
static const char * const k_pch_SteamVR_FovScaleUpper_Int32 = "fovScaleUpper";
static const char * const k_pch_SteamVR_FovScaleLower_Int32 = "fovScaleLower";
static const char * const k_pch_SteamVR_FovScaleFormat_Int32 = "fovScaleFormat";
static const char * const k_pch_SteamVR_FovScaleLetterboxed_Bool = "fovScaleLetterboxed";
static const char * const k_pch_SteamVR_DisableAsyncReprojection_Bool = "disableAsync";
static const char * const k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking";
static const char * const k_pch_SteamVR_DefaultMirrorView_Int32 = "mirrorView";
@@ -2413,7 +2626,6 @@ namespace vr
static const char * const k_pch_SteamVR_EnableLinuxVulkanAsync_Bool = "enableLinuxVulkanAsync";
static const char * const k_pch_SteamVR_AllowDisplayLockedMode_Bool = "allowDisplayLockedMode";
static const char * const k_pch_SteamVR_HaveStartedTutorialForNativeChaperoneDriver_Bool = "haveStartedTutorialForNativeChaperoneDriver";
static const char * const k_pch_SteamVR_ForceWindows32bitVRMonitor = "forceWindows32BitVRMonitor";
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_EnableSharedResourceJournaling = "enableSharedResourceJournaling";
@@ -2434,6 +2646,13 @@ namespace vr
static const char * const k_pch_SteamVR_HDCPLegacyCompatibility_Bool = "hdcp14legacyCompatibility";
static const char * const k_pch_SteamVR_DisplayPortTrainingMode_Int = "displayPortTrainingMode";
static const char * const k_pch_SteamVR_UsePrism_Bool = "usePrism";
static const char * const k_pch_SteamVR_AllowFallbackMirrorWindowLinux_Bool = "allowFallbackMirrorWindowLinux";
static const char * const k_pch_SteamVR_DisableKeyboardPrivacy_Bool = "disableKeyboardPrivacy";
//-----------------------------------------------------------------------------
// openxr keys
static const char * const k_pch_OpenXR_Section = "openxr";
static const char * const k_pch_OpenXR_MetaUnityPluginCompatibility_Int32 = "metaUnityPluginCompatibility";
//-----------------------------------------------------------------------------
// direct mode keys
@@ -2484,6 +2703,8 @@ namespace vr
static const char * const k_pch_UserInterface_HidePopupsWhenStatusMinimized_Bool = "HidePopupsWhenStatusMinimized";
static const char * const k_pch_UserInterface_Screenshots_Bool = "screenshots";
static const char * const k_pch_UserInterface_ScreenshotType_Int = "screenshotType";
static const char * const k_pch_UserInterface_CheckStatusInterval_Int = "vrmStatusCheckInterval";
static const char * const k_pch_UserInterface_CheckForSteam_Bool = "vrmCheckForSteam";
//-----------------------------------------------------------------------------
// notification keys
@@ -2571,6 +2792,7 @@ namespace vr
static const char * const k_pch_Power_ReturnToWatchdogTimeout_Float = "returnToWatchdogTimeout";
static const char * const k_pch_Power_AutoLaunchSteamVROnButtonPress = "autoLaunchSteamVROnButtonPress";
static const char * const k_pch_Power_PauseCompositorOnStandby_Bool = "pauseCompositorOnStandby";
static const char * const k_pch_Power_OverrideWindowsPowerScheme_Bool = "overrideWindowsPowerScheme";
//-----------------------------------------------------------------------------
// dashboard keys
@@ -2578,11 +2800,13 @@ namespace vr
static const char * const k_pch_Dashboard_EnableDashboard_Bool = "enableDashboard";
static const char * const k_pch_Dashboard_ArcadeMode_Bool = "arcadeMode";
static const char * const k_pch_Dashboard_Position = "position";
static const char * const k_pch_Dashboard_DesktopScale = "desktopScale";
static const char * const k_pch_Dashboard_DashboardScale = "dashboardScale";
static const char * const k_pch_Dashboard_UseStandaloneSystemLayer = "standaloneSystemLayer";
static const char * const k_pch_Dashboard_StickyDashboard = "stickyDashboard";
static const char * const k_pch_Dashboard_AllowSteamOverlays_Bool = "allowSteamOverlays";
static const char * const k_pch_Dashboard_AllowVRGamepadUI_Bool = "allowVRGamepadUI";
static const char * const k_pch_Dashboard_SteamMatchesHMDFramerate = "steamMatchesHMDFramerate";
static const char * const k_pch_Dashboard_GrabHandleAcceleration = "grabHandleAcceleration";
static const char * const k_pch_Dashboard_OverlayBacksideColor_String = "overlayBacksideColor";
//-----------------------------------------------------------------------------
// model skin keys
@@ -2593,6 +2817,8 @@ namespace vr
static const char * const k_pch_Driver_Enable_Bool = "enable";
static const char * const k_pch_Driver_BlockedBySafemode_Bool = "blocked_by_safe_mode";
static const char * const k_pch_Driver_LoadPriority_Int32 = "loadPriority";
static const char * const k_pch_Driver_Hmd_AllowsClientToControlTextureIndex_Bool = "hmdAllowsClientToControlTextureIndex";
static const char * const k_pch_Driver_ForceSystemLayerUseAppPoses_Bool = "forceSystemLayerUseAppPoses";
//-----------------------------------------------------------------------------
// web interface keys
@@ -2634,6 +2860,9 @@ namespace vr
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";
static const char* const k_pch_LastKnown_ActualHMDDriver_String = "ActualHMDDriver";
static const char* const k_pch_LastKnown_HMDSerialNumber_String = "HMDSerialNumber";
static const char* const k_pch_LastKnown_HMDRemoteClientID_String = "RemoteClientID"; // uint64 in string
//-----------------------------------------------------------------------------
// Dismissed warnings
@@ -2650,6 +2879,10 @@ namespace vr
// Log of GPU performance
static const char * const k_pch_GpuSpeed_Section = "GpuSpeed";
//-----------------------------------------------------------------------------
// OpenXR Render Model Extension keys
static const char *const k_pch_XRRenderModelCache_Section = "XRRenderModelUuidCache";
} // namespace vr
// iservertrackeddevicedriver.h
@@ -2764,9 +2997,7 @@ public:
* exceed the length of the supplied buffer should be truncated and null terminated */
virtual void DebugRequest( const char *pchRequest, char *pchResponseBuffer, uint32_t unResponseBufferSize ) = 0;
// ------------------------------------
// Tracking Methods
// ------------------------------------
/** This interface is unused, and will never be called. */
virtual DriverPose_t GetPose() = 0;
};
@@ -2816,9 +3047,12 @@ namespace vr
* the upper left of that eye's viewport and 1,1 in the lower right of that eye's viewport. */
virtual DistortionCoordinates_t ComputeDistortion( EVREye eEye, float fU, float fV ) = 0;
/** Computes the result of the inverse distortion function for the specified eye, channel, and input UV.
* Operation can fail, returns success/failure, on success result is stored in *pResult */
virtual bool ComputeInverseDistortion( HmdVector2_t *pResult, EVREye eEye, uint32_t unChannel, float fU, float fV ) = 0;
};
static const char *IVRDisplayComponent_Version = "IVRDisplayComponent_002";
static const char *IVRDisplayComponent_Version = "IVRDisplayComponent_003";
}
@@ -2885,6 +3119,9 @@ namespace vr
// Hmd pose used to render this layer.
vr::HmdMatrix34_t mHmdPose;
// Time in seconds from now that mHmdPose was predicted to.
float flHmdPosePredictionTimeInSecondsFromNow;
};
virtual void SubmitLayer( const SubmitLayerPerEye_t( &perEye )[ 2 ] ) {}
@@ -2901,10 +3138,15 @@ namespace vr
virtual void PostPresent( const Throttling_t *pThrottling ) {}
/** Called to get additional frame timing stats from driver. Check m_nSize for versioning (new members will be added to end only). */
virtual void GetFrameTiming( DriverDirectMode_FrameTiming *pFrameTiming ) {}
virtual void GetFrameTiming( DriverDirectMode_FrameTiming *pFrameTiming )
{
/** VRCompositor_ReprojectionMotion_XXX flags get passed in, and since these overlap with VRCompositor_ThrottleMask, they need
* to be cleared out if this function isn't implemented; otherwise, those settings will get interpreted as throttling. */
pFrameTiming->m_nReprojectionFlags = 0;
}
};
static const char *IVRDriverDirectModeComponent_Version = "IVRDriverDirectModeComponent_008";
static const char *IVRDriverDirectModeComponent_Version = "IVRDriverDirectModeComponent_009";
}
@@ -3131,6 +3373,10 @@ class CVRPropertyHelpers
public:
CVRPropertyHelpers( IVRProperties * pProperties ) : m_pProperties( pProperties ) {}
/** Gets the typed property according to the caller's expected return type. */
template <typename T>
T GetTypedProperty( vr::PropertyContainerHandle_t ulContainer, vr::ETrackedDeviceProperty prop, vr::ETrackedPropertyError *peError );
/** Returns a scaler property. If the device index is not valid or the property value type does not match,
* this function will return false. */
bool GetBoolProperty( PropertyContainerHandle_t ulContainerHandle, ETrackedDeviceProperty prop, ETrackedPropertyError *pError = 0L );
@@ -3147,7 +3393,6 @@ public:
* null. Strings will always fit in buffers of k_unMaxPropertyStringSize characters. */
uint32_t GetProperty( PropertyContainerHandle_t ulContainerHandle, ETrackedDeviceProperty prop, VR_OUT_STRING() void *pvBuffer, uint32_t unBufferSize, PropertyTypeTag_t *punTag, ETrackedPropertyError *pError = 0L );
/** Returns a string property. If the device index is not valid or the property is not a string type this function will
* return 0. Otherwise it returns the length of the number of bytes necessary to hold this string including the trailing
* null. Strings will always fit in buffers of k_unMaxPropertyStringSize characters. */
@@ -3200,6 +3445,71 @@ private:
};
/** Returns a string property as a std::string. If the device index is not valid or the property is not a string type this function will
* return an empty string. */
template <>
inline std::string CVRPropertyHelpers::GetTypedProperty( vr::PropertyContainerHandle_t ulContainer, vr::ETrackedDeviceProperty prop, vr::ETrackedPropertyError *peError )
{
return GetStringProperty( ulContainer, prop, peError );
}
template <>
inline bool CVRPropertyHelpers::GetTypedProperty( vr::PropertyContainerHandle_t ulContainer, vr::ETrackedDeviceProperty prop, vr::ETrackedPropertyError *peError )
{
return GetBoolProperty( ulContainer, prop, peError );
}
template <>
inline float CVRPropertyHelpers::GetTypedProperty( vr::PropertyContainerHandle_t ulContainer, vr::ETrackedDeviceProperty prop, vr::ETrackedPropertyError *peError )
{
return GetFloatProperty( ulContainer, prop, peError );
}
template <>
inline int32_t CVRPropertyHelpers::GetTypedProperty( vr::PropertyContainerHandle_t ulContainer, vr::ETrackedDeviceProperty prop, vr::ETrackedPropertyError *peError )
{
return GetInt32Property( ulContainer, prop, peError );
}
template <>
inline uint64_t CVRPropertyHelpers::GetTypedProperty( vr::PropertyContainerHandle_t ulContainer, vr::ETrackedDeviceProperty prop, vr::ETrackedPropertyError *peError )
{
return GetUint64Property( ulContainer, prop, peError );
}
template <>
inline HmdVector2_t CVRPropertyHelpers::GetTypedProperty( vr::PropertyContainerHandle_t ulContainer, vr::ETrackedDeviceProperty prop, vr::ETrackedPropertyError *peError )
{
return GetVec2Property( ulContainer, prop, peError );
}
template <>
inline HmdVector3_t CVRPropertyHelpers::GetTypedProperty( vr::PropertyContainerHandle_t ulContainer, vr::ETrackedDeviceProperty prop, vr::ETrackedPropertyError *peError )
{
return GetVec3Property( ulContainer, prop, peError );
}
template <>
inline HmdVector4_t CVRPropertyHelpers::GetTypedProperty( vr::PropertyContainerHandle_t ulContainer, vr::ETrackedDeviceProperty prop, vr::ETrackedPropertyError *peError )
{
return GetVec4Property( ulContainer, prop, peError );
}
template <>
inline double CVRPropertyHelpers::GetTypedProperty( vr::PropertyContainerHandle_t ulContainer, vr::ETrackedDeviceProperty prop, vr::ETrackedPropertyError *peError )
{
return GetDoubleProperty( ulContainer, prop, peError );
}
inline uint32_t CVRPropertyHelpers::GetProperty( PropertyContainerHandle_t ulContainerHandle, ETrackedDeviceProperty prop, VR_OUT_STRING() void *pvBuffer, uint32_t unBufferSize, PropertyTypeTag_t *punTag, ETrackedPropertyError *pError )
{
PropertyRead_t batch;
@@ -3369,19 +3679,19 @@ inline uint64_t CVRPropertyHelpers::GetUint64Property( PropertyContainerHandle_t
inline HmdVector2_t CVRPropertyHelpers::GetVec2Property( PropertyContainerHandle_t ulContainerHandle, ETrackedDeviceProperty prop, ETrackedPropertyError *pError )
{
HmdVector2_t defaultval = { 0 };
HmdVector2_t defaultval = { { 0, 0 } };
return GetPropertyHelper<HmdVector2_t>( ulContainerHandle, prop, pError, defaultval, k_unHmdVector2PropertyTag );
}
inline HmdVector3_t CVRPropertyHelpers::GetVec3Property( PropertyContainerHandle_t ulContainerHandle, ETrackedDeviceProperty prop, ETrackedPropertyError *pError )
{
HmdVector3_t defaultval = { 0 };
HmdVector3_t defaultval = { { 0, 0, 0 } };
return GetPropertyHelper<HmdVector3_t>( ulContainerHandle, prop, pError, defaultval, k_unHmdVector3PropertyTag );
}
inline HmdVector4_t CVRPropertyHelpers::GetVec4Property( PropertyContainerHandle_t ulContainerHandle, ETrackedDeviceProperty prop, ETrackedPropertyError *pError )
{
HmdVector4_t defaultval = { 0 };
HmdVector4_t defaultval = { { 0, 0, 0, 0 } };
return GetPropertyHelper<HmdVector4_t>( ulContainerHandle, prop, pError, defaultval, k_unHmdVector4PropertyTag );
}
@@ -3515,10 +3825,6 @@ inline bool CVRPropertyHelpers::IsPropertySet( PropertyContainerHandle_t ulConta
namespace vr
{
typedef uint64_t VRInputComponentHandle_t;
static const VRInputComponentHandle_t k_ulInvalidInputComponentHandle = 0;
enum EVRScalarType
{
VRScalarType_Absolute = 0,
@@ -3557,9 +3863,20 @@ namespace vr
/** Updates a skeleton component. */
virtual EVRInputError UpdateSkeletonComponent( VRInputComponentHandle_t ulComponent, EVRSkeletalMotionRange eMotionRange, const VRBoneTransform_t *pTransforms, uint32_t unTransformCount ) = 0;
/** Creates a pose component */
virtual EVRInputError CreatePoseComponent( PropertyContainerHandle_t ulContainer, const char *pchName, VRInputComponentHandle_t *pHandle ) = 0;
/** Updates a pose component. */
virtual EVRInputError UpdatePoseComponent( VRInputComponentHandle_t ulComponent, const HmdMatrix34_t *pMatPoseOffset, double fTimeOffset ) = 0;
/** Creates an eye tracking component **/
virtual EVRInputError CreateEyeTrackingComponent( PropertyContainerHandle_t ulContainer, const char *pchName, VRInputComponentHandle_t *pHandle ) = 0;
/** Updates an eye tracking component. */
virtual EVRInputError UpdateEyeTrackingComponent( VRInputComponentHandle_t ulComponent, const VREyeTrackingData_t *pEyeTrackingData, double fTimeOffset ) = 0;
};
static const char * const IVRDriverInput_Version = "IVRDriverInput_003";
static const char * const IVRDriverInput_Version = "IVRDriverInput_004";
} // namespace vr
@@ -3854,7 +4171,7 @@ static const uint64_t k_ulInvalidIOBufferHandle = 0;
virtual bool HasReaders( vr::IOBufferHandle_t ulBuffer ) = 0;
};
static const char *IVRIOBuffer_Version = "IVRIOBuffer_002";
static const char * const IVRIOBuffer_Version = "IVRIOBuffer_002";
}
// ivrdrivermanager.h
@@ -3974,6 +4291,83 @@ namespace vr
} // namespace vr
// ivripcresourcemanagerclient.h
namespace vr
{
// -----------------------------------------------------------------------------
// Purpose: Interact with the IPCResourceManager
// -----------------------------------------------------------------------------
class IVRIPCResourceManagerClient
{
public:
/** Create a new tracked Vulkan Image
*
* nImageFormat: in VkFormat
*/
virtual bool NewSharedVulkanImage( uint32_t nImageFormat, uint32_t nWidth, uint32_t nHeight, bool bRenderable, bool bMappable, bool bComputeAccess, uint32_t unMipLevels, uint32_t unArrayLayerCount, uint32_t unAdditionalVkCreateFlags, uint32_t unAdditionalVkUsageFlags, vr::SharedTextureHandle_t *pSharedHandle ) = 0;
/** Create a new tracked Vulkan Buffer */
virtual bool NewSharedVulkanBuffer( uint32_t nSize, uint32_t nUsageFlags, vr::SharedTextureHandle_t *pSharedHandle ) = 0;
/** Create a new tracked Vulkan Semaphore */
virtual bool NewSharedVulkanSemaphore( bool bCounting, vr::SharedTextureHandle_t *pSharedHandle ) = 0;
/** Grab a reference to hSharedHandle, and optionally generate a new IPC handle if pNewIpcHandle is not nullptr */
virtual bool RefResource( vr::SharedTextureHandle_t hSharedHandle, uint64_t *pNewIpcHandle ) = 0;
/** Drop a reference to hSharedHandle */
virtual bool UnrefResource( vr::SharedTextureHandle_t hSharedHandle ) = 0;
/* Get all the DRM formats we support using DMA-BUF images for.
*
* pOutFormatCount and pOutFormats function like Vulkan:
* - If pOutFormats is NULL, then pOutFormatCount will be overwritten with the format count.
* - If pOutFormats is not NULL, then pOutFormatCount specifies the size of the pOutFormats array,
* and will be overwritten with the number of formats written to the array.
*
* If the function fails, false is returned, and pOutFormatCount will be 0.
* Supported on Linux only.
*/
virtual bool GetDmabufFormats( uint32_t *pOutFormatCount, uint32_t *pOutFormats ) = 0;
/** Get dmabuf modifiers we are allowed to use.
*
* pOutModifierCount and pOutModifiers function like Vulkan:
* - If pOutModifiers is NULL, then pOutModifierCount will be overwritten with the modifier count.
* - If pOutModifiers is not NULL, then pOutModifierCount specifies the size of the pOutModifiers array,
* and will be overwritten with the number of modifiers written to the array.
*
* If modifiers are not supported, a single DRM_FORMAT_MOD_INVALID entry will be returned.
*
* If the function fails, false is returned, and pOutModifierCount will be 0.
* Supported on Linux only.
*/
virtual bool GetDmabufModifiers( vr::EVRApplicationType eApplicationType, uint32_t unDRMFormat, uint32_t *pOutModifierCount, uint64_t *pOutModifiers ) = 0;
/** Import a dmabuf directly.
* Note: the FD you pass in will be dup'ed, so you must close it yourself.
* This function does NOT take ownership of the fd you pass in.
* Supported on Linux only.
*/
virtual bool ImportDmabuf( vr::EVRApplicationType eApplicationType, vr::DmabufAttributes_t *pDmabufAttributes, vr::SharedTextureHandle_t *pSharedHandle ) = 0;
/** Consumes an IPC handle (eg. from RefResource) and returns a file-descriptor.
* Caller acquires ownership of fd and is responsible for closing it.
* Supported on Linux only.
*/
virtual bool ReceiveSharedFd( uint64_t ulIpcHandle, int *pOutFd ) = 0;
protected:
/** Non-deletable */
virtual ~IVRIPCResourceManagerClient() {};
};
static const char *IVRIPCResourceManagerClient_Version = "IVRIPCResourceManagerClient_003";
}
namespace vr
@@ -3992,6 +4386,7 @@ namespace vr
IVRDriverManager_Version,
IVRResources_Version,
IVRCompositorPluginProvider_Version,
IVRIPCResourceManagerClient_Version,
nullptr
};
@@ -4140,6 +4535,16 @@ namespace vr
return m_pVRDriverSpatialAnchors;
}
IVRIPCResourceManagerClient *VRIPCResourceManager()
{
if ( m_pVRIPCResourceManager == nullptr )
{
EVRInitError eError;
m_pVRIPCResourceManager = ( IVRIPCResourceManagerClient * )VRDriverContext()->GetGenericInterface( IVRIPCResourceManagerClient_Version, &eError );
}
return m_pVRIPCResourceManager;
}
private:
CVRPropertyHelpers m_propertyHelpers;
CVRHiddenAreaHelpers m_hiddenAreaHelpers;
@@ -4155,6 +4560,7 @@ namespace vr
IVRDriverInput *m_pVRDriverInput;
IVRIOBuffer *m_pVRIOBuffer;
IVRDriverSpatialAnchors *m_pVRDriverSpatialAnchors;
IVRIPCResourceManagerClient *m_pVRIPCResourceManager;
};
inline COpenVRDriverContext &OpenVRInternal_ModuleServerDriverContext()
@@ -4177,6 +4583,7 @@ namespace vr
inline IVRDriverInput *VR_CALLTYPE VRDriverInput() { return OpenVRInternal_ModuleServerDriverContext().VRDriverInput(); }
inline IVRIOBuffer *VR_CALLTYPE VRIOBuffer() { return OpenVRInternal_ModuleServerDriverContext().VRIOBuffer(); }
inline IVRDriverSpatialAnchors *VR_CALLTYPE VRDriverSpatialAnchors() { return OpenVRInternal_ModuleServerDriverContext().VRDriverSpatialAnchors(); }
inline IVRIPCResourceManagerClient *VR_CALLTYPE VRIPCResourceManager() { return OpenVRInternal_ModuleServerDriverContext().VRIPCResourceManager(); }
inline void COpenVRDriverContext::Clear()
{
@@ -4191,11 +4598,13 @@ namespace vr
m_pVRDriverInput = nullptr;
m_pVRIOBuffer = nullptr;
m_pVRDriverSpatialAnchors = nullptr;
m_pVRIPCResourceManager = nullptr;
}
inline EVRInitError COpenVRDriverContext::InitServer()
{
Clear();
// VRIPCResourceManager initialized async.
if ( !VRServerDriverHost()
|| !VRSettings()
|| !VRProperties()
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
{ "major": 5, "minor": 8, "patch": 11, "updateMessage": "", "optionalMessage": "" }
{ "major": 5, "minor": 8, "patch": 17, "updateMessage": "", "optionalMessage": "" }