From 5de90aa79d748c5e90fe918ec002bfb3dc494a51 Mon Sep 17 00:00:00 2001 From: Holger Frydrych Date: Mon, 28 Aug 2023 20:27:08 +0200 Subject: [PATCH] Fix view flickering when exiting binoculars --- Sources/CryGame C++/Solution1/CryGame/VRManager.cpp | 4 +++- Sources/CryGame C++/Solution1/CryGame/VRManager.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Sources/CryGame C++/Solution1/CryGame/VRManager.cpp b/Sources/CryGame C++/Solution1/CryGame/VRManager.cpp index e5a38cb..f1058fd 100644 --- a/Sources/CryGame C++/Solution1/CryGame/VRManager.cpp +++ b/Sources/CryGame C++/Solution1/CryGame/VRManager.cpp @@ -405,6 +405,8 @@ void VRManager::FinishFrame() IDirect3DTexture9 *tex = eye == 2 ? m_d3d->hudTexture.Get() : m_d3d->eyeTextures[eye].Get(); dxvkTransitionImageLayout(m_d3d->device.Get(), tex, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, origLayout[eye]); } + + m_wasBinocular = m_pGame->AreBinocularsActive(); } vector2di VRManager::GetRenderSize() const @@ -438,7 +440,7 @@ void VRManager::ModifyViewCamera(int eye, CCamera& cam) return; } - if (m_pGame->AreBinocularsActive()) + if (m_pGame->AreBinocularsActive() || m_wasBinocular) { cam = m_binocularOriginalPlayerCam; } diff --git a/Sources/CryGame C++/Solution1/CryGame/VRManager.h b/Sources/CryGame C++/Solution1/CryGame/VRManager.h index 8fe2fc6..dd6788b 100644 --- a/Sources/CryGame C++/Solution1/CryGame/VRManager.h +++ b/Sources/CryGame C++/Solution1/CryGame/VRManager.h @@ -145,6 +145,7 @@ class VRManager Ang3 m_curBinocularAngles; Vec3 m_curBinocularPos; CCamera m_binocularOriginalPlayerCam; + bool m_wasBinocular = false; void UpdateHmdTransform(); void ProcessRoomscale();