[PATCH resend 1/2] ddraw: Use WINED3D_SWAPCHAIN_NO_WINDOW_CHANGES only with DDSCL_NOWINDOWCHANGES or if window inactive.

Henri Verbeet hverbeet at gmail.com
Tue Dec 28 10:15:59 CST 2021


On Mon, 27 Dec 2021 at 15:32, Gabriel Ivăncescu <gabrielopcode at gmail.com> wrote:
> This is a regression from last year but I completely forgot about it. Last
> time, it got no reviews, unfortunately, so it would be nice to have it
> fixed during this year's code freeze.
>
I think this got deferred during code freeze last year, because window
handling is simply very sensitive. It was then never resubmitted after
code freeze.

> +    if ((cooplevel & DDSCL_NOWINDOWCHANGES) || window != GetActiveWindow())
> +        swapchain_desc.flags |= WINED3D_SWAPCHAIN_NO_WINDOW_CHANGES;
>
That said, I also remember thinking that doing the GetActiveWindow()
check here seems somewhat suspicious. The expected place for that kind
of check would be in wined3d_swapchain_state_setup_fullscreen(), and
the tests don't seem to provide a justification for doing it here
instead. Of course doing it in
wined3d_swapchain_state_setup_fullscreen() would raise the question of
how this is supposed to behave in other D3D versions, but that seems a
question worth raising anyway.



More information about the wine-devel mailing list