[PATCH 04/11] dxgi: Implement dxgi_swapchain_GetFullscreenState().

Józef Kucia jkucia at codeweavers.com
Mon Aug 1 15:28:38 CDT 2016


Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 dlls/dxgi/dxgi_private.h |  3 +++
 dlls/dxgi/swapchain.c    | 18 ++++++++++++++++--
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/dlls/dxgi/dxgi_private.h b/dlls/dxgi/dxgi_private.h
index 680f835..7148811 100644
--- a/dlls/dxgi/dxgi_private.h
+++ b/dlls/dxgi/dxgi_private.h
@@ -160,6 +160,9 @@ struct dxgi_swapchain
     struct wined3d_swapchain *wined3d_swapchain;
     IWineDXGIDevice *device;
     IDXGIFactory *factory;
+
+    BOOL fullscreen;
+    IDXGIOutput *target;
 };
 
 HRESULT dxgi_swapchain_init(struct dxgi_swapchain *swapchain, struct dxgi_device *device,
diff --git a/dlls/dxgi/swapchain.c b/dlls/dxgi/swapchain.c
index 54bd52d..6b80ead 100644
--- a/dlls/dxgi/swapchain.c
+++ b/dlls/dxgi/swapchain.c
@@ -212,9 +212,21 @@ static HRESULT STDMETHODCALLTYPE DECLSPEC_HOTPATCH dxgi_swapchain_SetFullscreenS
 static HRESULT STDMETHODCALLTYPE dxgi_swapchain_GetFullscreenState(IDXGISwapChain *iface,
         BOOL *fullscreen, IDXGIOutput **target)
 {
-    FIXME("iface %p, fullscreen %p, target %p stub!\n", iface, fullscreen, target);
+    struct dxgi_swapchain *swapchain = impl_from_IDXGISwapChain(iface);
 
-    return E_NOTIMPL;
+    TRACE("iface %p, fullscreen %p, target %p.\n", iface, fullscreen, target);
+
+    if (fullscreen)
+        *fullscreen = swapchain->fullscreen;
+
+    if (target)
+    {
+        *target = swapchain->target;
+        if (*target)
+            IDXGIOutput_AddRef(*target);
+    }
+
+    return S_OK;
 }
 
 static HRESULT STDMETHODCALLTYPE dxgi_swapchain_GetDesc(IDXGISwapChain *iface, DXGI_SWAP_CHAIN_DESC *desc)
@@ -408,6 +420,8 @@ HRESULT dxgi_swapchain_init(struct dxgi_swapchain *swapchain, struct dxgi_device
 
     swapchain->IDXGISwapChain_iface.lpVtbl = &dxgi_swapchain_vtbl;
     swapchain->refcount = 1;
+    swapchain->fullscreen = FALSE;
+    swapchain->target = NULL;
     wined3d_mutex_lock();
     wined3d_private_store_init(&swapchain->private_store);
 
-- 
2.7.3




More information about the wine-patches mailing list