From 663483e16eeb5d48c1e55407c5a7dba5c6d85095 Mon Sep 17 00:00:00 2001 From: Michael Stefaniuc Date: Fri, 8 Jul 2011 12:26:57 +0200 Subject: [PATCH] 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 0f3864ab4b3..755ac2a00b9 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 b395272c9cb..f8dfaa83d9b 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 86a3aa9e581..5f738bb15f6 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; -- 2.11.4.GIT