Henri Verbeet : wined3d: Add a separate function for rendertarget view initialization.

Alexandre Julliard julliard at winehq.org
Wed Apr 14 11:24:55 CDT 2010


Module: wine
Branch: master
Commit: d1d8c81439dc118f551e4e2f45e63a14df60e2fc
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d1d8c81439dc118f551e4e2f45e63a14df60e2fc

Author: Henri Verbeet <hverbeet at 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)




More information about the wine-cvs mailing list