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): stub!\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 FIXME("(%p/%p)->(): stub!\n", This, iface);
136 Main_IDirect3DDeviceImpl_7_3T_2T_1T_EndScene(LPDIRECT3DDEVICE7 iface)
138 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
139 FIXME("(%p/%p)->(): stub!\n", This, iface);
144 Main_IDirect3DDeviceImpl_7_3T_2T_1T_GetDirect3D(LPDIRECT3DDEVICE7 iface,
145 LPDIRECT3D7* lplpDirect3D3)
147 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
148 TRACE("(%p/%p)->(%p)\n", This, iface, lplpDirect3D3);
150 *lplpDirect3D3 = ICOM_INTERFACE(This->d3d, IDirect3D7);
151 IDirect3D7_AddRef(ICOM_INTERFACE(This->d3d, IDirect3D7));
153 TRACE(" returning interface %p\n", *lplpDirect3D3);
158 Main_IDirect3DDeviceImpl_7_3T_2T_SetRenderTarget(LPDIRECT3DDEVICE7 iface,
159 LPDIRECTDRAWSURFACE7 lpNewRenderTarget,
162 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
163 FIXME("(%p/%p)->(%p,%08lx): stub!\n", This, iface, lpNewRenderTarget, dwFlags);
168 Main_IDirect3DDeviceImpl_7_3T_2T_GetRenderTarget(LPDIRECT3DDEVICE7 iface,
169 LPDIRECTDRAWSURFACE7* lplpRenderTarget)
171 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
172 TRACE("(%p/%p)->(%p)\n", This, iface, lplpRenderTarget);
174 *lplpRenderTarget = ICOM_INTERFACE(This->surface, IDirectDrawSurface7);
175 IDirectDrawSurface7_AddRef(ICOM_INTERFACE(This->surface, IDirectDrawSurface7));
177 TRACE(" returning surface at %p.\n", *lplpRenderTarget);
183 Main_IDirect3DDeviceImpl_7_Clear(LPDIRECT3DDEVICE7 iface,
191 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
192 FIXME("(%p/%p)->(%08lx,%p,%08lx,%08lx,%f,%08lx): stub!\n", This, iface, dwCount, lpRects, dwFlags, (DWORD) dwColor, dvZ, dwStencil);
197 Main_IDirect3DDeviceImpl_7_3T_2T_SetTransform(LPDIRECT3DDEVICE7 iface,
198 D3DTRANSFORMSTATETYPE dtstTransformStateType,
199 LPD3DMATRIX lpD3DMatrix)
201 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
202 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, dtstTransformStateType, lpD3DMatrix);
207 Main_IDirect3DDeviceImpl_7_3T_2T_GetTransform(LPDIRECT3DDEVICE7 iface,
208 D3DTRANSFORMSTATETYPE dtstTransformStateType,
209 LPD3DMATRIX lpD3DMatrix)
211 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
212 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, dtstTransformStateType, lpD3DMatrix);
217 Main_IDirect3DDeviceImpl_7_SetViewport(LPDIRECT3DDEVICE7 iface,
218 LPD3DVIEWPORT7 lpData)
220 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
221 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpData);
226 Main_IDirect3DDeviceImpl_7_3T_2T_MultiplyTransform(LPDIRECT3DDEVICE7 iface,
227 D3DTRANSFORMSTATETYPE dtstTransformStateType,
228 LPD3DMATRIX lpD3DMatrix)
230 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
231 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, dtstTransformStateType, lpD3DMatrix);
236 Main_IDirect3DDeviceImpl_7_GetViewport(LPDIRECT3DDEVICE7 iface,
237 LPD3DVIEWPORT7 lpData)
239 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
240 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpData);
245 Main_IDirect3DDeviceImpl_7_SetMaterial(LPDIRECT3DDEVICE7 iface,
246 LPD3DMATERIAL7 lpMat)
248 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
249 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpMat);
254 Main_IDirect3DDeviceImpl_7_GetMaterial(LPDIRECT3DDEVICE7 iface,
255 LPD3DMATERIAL7 lpMat)
257 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
258 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpMat);
263 Main_IDirect3DDeviceImpl_7_SetLight(LPDIRECT3DDEVICE7 iface,
267 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
268 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwLightIndex, lpLight);
273 Main_IDirect3DDeviceImpl_7_GetLight(LPDIRECT3DDEVICE7 iface,
277 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
278 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwLightIndex, lpLight);
283 Main_IDirect3DDeviceImpl_7_3T_2T_SetRenderState(LPDIRECT3DDEVICE7 iface,
284 D3DRENDERSTATETYPE dwRenderStateType,
287 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
288 FIXME("(%p/%p)->(%08x,%08lx): stub!\n", This, iface, dwRenderStateType, dwRenderState);
293 Main_IDirect3DDeviceImpl_7_3T_2T_GetRenderState(LPDIRECT3DDEVICE7 iface,
294 D3DRENDERSTATETYPE dwRenderStateType,
295 LPDWORD lpdwRenderState)
297 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
298 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, dwRenderStateType, lpdwRenderState);
303 Main_IDirect3DDeviceImpl_7_BeginStateBlock(LPDIRECT3DDEVICE7 iface)
305 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
306 FIXME("(%p/%p)->(): stub!\n", This, iface);
311 Main_IDirect3DDeviceImpl_7_EndStateBlock(LPDIRECT3DDEVICE7 iface,
312 LPDWORD lpdwBlockHandle)
314 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
315 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpdwBlockHandle);
320 Main_IDirect3DDeviceImpl_7_PreLoad(LPDIRECT3DDEVICE7 iface,
321 LPDIRECTDRAWSURFACE7 lpddsTexture)
323 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
324 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpddsTexture);
329 Main_IDirect3DDeviceImpl_7_3T_DrawPrimitive(LPDIRECT3DDEVICE7 iface,
330 D3DPRIMITIVETYPE d3dptPrimitiveType,
331 DWORD d3dvtVertexType,
336 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
337 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwFlags);
342 Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitive(LPDIRECT3DDEVICE7 iface,
343 D3DPRIMITIVETYPE d3dptPrimitiveType,
344 DWORD d3dvtVertexType,
351 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
352 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwIndices, dwIndexCount, dwFlags);
357 Main_IDirect3DDeviceImpl_7_3T_2T_SetClipStatus(LPDIRECT3DDEVICE7 iface,
358 LPD3DCLIPSTATUS lpD3DClipStatus)
360 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
361 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpD3DClipStatus);
366 Main_IDirect3DDeviceImpl_7_3T_2T_GetClipStatus(LPDIRECT3DDEVICE7 iface,
367 LPD3DCLIPSTATUS lpD3DClipStatus)
369 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
370 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpD3DClipStatus);
375 Main_IDirect3DDeviceImpl_7_3T_DrawPrimitiveStrided(LPDIRECT3DDEVICE7 iface,
376 D3DPRIMITIVETYPE d3dptPrimitiveType,
378 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
382 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
383 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, dwVertexType, lpD3DDrawPrimStrideData, dwVertexCount, dwFlags);
388 Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitiveStrided(LPDIRECT3DDEVICE7 iface,
389 D3DPRIMITIVETYPE d3dptPrimitiveType,
391 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
397 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
398 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, dwVertexType, lpD3DDrawPrimStrideData, dwVertexCount, lpIndex, dwIndexCount, dwFlags);
403 Main_IDirect3DDeviceImpl_7_DrawPrimitiveVB(LPDIRECT3DDEVICE7 iface,
404 D3DPRIMITIVETYPE d3dptPrimitiveType,
405 LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf,
410 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
411 FIXME("(%p/%p)->(%08x,%p,%08lx,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, lpD3DVertexBuf, dwStartVertex, dwNumVertices, dwFlags);
416 Main_IDirect3DDeviceImpl_7_DrawIndexedPrimitiveVB(LPDIRECT3DDEVICE7 iface,
417 D3DPRIMITIVETYPE d3dptPrimitiveType,
418 LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf,
425 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
426 FIXME("(%p/%p)->(%08x,%p,%08lx,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, lpD3DVertexBuf, dwStartVertex, dwNumVertices, lpwIndices, dwIndexCount, dwFlags);
431 Main_IDirect3DDeviceImpl_7_3T_ComputeSphereVisibility(LPDIRECT3DDEVICE7 iface,
432 LPD3DVECTOR lpCenters,
436 LPDWORD lpdwReturnValues)
438 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
439 FIXME("(%p/%p)->(%p,%p,%08lx,%08lx,%p): stub!\n", This, iface, lpCenters, lpRadii, dwNumSpheres, dwFlags, lpdwReturnValues);
444 Main_IDirect3DDeviceImpl_7_GetTexture(LPDIRECT3DDEVICE7 iface,
446 LPDIRECTDRAWSURFACE7* lpTexture)
448 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
449 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwStage, lpTexture);
454 Main_IDirect3DDeviceImpl_7_SetTexture(LPDIRECT3DDEVICE7 iface,
456 LPDIRECTDRAWSURFACE7 lpTexture)
458 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
459 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwStage, lpTexture);
464 Main_IDirect3DDeviceImpl_7_3T_GetTextureStageState(LPDIRECT3DDEVICE7 iface,
466 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
469 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
470 FIXME("(%p/%p)->(%08lx,%08x,%p): stub!\n", This, iface, dwStage, d3dTexStageStateType, lpdwState);
475 Main_IDirect3DDeviceImpl_7_3T_SetTextureStageState(LPDIRECT3DDEVICE7 iface,
477 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
480 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
481 FIXME("(%p/%p)->(%08lx,%08x,%08lx): stub!\n", This, iface, dwStage, d3dTexStageStateType, dwState);
486 Main_IDirect3DDeviceImpl_7_3T_ValidateDevice(LPDIRECT3DDEVICE7 iface,
489 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
490 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpdwPasses);
495 Main_IDirect3DDeviceImpl_7_ApplyStateBlock(LPDIRECT3DDEVICE7 iface,
498 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
499 FIXME("(%p/%p)->(%08lx): stub!\n", This, iface, dwBlockHandle);
504 Main_IDirect3DDeviceImpl_7_CaptureStateBlock(LPDIRECT3DDEVICE7 iface,
507 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
508 FIXME("(%p/%p)->(%08lx): stub!\n", This, iface, dwBlockHandle);
513 Main_IDirect3DDeviceImpl_7_DeleteStateBlock(LPDIRECT3DDEVICE7 iface,
516 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
517 FIXME("(%p/%p)->(%08lx): stub!\n", This, iface, dwBlockHandle);
522 Main_IDirect3DDeviceImpl_7_CreateStateBlock(LPDIRECT3DDEVICE7 iface,
523 D3DSTATEBLOCKTYPE d3dsbType,
524 LPDWORD lpdwBlockHandle)
526 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
527 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, d3dsbType, lpdwBlockHandle);
532 Main_IDirect3DDeviceImpl_7_Load(LPDIRECT3DDEVICE7 iface,
533 LPDIRECTDRAWSURFACE7 lpDestTex,
535 LPDIRECTDRAWSURFACE7 lpSrcTex,
539 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
540 FIXME("(%p/%p)->(%p,%p,%p,%p,%08lx): stub!\n", This, iface, lpDestTex, lpDestPoint, lpSrcTex, lprcSrcRect, dwFlags);
545 Main_IDirect3DDeviceImpl_7_LightEnable(LPDIRECT3DDEVICE7 iface,
549 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
550 FIXME("(%p/%p)->(%08lx,%d): stub!\n", This, iface, dwLightIndex, bEnable);
555 Main_IDirect3DDeviceImpl_7_GetLightEnable(LPDIRECT3DDEVICE7 iface,
559 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
560 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwLightIndex, pbEnable);
565 Main_IDirect3DDeviceImpl_7_SetClipPlane(LPDIRECT3DDEVICE7 iface,
567 D3DVALUE* pPlaneEquation)
569 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
570 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwIndex, pPlaneEquation);
575 Main_IDirect3DDeviceImpl_7_GetClipPlane(LPDIRECT3DDEVICE7 iface,
577 D3DVALUE* pPlaneEquation)
579 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
580 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwIndex, pPlaneEquation);
585 Main_IDirect3DDeviceImpl_7_GetInfo(LPDIRECT3DDEVICE7 iface,
587 LPVOID pDevInfoStruct,
590 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
591 FIXME("(%p/%p)->(%08lx,%p,%08lx): stub!\n", This, iface, dwDevInfoID, pDevInfoStruct, dwSize);
596 Main_IDirect3DDeviceImpl_3_2T_1T_GetCaps(LPDIRECT3DDEVICE3 iface,
597 LPD3DDEVICEDESC lpD3DHWDevDesc,
598 LPD3DDEVICEDESC lpD3DHELDevDesc)
600 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
601 FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3DHWDevDesc, lpD3DHELDevDesc);
606 Main_IDirect3DDeviceImpl_3_2T_1T_GetStats(LPDIRECT3DDEVICE3 iface,
607 LPD3DSTATS lpD3DStats)
609 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
610 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpD3DStats);
615 Main_IDirect3DDeviceImpl_3_2T_1T_AddViewport(LPDIRECT3DDEVICE3 iface,
616 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3)
618 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
619 IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3);
621 TRACE("(%p/%p)->(%p)\n", This, iface, lpDirect3DViewport3);
623 lpDirect3DViewportImpl->next = This->viewport_list;
624 This->viewport_list = lpDirect3DViewportImpl;
630 Main_IDirect3DDeviceImpl_3_2T_1T_DeleteViewport(LPDIRECT3DDEVICE3 iface,
631 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3)
633 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
634 IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3);
635 IDirect3DViewportImpl *cur_viewport, *prev_viewport = NULL;
637 TRACE("(%p/%p)->(%p)\n", This, iface, lpDirect3DViewport3);
639 cur_viewport = This->viewport_list;
640 while (cur_viewport != NULL) {
641 if (cur_viewport == lpDirect3DViewportImpl) {
642 if (prev_viewport == NULL) This->viewport_list = cur_viewport->next;
643 else prev_viewport->next = cur_viewport->next;
644 /* TODO : add desactivate of the viewport and all associated lights... */
647 prev_viewport = cur_viewport;
648 cur_viewport = cur_viewport->next;
651 return DDERR_INVALIDPARAMS;
655 Main_IDirect3DDeviceImpl_3_2T_1T_NextViewport(LPDIRECT3DDEVICE3 iface,
656 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3,
657 LPDIRECT3DVIEWPORT3* lplpDirect3DViewport3,
660 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
661 IDirect3DViewportImpl *res = NULL;
663 TRACE("(%p/%p)->(%p,%p,%08lx): stub!\n", This, iface, lpDirect3DViewport3, lplpDirect3DViewport3, dwFlags);
667 IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3);
668 res = lpDirect3DViewportImpl->next;
671 res = This->viewport_list;
674 IDirect3DViewportImpl *cur_viewport = This->viewport_list;
675 if (cur_viewport != NULL) {
676 while (cur_viewport->next != NULL) cur_viewport = cur_viewport->next;
681 *lplpDirect3DViewport3 = NULL;
682 return DDERR_INVALIDPARAMS;
684 *lplpDirect3DViewport3 = ICOM_INTERFACE(res, IDirect3DViewport3);
689 Main_IDirect3DDeviceImpl_3_2T_SetCurrentViewport(LPDIRECT3DDEVICE3 iface,
690 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3)
692 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
693 TRACE("(%p/%p)->(%p)\n", This, iface, lpDirect3DViewport3);
695 /* Should check if the viewport was added or not */
697 /* Set this viewport as the current viewport */
698 This->current_viewport = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3);
700 /* Activate this viewport */
701 This->current_viewport->active_device = This;
702 This->current_viewport->activate(This->current_viewport);
708 Main_IDirect3DDeviceImpl_3_2T_GetCurrentViewport(LPDIRECT3DDEVICE3 iface,
709 LPDIRECT3DVIEWPORT3* lplpDirect3DViewport3)
711 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
712 TRACE("(%p/%p)->(%p)\n", This, iface, lplpDirect3DViewport3);
714 *lplpDirect3DViewport3 = ICOM_INTERFACE(This->current_viewport, IDirect3DViewport3);
715 TRACE(" returning interface %p\n", *lplpDirect3DViewport3);
721 Main_IDirect3DDeviceImpl_3_Begin(LPDIRECT3DDEVICE3 iface,
722 D3DPRIMITIVETYPE d3dptPrimitiveType,
723 DWORD dwVertexTypeDesc,
726 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
727 FIXME("(%p/%p)->(%08x,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, dwVertexTypeDesc, dwFlags);
732 Main_IDirect3DDeviceImpl_3_BeginIndexed(LPDIRECT3DDEVICE3 iface,
733 D3DPRIMITIVETYPE d3dptPrimitiveType,
734 DWORD d3dvtVertexType,
739 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
740 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwNumVertices, dwFlags);
745 Main_IDirect3DDeviceImpl_3_2T_Vertex(LPDIRECT3DDEVICE3 iface,
748 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
749 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpVertexType);
754 Main_IDirect3DDeviceImpl_3_2T_Index(LPDIRECT3DDEVICE3 iface,
757 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
758 FIXME("(%p/%p)->(%04x): stub!\n", This, iface, wVertexIndex);
763 Main_IDirect3DDeviceImpl_3_2T_End(LPDIRECT3DDEVICE3 iface,
766 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
767 FIXME("(%p/%p)->(%08lx): stub!\n", This, iface, dwFlags);
772 Main_IDirect3DDeviceImpl_3_2T_GetLightState(LPDIRECT3DDEVICE3 iface,
773 D3DLIGHTSTATETYPE dwLightStateType,
774 LPDWORD lpdwLightState)
776 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
777 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, dwLightStateType, lpdwLightState);
782 Main_IDirect3DDeviceImpl_3_2T_SetLightState(LPDIRECT3DDEVICE3 iface,
783 D3DLIGHTSTATETYPE dwLightStateType,
786 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
787 FIXME("(%p/%p)->(%08x,%08lx): stub!\n", This, iface, dwLightStateType, dwLightState);
792 Main_IDirect3DDeviceImpl_3_DrawPrimitiveVB(LPDIRECT3DDEVICE3 iface,
793 D3DPRIMITIVETYPE d3dptPrimitiveType,
794 LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf,
799 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
800 FIXME("(%p/%p)->(%08x,%p,%08lx,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, lpD3DVertexBuf, dwStartVertex, dwNumVertices, dwFlags);
805 Main_IDirect3DDeviceImpl_3_DrawIndexedPrimitiveVB(LPDIRECT3DDEVICE3 iface,
806 D3DPRIMITIVETYPE d3dptPrimitiveType,
807 LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf,
812 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
813 FIXME("(%p/%p)->(%08x,%p,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, lpD3DVertexBuf, lpwIndices, dwIndexCount, dwFlags);
818 Main_IDirect3DDeviceImpl_3_GetTexture(LPDIRECT3DDEVICE3 iface,
820 LPDIRECT3DTEXTURE2* lplpTexture2)
822 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
823 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwStage, lplpTexture2);
828 Main_IDirect3DDeviceImpl_3_SetTexture(LPDIRECT3DDEVICE3 iface,
830 LPDIRECT3DTEXTURE2 lpTexture2)
832 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
833 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwStage, lpTexture2);
838 Main_IDirect3DDeviceImpl_2_SwapTextureHandles(LPDIRECT3DDEVICE2 iface,
839 LPDIRECT3DTEXTURE2 lpD3DTex1,
840 LPDIRECT3DTEXTURE2 lpD3DTex2)
842 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
843 FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3DTex1, lpD3DTex2);
848 Main_IDirect3DDeviceImpl_2_NextViewport(LPDIRECT3DDEVICE2 iface,
849 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2,
850 LPDIRECT3DVIEWPORT2* lplpDirect3DViewport2,
853 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
854 FIXME("(%p/%p)->(%p,%p,%08lx): stub!\n", This, iface, lpDirect3DViewport2, lplpDirect3DViewport2, dwFlags);
859 Main_IDirect3DDeviceImpl_2_1T_EnumTextureFormats(LPDIRECT3DDEVICE2 iface,
860 LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc,
863 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
864 FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3DEnumTextureProc, lpArg);
869 Main_IDirect3DDeviceImpl_2_Begin(LPDIRECT3DDEVICE2 iface,
870 D3DPRIMITIVETYPE d3dpt,
871 D3DVERTEXTYPE dwVertexTypeDesc,
874 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
875 FIXME("(%p/%p)->(%08x,%08x,%08lx): stub!\n", This, iface, d3dpt, dwVertexTypeDesc, dwFlags);
880 Main_IDirect3DDeviceImpl_2_BeginIndexed(LPDIRECT3DDEVICE2 iface,
881 D3DPRIMITIVETYPE d3dptPrimitiveType,
882 D3DVERTEXTYPE d3dvtVertexType,
887 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
888 FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwNumVertices, dwFlags);
893 Main_IDirect3DDeviceImpl_2_DrawPrimitive(LPDIRECT3DDEVICE2 iface,
894 D3DPRIMITIVETYPE d3dptPrimitiveType,
895 D3DVERTEXTYPE d3dvtVertexType,
900 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
901 FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwFlags);
906 Main_IDirect3DDeviceImpl_2_DrawIndexedPrimitive(LPDIRECT3DDEVICE2 iface,
907 D3DPRIMITIVETYPE d3dptPrimitiveType,
908 D3DVERTEXTYPE d3dvtVertexType,
915 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
916 FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwIndices, dwIndexCount, dwFlags);
921 Main_IDirect3DDeviceImpl_1_Initialize(LPDIRECT3DDEVICE iface,
922 LPDIRECT3D lpDirect3D,
924 LPD3DDEVICEDESC lpD3DDVDesc)
926 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
927 FIXME("(%p/%p)->(%p,%p,%p): stub!\n", This, iface, lpDirect3D, lpGUID, lpD3DDVDesc);
932 Main_IDirect3DDeviceImpl_1_SwapTextureHandles(LPDIRECT3DDEVICE iface,
933 LPDIRECT3DTEXTURE lpD3Dtex1,
934 LPDIRECT3DTEXTURE lpD3DTex2)
936 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
937 FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3Dtex1, lpD3DTex2);
942 Main_IDirect3DDeviceImpl_1_CreateExecuteBuffer(LPDIRECT3DDEVICE iface,
943 LPD3DEXECUTEBUFFERDESC lpDesc,
944 LPDIRECT3DEXECUTEBUFFER* lplpDirect3DExecuteBuffer,
947 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
948 FIXME("(%p/%p)->(%p,%p,%p): stub!\n", This, iface, lpDesc, lplpDirect3DExecuteBuffer, pUnkOuter);
953 Main_IDirect3DDeviceImpl_1_Execute(LPDIRECT3DDEVICE iface,
954 LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer,
955 LPDIRECT3DVIEWPORT lpDirect3DViewport,
958 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
959 IDirect3DExecuteBufferImpl *lpDirect3DExecuteBufferImpl = ICOM_OBJECT(IDirect3DExecuteBufferImpl, IDirect3DExecuteBuffer, lpDirect3DExecuteBuffer);
960 IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport);
962 TRACE("(%p/%p)->(%p,%p,%08lx)\n", This, iface, lpDirect3DExecuteBuffer, lpDirect3DViewport, dwFlags);
964 /* Put this as the default context */
967 lpDirect3DExecuteBufferImpl->execute(lpDirect3DExecuteBufferImpl, This, lpDirect3DViewportImpl);
973 Main_IDirect3DDeviceImpl_1_NextViewport(LPDIRECT3DDEVICE iface,
974 LPDIRECT3DVIEWPORT lpDirect3DViewport,
975 LPDIRECT3DVIEWPORT* lplpDirect3DViewport,
978 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
979 FIXME("(%p/%p)->(%p,%p,%08lx): stub!\n", This, iface, lpDirect3DViewport, lplpDirect3DViewport, dwFlags);
984 Main_IDirect3DDeviceImpl_1_Pick(LPDIRECT3DDEVICE iface,
985 LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer,
986 LPDIRECT3DVIEWPORT lpDirect3DViewport,
990 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
991 FIXME("(%p/%p)->(%p,%p,%08lx,%p): stub!\n", This, iface, lpDirect3DExecuteBuffer, lpDirect3DViewport, dwFlags, lpRect);
996 Main_IDirect3DDeviceImpl_1_GetPickRecords(LPDIRECT3DDEVICE iface,
998 LPD3DPICKRECORD lpD3DPickRec)
1000 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1001 FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpCount, lpD3DPickRec);
1006 Main_IDirect3DDeviceImpl_1_CreateMatrix(LPDIRECT3DDEVICE iface,
1007 LPD3DMATRIXHANDLE lpD3DMatHandle)
1009 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1010 TRACE("(%p/%p)->(%p)\n", This, iface, lpD3DMatHandle);
1012 *lpD3DMatHandle = (D3DMATRIXHANDLE) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(D3DMATRIX));
1013 TRACE(" returning matrix handle %p\n", (void *) *lpD3DMatHandle);
1019 Main_IDirect3DDeviceImpl_1_SetMatrix(LPDIRECT3DDEVICE iface,
1020 D3DMATRIXHANDLE D3DMatHandle,
1021 LPD3DMATRIX lpD3DMatrix)
1023 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1024 TRACE("(%p/%p)->(%08lx,%p)\n", This, iface, (DWORD) D3DMatHandle, lpD3DMatrix);
1026 dump_mat(lpD3DMatrix);
1027 *((D3DMATRIX *) D3DMatHandle) = *lpD3DMatrix;
1033 Main_IDirect3DDeviceImpl_1_GetMatrix(LPDIRECT3DDEVICE iface,
1034 D3DMATRIXHANDLE D3DMatHandle,
1035 LPD3DMATRIX lpD3DMatrix)
1037 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1038 TRACE("(%p/%p)->(%08lx,%p)\n", This, iface, (DWORD) D3DMatHandle, lpD3DMatrix);
1040 *lpD3DMatrix = *((D3DMATRIX *) D3DMatHandle);
1046 Main_IDirect3DDeviceImpl_1_DeleteMatrix(LPDIRECT3DDEVICE iface,
1047 D3DMATRIXHANDLE D3DMatHandle)
1049 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1050 TRACE("(%p/%p)->(%08lx)\n", This, iface, (DWORD) D3DMatHandle);
1052 HeapFree(GetProcessHeap(), 0, (void *) D3DMatHandle);
1058 Thunk_IDirect3DDeviceImpl_3_QueryInterface(LPDIRECT3DDEVICE3 iface,
1062 TRACE("(%p)->(%s,%p) thunking to IDirect3DDevice7 interface.\n", iface, debugstr_guid(riid), obp);
1063 return IDirect3DDevice7_QueryInterface(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1069 Thunk_IDirect3DDeviceImpl_2_QueryInterface(LPDIRECT3DDEVICE2 iface,
1073 TRACE("(%p)->(%s,%p) thunking to IDirect3DDevice7 interface.\n", iface, debugstr_guid(riid), obp);
1074 return IDirect3DDevice7_QueryInterface(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1080 Thunk_IDirect3DDeviceImpl_1_QueryInterface(LPDIRECT3DDEVICE iface,
1084 TRACE("(%p)->(%s,%p) thunking to IDirect3DDevice7 interface.\n", iface, debugstr_guid(riid), obp);
1085 return IDirect3DDevice7_QueryInterface(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface),
1091 Thunk_IDirect3DDeviceImpl_3_AddRef(LPDIRECT3DDEVICE3 iface)
1093 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1094 return IDirect3DDevice7_AddRef(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface));
1098 Thunk_IDirect3DDeviceImpl_2_AddRef(LPDIRECT3DDEVICE2 iface)
1100 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1101 return IDirect3DDevice7_AddRef(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface));
1105 Thunk_IDirect3DDeviceImpl_1_AddRef(LPDIRECT3DDEVICE iface)
1107 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1108 return IDirect3DDevice7_AddRef(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface));
1112 Thunk_IDirect3DDeviceImpl_3_Release(LPDIRECT3DDEVICE3 iface)
1114 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1115 return IDirect3DDevice7_Release(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface));
1119 Thunk_IDirect3DDeviceImpl_2_Release(LPDIRECT3DDEVICE2 iface)
1121 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1122 return IDirect3DDevice7_Release(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface));
1126 Thunk_IDirect3DDeviceImpl_1_Release(LPDIRECT3DDEVICE iface)
1128 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1129 return IDirect3DDevice7_Release(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface));
1133 Thunk_IDirect3DDeviceImpl_2_AddViewport(LPDIRECT3DDEVICE2 iface,
1134 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2)
1136 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport2);
1137 return IDirect3DDevice3_AddViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1138 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */);
1142 Thunk_IDirect3DDeviceImpl_1_AddViewport(LPDIRECT3DDEVICE iface,
1143 LPDIRECT3DVIEWPORT lpDirect3DViewport)
1145 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport);
1146 return IDirect3DDevice3_AddViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1147 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport /* No need to cast here as all interfaces are equivalent */);
1151 Thunk_IDirect3DDeviceImpl_2_DeleteViewport(LPDIRECT3DDEVICE2 iface,
1152 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2)
1154 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport2);
1155 return IDirect3DDevice3_DeleteViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1156 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */);
1160 Thunk_IDirect3DDeviceImpl_1_DeleteViewport(LPDIRECT3DDEVICE iface,
1161 LPDIRECT3DVIEWPORT lpDirect3DViewport)
1163 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport);
1164 return IDirect3DDevice3_DeleteViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1165 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport /* No need to cast here as all interfaces are equivalent */);
1169 Thunk_IDirect3DDeviceImpl_2_NextViewport(LPDIRECT3DDEVICE3 iface,
1170 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2,
1171 LPDIRECT3DVIEWPORT2* lplpDirect3DViewport2,
1174 TRACE("(%p)->(%p,%p,%08lx) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport2, lplpDirect3DViewport2, dwFlags);
1175 return IDirect3DDevice3_NextViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1176 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */,
1177 (LPDIRECT3DVIEWPORT3*) lplpDirect3DViewport2,
1182 Thunk_IDirect3DDeviceImpl_1_NextViewport(LPDIRECT3DDEVICE3 iface,
1183 LPDIRECT3DVIEWPORT lpDirect3DViewport,
1184 LPDIRECT3DVIEWPORT* lplpDirect3DViewport,
1187 TRACE("(%p)->(%p,%p,%08lx) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport, lplpDirect3DViewport, dwFlags);
1188 return IDirect3DDevice3_NextViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1189 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport /* No need to cast here as all interfaces are equivalent */,
1190 (LPDIRECT3DVIEWPORT3*) lplpDirect3DViewport,
1195 Thunk_IDirect3DDeviceImpl_3_GetDirect3D(LPDIRECT3DDEVICE3 iface,
1196 LPDIRECT3D3* lplpDirect3D3)
1199 LPDIRECT3D7 ret_ptr;
1201 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpDirect3D3);
1202 ret = IDirect3DDevice7_GetDirect3D(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1204 *lplpDirect3D3 = COM_INTERFACE_CAST(IDirect3DImpl, IDirect3D7, IDirect3D3, ret_ptr);
1205 TRACE(" returning interface %p\n", *lplpDirect3D3);
1210 Thunk_IDirect3DDeviceImpl_2_GetDirect3D(LPDIRECT3DDEVICE2 iface,
1211 LPDIRECT3D2* lplpDirect3D2)
1214 LPDIRECT3D7 ret_ptr;
1216 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpDirect3D2);
1217 ret = IDirect3DDevice7_GetDirect3D(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1219 *lplpDirect3D2 = COM_INTERFACE_CAST(IDirect3DImpl, IDirect3D7, IDirect3D2, ret_ptr);
1220 TRACE(" returning interface %p\n", *lplpDirect3D2);
1225 Thunk_IDirect3DDeviceImpl_1_GetDirect3D(LPDIRECT3DDEVICE iface,
1226 LPDIRECT3D* lplpDirect3D)
1229 LPDIRECT3D7 ret_ptr;
1231 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpDirect3D);
1232 ret = IDirect3DDevice7_GetDirect3D(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface),
1234 *lplpDirect3D = COM_INTERFACE_CAST(IDirect3DImpl, IDirect3D7, IDirect3D, ret_ptr);
1235 TRACE(" returning interface %p\n", *lplpDirect3D);
1240 Thunk_IDirect3DDeviceImpl_2_SetCurrentViewport(LPDIRECT3DDEVICE2 iface,
1241 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2)
1243 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport2);
1244 return IDirect3DDevice3_SetCurrentViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1245 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */);
1249 Thunk_IDirect3DDeviceImpl_2_GetCurrentViewport(LPDIRECT3DDEVICE2 iface,
1250 LPDIRECT3DVIEWPORT2* lplpDirect3DViewport2)
1252 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lplpDirect3DViewport2);
1253 return IDirect3DDevice3_GetCurrentViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1254 (LPDIRECT3DVIEWPORT3*) lplpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */);
1258 Thunk_IDirect3DDeviceImpl_3_EnumTextureFormats(LPDIRECT3DDEVICE3 iface,
1259 LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc,
1262 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DEnumPixelProc, lpArg);
1263 return IDirect3DDevice7_EnumTextureFormats(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1269 Thunk_IDirect3DDeviceImpl_3_BeginScene(LPDIRECT3DDEVICE3 iface)
1271 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1272 return IDirect3DDevice7_BeginScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface));
1276 Thunk_IDirect3DDeviceImpl_2_BeginScene(LPDIRECT3DDEVICE2 iface)
1278 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1279 return IDirect3DDevice7_BeginScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface));
1283 Thunk_IDirect3DDeviceImpl_1_BeginScene(LPDIRECT3DDEVICE iface)
1285 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1286 return IDirect3DDevice7_BeginScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface));
1290 Thunk_IDirect3DDeviceImpl_3_EndScene(LPDIRECT3DDEVICE3 iface)
1292 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1293 return IDirect3DDevice7_EndScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface));
1297 Thunk_IDirect3DDeviceImpl_2_EndScene(LPDIRECT3DDEVICE2 iface)
1299 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1300 return IDirect3DDevice7_EndScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface));
1304 Thunk_IDirect3DDeviceImpl_1_EndScene(LPDIRECT3DDEVICE iface)
1306 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1307 return IDirect3DDevice7_EndScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface));
1311 Thunk_IDirect3DDeviceImpl_3_SetTransform(LPDIRECT3DDEVICE3 iface,
1312 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1313 LPD3DMATRIX lpD3DMatrix)
1315 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1316 return IDirect3DDevice7_SetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1317 dtstTransformStateType,
1322 Thunk_IDirect3DDeviceImpl_2_SetTransform(LPDIRECT3DDEVICE2 iface,
1323 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1324 LPD3DMATRIX lpD3DMatrix)
1326 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1327 return IDirect3DDevice7_SetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1328 dtstTransformStateType,
1333 Thunk_IDirect3DDeviceImpl_3_GetTransform(LPDIRECT3DDEVICE3 iface,
1334 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1335 LPD3DMATRIX lpD3DMatrix)
1337 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1338 return IDirect3DDevice7_GetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1339 dtstTransformStateType,
1344 Thunk_IDirect3DDeviceImpl_2_GetTransform(LPDIRECT3DDEVICE2 iface,
1345 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1346 LPD3DMATRIX lpD3DMatrix)
1348 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1349 return IDirect3DDevice7_GetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1350 dtstTransformStateType,
1355 Thunk_IDirect3DDeviceImpl_3_MultiplyTransform(LPDIRECT3DDEVICE3 iface,
1356 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1357 LPD3DMATRIX lpD3DMatrix)
1359 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1360 return IDirect3DDevice7_MultiplyTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1361 dtstTransformStateType,
1366 Thunk_IDirect3DDeviceImpl_2_MultiplyTransform(LPDIRECT3DDEVICE2 iface,
1367 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1368 LPD3DMATRIX lpD3DMatrix)
1370 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1371 return IDirect3DDevice7_MultiplyTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1372 dtstTransformStateType,
1377 Thunk_IDirect3DDeviceImpl_3_SetRenderState(LPDIRECT3DDEVICE3 iface,
1378 D3DRENDERSTATETYPE dwRenderStateType,
1379 DWORD dwRenderState)
1381 TRACE("(%p)->(%08x,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, dwRenderStateType, dwRenderState);
1382 return IDirect3DDevice7_SetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1388 Thunk_IDirect3DDeviceImpl_2_SetRenderState(LPDIRECT3DDEVICE2 iface,
1389 D3DRENDERSTATETYPE dwRenderStateType,
1390 DWORD dwRenderState)
1392 TRACE("(%p)->(%08x,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, dwRenderStateType, dwRenderState);
1393 return IDirect3DDevice7_SetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1399 Thunk_IDirect3DDeviceImpl_3_GetRenderState(LPDIRECT3DDEVICE3 iface,
1400 D3DRENDERSTATETYPE dwRenderStateType,
1401 LPDWORD lpdwRenderState)
1403 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dwRenderStateType, lpdwRenderState);
1404 return IDirect3DDevice7_GetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1410 Thunk_IDirect3DDeviceImpl_2_GetRenderState(LPDIRECT3DDEVICE2 iface,
1411 D3DRENDERSTATETYPE dwRenderStateType,
1412 LPDWORD lpdwRenderState)
1414 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dwRenderStateType, lpdwRenderState);
1415 return IDirect3DDevice7_GetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1421 Thunk_IDirect3DDeviceImpl_3_DrawPrimitive(LPDIRECT3DDEVICE3 iface,
1422 D3DPRIMITIVETYPE d3dptPrimitiveType,
1423 DWORD d3dvtVertexType,
1425 DWORD dwVertexCount,
1428 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwFlags);
1429 return IDirect3DDevice7_DrawPrimitive(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1438 Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitive(LPDIRECT3DDEVICE3 iface,
1439 D3DPRIMITIVETYPE d3dptPrimitiveType,
1440 DWORD d3dvtVertexType,
1442 DWORD dwVertexCount,
1447 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwIndices, dwIndexCount, dwFlags);
1448 return IDirect3DDevice7_DrawIndexedPrimitive(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1459 Thunk_IDirect3DDeviceImpl_3_SetClipStatus(LPDIRECT3DDEVICE3 iface,
1460 LPD3DCLIPSTATUS lpD3DClipStatus)
1462 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DClipStatus);
1463 return IDirect3DDevice7_SetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1468 Thunk_IDirect3DDeviceImpl_2_SetClipStatus(LPDIRECT3DDEVICE2 iface,
1469 LPD3DCLIPSTATUS lpD3DClipStatus)
1471 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DClipStatus);
1472 return IDirect3DDevice7_SetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1477 Thunk_IDirect3DDeviceImpl_3_GetClipStatus(LPDIRECT3DDEVICE3 iface,
1478 LPD3DCLIPSTATUS lpD3DClipStatus)
1480 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DClipStatus);
1481 return IDirect3DDevice7_GetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1486 Thunk_IDirect3DDeviceImpl_2_GetClipStatus(LPDIRECT3DDEVICE2 iface,
1487 LPD3DCLIPSTATUS lpD3DClipStatus)
1489 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DClipStatus);
1490 return IDirect3DDevice7_GetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1495 Thunk_IDirect3DDeviceImpl_3_DrawPrimitiveStrided(LPDIRECT3DDEVICE3 iface,
1496 D3DPRIMITIVETYPE d3dptPrimitiveType,
1498 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
1499 DWORD dwVertexCount,
1502 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, d3dptPrimitiveType, dwVertexType, lpD3DDrawPrimStrideData, dwVertexCount, dwFlags);
1503 return IDirect3DDevice7_DrawPrimitiveStrided(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1506 lpD3DDrawPrimStrideData,
1512 Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitiveStrided(LPDIRECT3DDEVICE3 iface,
1513 D3DPRIMITIVETYPE d3dptPrimitiveType,
1515 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
1516 DWORD dwVertexCount,
1521 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, d3dptPrimitiveType, dwVertexType, lpD3DDrawPrimStrideData, dwVertexCount, lpIndex, dwIndexCount, dwFlags);
1522 return IDirect3DDevice7_DrawIndexedPrimitiveStrided(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1525 lpD3DDrawPrimStrideData,
1533 Thunk_IDirect3DDeviceImpl_3_ComputeSphereVisibility(LPDIRECT3DDEVICE3 iface,
1534 LPD3DVECTOR lpCenters,
1538 LPDWORD lpdwReturnValues)
1540 TRACE("(%p)->(%p,%p,%08lx,%08lx,%p) thunking to IDirect3DDevice7 interface.\n", iface, lpCenters, lpRadii, dwNumSpheres, dwFlags, lpdwReturnValues);
1541 return IDirect3DDevice7_ComputeSphereVisibility(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1550 Thunk_IDirect3DDeviceImpl_3_GetTextureStageState(LPDIRECT3DDEVICE3 iface,
1552 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
1555 TRACE("(%p)->(%08lx,%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dwStage, d3dTexStageStateType, lpdwState);
1556 return IDirect3DDevice7_GetTextureStageState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1558 d3dTexStageStateType,
1563 Thunk_IDirect3DDeviceImpl_3_SetTextureStageState(LPDIRECT3DDEVICE3 iface,
1565 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
1568 TRACE("(%p)->(%08lx,%08x,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, dwStage, d3dTexStageStateType, dwState);
1569 return IDirect3DDevice7_SetTextureStageState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1571 d3dTexStageStateType,
1576 Thunk_IDirect3DDeviceImpl_3_ValidateDevice(LPDIRECT3DDEVICE3 iface,
1579 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpdwPasses);
1580 return IDirect3DDevice7_ValidateDevice(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1585 Thunk_IDirect3DDeviceImpl_2_GetCaps(LPDIRECT3DDEVICE2 iface,
1586 LPD3DDEVICEDESC lpD3DHWDevDesc,
1587 LPD3DDEVICEDESC lpD3DHELDevDesc)
1589 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice3 interface.\n", iface, lpD3DHWDevDesc, lpD3DHELDevDesc);
1590 return IDirect3DDevice3_GetCaps(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1596 Thunk_IDirect3DDeviceImpl_1_GetCaps(LPDIRECT3DDEVICE iface,
1597 LPD3DDEVICEDESC lpD3DHWDevDesc,
1598 LPD3DDEVICEDESC lpD3DHELDevDesc)
1600 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice3 interface.\n", iface, lpD3DHWDevDesc, lpD3DHELDevDesc);
1601 return IDirect3DDevice3_GetCaps(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1607 Thunk_IDirect3DDeviceImpl_2_GetStats(LPDIRECT3DDEVICE2 iface,
1608 LPD3DSTATS lpD3DStats)
1610 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpD3DStats);
1611 return IDirect3DDevice3_GetStats(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1616 Thunk_IDirect3DDeviceImpl_1_GetStats(LPDIRECT3DDEVICE iface,
1617 LPD3DSTATS lpD3DStats)
1619 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpD3DStats);
1620 return IDirect3DDevice3_GetStats(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1625 Thunk_IDirect3DDeviceImpl_3_SetRenderTarget(LPDIRECT3DDEVICE3 iface,
1626 LPDIRECTDRAWSURFACE4 lpNewRenderTarget,
1629 TRACE("(%p)->(%p,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, lpNewRenderTarget, dwFlags);
1630 return IDirect3DDevice7_SetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1631 (LPDIRECTDRAWSURFACE7) lpNewRenderTarget /* No cast needed as DSurf4 == DSurf7 */,
1636 Thunk_IDirect3DDeviceImpl_3_GetRenderTarget(LPDIRECT3DDEVICE3 iface,
1637 LPDIRECTDRAWSURFACE4* lplpRenderTarget)
1639 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpRenderTarget);
1640 return IDirect3DDevice7_GetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1641 (LPDIRECTDRAWSURFACE7*) lplpRenderTarget /* No cast needed as DSurf4 == DSurf7 */);
1645 Thunk_IDirect3DDeviceImpl_2_SetRenderTarget(LPDIRECT3DDEVICE2 iface,
1646 LPDIRECTDRAWSURFACE lpNewRenderTarget,
1649 TRACE("(%p)->(%p,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, lpNewRenderTarget, dwFlags);
1650 return IDirect3DDevice7_SetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1651 COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface3, IDirectDrawSurface7, lpNewRenderTarget),
1656 Thunk_IDirect3DDeviceImpl_2_GetRenderTarget(LPDIRECT3DDEVICE2 iface,
1657 LPDIRECTDRAWSURFACE* lplpRenderTarget)
1660 LPDIRECTDRAWSURFACE7 ret_val;
1662 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpRenderTarget);
1663 ret = IDirect3DDevice7_GetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1665 *lplpRenderTarget = (LPDIRECTDRAWSURFACE) COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface7, IDirectDrawSurface3, ret_val);
1666 TRACE(" returning interface %p\n", *lplpRenderTarget);
1671 Thunk_IDirect3DDeviceImpl_2_Vertex(LPDIRECT3DDEVICE2 iface,
1672 LPVOID lpVertexType)
1674 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpVertexType);
1675 return IDirect3DDevice3_Vertex(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1680 Thunk_IDirect3DDeviceImpl_2_Index(LPDIRECT3DDEVICE2 iface,
1683 TRACE("(%p)->(%04x) thunking to IDirect3DDevice3 interface.\n", iface, wVertexIndex);
1684 return IDirect3DDevice3_Index(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1689 Thunk_IDirect3DDeviceImpl_2_End(LPDIRECT3DDEVICE2 iface,
1692 TRACE("(%p)->(%08lx) thunking to IDirect3DDevice3 interface.\n", iface, dwFlags);
1693 return IDirect3DDevice3_End(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1698 Thunk_IDirect3DDeviceImpl_2_GetLightState(LPDIRECT3DDEVICE2 iface,
1699 D3DLIGHTSTATETYPE dwLightStateType,
1700 LPDWORD lpdwLightState)
1702 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice3 interface.\n", iface, dwLightStateType, lpdwLightState);
1703 return IDirect3DDevice3_GetLightState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1709 Thunk_IDirect3DDeviceImpl_2_SetLightState(LPDIRECT3DDEVICE2 iface,
1710 D3DLIGHTSTATETYPE dwLightStateType,
1713 TRACE("(%p)->(%08x,%08lx) thunking to IDirect3DDevice3 interface.\n", iface, dwLightStateType, dwLightState);
1714 return IDirect3DDevice3_SetLightState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1720 Thunk_IDirect3DDeviceImpl_1_EnumTextureFormats(LPDIRECT3DDEVICE iface,
1721 LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc,
1724 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice2 interface.\n", iface, lpD3DEnumTextureProc, lpArg);
1725 return IDirect3DDevice2_EnumTextureFormats(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice2, iface),
1726 lpD3DEnumTextureProc,