Module: wine Branch: master Commit: 759fd517aa98b0ef8f7a73b06ac74eb77e687f5a URL: http://source.winehq.org/git/wine.git/?a=commit;h=759fd517aa98b0ef8f7a73b06a...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Wed Aug 18 19:26:24 2010 +0200
ddraw: Add a separate function for parent initialization.
---
dlls/ddraw/ddraw.c | 7 +++---- dlls/ddraw/ddraw_private.h | 2 +- dlls/ddraw/parent.c | 8 +++++++- 3 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c index 7d97a91..df79f0e 100644 --- a/dlls/ddraw/ddraw.c +++ b/dlls/ddraw/ddraw.c @@ -4701,8 +4701,8 @@ static HRESULT WINAPI d3d7_CreateDevice(IDirect3D7 *iface, REFCLSID riid, LeaveCriticalSection(&ddraw_cs); return DDERR_OUTOFMEMORY; } - index_buffer_parent->lpVtbl = &IParent_Vtbl; - index_buffer_parent->ref = 1; + + ddraw_parent_init(index_buffer_parent);
/* Create an Index Buffer. WineD3D needs one for Drawing indexed primitives * Create a (hopefully) long enough buffer, and copy the indices into it @@ -5928,8 +5928,7 @@ static HRESULT STDMETHODCALLTYPE device_parent_CreateSwapChain(IWineD3DDevicePar return DDERR_OUTOFVIDEOMEMORY; }
- object->lpVtbl = &IParent_Vtbl; - object->ref = 1; + ddraw_parent_init(object);
hr = IWineD3DDevice_CreateSwapChain(This->wineD3DDevice, present_parameters, swapchain, (IUnknown *)object, This->ImplType); diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h index 81d2fd3..40f3bfd 100644 --- a/dlls/ddraw/ddraw_private.h +++ b/dlls/ddraw/ddraw_private.h @@ -315,7 +315,7 @@ struct IParentImpl
};
-extern const IParentVtbl IParent_Vtbl DECLSPEC_HIDDEN; +void ddraw_parent_init(IParentImpl *parent) DECLSPEC_HIDDEN;
/***************************************************************************** * IDirect3DDevice implementation diff --git a/dlls/ddraw/parent.c b/dlls/ddraw/parent.c index 2d8f519..705d587 100644 --- a/dlls/ddraw/parent.c +++ b/dlls/ddraw/parent.c @@ -121,9 +121,15 @@ static ULONG WINAPI IParentImpl_Release(IParent *iface) /***************************************************************************** * The VTable *****************************************************************************/ -const IParentVtbl IParent_Vtbl = +static const struct IParentVtbl ddraw_parent_vtbl = { IParentImpl_QueryInterface, IParentImpl_AddRef, IParentImpl_Release, }; + +void ddraw_parent_init(IParentImpl *parent) +{ + parent->lpVtbl = &ddraw_parent_vtbl; + parent->ref = 1; +}