st/nine: Ignore window size if error
Check GetWindowInfo and ignore the computed sizes
if there is an error.
Fixes a regression caused by earlier commit when
using old wine gallium nine patches.
Should also address a crash at window destruction.
Related issues:
https://github.com/iXit/Mesa-3D/issues/331
https://github.com/iXit/Mesa-3D/issues/332
Cc: mesa-stable@lists.freedesktop.org
Fixes: 2318ca68bb
("st/nine: Handle window resize when a presentation
buffer is used")
Signed-off-by: Axel Davy <davyaxel0@gmail.com>
This commit is contained in:
parent
ec0f465bc5
commit
86666f051e
|
@ -750,9 +750,16 @@ present( struct NineSwapChain9 *This,
|
||||||
if (This->params.SwapEffect == D3DSWAPEFFECT_DISCARD)
|
if (This->params.SwapEffect == D3DSWAPEFFECT_DISCARD)
|
||||||
handle_draw_cursor_and_hud(This, resource);
|
handle_draw_cursor_and_hud(This, resource);
|
||||||
|
|
||||||
ID3DPresent_GetWindowInfo(This->present, hDestWindowOverride, &target_width, &target_height, &target_depth);
|
hr = ID3DPresent_GetWindowInfo(This->present, hDestWindowOverride, &target_width, &target_height, &target_depth);
|
||||||
(void)target_depth;
|
(void)target_depth;
|
||||||
|
|
||||||
|
/* Can happen with old Wine (presentation can still succeed),
|
||||||
|
* or at window destruction. */
|
||||||
|
if (FAILED(hr) || target_width == 0 || target_height == 0) {
|
||||||
|
target_width = resource->width0;
|
||||||
|
target_height = resource->height0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Switch to using presentation buffers on window resize.
|
/* Switch to using presentation buffers on window resize.
|
||||||
* Note: Most apps should resize the d3d back buffers when
|
* Note: Most apps should resize the d3d back buffers when
|
||||||
* a window resize is detected, which will result in a call to
|
* a window resize is detected, which will result in a call to
|
||||||
|
|
Loading…
Reference in New Issue