From 059520331cb4dce8893b3eafffd767c9cb0fc58e Mon Sep 17 00:00:00 2001 From: Lubos Date: Sat, 13 Aug 2022 15:39:41 +0200 Subject: [PATCH] OpenXR - Rotation mirroring fixed in a few games --- Common/VR/VRTweaks.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Common/VR/VRTweaks.cpp b/Common/VR/VRTweaks.cpp index d1f7b6e588..edd21b45f4 100644 --- a/Common/VR/VRTweaks.cpp +++ b/Common/VR/VRTweaks.cpp @@ -48,15 +48,19 @@ void VR_TweakMirroring(float* projMatrix) { VR_SetConfig(VR_CONFIG_MIRROR_AXIS_X, projMatrix[0] < 0); VR_SetConfig(VR_CONFIG_MIRROR_AXIS_Y, projMatrix[5] < 0); VR_SetConfig(VR_CONFIG_MIRROR_AXIS_Z, projMatrix[10] > 0); - if (projMatrix[10] < 0) { //GTA - VR_SetConfig(VR_CONFIG_MIRROR_PITCH, false); - VR_SetConfig(VR_CONFIG_MIRROR_YAW, false); - VR_SetConfig(VR_CONFIG_MIRROR_ROLL, false); - } else if (projMatrix[5] < 0) { //PES + if ((projMatrix[0] < 0) && (projMatrix[10] < 0)) { //e.g. Dante's inferno VR_SetConfig(VR_CONFIG_MIRROR_PITCH, true); VR_SetConfig(VR_CONFIG_MIRROR_YAW, true); VR_SetConfig(VR_CONFIG_MIRROR_ROLL, false); - } else { //Lego + } else if (projMatrix[10] < 0) { //e.g. GTA - Liberty city + VR_SetConfig(VR_CONFIG_MIRROR_PITCH, false); + VR_SetConfig(VR_CONFIG_MIRROR_YAW, false); + VR_SetConfig(VR_CONFIG_MIRROR_ROLL, false); + } else if (projMatrix[5] < 0) { //e.g. PES 2014 + VR_SetConfig(VR_CONFIG_MIRROR_PITCH, true); + VR_SetConfig(VR_CONFIG_MIRROR_YAW, true); + VR_SetConfig(VR_CONFIG_MIRROR_ROLL, false); + } else { //e.g. Lego Pirates VR_SetConfig(VR_CONFIG_MIRROR_PITCH, false); VR_SetConfig(VR_CONFIG_MIRROR_YAW, true); VR_SetConfig(VR_CONFIG_MIRROR_ROLL, true);