Allow more than two errors, and return D3DERR_INVALIDCALL for failed display resolution changes. Reviewed-by: Axel Davy <axel.davy@ens.fr> Signed-off-by: Patrick Rudolph <siro@das-labor.org>tags/11.0-branchpoint
@@ -769,8 +769,8 @@ NineDevice9_Reset( struct NineDevice9 *This, | |||
for (i = 0; i < This->nswapchains; ++i) { | |||
D3DPRESENT_PARAMETERS *params = &pPresentationParameters[i]; | |||
hr = NineSwapChain9_Resize(This->swapchains[i], params, NULL); | |||
if (FAILED(hr)) | |||
return (hr == D3DERR_OUTOFVIDEOMEMORY) ? hr : D3DERR_DEVICELOST; | |||
if (hr != D3D_OK) | |||
return hr; | |||
} | |||
nine_pipe_context_clear(This); |
@@ -184,7 +184,9 @@ NineSwapChain9_Resize( struct NineSwapChain9 *This, | |||
/* Note: It is the role of the backend to fill if necessary | |||
* BackBufferWidth and BackBufferHeight */ | |||
ID3DPresent_SetPresentParameters(This->present, pParams, This->mode); | |||
hr = ID3DPresent_SetPresentParameters(This->present, pParams, This->mode); | |||
if (hr != D3D_OK) | |||
return hr; | |||
/* When we have flip behaviour, d3d9 expects we get back the screen buffer when we flip. | |||
* Here we don't get back the initial content of the screen. To emulate the behaviour |