dxgi: Pass an IWineDXGIFactory pointer to dxgi_get_output_from_window().
commit93077d4b4f7692102aac44c2c2d6da8a11c543cb
authorHenri Verbeet <hverbeet@codeweavers.com>
Wed, 5 May 2021 14:38:49 +0000 (5 16:38 +0200)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 5 May 2021 19:52:22 +0000 (5 21:52 +0200)
treec3d194a608901ece67ef85576e32ec05332e0114
parent55f6cda90ea5fa7d4f170b9e31a216cc606daa5e
dxgi: Pass an IWineDXGIFactory pointer to dxgi_get_output_from_window().

Since the factory and adapter interfaces may be wrapped, calling
IDXGIAdapter_EnumOutputs() on a wrapped adapter may in turn return a wrapped
output interface. Things would go poorly from there, so make sure we have a
unwrapped interface here. Alternatively, we could have allowed output
interfaces to be wrapped, but tests show that e.g.
IDXGISwapChain_SetFullscreenState() fails when passed a wrapped output
interface.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
dlls/dxgi/device.c
dlls/dxgi/dxgi_private.h
dlls/dxgi/swapchain.c
dlls/dxgi/tests/dxgi.c