浏览代码

st/nine: Return correct error codes in NineDevice9_Reset

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
Patrick Rudolph 10 年前
父节点
当前提交
bc6c80e547
共有 2 个文件被更改,包括 5 次插入3 次删除
  1. 2
    2
      src/gallium/state_trackers/nine/device9.c
  2. 3
    1
      src/gallium/state_trackers/nine/swapchain9.c

+ 2
- 2
src/gallium/state_trackers/nine/device9.c 查看文件

@@ -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);

+ 3
- 1
src/gallium/state_trackers/nine/swapchain9.c 查看文件

@@ -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

正在加载...
取消
保存