2000-04-09 16:30:50 +02:00
/* Direct3D Device
2004-08-06 19:30:44 +02:00
* Copyright ( c ) 1998 - 2004 Lionel ULMER
* Copyright ( c ) 2002 - 2004 Christian Costa
2002-06-01 01:06:46 +02:00
*
2002-03-10 00:29:33 +01:00
* This file contains all the common stuff for D3D devices .
*
* 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 . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
2000-04-09 16:30:50 +02:00
*/
# include "config.h"
2001-10-14 18:18:52 +02:00
2003-09-06 01:08:26 +02:00
# include <stdarg.h>
2001-10-14 18:18:52 +02:00
# include <string.h>
2000-04-09 16:30:50 +02:00
# include "windef.h"
2003-09-06 01:08:26 +02:00
# include "winbase.h"
2000-04-09 16:30:50 +02:00
# include "winerror.h"
2002-12-05 21:33:07 +01:00
# include "objbase.h"
2003-09-06 01:08:26 +02:00
# include "wingdi.h"
2000-04-09 16:30:50 +02:00
# include "ddraw.h"
# include "d3d.h"
2002-03-10 00:29:33 +01:00
# include "wine/debug.h"
2000-04-09 16:30:50 +02:00
# include "d3d_private.h"
2002-03-10 00:29:33 +01:00
WINE_DEFAULT_DEBUG_CHANNEL ( ddraw ) ;
2000-04-09 16:30:50 +02:00
2003-01-03 22:08:50 +01:00
DWORD InitRenderStateTab [ ] = {
2003-01-03 22:10:11 +01:00
D3DRENDERSTATE_TEXTUREHANDLE , ( DWORD ) NULL ,
2003-01-03 22:08:50 +01:00
D3DRENDERSTATE_ANTIALIAS , D3DANTIALIAS_NONE ,
/* FIXME: D3DRENDERSTATE_TEXTUREADDRESS */
D3DRENDERSTATE_TEXTUREPERSPECTIVE , TRUE ,
/* FIXME: D3DRENDERSTATE_WRAPU */
/* FIXME: D3DRENDERSTATE_WRAPV */
2003-01-03 23:32:30 +01:00
D3DRENDERSTATE_ZENABLE , D3DZB_TRUE , /* This needs to be set differently according to the Z buffer status */
2003-01-03 22:08:50 +01:00
D3DRENDERSTATE_FILLMODE , D3DFILL_SOLID ,
D3DRENDERSTATE_SHADEMODE , D3DSHADE_GOURAUD ,
D3DRENDERSTATE_LINEPATTERN , 0 ,
D3DRENDERSTATE_MONOENABLE , FALSE ,
D3DRENDERSTATE_ROP2 , R2_COPYPEN ,
D3DRENDERSTATE_PLANEMASK , 0xFFFFFFFF ,
D3DRENDERSTATE_ZWRITEENABLE , TRUE ,
D3DRENDERSTATE_ALPHATESTENABLE , FALSE ,
D3DRENDERSTATE_LASTPIXEL , TRUE ,
D3DRENDERSTATE_TEXTUREMAG , D3DFILTER_NEAREST ,
D3DRENDERSTATE_TEXTUREMIN , D3DFILTER_NEAREST ,
D3DRENDERSTATE_SRCBLEND , D3DBLEND_ONE ,
D3DRENDERSTATE_DESTBLEND , D3DBLEND_ZERO ,
D3DRENDERSTATE_TEXTUREMAPBLEND , D3DTBLEND_MODULATE ,
D3DRENDERSTATE_CULLMODE , D3DCULL_CCW ,
D3DRENDERSTATE_ZFUNC , D3DCMP_LESSEQUAL ,
D3DRENDERSTATE_ALPHAREF , 0 ,
D3DRENDERSTATE_ALPHAFUNC , D3DCMP_ALWAYS ,
D3DRENDERSTATE_DITHERENABLE , FALSE ,
D3DRENDERSTATE_ALPHABLENDENABLE , FALSE ,
D3DRENDERSTATE_FOGENABLE , FALSE ,
D3DRENDERSTATE_SPECULARENABLE , FALSE ,
D3DRENDERSTATE_ZVISIBLE , FALSE ,
D3DRENDERSTATE_SUBPIXEL , FALSE ,
D3DRENDERSTATE_SUBPIXELX , FALSE ,
D3DRENDERSTATE_STIPPLEDALPHA , FALSE ,
D3DRENDERSTATE_FOGCOLOR , D3DRGBA ( 0 , 0 , 0 , 0 ) ,
D3DRENDERSTATE_FOGTABLEMODE , D3DFOG_NONE ,
/* FIXME: D3DRENDERSTATE_FOGTABLESTART (same as D3DRENDERSTATE_FOGSTART) */
/* FIXME: D3DRENDERSTATE_FOGTABLEEND (same as D3DRENDERSTATE_FOGEND) */
D3DRENDERSTATE_FOGTABLEDENSITY , 0x3F80000 , /* 1.0f (same as D3DRENDERSTATE_FOGDENSITY) */
2003-01-03 22:10:11 +01:00
/* FIXME: D3DRENDERSTATE_STIPPLEENABLE */
2003-01-03 22:08:50 +01:00
D3DRENDERSTATE_EDGEANTIALIAS , FALSE ,
D3DRENDERSTATE_COLORKEYENABLE , FALSE ,
/* FIXME: D3DRENDERSTATE_BORDERCOLOR */
D3DRENDERSTATE_TEXTUREADDRESSU , D3DTADDRESS_WRAP ,
D3DRENDERSTATE_TEXTUREADDRESSV , D3DTADDRESS_WRAP ,
D3DRENDERSTATE_MIPMAPLODBIAS , 0x00000000 , /* 0.0f */
D3DRENDERSTATE_ZBIAS , 0 ,
D3DRENDERSTATE_RANGEFOGENABLE , FALSE ,
/* FIXME: D3DRENDERSTATE_ANISOTROPY */
/* FIXME: D3DRENDERSTATE_FLUSHBATCH */
/* FIXME: D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT */
D3DRENDERSTATE_STENCILENABLE , FALSE ,
D3DRENDERSTATE_STENCILFAIL , D3DSTENCILOP_KEEP ,
D3DRENDERSTATE_STENCILZFAIL , D3DSTENCILOP_KEEP ,
D3DRENDERSTATE_STENCILPASS , D3DSTENCILOP_KEEP ,
D3DRENDERSTATE_STENCILFUNC , D3DCMP_ALWAYS ,
D3DRENDERSTATE_STENCILREF , 0 ,
D3DRENDERSTATE_STENCILMASK , 0xFFFFFFFF ,
D3DRENDERSTATE_STENCILWRITEMASK , 0xFFFFFFFF ,
/* FIXME: D3DRENDERSTATE_TEXTUREFACTOR */
/* FIXME: D3DRENDERSTATE_STIPPLEPATTERN00..31 */
D3DRENDERSTATE_WRAP0 , 0 ,
D3DRENDERSTATE_WRAP1 , 0 ,
D3DRENDERSTATE_WRAP2 , 0 ,
D3DRENDERSTATE_WRAP3 , 0 ,
D3DRENDERSTATE_WRAP4 , 0 ,
D3DRENDERSTATE_WRAP5 , 0 ,
D3DRENDERSTATE_WRAP6 , 0 ,
D3DRENDERSTATE_WRAP7 , 0 ,
D3DRENDERSTATE_CLIPPING , FALSE ,
2003-01-08 00:08:31 +01:00
D3DRENDERSTATE_LIGHTING , TRUE ,
2003-01-03 22:08:50 +01:00
D3DRENDERSTATE_EXTENTS , FALSE ,
D3DRENDERSTATE_AMBIENT , D3DRGBA ( 0 , 0 , 0 , 0 ) ,
D3DRENDERSTATE_FOGVERTEXMODE , D3DFOG_NONE ,
D3DRENDERSTATE_COLORVERTEX , TRUE ,
D3DRENDERSTATE_LOCALVIEWER , TRUE ,
D3DRENDERSTATE_NORMALIZENORMALS , FALSE ,
/* FIXME: D3DRENDER_STATE_COLORKEYBLENDENABLE */
D3DRENDERSTATE_DIFFUSEMATERIALSOURCE , D3DMCS_COLOR1 ,
D3DRENDERSTATE_SPECULARMATERIALSOURCE , D3DMCS_COLOR2 ,
D3DRENDERSTATE_AMBIENTMATERIALSOURCE , D3DMCS_COLOR2 ,
D3DRENDERSTATE_EMISSIVEMATERIALSOURCE , D3DMCS_MATERIAL ,
D3DRENDERSTATE_VERTEXBLEND , D3DVBLEND_DISABLE ,
D3DRENDERSTATE_CLIPPLANEENABLE , 0
} ;
DWORD InitLightStateTab [ ] = {
D3DLIGHTSTATE_MATERIAL , ( DWORD ) NULL ,
D3DLIGHTSTATE_AMBIENT , D3DRGBA ( 0 , 0 , 0 , 0 ) ,
D3DLIGHTSTATE_COLORMODEL , D3DCOLOR_RGB ,
D3DLIGHTSTATE_FOGMODE , D3DFOG_NONE ,
D3DLIGHTSTATE_FOGSTART , 0x3F80000 , /* 1.0f */
D3DLIGHTSTATE_FOGEND , 0x42C8000 , /* 100.0f */
D3DLIGHTSTATE_FOGDENSITY , 0x3F80000 /* 1.0f */
/* FIXME: D3DLIGHTSTATE_COLORVERTEX */
} ;
DWORD InitTextureStageStateTab [ ] = {
2003-05-11 05:44:53 +02:00
D3DTSS_COLOROP , D3DTOP_DISABLE , /* Note, it's manually set for stage 0 */
2003-01-03 22:08:50 +01:00
D3DTSS_COLORARG1 , D3DTA_TEXTURE ,
D3DTSS_COLORARG2 , D3DTA_CURRENT ,
2003-05-11 05:44:53 +02:00
D3DTSS_ALPHAOP , D3DTOP_DISABLE , /* Note, it's manually set for stage 0 */
2003-01-03 22:08:50 +01:00
D3DTSS_ALPHAARG1 , D3DTA_TEXTURE ,
D3DTSS_ALPHAARG2 , D3DTA_CURRENT ,
/* FIXME: D3DTSS_BUMPENVMAT00,01,10,11 */
/* D3DTSS_TEXCOORDINDEX is set manually */
D3DTSS_ADDRESS , D3DTADDRESS_WRAP ,
D3DTSS_ADDRESSU , D3DTADDRESS_WRAP ,
D3DTSS_ADDRESSV , D3DTADDRESS_WRAP ,
2003-05-11 05:44:53 +02:00
D3DTSS_BORDERCOLOR , 0x00000000 ,
2003-01-03 22:08:50 +01:00
D3DTSS_MAGFILTER , D3DTFG_POINT ,
D3DTSS_MINFILTER , D3DTFN_POINT ,
D3DTSS_MIPFILTER , D3DTFP_NONE ,
D3DTSS_MIPMAPLODBIAS , 0x00000000 , /* 0.0f */
2003-05-11 05:44:53 +02:00
D3DTSS_MAXMIPLEVEL , 0 ,
2003-05-12 05:09:17 +02:00
/* D3DTSS_MAXANISOTROPY, 1, */ /* This is to prevent warnings :-) */
2003-01-03 22:08:50 +01:00
/* FIXME: D3DTSS_BUMPENVLSCALE */
/* FIXME: D3DTSS_NUMPENVLOFFSET */
/* FIXME: D3DTSS_TEXTURETRANSFORMFLAGS */
} ;
void InitDefaultStateBlock ( STATEBLOCK * lpStateBlock , int version )
{
2004-09-08 03:23:57 +02:00
unsigned int i , j ;
2003-01-03 22:08:50 +01:00
TRACE ( " (%p,%d) \n " , lpStateBlock , version ) ;
2003-01-08 00:08:31 +01:00
memset ( lpStateBlock , 0 , sizeof ( STATEBLOCK ) ) ;
2003-01-03 22:08:50 +01:00
/* Initialize render states */
2003-05-11 05:44:53 +02:00
for ( i = 0 ; i < sizeof ( InitRenderStateTab ) / sizeof ( InitRenderStateTab [ 0 ] ) ; i + = 2 )
2003-01-03 22:08:50 +01:00
{
2003-01-08 00:08:31 +01:00
lpStateBlock - > render_state [ InitRenderStateTab [ i ] - 1 ] = InitRenderStateTab [ i + 1 ] ;
lpStateBlock - > set_flags . render_state [ InitRenderStateTab [ i ] - 1 ] = TRUE ;
2003-01-03 22:08:50 +01:00
}
/* Initialize texture stages states */
2003-05-11 05:44:53 +02:00
for ( i = 0 ; i < MAX_TEXTURES ; i + + )
2003-01-03 22:08:50 +01:00
{
2003-05-11 05:44:53 +02:00
for ( j = 0 ; j < sizeof ( InitTextureStageStateTab ) / sizeof ( InitTextureStageStateTab [ 0 ] ) ; j + = 2 )
2003-01-03 22:08:50 +01:00
{
2003-01-08 00:08:31 +01:00
lpStateBlock - > texture_stage_state [ i ] [ InitTextureStageStateTab [ j ] - 1 ] = InitTextureStageStateTab [ j + 1 ] ;
lpStateBlock - > set_flags . texture_stage_state [ i ] [ InitTextureStageStateTab [ j ] - 1 ] = TRUE ;
2003-01-03 22:08:50 +01:00
}
/* Map texture coords 0 to stage 0, 1 to stage 1, etc... */
2003-01-08 00:08:31 +01:00
lpStateBlock - > texture_stage_state [ i ] [ D3DTSS_TEXCOORDINDEX - 1 ] = i ;
lpStateBlock - > set_flags . texture_stage_state [ i ] [ D3DTSS_TEXCOORDINDEX - 1 ] = TRUE ;
2003-01-03 22:08:50 +01:00
}
/* The first texture is particular, update it consequently */
2003-01-08 00:08:31 +01:00
lpStateBlock - > texture_stage_state [ 0 ] [ D3DTSS_COLOROP - 1 ] = D3DTOP_MODULATE ;
lpStateBlock - > texture_stage_state [ 0 ] [ D3DTSS_ALPHAOP - 1 ] = D3DTOP_SELECTARG1 ;
2003-05-11 05:44:53 +02:00
lpStateBlock - > texture_stage_state [ 0 ] [ D3DTSS_COLORARG2 - 1 ] = D3DTA_DIFFUSE ;
lpStateBlock - > texture_stage_state [ 0 ] [ D3DTSS_ALPHAARG2 - 1 ] = D3DTA_DIFFUSE ;
2003-01-03 22:08:50 +01:00
/* Updates for particular versions */
2003-01-08 00:08:31 +01:00
if ( ( version = = 1 ) | | ( version = = 2 ) )
lpStateBlock - > render_state [ D3DRENDERSTATE_SPECULARENABLE - 1 ] = TRUE ;
2003-01-03 22:08:50 +01:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_1T_QueryInterface ( LPDIRECT3DDEVICE7 iface ,
REFIID riid ,
LPVOID * obp )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2002-12-24 01:25:55 +01:00
TRACE ( " (%p/%p)->(%s,%p) \n " , This , iface , debugstr_guid ( riid ) , obp ) ;
2002-11-21 22:04:16 +01:00
* obp = NULL ;
2000-04-09 16:30:50 +02:00
2005-02-14 12:09:46 +01:00
/* Note: We cannot get an interface whose version is higher than the
* Direct3D object that created the device */
2002-11-21 22:04:16 +01:00
if ( IsEqualGUID ( & IID_IUnknown , riid ) ) {
IDirect3DDevice7_AddRef ( ICOM_INTERFACE ( This , IDirect3DDevice7 ) ) ;
* obp = iface ;
TRACE ( " Creating IUnknown interface at %p. \n " , * obp ) ;
return S_OK ;
}
if ( IsEqualGUID ( & IID_IDirect3DDevice , riid ) ) {
IDirect3DDevice7_AddRef ( ICOM_INTERFACE ( This , IDirect3DDevice7 ) ) ;
* obp = ICOM_INTERFACE ( This , IDirect3DDevice ) ;
TRACE ( " Creating IDirect3DDevice interface %p \n " , * obp ) ;
return S_OK ;
}
2005-02-14 12:09:46 +01:00
if ( IsEqualGUID ( & IID_IDirect3DDevice2 , riid ) & & ( This - > version > = 2 ) ) {
2002-11-21 22:04:16 +01:00
IDirect3DDevice7_AddRef ( ICOM_INTERFACE ( This , IDirect3DDevice7 ) ) ;
* obp = ICOM_INTERFACE ( This , IDirect3DDevice2 ) ;
TRACE ( " Creating IDirect3DDevice2 interface %p \n " , * obp ) ;
return S_OK ;
}
2005-02-14 12:09:46 +01:00
if ( IsEqualGUID ( & IID_IDirect3DDevice3 , riid ) & & ( This - > version > = 3 ) ) {
2002-11-21 22:04:16 +01:00
IDirect3DDevice7_AddRef ( ICOM_INTERFACE ( This , IDirect3DDevice7 ) ) ;
* obp = ICOM_INTERFACE ( This , IDirect3DDevice3 ) ;
TRACE ( " Creating IDirect3DDevice3 interface %p \n " , * obp ) ;
return S_OK ;
}
2005-02-14 12:09:46 +01:00
if ( IsEqualGUID ( & IID_IDirect3DDevice7 , riid ) & & ( This - > version > = 7 ) ) {
2002-11-21 22:04:16 +01:00
IDirect3DDevice7_AddRef ( ICOM_INTERFACE ( This , IDirect3DDevice7 ) ) ;
* obp = ICOM_INTERFACE ( This , IDirect3DDevice7 ) ;
TRACE ( " Creating IDirect3DDevice7 interface %p \n " , * obp ) ;
return S_OK ;
}
2003-05-20 19:49:40 +02:00
if ( IsEqualGUID ( & IID_IDirectDrawSurface , riid ) | |
IsEqualGUID ( & IID_IDirectDrawSurface2 , riid ) | |
IsEqualGUID ( & IID_IDirectDrawSurface3 , riid ) ) {
IDirectDrawSurface7_AddRef ( ICOM_INTERFACE ( This - > surface , IDirectDrawSurface7 ) ) ;
* obp = ICOM_INTERFACE ( This - > surface , IDirectDrawSurface3 ) ;
TRACE ( " Return IDirectDrawSurface3 interface %p \n " , * obp ) ;
return S_OK ;
}
2003-05-22 05:38:22 +02:00
if ( IsEqualGUID ( & IID_IDirectDrawSurface4 , riid ) | |
2003-05-20 19:49:40 +02:00
IsEqualGUID ( & IID_IDirectDrawSurface7 , riid ) ) {
IDirectDrawSurface7_AddRef ( ICOM_INTERFACE ( This - > surface , IDirectDrawSurface7 ) ) ;
* obp = ICOM_INTERFACE ( This - > surface , IDirectDrawSurface7 ) ;
TRACE ( " Return IDirectDrawSurface7 interface %p \n " , * obp ) ;
return S_OK ;
}
2002-11-21 22:04:16 +01:00
FIXME ( " (%p): interface for IID %s NOT found! \n " , This , debugstr_guid ( riid ) ) ;
return OLE_E_ENUM_NOMORE ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
ULONG WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_1T_AddRef ( LPDIRECT3DDEVICE7 iface )
2000-04-09 16:30:50 +02:00
{
2002-11-21 22:04:16 +01:00
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2005-01-09 18:29:21 +01:00
ULONG ref = InterlockedIncrement ( & This - > ref ) ;
TRACE ( " (%p/%p)->() incrementing from %lu. \n " , This , iface , ref - 1 ) ;
return ref ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
ULONG WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_1T_Release ( LPDIRECT3DDEVICE7 iface )
2000-04-09 16:30:50 +02:00
{
2002-11-21 22:04:16 +01:00
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2005-01-09 18:29:21 +01:00
ULONG ref = InterlockedDecrement ( & This - > ref ) ;
TRACE ( " (%p/%p)->() decrementing from %lu. \n " , This , iface , ref + 1 ) ;
if ( ! ref ) {
2002-12-02 19:59:11 +01:00
int i ;
/* Release texture associated with the device */
for ( i = 0 ; i < MAX_TEXTURES ; i + + ) {
if ( This - > current_texture [ i ] ! = NULL )
IDirect3DTexture2_Release ( ICOM_INTERFACE ( This - > current_texture [ i ] , IDirect3DTexture2 ) ) ;
}
2002-10-16 20:57:52 +02:00
2002-11-21 22:04:16 +01:00
HeapFree ( GetProcessHeap ( ) , 0 , This ) ;
2000-04-09 16:30:50 +02:00
return 0 ;
}
2005-01-09 18:29:21 +01:00
return ref ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_GetCaps ( LPDIRECT3DDEVICE7 iface ,
LPD3DDEVICEDESC7 lpD3DHELDevDesc )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%p): stub! \n " , This , iface , lpD3DHELDevDesc ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_EnumTextureFormats ( LPDIRECT3DDEVICE7 iface ,
LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc ,
LPVOID lpArg )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%p,%p): stub! \n " , This , iface , lpD3DEnumPixelProc , lpArg ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_1T_BeginScene ( LPDIRECT3DDEVICE7 iface )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2002-12-24 01:25:55 +01:00
TRACE ( " (%p/%p)->() \n " , This , iface ) ;
/* Nothing to do */
2002-11-21 22:04:16 +01:00
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_1T_EndScene ( LPDIRECT3DDEVICE7 iface )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2002-12-24 01:25:55 +01:00
TRACE ( " (%p/%p)->() \n " , This , iface ) ;
/* Nothing to do */
2002-11-21 22:04:16 +01:00
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_1T_GetDirect3D ( LPDIRECT3DDEVICE7 iface ,
2003-06-05 01:31:39 +02:00
LPDIRECT3D7 * lplpDirect3D7 )
2002-11-21 22:04:16 +01:00
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2003-06-05 01:31:39 +02:00
TRACE ( " (%p/%p)->(%p) \n " , This , iface , lplpDirect3D7 ) ;
2002-09-30 20:52:06 +02:00
2003-06-05 01:31:39 +02:00
* lplpDirect3D7 = ICOM_INTERFACE ( This - > d3d , IDirect3D7 ) ;
2002-11-30 02:53:44 +01:00
IDirect3D7_AddRef ( ICOM_INTERFACE ( This - > d3d , IDirect3D7 ) ) ;
2003-06-05 01:31:39 +02:00
TRACE ( " returning interface %p \n " , * lplpDirect3D7 ) ;
2002-11-21 22:04:16 +01:00
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_SetRenderTarget ( LPDIRECT3DDEVICE7 iface ,
LPDIRECTDRAWSURFACE7 lpNewRenderTarget ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2003-01-02 21:01:54 +01:00
IDirectDrawSurfaceImpl * target_impl = ICOM_OBJECT ( IDirectDrawSurfaceImpl , IDirectDrawSurface7 , lpNewRenderTarget ) ;
TRACE ( " (%p/%p)->(%p,%08lx) \n " , This , iface , lpNewRenderTarget , dwFlags ) ;
if ( target_impl ! = This - > surface ) {
WARN ( " Change of rendering target not handled yet ! \n " ) ;
}
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_GetRenderTarget ( LPDIRECT3DDEVICE7 iface ,
LPDIRECTDRAWSURFACE7 * lplpRenderTarget )
2000-04-09 16:30:50 +02:00
{
2002-11-21 22:04:16 +01:00
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2002-11-30 03:20:31 +01:00
TRACE ( " (%p/%p)->(%p) \n " , This , iface , lplpRenderTarget ) ;
* lplpRenderTarget = ICOM_INTERFACE ( This - > surface , IDirectDrawSurface7 ) ;
IDirectDrawSurface7_AddRef ( ICOM_INTERFACE ( This - > surface , IDirectDrawSurface7 ) ) ;
TRACE ( " returning surface at %p. \n " , * lplpRenderTarget ) ;
2002-11-21 22:04:16 +01:00
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_Clear ( LPDIRECT3DDEVICE7 iface ,
DWORD dwCount ,
LPD3DRECT lpRects ,
DWORD dwFlags ,
D3DCOLOR dwColor ,
D3DVALUE dvZ ,
DWORD dwStencil )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2002-12-24 02:03:04 +01:00
TRACE ( " (%p/%p)->(%08lx,%p,%08lx,%08lx,%f,%08lx) \n " , This , iface , dwCount , lpRects , dwFlags , ( DWORD ) dwColor , dvZ , dwStencil ) ;
return This - > clear ( This , dwCount , lpRects , dwFlags , dwColor , dvZ , dwStencil ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_SetTransform ( LPDIRECT3DDEVICE7 iface ,
D3DTRANSFORMSTATETYPE dtstTransformStateType ,
LPD3DMATRIX lpD3DMatrix )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2003-01-03 22:05:38 +01:00
DWORD matrix_changed = 0x00000000 ;
TRACE ( " (%p/%p)->(%08x,%p) \n " , This , iface , dtstTransformStateType , lpD3DMatrix ) ;
switch ( dtstTransformStateType ) {
case D3DTRANSFORMSTATE_WORLD : {
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " D3DTRANSFORMSTATE_WORLD : \n " ) ; dump_D3DMATRIX ( lpD3DMatrix ) ;
}
memcpy ( This - > world_mat , lpD3DMatrix , 16 * sizeof ( float ) ) ;
matrix_changed = WORLDMAT_CHANGED ;
} break ;
case D3DTRANSFORMSTATE_VIEW : {
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " D3DTRANSFORMSTATE_VIEW : \n " ) ; dump_D3DMATRIX ( lpD3DMatrix ) ;
}
memcpy ( This - > view_mat , lpD3DMatrix , 16 * sizeof ( float ) ) ;
matrix_changed = VIEWMAT_CHANGED ;
} break ;
case D3DTRANSFORMSTATE_PROJECTION : {
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " D3DTRANSFORMSTATE_PROJECTION : \n " ) ; dump_D3DMATRIX ( lpD3DMatrix ) ;
}
memcpy ( This - > proj_mat , lpD3DMatrix , 16 * sizeof ( float ) ) ;
matrix_changed = PROJMAT_CHANGED ;
} break ;
2003-05-20 04:15:24 +02:00
case D3DTRANSFORMSTATE_TEXTURE0 :
case D3DTRANSFORMSTATE_TEXTURE1 :
case D3DTRANSFORMSTATE_TEXTURE2 :
case D3DTRANSFORMSTATE_TEXTURE3 :
case D3DTRANSFORMSTATE_TEXTURE4 :
case D3DTRANSFORMSTATE_TEXTURE5 :
case D3DTRANSFORMSTATE_TEXTURE6 :
case D3DTRANSFORMSTATE_TEXTURE7 : {
DWORD mat_num = dtstTransformStateType - D3DTRANSFORMSTATE_TEXTURE0 ;
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " D3DTRANSFORMSTATE_TEXTURE%ld : \n " , mat_num ) ; dump_D3DMATRIX ( lpD3DMatrix ) ;
}
memcpy ( This - > tex_mat [ mat_num ] , lpD3DMatrix , 16 * sizeof ( float ) ) ;
matrix_changed = TEXMAT0_CHANGED < < mat_num ;
} break ;
2003-01-03 22:05:38 +01:00
default :
ERR ( " Unknown transform type %08x !!! \n " , dtstTransformStateType ) ;
break ;
}
if ( matrix_changed ! = 0x00000000 ) This - > matrices_updated ( This , matrix_changed ) ;
2002-11-21 22:04:16 +01:00
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_GetTransform ( LPDIRECT3DDEVICE7 iface ,
D3DTRANSFORMSTATETYPE dtstTransformStateType ,
LPD3DMATRIX lpD3DMatrix )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2003-01-02 20:53:43 +01:00
TRACE ( " (%p/%p)->(%08x,%p) \n " , This , iface , dtstTransformStateType , lpD3DMatrix ) ;
switch ( dtstTransformStateType ) {
case D3DTRANSFORMSTATE_WORLD : {
2003-02-12 22:34:46 +01:00
memcpy ( lpD3DMatrix , This - > world_mat , 16 * sizeof ( D3DVALUE ) ) ;
2003-01-03 22:05:38 +01:00
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " returning D3DTRANSFORMSTATE_WORLD : \n " ) ;
dump_D3DMATRIX ( lpD3DMatrix ) ;
}
2003-01-02 20:53:43 +01:00
} break ;
case D3DTRANSFORMSTATE_VIEW : {
2003-02-12 22:34:46 +01:00
memcpy ( lpD3DMatrix , This - > view_mat , 16 * sizeof ( D3DVALUE ) ) ;
2003-01-03 22:05:38 +01:00
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " returning D3DTRANSFORMSTATE_VIEW : \n " ) ;
dump_D3DMATRIX ( lpD3DMatrix ) ;
}
2003-01-02 20:53:43 +01:00
} break ;
case D3DTRANSFORMSTATE_PROJECTION : {
2003-02-12 22:34:46 +01:00
memcpy ( lpD3DMatrix , This - > proj_mat , 16 * sizeof ( D3DVALUE ) ) ;
2003-01-03 22:05:38 +01:00
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " returning D3DTRANSFORMSTATE_PROJECTION : \n " ) ;
dump_D3DMATRIX ( lpD3DMatrix ) ;
}
2003-01-02 20:53:43 +01:00
} break ;
2003-05-20 04:15:24 +02:00
case D3DTRANSFORMSTATE_TEXTURE0 :
case D3DTRANSFORMSTATE_TEXTURE1 :
case D3DTRANSFORMSTATE_TEXTURE2 :
case D3DTRANSFORMSTATE_TEXTURE3 :
case D3DTRANSFORMSTATE_TEXTURE4 :
case D3DTRANSFORMSTATE_TEXTURE5 :
case D3DTRANSFORMSTATE_TEXTURE6 :
case D3DTRANSFORMSTATE_TEXTURE7 : {
DWORD mat_num = dtstTransformStateType - D3DTRANSFORMSTATE_TEXTURE0 ;
memcpy ( lpD3DMatrix , This - > tex_mat [ mat_num ] , 16 * sizeof ( D3DVALUE ) ) ;
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " returning D3DTRANSFORMSTATE_TEXTURE%ld : \n " , mat_num ) ;
dump_D3DMATRIX ( lpD3DMatrix ) ;
}
} break ;
2003-01-02 20:53:43 +01:00
default :
ERR ( " Unknown transform type %08x !!! \n " , dtstTransformStateType ) ;
return DDERR_INVALIDPARAMS ;
}
2002-11-21 22:04:16 +01:00
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2003-02-12 22:26:28 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_MultiplyTransform ( LPDIRECT3DDEVICE7 iface ,
D3DTRANSFORMSTATETYPE dtstTransformStateType ,
LPD3DMATRIX lpD3DMatrix )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
LPD3DMATRIX mat ;
DWORD matrix_changed = 0x00000000 ;
TRACE ( " (%p/%p)->(%08x,%p) \n " , This , iface , dtstTransformStateType , lpD3DMatrix ) ;
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " Multiplying by : \n " ) ; dump_D3DMATRIX ( lpD3DMatrix ) ;
}
switch ( dtstTransformStateType ) {
case D3DTRANSFORMSTATE_WORLD : {
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " Resulting D3DTRANSFORMSTATE_WORLD matrix is : \n " ) ;
}
mat = This - > world_mat ;
matrix_changed = WORLDMAT_CHANGED ;
} break ;
case D3DTRANSFORMSTATE_VIEW : {
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " Resulting D3DTRANSFORMSTATE_VIEW matrix is : \n " ) ;
}
mat = This - > view_mat ;
matrix_changed = VIEWMAT_CHANGED ;
} break ;
case D3DTRANSFORMSTATE_PROJECTION : {
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " Resulting D3DTRANSFORMSTATE_PROJECTION matrix is : \n " ) ;
}
mat = This - > proj_mat ;
matrix_changed = PROJMAT_CHANGED ;
} break ;
2003-05-20 04:15:24 +02:00
case D3DTRANSFORMSTATE_TEXTURE0 :
case D3DTRANSFORMSTATE_TEXTURE1 :
case D3DTRANSFORMSTATE_TEXTURE2 :
case D3DTRANSFORMSTATE_TEXTURE3 :
case D3DTRANSFORMSTATE_TEXTURE4 :
case D3DTRANSFORMSTATE_TEXTURE5 :
case D3DTRANSFORMSTATE_TEXTURE6 :
case D3DTRANSFORMSTATE_TEXTURE7 : {
DWORD mat_num = dtstTransformStateType - D3DTRANSFORMSTATE_TEXTURE0 ;
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " Resulting D3DTRANSFORMSTATE_TEXTURE%ld matrix is : \n " , mat_num ) ;
}
mat = This - > tex_mat [ mat_num ] ;
matrix_changed = TEXMAT0_CHANGED < < mat_num ;
} break ;
2003-02-12 22:26:28 +01:00
default :
ERR ( " Unknown transform type %08x !!! \n " , dtstTransformStateType ) ;
return DDERR_INVALIDPARAMS ;
}
2003-05-20 19:49:40 +02:00
multiply_matrix ( mat , mat , lpD3DMatrix ) ;
2003-02-12 22:26:28 +01:00
if ( TRACE_ON ( ddraw ) ) {
dump_D3DMATRIX ( mat ) ;
}
if ( matrix_changed ! = 0x00000000 ) This - > matrices_updated ( This , matrix_changed ) ;
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_GetViewport ( LPDIRECT3DDEVICE7 iface ,
LPD3DVIEWPORT7 lpData )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2002-12-24 02:00:45 +01:00
TRACE ( " (%p/%p)->(%p) \n " , This , iface , lpData ) ;
* lpData = This - > active_viewport ;
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " returning viewport : \n " ) ;
TRACE ( " - dwX = %ld dwY = %ld \n " ,
lpData - > dwX , lpData - > dwY ) ;
TRACE ( " - dwWidth = %ld dwHeight = %ld \n " ,
lpData - > dwWidth , lpData - > dwHeight ) ;
TRACE ( " - dvMinZ = %f dvMaxZ = %f \n " ,
lpData - > dvMinZ , lpData - > dvMaxZ ) ;
}
2002-11-21 22:04:16 +01:00
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_SetMaterial ( LPDIRECT3DDEVICE7 iface ,
LPD3DMATERIAL7 lpMat )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%p): stub! \n " , This , iface , lpMat ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_GetMaterial ( LPDIRECT3DDEVICE7 iface ,
LPD3DMATERIAL7 lpMat )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2003-01-02 21:01:54 +01:00
TRACE ( " (%p/%p)->(%p) \n " , This , iface , lpMat ) ;
* lpMat = This - > current_material ;
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " returning material : \n " ) ;
dump_D3DMATERIAL7 ( lpMat ) ;
}
2002-11-21 22:04:16 +01:00
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_SetLight ( LPDIRECT3DDEVICE7 iface ,
DWORD dwLightIndex ,
LPD3DLIGHT7 lpLight )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08lx,%p): stub! \n " , This , iface , dwLightIndex , lpLight ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_GetLight ( LPDIRECT3DDEVICE7 iface ,
DWORD dwLightIndex ,
LPD3DLIGHT7 lpLight )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2003-01-02 21:01:54 +01:00
TRACE ( " (%p/%p)->(%08lx,%p) \n " , This , iface , dwLightIndex , lpLight ) ;
2005-06-07 23:34:40 +02:00
if ( dwLightIndex > = This - > num_set_lights )
return DDERR_INVALIDPARAMS ;
2003-01-02 21:01:54 +01:00
* lpLight = This - > light_parameters [ dwLightIndex ] ;
2005-06-07 23:34:40 +02:00
/* If dltType is zero, then this light has never been set, either
by calling SetLight or implicitely by calling EnableLight without
calling SetLight first . */
if ( lpLight - > dltType = = 0 )
return DDERR_INVALIDPARAMS ;
2003-01-02 21:01:54 +01:00
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " returning light : \n " ) ;
dump_D3DLIGHT7 ( lpLight ) ;
}
2002-11-21 22:04:16 +01:00
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_SetRenderState ( LPDIRECT3DDEVICE7 iface ,
D3DRENDERSTATETYPE dwRenderStateType ,
DWORD dwRenderState )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%08lx): stub! \n " , This , iface , dwRenderStateType , dwRenderState ) ;
return DD_OK ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_GetRenderState ( LPDIRECT3DDEVICE7 iface ,
D3DRENDERSTATETYPE dwRenderStateType ,
LPDWORD lpdwRenderState )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%p): stub! \n " , This , iface , dwRenderStateType , lpdwRenderState ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_BeginStateBlock ( LPDIRECT3DDEVICE7 iface )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(): stub! \n " , This , iface ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_EndStateBlock ( LPDIRECT3DDEVICE7 iface ,
LPDWORD lpdwBlockHandle )
2000-04-09 16:30:50 +02:00
{
2002-11-21 22:04:16 +01:00
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%p): stub! \n " , This , iface , lpdwBlockHandle ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_PreLoad ( LPDIRECT3DDEVICE7 iface ,
LPDIRECTDRAWSURFACE7 lpddsTexture )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%p): stub! \n " , This , iface , lpddsTexture ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_DrawPrimitive ( LPDIRECT3DDEVICE7 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
DWORD d3dvtVertexType ,
LPVOID lpvVertices ,
DWORD dwVertexCount ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub! \n " , This , iface , d3dptPrimitiveType , d3dvtVertexType , lpvVertices , dwVertexCount , dwFlags ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitive ( LPDIRECT3DDEVICE7 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
DWORD d3dvtVertexType ,
LPVOID lpvVertices ,
DWORD dwVertexCount ,
LPWORD dwIndices ,
DWORD dwIndexCount ,
DWORD dwFlags )
2000-04-09 16:30:50 +02:00
{
2002-11-21 22:04:16 +01:00
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx): stub! \n " , This , iface , d3dptPrimitiveType , d3dvtVertexType , lpvVertices , dwVertexCount , dwIndices , dwIndexCount , dwFlags ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_SetClipStatus ( LPDIRECT3DDEVICE7 iface ,
LPD3DCLIPSTATUS lpD3DClipStatus )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%p): stub! \n " , This , iface , lpD3DClipStatus ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_2T_GetClipStatus ( LPDIRECT3DDEVICE7 iface ,
LPD3DCLIPSTATUS lpD3DClipStatus )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%p): stub! \n " , This , iface , lpD3DClipStatus ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_DrawPrimitiveStrided ( LPDIRECT3DDEVICE7 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
DWORD dwVertexType ,
LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData ,
DWORD dwVertexCount ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub! \n " , This , iface , d3dptPrimitiveType , dwVertexType , lpD3DDrawPrimStrideData , dwVertexCount , dwFlags ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitiveStrided ( LPDIRECT3DDEVICE7 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
DWORD dwVertexType ,
LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData ,
DWORD dwVertexCount ,
LPWORD lpIndex ,
DWORD dwIndexCount ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx): stub! \n " , This , iface , d3dptPrimitiveType , dwVertexType , lpD3DDrawPrimStrideData , dwVertexCount , lpIndex , dwIndexCount , dwFlags ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
2003-01-02 20:46:46 +01:00
Main_IDirect3DDeviceImpl_7_3T_DrawPrimitiveVB ( LPDIRECT3DDEVICE7 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf ,
DWORD dwStartVertex ,
DWORD dwNumVertices ,
DWORD dwFlags )
2002-11-21 22:04:16 +01:00
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%p,%08lx,%08lx,%08lx): stub! \n " , This , iface , d3dptPrimitiveType , lpD3DVertexBuf , dwStartVertex , dwNumVertices , dwFlags ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
2003-01-02 20:46:46 +01:00
Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitiveVB ( LPDIRECT3DDEVICE7 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf ,
DWORD dwStartVertex ,
DWORD dwNumVertices ,
LPWORD lpwIndices ,
DWORD dwIndexCount ,
DWORD dwFlags )
2002-11-21 22:04:16 +01:00
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%p,%08lx,%08lx,%p,%08lx,%08lx): stub! \n " , This , iface , d3dptPrimitiveType , lpD3DVertexBuf , dwStartVertex , dwNumVertices , lpwIndices , dwIndexCount , dwFlags ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_ComputeSphereVisibility ( LPDIRECT3DDEVICE7 iface ,
LPD3DVECTOR lpCenters ,
LPD3DVALUE lpRadii ,
DWORD dwNumSpheres ,
DWORD dwFlags ,
LPDWORD lpdwReturnValues )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%p,%p,%08lx,%08lx,%p): stub! \n " , This , iface , lpCenters , lpRadii , dwNumSpheres , dwFlags , lpdwReturnValues ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
2003-01-02 20:52:22 +01:00
Main_IDirect3DDeviceImpl_7_3T_GetTexture ( LPDIRECT3DDEVICE7 iface ,
DWORD dwStage ,
LPDIRECTDRAWSURFACE7 * lpTexture )
2002-11-21 22:04:16 +01:00
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2003-01-02 20:52:22 +01:00
TRACE ( " (%p/%p)->(%08lx,%p) \n " , This , iface , dwStage , lpTexture ) ;
if ( This - > current_texture [ dwStage ] ! = NULL ) {
* lpTexture = ICOM_INTERFACE ( This - > current_texture [ dwStage ] , IDirectDrawSurface7 ) ;
2003-06-05 01:31:39 +02:00
IDirectDrawSurface7_AddRef ( * lpTexture ) ;
2003-01-02 20:52:22 +01:00
} else {
* lpTexture = NULL ;
}
TRACE ( " returning interface at %p (for implementation at %p). \n " , * lpTexture , This - > current_texture [ dwStage ] ) ;
2002-11-21 22:04:16 +01:00
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
2002-12-24 01:53:50 +01:00
Main_IDirect3DDeviceImpl_7_3T_SetTexture ( LPDIRECT3DDEVICE7 iface ,
DWORD dwStage ,
LPDIRECTDRAWSURFACE7 lpTexture )
2002-11-21 22:04:16 +01:00
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08lx,%p): stub! \n " , This , iface , dwStage , lpTexture ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_GetTextureStageState ( LPDIRECT3DDEVICE7 iface ,
DWORD dwStage ,
D3DTEXTURESTAGESTATETYPE d3dTexStageStateType ,
LPDWORD lpdwState )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2003-01-03 22:08:50 +01:00
TRACE ( " (%p/%p)->(%08lx,%08x,%p) \n " , This , iface , dwStage , d3dTexStageStateType , lpdwState ) ;
2003-07-26 22:33:23 +02:00
if ( lpdwState & & ( dwStage < 8 ) & & d3dTexStageStateType & & ( d3dTexStageStateType < = HIGHEST_TEXTURE_STAGE_STATE ) ) {
2003-01-03 22:08:50 +01:00
* lpdwState = This - > state_block . texture_stage_state [ dwStage ] [ d3dTexStageStateType - 1 ] ;
return DD_OK ;
}
return DDERR_INVALIDPARAMS ;
2002-11-21 22:04:16 +01:00
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_SetTextureStageState ( LPDIRECT3DDEVICE7 iface ,
DWORD dwStage ,
D3DTEXTURESTAGESTATETYPE d3dTexStageStateType ,
DWORD dwState )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08lx,%08x,%08lx): stub! \n " , This , iface , dwStage , d3dTexStageStateType , dwState ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_3T_ValidateDevice ( LPDIRECT3DDEVICE7 iface ,
LPDWORD lpdwPasses )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2003-01-02 20:52:22 +01:00
FIXME ( " (%p/%p)->(%p): semi-stub! \n " , This , iface , lpdwPasses ) ;
/* For the moment, we have a VERY good hardware which does everything in one pass :-) */
* lpdwPasses = 1 ;
2002-11-21 22:04:16 +01:00
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_ApplyStateBlock ( LPDIRECT3DDEVICE7 iface ,
DWORD dwBlockHandle )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08lx): stub! \n " , This , iface , dwBlockHandle ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_CaptureStateBlock ( LPDIRECT3DDEVICE7 iface ,
DWORD dwBlockHandle )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08lx): stub! \n " , This , iface , dwBlockHandle ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_DeleteStateBlock ( LPDIRECT3DDEVICE7 iface ,
DWORD dwBlockHandle )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08lx): stub! \n " , This , iface , dwBlockHandle ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_CreateStateBlock ( LPDIRECT3DDEVICE7 iface ,
D3DSTATEBLOCKTYPE d3dsbType ,
LPDWORD lpdwBlockHandle )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%p): stub! \n " , This , iface , d3dsbType , lpdwBlockHandle ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_Load ( LPDIRECT3DDEVICE7 iface ,
LPDIRECTDRAWSURFACE7 lpDestTex ,
LPPOINT lpDestPoint ,
LPDIRECTDRAWSURFACE7 lpSrcTex ,
LPRECT lprcSrcRect ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2003-02-12 02:10:03 +01:00
FIXME ( " (%p/%p)->(%p,%p,%p,%p,%08lx): Partially Implemented! \n " , This , iface , lpDestTex , lpDestPoint , lpSrcTex , lprcSrcRect , dwFlags ) ;
IDirect3DTexture2_Load ( COM_INTERFACE_CAST ( IDirectDrawSurfaceImpl , IDirectDrawSurface7 , IDirect3DTexture2 , lpDestTex ) ,
2003-05-20 06:10:22 +02:00
COM_INTERFACE_CAST ( IDirectDrawSurfaceImpl , IDirectDrawSurface7 , IDirect3DTexture2 , lpSrcTex ) ) ;
2002-11-21 22:04:16 +01:00
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_LightEnable ( LPDIRECT3DDEVICE7 iface ,
DWORD dwLightIndex ,
BOOL bEnable )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08lx,%d): stub! \n " , This , iface , dwLightIndex , bEnable ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_GetLightEnable ( LPDIRECT3DDEVICE7 iface ,
DWORD dwLightIndex ,
BOOL * pbEnable )
{
2005-06-07 23:34:40 +02:00
int i ;
2002-11-21 22:04:16 +01:00
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2003-01-02 21:01:54 +01:00
TRACE ( " (%p/%p)->(%08lx,%p) \n " , This , iface , dwLightIndex , pbEnable ) ;
2005-06-07 23:34:40 +02:00
* pbEnable = 0 ;
if ( dwLightIndex > = This - > num_set_lights )
return DDERR_INVALIDPARAMS ;
/* If dltType is zero, then this light has never been set, either
by calling SetLight or implicitely by calling EnableLight without
calling SetLight first . */
if ( This - > light_parameters [ dwLightIndex ] . dltType = = 0 )
return DDERR_INVALIDPARAMS ;
for ( i = 0 ; i < This - > max_active_lights ; i + + )
if ( This - > active_lights [ i ] = = dwLightIndex )
* pbEnable = TRUE ;
2003-01-02 21:01:54 +01:00
TRACE ( " returning %d. \n " , * pbEnable ) ;
2002-11-21 22:04:16 +01:00
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_SetClipPlane ( LPDIRECT3DDEVICE7 iface ,
DWORD dwIndex ,
D3DVALUE * pPlaneEquation )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
FIXME ( " (%p/%p)->(%08lx,%p): stub! \n " , This , iface , dwIndex , pPlaneEquation ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2003-01-07 20:42:26 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_GetClipPlane ( LPDIRECT3DDEVICE7 iface , DWORD dwIndex , D3DVALUE * pPlaneEquation )
2002-11-21 22:04:16 +01:00
{
2004-09-08 03:50:37 +02:00
IDirect3DDeviceImpl * This = ( IDirect3DDeviceImpl * ) iface ;
2003-01-07 20:42:26 +01:00
TRACE ( " (%p)->(%ld,%p) \n " , This , dwIndex , pPlaneEquation ) ;
if ( dwIndex > = This - > max_clipping_planes ) {
return DDERR_INVALIDPARAMS ;
}
memcpy ( pPlaneEquation , This - > clipping_planes [ dwIndex ] . plane , sizeof ( D3DVALUE [ 4 ] ) ) ;
return D3D_OK ;
2002-11-21 22:04:16 +01:00
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_7_GetInfo ( LPDIRECT3DDEVICE7 iface ,
DWORD dwDevInfoID ,
LPVOID pDevInfoStruct ,
DWORD dwSize )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice7 , iface ) ;
2003-01-03 22:07:22 +01:00
TRACE ( " (%p/%p)->(%08lx,%p,%08lx) \n " , This , iface , dwDevInfoID , pDevInfoStruct , dwSize ) ;
2003-01-03 22:04:12 +01:00
if ( TRACE_ON ( ddraw ) ) {
TRACE ( " info requested : " ) ;
switch ( dwDevInfoID ) {
2003-03-15 01:12:42 +01:00
case D3DDEVINFOID_TEXTUREMANAGER : TRACE ( " D3DDEVINFOID_TEXTUREMANAGER \n " ) ; break ;
case D3DDEVINFOID_D3DTEXTUREMANAGER : TRACE ( " D3DDEVINFOID_D3DTEXTUREMANAGER \n " ) ; break ;
case D3DDEVINFOID_TEXTURING : TRACE ( " D3DDEVINFOID_TEXTURING \n " ) ; break ;
2003-01-03 22:04:12 +01:00
default : ERR ( " invalid flag !!! \n " ) ; return DDERR_INVALIDPARAMS ;
}
}
return S_FALSE ; /* According to MSDN, this is valid for a non-debug driver */
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_3_2T_1T_GetCaps ( LPDIRECT3DDEVICE3 iface ,
LPD3DDEVICEDESC lpD3DHWDevDesc ,
LPD3DDEVICEDESC lpD3DHELDevDesc )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice3 , iface ) ;
FIXME ( " (%p/%p)->(%p,%p): stub! \n " , This , iface , lpD3DHWDevDesc , lpD3DHELDevDesc ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_3_2T_1T_GetStats ( LPDIRECT3DDEVICE3 iface ,
LPD3DSTATS lpD3DStats )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice3 , iface ) ;
FIXME ( " (%p/%p)->(%p): stub! \n " , This , iface , lpD3DStats ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_3_2T_1T_AddViewport ( LPDIRECT3DDEVICE3 iface ,
LPDIRECT3DVIEWPORT3 lpDirect3DViewport3 )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice3 , iface ) ;
IDirect3DViewportImpl * lpDirect3DViewportImpl = ICOM_OBJECT ( IDirect3DViewportImpl , IDirect3DViewport3 , lpDirect3DViewport3 ) ;
TRACE ( " (%p/%p)->(%p) \n " , This , iface , lpDirect3DViewport3 ) ;
lpDirect3DViewportImpl - > next = This - > viewport_list ;
This - > viewport_list = lpDirect3DViewportImpl ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_3_2T_1T_DeleteViewport ( LPDIRECT3DDEVICE3 iface ,
LPDIRECT3DVIEWPORT3 lpDirect3DViewport3 )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice3 , iface ) ;
IDirect3DViewportImpl * lpDirect3DViewportImpl = ICOM_OBJECT ( IDirect3DViewportImpl , IDirect3DViewport3 , lpDirect3DViewport3 ) ;
IDirect3DViewportImpl * cur_viewport , * prev_viewport = NULL ;
TRACE ( " (%p/%p)->(%p) \n " , This , iface , lpDirect3DViewport3 ) ;
cur_viewport = This - > viewport_list ;
while ( cur_viewport ! = NULL ) {
if ( cur_viewport = = lpDirect3DViewportImpl ) {
if ( prev_viewport = = NULL ) This - > viewport_list = cur_viewport - > next ;
else prev_viewport - > next = cur_viewport - > next ;
/* TODO : add desactivate of the viewport and all associated lights... */
return DD_OK ;
}
prev_viewport = cur_viewport ;
cur_viewport = cur_viewport - > next ;
}
return DDERR_INVALIDPARAMS ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_3_2T_1T_NextViewport ( LPDIRECT3DDEVICE3 iface ,
LPDIRECT3DVIEWPORT3 lpDirect3DViewport3 ,
LPDIRECT3DVIEWPORT3 * lplpDirect3DViewport3 ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice3 , iface ) ;
IDirect3DViewportImpl * res = NULL ;
2000-04-09 16:30:50 +02:00
2002-12-24 01:25:55 +01:00
TRACE ( " (%p/%p)->(%p,%p,%08lx) \n " , This , iface , lpDirect3DViewport3 , lplpDirect3DViewport3 , dwFlags ) ;
2002-11-21 22:04:16 +01:00
switch ( dwFlags ) {
case D3DNEXT_NEXT : {
IDirect3DViewportImpl * lpDirect3DViewportImpl = ICOM_OBJECT ( IDirect3DViewportImpl , IDirect3DViewport3 , lpDirect3DViewport3 ) ;
res = lpDirect3DViewportImpl - > next ;
} break ;
case D3DNEXT_HEAD : {
res = This - > viewport_list ;
} break ;
case D3DNEXT_TAIL : {
IDirect3DViewportImpl * cur_viewport = This - > viewport_list ;
if ( cur_viewport ! = NULL ) {
while ( cur_viewport - > next ! = NULL ) cur_viewport = cur_viewport - > next ;
}
res = cur_viewport ;
} break ;
default :
* lplpDirect3DViewport3 = NULL ;
return DDERR_INVALIDPARAMS ;
}
* lplpDirect3DViewport3 = ICOM_INTERFACE ( res , IDirect3DViewport3 ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_3_2T_SetCurrentViewport ( LPDIRECT3DDEVICE3 iface ,
LPDIRECT3DVIEWPORT3 lpDirect3DViewport3 )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice3 , iface ) ;
TRACE ( " (%p/%p)->(%p) \n " , This , iface , lpDirect3DViewport3 ) ;
2003-10-14 03:16:42 +02:00
/* Do nothing if the specified viewport is the same as the current one */
if ( This - > current_viewport = = ICOM_OBJECT ( IDirect3DViewportImpl , IDirect3DViewport3 , lpDirect3DViewport3 ) )
return DD_OK ;
2002-11-21 22:04:16 +01:00
/* Should check if the viewport was added or not */
2003-10-14 03:16:42 +02:00
/* Release previous viewport and AddRef the new one */
if ( This - > current_viewport )
IDirect3DViewport3_Release ( ICOM_INTERFACE ( This - > current_viewport , IDirect3DViewport3 ) ) ;
IDirect3DViewport3_AddRef ( lpDirect3DViewport3 ) ;
2002-11-21 22:04:16 +01:00
/* Set this viewport as the current viewport */
This - > current_viewport = ICOM_OBJECT ( IDirect3DViewportImpl , IDirect3DViewport3 , lpDirect3DViewport3 ) ;
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
/* Activate this viewport */
This - > current_viewport - > active_device = This ;
2003-05-20 01:03:38 +02:00
This - > current_viewport - > activate ( This - > current_viewport ) ;
2003-10-14 03:16:42 +02:00
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_3_2T_GetCurrentViewport ( LPDIRECT3DDEVICE3 iface ,
LPDIRECT3DVIEWPORT3 * lplpDirect3DViewport3 )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice3 , iface ) ;
TRACE ( " (%p/%p)->(%p) \n " , This , iface , lplpDirect3DViewport3 ) ;
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
* lplpDirect3DViewport3 = ICOM_INTERFACE ( This - > current_viewport , IDirect3DViewport3 ) ;
2003-10-14 03:16:42 +02:00
/* AddRef the returned viewport */
IDirect3DViewport3_AddRef ( * lplpDirect3DViewport3 ) ;
2002-11-21 22:04:16 +01:00
TRACE ( " returning interface %p \n " , * lplpDirect3DViewport3 ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_3_Begin ( LPDIRECT3DDEVICE3 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
DWORD dwVertexTypeDesc ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice3 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%08lx,%08lx): stub! \n " , This , iface , d3dptPrimitiveType , dwVertexTypeDesc , dwFlags ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_3_BeginIndexed ( LPDIRECT3DDEVICE3 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
DWORD d3dvtVertexType ,
LPVOID lpvVertices ,
DWORD dwNumVertices ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice3 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub! \n " , This , iface , d3dptPrimitiveType , d3dvtVertexType , lpvVertices , dwNumVertices , dwFlags ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_3_2T_Vertex ( LPDIRECT3DDEVICE3 iface ,
LPVOID lpVertexType )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice3 , iface ) ;
FIXME ( " (%p/%p)->(%p): stub! \n " , This , iface , lpVertexType ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_3_2T_Index ( LPDIRECT3DDEVICE3 iface ,
WORD wVertexIndex )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice3 , iface ) ;
FIXME ( " (%p/%p)->(%04x): stub! \n " , This , iface , wVertexIndex ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_3_2T_End ( LPDIRECT3DDEVICE3 iface ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice3 , iface ) ;
FIXME ( " (%p/%p)->(%08lx): stub! \n " , This , iface , dwFlags ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_3_2T_GetLightState ( LPDIRECT3DDEVICE3 iface ,
D3DLIGHTSTATETYPE dwLightStateType ,
LPDWORD lpdwLightState )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice3 , iface ) ;
2003-01-08 00:08:31 +01:00
FIXME ( " (%p/%p)->(%08x,%p): stub ! \n " , This , iface , dwLightStateType , lpdwLightState ) ;
return DD_OK ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_3_2T_SetLightState ( LPDIRECT3DDEVICE3 iface ,
D3DLIGHTSTATETYPE dwLightStateType ,
DWORD dwLightState )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice3 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%08lx): stub! \n " , This , iface , dwLightStateType , dwLightState ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
2003-01-02 21:07:05 +01:00
Main_IDirect3DDeviceImpl_2_1T_SwapTextureHandles ( LPDIRECT3DDEVICE2 iface ,
LPDIRECT3DTEXTURE2 lpD3DTex1 ,
LPDIRECT3DTEXTURE2 lpD3DTex2 )
2002-11-21 22:04:16 +01:00
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice2 , iface ) ;
2003-01-02 21:07:05 +01:00
IDirectDrawSurfaceImpl tmp , * surf1 , * surf2 ;
TRACE ( " (%p/%p)->(%p,%p): \n " , This , iface , lpD3DTex1 , lpD3DTex2 ) ;
surf1 = ICOM_OBJECT ( IDirectDrawSurfaceImpl , IDirect3DTexture2 , lpD3DTex1 ) ;
surf2 = ICOM_OBJECT ( IDirectDrawSurfaceImpl , IDirect3DTexture2 , lpD3DTex2 ) ;
tmp = * surf1 ;
* surf1 = * surf2 ;
* surf2 = tmp ;
2002-11-21 22:04:16 +01:00
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_2_NextViewport ( LPDIRECT3DDEVICE2 iface ,
LPDIRECT3DVIEWPORT2 lpDirect3DViewport2 ,
LPDIRECT3DVIEWPORT2 * lplpDirect3DViewport2 ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice2 , iface ) ;
FIXME ( " (%p/%p)->(%p,%p,%08lx): stub! \n " , This , iface , lpDirect3DViewport2 , lplpDirect3DViewport2 , dwFlags ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_2_1T_EnumTextureFormats ( LPDIRECT3DDEVICE2 iface ,
LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc ,
LPVOID lpArg )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice2 , iface ) ;
FIXME ( " (%p/%p)->(%p,%p): stub! \n " , This , iface , lpD3DEnumTextureProc , lpArg ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_2_Begin ( LPDIRECT3DDEVICE2 iface ,
D3DPRIMITIVETYPE d3dpt ,
D3DVERTEXTYPE dwVertexTypeDesc ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice2 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%08x,%08lx): stub! \n " , This , iface , d3dpt , dwVertexTypeDesc , dwFlags ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_2_BeginIndexed ( LPDIRECT3DDEVICE2 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
D3DVERTEXTYPE d3dvtVertexType ,
LPVOID lpvVertices ,
DWORD dwNumVertices ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice2 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%08x,%p,%08lx,%08lx): stub! \n " , This , iface , d3dptPrimitiveType , d3dvtVertexType , lpvVertices , dwNumVertices , dwFlags ) ;
return DD_OK ;
}
2002-06-01 01:06:46 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_2_DrawPrimitive ( LPDIRECT3DDEVICE2 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
D3DVERTEXTYPE d3dvtVertexType ,
LPVOID lpvVertices ,
DWORD dwVertexCount ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice2 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%08x,%p,%08lx,%08lx): stub! \n " , This , iface , d3dptPrimitiveType , d3dvtVertexType , lpvVertices , dwVertexCount , dwFlags ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_2_DrawIndexedPrimitive ( LPDIRECT3DDEVICE2 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
D3DVERTEXTYPE d3dvtVertexType ,
LPVOID lpvVertices ,
DWORD dwVertexCount ,
LPWORD dwIndices ,
DWORD dwIndexCount ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice2 , iface ) ;
FIXME ( " (%p/%p)->(%08x,%08x,%p,%08lx,%p,%08lx,%08lx): stub! \n " , This , iface , d3dptPrimitiveType , d3dvtVertexType , lpvVertices , dwVertexCount , dwIndices , dwIndexCount , dwFlags ) ;
return DD_OK ;
2000-04-09 16:30:50 +02:00
}
2002-06-01 01:06:46 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_1_Initialize ( LPDIRECT3DDEVICE iface ,
LPDIRECT3D lpDirect3D ,
LPGUID lpGUID ,
LPD3DDEVICEDESC lpD3DDVDesc )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice , iface ) ;
FIXME ( " (%p/%p)->(%p,%p,%p): stub! \n " , This , iface , lpDirect3D , lpGUID , lpD3DDVDesc ) ;
return DD_OK ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_1_CreateExecuteBuffer ( LPDIRECT3DDEVICE iface ,
LPD3DEXECUTEBUFFERDESC lpDesc ,
LPDIRECT3DEXECUTEBUFFER * lplpDirect3DExecuteBuffer ,
IUnknown * pUnkOuter )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice , iface ) ;
FIXME ( " (%p/%p)->(%p,%p,%p): stub! \n " , This , iface , lpDesc , lplpDirect3DExecuteBuffer , pUnkOuter ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_1_Execute ( LPDIRECT3DDEVICE iface ,
LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer ,
LPDIRECT3DVIEWPORT lpDirect3DViewport ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice , iface ) ;
IDirect3DExecuteBufferImpl * lpDirect3DExecuteBufferImpl = ICOM_OBJECT ( IDirect3DExecuteBufferImpl , IDirect3DExecuteBuffer , lpDirect3DExecuteBuffer ) ;
IDirect3DViewportImpl * lpDirect3DViewportImpl = ICOM_OBJECT ( IDirect3DViewportImpl , IDirect3DViewport3 , lpDirect3DViewport ) ;
TRACE ( " (%p/%p)->(%p,%p,%08lx) \n " , This , iface , lpDirect3DExecuteBuffer , lpDirect3DViewport , dwFlags ) ;
/* Put this as the default context */
/* Execute... */
lpDirect3DExecuteBufferImpl - > execute ( lpDirect3DExecuteBufferImpl , This , lpDirect3DViewportImpl ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_1_NextViewport ( LPDIRECT3DDEVICE iface ,
LPDIRECT3DVIEWPORT lpDirect3DViewport ,
LPDIRECT3DVIEWPORT * lplpDirect3DViewport ,
DWORD dwFlags )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice , iface ) ;
FIXME ( " (%p/%p)->(%p,%p,%08lx): stub! \n " , This , iface , lpDirect3DViewport , lplpDirect3DViewport , dwFlags ) ;
return DD_OK ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_1_Pick ( LPDIRECT3DDEVICE iface ,
LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer ,
LPDIRECT3DVIEWPORT lpDirect3DViewport ,
DWORD dwFlags ,
LPD3DRECT lpRect )
2000-04-09 16:30:50 +02:00
{
2002-11-21 22:04:16 +01:00
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice , iface ) ;
FIXME ( " (%p/%p)->(%p,%p,%08lx,%p): stub! \n " , This , iface , lpDirect3DExecuteBuffer , lpDirect3DViewport , dwFlags , lpRect ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_1_GetPickRecords ( LPDIRECT3DDEVICE iface ,
LPDWORD lpCount ,
LPD3DPICKRECORD lpD3DPickRec )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice , iface ) ;
FIXME ( " (%p/%p)->(%p,%p): stub! \n " , This , iface , lpCount , lpD3DPickRec ) ;
return DD_OK ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_1_CreateMatrix ( LPDIRECT3DDEVICE iface ,
LPD3DMATRIXHANDLE lpD3DMatHandle )
2000-04-09 16:30:50 +02:00
{
2002-11-21 22:04:16 +01:00
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice , iface ) ;
TRACE ( " (%p/%p)->(%p) \n " , This , iface , lpD3DMatHandle ) ;
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
* lpD3DMatHandle = ( D3DMATRIXHANDLE ) HeapAlloc ( GetProcessHeap ( ) , HEAP_ZERO_MEMORY , sizeof ( D3DMATRIX ) ) ;
TRACE ( " returning matrix handle %p \n " , ( void * ) * lpD3DMatHandle ) ;
return DD_OK ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_1_SetMatrix ( LPDIRECT3DDEVICE iface ,
D3DMATRIXHANDLE D3DMatHandle ,
LPD3DMATRIX lpD3DMatrix )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice , iface ) ;
TRACE ( " (%p/%p)->(%08lx,%p) \n " , This , iface , ( DWORD ) D3DMatHandle , lpD3DMatrix ) ;
2000-04-09 16:30:50 +02:00
2003-06-05 01:39:13 +02:00
if ( TRACE_ON ( ddraw ) ) {
dump_D3DMATRIX ( lpD3DMatrix ) ;
}
2002-11-21 22:04:16 +01:00
* ( ( D3DMATRIX * ) D3DMatHandle ) = * lpD3DMatrix ;
return DD_OK ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_1_GetMatrix ( LPDIRECT3DDEVICE iface ,
D3DMATRIXHANDLE D3DMatHandle ,
LPD3DMATRIX lpD3DMatrix )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice , iface ) ;
TRACE ( " (%p/%p)->(%08lx,%p) \n " , This , iface , ( DWORD ) D3DMatHandle , lpD3DMatrix ) ;
* lpD3DMatrix = * ( ( D3DMATRIX * ) D3DMatHandle ) ;
return DD_OK ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Main_IDirect3DDeviceImpl_1_DeleteMatrix ( LPDIRECT3DDEVICE iface ,
D3DMATRIXHANDLE D3DMatHandle )
{
ICOM_THIS_FROM ( IDirect3DDeviceImpl , IDirect3DDevice , iface ) ;
TRACE ( " (%p/%p)->(%08lx) \n " , This , iface , ( DWORD ) D3DMatHandle ) ;
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HeapFree ( GetProcessHeap ( ) , 0 , ( void * ) D3DMatHandle ) ;
2000-04-09 16:30:50 +02:00
return DD_OK ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_QueryInterface ( LPDIRECT3DDEVICE3 iface ,
REFIID riid ,
LPVOID * obp )
{
TRACE ( " (%p)->(%s,%p) thunking to IDirect3DDevice7 interface. \n " , iface , debugstr_guid ( riid ) , obp ) ;
return IDirect3DDevice7_QueryInterface ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
riid ,
obp ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_QueryInterface ( LPDIRECT3DDEVICE2 iface ,
REFIID riid ,
LPVOID * obp )
{
TRACE ( " (%p)->(%s,%p) thunking to IDirect3DDevice7 interface. \n " , iface , debugstr_guid ( riid ) , obp ) ;
return IDirect3DDevice7_QueryInterface ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ,
riid ,
obp ) ;
}
2002-09-30 20:52:06 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_1_QueryInterface ( LPDIRECT3DDEVICE iface ,
REFIID riid ,
LPVOID * obp )
{
TRACE ( " (%p)->(%s,%p) thunking to IDirect3DDevice7 interface. \n " , iface , debugstr_guid ( riid ) , obp ) ;
return IDirect3DDevice7_QueryInterface ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice , IDirect3DDevice7 , iface ) ,
riid ,
obp ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
ULONG WINAPI
Thunk_IDirect3DDeviceImpl_3_AddRef ( LPDIRECT3DDEVICE3 iface )
{
TRACE ( " (%p)->() thunking to IDirect3DDevice7 interface. \n " , iface ) ;
return IDirect3DDevice7_AddRef ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
ULONG WINAPI
Thunk_IDirect3DDeviceImpl_2_AddRef ( LPDIRECT3DDEVICE2 iface )
{
TRACE ( " (%p)->() thunking to IDirect3DDevice7 interface. \n " , iface ) ;
return IDirect3DDevice7_AddRef ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
ULONG WINAPI
Thunk_IDirect3DDeviceImpl_1_AddRef ( LPDIRECT3DDEVICE iface )
{
TRACE ( " (%p)->() thunking to IDirect3DDevice7 interface. \n " , iface ) ;
return IDirect3DDevice7_AddRef ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice , IDirect3DDevice7 , iface ) ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
ULONG WINAPI
Thunk_IDirect3DDeviceImpl_3_Release ( LPDIRECT3DDEVICE3 iface )
{
TRACE ( " (%p)->() thunking to IDirect3DDevice7 interface. \n " , iface ) ;
return IDirect3DDevice7_Release ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
ULONG WINAPI
Thunk_IDirect3DDeviceImpl_2_Release ( LPDIRECT3DDEVICE2 iface )
{
TRACE ( " (%p)->() thunking to IDirect3DDevice7 interface. \n " , iface ) ;
return IDirect3DDevice7_Release ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
ULONG WINAPI
Thunk_IDirect3DDeviceImpl_1_Release ( LPDIRECT3DDEVICE iface )
{
TRACE ( " (%p)->() thunking to IDirect3DDevice7 interface. \n " , iface ) ;
return IDirect3DDevice7_Release ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice , IDirect3DDevice7 , iface ) ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_AddViewport ( LPDIRECT3DDEVICE2 iface ,
LPDIRECT3DVIEWPORT2 lpDirect3DViewport2 )
{
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice3 interface. \n " , iface , lpDirect3DViewport2 ) ;
return IDirect3DDevice3_AddViewport ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice3 , iface ) ,
( LPDIRECT3DVIEWPORT3 ) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */ ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_1_AddViewport ( LPDIRECT3DDEVICE iface ,
LPDIRECT3DVIEWPORT lpDirect3DViewport )
{
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice3 interface. \n " , iface , lpDirect3DViewport ) ;
return IDirect3DDevice3_AddViewport ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice , IDirect3DDevice3 , iface ) ,
( LPDIRECT3DVIEWPORT3 ) lpDirect3DViewport /* No need to cast here as all interfaces are equivalent */ ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_DeleteViewport ( LPDIRECT3DDEVICE2 iface ,
LPDIRECT3DVIEWPORT2 lpDirect3DViewport2 )
{
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice3 interface. \n " , iface , lpDirect3DViewport2 ) ;
return IDirect3DDevice3_DeleteViewport ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice3 , iface ) ,
( LPDIRECT3DVIEWPORT3 ) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */ ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_1_DeleteViewport ( LPDIRECT3DDEVICE iface ,
LPDIRECT3DVIEWPORT lpDirect3DViewport )
{
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice3 interface. \n " , iface , lpDirect3DViewport ) ;
return IDirect3DDevice3_DeleteViewport ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice , IDirect3DDevice3 , iface ) ,
( LPDIRECT3DVIEWPORT3 ) lpDirect3DViewport /* No need to cast here as all interfaces are equivalent */ ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_NextViewport ( LPDIRECT3DDEVICE3 iface ,
LPDIRECT3DVIEWPORT2 lpDirect3DViewport2 ,
LPDIRECT3DVIEWPORT2 * lplpDirect3DViewport2 ,
DWORD dwFlags )
{
TRACE ( " (%p)->(%p,%p,%08lx) thunking to IDirect3DDevice3 interface. \n " , iface , lpDirect3DViewport2 , lplpDirect3DViewport2 , dwFlags ) ;
return IDirect3DDevice3_NextViewport ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice3 , iface ) ,
( LPDIRECT3DVIEWPORT3 ) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */ ,
( LPDIRECT3DVIEWPORT3 * ) lplpDirect3DViewport2 ,
dwFlags ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_1_NextViewport ( LPDIRECT3DDEVICE3 iface ,
LPDIRECT3DVIEWPORT lpDirect3DViewport ,
LPDIRECT3DVIEWPORT * lplpDirect3DViewport ,
DWORD dwFlags )
{
TRACE ( " (%p)->(%p,%p,%08lx) thunking to IDirect3DDevice3 interface. \n " , iface , lpDirect3DViewport , lplpDirect3DViewport , dwFlags ) ;
return IDirect3DDevice3_NextViewport ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice , IDirect3DDevice3 , iface ) ,
( LPDIRECT3DVIEWPORT3 ) lpDirect3DViewport /* No need to cast here as all interfaces are equivalent */ ,
( LPDIRECT3DVIEWPORT3 * ) lplpDirect3DViewport ,
dwFlags ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_GetDirect3D ( LPDIRECT3DDEVICE3 iface ,
LPDIRECT3D3 * lplpDirect3D3 )
{
HRESULT ret ;
LPDIRECT3D7 ret_ptr ;
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice7 interface. \n " , iface , lplpDirect3D3 ) ;
ret = IDirect3DDevice7_GetDirect3D ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
& ret_ptr ) ;
2003-06-05 01:31:39 +02:00
* lplpDirect3D3 = COM_INTERFACE_CAST ( IDirectDrawImpl , IDirect3D7 , IDirect3D3 , ret_ptr ) ;
2002-11-21 22:04:16 +01:00
TRACE ( " returning interface %p \n " , * lplpDirect3D3 ) ;
return ret ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_GetDirect3D ( LPDIRECT3DDEVICE2 iface ,
LPDIRECT3D2 * lplpDirect3D2 )
{
HRESULT ret ;
LPDIRECT3D7 ret_ptr ;
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice7 interface. \n " , iface , lplpDirect3D2 ) ;
ret = IDirect3DDevice7_GetDirect3D ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ,
& ret_ptr ) ;
2003-06-05 01:31:39 +02:00
* lplpDirect3D2 = COM_INTERFACE_CAST ( IDirectDrawImpl , IDirect3D7 , IDirect3D2 , ret_ptr ) ;
2002-11-21 22:04:16 +01:00
TRACE ( " returning interface %p \n " , * lplpDirect3D2 ) ;
return ret ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_1_GetDirect3D ( LPDIRECT3DDEVICE iface ,
LPDIRECT3D * lplpDirect3D )
{
HRESULT ret ;
LPDIRECT3D7 ret_ptr ;
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice7 interface. \n " , iface , lplpDirect3D ) ;
ret = IDirect3DDevice7_GetDirect3D ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice , IDirect3DDevice7 , iface ) ,
& ret_ptr ) ;
2003-06-05 01:31:39 +02:00
* lplpDirect3D = COM_INTERFACE_CAST ( IDirectDrawImpl , IDirect3D7 , IDirect3D , ret_ptr ) ;
2002-11-21 22:04:16 +01:00
TRACE ( " returning interface %p \n " , * lplpDirect3D ) ;
return ret ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_SetCurrentViewport ( LPDIRECT3DDEVICE2 iface ,
LPDIRECT3DVIEWPORT2 lpDirect3DViewport2 )
{
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice3 interface. \n " , iface , lpDirect3DViewport2 ) ;
return IDirect3DDevice3_SetCurrentViewport ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice3 , iface ) ,
( LPDIRECT3DVIEWPORT3 ) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */ ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_GetCurrentViewport ( LPDIRECT3DDEVICE2 iface ,
LPDIRECT3DVIEWPORT2 * lplpDirect3DViewport2 )
{
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice3 interface. \n " , iface , lplpDirect3DViewport2 ) ;
return IDirect3DDevice3_GetCurrentViewport ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice3 , iface ) ,
( LPDIRECT3DVIEWPORT3 * ) lplpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */ ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_EnumTextureFormats ( LPDIRECT3DDEVICE3 iface ,
LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc ,
LPVOID lpArg )
{
TRACE ( " (%p)->(%p,%p) thunking to IDirect3DDevice7 interface. \n " , iface , lpD3DEnumPixelProc , lpArg ) ;
return IDirect3DDevice7_EnumTextureFormats ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
lpD3DEnumPixelProc ,
lpArg ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_BeginScene ( LPDIRECT3DDEVICE3 iface )
{
TRACE ( " (%p)->() thunking to IDirect3DDevice7 interface. \n " , iface ) ;
return IDirect3DDevice7_BeginScene ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_BeginScene ( LPDIRECT3DDEVICE2 iface )
{
TRACE ( " (%p)->() thunking to IDirect3DDevice7 interface. \n " , iface ) ;
return IDirect3DDevice7_BeginScene ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_1_BeginScene ( LPDIRECT3DDEVICE iface )
{
TRACE ( " (%p)->() thunking to IDirect3DDevice7 interface. \n " , iface ) ;
return IDirect3DDevice7_BeginScene ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice , IDirect3DDevice7 , iface ) ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_EndScene ( LPDIRECT3DDEVICE3 iface )
{
TRACE ( " (%p)->() thunking to IDirect3DDevice7 interface. \n " , iface ) ;
return IDirect3DDevice7_EndScene ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_EndScene ( LPDIRECT3DDEVICE2 iface )
{
TRACE ( " (%p)->() thunking to IDirect3DDevice7 interface. \n " , iface ) ;
return IDirect3DDevice7_EndScene ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_1_EndScene ( LPDIRECT3DDEVICE iface )
{
TRACE ( " (%p)->() thunking to IDirect3DDevice7 interface. \n " , iface ) ;
return IDirect3DDevice7_EndScene ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice , IDirect3DDevice7 , iface ) ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_SetTransform ( LPDIRECT3DDEVICE3 iface ,
D3DTRANSFORMSTATETYPE dtstTransformStateType ,
LPD3DMATRIX lpD3DMatrix )
{
TRACE ( " (%p)->(%08x,%p) thunking to IDirect3DDevice7 interface. \n " , iface , dtstTransformStateType , lpD3DMatrix ) ;
return IDirect3DDevice7_SetTransform ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
dtstTransformStateType ,
lpD3DMatrix ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_SetTransform ( LPDIRECT3DDEVICE2 iface ,
D3DTRANSFORMSTATETYPE dtstTransformStateType ,
LPD3DMATRIX lpD3DMatrix )
2000-04-09 16:30:50 +02:00
{
2002-11-21 22:04:16 +01:00
TRACE ( " (%p)->(%08x,%p) thunking to IDirect3DDevice7 interface. \n " , iface , dtstTransformStateType , lpD3DMatrix ) ;
return IDirect3DDevice7_SetTransform ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ,
dtstTransformStateType ,
lpD3DMatrix ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_GetTransform ( LPDIRECT3DDEVICE3 iface ,
D3DTRANSFORMSTATETYPE dtstTransformStateType ,
LPD3DMATRIX lpD3DMatrix )
{
TRACE ( " (%p)->(%08x,%p) thunking to IDirect3DDevice7 interface. \n " , iface , dtstTransformStateType , lpD3DMatrix ) ;
return IDirect3DDevice7_GetTransform ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
dtstTransformStateType ,
lpD3DMatrix ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_GetTransform ( LPDIRECT3DDEVICE2 iface ,
D3DTRANSFORMSTATETYPE dtstTransformStateType ,
LPD3DMATRIX lpD3DMatrix )
{
TRACE ( " (%p)->(%08x,%p) thunking to IDirect3DDevice7 interface. \n " , iface , dtstTransformStateType , lpD3DMatrix ) ;
return IDirect3DDevice7_GetTransform ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ,
dtstTransformStateType ,
lpD3DMatrix ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_MultiplyTransform ( LPDIRECT3DDEVICE3 iface ,
D3DTRANSFORMSTATETYPE dtstTransformStateType ,
LPD3DMATRIX lpD3DMatrix )
{
TRACE ( " (%p)->(%08x,%p) thunking to IDirect3DDevice7 interface. \n " , iface , dtstTransformStateType , lpD3DMatrix ) ;
return IDirect3DDevice7_MultiplyTransform ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
dtstTransformStateType ,
lpD3DMatrix ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_MultiplyTransform ( LPDIRECT3DDEVICE2 iface ,
D3DTRANSFORMSTATETYPE dtstTransformStateType ,
LPD3DMATRIX lpD3DMatrix )
2000-04-09 16:30:50 +02:00
{
2002-11-21 22:04:16 +01:00
TRACE ( " (%p)->(%08x,%p) thunking to IDirect3DDevice7 interface. \n " , iface , dtstTransformStateType , lpD3DMatrix ) ;
return IDirect3DDevice7_MultiplyTransform ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ,
dtstTransformStateType ,
lpD3DMatrix ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_SetRenderState ( LPDIRECT3DDEVICE3 iface ,
D3DRENDERSTATETYPE dwRenderStateType ,
DWORD dwRenderState )
{
TRACE ( " (%p)->(%08x,%08lx) thunking to IDirect3DDevice7 interface. \n " , iface , dwRenderStateType , dwRenderState ) ;
return IDirect3DDevice7_SetRenderState ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
dwRenderStateType ,
dwRenderState ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_SetRenderState ( LPDIRECT3DDEVICE2 iface ,
D3DRENDERSTATETYPE dwRenderStateType ,
DWORD dwRenderState )
{
TRACE ( " (%p)->(%08x,%08lx) thunking to IDirect3DDevice7 interface. \n " , iface , dwRenderStateType , dwRenderState ) ;
return IDirect3DDevice7_SetRenderState ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ,
dwRenderStateType ,
dwRenderState ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_GetRenderState ( LPDIRECT3DDEVICE3 iface ,
D3DRENDERSTATETYPE dwRenderStateType ,
LPDWORD lpdwRenderState )
{
TRACE ( " (%p)->(%08x,%p) thunking to IDirect3DDevice7 interface. \n " , iface , dwRenderStateType , lpdwRenderState ) ;
return IDirect3DDevice7_GetRenderState ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
dwRenderStateType ,
lpdwRenderState ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_GetRenderState ( LPDIRECT3DDEVICE2 iface ,
D3DRENDERSTATETYPE dwRenderStateType ,
LPDWORD lpdwRenderState )
{
TRACE ( " (%p)->(%08x,%p) thunking to IDirect3DDevice7 interface. \n " , iface , dwRenderStateType , lpdwRenderState ) ;
return IDirect3DDevice7_GetRenderState ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ,
dwRenderStateType ,
lpdwRenderState ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_DrawPrimitive ( LPDIRECT3DDEVICE3 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
DWORD d3dvtVertexType ,
LPVOID lpvVertices ,
DWORD dwVertexCount ,
DWORD dwFlags )
{
TRACE ( " (%p)->(%08x,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface. \n " , iface , d3dptPrimitiveType , d3dvtVertexType , lpvVertices , dwVertexCount , dwFlags ) ;
return IDirect3DDevice7_DrawPrimitive ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
d3dptPrimitiveType ,
d3dvtVertexType ,
lpvVertices ,
dwVertexCount ,
dwFlags ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitive ( LPDIRECT3DDEVICE3 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
DWORD d3dvtVertexType ,
LPVOID lpvVertices ,
DWORD dwVertexCount ,
LPWORD dwIndices ,
DWORD dwIndexCount ,
DWORD dwFlags )
{
TRACE ( " (%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface. \n " , iface , d3dptPrimitiveType , d3dvtVertexType , lpvVertices , dwVertexCount , dwIndices , dwIndexCount , dwFlags ) ;
return IDirect3DDevice7_DrawIndexedPrimitive ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
d3dptPrimitiveType ,
d3dvtVertexType ,
lpvVertices ,
dwVertexCount ,
dwIndices ,
dwIndexCount ,
dwFlags ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_SetClipStatus ( LPDIRECT3DDEVICE3 iface ,
LPD3DCLIPSTATUS lpD3DClipStatus )
{
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice7 interface. \n " , iface , lpD3DClipStatus ) ;
return IDirect3DDevice7_SetClipStatus ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
lpD3DClipStatus ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_SetClipStatus ( LPDIRECT3DDEVICE2 iface ,
LPD3DCLIPSTATUS lpD3DClipStatus )
{
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice7 interface. \n " , iface , lpD3DClipStatus ) ;
return IDirect3DDevice7_SetClipStatus ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ,
lpD3DClipStatus ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_GetClipStatus ( LPDIRECT3DDEVICE3 iface ,
LPD3DCLIPSTATUS lpD3DClipStatus )
2000-04-09 16:30:50 +02:00
{
2002-11-21 22:04:16 +01:00
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice7 interface. \n " , iface , lpD3DClipStatus ) ;
return IDirect3DDevice7_GetClipStatus ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
lpD3DClipStatus ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_GetClipStatus ( LPDIRECT3DDEVICE2 iface ,
LPD3DCLIPSTATUS lpD3DClipStatus )
2000-04-09 16:30:50 +02:00
{
2002-11-21 22:04:16 +01:00
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice7 interface. \n " , iface , lpD3DClipStatus ) ;
return IDirect3DDevice7_GetClipStatus ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ,
lpD3DClipStatus ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_DrawPrimitiveStrided ( LPDIRECT3DDEVICE3 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
DWORD dwVertexType ,
LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData ,
DWORD dwVertexCount ,
DWORD dwFlags )
{
TRACE ( " (%p)->(%08x,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface. \n " , iface , d3dptPrimitiveType , dwVertexType , lpD3DDrawPrimStrideData , dwVertexCount , dwFlags ) ;
return IDirect3DDevice7_DrawPrimitiveStrided ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
d3dptPrimitiveType ,
dwVertexType ,
lpD3DDrawPrimStrideData ,
dwVertexCount ,
dwFlags ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitiveStrided ( LPDIRECT3DDEVICE3 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
DWORD dwVertexType ,
LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData ,
DWORD dwVertexCount ,
LPWORD lpIndex ,
DWORD dwIndexCount ,
DWORD dwFlags )
{
TRACE ( " (%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface. \n " , iface , d3dptPrimitiveType , dwVertexType , lpD3DDrawPrimStrideData , dwVertexCount , lpIndex , dwIndexCount , dwFlags ) ;
return IDirect3DDevice7_DrawIndexedPrimitiveStrided ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
d3dptPrimitiveType ,
dwVertexType ,
lpD3DDrawPrimStrideData ,
dwVertexCount ,
lpIndex ,
dwIndexCount ,
dwFlags ) ;
}
2000-04-09 16:30:50 +02:00
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_ComputeSphereVisibility ( LPDIRECT3DDEVICE3 iface ,
LPD3DVECTOR lpCenters ,
LPD3DVALUE lpRadii ,
DWORD dwNumSpheres ,
DWORD dwFlags ,
LPDWORD lpdwReturnValues )
{
TRACE ( " (%p)->(%p,%p,%08lx,%08lx,%p) thunking to IDirect3DDevice7 interface. \n " , iface , lpCenters , lpRadii , dwNumSpheres , dwFlags , lpdwReturnValues ) ;
return IDirect3DDevice7_ComputeSphereVisibility ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
lpCenters ,
lpRadii ,
dwNumSpheres ,
dwFlags ,
lpdwReturnValues ) ;
2000-04-09 16:30:50 +02:00
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_GetTextureStageState ( LPDIRECT3DDEVICE3 iface ,
DWORD dwStage ,
D3DTEXTURESTAGESTATETYPE d3dTexStageStateType ,
LPDWORD lpdwState )
{
TRACE ( " (%p)->(%08lx,%08x,%p) thunking to IDirect3DDevice7 interface. \n " , iface , dwStage , d3dTexStageStateType , lpdwState ) ;
return IDirect3DDevice7_GetTextureStageState ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
dwStage ,
d3dTexStageStateType ,
lpdwState ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_SetTextureStageState ( LPDIRECT3DDEVICE3 iface ,
DWORD dwStage ,
D3DTEXTURESTAGESTATETYPE d3dTexStageStateType ,
DWORD dwState )
{
TRACE ( " (%p)->(%08lx,%08x,%08lx) thunking to IDirect3DDevice7 interface. \n " , iface , dwStage , d3dTexStageStateType , dwState ) ;
return IDirect3DDevice7_SetTextureStageState ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
dwStage ,
d3dTexStageStateType ,
dwState ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_ValidateDevice ( LPDIRECT3DDEVICE3 iface ,
LPDWORD lpdwPasses )
{
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice7 interface. \n " , iface , lpdwPasses ) ;
return IDirect3DDevice7_ValidateDevice ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
lpdwPasses ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_GetCaps ( LPDIRECT3DDEVICE2 iface ,
LPD3DDEVICEDESC lpD3DHWDevDesc ,
LPD3DDEVICEDESC lpD3DHELDevDesc )
{
TRACE ( " (%p)->(%p,%p) thunking to IDirect3DDevice3 interface. \n " , iface , lpD3DHWDevDesc , lpD3DHELDevDesc ) ;
return IDirect3DDevice3_GetCaps ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice3 , iface ) ,
lpD3DHWDevDesc ,
lpD3DHELDevDesc ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_1_GetCaps ( LPDIRECT3DDEVICE iface ,
LPD3DDEVICEDESC lpD3DHWDevDesc ,
LPD3DDEVICEDESC lpD3DHELDevDesc )
{
TRACE ( " (%p)->(%p,%p) thunking to IDirect3DDevice3 interface. \n " , iface , lpD3DHWDevDesc , lpD3DHELDevDesc ) ;
return IDirect3DDevice3_GetCaps ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice , IDirect3DDevice3 , iface ) ,
lpD3DHWDevDesc ,
lpD3DHELDevDesc ) ;
}
2003-01-02 21:07:05 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_1_SwapTextureHandles ( LPDIRECT3DDEVICE iface ,
LPDIRECT3DTEXTURE lpD3DTex1 ,
LPDIRECT3DTEXTURE lpD3DTex2 )
{
TRACE ( " (%p)->(%p,%p) thunking to IDirect3DDevice2 interface. \n " , iface , lpD3DTex1 , lpD3DTex2 ) ;
return IDirect3DDevice2_SwapTextureHandles ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice , IDirect3DDevice2 , iface ) ,
COM_INTERFACE_CAST ( IDirectDrawSurfaceImpl , IDirect3DTexture , IDirect3DTexture2 , lpD3DTex1 ) ,
COM_INTERFACE_CAST ( IDirectDrawSurfaceImpl , IDirect3DTexture , IDirect3DTexture2 , lpD3DTex2 ) ) ;
}
2002-11-21 22:04:16 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_GetStats ( LPDIRECT3DDEVICE2 iface ,
LPD3DSTATS lpD3DStats )
{
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice3 interface. \n " , iface , lpD3DStats ) ;
return IDirect3DDevice3_GetStats ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice3 , iface ) ,
lpD3DStats ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_1_GetStats ( LPDIRECT3DDEVICE iface ,
LPD3DSTATS lpD3DStats )
{
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice3 interface. \n " , iface , lpD3DStats ) ;
return IDirect3DDevice3_GetStats ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice , IDirect3DDevice3 , iface ) ,
lpD3DStats ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_SetRenderTarget ( LPDIRECT3DDEVICE3 iface ,
LPDIRECTDRAWSURFACE4 lpNewRenderTarget ,
DWORD dwFlags )
{
TRACE ( " (%p)->(%p,%08lx) thunking to IDirect3DDevice7 interface. \n " , iface , lpNewRenderTarget , dwFlags ) ;
return IDirect3DDevice7_SetRenderTarget ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
( LPDIRECTDRAWSURFACE7 ) lpNewRenderTarget /* No cast needed as DSurf4 == DSurf7 */ ,
dwFlags ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_GetRenderTarget ( LPDIRECT3DDEVICE3 iface ,
LPDIRECTDRAWSURFACE4 * lplpRenderTarget )
{
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice7 interface. \n " , iface , lplpRenderTarget ) ;
return IDirect3DDevice7_GetRenderTarget ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
( LPDIRECTDRAWSURFACE7 * ) lplpRenderTarget /* No cast needed as DSurf4 == DSurf7 */ ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_SetRenderTarget ( LPDIRECT3DDEVICE2 iface ,
LPDIRECTDRAWSURFACE lpNewRenderTarget ,
DWORD dwFlags )
{
TRACE ( " (%p)->(%p,%08lx) thunking to IDirect3DDevice7 interface. \n " , iface , lpNewRenderTarget , dwFlags ) ;
return IDirect3DDevice7_SetRenderTarget ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ,
COM_INTERFACE_CAST ( IDirectDrawSurfaceImpl , IDirectDrawSurface3 , IDirectDrawSurface7 , lpNewRenderTarget ) ,
dwFlags ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_GetRenderTarget ( LPDIRECT3DDEVICE2 iface ,
LPDIRECTDRAWSURFACE * lplpRenderTarget )
{
HRESULT ret ;
LPDIRECTDRAWSURFACE7 ret_val ;
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice7 interface. \n " , iface , lplpRenderTarget ) ;
ret = IDirect3DDevice7_GetRenderTarget ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice7 , iface ) ,
& ret_val ) ;
* lplpRenderTarget = ( LPDIRECTDRAWSURFACE ) COM_INTERFACE_CAST ( IDirectDrawSurfaceImpl , IDirectDrawSurface7 , IDirectDrawSurface3 , ret_val ) ;
TRACE ( " returning interface %p \n " , * lplpRenderTarget ) ;
return ret ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_Vertex ( LPDIRECT3DDEVICE2 iface ,
LPVOID lpVertexType )
{
TRACE ( " (%p)->(%p) thunking to IDirect3DDevice3 interface. \n " , iface , lpVertexType ) ;
return IDirect3DDevice3_Vertex ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice3 , iface ) ,
lpVertexType ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_Index ( LPDIRECT3DDEVICE2 iface ,
WORD wVertexIndex )
{
TRACE ( " (%p)->(%04x) thunking to IDirect3DDevice3 interface. \n " , iface , wVertexIndex ) ;
return IDirect3DDevice3_Index ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice3 , iface ) ,
wVertexIndex ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_End ( LPDIRECT3DDEVICE2 iface ,
DWORD dwFlags )
{
TRACE ( " (%p)->(%08lx) thunking to IDirect3DDevice3 interface. \n " , iface , dwFlags ) ;
return IDirect3DDevice3_End ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice3 , iface ) ,
dwFlags ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_GetLightState ( LPDIRECT3DDEVICE2 iface ,
D3DLIGHTSTATETYPE dwLightStateType ,
LPDWORD lpdwLightState )
{
TRACE ( " (%p)->(%08x,%p) thunking to IDirect3DDevice3 interface. \n " , iface , dwLightStateType , lpdwLightState ) ;
return IDirect3DDevice3_GetLightState ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice3 , iface ) ,
dwLightStateType ,
lpdwLightState ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_2_SetLightState ( LPDIRECT3DDEVICE2 iface ,
D3DLIGHTSTATETYPE dwLightStateType ,
DWORD dwLightState )
{
TRACE ( " (%p)->(%08x,%08lx) thunking to IDirect3DDevice3 interface. \n " , iface , dwLightStateType , dwLightState ) ;
return IDirect3DDevice3_SetLightState ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice2 , IDirect3DDevice3 , iface ) ,
dwLightStateType ,
dwLightState ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_1_EnumTextureFormats ( LPDIRECT3DDEVICE iface ,
LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc ,
LPVOID lpArg )
{
TRACE ( " (%p)->(%p,%p) thunking to IDirect3DDevice2 interface. \n " , iface , lpD3DEnumTextureProc , lpArg ) ;
return IDirect3DDevice2_EnumTextureFormats ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice , IDirect3DDevice2 , iface ) ,
lpD3DEnumTextureProc ,
lpArg ) ;
}
2002-12-24 01:53:50 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_SetTexture ( LPDIRECT3DDEVICE3 iface ,
DWORD dwStage ,
LPDIRECT3DTEXTURE2 lpTexture2 )
{
TRACE ( " (%p)->(%ld,%p) thunking to IDirect3DDevice7 interface. \n " , iface , dwStage , lpTexture2 ) ;
return IDirect3DDevice7_SetTexture ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
dwStage ,
COM_INTERFACE_CAST ( IDirectDrawSurfaceImpl , IDirect3DTexture2 , IDirectDrawSurface7 , lpTexture2 ) ) ;
}
2003-01-02 20:46:46 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_DrawPrimitiveVB ( LPDIRECT3DDEVICE3 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf ,
DWORD dwStartVertex ,
DWORD dwNumVertices ,
DWORD dwFlags )
{
TRACE ( " (%p)->(%08x,%p,%08lx,%08lx,%08lx) thunking to IDirect3DDevice7 interface. \n " , iface ,
d3dptPrimitiveType , lpD3DVertexBuf , dwStartVertex , dwNumVertices , dwFlags ) ;
return IDirect3DDevice7_DrawPrimitiveVB ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
d3dptPrimitiveType ,
COM_INTERFACE_CAST ( IDirect3DVertexBufferImpl , IDirect3DVertexBuffer , IDirect3DVertexBuffer7 , lpD3DVertexBuf ) ,
dwStartVertex ,
dwNumVertices ,
dwFlags ) ;
}
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitiveVB ( LPDIRECT3DDEVICE3 iface ,
D3DPRIMITIVETYPE d3dptPrimitiveType ,
LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf ,
LPWORD lpwIndices ,
DWORD dwIndexCount ,
DWORD dwFlags )
{
TRACE ( " (%p)->(%08x,%p,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface. \n " , iface ,
d3dptPrimitiveType , lpD3DVertexBuf , lpwIndices , dwIndexCount , dwFlags ) ;
return IDirect3DDevice7_DrawIndexedPrimitiveVB ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
d3dptPrimitiveType ,
COM_INTERFACE_CAST ( IDirect3DVertexBufferImpl , IDirect3DVertexBuffer , IDirect3DVertexBuffer7 , lpD3DVertexBuf ) ,
0 ,
dwIndexCount ,
lpwIndices ,
dwIndexCount ,
dwFlags ) ;
}
2003-01-02 20:52:22 +01:00
HRESULT WINAPI
Thunk_IDirect3DDeviceImpl_3_GetTexture ( LPDIRECT3DDEVICE3 iface ,
DWORD dwStage ,
LPDIRECT3DTEXTURE2 * lplpTexture2 )
{
HRESULT ret ;
LPDIRECTDRAWSURFACE7 ret_val ;
TRACE ( " (%p)->(%ld,%p) thunking to IDirect3DDevice7 interface. \n " , iface , dwStage , lplpTexture2 ) ;
ret = IDirect3DDevice7_GetTexture ( COM_INTERFACE_CAST ( IDirect3DDeviceImpl , IDirect3DDevice3 , IDirect3DDevice7 , iface ) ,
dwStage ,
& ret_val ) ;
* lplpTexture2 = COM_INTERFACE_CAST ( IDirectDrawSurfaceImpl , IDirectDrawSurface7 , IDirect3DTexture2 , ret_val ) ;
TRACE ( " returning interface %p. \n " , * lplpTexture2 ) ;
return ret ;
}