From 22db37d128fd75e7628a8369633b64a5b82fef13 Mon Sep 17 00:00:00 2001 From: Lubos Date: Thu, 1 Sep 2022 19:43:43 +0200 Subject: [PATCH] OpenXR - Viewport init better --- Common/VR/PPSSPPVR.cpp | 7 ++++++- Common/VR/VRRenderer.h | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Common/VR/PPSSPPVR.cpp b/Common/VR/PPSSPPVR.cpp index d4ab5471cc..e66e87d991 100644 --- a/Common/VR/PPSSPPVR.cpp +++ b/Common/VR/PPSSPPVR.cpp @@ -111,7 +111,7 @@ void EnterVR(bool firstStart) { VR_EnterVR(VR_GetEngine()); IN_VRInit(VR_GetEngine()); } - VR_InitRenderer(VR_GetEngine(), IsMultiviewSupported()); + VR_SetConfig(VR_CONFIG_VIEWPORT_VALID, false); } void GetVRResolutionPerEye(int* width, int* height) { @@ -220,6 +220,11 @@ void BindVRFramebuffer() { } bool PreVRRender() { + if (!VR_GetConfig(VR_CONFIG_VIEWPORT_VALID)) { + VR_InitRenderer(VR_GetEngine(), IsMultiviewSupported()); + VR_SetConfig(VR_CONFIG_VIEWPORT_VALID, true); + } + if (VR_BeginFrame(VR_GetEngine())) { // Decide if the scene is 3D or not diff --git a/Common/VR/VRRenderer.h b/Common/VR/VRRenderer.h index 5527480bc3..82173a060b 100644 --- a/Common/VR/VRRenderer.h +++ b/Common/VR/VRRenderer.h @@ -16,8 +16,8 @@ enum VRConfig { VR_CONFIG_MENU_PITCH, VR_CONFIG_MENU_YAW, VR_CONFIG_RECENTER_YAW, //mouse cursor VR_CONFIG_MOUSE_SIZE, VR_CONFIG_MOUSE_X, VR_CONFIG_MOUSE_Y, - //viewport size - VR_CONFIG_VIEWPORT_WIDTH, VR_CONFIG_VIEWPORT_HEIGHT, + //viewport setup + VR_CONFIG_VIEWPORT_WIDTH, VR_CONFIG_VIEWPORT_HEIGHT, VR_CONFIG_VIEWPORT_VALID, //end VR_CONFIG_MAX