dxgi: Implement IDXGISwapChain::GetBuffer().
This commit is contained in:
parent
eda929d010
commit
f4879dcec1
|
@ -164,10 +164,35 @@ static HRESULT STDMETHODCALLTYPE dxgi_swapchain_Present(IDXGISwapChain *iface, U
|
||||||
static HRESULT STDMETHODCALLTYPE dxgi_swapchain_GetBuffer(IDXGISwapChain *iface,
|
static HRESULT STDMETHODCALLTYPE dxgi_swapchain_GetBuffer(IDXGISwapChain *iface,
|
||||||
UINT buffer_idx, REFIID riid, void **surface)
|
UINT buffer_idx, REFIID riid, void **surface)
|
||||||
{
|
{
|
||||||
FIXME("iface %p, buffer_idx %u, riid %s, surface %p stub!\n",
|
struct dxgi_swapchain *This = (struct dxgi_swapchain *)iface;
|
||||||
|
IWineD3DSurface *backbuffer;
|
||||||
|
IUnknown *parent;
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
TRACE("iface %p, buffer_idx %u, riid %s, surface %p\n",
|
||||||
iface, buffer_idx, debugstr_guid(riid), surface);
|
iface, buffer_idx, debugstr_guid(riid), surface);
|
||||||
|
|
||||||
return E_NOTIMPL;
|
EnterCriticalSection(&dxgi_cs);
|
||||||
|
|
||||||
|
hr = IWineD3DSwapChain_GetBackBuffer(This->wined3d_swapchain, buffer_idx, WINED3DBACKBUFFER_TYPE_MONO, &backbuffer);
|
||||||
|
if (FAILED(hr))
|
||||||
|
{
|
||||||
|
LeaveCriticalSection(&dxgi_cs);
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr = IWineD3DSurface_GetParent(backbuffer, &parent);
|
||||||
|
IWineD3DSurface_Release(backbuffer);
|
||||||
|
LeaveCriticalSection(&dxgi_cs);
|
||||||
|
if (FAILED(hr))
|
||||||
|
{
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr = IUnknown_QueryInterface(parent, riid, surface);
|
||||||
|
IUnknown_Release(parent);
|
||||||
|
|
||||||
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT STDMETHODCALLTYPE dxgi_swapchain_SetFullscreenState(IDXGISwapChain *iface,
|
static HRESULT STDMETHODCALLTYPE dxgi_swapchain_SetFullscreenState(IDXGISwapChain *iface,
|
||||||
|
|
Loading…
Reference in New Issue