From a6da46e452ff1b5e10e95f581274668d1bf41750 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Fri, 26 Jan 2018 16:40:29 -0800 Subject: [PATCH] D3D12: Fixed swap chain resize. --- src/renderer_d3d12.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/renderer_d3d12.cpp b/src/renderer_d3d12.cpp index 4ea48f507..1333e01cc 100644 --- a/src/renderer_d3d12.cpp +++ b/src/renderer_d3d12.cpp @@ -2214,7 +2214,10 @@ data.NumQualityLevels = 0; { uint32_t flags = _resolution.m_flags & (~BGFX_RESET_INTERNAL_FORCE); - bool resize = (m_resolution.m_flags&BGFX_RESET_MSAA_MASK) == (_resolution.m_flags&BGFX_RESET_MSAA_MASK); + bool resize = true + && BX_ENABLED(BX_PLATFORM_WINDOWS || BX_PLATFORM_WINRT) + && (m_resolution.m_flags&BGFX_RESET_MSAA_MASK) == (_resolution.m_flags&BGFX_RESET_MSAA_MASK) + ; m_resolution = _resolution; m_resolution.m_flags = flags; @@ -2262,14 +2265,26 @@ data.NumQualityLevels = 0; DX_RELEASE(m_swapChain, 0); -#if BX_PLATFORM_WINDOWS HRESULT hr; +#if BX_PLATFORM_WINDOWS hr = m_factory->CreateSwapChain(m_cmd.m_commandQueue , &m_scd , reinterpret_cast(&m_swapChain) ); - BGFX_FATAL(SUCCEEDED(hr), bgfx::Fatal::UnableToInitialize, "Failed to create swap chain."); +#else + hr = m_factory->CreateSwapChainForCoreWindow( +# if BX_PLATFORM_WINDOWS || BX_PLATFORM_WINRT + m_cmd.m_commandQueue +# else + m_device +# endif // BX_PLATFORM_WINDOWS || BX_PLATFORM_WINRT + , (::IUnknown*)g_platformData.nwh + , &m_scd + , NULL + , &m_swapChain + ); #endif // BX_PLATFORM_WINDOWS + BGFX_FATAL(SUCCEEDED(hr), bgfx::Fatal::UnableToInitialize, "Failed to create swap chain."); } postReset();