From 9c2fb684af12ae6fcd0a7564bfbb664ef8b4573e Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 10 Mar 2014 15:00:59 -0700 Subject: [PATCH] Implemented fullscreen <-> windowed transition on Windows 8 --- src/render/direct3d11/SDL_render_d3d11.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/render/direct3d11/SDL_render_d3d11.c b/src/render/direct3d11/SDL_render_d3d11.c index c583403afa97f..548ab1886251b 100644 --- a/src/render/direct3d11/SDL_render_d3d11.c +++ b/src/render/direct3d11/SDL_render_d3d11.c @@ -1732,7 +1732,6 @@ static HRESULT D3D11_UpdateForWindowSizeChange(SDL_Renderer * renderer) { D3D11_RenderData *data = (D3D11_RenderData *)renderer->driverdata; - /* FIXME: Do we need to release render targets like we do in D3D9? */ return D3D11_CreateWindowSizeDependentResources(renderer); } @@ -3004,8 +3003,11 @@ D3D11_RenderPresent(SDL_Renderer * renderer) * * TODO, WinRT: consider throwing an exception if D3D11_RenderPresent fails, especially if there is a way to salvage debug info from users' machines */ - if (result == DXGI_ERROR_DEVICE_REMOVED) { + if ( result == DXGI_ERROR_DEVICE_REMOVED ) { D3D11_HandleDeviceLost(renderer); + } else if (result == DXGI_ERROR_INVALID_CALL) { + /* We probably went through a fullscreen <-> windowed transition */ + D3D11_CreateWindowSizeDependentResources(renderer); } else { WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain::Present", result); }