ddraw: Get rid of ddcomimpl.h.
This commit is contained in:
parent
802f9c7e29
commit
b09b0fbf95
|
@ -1,28 +0,0 @@
|
|||
/* A few helpful macros for implementing COM objects.
|
||||
*
|
||||
* Copyright 2000 TransGaming Technologies Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef _DDCOMIMPL_H_
|
||||
#define _DDCOMIMPL_H_
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#define COM_INTERFACE_CAST(impltype, ifnamefrom, ifnameto, ifaceptr) \
|
||||
((ifaceptr) ? (ifnameto *)&(((impltype *)((char *)(ifaceptr) \
|
||||
- offsetof(impltype, ifnamefrom##_vtbl)))->ifnameto##_vtbl) : NULL)
|
||||
#endif /* _DDCOMIMPL_H_ */
|
|
@ -33,8 +33,6 @@
|
|||
#include "ddrawi.h"
|
||||
#include "d3d.h"
|
||||
|
||||
#include "ddcomimpl.h"
|
||||
|
||||
#include "wine/list.h"
|
||||
#ifdef DDRAW_INIT_GUID
|
||||
#include "initguid.h"
|
||||
|
@ -332,6 +330,11 @@ static inline IDirectDrawSurfaceImpl *surface_from_texture2(IDirect3DTexture2 *i
|
|||
return (IDirectDrawSurfaceImpl *)((char*)iface - FIELD_OFFSET(IDirectDrawSurfaceImpl, IDirect3DTexture2_vtbl));
|
||||
}
|
||||
|
||||
static inline IDirectDrawSurfaceImpl *surface_from_surface3(IDirectDrawSurface3 *iface)
|
||||
{
|
||||
return (IDirectDrawSurfaceImpl *)((char*)iface - FIELD_OFFSET(IDirectDrawSurfaceImpl, IDirectDrawSurface3_vtbl));
|
||||
}
|
||||
|
||||
/* Get the number of bytes per pixel for a given surface */
|
||||
#define PFGET_BPP(pf) (pf.dwFlags&DDPF_PALETTEINDEXED8?1:((pf.dwRGBBitCount+7)/8))
|
||||
#define GET_BPP(desc) PFGET_BPP(desc.ddpfPixelFormat)
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -282,7 +282,7 @@ static ULONG WINAPI
|
|||
Thunk_IDirect3DDeviceImpl_1_AddRef(IDirect3DDevice *iface)
|
||||
{
|
||||
TRACE_(ddraw_thunk)("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
|
||||
return IDirect3DDevice7_AddRef(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface));
|
||||
return IDirect3DDevice7_AddRef((IDirect3DDevice7 *)device_from_device1(iface));
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
|
@ -1032,7 +1032,7 @@ Thunk_IDirect3DDeviceImpl_2_NextViewport(IDirect3DDevice2 *iface,
|
|||
TRACE_(ddraw_thunk)("(%p)->(%p,%p,%08x) thunking to IDirect3DDevice3 interface.\n", This, vp, lplpDirect3DViewport2, Flags);
|
||||
hr = IDirect3DDevice3_NextViewport((IDirect3DDevice3 *)&This->IDirect3DDevice3_vtbl,
|
||||
(IDirect3DViewport3 *)vp, &res, Flags);
|
||||
*lplpDirect3DViewport2 = (IDirect3DViewport2 *) COM_INTERFACE_CAST(IDirect3DViewportImpl, IDirect3DViewport3, IDirect3DViewport3, res);
|
||||
*lplpDirect3DViewport2 = (IDirect3DViewport2 *)res;
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
@ -1049,7 +1049,7 @@ Thunk_IDirect3DDeviceImpl_1_NextViewport(IDirect3DDevice *iface,
|
|||
TRACE_(ddraw_thunk)("(%p)->(%p,%p,%08x) thunking to IDirect3DDevice3 interface.\n", This, vp, lplpDirect3DViewport, Flags);
|
||||
hr = IDirect3DDevice3_NextViewport((IDirect3DDevice3 *)&This->IDirect3DDevice3_vtbl,
|
||||
(IDirect3DViewport3 *)vp, &res, Flags);
|
||||
*lplpDirect3DViewport = (IDirect3DViewport *) COM_INTERFACE_CAST(IDirect3DViewportImpl, IDirect3DViewport3, IDirect3DViewport3, res);
|
||||
*lplpDirect3DViewport = (IDirect3DViewport *)res;
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
@ -1790,7 +1790,7 @@ Thunk_IDirect3DDeviceImpl_3_GetDirect3D(IDirect3DDevice3 *iface,
|
|||
ret = IDirect3DDevice7_GetDirect3D((IDirect3DDevice7 *)This, &ret_ptr);
|
||||
if(ret != D3D_OK)
|
||||
return ret;
|
||||
*Direct3D3 = COM_INTERFACE_CAST(IDirectDrawImpl, IDirect3D7, IDirect3D3, ret_ptr);
|
||||
*Direct3D3 = ret_ptr ? (IDirect3D3 *)&((IDirectDrawImpl *)ret_ptr)->IDirect3D3_vtbl : NULL;
|
||||
TRACE(" returning interface %p\n", *Direct3D3);
|
||||
return D3D_OK;
|
||||
}
|
||||
|
@ -1807,7 +1807,7 @@ Thunk_IDirect3DDeviceImpl_2_GetDirect3D(IDirect3DDevice2 *iface,
|
|||
ret = IDirect3DDevice7_GetDirect3D((IDirect3DDevice7 *)This, &ret_ptr);
|
||||
if(ret != D3D_OK)
|
||||
return ret;
|
||||
*Direct3D2 = COM_INTERFACE_CAST(IDirectDrawImpl, IDirect3D7, IDirect3D2, ret_ptr);
|
||||
*Direct3D2 = ret_ptr ? (IDirect3D2 *)&((IDirectDrawImpl *)ret_ptr)->IDirect3D2_vtbl : NULL;
|
||||
TRACE(" returning interface %p\n", *Direct3D2);
|
||||
return D3D_OK;
|
||||
}
|
||||
|
@ -1824,7 +1824,7 @@ Thunk_IDirect3DDeviceImpl_1_GetDirect3D(IDirect3DDevice *iface,
|
|||
ret = IDirect3DDevice7_GetDirect3D((IDirect3DDevice7 *)This, &ret_ptr);
|
||||
if(ret != D3D_OK)
|
||||
return ret;
|
||||
*Direct3D = COM_INTERFACE_CAST(IDirectDrawImpl, IDirect3D7, IDirect3D, ret_ptr);
|
||||
*Direct3D = ret_ptr ? (IDirect3D *)&((IDirectDrawImpl *)ret_ptr)->IDirect3D_vtbl : NULL;
|
||||
TRACE(" returning interface %p\n", *Direct3D);
|
||||
return D3D_OK;
|
||||
}
|
||||
|
@ -1941,7 +1941,6 @@ Thunk_IDirect3DDeviceImpl_2_GetCurrentViewport(IDirect3DDevice2 *iface,
|
|||
hr = IDirect3DDevice3_GetCurrentViewport((IDirect3DDevice3 *)&This->IDirect3DDevice3_vtbl,
|
||||
(IDirect3DViewport3 **)Direct3DViewport2);
|
||||
if(hr != D3D_OK) return hr;
|
||||
*Direct3DViewport2 = (IDirect3DViewport2 *) COM_INTERFACE_CAST(IDirect3DViewportImpl, IDirect3DViewport3, IDirect3DViewport3, *Direct3DViewport2);
|
||||
return D3D_OK;
|
||||
}
|
||||
|
||||
|
@ -2088,7 +2087,6 @@ Thunk_IDirect3DDeviceImpl_3_GetRenderTarget(IDirect3DDevice3 *iface,
|
|||
TRACE_(ddraw_thunk)("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", This, RenderTarget);
|
||||
hr = IDirect3DDevice7_GetRenderTarget((IDirect3DDevice7 *)This, (IDirectDrawSurface7 **)RenderTarget);
|
||||
if(hr != D3D_OK) return hr;
|
||||
*RenderTarget = (IDirectDrawSurface4 *) COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface7, IDirectDrawSurface7, *RenderTarget);
|
||||
return D3D_OK;
|
||||
}
|
||||
|
||||
|
@ -2101,7 +2099,8 @@ Thunk_IDirect3DDeviceImpl_2_GetRenderTarget(IDirect3DDevice2 *iface,
|
|||
TRACE_(ddraw_thunk)("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", This, RenderTarget);
|
||||
hr = IDirect3DDevice7_GetRenderTarget((IDirect3DDevice7 *)This, (IDirectDrawSurface7 **)RenderTarget);
|
||||
if(hr != D3D_OK) return hr;
|
||||
*RenderTarget = (IDirectDrawSurface *) COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface7, IDirectDrawSurface3, *RenderTarget);
|
||||
*RenderTarget = *RenderTarget ?
|
||||
(IDirectDrawSurface *)&((IDirectDrawSurfaceImpl *)*RenderTarget)->IDirectDrawSurface3_vtbl : NULL;
|
||||
return D3D_OK;
|
||||
}
|
||||
|
||||
|
@ -4743,7 +4742,7 @@ Thunk_IDirect3DDeviceImpl_3_GetTexture(IDirect3DDevice3 *iface,
|
|||
TRACE_(ddraw_thunk)("(%p)->(%d,%p) thunking to IDirect3DDevice7 interface.\n", This, Stage, Texture2);
|
||||
ret = IDirect3DDevice7_GetTexture((IDirect3DDevice7 *)This, Stage, &ret_val);
|
||||
|
||||
*Texture2 = COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface7, IDirect3DTexture2, ret_val);
|
||||
*Texture2 = ret_val ? (IDirect3DTexture2 *)&((IDirectDrawSurfaceImpl *)ret_val)->IDirect3DTexture2_vtbl : NULL;
|
||||
|
||||
TRACE_(ddraw_thunk)(" returning interface %p.\n", *Texture2);
|
||||
|
||||
|
|
|
@ -532,7 +532,8 @@ Thunk_IDirect3DImpl_2_CreateMaterial(IDirect3D2 *iface,
|
|||
TRACE("(%p)->(%p,%p) thunking to IDirect3D3 interface.\n", This, Direct3DMaterial, UnkOuter);
|
||||
ret = IDirect3D3_CreateMaterial((IDirect3D3 *)&This->IDirect3D3_vtbl, &ret_val, UnkOuter);
|
||||
|
||||
*Direct3DMaterial = COM_INTERFACE_CAST(IDirect3DMaterialImpl, IDirect3DMaterial3, IDirect3DMaterial2, ret_val);
|
||||
*Direct3DMaterial = ret_val ?
|
||||
(IDirect3DMaterial2 *)&((IDirect3DMaterialImpl *)ret_val)->IDirect3DMaterial2_vtbl : NULL;
|
||||
|
||||
TRACE(" returning interface %p.\n", *Direct3DMaterial);
|
||||
|
||||
|
@ -551,7 +552,8 @@ Thunk_IDirect3DImpl_1_CreateMaterial(IDirect3D *iface,
|
|||
TRACE("(%p)->(%p,%p) thunking to IDirect3D3 interface.\n", This, Direct3DMaterial, UnkOuter);
|
||||
ret = IDirect3D3_CreateMaterial((IDirect3D3 *)&This->IDirect3D3_vtbl, &ret_val, UnkOuter);
|
||||
|
||||
*Direct3DMaterial = COM_INTERFACE_CAST(IDirect3DMaterialImpl, IDirect3DMaterial3, IDirect3DMaterial, ret_val);
|
||||
*Direct3DMaterial = ret_val ?
|
||||
(IDirect3DMaterial *)&((IDirect3DMaterialImpl *)ret_val)->IDirect3DMaterial_vtbl : NULL;
|
||||
|
||||
TRACE(" returning interface %p.\n", *Direct3DMaterial);
|
||||
|
||||
|
@ -932,7 +934,7 @@ Thunk_IDirect3DImpl_3_CreateDevice(IDirect3D3 *iface,
|
|||
hr = IDirect3D7_CreateDevice((IDirect3D7 *)&This->IDirect3D7_vtbl, refiid,
|
||||
(IDirectDrawSurface7 *)Surface /* Same VTables */, (IDirect3DDevice7 **)Device);
|
||||
|
||||
*Device = COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice7, IDirect3DDevice3, *Device);
|
||||
*Device = *Device ? (IDirect3DDevice3 *)&((IDirect3DDeviceImpl *)*Device)->IDirect3DDevice3_vtbl : NULL;
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
@ -947,10 +949,10 @@ Thunk_IDirect3DImpl_2_CreateDevice(IDirect3D2 *iface,
|
|||
TRACE("(%p)->(%s,%p,%p): Thunking to IDirect3D7\n", This, debugstr_guid(refiid), Surface, Device);
|
||||
|
||||
hr = IDirect3D7_CreateDevice((IDirect3D7 *)&This->IDirect3D7_vtbl, refiid,
|
||||
COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface3, IDirectDrawSurface7, Surface),
|
||||
Surface ? (IDirectDrawSurface7 *)surface_from_surface3((IDirectDrawSurface3 *)Surface) : NULL,
|
||||
(IDirect3DDevice7 **)Device);
|
||||
|
||||
*Device = COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice7, IDirect3DDevice2, *Device);
|
||||
*Device = *Device ? (IDirect3DDevice2 *)&((IDirect3DDeviceImpl *)*Device)->IDirect3DDevice2_vtbl : NULL;
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
@ -1077,7 +1079,9 @@ Thunk_IDirect3DImpl_3_CreateVertexBuffer(IDirect3D3 *iface,
|
|||
hr = IDirect3D7_CreateVertexBuffer((IDirect3D7 *)&This->IDirect3D7_vtbl,
|
||||
Desc, (IDirect3DVertexBuffer7 **)VertexBuffer, Flags);
|
||||
|
||||
*VertexBuffer = COM_INTERFACE_CAST(IDirect3DVertexBufferImpl, IDirect3DVertexBuffer7, IDirect3DVertexBuffer, *VertexBuffer);
|
||||
*VertexBuffer = *VertexBuffer ?
|
||||
(IDirect3DVertexBuffer *)&((IDirect3DVertexBufferImpl *)*VertexBuffer)->IDirect3DVertexBuffer_vtbl : NULL;
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
|
|
@ -55,6 +55,11 @@ static inline IDirect3DMaterialImpl *material_from_material1(IDirect3DMaterial *
|
|||
return (IDirect3DMaterialImpl *)((char*)iface - FIELD_OFFSET(IDirect3DMaterialImpl, IDirect3DMaterial_vtbl));
|
||||
}
|
||||
|
||||
static inline IDirect3DMaterialImpl *material_from_material2(IDirect3DMaterial2 *iface)
|
||||
{
|
||||
return (IDirect3DMaterialImpl *)((char*)iface - FIELD_OFFSET(IDirect3DMaterialImpl, IDirect3DMaterial2_vtbl));
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* IUnknown Methods.
|
||||
*****************************************************************************/
|
||||
|
@ -347,9 +352,8 @@ Thunk_IDirect3DMaterialImpl_2_GetHandle(LPDIRECT3DMATERIAL2 iface,
|
|||
LPD3DMATERIALHANDLE lpHandle)
|
||||
{
|
||||
TRACE_(ddraw_thunk)("(%p)->(%p,%p) thunking to IDirect3DMaterial3 interface.\n", iface, lpDirect3DDevice2, lpHandle);
|
||||
return IDirect3DMaterial3_GetHandle(COM_INTERFACE_CAST(IDirect3DMaterialImpl, IDirect3DMaterial2, IDirect3DMaterial3, iface),
|
||||
COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, lpDirect3DDevice2),
|
||||
lpHandle);
|
||||
return IDirect3DMaterial3_GetHandle((IDirect3DMaterial3 *)material_from_material2(iface), lpDirect3DDevice2 ?
|
||||
(IDirect3DDevice3 *)&device_from_device2(lpDirect3DDevice2)->IDirect3DDevice3_vtbl : NULL, lpHandle);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI
|
||||
|
@ -358,9 +362,8 @@ Thunk_IDirect3DMaterialImpl_1_GetHandle(LPDIRECT3DMATERIAL iface,
|
|||
LPD3DMATERIALHANDLE lpHandle)
|
||||
{
|
||||
TRACE_(ddraw_thunk)("(%p)->(%p,%p) thunking to IDirect3DMaterial3 interface.\n", iface, lpDirect3DDevice, lpHandle);
|
||||
return IDirect3DMaterial3_GetHandle(COM_INTERFACE_CAST(IDirect3DMaterialImpl, IDirect3DMaterial, IDirect3DMaterial3, iface),
|
||||
COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, lpDirect3DDevice),
|
||||
lpHandle);
|
||||
return IDirect3DMaterial3_GetHandle((IDirect3DMaterial3 *)material_from_material1(iface), lpDirect3DDevice ?
|
||||
(IDirect3DDevice3 *)&device_from_device1(lpDirect3DDevice)->IDirect3DDevice3_vtbl : NULL, lpHandle);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI
|
||||
|
@ -369,9 +372,7 @@ Thunk_IDirect3DMaterialImpl_2_QueryInterface(LPDIRECT3DMATERIAL2 iface,
|
|||
LPVOID* obp)
|
||||
{
|
||||
TRACE_(ddraw_thunk)("(%p)->(%s,%p) thunking to IDirect3DMaterial3 interface.\n", iface, debugstr_guid(riid), obp);
|
||||
return IDirect3DMaterial3_QueryInterface(COM_INTERFACE_CAST(IDirect3DMaterialImpl, IDirect3DMaterial2, IDirect3DMaterial3, iface),
|
||||
riid,
|
||||
obp);
|
||||
return IDirect3DMaterial3_QueryInterface((IDirect3DMaterial3 *)material_from_material2(iface), riid, obp);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI
|
||||
|
@ -380,37 +381,35 @@ Thunk_IDirect3DMaterialImpl_1_QueryInterface(LPDIRECT3DMATERIAL iface,
|
|||
LPVOID* obp)
|
||||
{
|
||||
TRACE_(ddraw_thunk)("(%p)->(%s,%p) thunking to IDirect3DMaterial3 interface.\n", iface, debugstr_guid(riid), obp);
|
||||
return IDirect3DMaterial3_QueryInterface(COM_INTERFACE_CAST(IDirect3DMaterialImpl, IDirect3DMaterial, IDirect3DMaterial3, iface),
|
||||
riid,
|
||||
obp);
|
||||
return IDirect3DMaterial3_QueryInterface((IDirect3DMaterial3 *)material_from_material1(iface), riid, obp);
|
||||
}
|
||||
|
||||
static ULONG WINAPI
|
||||
Thunk_IDirect3DMaterialImpl_2_AddRef(LPDIRECT3DMATERIAL2 iface)
|
||||
{
|
||||
TRACE_(ddraw_thunk)("(%p)->() thunking to IDirect3DMaterial3 interface.\n", iface);
|
||||
return IDirect3DMaterial3_AddRef(COM_INTERFACE_CAST(IDirect3DMaterialImpl, IDirect3DMaterial2, IDirect3DMaterial3, iface));
|
||||
return IDirect3DMaterial3_AddRef((IDirect3DMaterial3 *)material_from_material2(iface));
|
||||
}
|
||||
|
||||
static ULONG WINAPI
|
||||
Thunk_IDirect3DMaterialImpl_1_AddRef(LPDIRECT3DMATERIAL iface)
|
||||
{
|
||||
TRACE_(ddraw_thunk)("(%p)->() thunking to IDirect3DMaterial3 interface.\n", iface);
|
||||
return IDirect3DMaterial3_AddRef(COM_INTERFACE_CAST(IDirect3DMaterialImpl, IDirect3DMaterial, IDirect3DMaterial3, iface));
|
||||
return IDirect3DMaterial3_AddRef((IDirect3DMaterial3 *)material_from_material1(iface));
|
||||
}
|
||||
|
||||
static ULONG WINAPI
|
||||
Thunk_IDirect3DMaterialImpl_2_Release(LPDIRECT3DMATERIAL2 iface)
|
||||
{
|
||||
TRACE_(ddraw_thunk)("(%p)->() thunking to IDirect3DMaterial3 interface.\n", iface);
|
||||
return IDirect3DMaterial3_Release(COM_INTERFACE_CAST(IDirect3DMaterialImpl, IDirect3DMaterial2, IDirect3DMaterial3, iface));
|
||||
return IDirect3DMaterial3_Release((IDirect3DMaterial3 *)material_from_material2(iface));
|
||||
}
|
||||
|
||||
static ULONG WINAPI
|
||||
Thunk_IDirect3DMaterialImpl_1_Release(LPDIRECT3DMATERIAL iface)
|
||||
{
|
||||
TRACE_(ddraw_thunk)("(%p)->() thunking to IDirect3DMaterial3 interface.\n", iface);
|
||||
return IDirect3DMaterial3_Release(COM_INTERFACE_CAST(IDirect3DMaterialImpl, IDirect3DMaterial, IDirect3DMaterial3, iface));
|
||||
return IDirect3DMaterial3_Release((IDirect3DMaterial3 *)material_from_material1(iface));
|
||||
}
|
||||
|
||||
static HRESULT WINAPI
|
||||
|
@ -418,8 +417,7 @@ Thunk_IDirect3DMaterialImpl_2_SetMaterial(LPDIRECT3DMATERIAL2 iface,
|
|||
LPD3DMATERIAL lpMat)
|
||||
{
|
||||
TRACE_(ddraw_thunk)("(%p)->(%p) thunking to IDirect3DMaterial3 interface.\n", iface, lpMat);
|
||||
return IDirect3DMaterial3_SetMaterial(COM_INTERFACE_CAST(IDirect3DMaterialImpl, IDirect3DMaterial2, IDirect3DMaterial3, iface),
|
||||
lpMat);
|
||||
return IDirect3DMaterial3_SetMaterial((IDirect3DMaterial3 *)material_from_material2(iface), lpMat);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI
|
||||
|
@ -427,8 +425,7 @@ Thunk_IDirect3DMaterialImpl_1_SetMaterial(LPDIRECT3DMATERIAL iface,
|
|||
LPD3DMATERIAL lpMat)
|
||||
{
|
||||
TRACE_(ddraw_thunk)("(%p)->(%p) thunking to IDirect3DMaterial3 interface.\n", iface, lpMat);
|
||||
return IDirect3DMaterial3_SetMaterial(COM_INTERFACE_CAST(IDirect3DMaterialImpl, IDirect3DMaterial, IDirect3DMaterial3, iface),
|
||||
lpMat);
|
||||
return IDirect3DMaterial3_SetMaterial((IDirect3DMaterial3 *)material_from_material1(iface), lpMat);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI
|
||||
|
@ -436,8 +433,7 @@ Thunk_IDirect3DMaterialImpl_2_GetMaterial(LPDIRECT3DMATERIAL2 iface,
|
|||
LPD3DMATERIAL lpMat)
|
||||
{
|
||||
TRACE_(ddraw_thunk)("(%p)->(%p) thunking to IDirect3DMaterial3 interface.\n", iface, lpMat);
|
||||
return IDirect3DMaterial3_GetMaterial(COM_INTERFACE_CAST(IDirect3DMaterialImpl, IDirect3DMaterial2, IDirect3DMaterial3, iface),
|
||||
lpMat);
|
||||
return IDirect3DMaterial3_GetMaterial((IDirect3DMaterial3 *)material_from_material2(iface), lpMat);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI
|
||||
|
@ -445,8 +441,7 @@ Thunk_IDirect3DMaterialImpl_1_GetMaterial(LPDIRECT3DMATERIAL iface,
|
|||
LPD3DMATERIAL lpMat)
|
||||
{
|
||||
TRACE_(ddraw_thunk)("(%p)->(%p) thunking to IDirect3DMaterial3 interface.\n", iface, lpMat);
|
||||
return IDirect3DMaterial3_GetMaterial(COM_INTERFACE_CAST(IDirect3DMaterialImpl, IDirect3DMaterial, IDirect3DMaterial3, iface),
|
||||
lpMat);
|
||||
return IDirect3DMaterial3_GetMaterial((IDirect3DMaterial3 *)material_from_material1(iface), lpMat);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -118,7 +118,7 @@ IDirectDrawSurfaceImpl_QueryInterface(IDirectDrawSurface7 *iface,
|
|||
/* Call into IDirect3D7 for creation */
|
||||
IDirect3D7_CreateDevice((IDirect3D7 *)&This->ddraw->IDirect3D7_vtbl, riid, (IDirectDrawSurface7 *)This, &d3d);
|
||||
|
||||
*obj = COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice7, IDirect3DDevice, d3d);
|
||||
*obj = d3d ? (IDirect3DDevice *)&((IDirect3DDeviceImpl *)d3d)->IDirect3DDevice_vtbl : NULL;
|
||||
TRACE("(%p) Returning IDirect3DDevice interface at %p\n", This, *obj);
|
||||
|
||||
return S_OK;
|
||||
|
|
|
@ -29,26 +29,14 @@
|
|||
#include "winerror.h"
|
||||
|
||||
#include "ddraw_private.h"
|
||||
#include "ddcomimpl.h"
|
||||
|
||||
#define CONVERT(pdds) COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, \
|
||||
IDirectDrawSurface3, \
|
||||
IDirectDrawSurface7, \
|
||||
(pdds))
|
||||
|
||||
#define CONVERT_REV(pdds) COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, \
|
||||
IDirectDrawSurface7, \
|
||||
IDirectDrawSurface3, \
|
||||
(pdds))
|
||||
#define CONVERT(pdds) ((pdds) ? (IDirectDrawSurface7 *)surface_from_surface3(pdds) : NULL)
|
||||
#define CONVERT_REV(pdds) \
|
||||
((pdds) ? (IDirectDrawSurface3 *)&((IDirectDrawSurfaceImpl *)(pdds))->IDirectDrawSurface3_vtbl : NULL)
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(ddraw_thunk);
|
||||
WINE_DECLARE_DEBUG_CHANNEL(ddraw);
|
||||
|
||||
static inline IDirectDrawSurfaceImpl *surface_from_surface3(IDirectDrawSurface3 *iface)
|
||||
{
|
||||
return (IDirectDrawSurfaceImpl *)((char*)iface - FIELD_OFFSET(IDirectDrawSurfaceImpl, IDirectDrawSurface3_vtbl));
|
||||
}
|
||||
|
||||
static HRESULT WINAPI
|
||||
IDirectDrawSurface3Impl_QueryInterface(LPDIRECTDRAWSURFACE3 This, REFIID iid,
|
||||
LPVOID *ppObj)
|
||||
|
|
|
@ -84,7 +84,7 @@ Thunk_IDirect3DTextureImpl_1_AddRef(IDirect3DTexture *iface)
|
|||
IDirectDrawSurfaceImpl *This = surface_from_texture1(iface);
|
||||
TRACE("(%p)->() thunking to IDirectDrawSurface7 interface.\n", This);
|
||||
|
||||
return IDirectDrawSurface7_AddRef(COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirect3DTexture, IDirectDrawSurface7, iface));
|
||||
return IDirectDrawSurface7_AddRef((IDirectDrawSurface7 *)This);
|
||||
}
|
||||
|
||||
static ULONG WINAPI
|
||||
|
@ -103,7 +103,7 @@ Thunk_IDirect3DTextureImpl_1_Release(IDirect3DTexture *iface)
|
|||
IDirectDrawSurfaceImpl *This = surface_from_texture1(iface);
|
||||
TRACE("(%p)->() thunking to IDirectDrawSurface7 interface.\n", This);
|
||||
|
||||
return IDirectDrawSurface7_Release(COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirect3DTexture, IDirectDrawSurface7, iface));
|
||||
return IDirectDrawSurface7_Release((IDirectDrawSurface7 *)This);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
|
@ -162,9 +162,7 @@ Thunk_IDirect3DTextureImpl_1_PaletteChanged(IDirect3DTexture *iface,
|
|||
IDirectDrawSurfaceImpl *This = surface_from_texture1(iface);
|
||||
TRACE("(%p)->(%08x,%08x) thunking to IDirect3DTexture2 interface.\n", This, Start, Count);
|
||||
|
||||
return IDirect3DTexture2_PaletteChanged(COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirect3DTexture, IDirect3DTexture2, iface),
|
||||
Start,
|
||||
Count);
|
||||
return IDirect3DTexture2_PaletteChanged((IDirect3DTexture2 *)&This->IDirect3DTexture2_vtbl, Start, Count);
|
||||
}
|
||||
|
||||
|
||||
|
@ -469,8 +467,8 @@ Thunk_IDirect3DTextureImpl_1_Load(IDirect3DTexture *iface,
|
|||
IDirectDrawSurfaceImpl *Texture = surface_from_texture1(D3DTexture);
|
||||
TRACE("(%p)->(%p) thunking to IDirect3DTexture2 interface.\n", This, Texture);
|
||||
|
||||
return IDirect3DTexture2_Load(COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirect3DTexture, IDirect3DTexture2, iface),
|
||||
COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirect3DTexture, IDirect3DTexture2, D3DTexture));
|
||||
return IDirect3DTexture2_Load((IDirect3DTexture2 *)&This->IDirect3DTexture2_vtbl,
|
||||
D3DTexture ? (IDirect3DTexture2 *)&surface_from_texture1(D3DTexture)->IDirect3DTexture2_vtbl : NULL);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
|
|
Loading…
Reference in New Issue