st/nine: Test more presentation params
Return errors in case of invalid presentation parameters. Fixes failing WINE tests device.c test_swapchain_parameters(). Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-by: Axel Davy <axel.davy@ens.fr>
This commit is contained in:
parent
827fee059e
commit
40a0b97ebd
|
@ -118,6 +118,14 @@ NineSwapChain9_Resize( struct NineSwapChain9 *This,
|
|||
|
||||
DBG("This=%p pParams=%p\n", This, pParams);
|
||||
user_assert(pParams != NULL, E_POINTER);
|
||||
user_assert(pParams->SwapEffect, D3DERR_INVALIDCALL);
|
||||
user_assert((pParams->SwapEffect != D3DSWAPEFFECT_COPY) ||
|
||||
(pParams->BackBufferCount <= 1), D3DERR_INVALIDCALL);
|
||||
user_assert(pDevice->ex || pParams->BackBufferCount <= 3, D3DERR_INVALIDCALL);
|
||||
user_assert(pDevice->ex ||
|
||||
(pParams->SwapEffect == D3DSWAPEFFECT_FLIP) ||
|
||||
(pParams->SwapEffect == D3DSWAPEFFECT_COPY) ||
|
||||
(pParams->SwapEffect == D3DSWAPEFFECT_DISCARD), D3DERR_INVALIDCALL);
|
||||
|
||||
DBG("pParams(%p):\n"
|
||||
"BackBufferWidth: %u\n"
|
||||
|
@ -145,11 +153,6 @@ NineSwapChain9_Resize( struct NineSwapChain9 *This,
|
|||
pParams->FullScreen_RefreshRateInHz,
|
||||
pParams->PresentationInterval);
|
||||
|
||||
if (pParams->SwapEffect == D3DSWAPEFFECT_COPY &&
|
||||
pParams->BackBufferCount > 1) {
|
||||
pParams->BackBufferCount = 1;
|
||||
}
|
||||
|
||||
if (pParams->BackBufferCount > 3) {
|
||||
pParams->BackBufferCount = 3;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue