From 64aefcc2a14627105b36ab53314b7818fa9560bc Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Wed, 12 Dec 2018 18:36:37 +0100 Subject: [PATCH] [dxgi] Catch exception when instance creation fails Fixes #810. --- src/dxgi/dxgi_main.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/dxgi/dxgi_main.cpp b/src/dxgi/dxgi_main.cpp index c1256657..4eb7454c 100644 --- a/src/dxgi/dxgi_main.cpp +++ b/src/dxgi/dxgi_main.cpp @@ -6,13 +6,18 @@ namespace dxvk { Logger Logger::s_instance("dxgi.log"); HRESULT createDxgiFactory(UINT Flags, REFIID riid, void **ppFactory) { - Com factory = new DxgiFactory(Flags); - HRESULT hr = factory->QueryInterface(riid, ppFactory); + try { + Com factory = new DxgiFactory(Flags); + HRESULT hr = factory->QueryInterface(riid, ppFactory); - if (FAILED(hr)) - return DXGI_ERROR_UNSUPPORTED; - - return S_OK; + if (FAILED(hr)) + return DXGI_ERROR_UNSUPPORTED; + + return S_OK; + } catch (const DxvkError& e) { + Logger::err(e.message()); + return E_FAIL; + } } }