Added 'emulated' VertexBuffer support.
[wine/multimedia.git] / dlls / ddraw / d3ddevice / main.c
blob9037d9678ceac97f4ee33ada296e3411f2a31d11
1 /* Direct3D Device
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
21 #include "config.h"
23 #include <string.h>
25 #include "windef.h"
26 #include "winerror.h"
27 #include "objbase.h"
28 #include "ddraw.h"
29 #include "d3d.h"
30 #include "wine/debug.h"
32 #include "d3d_private.h"
33 #include "main.h"
35 WINE_DEFAULT_DEBUG_CHANNEL(ddraw);
37 HRESULT WINAPI
38 Main_IDirect3DDeviceImpl_7_3T_2T_1T_QueryInterface(LPDIRECT3DDEVICE7 iface,
39 REFIID riid,
40 LPVOID* obp)
42 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
43 TRACE("(%p/%p)->(%s,%p)\n", This, iface, debugstr_guid(riid), obp);
45 *obp = NULL;
47 if ( IsEqualGUID( &IID_IUnknown, riid ) ) {
48 IDirect3DDevice7_AddRef(ICOM_INTERFACE(This, IDirect3DDevice7));
49 *obp = iface;
50 TRACE(" Creating IUnknown interface at %p.\n", *obp);
51 return S_OK;
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);
57 return S_OK;
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);
63 return S_OK;
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);
69 return S_OK;
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);
75 return S_OK;
77 FIXME("(%p): interface for IID %s NOT found!\n", This, debugstr_guid(riid));
78 return OLE_E_ENUM_NOMORE;
81 ULONG WINAPI
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);
86 return ++(This->ref);
89 ULONG WINAPI
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);
94 if (!--(This->ref)) {
95 int i;
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);
103 return 0;
105 return This->ref;
108 HRESULT WINAPI
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);
114 return DD_OK;
117 HRESULT WINAPI
118 Main_IDirect3DDeviceImpl_7_3T_EnumTextureFormats(LPDIRECT3DDEVICE7 iface,
119 LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc,
120 LPVOID lpArg)
122 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
123 FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3DEnumPixelProc, lpArg);
124 return DD_OK;
127 HRESULT WINAPI
128 Main_IDirect3DDeviceImpl_7_3T_2T_1T_BeginScene(LPDIRECT3DDEVICE7 iface)
130 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
131 TRACE("(%p/%p)->()\n", This, iface);
132 /* Nothing to do */
133 return DD_OK;
136 HRESULT WINAPI
137 Main_IDirect3DDeviceImpl_7_3T_2T_1T_EndScene(LPDIRECT3DDEVICE7 iface)
139 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
140 TRACE("(%p/%p)->()\n", This, iface);
141 /* Nothing to do */
142 return DD_OK;
145 HRESULT WINAPI
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);
156 return DD_OK;
159 HRESULT WINAPI
160 Main_IDirect3DDeviceImpl_7_3T_2T_SetRenderTarget(LPDIRECT3DDEVICE7 iface,
161 LPDIRECTDRAWSURFACE7 lpNewRenderTarget,
162 DWORD dwFlags)
164 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
165 FIXME("(%p/%p)->(%p,%08lx): stub!\n", This, iface, lpNewRenderTarget, dwFlags);
166 return DD_OK;
169 HRESULT WINAPI
170 Main_IDirect3DDeviceImpl_7_3T_2T_GetRenderTarget(LPDIRECT3DDEVICE7 iface,
171 LPDIRECTDRAWSURFACE7* lplpRenderTarget)
173 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
174 TRACE("(%p/%p)->(%p)\n", This, iface, lplpRenderTarget);
176 *lplpRenderTarget = ICOM_INTERFACE(This->surface, IDirectDrawSurface7);
177 IDirectDrawSurface7_AddRef(ICOM_INTERFACE(This->surface, IDirectDrawSurface7));
179 TRACE(" returning surface at %p.\n", *lplpRenderTarget);
181 return DD_OK;
184 HRESULT WINAPI
185 Main_IDirect3DDeviceImpl_7_Clear(LPDIRECT3DDEVICE7 iface,
186 DWORD dwCount,
187 LPD3DRECT lpRects,
188 DWORD dwFlags,
189 D3DCOLOR dwColor,
190 D3DVALUE dvZ,
191 DWORD dwStencil)
193 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
194 TRACE("(%p/%p)->(%08lx,%p,%08lx,%08lx,%f,%08lx)\n", This, iface, dwCount, lpRects, dwFlags, (DWORD) dwColor, dvZ, dwStencil);
195 return This->clear(This, dwCount, lpRects, dwFlags, dwColor, dvZ, dwStencil);
198 HRESULT WINAPI
199 Main_IDirect3DDeviceImpl_7_3T_2T_SetTransform(LPDIRECT3DDEVICE7 iface,
200 D3DTRANSFORMSTATETYPE dtstTransformStateType,
201 LPD3DMATRIX lpD3DMatrix)
203 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
204 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, dtstTransformStateType, lpD3DMatrix);
205 return DD_OK;
208 HRESULT WINAPI
209 Main_IDirect3DDeviceImpl_7_3T_2T_GetTransform(LPDIRECT3DDEVICE7 iface,
210 D3DTRANSFORMSTATETYPE dtstTransformStateType,
211 LPD3DMATRIX lpD3DMatrix)
213 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
214 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, dtstTransformStateType, lpD3DMatrix);
215 return DD_OK;
218 HRESULT WINAPI
219 Main_IDirect3DDeviceImpl_7_SetViewport(LPDIRECT3DDEVICE7 iface,
220 LPD3DVIEWPORT7 lpData)
222 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
223 TRACE("(%p/%p)->(%p)\n", This, iface, lpData);
225 if (TRACE_ON(ddraw)) {
226 TRACE(" viewport is : \n");
227 TRACE(" - dwX = %ld dwY = %ld\n",
228 lpData->dwX, lpData->dwY);
229 TRACE(" - dwWidth = %ld dwHeight = %ld\n",
230 lpData->dwWidth, lpData->dwHeight);
231 TRACE(" - dvMinZ = %f dvMaxZ = %f\n",
232 lpData->dvMinZ, lpData->dvMaxZ);
234 This->active_viewport = *lpData;
236 return DD_OK;
239 HRESULT WINAPI
240 Main_IDirect3DDeviceImpl_7_3T_2T_MultiplyTransform(LPDIRECT3DDEVICE7 iface,
241 D3DTRANSFORMSTATETYPE dtstTransformStateType,
242 LPD3DMATRIX lpD3DMatrix)
244 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
245 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, dtstTransformStateType, lpD3DMatrix);
246 return DD_OK;
249 HRESULT WINAPI
250 Main_IDirect3DDeviceImpl_7_GetViewport(LPDIRECT3DDEVICE7 iface,
251 LPD3DVIEWPORT7 lpData)
253 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
254 TRACE("(%p/%p)->(%p)\n", This, iface, lpData);
256 *lpData = This->active_viewport;
258 if (TRACE_ON(ddraw)) {
259 TRACE(" returning viewport : \n");
260 TRACE(" - dwX = %ld dwY = %ld\n",
261 lpData->dwX, lpData->dwY);
262 TRACE(" - dwWidth = %ld dwHeight = %ld\n",
263 lpData->dwWidth, lpData->dwHeight);
264 TRACE(" - dvMinZ = %f dvMaxZ = %f\n",
265 lpData->dvMinZ, lpData->dvMaxZ);
268 return DD_OK;
271 HRESULT WINAPI
272 Main_IDirect3DDeviceImpl_7_SetMaterial(LPDIRECT3DDEVICE7 iface,
273 LPD3DMATERIAL7 lpMat)
275 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
276 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpMat);
277 return DD_OK;
280 HRESULT WINAPI
281 Main_IDirect3DDeviceImpl_7_GetMaterial(LPDIRECT3DDEVICE7 iface,
282 LPD3DMATERIAL7 lpMat)
284 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
285 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpMat);
286 return DD_OK;
289 HRESULT WINAPI
290 Main_IDirect3DDeviceImpl_7_SetLight(LPDIRECT3DDEVICE7 iface,
291 DWORD dwLightIndex,
292 LPD3DLIGHT7 lpLight)
294 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
295 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwLightIndex, lpLight);
296 return DD_OK;
299 HRESULT WINAPI
300 Main_IDirect3DDeviceImpl_7_GetLight(LPDIRECT3DDEVICE7 iface,
301 DWORD dwLightIndex,
302 LPD3DLIGHT7 lpLight)
304 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
305 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwLightIndex, lpLight);
306 return DD_OK;
309 HRESULT WINAPI
310 Main_IDirect3DDeviceImpl_7_3T_2T_SetRenderState(LPDIRECT3DDEVICE7 iface,
311 D3DRENDERSTATETYPE dwRenderStateType,
312 DWORD dwRenderState)
314 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
315 FIXME("(%p/%p)->(%08x,%08lx): stub!\n", This, iface, dwRenderStateType, dwRenderState);
316 return DD_OK;
319 HRESULT WINAPI
320 Main_IDirect3DDeviceImpl_7_3T_2T_GetRenderState(LPDIRECT3DDEVICE7 iface,
321 D3DRENDERSTATETYPE dwRenderStateType,
322 LPDWORD lpdwRenderState)
324 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
325 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, dwRenderStateType, lpdwRenderState);
326 return DD_OK;
329 HRESULT WINAPI
330 Main_IDirect3DDeviceImpl_7_BeginStateBlock(LPDIRECT3DDEVICE7 iface)
332 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
333 FIXME("(%p/%p)->(): stub!\n", This, iface);
334 return DD_OK;
337 HRESULT WINAPI
338 Main_IDirect3DDeviceImpl_7_EndStateBlock(LPDIRECT3DDEVICE7 iface,
339 LPDWORD lpdwBlockHandle)
341 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
342 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpdwBlockHandle);
343 return DD_OK;
346 HRESULT WINAPI
347 Main_IDirect3DDeviceImpl_7_PreLoad(LPDIRECT3DDEVICE7 iface,
348 LPDIRECTDRAWSURFACE7 lpddsTexture)
350 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
351 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpddsTexture);
352 return DD_OK;
355 HRESULT WINAPI
356 Main_IDirect3DDeviceImpl_7_3T_DrawPrimitive(LPDIRECT3DDEVICE7 iface,
357 D3DPRIMITIVETYPE d3dptPrimitiveType,
358 DWORD d3dvtVertexType,
359 LPVOID lpvVertices,
360 DWORD dwVertexCount,
361 DWORD dwFlags)
363 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
364 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwFlags);
365 return DD_OK;
368 HRESULT WINAPI
369 Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitive(LPDIRECT3DDEVICE7 iface,
370 D3DPRIMITIVETYPE d3dptPrimitiveType,
371 DWORD d3dvtVertexType,
372 LPVOID lpvVertices,
373 DWORD dwVertexCount,
374 LPWORD dwIndices,
375 DWORD dwIndexCount,
376 DWORD dwFlags)
378 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
379 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwIndices, dwIndexCount, dwFlags);
380 return DD_OK;
383 HRESULT WINAPI
384 Main_IDirect3DDeviceImpl_7_3T_2T_SetClipStatus(LPDIRECT3DDEVICE7 iface,
385 LPD3DCLIPSTATUS lpD3DClipStatus)
387 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
388 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpD3DClipStatus);
389 return DD_OK;
392 HRESULT WINAPI
393 Main_IDirect3DDeviceImpl_7_3T_2T_GetClipStatus(LPDIRECT3DDEVICE7 iface,
394 LPD3DCLIPSTATUS lpD3DClipStatus)
396 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
397 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpD3DClipStatus);
398 return DD_OK;
401 HRESULT WINAPI
402 Main_IDirect3DDeviceImpl_7_3T_DrawPrimitiveStrided(LPDIRECT3DDEVICE7 iface,
403 D3DPRIMITIVETYPE d3dptPrimitiveType,
404 DWORD dwVertexType,
405 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
406 DWORD dwVertexCount,
407 DWORD dwFlags)
409 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
410 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, dwVertexType, lpD3DDrawPrimStrideData, dwVertexCount, dwFlags);
411 return DD_OK;
414 HRESULT WINAPI
415 Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitiveStrided(LPDIRECT3DDEVICE7 iface,
416 D3DPRIMITIVETYPE d3dptPrimitiveType,
417 DWORD dwVertexType,
418 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
419 DWORD dwVertexCount,
420 LPWORD lpIndex,
421 DWORD dwIndexCount,
422 DWORD dwFlags)
424 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
425 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, dwVertexType, lpD3DDrawPrimStrideData, dwVertexCount, lpIndex, dwIndexCount, dwFlags);
426 return DD_OK;
429 HRESULT WINAPI
430 Main_IDirect3DDeviceImpl_7_3T_DrawPrimitiveVB(LPDIRECT3DDEVICE7 iface,
431 D3DPRIMITIVETYPE d3dptPrimitiveType,
432 LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf,
433 DWORD dwStartVertex,
434 DWORD dwNumVertices,
435 DWORD dwFlags)
437 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
438 FIXME("(%p/%p)->(%08x,%p,%08lx,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, lpD3DVertexBuf, dwStartVertex, dwNumVertices, dwFlags);
439 return DD_OK;
442 HRESULT WINAPI
443 Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitiveVB(LPDIRECT3DDEVICE7 iface,
444 D3DPRIMITIVETYPE d3dptPrimitiveType,
445 LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf,
446 DWORD dwStartVertex,
447 DWORD dwNumVertices,
448 LPWORD lpwIndices,
449 DWORD dwIndexCount,
450 DWORD dwFlags)
452 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
453 FIXME("(%p/%p)->(%08x,%p,%08lx,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, lpD3DVertexBuf, dwStartVertex, dwNumVertices, lpwIndices, dwIndexCount, dwFlags);
454 return DD_OK;
457 HRESULT WINAPI
458 Main_IDirect3DDeviceImpl_7_3T_ComputeSphereVisibility(LPDIRECT3DDEVICE7 iface,
459 LPD3DVECTOR lpCenters,
460 LPD3DVALUE lpRadii,
461 DWORD dwNumSpheres,
462 DWORD dwFlags,
463 LPDWORD lpdwReturnValues)
465 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
466 FIXME("(%p/%p)->(%p,%p,%08lx,%08lx,%p): stub!\n", This, iface, lpCenters, lpRadii, dwNumSpheres, dwFlags, lpdwReturnValues);
467 return DD_OK;
470 HRESULT WINAPI
471 Main_IDirect3DDeviceImpl_7_GetTexture(LPDIRECT3DDEVICE7 iface,
472 DWORD dwStage,
473 LPDIRECTDRAWSURFACE7* lpTexture)
475 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
476 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwStage, lpTexture);
477 return DD_OK;
480 HRESULT WINAPI
481 Main_IDirect3DDeviceImpl_7_3T_SetTexture(LPDIRECT3DDEVICE7 iface,
482 DWORD dwStage,
483 LPDIRECTDRAWSURFACE7 lpTexture)
485 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
486 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwStage, lpTexture);
487 return DD_OK;
490 HRESULT WINAPI
491 Main_IDirect3DDeviceImpl_7_3T_GetTextureStageState(LPDIRECT3DDEVICE7 iface,
492 DWORD dwStage,
493 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
494 LPDWORD lpdwState)
496 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
497 FIXME("(%p/%p)->(%08lx,%08x,%p): stub!\n", This, iface, dwStage, d3dTexStageStateType, lpdwState);
498 return DD_OK;
501 HRESULT WINAPI
502 Main_IDirect3DDeviceImpl_7_3T_SetTextureStageState(LPDIRECT3DDEVICE7 iface,
503 DWORD dwStage,
504 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
505 DWORD dwState)
507 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
508 FIXME("(%p/%p)->(%08lx,%08x,%08lx): stub!\n", This, iface, dwStage, d3dTexStageStateType, dwState);
509 return DD_OK;
512 HRESULT WINAPI
513 Main_IDirect3DDeviceImpl_7_3T_ValidateDevice(LPDIRECT3DDEVICE7 iface,
514 LPDWORD lpdwPasses)
516 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
517 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpdwPasses);
518 return DD_OK;
521 HRESULT WINAPI
522 Main_IDirect3DDeviceImpl_7_ApplyStateBlock(LPDIRECT3DDEVICE7 iface,
523 DWORD dwBlockHandle)
525 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
526 FIXME("(%p/%p)->(%08lx): stub!\n", This, iface, dwBlockHandle);
527 return DD_OK;
530 HRESULT WINAPI
531 Main_IDirect3DDeviceImpl_7_CaptureStateBlock(LPDIRECT3DDEVICE7 iface,
532 DWORD dwBlockHandle)
534 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
535 FIXME("(%p/%p)->(%08lx): stub!\n", This, iface, dwBlockHandle);
536 return DD_OK;
539 HRESULT WINAPI
540 Main_IDirect3DDeviceImpl_7_DeleteStateBlock(LPDIRECT3DDEVICE7 iface,
541 DWORD dwBlockHandle)
543 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
544 FIXME("(%p/%p)->(%08lx): stub!\n", This, iface, dwBlockHandle);
545 return DD_OK;
548 HRESULT WINAPI
549 Main_IDirect3DDeviceImpl_7_CreateStateBlock(LPDIRECT3DDEVICE7 iface,
550 D3DSTATEBLOCKTYPE d3dsbType,
551 LPDWORD lpdwBlockHandle)
553 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
554 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, d3dsbType, lpdwBlockHandle);
555 return DD_OK;
558 HRESULT WINAPI
559 Main_IDirect3DDeviceImpl_7_Load(LPDIRECT3DDEVICE7 iface,
560 LPDIRECTDRAWSURFACE7 lpDestTex,
561 LPPOINT lpDestPoint,
562 LPDIRECTDRAWSURFACE7 lpSrcTex,
563 LPRECT lprcSrcRect,
564 DWORD dwFlags)
566 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
567 FIXME("(%p/%p)->(%p,%p,%p,%p,%08lx): stub!\n", This, iface, lpDestTex, lpDestPoint, lpSrcTex, lprcSrcRect, dwFlags);
568 return DD_OK;
571 HRESULT WINAPI
572 Main_IDirect3DDeviceImpl_7_LightEnable(LPDIRECT3DDEVICE7 iface,
573 DWORD dwLightIndex,
574 BOOL bEnable)
576 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
577 FIXME("(%p/%p)->(%08lx,%d): stub!\n", This, iface, dwLightIndex, bEnable);
578 return DD_OK;
581 HRESULT WINAPI
582 Main_IDirect3DDeviceImpl_7_GetLightEnable(LPDIRECT3DDEVICE7 iface,
583 DWORD dwLightIndex,
584 BOOL* pbEnable)
586 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
587 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwLightIndex, pbEnable);
588 return DD_OK;
591 HRESULT WINAPI
592 Main_IDirect3DDeviceImpl_7_SetClipPlane(LPDIRECT3DDEVICE7 iface,
593 DWORD dwIndex,
594 D3DVALUE* pPlaneEquation)
596 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
597 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwIndex, pPlaneEquation);
598 return DD_OK;
601 HRESULT WINAPI
602 Main_IDirect3DDeviceImpl_7_GetClipPlane(LPDIRECT3DDEVICE7 iface,
603 DWORD dwIndex,
604 D3DVALUE* pPlaneEquation)
606 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
607 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwIndex, pPlaneEquation);
608 return DD_OK;
611 HRESULT WINAPI
612 Main_IDirect3DDeviceImpl_7_GetInfo(LPDIRECT3DDEVICE7 iface,
613 DWORD dwDevInfoID,
614 LPVOID pDevInfoStruct,
615 DWORD dwSize)
617 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
618 FIXME("(%p/%p)->(%08lx,%p,%08lx): stub!\n", This, iface, dwDevInfoID, pDevInfoStruct, dwSize);
619 return DD_OK;
622 HRESULT WINAPI
623 Main_IDirect3DDeviceImpl_3_2T_1T_GetCaps(LPDIRECT3DDEVICE3 iface,
624 LPD3DDEVICEDESC lpD3DHWDevDesc,
625 LPD3DDEVICEDESC lpD3DHELDevDesc)
627 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
628 FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3DHWDevDesc, lpD3DHELDevDesc);
629 return DD_OK;
632 HRESULT WINAPI
633 Main_IDirect3DDeviceImpl_3_2T_1T_GetStats(LPDIRECT3DDEVICE3 iface,
634 LPD3DSTATS lpD3DStats)
636 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
637 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpD3DStats);
638 return DD_OK;
641 HRESULT WINAPI
642 Main_IDirect3DDeviceImpl_3_2T_1T_AddViewport(LPDIRECT3DDEVICE3 iface,
643 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3)
645 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
646 IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3);
648 TRACE("(%p/%p)->(%p)\n", This, iface, lpDirect3DViewport3);
650 lpDirect3DViewportImpl->next = This->viewport_list;
651 This->viewport_list = lpDirect3DViewportImpl;
653 return DD_OK;
656 HRESULT WINAPI
657 Main_IDirect3DDeviceImpl_3_2T_1T_DeleteViewport(LPDIRECT3DDEVICE3 iface,
658 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3)
660 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
661 IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3);
662 IDirect3DViewportImpl *cur_viewport, *prev_viewport = NULL;
664 TRACE("(%p/%p)->(%p)\n", This, iface, lpDirect3DViewport3);
666 cur_viewport = This->viewport_list;
667 while (cur_viewport != NULL) {
668 if (cur_viewport == lpDirect3DViewportImpl) {
669 if (prev_viewport == NULL) This->viewport_list = cur_viewport->next;
670 else prev_viewport->next = cur_viewport->next;
671 /* TODO : add desactivate of the viewport and all associated lights... */
672 return DD_OK;
674 prev_viewport = cur_viewport;
675 cur_viewport = cur_viewport->next;
678 return DDERR_INVALIDPARAMS;
681 HRESULT WINAPI
682 Main_IDirect3DDeviceImpl_3_2T_1T_NextViewport(LPDIRECT3DDEVICE3 iface,
683 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3,
684 LPDIRECT3DVIEWPORT3* lplpDirect3DViewport3,
685 DWORD dwFlags)
687 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
688 IDirect3DViewportImpl *res = NULL;
690 TRACE("(%p/%p)->(%p,%p,%08lx)\n", This, iface, lpDirect3DViewport3, lplpDirect3DViewport3, dwFlags);
692 switch (dwFlags) {
693 case D3DNEXT_NEXT: {
694 IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3);
695 res = lpDirect3DViewportImpl->next;
696 } break;
697 case D3DNEXT_HEAD: {
698 res = This->viewport_list;
699 } break;
700 case D3DNEXT_TAIL: {
701 IDirect3DViewportImpl *cur_viewport = This->viewport_list;
702 if (cur_viewport != NULL) {
703 while (cur_viewport->next != NULL) cur_viewport = cur_viewport->next;
705 res = cur_viewport;
706 } break;
707 default:
708 *lplpDirect3DViewport3 = NULL;
709 return DDERR_INVALIDPARAMS;
711 *lplpDirect3DViewport3 = ICOM_INTERFACE(res, IDirect3DViewport3);
712 return DD_OK;
715 HRESULT WINAPI
716 Main_IDirect3DDeviceImpl_3_2T_SetCurrentViewport(LPDIRECT3DDEVICE3 iface,
717 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3)
719 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
720 TRACE("(%p/%p)->(%p)\n", This, iface, lpDirect3DViewport3);
722 /* Should check if the viewport was added or not */
724 /* Set this viewport as the current viewport */
725 This->current_viewport = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3);
727 /* Activate this viewport */
728 This->current_viewport->active_device = This;
729 This->current_viewport->activate(This->current_viewport);
731 /* And copy the values in the structure used by the device */
732 if (This->current_viewport->use_vp2) {
733 This->active_viewport.dwX = This->current_viewport->viewports.vp2.dwX;
734 This->active_viewport.dwY = This->current_viewport->viewports.vp2.dwY;
735 This->active_viewport.dwHeight = This->current_viewport->viewports.vp2.dwHeight;
736 This->active_viewport.dwWidth = This->current_viewport->viewports.vp2.dwWidth;
737 This->active_viewport.dvMinZ = This->current_viewport->viewports.vp2.dvMinZ;
738 This->active_viewport.dvMaxZ = This->current_viewport->viewports.vp2.dvMaxZ;
739 } else {
740 This->active_viewport.dwX = This->current_viewport->viewports.vp1.dwX;
741 This->active_viewport.dwY = This->current_viewport->viewports.vp1.dwY;
742 This->active_viewport.dwHeight = This->current_viewport->viewports.vp1.dwHeight;
743 This->active_viewport.dwWidth = This->current_viewport->viewports.vp1.dwWidth;
744 This->active_viewport.dvMinZ = This->current_viewport->viewports.vp1.dvMinZ;
745 This->active_viewport.dvMaxZ = This->current_viewport->viewports.vp1.dvMaxZ;
748 return DD_OK;
751 HRESULT WINAPI
752 Main_IDirect3DDeviceImpl_3_2T_GetCurrentViewport(LPDIRECT3DDEVICE3 iface,
753 LPDIRECT3DVIEWPORT3* lplpDirect3DViewport3)
755 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
756 TRACE("(%p/%p)->(%p)\n", This, iface, lplpDirect3DViewport3);
758 *lplpDirect3DViewport3 = ICOM_INTERFACE(This->current_viewport, IDirect3DViewport3);
759 TRACE(" returning interface %p\n", *lplpDirect3DViewport3);
761 return DD_OK;
764 HRESULT WINAPI
765 Main_IDirect3DDeviceImpl_3_Begin(LPDIRECT3DDEVICE3 iface,
766 D3DPRIMITIVETYPE d3dptPrimitiveType,
767 DWORD dwVertexTypeDesc,
768 DWORD dwFlags)
770 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
771 FIXME("(%p/%p)->(%08x,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, dwVertexTypeDesc, dwFlags);
772 return DD_OK;
775 HRESULT WINAPI
776 Main_IDirect3DDeviceImpl_3_BeginIndexed(LPDIRECT3DDEVICE3 iface,
777 D3DPRIMITIVETYPE d3dptPrimitiveType,
778 DWORD d3dvtVertexType,
779 LPVOID lpvVertices,
780 DWORD dwNumVertices,
781 DWORD dwFlags)
783 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
784 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwNumVertices, dwFlags);
785 return DD_OK;
788 HRESULT WINAPI
789 Main_IDirect3DDeviceImpl_3_2T_Vertex(LPDIRECT3DDEVICE3 iface,
790 LPVOID lpVertexType)
792 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
793 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpVertexType);
794 return DD_OK;
797 HRESULT WINAPI
798 Main_IDirect3DDeviceImpl_3_2T_Index(LPDIRECT3DDEVICE3 iface,
799 WORD wVertexIndex)
801 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
802 FIXME("(%p/%p)->(%04x): stub!\n", This, iface, wVertexIndex);
803 return DD_OK;
806 HRESULT WINAPI
807 Main_IDirect3DDeviceImpl_3_2T_End(LPDIRECT3DDEVICE3 iface,
808 DWORD dwFlags)
810 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
811 FIXME("(%p/%p)->(%08lx): stub!\n", This, iface, dwFlags);
812 return DD_OK;
815 HRESULT WINAPI
816 Main_IDirect3DDeviceImpl_3_2T_GetLightState(LPDIRECT3DDEVICE3 iface,
817 D3DLIGHTSTATETYPE dwLightStateType,
818 LPDWORD lpdwLightState)
820 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
821 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, dwLightStateType, lpdwLightState);
822 return DD_OK;
825 HRESULT WINAPI
826 Main_IDirect3DDeviceImpl_3_2T_SetLightState(LPDIRECT3DDEVICE3 iface,
827 D3DLIGHTSTATETYPE dwLightStateType,
828 DWORD dwLightState)
830 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
831 FIXME("(%p/%p)->(%08x,%08lx): stub!\n", This, iface, dwLightStateType, dwLightState);
832 return DD_OK;
835 HRESULT WINAPI
836 Main_IDirect3DDeviceImpl_3_GetTexture(LPDIRECT3DDEVICE3 iface,
837 DWORD dwStage,
838 LPDIRECT3DTEXTURE2* lplpTexture2)
840 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
841 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwStage, lplpTexture2);
842 return DD_OK;
845 HRESULT WINAPI
846 Main_IDirect3DDeviceImpl_2_SwapTextureHandles(LPDIRECT3DDEVICE2 iface,
847 LPDIRECT3DTEXTURE2 lpD3DTex1,
848 LPDIRECT3DTEXTURE2 lpD3DTex2)
850 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
851 FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3DTex1, lpD3DTex2);
852 return DD_OK;
855 HRESULT WINAPI
856 Main_IDirect3DDeviceImpl_2_NextViewport(LPDIRECT3DDEVICE2 iface,
857 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2,
858 LPDIRECT3DVIEWPORT2* lplpDirect3DViewport2,
859 DWORD dwFlags)
861 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
862 FIXME("(%p/%p)->(%p,%p,%08lx): stub!\n", This, iface, lpDirect3DViewport2, lplpDirect3DViewport2, dwFlags);
863 return DD_OK;
866 HRESULT WINAPI
867 Main_IDirect3DDeviceImpl_2_1T_EnumTextureFormats(LPDIRECT3DDEVICE2 iface,
868 LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc,
869 LPVOID lpArg)
871 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
872 FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3DEnumTextureProc, lpArg);
873 return DD_OK;
876 HRESULT WINAPI
877 Main_IDirect3DDeviceImpl_2_Begin(LPDIRECT3DDEVICE2 iface,
878 D3DPRIMITIVETYPE d3dpt,
879 D3DVERTEXTYPE dwVertexTypeDesc,
880 DWORD dwFlags)
882 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
883 FIXME("(%p/%p)->(%08x,%08x,%08lx): stub!\n", This, iface, d3dpt, dwVertexTypeDesc, dwFlags);
884 return DD_OK;
887 HRESULT WINAPI
888 Main_IDirect3DDeviceImpl_2_BeginIndexed(LPDIRECT3DDEVICE2 iface,
889 D3DPRIMITIVETYPE d3dptPrimitiveType,
890 D3DVERTEXTYPE d3dvtVertexType,
891 LPVOID lpvVertices,
892 DWORD dwNumVertices,
893 DWORD dwFlags)
895 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
896 FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwNumVertices, dwFlags);
897 return DD_OK;
900 HRESULT WINAPI
901 Main_IDirect3DDeviceImpl_2_DrawPrimitive(LPDIRECT3DDEVICE2 iface,
902 D3DPRIMITIVETYPE d3dptPrimitiveType,
903 D3DVERTEXTYPE d3dvtVertexType,
904 LPVOID lpvVertices,
905 DWORD dwVertexCount,
906 DWORD dwFlags)
908 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
909 FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwFlags);
910 return DD_OK;
913 HRESULT WINAPI
914 Main_IDirect3DDeviceImpl_2_DrawIndexedPrimitive(LPDIRECT3DDEVICE2 iface,
915 D3DPRIMITIVETYPE d3dptPrimitiveType,
916 D3DVERTEXTYPE d3dvtVertexType,
917 LPVOID lpvVertices,
918 DWORD dwVertexCount,
919 LPWORD dwIndices,
920 DWORD dwIndexCount,
921 DWORD dwFlags)
923 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
924 FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwIndices, dwIndexCount, dwFlags);
925 return DD_OK;
928 HRESULT WINAPI
929 Main_IDirect3DDeviceImpl_1_Initialize(LPDIRECT3DDEVICE iface,
930 LPDIRECT3D lpDirect3D,
931 LPGUID lpGUID,
932 LPD3DDEVICEDESC lpD3DDVDesc)
934 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
935 FIXME("(%p/%p)->(%p,%p,%p): stub!\n", This, iface, lpDirect3D, lpGUID, lpD3DDVDesc);
936 return DD_OK;
939 HRESULT WINAPI
940 Main_IDirect3DDeviceImpl_1_SwapTextureHandles(LPDIRECT3DDEVICE iface,
941 LPDIRECT3DTEXTURE lpD3Dtex1,
942 LPDIRECT3DTEXTURE lpD3DTex2)
944 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
945 FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3Dtex1, lpD3DTex2);
946 return DD_OK;
949 HRESULT WINAPI
950 Main_IDirect3DDeviceImpl_1_CreateExecuteBuffer(LPDIRECT3DDEVICE iface,
951 LPD3DEXECUTEBUFFERDESC lpDesc,
952 LPDIRECT3DEXECUTEBUFFER* lplpDirect3DExecuteBuffer,
953 IUnknown* pUnkOuter)
955 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
956 FIXME("(%p/%p)->(%p,%p,%p): stub!\n", This, iface, lpDesc, lplpDirect3DExecuteBuffer, pUnkOuter);
957 return DD_OK;
960 HRESULT WINAPI
961 Main_IDirect3DDeviceImpl_1_Execute(LPDIRECT3DDEVICE iface,
962 LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer,
963 LPDIRECT3DVIEWPORT lpDirect3DViewport,
964 DWORD dwFlags)
966 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
967 IDirect3DExecuteBufferImpl *lpDirect3DExecuteBufferImpl = ICOM_OBJECT(IDirect3DExecuteBufferImpl, IDirect3DExecuteBuffer, lpDirect3DExecuteBuffer);
968 IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport);
970 TRACE("(%p/%p)->(%p,%p,%08lx)\n", This, iface, lpDirect3DExecuteBuffer, lpDirect3DViewport, dwFlags);
972 /* Put this as the default context */
974 /* Execute... */
975 lpDirect3DExecuteBufferImpl->execute(lpDirect3DExecuteBufferImpl, This, lpDirect3DViewportImpl);
977 return DD_OK;
980 HRESULT WINAPI
981 Main_IDirect3DDeviceImpl_1_NextViewport(LPDIRECT3DDEVICE iface,
982 LPDIRECT3DVIEWPORT lpDirect3DViewport,
983 LPDIRECT3DVIEWPORT* lplpDirect3DViewport,
984 DWORD dwFlags)
986 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
987 FIXME("(%p/%p)->(%p,%p,%08lx): stub!\n", This, iface, lpDirect3DViewport, lplpDirect3DViewport, dwFlags);
988 return DD_OK;
991 HRESULT WINAPI
992 Main_IDirect3DDeviceImpl_1_Pick(LPDIRECT3DDEVICE iface,
993 LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer,
994 LPDIRECT3DVIEWPORT lpDirect3DViewport,
995 DWORD dwFlags,
996 LPD3DRECT lpRect)
998 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
999 FIXME("(%p/%p)->(%p,%p,%08lx,%p): stub!\n", This, iface, lpDirect3DExecuteBuffer, lpDirect3DViewport, dwFlags, lpRect);
1000 return DD_OK;
1003 HRESULT WINAPI
1004 Main_IDirect3DDeviceImpl_1_GetPickRecords(LPDIRECT3DDEVICE iface,
1005 LPDWORD lpCount,
1006 LPD3DPICKRECORD lpD3DPickRec)
1008 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1009 FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpCount, lpD3DPickRec);
1010 return DD_OK;
1013 HRESULT WINAPI
1014 Main_IDirect3DDeviceImpl_1_CreateMatrix(LPDIRECT3DDEVICE iface,
1015 LPD3DMATRIXHANDLE lpD3DMatHandle)
1017 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1018 TRACE("(%p/%p)->(%p)\n", This, iface, lpD3DMatHandle);
1020 *lpD3DMatHandle = (D3DMATRIXHANDLE) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(D3DMATRIX));
1021 TRACE(" returning matrix handle %p\n", (void *) *lpD3DMatHandle);
1023 return DD_OK;
1026 HRESULT WINAPI
1027 Main_IDirect3DDeviceImpl_1_SetMatrix(LPDIRECT3DDEVICE iface,
1028 D3DMATRIXHANDLE D3DMatHandle,
1029 LPD3DMATRIX lpD3DMatrix)
1031 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1032 TRACE("(%p/%p)->(%08lx,%p)\n", This, iface, (DWORD) D3DMatHandle, lpD3DMatrix);
1034 dump_mat(lpD3DMatrix);
1035 *((D3DMATRIX *) D3DMatHandle) = *lpD3DMatrix;
1037 return DD_OK;
1040 HRESULT WINAPI
1041 Main_IDirect3DDeviceImpl_1_GetMatrix(LPDIRECT3DDEVICE iface,
1042 D3DMATRIXHANDLE D3DMatHandle,
1043 LPD3DMATRIX lpD3DMatrix)
1045 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1046 TRACE("(%p/%p)->(%08lx,%p)\n", This, iface, (DWORD) D3DMatHandle, lpD3DMatrix);
1048 *lpD3DMatrix = *((D3DMATRIX *) D3DMatHandle);
1050 return DD_OK;
1053 HRESULT WINAPI
1054 Main_IDirect3DDeviceImpl_1_DeleteMatrix(LPDIRECT3DDEVICE iface,
1055 D3DMATRIXHANDLE D3DMatHandle)
1057 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1058 TRACE("(%p/%p)->(%08lx)\n", This, iface, (DWORD) D3DMatHandle);
1060 HeapFree(GetProcessHeap(), 0, (void *) D3DMatHandle);
1062 return DD_OK;
1065 HRESULT WINAPI
1066 Thunk_IDirect3DDeviceImpl_3_QueryInterface(LPDIRECT3DDEVICE3 iface,
1067 REFIID riid,
1068 LPVOID* obp)
1070 TRACE("(%p)->(%s,%p) thunking to IDirect3DDevice7 interface.\n", iface, debugstr_guid(riid), obp);
1071 return IDirect3DDevice7_QueryInterface(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1072 riid,
1073 obp);
1076 HRESULT WINAPI
1077 Thunk_IDirect3DDeviceImpl_2_QueryInterface(LPDIRECT3DDEVICE2 iface,
1078 REFIID riid,
1079 LPVOID* obp)
1081 TRACE("(%p)->(%s,%p) thunking to IDirect3DDevice7 interface.\n", iface, debugstr_guid(riid), obp);
1082 return IDirect3DDevice7_QueryInterface(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1083 riid,
1084 obp);
1087 HRESULT WINAPI
1088 Thunk_IDirect3DDeviceImpl_1_QueryInterface(LPDIRECT3DDEVICE iface,
1089 REFIID riid,
1090 LPVOID* obp)
1092 TRACE("(%p)->(%s,%p) thunking to IDirect3DDevice7 interface.\n", iface, debugstr_guid(riid), obp);
1093 return IDirect3DDevice7_QueryInterface(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface),
1094 riid,
1095 obp);
1098 ULONG WINAPI
1099 Thunk_IDirect3DDeviceImpl_3_AddRef(LPDIRECT3DDEVICE3 iface)
1101 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1102 return IDirect3DDevice7_AddRef(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface));
1105 ULONG WINAPI
1106 Thunk_IDirect3DDeviceImpl_2_AddRef(LPDIRECT3DDEVICE2 iface)
1108 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1109 return IDirect3DDevice7_AddRef(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface));
1112 ULONG WINAPI
1113 Thunk_IDirect3DDeviceImpl_1_AddRef(LPDIRECT3DDEVICE iface)
1115 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1116 return IDirect3DDevice7_AddRef(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface));
1119 ULONG WINAPI
1120 Thunk_IDirect3DDeviceImpl_3_Release(LPDIRECT3DDEVICE3 iface)
1122 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1123 return IDirect3DDevice7_Release(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface));
1126 ULONG WINAPI
1127 Thunk_IDirect3DDeviceImpl_2_Release(LPDIRECT3DDEVICE2 iface)
1129 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1130 return IDirect3DDevice7_Release(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface));
1133 ULONG WINAPI
1134 Thunk_IDirect3DDeviceImpl_1_Release(LPDIRECT3DDEVICE iface)
1136 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1137 return IDirect3DDevice7_Release(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface));
1140 HRESULT WINAPI
1141 Thunk_IDirect3DDeviceImpl_2_AddViewport(LPDIRECT3DDEVICE2 iface,
1142 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2)
1144 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport2);
1145 return IDirect3DDevice3_AddViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1146 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */);
1149 HRESULT WINAPI
1150 Thunk_IDirect3DDeviceImpl_1_AddViewport(LPDIRECT3DDEVICE iface,
1151 LPDIRECT3DVIEWPORT lpDirect3DViewport)
1153 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport);
1154 return IDirect3DDevice3_AddViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1155 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport /* No need to cast here as all interfaces are equivalent */);
1158 HRESULT WINAPI
1159 Thunk_IDirect3DDeviceImpl_2_DeleteViewport(LPDIRECT3DDEVICE2 iface,
1160 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2)
1162 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport2);
1163 return IDirect3DDevice3_DeleteViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1164 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */);
1167 HRESULT WINAPI
1168 Thunk_IDirect3DDeviceImpl_1_DeleteViewport(LPDIRECT3DDEVICE iface,
1169 LPDIRECT3DVIEWPORT lpDirect3DViewport)
1171 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport);
1172 return IDirect3DDevice3_DeleteViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1173 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport /* No need to cast here as all interfaces are equivalent */);
1176 HRESULT WINAPI
1177 Thunk_IDirect3DDeviceImpl_2_NextViewport(LPDIRECT3DDEVICE3 iface,
1178 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2,
1179 LPDIRECT3DVIEWPORT2* lplpDirect3DViewport2,
1180 DWORD dwFlags)
1182 TRACE("(%p)->(%p,%p,%08lx) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport2, lplpDirect3DViewport2, dwFlags);
1183 return IDirect3DDevice3_NextViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1184 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */,
1185 (LPDIRECT3DVIEWPORT3*) lplpDirect3DViewport2,
1186 dwFlags);
1189 HRESULT WINAPI
1190 Thunk_IDirect3DDeviceImpl_1_NextViewport(LPDIRECT3DDEVICE3 iface,
1191 LPDIRECT3DVIEWPORT lpDirect3DViewport,
1192 LPDIRECT3DVIEWPORT* lplpDirect3DViewport,
1193 DWORD dwFlags)
1195 TRACE("(%p)->(%p,%p,%08lx) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport, lplpDirect3DViewport, dwFlags);
1196 return IDirect3DDevice3_NextViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1197 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport /* No need to cast here as all interfaces are equivalent */,
1198 (LPDIRECT3DVIEWPORT3*) lplpDirect3DViewport,
1199 dwFlags);
1202 HRESULT WINAPI
1203 Thunk_IDirect3DDeviceImpl_3_GetDirect3D(LPDIRECT3DDEVICE3 iface,
1204 LPDIRECT3D3* lplpDirect3D3)
1206 HRESULT ret;
1207 LPDIRECT3D7 ret_ptr;
1209 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpDirect3D3);
1210 ret = IDirect3DDevice7_GetDirect3D(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1211 &ret_ptr);
1212 *lplpDirect3D3 = COM_INTERFACE_CAST(IDirect3DImpl, IDirect3D7, IDirect3D3, ret_ptr);
1213 TRACE(" returning interface %p\n", *lplpDirect3D3);
1214 return ret;
1217 HRESULT WINAPI
1218 Thunk_IDirect3DDeviceImpl_2_GetDirect3D(LPDIRECT3DDEVICE2 iface,
1219 LPDIRECT3D2* lplpDirect3D2)
1221 HRESULT ret;
1222 LPDIRECT3D7 ret_ptr;
1224 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpDirect3D2);
1225 ret = IDirect3DDevice7_GetDirect3D(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1226 &ret_ptr);
1227 *lplpDirect3D2 = COM_INTERFACE_CAST(IDirect3DImpl, IDirect3D7, IDirect3D2, ret_ptr);
1228 TRACE(" returning interface %p\n", *lplpDirect3D2);
1229 return ret;
1232 HRESULT WINAPI
1233 Thunk_IDirect3DDeviceImpl_1_GetDirect3D(LPDIRECT3DDEVICE iface,
1234 LPDIRECT3D* lplpDirect3D)
1236 HRESULT ret;
1237 LPDIRECT3D7 ret_ptr;
1239 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpDirect3D);
1240 ret = IDirect3DDevice7_GetDirect3D(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface),
1241 &ret_ptr);
1242 *lplpDirect3D = COM_INTERFACE_CAST(IDirect3DImpl, IDirect3D7, IDirect3D, ret_ptr);
1243 TRACE(" returning interface %p\n", *lplpDirect3D);
1244 return ret;
1247 HRESULT WINAPI
1248 Thunk_IDirect3DDeviceImpl_2_SetCurrentViewport(LPDIRECT3DDEVICE2 iface,
1249 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2)
1251 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport2);
1252 return IDirect3DDevice3_SetCurrentViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1253 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */);
1256 HRESULT WINAPI
1257 Thunk_IDirect3DDeviceImpl_2_GetCurrentViewport(LPDIRECT3DDEVICE2 iface,
1258 LPDIRECT3DVIEWPORT2* lplpDirect3DViewport2)
1260 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lplpDirect3DViewport2);
1261 return IDirect3DDevice3_GetCurrentViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1262 (LPDIRECT3DVIEWPORT3*) lplpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */);
1265 HRESULT WINAPI
1266 Thunk_IDirect3DDeviceImpl_3_EnumTextureFormats(LPDIRECT3DDEVICE3 iface,
1267 LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc,
1268 LPVOID lpArg)
1270 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DEnumPixelProc, lpArg);
1271 return IDirect3DDevice7_EnumTextureFormats(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1272 lpD3DEnumPixelProc,
1273 lpArg);
1276 HRESULT WINAPI
1277 Thunk_IDirect3DDeviceImpl_3_BeginScene(LPDIRECT3DDEVICE3 iface)
1279 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1280 return IDirect3DDevice7_BeginScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface));
1283 HRESULT WINAPI
1284 Thunk_IDirect3DDeviceImpl_2_BeginScene(LPDIRECT3DDEVICE2 iface)
1286 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1287 return IDirect3DDevice7_BeginScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface));
1290 HRESULT WINAPI
1291 Thunk_IDirect3DDeviceImpl_1_BeginScene(LPDIRECT3DDEVICE iface)
1293 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1294 return IDirect3DDevice7_BeginScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface));
1297 HRESULT WINAPI
1298 Thunk_IDirect3DDeviceImpl_3_EndScene(LPDIRECT3DDEVICE3 iface)
1300 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1301 return IDirect3DDevice7_EndScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface));
1304 HRESULT WINAPI
1305 Thunk_IDirect3DDeviceImpl_2_EndScene(LPDIRECT3DDEVICE2 iface)
1307 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1308 return IDirect3DDevice7_EndScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface));
1311 HRESULT WINAPI
1312 Thunk_IDirect3DDeviceImpl_1_EndScene(LPDIRECT3DDEVICE iface)
1314 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1315 return IDirect3DDevice7_EndScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface));
1318 HRESULT WINAPI
1319 Thunk_IDirect3DDeviceImpl_3_SetTransform(LPDIRECT3DDEVICE3 iface,
1320 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1321 LPD3DMATRIX lpD3DMatrix)
1323 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1324 return IDirect3DDevice7_SetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1325 dtstTransformStateType,
1326 lpD3DMatrix);
1329 HRESULT WINAPI
1330 Thunk_IDirect3DDeviceImpl_2_SetTransform(LPDIRECT3DDEVICE2 iface,
1331 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1332 LPD3DMATRIX lpD3DMatrix)
1334 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1335 return IDirect3DDevice7_SetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1336 dtstTransformStateType,
1337 lpD3DMatrix);
1340 HRESULT WINAPI
1341 Thunk_IDirect3DDeviceImpl_3_GetTransform(LPDIRECT3DDEVICE3 iface,
1342 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1343 LPD3DMATRIX lpD3DMatrix)
1345 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1346 return IDirect3DDevice7_GetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1347 dtstTransformStateType,
1348 lpD3DMatrix);
1351 HRESULT WINAPI
1352 Thunk_IDirect3DDeviceImpl_2_GetTransform(LPDIRECT3DDEVICE2 iface,
1353 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1354 LPD3DMATRIX lpD3DMatrix)
1356 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1357 return IDirect3DDevice7_GetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1358 dtstTransformStateType,
1359 lpD3DMatrix);
1362 HRESULT WINAPI
1363 Thunk_IDirect3DDeviceImpl_3_MultiplyTransform(LPDIRECT3DDEVICE3 iface,
1364 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1365 LPD3DMATRIX lpD3DMatrix)
1367 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1368 return IDirect3DDevice7_MultiplyTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1369 dtstTransformStateType,
1370 lpD3DMatrix);
1373 HRESULT WINAPI
1374 Thunk_IDirect3DDeviceImpl_2_MultiplyTransform(LPDIRECT3DDEVICE2 iface,
1375 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1376 LPD3DMATRIX lpD3DMatrix)
1378 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1379 return IDirect3DDevice7_MultiplyTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1380 dtstTransformStateType,
1381 lpD3DMatrix);
1384 HRESULT WINAPI
1385 Thunk_IDirect3DDeviceImpl_3_SetRenderState(LPDIRECT3DDEVICE3 iface,
1386 D3DRENDERSTATETYPE dwRenderStateType,
1387 DWORD dwRenderState)
1389 TRACE("(%p)->(%08x,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, dwRenderStateType, dwRenderState);
1390 return IDirect3DDevice7_SetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1391 dwRenderStateType,
1392 dwRenderState);
1395 HRESULT WINAPI
1396 Thunk_IDirect3DDeviceImpl_2_SetRenderState(LPDIRECT3DDEVICE2 iface,
1397 D3DRENDERSTATETYPE dwRenderStateType,
1398 DWORD dwRenderState)
1400 TRACE("(%p)->(%08x,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, dwRenderStateType, dwRenderState);
1401 return IDirect3DDevice7_SetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1402 dwRenderStateType,
1403 dwRenderState);
1406 HRESULT WINAPI
1407 Thunk_IDirect3DDeviceImpl_3_GetRenderState(LPDIRECT3DDEVICE3 iface,
1408 D3DRENDERSTATETYPE dwRenderStateType,
1409 LPDWORD lpdwRenderState)
1411 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dwRenderStateType, lpdwRenderState);
1412 return IDirect3DDevice7_GetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1413 dwRenderStateType,
1414 lpdwRenderState);
1417 HRESULT WINAPI
1418 Thunk_IDirect3DDeviceImpl_2_GetRenderState(LPDIRECT3DDEVICE2 iface,
1419 D3DRENDERSTATETYPE dwRenderStateType,
1420 LPDWORD lpdwRenderState)
1422 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dwRenderStateType, lpdwRenderState);
1423 return IDirect3DDevice7_GetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1424 dwRenderStateType,
1425 lpdwRenderState);
1428 HRESULT WINAPI
1429 Thunk_IDirect3DDeviceImpl_3_DrawPrimitive(LPDIRECT3DDEVICE3 iface,
1430 D3DPRIMITIVETYPE d3dptPrimitiveType,
1431 DWORD d3dvtVertexType,
1432 LPVOID lpvVertices,
1433 DWORD dwVertexCount,
1434 DWORD dwFlags)
1436 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwFlags);
1437 return IDirect3DDevice7_DrawPrimitive(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1438 d3dptPrimitiveType,
1439 d3dvtVertexType,
1440 lpvVertices,
1441 dwVertexCount,
1442 dwFlags);
1445 HRESULT WINAPI
1446 Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitive(LPDIRECT3DDEVICE3 iface,
1447 D3DPRIMITIVETYPE d3dptPrimitiveType,
1448 DWORD d3dvtVertexType,
1449 LPVOID lpvVertices,
1450 DWORD dwVertexCount,
1451 LPWORD dwIndices,
1452 DWORD dwIndexCount,
1453 DWORD dwFlags)
1455 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwIndices, dwIndexCount, dwFlags);
1456 return IDirect3DDevice7_DrawIndexedPrimitive(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1457 d3dptPrimitiveType,
1458 d3dvtVertexType,
1459 lpvVertices,
1460 dwVertexCount,
1461 dwIndices,
1462 dwIndexCount,
1463 dwFlags);
1466 HRESULT WINAPI
1467 Thunk_IDirect3DDeviceImpl_3_SetClipStatus(LPDIRECT3DDEVICE3 iface,
1468 LPD3DCLIPSTATUS lpD3DClipStatus)
1470 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DClipStatus);
1471 return IDirect3DDevice7_SetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1472 lpD3DClipStatus);
1475 HRESULT WINAPI
1476 Thunk_IDirect3DDeviceImpl_2_SetClipStatus(LPDIRECT3DDEVICE2 iface,
1477 LPD3DCLIPSTATUS lpD3DClipStatus)
1479 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DClipStatus);
1480 return IDirect3DDevice7_SetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1481 lpD3DClipStatus);
1484 HRESULT WINAPI
1485 Thunk_IDirect3DDeviceImpl_3_GetClipStatus(LPDIRECT3DDEVICE3 iface,
1486 LPD3DCLIPSTATUS lpD3DClipStatus)
1488 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DClipStatus);
1489 return IDirect3DDevice7_GetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1490 lpD3DClipStatus);
1493 HRESULT WINAPI
1494 Thunk_IDirect3DDeviceImpl_2_GetClipStatus(LPDIRECT3DDEVICE2 iface,
1495 LPD3DCLIPSTATUS lpD3DClipStatus)
1497 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DClipStatus);
1498 return IDirect3DDevice7_GetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1499 lpD3DClipStatus);
1502 HRESULT WINAPI
1503 Thunk_IDirect3DDeviceImpl_3_DrawPrimitiveStrided(LPDIRECT3DDEVICE3 iface,
1504 D3DPRIMITIVETYPE d3dptPrimitiveType,
1505 DWORD dwVertexType,
1506 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
1507 DWORD dwVertexCount,
1508 DWORD dwFlags)
1510 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, d3dptPrimitiveType, dwVertexType, lpD3DDrawPrimStrideData, dwVertexCount, dwFlags);
1511 return IDirect3DDevice7_DrawPrimitiveStrided(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1512 d3dptPrimitiveType,
1513 dwVertexType,
1514 lpD3DDrawPrimStrideData,
1515 dwVertexCount,
1516 dwFlags);
1519 HRESULT WINAPI
1520 Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitiveStrided(LPDIRECT3DDEVICE3 iface,
1521 D3DPRIMITIVETYPE d3dptPrimitiveType,
1522 DWORD dwVertexType,
1523 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
1524 DWORD dwVertexCount,
1525 LPWORD lpIndex,
1526 DWORD dwIndexCount,
1527 DWORD dwFlags)
1529 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, d3dptPrimitiveType, dwVertexType, lpD3DDrawPrimStrideData, dwVertexCount, lpIndex, dwIndexCount, dwFlags);
1530 return IDirect3DDevice7_DrawIndexedPrimitiveStrided(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1531 d3dptPrimitiveType,
1532 dwVertexType,
1533 lpD3DDrawPrimStrideData,
1534 dwVertexCount,
1535 lpIndex,
1536 dwIndexCount,
1537 dwFlags);
1540 HRESULT WINAPI
1541 Thunk_IDirect3DDeviceImpl_3_ComputeSphereVisibility(LPDIRECT3DDEVICE3 iface,
1542 LPD3DVECTOR lpCenters,
1543 LPD3DVALUE lpRadii,
1544 DWORD dwNumSpheres,
1545 DWORD dwFlags,
1546 LPDWORD lpdwReturnValues)
1548 TRACE("(%p)->(%p,%p,%08lx,%08lx,%p) thunking to IDirect3DDevice7 interface.\n", iface, lpCenters, lpRadii, dwNumSpheres, dwFlags, lpdwReturnValues);
1549 return IDirect3DDevice7_ComputeSphereVisibility(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1550 lpCenters,
1551 lpRadii,
1552 dwNumSpheres,
1553 dwFlags,
1554 lpdwReturnValues);
1557 HRESULT WINAPI
1558 Thunk_IDirect3DDeviceImpl_3_GetTextureStageState(LPDIRECT3DDEVICE3 iface,
1559 DWORD dwStage,
1560 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
1561 LPDWORD lpdwState)
1563 TRACE("(%p)->(%08lx,%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dwStage, d3dTexStageStateType, lpdwState);
1564 return IDirect3DDevice7_GetTextureStageState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1565 dwStage,
1566 d3dTexStageStateType,
1567 lpdwState);
1570 HRESULT WINAPI
1571 Thunk_IDirect3DDeviceImpl_3_SetTextureStageState(LPDIRECT3DDEVICE3 iface,
1572 DWORD dwStage,
1573 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
1574 DWORD dwState)
1576 TRACE("(%p)->(%08lx,%08x,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, dwStage, d3dTexStageStateType, dwState);
1577 return IDirect3DDevice7_SetTextureStageState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1578 dwStage,
1579 d3dTexStageStateType,
1580 dwState);
1583 HRESULT WINAPI
1584 Thunk_IDirect3DDeviceImpl_3_ValidateDevice(LPDIRECT3DDEVICE3 iface,
1585 LPDWORD lpdwPasses)
1587 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpdwPasses);
1588 return IDirect3DDevice7_ValidateDevice(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1589 lpdwPasses);
1592 HRESULT WINAPI
1593 Thunk_IDirect3DDeviceImpl_2_GetCaps(LPDIRECT3DDEVICE2 iface,
1594 LPD3DDEVICEDESC lpD3DHWDevDesc,
1595 LPD3DDEVICEDESC lpD3DHELDevDesc)
1597 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice3 interface.\n", iface, lpD3DHWDevDesc, lpD3DHELDevDesc);
1598 return IDirect3DDevice3_GetCaps(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1599 lpD3DHWDevDesc,
1600 lpD3DHELDevDesc);
1603 HRESULT WINAPI
1604 Thunk_IDirect3DDeviceImpl_1_GetCaps(LPDIRECT3DDEVICE iface,
1605 LPD3DDEVICEDESC lpD3DHWDevDesc,
1606 LPD3DDEVICEDESC lpD3DHELDevDesc)
1608 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice3 interface.\n", iface, lpD3DHWDevDesc, lpD3DHELDevDesc);
1609 return IDirect3DDevice3_GetCaps(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1610 lpD3DHWDevDesc,
1611 lpD3DHELDevDesc);
1614 HRESULT WINAPI
1615 Thunk_IDirect3DDeviceImpl_2_GetStats(LPDIRECT3DDEVICE2 iface,
1616 LPD3DSTATS lpD3DStats)
1618 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpD3DStats);
1619 return IDirect3DDevice3_GetStats(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1620 lpD3DStats);
1623 HRESULT WINAPI
1624 Thunk_IDirect3DDeviceImpl_1_GetStats(LPDIRECT3DDEVICE iface,
1625 LPD3DSTATS lpD3DStats)
1627 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpD3DStats);
1628 return IDirect3DDevice3_GetStats(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1629 lpD3DStats);
1632 HRESULT WINAPI
1633 Thunk_IDirect3DDeviceImpl_3_SetRenderTarget(LPDIRECT3DDEVICE3 iface,
1634 LPDIRECTDRAWSURFACE4 lpNewRenderTarget,
1635 DWORD dwFlags)
1637 TRACE("(%p)->(%p,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, lpNewRenderTarget, dwFlags);
1638 return IDirect3DDevice7_SetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1639 (LPDIRECTDRAWSURFACE7) lpNewRenderTarget /* No cast needed as DSurf4 == DSurf7 */,
1640 dwFlags);
1643 HRESULT WINAPI
1644 Thunk_IDirect3DDeviceImpl_3_GetRenderTarget(LPDIRECT3DDEVICE3 iface,
1645 LPDIRECTDRAWSURFACE4* lplpRenderTarget)
1647 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpRenderTarget);
1648 return IDirect3DDevice7_GetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1649 (LPDIRECTDRAWSURFACE7*) lplpRenderTarget /* No cast needed as DSurf4 == DSurf7 */);
1652 HRESULT WINAPI
1653 Thunk_IDirect3DDeviceImpl_2_SetRenderTarget(LPDIRECT3DDEVICE2 iface,
1654 LPDIRECTDRAWSURFACE lpNewRenderTarget,
1655 DWORD dwFlags)
1657 TRACE("(%p)->(%p,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, lpNewRenderTarget, dwFlags);
1658 return IDirect3DDevice7_SetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1659 COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface3, IDirectDrawSurface7, lpNewRenderTarget),
1660 dwFlags);
1663 HRESULT WINAPI
1664 Thunk_IDirect3DDeviceImpl_2_GetRenderTarget(LPDIRECT3DDEVICE2 iface,
1665 LPDIRECTDRAWSURFACE* lplpRenderTarget)
1667 HRESULT ret;
1668 LPDIRECTDRAWSURFACE7 ret_val;
1670 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpRenderTarget);
1671 ret = IDirect3DDevice7_GetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1672 &ret_val);
1673 *lplpRenderTarget = (LPDIRECTDRAWSURFACE) COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface7, IDirectDrawSurface3, ret_val);
1674 TRACE(" returning interface %p\n", *lplpRenderTarget);
1675 return ret;
1678 HRESULT WINAPI
1679 Thunk_IDirect3DDeviceImpl_2_Vertex(LPDIRECT3DDEVICE2 iface,
1680 LPVOID lpVertexType)
1682 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpVertexType);
1683 return IDirect3DDevice3_Vertex(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1684 lpVertexType);
1687 HRESULT WINAPI
1688 Thunk_IDirect3DDeviceImpl_2_Index(LPDIRECT3DDEVICE2 iface,
1689 WORD wVertexIndex)
1691 TRACE("(%p)->(%04x) thunking to IDirect3DDevice3 interface.\n", iface, wVertexIndex);
1692 return IDirect3DDevice3_Index(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1693 wVertexIndex);
1696 HRESULT WINAPI
1697 Thunk_IDirect3DDeviceImpl_2_End(LPDIRECT3DDEVICE2 iface,
1698 DWORD dwFlags)
1700 TRACE("(%p)->(%08lx) thunking to IDirect3DDevice3 interface.\n", iface, dwFlags);
1701 return IDirect3DDevice3_End(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1702 dwFlags);
1705 HRESULT WINAPI
1706 Thunk_IDirect3DDeviceImpl_2_GetLightState(LPDIRECT3DDEVICE2 iface,
1707 D3DLIGHTSTATETYPE dwLightStateType,
1708 LPDWORD lpdwLightState)
1710 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice3 interface.\n", iface, dwLightStateType, lpdwLightState);
1711 return IDirect3DDevice3_GetLightState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1712 dwLightStateType,
1713 lpdwLightState);
1716 HRESULT WINAPI
1717 Thunk_IDirect3DDeviceImpl_2_SetLightState(LPDIRECT3DDEVICE2 iface,
1718 D3DLIGHTSTATETYPE dwLightStateType,
1719 DWORD dwLightState)
1721 TRACE("(%p)->(%08x,%08lx) thunking to IDirect3DDevice3 interface.\n", iface, dwLightStateType, dwLightState);
1722 return IDirect3DDevice3_SetLightState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1723 dwLightStateType,
1724 dwLightState);
1727 HRESULT WINAPI
1728 Thunk_IDirect3DDeviceImpl_1_EnumTextureFormats(LPDIRECT3DDEVICE iface,
1729 LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc,
1730 LPVOID lpArg)
1732 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice2 interface.\n", iface, lpD3DEnumTextureProc, lpArg);
1733 return IDirect3DDevice2_EnumTextureFormats(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice2, iface),
1734 lpD3DEnumTextureProc,
1735 lpArg);
1738 HRESULT WINAPI
1739 Thunk_IDirect3DDeviceImpl_3_SetTexture(LPDIRECT3DDEVICE3 iface,
1740 DWORD dwStage,
1741 LPDIRECT3DTEXTURE2 lpTexture2)
1743 TRACE("(%p)->(%ld,%p) thunking to IDirect3DDevice7 interface.\n", iface, dwStage, lpTexture2);
1744 return IDirect3DDevice7_SetTexture(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1745 dwStage,
1746 COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirect3DTexture2, IDirectDrawSurface7, lpTexture2));
1749 HRESULT WINAPI
1750 Thunk_IDirect3DDeviceImpl_3_DrawPrimitiveVB(LPDIRECT3DDEVICE3 iface,
1751 D3DPRIMITIVETYPE d3dptPrimitiveType,
1752 LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf,
1753 DWORD dwStartVertex,
1754 DWORD dwNumVertices,
1755 DWORD dwFlags)
1757 TRACE("(%p)->(%08x,%p,%08lx,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface,
1758 d3dptPrimitiveType, lpD3DVertexBuf, dwStartVertex, dwNumVertices, dwFlags);
1759 return IDirect3DDevice7_DrawPrimitiveVB(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1760 d3dptPrimitiveType,
1761 COM_INTERFACE_CAST(IDirect3DVertexBufferImpl, IDirect3DVertexBuffer, IDirect3DVertexBuffer7, lpD3DVertexBuf),
1762 dwStartVertex,
1763 dwNumVertices,
1764 dwFlags);
1767 HRESULT WINAPI
1768 Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitiveVB(LPDIRECT3DDEVICE3 iface,
1769 D3DPRIMITIVETYPE d3dptPrimitiveType,
1770 LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf,
1771 LPWORD lpwIndices,
1772 DWORD dwIndexCount,
1773 DWORD dwFlags)
1775 TRACE("(%p)->(%08x,%p,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface,
1776 d3dptPrimitiveType, lpD3DVertexBuf, lpwIndices, dwIndexCount, dwFlags);
1777 return IDirect3DDevice7_DrawIndexedPrimitiveVB(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1778 d3dptPrimitiveType,
1779 COM_INTERFACE_CAST(IDirect3DVertexBufferImpl, IDirect3DVertexBuffer, IDirect3DVertexBuffer7, lpD3DVertexBuf),
1781 dwIndexCount,
1782 lpwIndices,
1783 dwIndexCount,
1784 dwFlags);