dxgi: Implement d3d12_swapchain_SetMaximumFrameLatency().

Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Philip Rebohle 2020-04-17 20:21:16 +04:30 committed by Alexandre Julliard
parent dd3e9f304e
commit 440320ce39
1 changed files with 17 additions and 2 deletions

View File

@ -2608,9 +2608,24 @@ static HRESULT STDMETHODCALLTYPE d3d12_swapchain_GetSourceSize(IDXGISwapChain3 *
static HRESULT STDMETHODCALLTYPE d3d12_swapchain_SetMaximumFrameLatency(IDXGISwapChain3 *iface, UINT max_latency) static HRESULT STDMETHODCALLTYPE d3d12_swapchain_SetMaximumFrameLatency(IDXGISwapChain3 *iface, UINT max_latency)
{ {
FIXME("iface %p, max_latency %u stub!\n", iface, max_latency); struct d3d12_swapchain *swapchain = d3d12_swapchain_from_IDXGISwapChain3(iface);
return E_NOTIMPL; TRACE("iface %p, max_latency %u.\n", iface, max_latency);
if (!(swapchain->desc.Flags & DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT))
{
WARN("DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT not set for swap chain %p.\n", iface);
return DXGI_ERROR_INVALID_CALL;
}
if (!max_latency)
{
WARN("Invalid maximum frame latency %u.\n", max_latency);
return DXGI_ERROR_INVALID_CALL;
}
swapchain->frame_latency = max_latency;
return S_OK;
} }
static HRESULT STDMETHODCALLTYPE d3d12_swapchain_GetMaximumFrameLatency(IDXGISwapChain3 *iface, UINT *max_latency) static HRESULT STDMETHODCALLTYPE d3d12_swapchain_GetMaximumFrameLatency(IDXGISwapChain3 *iface, UINT *max_latency)