Commit 4e38c2e9 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

ddraw: Get rid of ICOM_VFIELD_MULTI.

parent 94c98d06
...@@ -26,10 +26,6 @@ ...@@ -26,10 +26,6 @@
/* The canonical name for a single interface is "lpVtbl". */ /* The canonical name for a single interface is "lpVtbl". */
#define ICOM_VFIELD_MULTI_NAME(iface) iface##_vtbl #define ICOM_VFIELD_MULTI_NAME(iface) iface##_vtbl
/* Declares a vtable pointer field in an implementation. */
#define ICOM_VFIELD_MULTI(iface) \
iface ICOM_VFIELD_MULTI_NAME(iface)
/* Returns the offset of a vtable pointer within an implementation object. */ /* Returns the offset of a vtable pointer within an implementation object. */
#define ICOM_VFIELD_OFFSET(impltype, iface) \ #define ICOM_VFIELD_OFFSET(impltype, iface) \
offsetof(impltype, ICOM_VFIELD_MULTI_NAME(iface)) offsetof(impltype, ICOM_VFIELD_MULTI_NAME(iface))
...@@ -44,11 +40,11 @@ ...@@ -44,11 +40,11 @@
/* Given an object and interface name, returns a pointer to that interface. */ /* Given an object and interface name, returns a pointer to that interface. */
#define ICOM_INTERFACE(implobj, iface) \ #define ICOM_INTERFACE(implobj, iface) \
(implobj == NULL ? NULL :&((implobj)->ICOM_VFIELD_MULTI_NAME(iface))) ((iface *)(implobj == NULL ? NULL :&((implobj)->ICOM_VFIELD_MULTI_NAME(iface))))
#define ICOM_INIT_INTERFACE(implobj, ifacename, vtblname) \ #define ICOM_INIT_INTERFACE(implobj, ifacename, vtblname) \
do { \ do { \
(implobj)->ICOM_VFIELD_MULTI_NAME(ifacename).lpVtbl = &(vtblname); \ (implobj)->ICOM_VFIELD_MULTI_NAME(ifacename) = &(vtblname); \
} while (0) } while (0)
#define COM_INTERFACE_CAST(impltype, ifnamefrom, ifnameto, ifaceptr) \ #define COM_INTERFACE_CAST(impltype, ifnamefrom, ifnameto, ifaceptr) \
......
...@@ -100,15 +100,15 @@ struct FvfToDecl ...@@ -100,15 +100,15 @@ struct FvfToDecl
struct IDirectDrawImpl struct IDirectDrawImpl
{ {
/* IUnknown fields */ /* IUnknown fields */
ICOM_VFIELD_MULTI(IDirectDraw7); const IDirectDraw7Vtbl *IDirectDraw7_vtbl;
ICOM_VFIELD_MULTI(IDirectDraw4); const IDirectDraw4Vtbl *IDirectDraw4_vtbl;
ICOM_VFIELD_MULTI(IDirectDraw3); const IDirectDraw3Vtbl *IDirectDraw3_vtbl;
ICOM_VFIELD_MULTI(IDirectDraw2); const IDirectDraw2Vtbl *IDirectDraw2_vtbl;
ICOM_VFIELD_MULTI(IDirectDraw); const IDirectDrawVtbl *IDirectDraw_vtbl;
ICOM_VFIELD_MULTI(IDirect3D7); const IDirect3D7Vtbl *IDirect3D7_vtbl;
ICOM_VFIELD_MULTI(IDirect3D3); const IDirect3D3Vtbl *IDirect3D3_vtbl;
ICOM_VFIELD_MULTI(IDirect3D2); const IDirect3D2Vtbl *IDirect3D2_vtbl;
ICOM_VFIELD_MULTI(IDirect3D); const IDirect3DVtbl *IDirect3D_vtbl;
const IWineD3DDeviceParentVtbl *device_parent_vtbl; const IWineD3DDeviceParentVtbl *device_parent_vtbl;
/* See comment in IDirectDraw::AddRef */ /* See comment in IDirectDraw::AddRef */
...@@ -219,11 +219,11 @@ extern WINED3DSURFTYPE DefaultSurfaceType; ...@@ -219,11 +219,11 @@ extern WINED3DSURFTYPE DefaultSurfaceType;
struct IDirectDrawSurfaceImpl struct IDirectDrawSurfaceImpl
{ {
/* IUnknown fields */ /* IUnknown fields */
ICOM_VFIELD_MULTI(IDirectDrawSurface7); const IDirectDrawSurface7Vtbl *IDirectDrawSurface7_vtbl;
ICOM_VFIELD_MULTI(IDirectDrawSurface3); const IDirectDrawSurface3Vtbl *IDirectDrawSurface3_vtbl;
ICOM_VFIELD_MULTI(IDirectDrawGammaControl); const IDirectDrawGammaControlVtbl *IDirectDrawGammaControl_vtbl;
ICOM_VFIELD_MULTI(IDirect3DTexture2); const IDirect3DTexture2Vtbl *IDirect3DTexture2_vtbl;
ICOM_VFIELD_MULTI(IDirect3DTexture); const IDirect3DTextureVtbl *IDirect3DTexture_vtbl;
LONG ref; LONG ref;
IUnknown *ifaceToRelease; IUnknown *ifaceToRelease;
...@@ -292,7 +292,7 @@ void IDirectDrawSurfaceImpl_Destroy(IDirectDrawSurfaceImpl *This); ...@@ -292,7 +292,7 @@ void IDirectDrawSurfaceImpl_Destroy(IDirectDrawSurfaceImpl *This);
struct IParentImpl struct IParentImpl
{ {
/* IUnknown fields */ /* IUnknown fields */
ICOM_VFIELD_MULTI(IParent); const IParentVtbl *IParent_vtbl;
LONG ref; LONG ref;
/* IParentImpl fields */ /* IParentImpl fields */
...@@ -323,10 +323,10 @@ struct HandleEntry ...@@ -323,10 +323,10 @@ struct HandleEntry
struct IDirect3DDeviceImpl struct IDirect3DDeviceImpl
{ {
/* IUnknown */ /* IUnknown */
ICOM_VFIELD_MULTI(IDirect3DDevice7); const IDirect3DDevice7Vtbl *IDirect3DDevice7_vtbl;
ICOM_VFIELD_MULTI(IDirect3DDevice3); const IDirect3DDevice3Vtbl *IDirect3DDevice3_vtbl;
ICOM_VFIELD_MULTI(IDirect3DDevice2); const IDirect3DDevice2Vtbl *IDirect3DDevice2_vtbl;
ICOM_VFIELD_MULTI(IDirect3DDevice); const IDirect3DDeviceVtbl *IDirect3DDevice_vtbl;
LONG ref; LONG ref;
/* Other object connections */ /* Other object connections */
...@@ -410,7 +410,7 @@ struct EnumZBufferFormatsData ...@@ -410,7 +410,7 @@ struct EnumZBufferFormatsData
struct IDirectDrawClipperImpl struct IDirectDrawClipperImpl
{ {
/* IUnknown fields */ /* IUnknown fields */
ICOM_VFIELD_MULTI(IDirectDrawClipper); const IDirectDrawClipperVtbl *IDirectDrawClipper_vtbl;
LONG ref; LONG ref;
IWineD3DClipper *wineD3DClipper; IWineD3DClipper *wineD3DClipper;
...@@ -427,7 +427,7 @@ typeof(WineDirect3DCreateClipper) *pWineDirect3DCreateClipper; ...@@ -427,7 +427,7 @@ typeof(WineDirect3DCreateClipper) *pWineDirect3DCreateClipper;
struct IDirectDrawPaletteImpl struct IDirectDrawPaletteImpl
{ {
/* IUnknown fields */ /* IUnknown fields */
ICOM_VFIELD_MULTI(IDirectDrawPalette); const IDirectDrawPaletteVtbl *IDirectDrawPalette_vtbl;
LONG ref; LONG ref;
/* WineD3D uplink */ /* WineD3D uplink */
...@@ -444,7 +444,7 @@ extern const IDirectDrawPaletteVtbl IDirectDrawPalette_Vtbl; ...@@ -444,7 +444,7 @@ extern const IDirectDrawPaletteVtbl IDirectDrawPalette_Vtbl;
******************************************************************************/ ******************************************************************************/
typedef struct typedef struct
{ {
ICOM_VFIELD_MULTI(IClassFactory); const IClassFactoryVtbl *IClassFactory_vtbl;
LONG ref; LONG ref;
HRESULT (*pfnCreateInstance)(IUnknown *pUnkOuter, REFIID iid, LPVOID *ppObj); HRESULT (*pfnCreateInstance)(IUnknown *pUnkOuter, REFIID iid, LPVOID *ppObj);
...@@ -463,7 +463,7 @@ struct object_creation_info ...@@ -463,7 +463,7 @@ struct object_creation_info
******************************************************************************/ ******************************************************************************/
struct IDirect3DLightImpl struct IDirect3DLightImpl
{ {
ICOM_VFIELD_MULTI(IDirect3DLight); const IDirect3DLightVtbl *IDirect3DLight_vtbl;
LONG ref; LONG ref;
/* IDirect3DLight fields */ /* IDirect3DLight fields */
...@@ -499,9 +499,9 @@ void light_desactivate(IDirect3DLightImpl* This); ...@@ -499,9 +499,9 @@ void light_desactivate(IDirect3DLightImpl* This);
******************************************************************************/ ******************************************************************************/
struct IDirect3DMaterialImpl struct IDirect3DMaterialImpl
{ {
ICOM_VFIELD_MULTI(IDirect3DMaterial3); const IDirect3DMaterial3Vtbl *IDirect3DMaterial3_vtbl;
ICOM_VFIELD_MULTI(IDirect3DMaterial2); const IDirect3DMaterial2Vtbl *IDirect3DMaterial2_vtbl;
ICOM_VFIELD_MULTI(IDirect3DMaterial); const IDirect3DMaterialVtbl *IDirect3DMaterial_vtbl;
LONG ref; LONG ref;
/* IDirect3DMaterial2 fields */ /* IDirect3DMaterial2 fields */
...@@ -527,7 +527,7 @@ void material_activate(IDirect3DMaterialImpl* This); ...@@ -527,7 +527,7 @@ void material_activate(IDirect3DMaterialImpl* This);
*****************************************************************************/ *****************************************************************************/
struct IDirect3DViewportImpl struct IDirect3DViewportImpl
{ {
ICOM_VFIELD_MULTI(IDirect3DViewport3); const IDirect3DViewport3Vtbl *IDirect3DViewport3_vtbl;
LONG ref; LONG ref;
/* IDirect3DViewport fields */ /* IDirect3DViewport fields */
...@@ -572,7 +572,7 @@ void viewport_activate(IDirect3DViewportImpl* This, BOOL ignore_lights); ...@@ -572,7 +572,7 @@ void viewport_activate(IDirect3DViewportImpl* This, BOOL ignore_lights);
struct IDirect3DExecuteBufferImpl struct IDirect3DExecuteBufferImpl
{ {
/* IUnknown */ /* IUnknown */
ICOM_VFIELD_MULTI(IDirect3DExecuteBuffer); const IDirect3DExecuteBufferVtbl *IDirect3DExecuteBuffer_vtbl;
LONG ref; LONG ref;
/* IDirect3DExecuteBuffer fields */ /* IDirect3DExecuteBuffer fields */
...@@ -608,8 +608,8 @@ IDirect3DExecuteBufferImpl_Execute(IDirect3DExecuteBufferImpl *This, ...@@ -608,8 +608,8 @@ IDirect3DExecuteBufferImpl_Execute(IDirect3DExecuteBufferImpl *This,
struct IDirect3DVertexBufferImpl struct IDirect3DVertexBufferImpl
{ {
/*** IUnknown Methods ***/ /*** IUnknown Methods ***/
ICOM_VFIELD_MULTI(IDirect3DVertexBuffer7); const IDirect3DVertexBuffer7Vtbl *IDirect3DVertexBuffer7_vtbl;
ICOM_VFIELD_MULTI(IDirect3DVertexBuffer); const IDirect3DVertexBufferVtbl *IDirect3DVertexBuffer_vtbl;
LONG ref; LONG ref;
/*** WineD3D and ddraw links ***/ /*** WineD3D and ddraw links ***/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment