Module: wine Branch: master Commit: d1d8c81439dc118f551e4e2f45e63a14df60e2fc URL: http://source.winehq.org/git/wine.git/?a=commit;h=d1d8c81439dc118f551e4e2f45...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Tue Apr 13 20:46:24 2010 +0200
wined3d: Add a separate function for rendertarget view initialization.
---
dlls/wined3d/device.c | 10 +++++----- dlls/wined3d/view.c | 12 +++++++++++- dlls/wined3d/wined3d_private.h | 3 ++- 3 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 3b87878..ae777a7 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -838,6 +838,9 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateRendertargetView(IWineD3DDevice * { struct wined3d_rendertarget_view *object;
+ TRACE("iface %p, resource %p, parent %p, rendertarget_view %p.\n", + iface, resource, parent, rendertarget_view); + object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object)); if (!object) { @@ -845,12 +848,9 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateRendertargetView(IWineD3DDevice * return E_OUTOFMEMORY; }
- object->vtbl = &wined3d_rendertarget_view_vtbl; - object->refcount = 1; - IWineD3DResource_AddRef(resource); - object->resource = resource; - object->parent = parent; + wined3d_rendertarget_view_init(object, resource, parent);
+ TRACE("Created render target view %p.\n", object); *rendertarget_view = (IWineD3DRendertargetView *)object;
return WINED3D_OK; diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c index bbf0f5f..0c9919d 100644 --- a/dlls/wined3d/view.c +++ b/dlls/wined3d/view.c @@ -97,7 +97,7 @@ static HRESULT STDMETHODCALLTYPE rendertarget_view_GetResource(IWineD3DRendertar return WINED3D_OK; }
-const struct IWineD3DRendertargetViewVtbl wined3d_rendertarget_view_vtbl = +static const struct IWineD3DRendertargetViewVtbl wined3d_rendertarget_view_vtbl = { /* IUnknown methods */ rendertarget_view_QueryInterface, @@ -108,3 +108,13 @@ const struct IWineD3DRendertargetViewVtbl wined3d_rendertarget_view_vtbl = /* IWineD3DRendertargetView methods */ rendertarget_view_GetResource, }; + +void wined3d_rendertarget_view_init(struct wined3d_rendertarget_view *view, + IWineD3DResource *resource, IUnknown *parent) +{ + view->vtbl = &wined3d_rendertarget_view_vtbl; + view->refcount = 1; + IWineD3DResource_AddRef(resource); + view->resource = resource; + view->parent = parent; +} diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 09e1b81..699a49d 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2549,7 +2549,8 @@ struct wined3d_rendertarget_view IUnknown *parent; };
-extern const IWineD3DRendertargetViewVtbl wined3d_rendertarget_view_vtbl DECLSPEC_HIDDEN; +void wined3d_rendertarget_view_init(struct wined3d_rendertarget_view *view, + IWineD3DResource *resource, IUnknown *parent) DECLSPEC_HIDDEN;
/***************************************************************************** * IWineD3DSwapChainImpl implementation structure (extends IUnknown)