From 14660bf6ff65083559b6a4b6d7eaabd9615a16ef Mon Sep 17 00:00:00 2001 From: praydog Date: Mon, 19 Jun 2023 12:10:17 -0700 Subject: [PATCH] Fix second scene state not appearing in some games --- src/mods/vr/FFakeStereoRenderingHook.cpp | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/src/mods/vr/FFakeStereoRenderingHook.cpp b/src/mods/vr/FFakeStereoRenderingHook.cpp index 99308d52..20869496 100644 --- a/src/mods/vr/FFakeStereoRenderingHook.cpp +++ b/src/mods/vr/FFakeStereoRenderingHook.cpp @@ -1292,15 +1292,8 @@ bool FFakeStereoRenderingHook::nonstandard_create_stereo_device_hook_4_27() { #ifdef FFAKE_STEREO_RENDERING_LOG_ALL_CALLS SPDLOG_INFO("GetViewPassForIndex called: {:x} {} ", (uintptr_t)_ReturnAddress(), view_index); #endif - if (!g_hook->is_stereo_enabled(stereo)) { - return EStereoscopicPass::eSSP_FULL; - } - - if (view_index == 0 || VR::get()->is_using_afr()) { - return EStereoscopicPass::eSSP_PRIMARY; - } - return EStereoscopicPass::eSSP_SECONDARY; + return g_hook->get_view_pass_for_index_hook(stereo, stereo_requested, view_index); }; // GetViewPassForIndex m_fallback_vtable[GET_VIEW_INDEX_FOR_PASS_INDEX] = +[](FFakeStereoRendering* stereo, const EStereoscopicPass pass) -> int32_t { @@ -1483,15 +1476,8 @@ bool FFakeStereoRenderingHook::nonstandard_create_stereo_device_hook_4_22() { #ifdef FFAKE_STEREO_RENDERING_LOG_ALL_CALLS SPDLOG_INFO("GetViewPassForIndex called: {:x} {} ", (uintptr_t)_ReturnAddress(), view_index); #endif - if (!g_hook->is_stereo_enabled(stereo)) { - return EStereoscopicPass::eSSP_FULL; - } - - if (view_index == 0 || VR::get()->is_using_afr()) { - return EStereoscopicPass::eSSP_PRIMARY; - } - return EStereoscopicPass::eSSP_SECONDARY; + return g_hook->get_view_pass_for_index_hook(stereo, stereo_requested, view_index); }; // GetViewPassForIndex m_fallback_vtable[GET_VIEW_INDEX_FOR_PASS_INDEX] = +[](FFakeStereoRendering* stereo, const EStereoscopicPass pass) -> int32_t { @@ -3695,6 +3681,11 @@ bool FFakeStereoRenderingHook::is_stereo_enabled(FFakeStereoRendering* stereo) { if (!g_framework->is_game_data_intialized()) { return false; } + + if (g_hook->m_sceneview_data.inside_post_init_properties) { + g_hook->set_should_recreate_textures(true); + return true; + } /*if (g_hook->m_analyzing_view_extensions) { const auto now = std::chrono::high_resolution_clock::now();