From f4f7dc570f23ddd855213bcd140f0ae73e40bba0 Mon Sep 17 00:00:00 2001 From: Lubos Date: Fri, 28 Oct 2022 14:59:12 +0200 Subject: [PATCH] OpenXR - Make VR camera parameters floating numbers --- Common/VR/PPSSPPVR.cpp | 6 +++--- Common/VR/VRRenderer.cpp | 2 +- Core/Config.cpp | 6 +++--- Core/Config.h | 6 +++--- UI/GameSettingsScreen.cpp | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Common/VR/PPSSPPVR.cpp b/Common/VR/PPSSPPVR.cpp index a3f550bee..b2daa2fb8 100644 --- a/Common/VR/PPSSPPVR.cpp +++ b/Common/VR/PPSSPPVR.cpp @@ -319,9 +319,9 @@ bool StartVRRender() { // Set customizations VR_SetConfig(VR_CONFIG_6DOF_ENABLED, g_Config.bEnable6DoF); - VR_SetConfig(VR_CONFIG_CAMERA_DISTANCE, g_Config.iCameraDistance); - VR_SetConfig(VR_CONFIG_CANVAS_DISTANCE, g_Config.iCanvasDistance); - VR_SetConfig(VR_CONFIG_FOV_SCALE, g_Config.iFieldOfViewPercentage); + VR_SetConfig(VR_CONFIG_CAMERA_DISTANCE, g_Config.fCameraDistance * 1000); + VR_SetConfig(VR_CONFIG_CANVAS_DISTANCE, g_Config.fCanvasDistance); + VR_SetConfig(VR_CONFIG_FOV_SCALE, g_Config.fFieldOfViewPercentage); VR_SetConfig(VR_CONFIG_MIRROR_UPDATED, false); return true; } diff --git a/Common/VR/VRRenderer.cpp b/Common/VR/VRRenderer.cpp index 5a8084941..a43b169f8 100644 --- a/Common/VR/VRRenderer.cpp +++ b/Common/VR/VRRenderer.cpp @@ -339,7 +339,7 @@ bool VR_InitFrame( engine_t* engine ) { vrMatrix[matrix].M[2][3] -= hmdposition.z * (vrConfig[VR_CONFIG_MIRROR_AXIS_Z] ? -1.0f : 1.0f) * scale; } if (abs(vrConfig[VR_CONFIG_CAMERA_DISTANCE]) > 0) { - XrVector3f forward = {0.0f, 0.0f, (float)vrConfig[VR_CONFIG_CAMERA_DISTANCE] * scale}; + XrVector3f forward = {0.0f, 0.0f, (float)vrConfig[VR_CONFIG_CAMERA_DISTANCE] * 0.001f * scale}; forward = XrQuaternionf_Rotate(invView.orientation, forward); forward = XrVector3f_ScalarMultiply(forward, vrConfig[VR_CONFIG_MIRROR_AXIS_Z] ? -1.0f : 1.0f); vrMatrix[matrix].M[0][3] += forward.x; diff --git a/Core/Config.cpp b/Core/Config.cpp index 91457df78..da71b8bff 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -1208,9 +1208,9 @@ static ConfigSetting vrSettings[] = { ConfigSetting("VREnable", &g_Config.bEnableVR, true), ConfigSetting("VREnable6DoF", &g_Config.bEnable6DoF, true), ConfigSetting("VREnableStereo", &g_Config.bEnableStereo, false), - ConfigSetting("VRCameraDistance", &g_Config.iCameraDistance, 0), - ConfigSetting("VRCanvasDistance", &g_Config.iCanvasDistance, 6), - ConfigSetting("VRFieldOfView", &g_Config.iFieldOfViewPercentage, 100), + ConfigSetting("VRCameraDistance", &g_Config.fCameraDistance, 0.0f), + ConfigSetting("VRCanvasDistance", &g_Config.fCanvasDistance, 6.0f), + ConfigSetting("VRFieldOfView", &g_Config.fFieldOfViewPercentage, 100.0f), ConfigSetting(false), }; diff --git a/Core/Config.h b/Core/Config.h index 5a89c8973..f42fd7772 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -463,9 +463,9 @@ public: bool bEnableVR; bool bEnable6DoF; bool bEnableStereo; - int iCameraDistance; - int iCanvasDistance; - int iFieldOfViewPercentage; + float fCameraDistance; + float fCanvasDistance; + float fFieldOfViewPercentage; // Debugger int iDisasmWindowX; diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index 706eb07cf..5dce2e89c 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -1165,9 +1165,9 @@ void GameSettingsScreen::CreateViews() { vrStereo->SetEnabledPtr(&g_Config.bEnableVR); vrSettings->Add(new ItemHeader(vr->T("VR camera"))); - vrSettings->Add(new PopupSliderChoice(&g_Config.iCameraDistance, -10, 10, vr->T("Camera distance adjust", "Camera distance adjust"), 1, screenManager(), "")); - vrSettings->Add(new PopupSliderChoice(&g_Config.iCanvasDistance, 1, 10, vr->T("Distance to 2D menus and scenes", "Distance to 2D menus and scenes"), 1, screenManager(), "")); - vrSettings->Add(new PopupSliderChoice(&g_Config.iFieldOfViewPercentage, 100, 200, vr->T("Field of view scale", "Headset's field of view scale"), 10, screenManager(), vr->T("% of native FoV"))); + vrSettings->Add(new PopupSliderChoiceFloat(&g_Config.fCameraDistance, -10.0f, 10.0f, vr->T("Camera distance adjust", "Camera distance adjust"), 1.0f, screenManager(), "")); + vrSettings->Add(new PopupSliderChoiceFloat(&g_Config.fCanvasDistance, 1.0f, 10.0f, vr->T("Distance to 2D menus and scenes", "Distance to 2D menus and scenes"), 1.0f, screenManager(), "")); + vrSettings->Add(new PopupSliderChoiceFloat(&g_Config.fFieldOfViewPercentage, 100.0f, 200.0f, vr->T("Field of view scale", "Headset's field of view scale"), 10.0f, screenManager(), vr->T("% of native FoV"))); } }