2 * Copyright (c) 1998 Lionel ULMER
4 * This file contains all the common stuff for D3D devices.
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30 #include "wine/debug.h"
32 #include "d3d_private.h"
35 WINE_DEFAULT_DEBUG_CHANNEL(ddraw
);
38 Main_IDirect3DDeviceImpl_7_3T_2T_1T_QueryInterface(LPDIRECT3DDEVICE7 iface
,
42 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
43 TRACE("(%p/%p)->(%s,%p)\n", This
, iface
, debugstr_guid(riid
), obp
);
47 if ( IsEqualGUID( &IID_IUnknown
, riid
) ) {
48 IDirect3DDevice7_AddRef(ICOM_INTERFACE(This
, IDirect3DDevice7
));
50 TRACE(" Creating IUnknown interface at %p.\n", *obp
);
53 if ( IsEqualGUID( &IID_IDirect3DDevice
, riid
) ) {
54 IDirect3DDevice7_AddRef(ICOM_INTERFACE(This
, IDirect3DDevice7
));
55 *obp
= ICOM_INTERFACE(This
, IDirect3DDevice
);
56 TRACE(" Creating IDirect3DDevice interface %p\n", *obp
);
59 if ( IsEqualGUID( &IID_IDirect3DDevice2
, riid
) ) {
60 IDirect3DDevice7_AddRef(ICOM_INTERFACE(This
, IDirect3DDevice7
));
61 *obp
= ICOM_INTERFACE(This
, IDirect3DDevice2
);
62 TRACE(" Creating IDirect3DDevice2 interface %p\n", *obp
);
65 if ( IsEqualGUID( &IID_IDirect3DDevice3
, riid
) ) {
66 IDirect3DDevice7_AddRef(ICOM_INTERFACE(This
, IDirect3DDevice7
));
67 *obp
= ICOM_INTERFACE(This
, IDirect3DDevice3
);
68 TRACE(" Creating IDirect3DDevice3 interface %p\n", *obp
);
71 if ( IsEqualGUID( &IID_IDirect3DDevice7
, riid
) ) {
72 IDirect3DDevice7_AddRef(ICOM_INTERFACE(This
, IDirect3DDevice7
));
73 *obp
= ICOM_INTERFACE(This
, IDirect3DDevice7
);
74 TRACE(" Creating IDirect3DDevice7 interface %p\n", *obp
);
77 FIXME("(%p): interface for IID %s NOT found!\n", This
, debugstr_guid(riid
));
78 return OLE_E_ENUM_NOMORE
;
82 Main_IDirect3DDeviceImpl_7_3T_2T_1T_AddRef(LPDIRECT3DDEVICE7 iface
)
84 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
85 TRACE("(%p/%p)->() incrementing from %lu.\n", This
, iface
, This
->ref
);
90 Main_IDirect3DDeviceImpl_7_3T_2T_1T_Release(LPDIRECT3DDEVICE7 iface
)
92 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
93 TRACE("(%p/%p)->() decrementing from %lu.\n", This
, iface
, This
->ref
);
96 /* Release texture associated with the device */
97 for (i
= 0; i
< MAX_TEXTURES
; i
++) {
98 if (This
->current_texture
[i
] != NULL
)
99 IDirect3DTexture2_Release(ICOM_INTERFACE(This
->current_texture
[i
], IDirect3DTexture2
));
102 HeapFree(GetProcessHeap(), 0, This
);
109 Main_IDirect3DDeviceImpl_7_GetCaps(LPDIRECT3DDEVICE7 iface
,
110 LPD3DDEVICEDESC7 lpD3DHELDevDesc
)
112 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
113 FIXME("(%p/%p)->(%p): stub!\n", This
, iface
, lpD3DHELDevDesc
);
118 Main_IDirect3DDeviceImpl_7_3T_EnumTextureFormats(LPDIRECT3DDEVICE7 iface
,
119 LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc
,
122 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
123 FIXME("(%p/%p)->(%p,%p): stub!\n", This
, iface
, lpD3DEnumPixelProc
, lpArg
);
128 Main_IDirect3DDeviceImpl_7_3T_2T_1T_BeginScene(LPDIRECT3DDEVICE7 iface
)
130 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
131 TRACE("(%p/%p)->()\n", This
, iface
);
137 Main_IDirect3DDeviceImpl_7_3T_2T_1T_EndScene(LPDIRECT3DDEVICE7 iface
)
139 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
140 TRACE("(%p/%p)->()\n", This
, iface
);
146 Main_IDirect3DDeviceImpl_7_3T_2T_1T_GetDirect3D(LPDIRECT3DDEVICE7 iface
,
147 LPDIRECT3D7
* lplpDirect3D3
)
149 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
150 TRACE("(%p/%p)->(%p)\n", This
, iface
, lplpDirect3D3
);
152 *lplpDirect3D3
= ICOM_INTERFACE(This
->d3d
, IDirect3D7
);
153 IDirect3D7_AddRef(ICOM_INTERFACE(This
->d3d
, IDirect3D7
));
155 TRACE(" returning interface %p\n", *lplpDirect3D3
);
160 Main_IDirect3DDeviceImpl_7_3T_2T_SetRenderTarget(LPDIRECT3DDEVICE7 iface
,
161 LPDIRECTDRAWSURFACE7 lpNewRenderTarget
,
164 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
165 IDirectDrawSurfaceImpl
*target_impl
= ICOM_OBJECT(IDirectDrawSurfaceImpl
, IDirectDrawSurface7
, lpNewRenderTarget
);
167 TRACE("(%p/%p)->(%p,%08lx)\n", This
, iface
, lpNewRenderTarget
, dwFlags
);
168 if (target_impl
!= This
->surface
) {
169 WARN(" Change of rendering target not handled yet !\n");
175 Main_IDirect3DDeviceImpl_7_3T_2T_GetRenderTarget(LPDIRECT3DDEVICE7 iface
,
176 LPDIRECTDRAWSURFACE7
* lplpRenderTarget
)
178 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
179 TRACE("(%p/%p)->(%p)\n", This
, iface
, lplpRenderTarget
);
181 *lplpRenderTarget
= ICOM_INTERFACE(This
->surface
, IDirectDrawSurface7
);
182 IDirectDrawSurface7_AddRef(ICOM_INTERFACE(This
->surface
, IDirectDrawSurface7
));
184 TRACE(" returning surface at %p.\n", *lplpRenderTarget
);
190 Main_IDirect3DDeviceImpl_7_Clear(LPDIRECT3DDEVICE7 iface
,
198 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
199 TRACE("(%p/%p)->(%08lx,%p,%08lx,%08lx,%f,%08lx)\n", This
, iface
, dwCount
, lpRects
, dwFlags
, (DWORD
) dwColor
, dvZ
, dwStencil
);
200 return This
->clear(This
, dwCount
, lpRects
, dwFlags
, dwColor
, dvZ
, dwStencil
);
204 Main_IDirect3DDeviceImpl_7_3T_2T_SetTransform(LPDIRECT3DDEVICE7 iface
,
205 D3DTRANSFORMSTATETYPE dtstTransformStateType
,
206 LPD3DMATRIX lpD3DMatrix
)
208 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
209 FIXME("(%p/%p)->(%08x,%p): stub!\n", This
, iface
, dtstTransformStateType
, lpD3DMatrix
);
214 Main_IDirect3DDeviceImpl_7_3T_2T_GetTransform(LPDIRECT3DDEVICE7 iface
,
215 D3DTRANSFORMSTATETYPE dtstTransformStateType
,
216 LPD3DMATRIX lpD3DMatrix
)
218 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
219 TRACE("(%p/%p)->(%08x,%p)\n", This
, iface
, dtstTransformStateType
, lpD3DMatrix
);
221 switch (dtstTransformStateType
) {
222 case D3DTRANSFORMSTATE_WORLD
: {
223 TRACE(" returning D3DTRANSFORMSTATE_WORLD :\n");
224 memcpy(lpD3DMatrix
, This
->world_mat
, 16 * sizeof(D3DVALUE
));
225 dump_mat(lpD3DMatrix
);
228 case D3DTRANSFORMSTATE_VIEW
: {
229 TRACE(" returning D3DTRANSFORMSTATE_VIEW :\n");
230 memcpy(lpD3DMatrix
, This
->world_mat
, 16 * sizeof(D3DVALUE
));
231 dump_mat(lpD3DMatrix
);
234 case D3DTRANSFORMSTATE_PROJECTION
: {
235 TRACE(" returning D3DTRANSFORMSTATE_PROJECTION :\n");
236 memcpy(lpD3DMatrix
, This
->world_mat
, 16 * sizeof(D3DVALUE
));
237 dump_mat(lpD3DMatrix
);
241 ERR("Unknown transform type %08x !!!\n", dtstTransformStateType
);
242 return DDERR_INVALIDPARAMS
;
249 Main_IDirect3DDeviceImpl_7_SetViewport(LPDIRECT3DDEVICE7 iface
,
250 LPD3DVIEWPORT7 lpData
)
252 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
253 TRACE("(%p/%p)->(%p)\n", This
, iface
, lpData
);
255 if (TRACE_ON(ddraw
)) {
256 TRACE(" viewport is : \n");
257 TRACE(" - dwX = %ld dwY = %ld\n",
258 lpData
->dwX
, lpData
->dwY
);
259 TRACE(" - dwWidth = %ld dwHeight = %ld\n",
260 lpData
->dwWidth
, lpData
->dwHeight
);
261 TRACE(" - dvMinZ = %f dvMaxZ = %f\n",
262 lpData
->dvMinZ
, lpData
->dvMaxZ
);
264 This
->active_viewport
= *lpData
;
270 Main_IDirect3DDeviceImpl_7_3T_2T_MultiplyTransform(LPDIRECT3DDEVICE7 iface
,
271 D3DTRANSFORMSTATETYPE dtstTransformStateType
,
272 LPD3DMATRIX lpD3DMatrix
)
274 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
275 FIXME("(%p/%p)->(%08x,%p): stub!\n", This
, iface
, dtstTransformStateType
, lpD3DMatrix
);
280 Main_IDirect3DDeviceImpl_7_GetViewport(LPDIRECT3DDEVICE7 iface
,
281 LPD3DVIEWPORT7 lpData
)
283 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
284 TRACE("(%p/%p)->(%p)\n", This
, iface
, lpData
);
286 *lpData
= This
->active_viewport
;
288 if (TRACE_ON(ddraw
)) {
289 TRACE(" returning viewport : \n");
290 TRACE(" - dwX = %ld dwY = %ld\n",
291 lpData
->dwX
, lpData
->dwY
);
292 TRACE(" - dwWidth = %ld dwHeight = %ld\n",
293 lpData
->dwWidth
, lpData
->dwHeight
);
294 TRACE(" - dvMinZ = %f dvMaxZ = %f\n",
295 lpData
->dvMinZ
, lpData
->dvMaxZ
);
302 Main_IDirect3DDeviceImpl_7_SetMaterial(LPDIRECT3DDEVICE7 iface
,
303 LPD3DMATERIAL7 lpMat
)
305 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
306 FIXME("(%p/%p)->(%p): stub!\n", This
, iface
, lpMat
);
311 Main_IDirect3DDeviceImpl_7_GetMaterial(LPDIRECT3DDEVICE7 iface
,
312 LPD3DMATERIAL7 lpMat
)
314 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
315 TRACE("(%p/%p)->(%p)\n", This
, iface
, lpMat
);
317 *lpMat
= This
->current_material
;
319 if (TRACE_ON(ddraw
)) {
320 TRACE(" returning material : \n");
321 dump_D3DMATERIAL7(lpMat
);
328 Main_IDirect3DDeviceImpl_7_SetLight(LPDIRECT3DDEVICE7 iface
,
332 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
333 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This
, iface
, dwLightIndex
, lpLight
);
338 Main_IDirect3DDeviceImpl_7_GetLight(LPDIRECT3DDEVICE7 iface
,
342 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
343 TRACE("(%p/%p)->(%08lx,%p)\n", This
, iface
, dwLightIndex
, lpLight
);
345 if (dwLightIndex
> MAX_LIGHTS
) return DDERR_INVALIDPARAMS
;
346 *lpLight
= This
->light_parameters
[dwLightIndex
];
348 if (TRACE_ON(ddraw
)) {
349 TRACE(" returning light : \n");
350 dump_D3DLIGHT7(lpLight
);
357 Main_IDirect3DDeviceImpl_7_3T_2T_SetRenderState(LPDIRECT3DDEVICE7 iface
,
358 D3DRENDERSTATETYPE dwRenderStateType
,
361 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
362 FIXME("(%p/%p)->(%08x,%08lx): stub!\n", This
, iface
, dwRenderStateType
, dwRenderState
);
367 Main_IDirect3DDeviceImpl_7_3T_2T_GetRenderState(LPDIRECT3DDEVICE7 iface
,
368 D3DRENDERSTATETYPE dwRenderStateType
,
369 LPDWORD lpdwRenderState
)
371 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
372 FIXME("(%p/%p)->(%08x,%p): stub!\n", This
, iface
, dwRenderStateType
, lpdwRenderState
);
377 Main_IDirect3DDeviceImpl_7_BeginStateBlock(LPDIRECT3DDEVICE7 iface
)
379 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
380 FIXME("(%p/%p)->(): stub!\n", This
, iface
);
385 Main_IDirect3DDeviceImpl_7_EndStateBlock(LPDIRECT3DDEVICE7 iface
,
386 LPDWORD lpdwBlockHandle
)
388 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
389 FIXME("(%p/%p)->(%p): stub!\n", This
, iface
, lpdwBlockHandle
);
394 Main_IDirect3DDeviceImpl_7_PreLoad(LPDIRECT3DDEVICE7 iface
,
395 LPDIRECTDRAWSURFACE7 lpddsTexture
)
397 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
398 FIXME("(%p/%p)->(%p): stub!\n", This
, iface
, lpddsTexture
);
403 Main_IDirect3DDeviceImpl_7_3T_DrawPrimitive(LPDIRECT3DDEVICE7 iface
,
404 D3DPRIMITIVETYPE d3dptPrimitiveType
,
405 DWORD d3dvtVertexType
,
410 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
411 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub!\n", This
, iface
, d3dptPrimitiveType
, d3dvtVertexType
, lpvVertices
, dwVertexCount
, dwFlags
);
416 Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitive(LPDIRECT3DDEVICE7 iface
,
417 D3DPRIMITIVETYPE d3dptPrimitiveType
,
418 DWORD d3dvtVertexType
,
425 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
426 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx): stub!\n", This
, iface
, d3dptPrimitiveType
, d3dvtVertexType
, lpvVertices
, dwVertexCount
, dwIndices
, dwIndexCount
, dwFlags
);
431 Main_IDirect3DDeviceImpl_7_3T_2T_SetClipStatus(LPDIRECT3DDEVICE7 iface
,
432 LPD3DCLIPSTATUS lpD3DClipStatus
)
434 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
435 FIXME("(%p/%p)->(%p): stub!\n", This
, iface
, lpD3DClipStatus
);
440 Main_IDirect3DDeviceImpl_7_3T_2T_GetClipStatus(LPDIRECT3DDEVICE7 iface
,
441 LPD3DCLIPSTATUS lpD3DClipStatus
)
443 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
444 FIXME("(%p/%p)->(%p): stub!\n", This
, iface
, lpD3DClipStatus
);
449 Main_IDirect3DDeviceImpl_7_3T_DrawPrimitiveStrided(LPDIRECT3DDEVICE7 iface
,
450 D3DPRIMITIVETYPE d3dptPrimitiveType
,
452 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData
,
456 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
457 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub!\n", This
, iface
, d3dptPrimitiveType
, dwVertexType
, lpD3DDrawPrimStrideData
, dwVertexCount
, dwFlags
);
462 Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitiveStrided(LPDIRECT3DDEVICE7 iface
,
463 D3DPRIMITIVETYPE d3dptPrimitiveType
,
465 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData
,
471 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
472 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx): stub!\n", This
, iface
, d3dptPrimitiveType
, dwVertexType
, lpD3DDrawPrimStrideData
, dwVertexCount
, lpIndex
, dwIndexCount
, dwFlags
);
477 Main_IDirect3DDeviceImpl_7_3T_DrawPrimitiveVB(LPDIRECT3DDEVICE7 iface
,
478 D3DPRIMITIVETYPE d3dptPrimitiveType
,
479 LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf
,
484 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
485 FIXME("(%p/%p)->(%08x,%p,%08lx,%08lx,%08lx): stub!\n", This
, iface
, d3dptPrimitiveType
, lpD3DVertexBuf
, dwStartVertex
, dwNumVertices
, dwFlags
);
490 Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitiveVB(LPDIRECT3DDEVICE7 iface
,
491 D3DPRIMITIVETYPE d3dptPrimitiveType
,
492 LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf
,
499 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
500 FIXME("(%p/%p)->(%08x,%p,%08lx,%08lx,%p,%08lx,%08lx): stub!\n", This
, iface
, d3dptPrimitiveType
, lpD3DVertexBuf
, dwStartVertex
, dwNumVertices
, lpwIndices
, dwIndexCount
, dwFlags
);
505 Main_IDirect3DDeviceImpl_7_3T_ComputeSphereVisibility(LPDIRECT3DDEVICE7 iface
,
506 LPD3DVECTOR lpCenters
,
510 LPDWORD lpdwReturnValues
)
512 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
513 FIXME("(%p/%p)->(%p,%p,%08lx,%08lx,%p): stub!\n", This
, iface
, lpCenters
, lpRadii
, dwNumSpheres
, dwFlags
, lpdwReturnValues
);
518 Main_IDirect3DDeviceImpl_7_3T_GetTexture(LPDIRECT3DDEVICE7 iface
,
520 LPDIRECTDRAWSURFACE7
* lpTexture
)
522 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
523 TRACE("(%p/%p)->(%08lx,%p)\n", This
, iface
, dwStage
, lpTexture
);
525 if (This
->current_texture
[dwStage
] != NULL
) {
526 *lpTexture
= ICOM_INTERFACE(This
->current_texture
[dwStage
], IDirectDrawSurface7
);
531 TRACE(" returning interface at %p (for implementation at %p).\n", *lpTexture
, This
->current_texture
[dwStage
]);
533 /* Note: should this method increase the reference count for this ?? */
539 Main_IDirect3DDeviceImpl_7_3T_SetTexture(LPDIRECT3DDEVICE7 iface
,
541 LPDIRECTDRAWSURFACE7 lpTexture
)
543 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
544 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This
, iface
, dwStage
, lpTexture
);
549 Main_IDirect3DDeviceImpl_7_3T_GetTextureStageState(LPDIRECT3DDEVICE7 iface
,
551 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType
,
554 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
555 FIXME("(%p/%p)->(%08lx,%08x,%p): stub!\n", This
, iface
, dwStage
, d3dTexStageStateType
, lpdwState
);
560 Main_IDirect3DDeviceImpl_7_3T_SetTextureStageState(LPDIRECT3DDEVICE7 iface
,
562 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType
,
565 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
566 FIXME("(%p/%p)->(%08lx,%08x,%08lx): stub!\n", This
, iface
, dwStage
, d3dTexStageStateType
, dwState
);
571 Main_IDirect3DDeviceImpl_7_3T_ValidateDevice(LPDIRECT3DDEVICE7 iface
,
574 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
575 FIXME("(%p/%p)->(%p): semi-stub!\n", This
, iface
, lpdwPasses
);
577 /* For the moment, we have a VERY good hardware which does everything in one pass :-) */
584 Main_IDirect3DDeviceImpl_7_ApplyStateBlock(LPDIRECT3DDEVICE7 iface
,
587 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
588 FIXME("(%p/%p)->(%08lx): stub!\n", This
, iface
, dwBlockHandle
);
593 Main_IDirect3DDeviceImpl_7_CaptureStateBlock(LPDIRECT3DDEVICE7 iface
,
596 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
597 FIXME("(%p/%p)->(%08lx): stub!\n", This
, iface
, dwBlockHandle
);
602 Main_IDirect3DDeviceImpl_7_DeleteStateBlock(LPDIRECT3DDEVICE7 iface
,
605 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
606 FIXME("(%p/%p)->(%08lx): stub!\n", This
, iface
, dwBlockHandle
);
611 Main_IDirect3DDeviceImpl_7_CreateStateBlock(LPDIRECT3DDEVICE7 iface
,
612 D3DSTATEBLOCKTYPE d3dsbType
,
613 LPDWORD lpdwBlockHandle
)
615 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
616 FIXME("(%p/%p)->(%08x,%p): stub!\n", This
, iface
, d3dsbType
, lpdwBlockHandle
);
621 Main_IDirect3DDeviceImpl_7_Load(LPDIRECT3DDEVICE7 iface
,
622 LPDIRECTDRAWSURFACE7 lpDestTex
,
624 LPDIRECTDRAWSURFACE7 lpSrcTex
,
628 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
629 FIXME("(%p/%p)->(%p,%p,%p,%p,%08lx): stub!\n", This
, iface
, lpDestTex
, lpDestPoint
, lpSrcTex
, lprcSrcRect
, dwFlags
);
634 Main_IDirect3DDeviceImpl_7_LightEnable(LPDIRECT3DDEVICE7 iface
,
638 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
639 FIXME("(%p/%p)->(%08lx,%d): stub!\n", This
, iface
, dwLightIndex
, bEnable
);
644 Main_IDirect3DDeviceImpl_7_GetLightEnable(LPDIRECT3DDEVICE7 iface
,
648 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
649 TRACE("(%p/%p)->(%08lx,%p)\n", This
, iface
, dwLightIndex
, pbEnable
);
651 if (dwLightIndex
> MAX_LIGHTS
) *pbEnable
= 0;
652 else *pbEnable
= ((0x00000001 << dwLightIndex
) & This
->active_lights
) != 0;
654 TRACE(" returning %d.\n", *pbEnable
);
660 Main_IDirect3DDeviceImpl_7_SetClipPlane(LPDIRECT3DDEVICE7 iface
,
662 D3DVALUE
* pPlaneEquation
)
664 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
665 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This
, iface
, dwIndex
, pPlaneEquation
);
670 Main_IDirect3DDeviceImpl_7_GetClipPlane(LPDIRECT3DDEVICE7 iface
,
672 D3DVALUE
* pPlaneEquation
)
674 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
675 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This
, iface
, dwIndex
, pPlaneEquation
);
680 Main_IDirect3DDeviceImpl_7_GetInfo(LPDIRECT3DDEVICE7 iface
,
682 LPVOID pDevInfoStruct
,
685 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice7
, iface
);
686 FIXME("(%p/%p)->(%08lx,%p,%08lx): stub!\n", This
, iface
, dwDevInfoID
, pDevInfoStruct
, dwSize
);
688 if (TRACE_ON(ddraw
)) {
689 TRACE(" info requested : ");
690 switch (dwDevInfoID
) {
691 case D3DDEVINFOID_TEXTUREMANAGER
: DPRINTF("D3DDEVINFOID_TEXTUREMANAGER\n"); break;
692 case D3DDEVINFOID_D3DTEXTUREMANAGER
: DPRINTF("D3DDEVINFOID_D3DTEXTUREMANAGER\n"); break;
693 case D3DDEVINFOID_TEXTURING
: DPRINTF("D3DDEVINFOID_TEXTURING\n"); break;
694 default: ERR(" invalid flag !!!\n"); return DDERR_INVALIDPARAMS
;
698 return S_FALSE
; /* According to MSDN, this is valid for a non-debug driver */
702 Main_IDirect3DDeviceImpl_3_2T_1T_GetCaps(LPDIRECT3DDEVICE3 iface
,
703 LPD3DDEVICEDESC lpD3DHWDevDesc
,
704 LPD3DDEVICEDESC lpD3DHELDevDesc
)
706 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice3
, iface
);
707 FIXME("(%p/%p)->(%p,%p): stub!\n", This
, iface
, lpD3DHWDevDesc
, lpD3DHELDevDesc
);
712 Main_IDirect3DDeviceImpl_3_2T_1T_GetStats(LPDIRECT3DDEVICE3 iface
,
713 LPD3DSTATS lpD3DStats
)
715 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice3
, iface
);
716 FIXME("(%p/%p)->(%p): stub!\n", This
, iface
, lpD3DStats
);
721 Main_IDirect3DDeviceImpl_3_2T_1T_AddViewport(LPDIRECT3DDEVICE3 iface
,
722 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3
)
724 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice3
, iface
);
725 IDirect3DViewportImpl
*lpDirect3DViewportImpl
= ICOM_OBJECT(IDirect3DViewportImpl
, IDirect3DViewport3
, lpDirect3DViewport3
);
727 TRACE("(%p/%p)->(%p)\n", This
, iface
, lpDirect3DViewport3
);
729 lpDirect3DViewportImpl
->next
= This
->viewport_list
;
730 This
->viewport_list
= lpDirect3DViewportImpl
;
736 Main_IDirect3DDeviceImpl_3_2T_1T_DeleteViewport(LPDIRECT3DDEVICE3 iface
,
737 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3
)
739 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice3
, iface
);
740 IDirect3DViewportImpl
*lpDirect3DViewportImpl
= ICOM_OBJECT(IDirect3DViewportImpl
, IDirect3DViewport3
, lpDirect3DViewport3
);
741 IDirect3DViewportImpl
*cur_viewport
, *prev_viewport
= NULL
;
743 TRACE("(%p/%p)->(%p)\n", This
, iface
, lpDirect3DViewport3
);
745 cur_viewport
= This
->viewport_list
;
746 while (cur_viewport
!= NULL
) {
747 if (cur_viewport
== lpDirect3DViewportImpl
) {
748 if (prev_viewport
== NULL
) This
->viewport_list
= cur_viewport
->next
;
749 else prev_viewport
->next
= cur_viewport
->next
;
750 /* TODO : add desactivate of the viewport and all associated lights... */
753 prev_viewport
= cur_viewport
;
754 cur_viewport
= cur_viewport
->next
;
757 return DDERR_INVALIDPARAMS
;
761 Main_IDirect3DDeviceImpl_3_2T_1T_NextViewport(LPDIRECT3DDEVICE3 iface
,
762 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3
,
763 LPDIRECT3DVIEWPORT3
* lplpDirect3DViewport3
,
766 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice3
, iface
);
767 IDirect3DViewportImpl
*res
= NULL
;
769 TRACE("(%p/%p)->(%p,%p,%08lx)\n", This
, iface
, lpDirect3DViewport3
, lplpDirect3DViewport3
, dwFlags
);
773 IDirect3DViewportImpl
*lpDirect3DViewportImpl
= ICOM_OBJECT(IDirect3DViewportImpl
, IDirect3DViewport3
, lpDirect3DViewport3
);
774 res
= lpDirect3DViewportImpl
->next
;
777 res
= This
->viewport_list
;
780 IDirect3DViewportImpl
*cur_viewport
= This
->viewport_list
;
781 if (cur_viewport
!= NULL
) {
782 while (cur_viewport
->next
!= NULL
) cur_viewport
= cur_viewport
->next
;
787 *lplpDirect3DViewport3
= NULL
;
788 return DDERR_INVALIDPARAMS
;
790 *lplpDirect3DViewport3
= ICOM_INTERFACE(res
, IDirect3DViewport3
);
795 Main_IDirect3DDeviceImpl_3_2T_SetCurrentViewport(LPDIRECT3DDEVICE3 iface
,
796 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3
)
798 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice3
, iface
);
799 TRACE("(%p/%p)->(%p)\n", This
, iface
, lpDirect3DViewport3
);
801 /* Should check if the viewport was added or not */
803 /* Set this viewport as the current viewport */
804 This
->current_viewport
= ICOM_OBJECT(IDirect3DViewportImpl
, IDirect3DViewport3
, lpDirect3DViewport3
);
806 /* Activate this viewport */
807 This
->current_viewport
->active_device
= This
;
808 This
->current_viewport
->activate(This
->current_viewport
);
810 /* And copy the values in the structure used by the device */
811 if (This
->current_viewport
->use_vp2
) {
812 This
->active_viewport
.dwX
= This
->current_viewport
->viewports
.vp2
.dwX
;
813 This
->active_viewport
.dwY
= This
->current_viewport
->viewports
.vp2
.dwY
;
814 This
->active_viewport
.dwHeight
= This
->current_viewport
->viewports
.vp2
.dwHeight
;
815 This
->active_viewport
.dwWidth
= This
->current_viewport
->viewports
.vp2
.dwWidth
;
816 This
->active_viewport
.dvMinZ
= This
->current_viewport
->viewports
.vp2
.dvMinZ
;
817 This
->active_viewport
.dvMaxZ
= This
->current_viewport
->viewports
.vp2
.dvMaxZ
;
819 This
->active_viewport
.dwX
= This
->current_viewport
->viewports
.vp1
.dwX
;
820 This
->active_viewport
.dwY
= This
->current_viewport
->viewports
.vp1
.dwY
;
821 This
->active_viewport
.dwHeight
= This
->current_viewport
->viewports
.vp1
.dwHeight
;
822 This
->active_viewport
.dwWidth
= This
->current_viewport
->viewports
.vp1
.dwWidth
;
823 This
->active_viewport
.dvMinZ
= This
->current_viewport
->viewports
.vp1
.dvMinZ
;
824 This
->active_viewport
.dvMaxZ
= This
->current_viewport
->viewports
.vp1
.dvMaxZ
;
831 Main_IDirect3DDeviceImpl_3_2T_GetCurrentViewport(LPDIRECT3DDEVICE3 iface
,
832 LPDIRECT3DVIEWPORT3
* lplpDirect3DViewport3
)
834 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice3
, iface
);
835 TRACE("(%p/%p)->(%p)\n", This
, iface
, lplpDirect3DViewport3
);
837 *lplpDirect3DViewport3
= ICOM_INTERFACE(This
->current_viewport
, IDirect3DViewport3
);
838 TRACE(" returning interface %p\n", *lplpDirect3DViewport3
);
844 Main_IDirect3DDeviceImpl_3_Begin(LPDIRECT3DDEVICE3 iface
,
845 D3DPRIMITIVETYPE d3dptPrimitiveType
,
846 DWORD dwVertexTypeDesc
,
849 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice3
, iface
);
850 FIXME("(%p/%p)->(%08x,%08lx,%08lx): stub!\n", This
, iface
, d3dptPrimitiveType
, dwVertexTypeDesc
, dwFlags
);
855 Main_IDirect3DDeviceImpl_3_BeginIndexed(LPDIRECT3DDEVICE3 iface
,
856 D3DPRIMITIVETYPE d3dptPrimitiveType
,
857 DWORD d3dvtVertexType
,
862 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice3
, iface
);
863 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub!\n", This
, iface
, d3dptPrimitiveType
, d3dvtVertexType
, lpvVertices
, dwNumVertices
, dwFlags
);
868 Main_IDirect3DDeviceImpl_3_2T_Vertex(LPDIRECT3DDEVICE3 iface
,
871 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice3
, iface
);
872 FIXME("(%p/%p)->(%p): stub!\n", This
, iface
, lpVertexType
);
877 Main_IDirect3DDeviceImpl_3_2T_Index(LPDIRECT3DDEVICE3 iface
,
880 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice3
, iface
);
881 FIXME("(%p/%p)->(%04x): stub!\n", This
, iface
, wVertexIndex
);
886 Main_IDirect3DDeviceImpl_3_2T_End(LPDIRECT3DDEVICE3 iface
,
889 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice3
, iface
);
890 FIXME("(%p/%p)->(%08lx): stub!\n", This
, iface
, dwFlags
);
895 Main_IDirect3DDeviceImpl_3_2T_GetLightState(LPDIRECT3DDEVICE3 iface
,
896 D3DLIGHTSTATETYPE dwLightStateType
,
897 LPDWORD lpdwLightState
)
899 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice3
, iface
);
900 FIXME("(%p/%p)->(%08x,%p): stub!\n", This
, iface
, dwLightStateType
, lpdwLightState
);
905 Main_IDirect3DDeviceImpl_3_2T_SetLightState(LPDIRECT3DDEVICE3 iface
,
906 D3DLIGHTSTATETYPE dwLightStateType
,
909 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice3
, iface
);
910 FIXME("(%p/%p)->(%08x,%08lx): stub!\n", This
, iface
, dwLightStateType
, dwLightState
);
915 Main_IDirect3DDeviceImpl_2_1T_SwapTextureHandles(LPDIRECT3DDEVICE2 iface
,
916 LPDIRECT3DTEXTURE2 lpD3DTex1
,
917 LPDIRECT3DTEXTURE2 lpD3DTex2
)
919 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice2
, iface
);
920 IDirectDrawSurfaceImpl tmp
,*surf1
,*surf2
;
921 TRACE("(%p/%p)->(%p,%p):\n", This
, iface
, lpD3DTex1
, lpD3DTex2
);
923 surf1
= ICOM_OBJECT(IDirectDrawSurfaceImpl
,IDirect3DTexture2
,lpD3DTex1
);
924 surf2
= ICOM_OBJECT(IDirectDrawSurfaceImpl
,IDirect3DTexture2
,lpD3DTex2
);
933 Main_IDirect3DDeviceImpl_2_NextViewport(LPDIRECT3DDEVICE2 iface
,
934 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2
,
935 LPDIRECT3DVIEWPORT2
* lplpDirect3DViewport2
,
938 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice2
, iface
);
939 FIXME("(%p/%p)->(%p,%p,%08lx): stub!\n", This
, iface
, lpDirect3DViewport2
, lplpDirect3DViewport2
, dwFlags
);
944 Main_IDirect3DDeviceImpl_2_1T_EnumTextureFormats(LPDIRECT3DDEVICE2 iface
,
945 LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc
,
948 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice2
, iface
);
949 FIXME("(%p/%p)->(%p,%p): stub!\n", This
, iface
, lpD3DEnumTextureProc
, lpArg
);
954 Main_IDirect3DDeviceImpl_2_Begin(LPDIRECT3DDEVICE2 iface
,
955 D3DPRIMITIVETYPE d3dpt
,
956 D3DVERTEXTYPE dwVertexTypeDesc
,
959 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice2
, iface
);
960 FIXME("(%p/%p)->(%08x,%08x,%08lx): stub!\n", This
, iface
, d3dpt
, dwVertexTypeDesc
, dwFlags
);
965 Main_IDirect3DDeviceImpl_2_BeginIndexed(LPDIRECT3DDEVICE2 iface
,
966 D3DPRIMITIVETYPE d3dptPrimitiveType
,
967 D3DVERTEXTYPE d3dvtVertexType
,
972 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice2
, iface
);
973 FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%08lx): stub!\n", This
, iface
, d3dptPrimitiveType
, d3dvtVertexType
, lpvVertices
, dwNumVertices
, dwFlags
);
978 Main_IDirect3DDeviceImpl_2_DrawPrimitive(LPDIRECT3DDEVICE2 iface
,
979 D3DPRIMITIVETYPE d3dptPrimitiveType
,
980 D3DVERTEXTYPE d3dvtVertexType
,
985 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice2
, iface
);
986 FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%08lx): stub!\n", This
, iface
, d3dptPrimitiveType
, d3dvtVertexType
, lpvVertices
, dwVertexCount
, dwFlags
);
991 Main_IDirect3DDeviceImpl_2_DrawIndexedPrimitive(LPDIRECT3DDEVICE2 iface
,
992 D3DPRIMITIVETYPE d3dptPrimitiveType
,
993 D3DVERTEXTYPE d3dvtVertexType
,
1000 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice2
, iface
);
1001 FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%p,%08lx,%08lx): stub!\n", This
, iface
, d3dptPrimitiveType
, d3dvtVertexType
, lpvVertices
, dwVertexCount
, dwIndices
, dwIndexCount
, dwFlags
);
1006 Main_IDirect3DDeviceImpl_1_Initialize(LPDIRECT3DDEVICE iface
,
1007 LPDIRECT3D lpDirect3D
,
1009 LPD3DDEVICEDESC lpD3DDVDesc
)
1011 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice
, iface
);
1012 FIXME("(%p/%p)->(%p,%p,%p): stub!\n", This
, iface
, lpDirect3D
, lpGUID
, lpD3DDVDesc
);
1017 Main_IDirect3DDeviceImpl_1_CreateExecuteBuffer(LPDIRECT3DDEVICE iface
,
1018 LPD3DEXECUTEBUFFERDESC lpDesc
,
1019 LPDIRECT3DEXECUTEBUFFER
* lplpDirect3DExecuteBuffer
,
1020 IUnknown
* pUnkOuter
)
1022 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice
, iface
);
1023 FIXME("(%p/%p)->(%p,%p,%p): stub!\n", This
, iface
, lpDesc
, lplpDirect3DExecuteBuffer
, pUnkOuter
);
1028 Main_IDirect3DDeviceImpl_1_Execute(LPDIRECT3DDEVICE iface
,
1029 LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer
,
1030 LPDIRECT3DVIEWPORT lpDirect3DViewport
,
1033 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice
, iface
);
1034 IDirect3DExecuteBufferImpl
*lpDirect3DExecuteBufferImpl
= ICOM_OBJECT(IDirect3DExecuteBufferImpl
, IDirect3DExecuteBuffer
, lpDirect3DExecuteBuffer
);
1035 IDirect3DViewportImpl
*lpDirect3DViewportImpl
= ICOM_OBJECT(IDirect3DViewportImpl
, IDirect3DViewport3
, lpDirect3DViewport
);
1037 TRACE("(%p/%p)->(%p,%p,%08lx)\n", This
, iface
, lpDirect3DExecuteBuffer
, lpDirect3DViewport
, dwFlags
);
1039 /* Put this as the default context */
1042 lpDirect3DExecuteBufferImpl
->execute(lpDirect3DExecuteBufferImpl
, This
, lpDirect3DViewportImpl
);
1048 Main_IDirect3DDeviceImpl_1_NextViewport(LPDIRECT3DDEVICE iface
,
1049 LPDIRECT3DVIEWPORT lpDirect3DViewport
,
1050 LPDIRECT3DVIEWPORT
* lplpDirect3DViewport
,
1053 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice
, iface
);
1054 FIXME("(%p/%p)->(%p,%p,%08lx): stub!\n", This
, iface
, lpDirect3DViewport
, lplpDirect3DViewport
, dwFlags
);
1059 Main_IDirect3DDeviceImpl_1_Pick(LPDIRECT3DDEVICE iface
,
1060 LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer
,
1061 LPDIRECT3DVIEWPORT lpDirect3DViewport
,
1065 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice
, iface
);
1066 FIXME("(%p/%p)->(%p,%p,%08lx,%p): stub!\n", This
, iface
, lpDirect3DExecuteBuffer
, lpDirect3DViewport
, dwFlags
, lpRect
);
1071 Main_IDirect3DDeviceImpl_1_GetPickRecords(LPDIRECT3DDEVICE iface
,
1073 LPD3DPICKRECORD lpD3DPickRec
)
1075 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice
, iface
);
1076 FIXME("(%p/%p)->(%p,%p): stub!\n", This
, iface
, lpCount
, lpD3DPickRec
);
1081 Main_IDirect3DDeviceImpl_1_CreateMatrix(LPDIRECT3DDEVICE iface
,
1082 LPD3DMATRIXHANDLE lpD3DMatHandle
)
1084 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice
, iface
);
1085 TRACE("(%p/%p)->(%p)\n", This
, iface
, lpD3DMatHandle
);
1087 *lpD3DMatHandle
= (D3DMATRIXHANDLE
) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY
, sizeof(D3DMATRIX
));
1088 TRACE(" returning matrix handle %p\n", (void *) *lpD3DMatHandle
);
1094 Main_IDirect3DDeviceImpl_1_SetMatrix(LPDIRECT3DDEVICE iface
,
1095 D3DMATRIXHANDLE D3DMatHandle
,
1096 LPD3DMATRIX lpD3DMatrix
)
1098 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice
, iface
);
1099 TRACE("(%p/%p)->(%08lx,%p)\n", This
, iface
, (DWORD
) D3DMatHandle
, lpD3DMatrix
);
1101 dump_mat(lpD3DMatrix
);
1102 *((D3DMATRIX
*) D3DMatHandle
) = *lpD3DMatrix
;
1108 Main_IDirect3DDeviceImpl_1_GetMatrix(LPDIRECT3DDEVICE iface
,
1109 D3DMATRIXHANDLE D3DMatHandle
,
1110 LPD3DMATRIX lpD3DMatrix
)
1112 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice
, iface
);
1113 TRACE("(%p/%p)->(%08lx,%p)\n", This
, iface
, (DWORD
) D3DMatHandle
, lpD3DMatrix
);
1115 *lpD3DMatrix
= *((D3DMATRIX
*) D3DMatHandle
);
1121 Main_IDirect3DDeviceImpl_1_DeleteMatrix(LPDIRECT3DDEVICE iface
,
1122 D3DMATRIXHANDLE D3DMatHandle
)
1124 ICOM_THIS_FROM(IDirect3DDeviceImpl
, IDirect3DDevice
, iface
);
1125 TRACE("(%p/%p)->(%08lx)\n", This
, iface
, (DWORD
) D3DMatHandle
);
1127 HeapFree(GetProcessHeap(), 0, (void *) D3DMatHandle
);
1133 Thunk_IDirect3DDeviceImpl_3_QueryInterface(LPDIRECT3DDEVICE3 iface
,
1137 TRACE("(%p)->(%s,%p) thunking to IDirect3DDevice7 interface.\n", iface
, debugstr_guid(riid
), obp
);
1138 return IDirect3DDevice7_QueryInterface(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1144 Thunk_IDirect3DDeviceImpl_2_QueryInterface(LPDIRECT3DDEVICE2 iface
,
1148 TRACE("(%p)->(%s,%p) thunking to IDirect3DDevice7 interface.\n", iface
, debugstr_guid(riid
), obp
);
1149 return IDirect3DDevice7_QueryInterface(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
),
1155 Thunk_IDirect3DDeviceImpl_1_QueryInterface(LPDIRECT3DDEVICE iface
,
1159 TRACE("(%p)->(%s,%p) thunking to IDirect3DDevice7 interface.\n", iface
, debugstr_guid(riid
), obp
);
1160 return IDirect3DDevice7_QueryInterface(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice
, IDirect3DDevice7
, iface
),
1166 Thunk_IDirect3DDeviceImpl_3_AddRef(LPDIRECT3DDEVICE3 iface
)
1168 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface
);
1169 return IDirect3DDevice7_AddRef(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
));
1173 Thunk_IDirect3DDeviceImpl_2_AddRef(LPDIRECT3DDEVICE2 iface
)
1175 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface
);
1176 return IDirect3DDevice7_AddRef(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
));
1180 Thunk_IDirect3DDeviceImpl_1_AddRef(LPDIRECT3DDEVICE iface
)
1182 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface
);
1183 return IDirect3DDevice7_AddRef(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice
, IDirect3DDevice7
, iface
));
1187 Thunk_IDirect3DDeviceImpl_3_Release(LPDIRECT3DDEVICE3 iface
)
1189 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface
);
1190 return IDirect3DDevice7_Release(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
));
1194 Thunk_IDirect3DDeviceImpl_2_Release(LPDIRECT3DDEVICE2 iface
)
1196 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface
);
1197 return IDirect3DDevice7_Release(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
));
1201 Thunk_IDirect3DDeviceImpl_1_Release(LPDIRECT3DDEVICE iface
)
1203 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface
);
1204 return IDirect3DDevice7_Release(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice
, IDirect3DDevice7
, iface
));
1208 Thunk_IDirect3DDeviceImpl_2_AddViewport(LPDIRECT3DDEVICE2 iface
,
1209 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2
)
1211 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface
, lpDirect3DViewport2
);
1212 return IDirect3DDevice3_AddViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice3
, iface
),
1213 (LPDIRECT3DVIEWPORT3
) lpDirect3DViewport2
/* No need to cast here as all interfaces are equivalent */);
1217 Thunk_IDirect3DDeviceImpl_1_AddViewport(LPDIRECT3DDEVICE iface
,
1218 LPDIRECT3DVIEWPORT lpDirect3DViewport
)
1220 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface
, lpDirect3DViewport
);
1221 return IDirect3DDevice3_AddViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice
, IDirect3DDevice3
, iface
),
1222 (LPDIRECT3DVIEWPORT3
) lpDirect3DViewport
/* No need to cast here as all interfaces are equivalent */);
1226 Thunk_IDirect3DDeviceImpl_2_DeleteViewport(LPDIRECT3DDEVICE2 iface
,
1227 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2
)
1229 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface
, lpDirect3DViewport2
);
1230 return IDirect3DDevice3_DeleteViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice3
, iface
),
1231 (LPDIRECT3DVIEWPORT3
) lpDirect3DViewport2
/* No need to cast here as all interfaces are equivalent */);
1235 Thunk_IDirect3DDeviceImpl_1_DeleteViewport(LPDIRECT3DDEVICE iface
,
1236 LPDIRECT3DVIEWPORT lpDirect3DViewport
)
1238 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface
, lpDirect3DViewport
);
1239 return IDirect3DDevice3_DeleteViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice
, IDirect3DDevice3
, iface
),
1240 (LPDIRECT3DVIEWPORT3
) lpDirect3DViewport
/* No need to cast here as all interfaces are equivalent */);
1244 Thunk_IDirect3DDeviceImpl_2_NextViewport(LPDIRECT3DDEVICE3 iface
,
1245 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2
,
1246 LPDIRECT3DVIEWPORT2
* lplpDirect3DViewport2
,
1249 TRACE("(%p)->(%p,%p,%08lx) thunking to IDirect3DDevice3 interface.\n", iface
, lpDirect3DViewport2
, lplpDirect3DViewport2
, dwFlags
);
1250 return IDirect3DDevice3_NextViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice3
, iface
),
1251 (LPDIRECT3DVIEWPORT3
) lpDirect3DViewport2
/* No need to cast here as all interfaces are equivalent */,
1252 (LPDIRECT3DVIEWPORT3
*) lplpDirect3DViewport2
,
1257 Thunk_IDirect3DDeviceImpl_1_NextViewport(LPDIRECT3DDEVICE3 iface
,
1258 LPDIRECT3DVIEWPORT lpDirect3DViewport
,
1259 LPDIRECT3DVIEWPORT
* lplpDirect3DViewport
,
1262 TRACE("(%p)->(%p,%p,%08lx) thunking to IDirect3DDevice3 interface.\n", iface
, lpDirect3DViewport
, lplpDirect3DViewport
, dwFlags
);
1263 return IDirect3DDevice3_NextViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice
, IDirect3DDevice3
, iface
),
1264 (LPDIRECT3DVIEWPORT3
) lpDirect3DViewport
/* No need to cast here as all interfaces are equivalent */,
1265 (LPDIRECT3DVIEWPORT3
*) lplpDirect3DViewport
,
1270 Thunk_IDirect3DDeviceImpl_3_GetDirect3D(LPDIRECT3DDEVICE3 iface
,
1271 LPDIRECT3D3
* lplpDirect3D3
)
1274 LPDIRECT3D7 ret_ptr
;
1276 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface
, lplpDirect3D3
);
1277 ret
= IDirect3DDevice7_GetDirect3D(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1279 *lplpDirect3D3
= COM_INTERFACE_CAST(IDirect3DImpl
, IDirect3D7
, IDirect3D3
, ret_ptr
);
1280 TRACE(" returning interface %p\n", *lplpDirect3D3
);
1285 Thunk_IDirect3DDeviceImpl_2_GetDirect3D(LPDIRECT3DDEVICE2 iface
,
1286 LPDIRECT3D2
* lplpDirect3D2
)
1289 LPDIRECT3D7 ret_ptr
;
1291 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface
, lplpDirect3D2
);
1292 ret
= IDirect3DDevice7_GetDirect3D(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
),
1294 *lplpDirect3D2
= COM_INTERFACE_CAST(IDirect3DImpl
, IDirect3D7
, IDirect3D2
, ret_ptr
);
1295 TRACE(" returning interface %p\n", *lplpDirect3D2
);
1300 Thunk_IDirect3DDeviceImpl_1_GetDirect3D(LPDIRECT3DDEVICE iface
,
1301 LPDIRECT3D
* lplpDirect3D
)
1304 LPDIRECT3D7 ret_ptr
;
1306 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface
, lplpDirect3D
);
1307 ret
= IDirect3DDevice7_GetDirect3D(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice
, IDirect3DDevice7
, iface
),
1309 *lplpDirect3D
= COM_INTERFACE_CAST(IDirect3DImpl
, IDirect3D7
, IDirect3D
, ret_ptr
);
1310 TRACE(" returning interface %p\n", *lplpDirect3D
);
1315 Thunk_IDirect3DDeviceImpl_2_SetCurrentViewport(LPDIRECT3DDEVICE2 iface
,
1316 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2
)
1318 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface
, lpDirect3DViewport2
);
1319 return IDirect3DDevice3_SetCurrentViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice3
, iface
),
1320 (LPDIRECT3DVIEWPORT3
) lpDirect3DViewport2
/* No need to cast here as all interfaces are equivalent */);
1324 Thunk_IDirect3DDeviceImpl_2_GetCurrentViewport(LPDIRECT3DDEVICE2 iface
,
1325 LPDIRECT3DVIEWPORT2
* lplpDirect3DViewport2
)
1327 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface
, lplpDirect3DViewport2
);
1328 return IDirect3DDevice3_GetCurrentViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice3
, iface
),
1329 (LPDIRECT3DVIEWPORT3
*) lplpDirect3DViewport2
/* No need to cast here as all interfaces are equivalent */);
1333 Thunk_IDirect3DDeviceImpl_3_EnumTextureFormats(LPDIRECT3DDEVICE3 iface
,
1334 LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc
,
1337 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice7 interface.\n", iface
, lpD3DEnumPixelProc
, lpArg
);
1338 return IDirect3DDevice7_EnumTextureFormats(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1344 Thunk_IDirect3DDeviceImpl_3_BeginScene(LPDIRECT3DDEVICE3 iface
)
1346 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface
);
1347 return IDirect3DDevice7_BeginScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
));
1351 Thunk_IDirect3DDeviceImpl_2_BeginScene(LPDIRECT3DDEVICE2 iface
)
1353 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface
);
1354 return IDirect3DDevice7_BeginScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
));
1358 Thunk_IDirect3DDeviceImpl_1_BeginScene(LPDIRECT3DDEVICE iface
)
1360 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface
);
1361 return IDirect3DDevice7_BeginScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice
, IDirect3DDevice7
, iface
));
1365 Thunk_IDirect3DDeviceImpl_3_EndScene(LPDIRECT3DDEVICE3 iface
)
1367 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface
);
1368 return IDirect3DDevice7_EndScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
));
1372 Thunk_IDirect3DDeviceImpl_2_EndScene(LPDIRECT3DDEVICE2 iface
)
1374 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface
);
1375 return IDirect3DDevice7_EndScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
));
1379 Thunk_IDirect3DDeviceImpl_1_EndScene(LPDIRECT3DDEVICE iface
)
1381 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface
);
1382 return IDirect3DDevice7_EndScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice
, IDirect3DDevice7
, iface
));
1386 Thunk_IDirect3DDeviceImpl_3_SetTransform(LPDIRECT3DDEVICE3 iface
,
1387 D3DTRANSFORMSTATETYPE dtstTransformStateType
,
1388 LPD3DMATRIX lpD3DMatrix
)
1390 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface
, dtstTransformStateType
, lpD3DMatrix
);
1391 return IDirect3DDevice7_SetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1392 dtstTransformStateType
,
1397 Thunk_IDirect3DDeviceImpl_2_SetTransform(LPDIRECT3DDEVICE2 iface
,
1398 D3DTRANSFORMSTATETYPE dtstTransformStateType
,
1399 LPD3DMATRIX lpD3DMatrix
)
1401 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface
, dtstTransformStateType
, lpD3DMatrix
);
1402 return IDirect3DDevice7_SetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
),
1403 dtstTransformStateType
,
1408 Thunk_IDirect3DDeviceImpl_3_GetTransform(LPDIRECT3DDEVICE3 iface
,
1409 D3DTRANSFORMSTATETYPE dtstTransformStateType
,
1410 LPD3DMATRIX lpD3DMatrix
)
1412 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface
, dtstTransformStateType
, lpD3DMatrix
);
1413 return IDirect3DDevice7_GetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1414 dtstTransformStateType
,
1419 Thunk_IDirect3DDeviceImpl_2_GetTransform(LPDIRECT3DDEVICE2 iface
,
1420 D3DTRANSFORMSTATETYPE dtstTransformStateType
,
1421 LPD3DMATRIX lpD3DMatrix
)
1423 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface
, dtstTransformStateType
, lpD3DMatrix
);
1424 return IDirect3DDevice7_GetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
),
1425 dtstTransformStateType
,
1430 Thunk_IDirect3DDeviceImpl_3_MultiplyTransform(LPDIRECT3DDEVICE3 iface
,
1431 D3DTRANSFORMSTATETYPE dtstTransformStateType
,
1432 LPD3DMATRIX lpD3DMatrix
)
1434 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface
, dtstTransformStateType
, lpD3DMatrix
);
1435 return IDirect3DDevice7_MultiplyTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1436 dtstTransformStateType
,
1441 Thunk_IDirect3DDeviceImpl_2_MultiplyTransform(LPDIRECT3DDEVICE2 iface
,
1442 D3DTRANSFORMSTATETYPE dtstTransformStateType
,
1443 LPD3DMATRIX lpD3DMatrix
)
1445 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface
, dtstTransformStateType
, lpD3DMatrix
);
1446 return IDirect3DDevice7_MultiplyTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
),
1447 dtstTransformStateType
,
1452 Thunk_IDirect3DDeviceImpl_3_SetRenderState(LPDIRECT3DDEVICE3 iface
,
1453 D3DRENDERSTATETYPE dwRenderStateType
,
1454 DWORD dwRenderState
)
1456 TRACE("(%p)->(%08x,%08lx) thunking to IDirect3DDevice7 interface.\n", iface
, dwRenderStateType
, dwRenderState
);
1457 return IDirect3DDevice7_SetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1463 Thunk_IDirect3DDeviceImpl_2_SetRenderState(LPDIRECT3DDEVICE2 iface
,
1464 D3DRENDERSTATETYPE dwRenderStateType
,
1465 DWORD dwRenderState
)
1467 TRACE("(%p)->(%08x,%08lx) thunking to IDirect3DDevice7 interface.\n", iface
, dwRenderStateType
, dwRenderState
);
1468 return IDirect3DDevice7_SetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
),
1474 Thunk_IDirect3DDeviceImpl_3_GetRenderState(LPDIRECT3DDEVICE3 iface
,
1475 D3DRENDERSTATETYPE dwRenderStateType
,
1476 LPDWORD lpdwRenderState
)
1478 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface
, dwRenderStateType
, lpdwRenderState
);
1479 return IDirect3DDevice7_GetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1485 Thunk_IDirect3DDeviceImpl_2_GetRenderState(LPDIRECT3DDEVICE2 iface
,
1486 D3DRENDERSTATETYPE dwRenderStateType
,
1487 LPDWORD lpdwRenderState
)
1489 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface
, dwRenderStateType
, lpdwRenderState
);
1490 return IDirect3DDevice7_GetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
),
1496 Thunk_IDirect3DDeviceImpl_3_DrawPrimitive(LPDIRECT3DDEVICE3 iface
,
1497 D3DPRIMITIVETYPE d3dptPrimitiveType
,
1498 DWORD d3dvtVertexType
,
1500 DWORD dwVertexCount
,
1503 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface
, d3dptPrimitiveType
, d3dvtVertexType
, lpvVertices
, dwVertexCount
, dwFlags
);
1504 return IDirect3DDevice7_DrawPrimitive(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1513 Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitive(LPDIRECT3DDEVICE3 iface
,
1514 D3DPRIMITIVETYPE d3dptPrimitiveType
,
1515 DWORD d3dvtVertexType
,
1517 DWORD dwVertexCount
,
1522 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface
, d3dptPrimitiveType
, d3dvtVertexType
, lpvVertices
, dwVertexCount
, dwIndices
, dwIndexCount
, dwFlags
);
1523 return IDirect3DDevice7_DrawIndexedPrimitive(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1534 Thunk_IDirect3DDeviceImpl_3_SetClipStatus(LPDIRECT3DDEVICE3 iface
,
1535 LPD3DCLIPSTATUS lpD3DClipStatus
)
1537 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface
, lpD3DClipStatus
);
1538 return IDirect3DDevice7_SetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1543 Thunk_IDirect3DDeviceImpl_2_SetClipStatus(LPDIRECT3DDEVICE2 iface
,
1544 LPD3DCLIPSTATUS lpD3DClipStatus
)
1546 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface
, lpD3DClipStatus
);
1547 return IDirect3DDevice7_SetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
),
1552 Thunk_IDirect3DDeviceImpl_3_GetClipStatus(LPDIRECT3DDEVICE3 iface
,
1553 LPD3DCLIPSTATUS lpD3DClipStatus
)
1555 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface
, lpD3DClipStatus
);
1556 return IDirect3DDevice7_GetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1561 Thunk_IDirect3DDeviceImpl_2_GetClipStatus(LPDIRECT3DDEVICE2 iface
,
1562 LPD3DCLIPSTATUS lpD3DClipStatus
)
1564 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface
, lpD3DClipStatus
);
1565 return IDirect3DDevice7_GetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
),
1570 Thunk_IDirect3DDeviceImpl_3_DrawPrimitiveStrided(LPDIRECT3DDEVICE3 iface
,
1571 D3DPRIMITIVETYPE d3dptPrimitiveType
,
1573 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData
,
1574 DWORD dwVertexCount
,
1577 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface
, d3dptPrimitiveType
, dwVertexType
, lpD3DDrawPrimStrideData
, dwVertexCount
, dwFlags
);
1578 return IDirect3DDevice7_DrawPrimitiveStrided(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1581 lpD3DDrawPrimStrideData
,
1587 Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitiveStrided(LPDIRECT3DDEVICE3 iface
,
1588 D3DPRIMITIVETYPE d3dptPrimitiveType
,
1590 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData
,
1591 DWORD dwVertexCount
,
1596 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface
, d3dptPrimitiveType
, dwVertexType
, lpD3DDrawPrimStrideData
, dwVertexCount
, lpIndex
, dwIndexCount
, dwFlags
);
1597 return IDirect3DDevice7_DrawIndexedPrimitiveStrided(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1600 lpD3DDrawPrimStrideData
,
1608 Thunk_IDirect3DDeviceImpl_3_ComputeSphereVisibility(LPDIRECT3DDEVICE3 iface
,
1609 LPD3DVECTOR lpCenters
,
1613 LPDWORD lpdwReturnValues
)
1615 TRACE("(%p)->(%p,%p,%08lx,%08lx,%p) thunking to IDirect3DDevice7 interface.\n", iface
, lpCenters
, lpRadii
, dwNumSpheres
, dwFlags
, lpdwReturnValues
);
1616 return IDirect3DDevice7_ComputeSphereVisibility(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1625 Thunk_IDirect3DDeviceImpl_3_GetTextureStageState(LPDIRECT3DDEVICE3 iface
,
1627 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType
,
1630 TRACE("(%p)->(%08lx,%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface
, dwStage
, d3dTexStageStateType
, lpdwState
);
1631 return IDirect3DDevice7_GetTextureStageState(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1633 d3dTexStageStateType
,
1638 Thunk_IDirect3DDeviceImpl_3_SetTextureStageState(LPDIRECT3DDEVICE3 iface
,
1640 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType
,
1643 TRACE("(%p)->(%08lx,%08x,%08lx) thunking to IDirect3DDevice7 interface.\n", iface
, dwStage
, d3dTexStageStateType
, dwState
);
1644 return IDirect3DDevice7_SetTextureStageState(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1646 d3dTexStageStateType
,
1651 Thunk_IDirect3DDeviceImpl_3_ValidateDevice(LPDIRECT3DDEVICE3 iface
,
1654 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface
, lpdwPasses
);
1655 return IDirect3DDevice7_ValidateDevice(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1660 Thunk_IDirect3DDeviceImpl_2_GetCaps(LPDIRECT3DDEVICE2 iface
,
1661 LPD3DDEVICEDESC lpD3DHWDevDesc
,
1662 LPD3DDEVICEDESC lpD3DHELDevDesc
)
1664 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice3 interface.\n", iface
, lpD3DHWDevDesc
, lpD3DHELDevDesc
);
1665 return IDirect3DDevice3_GetCaps(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice3
, iface
),
1671 Thunk_IDirect3DDeviceImpl_1_GetCaps(LPDIRECT3DDEVICE iface
,
1672 LPD3DDEVICEDESC lpD3DHWDevDesc
,
1673 LPD3DDEVICEDESC lpD3DHELDevDesc
)
1675 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice3 interface.\n", iface
, lpD3DHWDevDesc
, lpD3DHELDevDesc
);
1676 return IDirect3DDevice3_GetCaps(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice
, IDirect3DDevice3
, iface
),
1682 Thunk_IDirect3DDeviceImpl_1_SwapTextureHandles(LPDIRECT3DDEVICE iface
,
1683 LPDIRECT3DTEXTURE lpD3DTex1
,
1684 LPDIRECT3DTEXTURE lpD3DTex2
)
1686 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice2 interface.\n", iface
, lpD3DTex1
, lpD3DTex2
);
1687 return IDirect3DDevice2_SwapTextureHandles(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice
, IDirect3DDevice2
, iface
),
1688 COM_INTERFACE_CAST(IDirectDrawSurfaceImpl
, IDirect3DTexture
, IDirect3DTexture2
, lpD3DTex1
),
1689 COM_INTERFACE_CAST(IDirectDrawSurfaceImpl
, IDirect3DTexture
, IDirect3DTexture2
, lpD3DTex2
));
1693 Thunk_IDirect3DDeviceImpl_2_GetStats(LPDIRECT3DDEVICE2 iface
,
1694 LPD3DSTATS lpD3DStats
)
1696 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface
, lpD3DStats
);
1697 return IDirect3DDevice3_GetStats(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice3
, iface
),
1702 Thunk_IDirect3DDeviceImpl_1_GetStats(LPDIRECT3DDEVICE iface
,
1703 LPD3DSTATS lpD3DStats
)
1705 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface
, lpD3DStats
);
1706 return IDirect3DDevice3_GetStats(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice
, IDirect3DDevice3
, iface
),
1711 Thunk_IDirect3DDeviceImpl_3_SetRenderTarget(LPDIRECT3DDEVICE3 iface
,
1712 LPDIRECTDRAWSURFACE4 lpNewRenderTarget
,
1715 TRACE("(%p)->(%p,%08lx) thunking to IDirect3DDevice7 interface.\n", iface
, lpNewRenderTarget
, dwFlags
);
1716 return IDirect3DDevice7_SetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1717 (LPDIRECTDRAWSURFACE7
) lpNewRenderTarget
/* No cast needed as DSurf4 == DSurf7 */,
1722 Thunk_IDirect3DDeviceImpl_3_GetRenderTarget(LPDIRECT3DDEVICE3 iface
,
1723 LPDIRECTDRAWSURFACE4
* lplpRenderTarget
)
1725 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface
, lplpRenderTarget
);
1726 return IDirect3DDevice7_GetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1727 (LPDIRECTDRAWSURFACE7
*) lplpRenderTarget
/* No cast needed as DSurf4 == DSurf7 */);
1731 Thunk_IDirect3DDeviceImpl_2_SetRenderTarget(LPDIRECT3DDEVICE2 iface
,
1732 LPDIRECTDRAWSURFACE lpNewRenderTarget
,
1735 TRACE("(%p)->(%p,%08lx) thunking to IDirect3DDevice7 interface.\n", iface
, lpNewRenderTarget
, dwFlags
);
1736 return IDirect3DDevice7_SetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
),
1737 COM_INTERFACE_CAST(IDirectDrawSurfaceImpl
, IDirectDrawSurface3
, IDirectDrawSurface7
, lpNewRenderTarget
),
1742 Thunk_IDirect3DDeviceImpl_2_GetRenderTarget(LPDIRECT3DDEVICE2 iface
,
1743 LPDIRECTDRAWSURFACE
* lplpRenderTarget
)
1746 LPDIRECTDRAWSURFACE7 ret_val
;
1748 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface
, lplpRenderTarget
);
1749 ret
= IDirect3DDevice7_GetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice7
, iface
),
1751 *lplpRenderTarget
= (LPDIRECTDRAWSURFACE
) COM_INTERFACE_CAST(IDirectDrawSurfaceImpl
, IDirectDrawSurface7
, IDirectDrawSurface3
, ret_val
);
1752 TRACE(" returning interface %p\n", *lplpRenderTarget
);
1757 Thunk_IDirect3DDeviceImpl_2_Vertex(LPDIRECT3DDEVICE2 iface
,
1758 LPVOID lpVertexType
)
1760 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface
, lpVertexType
);
1761 return IDirect3DDevice3_Vertex(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice3
, iface
),
1766 Thunk_IDirect3DDeviceImpl_2_Index(LPDIRECT3DDEVICE2 iface
,
1769 TRACE("(%p)->(%04x) thunking to IDirect3DDevice3 interface.\n", iface
, wVertexIndex
);
1770 return IDirect3DDevice3_Index(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice3
, iface
),
1775 Thunk_IDirect3DDeviceImpl_2_End(LPDIRECT3DDEVICE2 iface
,
1778 TRACE("(%p)->(%08lx) thunking to IDirect3DDevice3 interface.\n", iface
, dwFlags
);
1779 return IDirect3DDevice3_End(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice3
, iface
),
1784 Thunk_IDirect3DDeviceImpl_2_GetLightState(LPDIRECT3DDEVICE2 iface
,
1785 D3DLIGHTSTATETYPE dwLightStateType
,
1786 LPDWORD lpdwLightState
)
1788 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice3 interface.\n", iface
, dwLightStateType
, lpdwLightState
);
1789 return IDirect3DDevice3_GetLightState(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice3
, iface
),
1795 Thunk_IDirect3DDeviceImpl_2_SetLightState(LPDIRECT3DDEVICE2 iface
,
1796 D3DLIGHTSTATETYPE dwLightStateType
,
1799 TRACE("(%p)->(%08x,%08lx) thunking to IDirect3DDevice3 interface.\n", iface
, dwLightStateType
, dwLightState
);
1800 return IDirect3DDevice3_SetLightState(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice2
, IDirect3DDevice3
, iface
),
1806 Thunk_IDirect3DDeviceImpl_1_EnumTextureFormats(LPDIRECT3DDEVICE iface
,
1807 LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc
,
1810 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice2 interface.\n", iface
, lpD3DEnumTextureProc
, lpArg
);
1811 return IDirect3DDevice2_EnumTextureFormats(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice
, IDirect3DDevice2
, iface
),
1812 lpD3DEnumTextureProc
,
1817 Thunk_IDirect3DDeviceImpl_3_SetTexture(LPDIRECT3DDEVICE3 iface
,
1819 LPDIRECT3DTEXTURE2 lpTexture2
)
1821 TRACE("(%p)->(%ld,%p) thunking to IDirect3DDevice7 interface.\n", iface
, dwStage
, lpTexture2
);
1822 return IDirect3DDevice7_SetTexture(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1824 COM_INTERFACE_CAST(IDirectDrawSurfaceImpl
, IDirect3DTexture2
, IDirectDrawSurface7
, lpTexture2
));
1828 Thunk_IDirect3DDeviceImpl_3_DrawPrimitiveVB(LPDIRECT3DDEVICE3 iface
,
1829 D3DPRIMITIVETYPE d3dptPrimitiveType
,
1830 LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf
,
1831 DWORD dwStartVertex
,
1832 DWORD dwNumVertices
,
1835 TRACE("(%p)->(%08x,%p,%08lx,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface
,
1836 d3dptPrimitiveType
, lpD3DVertexBuf
, dwStartVertex
, dwNumVertices
, dwFlags
);
1837 return IDirect3DDevice7_DrawPrimitiveVB(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1839 COM_INTERFACE_CAST(IDirect3DVertexBufferImpl
, IDirect3DVertexBuffer
, IDirect3DVertexBuffer7
, lpD3DVertexBuf
),
1846 Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitiveVB(LPDIRECT3DDEVICE3 iface
,
1847 D3DPRIMITIVETYPE d3dptPrimitiveType
,
1848 LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf
,
1853 TRACE("(%p)->(%08x,%p,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface
,
1854 d3dptPrimitiveType
, lpD3DVertexBuf
, lpwIndices
, dwIndexCount
, dwFlags
);
1855 return IDirect3DDevice7_DrawIndexedPrimitiveVB(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1857 COM_INTERFACE_CAST(IDirect3DVertexBufferImpl
, IDirect3DVertexBuffer
, IDirect3DVertexBuffer7
, lpD3DVertexBuf
),
1866 Thunk_IDirect3DDeviceImpl_3_GetTexture(LPDIRECT3DDEVICE3 iface
,
1868 LPDIRECT3DTEXTURE2
* lplpTexture2
)
1871 LPDIRECTDRAWSURFACE7 ret_val
;
1873 TRACE("(%p)->(%ld,%p) thunking to IDirect3DDevice7 interface.\n", iface
, dwStage
, lplpTexture2
);
1874 ret
= IDirect3DDevice7_GetTexture(COM_INTERFACE_CAST(IDirect3DDeviceImpl
, IDirect3DDevice3
, IDirect3DDevice7
, iface
),
1878 *lplpTexture2
= COM_INTERFACE_CAST(IDirectDrawSurfaceImpl
, IDirectDrawSurface7
, IDirect3DTexture2
, ret_val
);
1880 TRACE(" returning interface %p.\n", *lplpTexture2
);