Module: wine Branch: master Commit: aa85b4c61d9b4021c99378c2746b2743da76a753 URL: http://source.winehq.org/git/wine.git/?a=commit;h=aa85b4c61d9b4021c99378c274...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu Dec 3 11:38:19 2009 +0100
dxgi: Implement IDXGIOutput::GetParent().
---
dlls/dxgi/adapter.c | 2 +- dlls/dxgi/dxgi_private.h | 3 ++- dlls/dxgi/output.c | 9 ++++++--- 3 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/dlls/dxgi/adapter.c b/dlls/dxgi/adapter.c index 1efbec9..d13e3e1 100644 --- a/dlls/dxgi/adapter.c +++ b/dlls/dxgi/adapter.c @@ -189,7 +189,7 @@ HRESULT dxgi_adapter_init(struct dxgi_adapter *adapter, IDXGIFactory *parent, UI { return E_OUTOFMEMORY; } - dxgi_output_init(output); + dxgi_output_init(output, adapter); adapter->output = (IDXGIOutput *)output;
return S_OK; diff --git a/dlls/dxgi/dxgi_private.h b/dlls/dxgi/dxgi_private.h index 46b6f43..2929534 100644 --- a/dlls/dxgi/dxgi_private.h +++ b/dlls/dxgi/dxgi_private.h @@ -102,9 +102,10 @@ struct dxgi_output { const struct IDXGIOutputVtbl *vtbl; LONG refcount; + struct dxgi_adapter *adapter; };
-void dxgi_output_init(struct dxgi_output *output) DECLSPEC_HIDDEN; +void dxgi_output_init(struct dxgi_output *output, struct dxgi_adapter *adapter) DECLSPEC_HIDDEN;
/* IDXGIAdapter */ struct dxgi_adapter diff --git a/dlls/dxgi/output.c b/dlls/dxgi/output.c index c3f8289..5b83427 100644 --- a/dlls/dxgi/output.c +++ b/dlls/dxgi/output.c @@ -98,9 +98,11 @@ static HRESULT STDMETHODCALLTYPE dxgi_output_GetPrivateData(IDXGIOutput *iface, static HRESULT STDMETHODCALLTYPE dxgi_output_GetParent(IDXGIOutput *iface, REFIID riid, void **parent) { - FIXME("iface %p, riid %s, parent %p stub!\n", iface, debugstr_guid(riid), parent); + struct dxgi_output *This = (struct dxgi_output *)iface;
- return E_NOTIMPL; + TRACE("iface %p, riid %s, parent %p.\n", iface, debugstr_guid(riid), parent); + + return IDXGIAdapter_QueryInterface((IDXGIAdapter *)This->adapter, riid, parent); }
/* IDXGIOutput methods */ @@ -217,8 +219,9 @@ static const struct IDXGIOutputVtbl dxgi_output_vtbl = dxgi_output_GetFrameStatistics, };
-void dxgi_output_init(struct dxgi_output *output) +void dxgi_output_init(struct dxgi_output *output, struct dxgi_adapter *adapter) { output->vtbl = &dxgi_output_vtbl; output->refcount = 1; + output->adapter = adapter; }