[PATCH 6/8] ddraw: Add a separate function for viewport initialization.

Henri Verbeet hverbeet at codeweavers.com
Wed Aug 18 12:26:23 CDT 2010


---
 dlls/ddraw/ddraw.c         |    5 +----
 dlls/ddraw/ddraw_private.h |    4 +---
 dlls/ddraw/viewport.c      |   10 +++++++++-
 3 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 7541671..7d97a91 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -4505,10 +4505,7 @@ static HRESULT WINAPI d3d3_CreateViewport(IDirect3D3 *iface, IDirect3DViewport3
         return DDERR_OUTOFMEMORY;
     }
 
-    object->lpVtbl = &IDirect3DViewport3_Vtbl;
-    object->ref = 1;
-    object->ddraw = ddraw_from_d3d3(iface);
-    object->use_vp2 = 0xff;
+    d3d_viewport_init(object, ddraw_from_d3d3(iface));
 
     TRACE("Created viewport %p.\n", object);
     *viewport = (IDirect3DViewport3 *)object;
diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h
index 6ea61fe..81d2fd3 100644
--- a/dlls/ddraw/ddraw_private.h
+++ b/dlls/ddraw/ddraw_private.h
@@ -587,11 +587,9 @@ struct IDirect3DViewportImpl
     IDirect3DMaterialImpl     *background;
 };
 
-/* Vtable */
-extern const IDirect3DViewport3Vtbl IDirect3DViewport3_Vtbl DECLSPEC_HIDDEN;
-
 /* Helper functions */
 void viewport_activate(IDirect3DViewportImpl* This, BOOL ignore_lights) DECLSPEC_HIDDEN;
+void d3d_viewport_init(IDirect3DViewportImpl *viewport, IDirectDrawImpl *ddraw) DECLSPEC_HIDDEN;
 
 /*****************************************************************************
  * IDirect3DExecuteBuffer - Wraps to D3D7
diff --git a/dlls/ddraw/viewport.c b/dlls/ddraw/viewport.c
index 56572e3..118e03a 100644
--- a/dlls/ddraw/viewport.c
+++ b/dlls/ddraw/viewport.c
@@ -1078,7 +1078,7 @@ IDirect3DViewportImpl_Clear2(IDirect3DViewport3 *iface,
  * The VTable
  *****************************************************************************/
 
-const IDirect3DViewport3Vtbl IDirect3DViewport3_Vtbl =
+static const struct IDirect3DViewport3Vtbl d3d_viewport_vtbl =
 {
     /*** IUnknown Methods ***/
     IDirect3DViewportImpl_QueryInterface,
@@ -1106,3 +1106,11 @@ const IDirect3DViewport3Vtbl IDirect3DViewport3_Vtbl =
     IDirect3DViewportImpl_GetBackgroundDepth2,
     IDirect3DViewportImpl_Clear2,
 };
+
+void d3d_viewport_init(IDirect3DViewportImpl *viewport, IDirectDrawImpl *ddraw)
+{
+    viewport->lpVtbl = &d3d_viewport_vtbl;
+    viewport->ref = 1;
+    viewport->ddraw = ddraw;
+    viewport->use_vp2 = 0xff;
+}
-- 
1.7.1




More information about the wine-patches mailing list