[PATCH 4/4] dxgi: Do not forward d3d11_swapchain_Present() to d3d11_swapchain_Present1().
Józef Kucia
jkucia at codeweavers.com
Wed Mar 13 08:48:18 CDT 2019
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
dlls/dxgi/swapchain.c | 38 ++++++++++++++++++++++----------------
1 file changed, 22 insertions(+), 16 deletions(-)
diff --git a/dlls/dxgi/swapchain.c b/dlls/dxgi/swapchain.c
index 47f71961768a..704b03c8a6ea 100644
--- a/dlls/dxgi/swapchain.c
+++ b/dlls/dxgi/swapchain.c
@@ -295,13 +295,33 @@ static HRESULT STDMETHODCALLTYPE d3d11_swapchain_GetDevice(IDXGISwapChain1 *ifac
/* IDXGISwapChain1 methods */
+static HRESULT d3d11_swapchain_present(struct d3d11_swapchain *swapchain,
+ unsigned int sync_interval, unsigned int flags)
+{
+ if (sync_interval > 4)
+ {
+ WARN("Invalid sync interval %u.\n", sync_interval);
+ return DXGI_ERROR_INVALID_CALL;
+ }
+
+ if (flags & ~DXGI_PRESENT_TEST)
+ FIXME("Unimplemented flags %#x.\n", flags);
+ if (flags & DXGI_PRESENT_TEST)
+ {
+ WARN("Returning S_OK for DXGI_PRESENT_TEST.\n");
+ return S_OK;
+ }
+
+ return wined3d_swapchain_present(swapchain->wined3d_swapchain, NULL, NULL, NULL, sync_interval, 0);
+}
+
static HRESULT STDMETHODCALLTYPE d3d11_swapchain_Present(IDXGISwapChain1 *iface, UINT sync_interval, UINT flags)
{
struct d3d11_swapchain *swapchain = d3d11_swapchain_from_IDXGISwapChain1(iface);
TRACE("iface %p, sync_interval %u, flags %#x.\n", iface, sync_interval, flags);
- return IDXGISwapChain1_Present1(&swapchain->IDXGISwapChain1_iface, sync_interval, flags, NULL);
+ return d3d11_swapchain_present(swapchain, sync_interval, flags);
}
static HRESULT STDMETHODCALLTYPE d3d11_swapchain_GetBuffer(IDXGISwapChain1 *iface,
@@ -650,24 +670,10 @@ static HRESULT STDMETHODCALLTYPE d3d11_swapchain_Present1(IDXGISwapChain1 *iface
TRACE("iface %p, sync_interval %u, flags %#x, present_parameters %p.\n",
iface, sync_interval, flags, present_parameters);
- if (sync_interval > 4)
- {
- WARN("Invalid sync interval %u.\n", sync_interval);
- return DXGI_ERROR_INVALID_CALL;
- }
-
- if (flags & ~DXGI_PRESENT_TEST)
- FIXME("Unimplemented flags %#x.\n", flags);
- if (flags & DXGI_PRESENT_TEST)
- {
- WARN("Returning S_OK for DXGI_PRESENT_TEST.\n");
- return S_OK;
- }
-
if (present_parameters)
FIXME("Ignored present parameters %p.\n", present_parameters);
- return wined3d_swapchain_present(swapchain->wined3d_swapchain, NULL, NULL, NULL, sync_interval, 0);
+ return d3d11_swapchain_present(swapchain, sync_interval, flags);
}
static BOOL STDMETHODCALLTYPE d3d11_swapchain_IsTemporaryMonoSupported(IDXGISwapChain1 *iface)
--
2.19.2
More information about the wine-devel
mailing list