Michael Stefaniuc : ddraw: COM cleanup for the IDirect3DExecuteBuffer iface .

Alexandre Julliard julliard at winehq.org
Fri Jul 8 11:23:42 CDT 2011


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

Author: Michael Stefaniuc <mstefani at redhat.de>
Date:   Fri Jul  8 12:26:57 2011 +0200

ddraw: COM cleanup for the IDirect3DExecuteBuffer iface.

---

 dlls/ddraw/ddraw_private.h |    6 ++----
 dlls/ddraw/device.c        |    2 +-
 dlls/ddraw/executebuffer.c |   38 +++++++++++++++++++-------------------
 3 files changed, 22 insertions(+), 24 deletions(-)

diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h
index 0f3864a..755ac2a 100644
--- a/dlls/ddraw/ddraw_private.h
+++ b/dlls/ddraw/ddraw_private.h
@@ -486,10 +486,8 @@ void d3d_viewport_init(IDirect3DViewportImpl *viewport, IDirectDrawImpl *ddraw)
  *****************************************************************************/
 struct IDirect3DExecuteBufferImpl
 {
-    /* IUnknown */
-    const IDirect3DExecuteBufferVtbl *lpVtbl;
-    LONG                 ref;
-
+    IDirect3DExecuteBuffer IDirect3DExecuteBuffer_iface;
+    LONG ref;
     /* IDirect3DExecuteBuffer fields */
     IDirectDrawImpl      *ddraw;
     IDirect3DDeviceImpl  *d3ddev;
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index b395272..f8dfaa8 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -685,7 +685,7 @@ IDirect3DDeviceImpl_1_CreateExecuteBuffer(IDirect3DDevice *iface,
         return hr;
     }
 
-    *ExecuteBuffer = (IDirect3DExecuteBuffer *)object;
+    *ExecuteBuffer = &object->IDirect3DExecuteBuffer_iface;
 
     TRACE(" Returning IDirect3DExecuteBuffer at %p, implementation is at %p\n", *ExecuteBuffer, object);
 
diff --git a/dlls/ddraw/executebuffer.c b/dlls/ddraw/executebuffer.c
index 86a3aa9..5f738bb 100644
--- a/dlls/ddraw/executebuffer.c
+++ b/dlls/ddraw/executebuffer.c
@@ -547,6 +547,11 @@ end_of_buffer:
     return D3D_OK;
 }
 
+static inline IDirect3DExecuteBufferImpl *impl_from_IDirect3DExecuteBuffer(IDirect3DExecuteBuffer *iface)
+{
+    return CONTAINING_RECORD(iface, IDirect3DExecuteBufferImpl, IDirect3DExecuteBuffer_iface);
+}
+
 /*****************************************************************************
  * IDirect3DExecuteBuffer::QueryInterface
  *
@@ -598,10 +603,9 @@ IDirect3DExecuteBufferImpl_QueryInterface(IDirect3DExecuteBuffer *iface,
  *  The new refcount
  *
  *****************************************************************************/
-static ULONG WINAPI
-IDirect3DExecuteBufferImpl_AddRef(IDirect3DExecuteBuffer *iface)
+static ULONG WINAPI IDirect3DExecuteBufferImpl_AddRef(IDirect3DExecuteBuffer *iface)
 {
-    IDirect3DExecuteBufferImpl *This = (IDirect3DExecuteBufferImpl *)iface;
+    IDirect3DExecuteBufferImpl *This = impl_from_IDirect3DExecuteBuffer(iface);
     ULONG ref = InterlockedIncrement(&This->ref);
 
     TRACE("%p increasing refcount to %u.\n", This, ref);
@@ -618,10 +622,9 @@ IDirect3DExecuteBufferImpl_AddRef(IDirect3DExecuteBuffer *iface)
  *  The new refcount
  *
  *****************************************************************************/
-static ULONG WINAPI
-IDirect3DExecuteBufferImpl_Release(IDirect3DExecuteBuffer *iface)
+static ULONG WINAPI IDirect3DExecuteBufferImpl_Release(IDirect3DExecuteBuffer *iface)
 {
-    IDirect3DExecuteBufferImpl *This = (IDirect3DExecuteBufferImpl *)iface;
+    IDirect3DExecuteBufferImpl *This = impl_from_IDirect3DExecuteBuffer(iface);
     ULONG ref = InterlockedDecrement(&This->ref);
 
     TRACE("%p decreasing refcount to %u.\n", This, ref);
@@ -669,11 +672,10 @@ static HRESULT WINAPI IDirect3DExecuteBufferImpl_Initialize(IDirect3DExecuteBuff
  *  This implementation always returns D3D_OK
  *
  *****************************************************************************/
-static HRESULT WINAPI
-IDirect3DExecuteBufferImpl_Lock(IDirect3DExecuteBuffer *iface,
-                                D3DEXECUTEBUFFERDESC *lpDesc)
+static HRESULT WINAPI IDirect3DExecuteBufferImpl_Lock(IDirect3DExecuteBuffer *iface,
+        D3DEXECUTEBUFFERDESC *lpDesc)
 {
-    IDirect3DExecuteBufferImpl *This = (IDirect3DExecuteBufferImpl *)iface;
+    IDirect3DExecuteBufferImpl *This = impl_from_IDirect3DExecuteBuffer(iface);
     DWORD dwSize;
 
     TRACE("iface %p, desc %p.\n", iface, lpDesc);
@@ -719,11 +721,10 @@ static HRESULT WINAPI IDirect3DExecuteBufferImpl_Unlock(IDirect3DExecuteBuffer *
  *  DDERR_OUTOFMEMORY if the vertex buffer allocation failed
  *
  *****************************************************************************/
-static HRESULT WINAPI
-IDirect3DExecuteBufferImpl_SetExecuteData(IDirect3DExecuteBuffer *iface,
-                                          D3DEXECUTEDATA *lpData)
+static HRESULT WINAPI IDirect3DExecuteBufferImpl_SetExecuteData(IDirect3DExecuteBuffer *iface,
+        D3DEXECUTEDATA *lpData)
 {
-    IDirect3DExecuteBufferImpl *This = (IDirect3DExecuteBufferImpl *)iface;
+    IDirect3DExecuteBufferImpl *This = impl_from_IDirect3DExecuteBuffer(iface);
     DWORD nbvert;
 
     TRACE("iface %p, data %p.\n", iface, lpData);
@@ -755,11 +756,10 @@ IDirect3DExecuteBufferImpl_SetExecuteData(IDirect3DExecuteBuffer *iface,
  *  D3D_OK on success
  *
  *****************************************************************************/
-static HRESULT WINAPI
-IDirect3DExecuteBufferImpl_GetExecuteData(IDirect3DExecuteBuffer *iface,
-                                          D3DEXECUTEDATA *lpData)
+static HRESULT WINAPI IDirect3DExecuteBufferImpl_GetExecuteData(IDirect3DExecuteBuffer *iface,
+        D3DEXECUTEDATA *lpData)
 {
-    IDirect3DExecuteBufferImpl *This = (IDirect3DExecuteBufferImpl *)iface;
+    IDirect3DExecuteBufferImpl *This = impl_from_IDirect3DExecuteBuffer(iface);
     DWORD dwSize;
 
     TRACE("iface %p, data %p.\n", iface, lpData);
@@ -839,7 +839,7 @@ static const struct IDirect3DExecuteBufferVtbl d3d_execute_buffer_vtbl =
 HRESULT d3d_execute_buffer_init(IDirect3DExecuteBufferImpl *execute_buffer,
         IDirect3DDeviceImpl *device, D3DEXECUTEBUFFERDESC *desc)
 {
-    execute_buffer->lpVtbl = &d3d_execute_buffer_vtbl;
+    execute_buffer->IDirect3DExecuteBuffer_iface.lpVtbl = &d3d_execute_buffer_vtbl;
     execute_buffer->ref = 1;
     execute_buffer->d3ddev = device;
 




More information about the wine-cvs mailing list