From bcbe5bf562dac5cca0ae135d766c062ea0d695ae Mon Sep 17 00:00:00 2001 From: cdozdil Date: Wed, 8 Oct 2025 18:25:54 +0300 Subject: [PATCH] Fix crashes on swapchain creation errors --- OptiScaler/hooks/FG_Hooks.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/OptiScaler/hooks/FG_Hooks.cpp b/OptiScaler/hooks/FG_Hooks.cpp index 3dad3c33..2781facc 100644 --- a/OptiScaler/hooks/FG_Hooks.cpp +++ b/OptiScaler/hooks/FG_Hooks.cpp @@ -101,11 +101,13 @@ HRESULT FGHooks::CreateSwapChain(IDXGIFactory* pFactory, IUnknown* pDevice, DXGI State::Instance().currentFGSwapchain = *ppSwapChain; HookFGSwapchain(*ppSwapChain); + + State::Instance().currentSwapchain = *ppSwapChain; + + return S_OK; } - State::Instance().currentSwapchain = *ppSwapChain; - - return S_OK; + return E_FAIL; } HRESULT FGHooks::CreateSwapChainForHwnd(IDXGIFactory* pFactory, IUnknown* pDevice, HWND hWnd, @@ -162,11 +164,12 @@ HRESULT FGHooks::CreateSwapChainForHwnd(IDXGIFactory* pFactory, IUnknown* pDevic State::Instance().currentFGSwapchain = *ppSwapChain; HookFGSwapchain(*ppSwapChain); + State::Instance().currentSwapchain = *ppSwapChain; + + return S_OK; } - State::Instance().currentSwapchain = *ppSwapChain; - - return S_OK; + return E_FAIL; } void FGHooks::HookFGSwapchain(IDXGISwapChain* pSwapChain)