- more thunking in the D3DVertexBuffer COM object
[wine/testsucceed.git] / dlls / ddraw / d3ddevice / main.c
blob0a1d1aee9d8c7a342e17d499050ce00ab2a8b9d8
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 IDirectDrawSurfaceImpl *target_impl = ICOM_OBJECT(IDirectDrawSurfaceImpl, IDirectDrawSurface7, lpNewRenderTarget);
167 TRACE("(%p/%p)->(%p,%08lx)\n", This, iface, lpNewRenderTarget, dwFlags);
168 if (target_impl != This->surface) {
169 WARN(" Change of rendering target not handled yet !\n");
171 return DD_OK;
174 HRESULT WINAPI
175 Main_IDirect3DDeviceImpl_7_3T_2T_GetRenderTarget(LPDIRECT3DDEVICE7 iface,
176 LPDIRECTDRAWSURFACE7* lplpRenderTarget)
178 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
179 TRACE("(%p/%p)->(%p)\n", This, iface, lplpRenderTarget);
181 *lplpRenderTarget = ICOM_INTERFACE(This->surface, IDirectDrawSurface7);
182 IDirectDrawSurface7_AddRef(ICOM_INTERFACE(This->surface, IDirectDrawSurface7));
184 TRACE(" returning surface at %p.\n", *lplpRenderTarget);
186 return DD_OK;
189 HRESULT WINAPI
190 Main_IDirect3DDeviceImpl_7_Clear(LPDIRECT3DDEVICE7 iface,
191 DWORD dwCount,
192 LPD3DRECT lpRects,
193 DWORD dwFlags,
194 D3DCOLOR dwColor,
195 D3DVALUE dvZ,
196 DWORD dwStencil)
198 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
199 TRACE("(%p/%p)->(%08lx,%p,%08lx,%08lx,%f,%08lx)\n", This, iface, dwCount, lpRects, dwFlags, (DWORD) dwColor, dvZ, dwStencil);
200 return This->clear(This, dwCount, lpRects, dwFlags, dwColor, dvZ, dwStencil);
203 HRESULT WINAPI
204 Main_IDirect3DDeviceImpl_7_3T_2T_SetTransform(LPDIRECT3DDEVICE7 iface,
205 D3DTRANSFORMSTATETYPE dtstTransformStateType,
206 LPD3DMATRIX lpD3DMatrix)
208 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
209 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, dtstTransformStateType, lpD3DMatrix);
210 return DD_OK;
213 HRESULT WINAPI
214 Main_IDirect3DDeviceImpl_7_3T_2T_GetTransform(LPDIRECT3DDEVICE7 iface,
215 D3DTRANSFORMSTATETYPE dtstTransformStateType,
216 LPD3DMATRIX lpD3DMatrix)
218 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
219 TRACE("(%p/%p)->(%08x,%p)\n", This, iface, dtstTransformStateType, lpD3DMatrix);
221 switch (dtstTransformStateType) {
222 case D3DTRANSFORMSTATE_WORLD: {
223 TRACE(" returning D3DTRANSFORMSTATE_WORLD :\n");
224 memcpy(lpD3DMatrix, This->world_mat, 16 * sizeof(D3DVALUE));
225 dump_mat(lpD3DMatrix);
226 } break;
228 case D3DTRANSFORMSTATE_VIEW: {
229 TRACE(" returning D3DTRANSFORMSTATE_VIEW :\n");
230 memcpy(lpD3DMatrix, This->world_mat, 16 * sizeof(D3DVALUE));
231 dump_mat(lpD3DMatrix);
232 } break;
234 case D3DTRANSFORMSTATE_PROJECTION: {
235 TRACE(" returning D3DTRANSFORMSTATE_PROJECTION :\n");
236 memcpy(lpD3DMatrix, This->world_mat, 16 * sizeof(D3DVALUE));
237 dump_mat(lpD3DMatrix);
238 } break;
240 default:
241 ERR("Unknown transform type %08x !!!\n", dtstTransformStateType);
242 return DDERR_INVALIDPARAMS;
245 return DD_OK;
248 HRESULT WINAPI
249 Main_IDirect3DDeviceImpl_7_SetViewport(LPDIRECT3DDEVICE7 iface,
250 LPD3DVIEWPORT7 lpData)
252 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
253 TRACE("(%p/%p)->(%p)\n", This, iface, lpData);
255 if (TRACE_ON(ddraw)) {
256 TRACE(" viewport is : \n");
257 TRACE(" - dwX = %ld dwY = %ld\n",
258 lpData->dwX, lpData->dwY);
259 TRACE(" - dwWidth = %ld dwHeight = %ld\n",
260 lpData->dwWidth, lpData->dwHeight);
261 TRACE(" - dvMinZ = %f dvMaxZ = %f\n",
262 lpData->dvMinZ, lpData->dvMaxZ);
264 This->active_viewport = *lpData;
266 return DD_OK;
269 HRESULT WINAPI
270 Main_IDirect3DDeviceImpl_7_3T_2T_MultiplyTransform(LPDIRECT3DDEVICE7 iface,
271 D3DTRANSFORMSTATETYPE dtstTransformStateType,
272 LPD3DMATRIX lpD3DMatrix)
274 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
275 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, dtstTransformStateType, lpD3DMatrix);
276 return DD_OK;
279 HRESULT WINAPI
280 Main_IDirect3DDeviceImpl_7_GetViewport(LPDIRECT3DDEVICE7 iface,
281 LPD3DVIEWPORT7 lpData)
283 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
284 TRACE("(%p/%p)->(%p)\n", This, iface, lpData);
286 *lpData = This->active_viewport;
288 if (TRACE_ON(ddraw)) {
289 TRACE(" returning viewport : \n");
290 TRACE(" - dwX = %ld dwY = %ld\n",
291 lpData->dwX, lpData->dwY);
292 TRACE(" - dwWidth = %ld dwHeight = %ld\n",
293 lpData->dwWidth, lpData->dwHeight);
294 TRACE(" - dvMinZ = %f dvMaxZ = %f\n",
295 lpData->dvMinZ, lpData->dvMaxZ);
298 return DD_OK;
301 HRESULT WINAPI
302 Main_IDirect3DDeviceImpl_7_SetMaterial(LPDIRECT3DDEVICE7 iface,
303 LPD3DMATERIAL7 lpMat)
305 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
306 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpMat);
307 return DD_OK;
310 HRESULT WINAPI
311 Main_IDirect3DDeviceImpl_7_GetMaterial(LPDIRECT3DDEVICE7 iface,
312 LPD3DMATERIAL7 lpMat)
314 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
315 TRACE("(%p/%p)->(%p)\n", This, iface, lpMat);
317 *lpMat = This->current_material;
319 if (TRACE_ON(ddraw)) {
320 TRACE(" returning material : \n");
321 dump_D3DMATERIAL7(lpMat);
324 return DD_OK;
327 HRESULT WINAPI
328 Main_IDirect3DDeviceImpl_7_SetLight(LPDIRECT3DDEVICE7 iface,
329 DWORD dwLightIndex,
330 LPD3DLIGHT7 lpLight)
332 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
333 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwLightIndex, lpLight);
334 return DD_OK;
337 HRESULT WINAPI
338 Main_IDirect3DDeviceImpl_7_GetLight(LPDIRECT3DDEVICE7 iface,
339 DWORD dwLightIndex,
340 LPD3DLIGHT7 lpLight)
342 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
343 TRACE("(%p/%p)->(%08lx,%p)\n", This, iface, dwLightIndex, lpLight);
345 if (dwLightIndex > MAX_LIGHTS) return DDERR_INVALIDPARAMS;
346 *lpLight = This->light_parameters[dwLightIndex];
348 if (TRACE_ON(ddraw)) {
349 TRACE(" returning light : \n");
350 dump_D3DLIGHT7(lpLight);
353 return DD_OK;
356 HRESULT WINAPI
357 Main_IDirect3DDeviceImpl_7_3T_2T_SetRenderState(LPDIRECT3DDEVICE7 iface,
358 D3DRENDERSTATETYPE dwRenderStateType,
359 DWORD dwRenderState)
361 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
362 FIXME("(%p/%p)->(%08x,%08lx): stub!\n", This, iface, dwRenderStateType, dwRenderState);
363 return DD_OK;
366 HRESULT WINAPI
367 Main_IDirect3DDeviceImpl_7_3T_2T_GetRenderState(LPDIRECT3DDEVICE7 iface,
368 D3DRENDERSTATETYPE dwRenderStateType,
369 LPDWORD lpdwRenderState)
371 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
372 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, dwRenderStateType, lpdwRenderState);
373 return DD_OK;
376 HRESULT WINAPI
377 Main_IDirect3DDeviceImpl_7_BeginStateBlock(LPDIRECT3DDEVICE7 iface)
379 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
380 FIXME("(%p/%p)->(): stub!\n", This, iface);
381 return DD_OK;
384 HRESULT WINAPI
385 Main_IDirect3DDeviceImpl_7_EndStateBlock(LPDIRECT3DDEVICE7 iface,
386 LPDWORD lpdwBlockHandle)
388 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
389 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpdwBlockHandle);
390 return DD_OK;
393 HRESULT WINAPI
394 Main_IDirect3DDeviceImpl_7_PreLoad(LPDIRECT3DDEVICE7 iface,
395 LPDIRECTDRAWSURFACE7 lpddsTexture)
397 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
398 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpddsTexture);
399 return DD_OK;
402 HRESULT WINAPI
403 Main_IDirect3DDeviceImpl_7_3T_DrawPrimitive(LPDIRECT3DDEVICE7 iface,
404 D3DPRIMITIVETYPE d3dptPrimitiveType,
405 DWORD d3dvtVertexType,
406 LPVOID lpvVertices,
407 DWORD dwVertexCount,
408 DWORD dwFlags)
410 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
411 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwFlags);
412 return DD_OK;
415 HRESULT WINAPI
416 Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitive(LPDIRECT3DDEVICE7 iface,
417 D3DPRIMITIVETYPE d3dptPrimitiveType,
418 DWORD d3dvtVertexType,
419 LPVOID lpvVertices,
420 DWORD dwVertexCount,
421 LPWORD dwIndices,
422 DWORD dwIndexCount,
423 DWORD dwFlags)
425 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
426 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwIndices, dwIndexCount, dwFlags);
427 return DD_OK;
430 HRESULT WINAPI
431 Main_IDirect3DDeviceImpl_7_3T_2T_SetClipStatus(LPDIRECT3DDEVICE7 iface,
432 LPD3DCLIPSTATUS lpD3DClipStatus)
434 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
435 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpD3DClipStatus);
436 return DD_OK;
439 HRESULT WINAPI
440 Main_IDirect3DDeviceImpl_7_3T_2T_GetClipStatus(LPDIRECT3DDEVICE7 iface,
441 LPD3DCLIPSTATUS lpD3DClipStatus)
443 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
444 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpD3DClipStatus);
445 return DD_OK;
448 HRESULT WINAPI
449 Main_IDirect3DDeviceImpl_7_3T_DrawPrimitiveStrided(LPDIRECT3DDEVICE7 iface,
450 D3DPRIMITIVETYPE d3dptPrimitiveType,
451 DWORD dwVertexType,
452 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
453 DWORD dwVertexCount,
454 DWORD dwFlags)
456 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
457 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, dwVertexType, lpD3DDrawPrimStrideData, dwVertexCount, dwFlags);
458 return DD_OK;
461 HRESULT WINAPI
462 Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitiveStrided(LPDIRECT3DDEVICE7 iface,
463 D3DPRIMITIVETYPE d3dptPrimitiveType,
464 DWORD dwVertexType,
465 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
466 DWORD dwVertexCount,
467 LPWORD lpIndex,
468 DWORD dwIndexCount,
469 DWORD dwFlags)
471 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
472 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, dwVertexType, lpD3DDrawPrimStrideData, dwVertexCount, lpIndex, dwIndexCount, dwFlags);
473 return DD_OK;
476 HRESULT WINAPI
477 Main_IDirect3DDeviceImpl_7_3T_DrawPrimitiveVB(LPDIRECT3DDEVICE7 iface,
478 D3DPRIMITIVETYPE d3dptPrimitiveType,
479 LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf,
480 DWORD dwStartVertex,
481 DWORD dwNumVertices,
482 DWORD dwFlags)
484 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
485 FIXME("(%p/%p)->(%08x,%p,%08lx,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, lpD3DVertexBuf, dwStartVertex, dwNumVertices, dwFlags);
486 return DD_OK;
489 HRESULT WINAPI
490 Main_IDirect3DDeviceImpl_7_3T_DrawIndexedPrimitiveVB(LPDIRECT3DDEVICE7 iface,
491 D3DPRIMITIVETYPE d3dptPrimitiveType,
492 LPDIRECT3DVERTEXBUFFER7 lpD3DVertexBuf,
493 DWORD dwStartVertex,
494 DWORD dwNumVertices,
495 LPWORD lpwIndices,
496 DWORD dwIndexCount,
497 DWORD dwFlags)
499 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
500 FIXME("(%p/%p)->(%08x,%p,%08lx,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, lpD3DVertexBuf, dwStartVertex, dwNumVertices, lpwIndices, dwIndexCount, dwFlags);
501 return DD_OK;
504 HRESULT WINAPI
505 Main_IDirect3DDeviceImpl_7_3T_ComputeSphereVisibility(LPDIRECT3DDEVICE7 iface,
506 LPD3DVECTOR lpCenters,
507 LPD3DVALUE lpRadii,
508 DWORD dwNumSpheres,
509 DWORD dwFlags,
510 LPDWORD lpdwReturnValues)
512 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
513 FIXME("(%p/%p)->(%p,%p,%08lx,%08lx,%p): stub!\n", This, iface, lpCenters, lpRadii, dwNumSpheres, dwFlags, lpdwReturnValues);
514 return DD_OK;
517 HRESULT WINAPI
518 Main_IDirect3DDeviceImpl_7_3T_GetTexture(LPDIRECT3DDEVICE7 iface,
519 DWORD dwStage,
520 LPDIRECTDRAWSURFACE7* lpTexture)
522 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
523 TRACE("(%p/%p)->(%08lx,%p)\n", This, iface, dwStage, lpTexture);
525 if (This->current_texture[dwStage] != NULL) {
526 *lpTexture = ICOM_INTERFACE(This->current_texture[dwStage], IDirectDrawSurface7);
527 } else {
528 *lpTexture = NULL;
531 TRACE(" returning interface at %p (for implementation at %p).\n", *lpTexture, This->current_texture[dwStage]);
533 /* Note: should this method increase the reference count for this ?? */
535 return DD_OK;
538 HRESULT WINAPI
539 Main_IDirect3DDeviceImpl_7_3T_SetTexture(LPDIRECT3DDEVICE7 iface,
540 DWORD dwStage,
541 LPDIRECTDRAWSURFACE7 lpTexture)
543 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
544 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwStage, lpTexture);
545 return DD_OK;
548 HRESULT WINAPI
549 Main_IDirect3DDeviceImpl_7_3T_GetTextureStageState(LPDIRECT3DDEVICE7 iface,
550 DWORD dwStage,
551 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
552 LPDWORD lpdwState)
554 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
555 FIXME("(%p/%p)->(%08lx,%08x,%p): stub!\n", This, iface, dwStage, d3dTexStageStateType, lpdwState);
556 return DD_OK;
559 HRESULT WINAPI
560 Main_IDirect3DDeviceImpl_7_3T_SetTextureStageState(LPDIRECT3DDEVICE7 iface,
561 DWORD dwStage,
562 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
563 DWORD dwState)
565 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
566 FIXME("(%p/%p)->(%08lx,%08x,%08lx): stub!\n", This, iface, dwStage, d3dTexStageStateType, dwState);
567 return DD_OK;
570 HRESULT WINAPI
571 Main_IDirect3DDeviceImpl_7_3T_ValidateDevice(LPDIRECT3DDEVICE7 iface,
572 LPDWORD lpdwPasses)
574 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
575 FIXME("(%p/%p)->(%p): semi-stub!\n", This, iface, lpdwPasses);
577 /* For the moment, we have a VERY good hardware which does everything in one pass :-) */
578 *lpdwPasses = 1;
580 return DD_OK;
583 HRESULT WINAPI
584 Main_IDirect3DDeviceImpl_7_ApplyStateBlock(LPDIRECT3DDEVICE7 iface,
585 DWORD dwBlockHandle)
587 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
588 FIXME("(%p/%p)->(%08lx): stub!\n", This, iface, dwBlockHandle);
589 return DD_OK;
592 HRESULT WINAPI
593 Main_IDirect3DDeviceImpl_7_CaptureStateBlock(LPDIRECT3DDEVICE7 iface,
594 DWORD dwBlockHandle)
596 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
597 FIXME("(%p/%p)->(%08lx): stub!\n", This, iface, dwBlockHandle);
598 return DD_OK;
601 HRESULT WINAPI
602 Main_IDirect3DDeviceImpl_7_DeleteStateBlock(LPDIRECT3DDEVICE7 iface,
603 DWORD dwBlockHandle)
605 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
606 FIXME("(%p/%p)->(%08lx): stub!\n", This, iface, dwBlockHandle);
607 return DD_OK;
610 HRESULT WINAPI
611 Main_IDirect3DDeviceImpl_7_CreateStateBlock(LPDIRECT3DDEVICE7 iface,
612 D3DSTATEBLOCKTYPE d3dsbType,
613 LPDWORD lpdwBlockHandle)
615 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
616 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, d3dsbType, lpdwBlockHandle);
617 return DD_OK;
620 HRESULT WINAPI
621 Main_IDirect3DDeviceImpl_7_Load(LPDIRECT3DDEVICE7 iface,
622 LPDIRECTDRAWSURFACE7 lpDestTex,
623 LPPOINT lpDestPoint,
624 LPDIRECTDRAWSURFACE7 lpSrcTex,
625 LPRECT lprcSrcRect,
626 DWORD dwFlags)
628 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
629 FIXME("(%p/%p)->(%p,%p,%p,%p,%08lx): stub!\n", This, iface, lpDestTex, lpDestPoint, lpSrcTex, lprcSrcRect, dwFlags);
630 return DD_OK;
633 HRESULT WINAPI
634 Main_IDirect3DDeviceImpl_7_LightEnable(LPDIRECT3DDEVICE7 iface,
635 DWORD dwLightIndex,
636 BOOL bEnable)
638 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
639 FIXME("(%p/%p)->(%08lx,%d): stub!\n", This, iface, dwLightIndex, bEnable);
640 return DD_OK;
643 HRESULT WINAPI
644 Main_IDirect3DDeviceImpl_7_GetLightEnable(LPDIRECT3DDEVICE7 iface,
645 DWORD dwLightIndex,
646 BOOL* pbEnable)
648 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
649 TRACE("(%p/%p)->(%08lx,%p)\n", This, iface, dwLightIndex, pbEnable);
651 if (dwLightIndex > MAX_LIGHTS) *pbEnable = 0;
652 else *pbEnable = ((0x00000001 << dwLightIndex) & This->active_lights) != 0;
654 TRACE(" returning %d.\n", *pbEnable);
656 return DD_OK;
659 HRESULT WINAPI
660 Main_IDirect3DDeviceImpl_7_SetClipPlane(LPDIRECT3DDEVICE7 iface,
661 DWORD dwIndex,
662 D3DVALUE* pPlaneEquation)
664 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
665 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwIndex, pPlaneEquation);
666 return DD_OK;
669 HRESULT WINAPI
670 Main_IDirect3DDeviceImpl_7_GetClipPlane(LPDIRECT3DDEVICE7 iface,
671 DWORD dwIndex,
672 D3DVALUE* pPlaneEquation)
674 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
675 FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwIndex, pPlaneEquation);
676 return DD_OK;
679 HRESULT WINAPI
680 Main_IDirect3DDeviceImpl_7_GetInfo(LPDIRECT3DDEVICE7 iface,
681 DWORD dwDevInfoID,
682 LPVOID pDevInfoStruct,
683 DWORD dwSize)
685 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);
686 FIXME("(%p/%p)->(%08lx,%p,%08lx): stub!\n", This, iface, dwDevInfoID, pDevInfoStruct, dwSize);
688 if (TRACE_ON(ddraw)) {
689 TRACE(" info requested : ");
690 switch (dwDevInfoID) {
691 case D3DDEVINFOID_TEXTUREMANAGER: DPRINTF("D3DDEVINFOID_TEXTUREMANAGER\n"); break;
692 case D3DDEVINFOID_D3DTEXTUREMANAGER: DPRINTF("D3DDEVINFOID_D3DTEXTUREMANAGER\n"); break;
693 case D3DDEVINFOID_TEXTURING: DPRINTF("D3DDEVINFOID_TEXTURING\n"); break;
694 default: ERR(" invalid flag !!!\n"); return DDERR_INVALIDPARAMS;
698 return S_FALSE; /* According to MSDN, this is valid for a non-debug driver */
701 HRESULT WINAPI
702 Main_IDirect3DDeviceImpl_3_2T_1T_GetCaps(LPDIRECT3DDEVICE3 iface,
703 LPD3DDEVICEDESC lpD3DHWDevDesc,
704 LPD3DDEVICEDESC lpD3DHELDevDesc)
706 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
707 FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3DHWDevDesc, lpD3DHELDevDesc);
708 return DD_OK;
711 HRESULT WINAPI
712 Main_IDirect3DDeviceImpl_3_2T_1T_GetStats(LPDIRECT3DDEVICE3 iface,
713 LPD3DSTATS lpD3DStats)
715 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
716 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpD3DStats);
717 return DD_OK;
720 HRESULT WINAPI
721 Main_IDirect3DDeviceImpl_3_2T_1T_AddViewport(LPDIRECT3DDEVICE3 iface,
722 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3)
724 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
725 IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3);
727 TRACE("(%p/%p)->(%p)\n", This, iface, lpDirect3DViewport3);
729 lpDirect3DViewportImpl->next = This->viewport_list;
730 This->viewport_list = lpDirect3DViewportImpl;
732 return DD_OK;
735 HRESULT WINAPI
736 Main_IDirect3DDeviceImpl_3_2T_1T_DeleteViewport(LPDIRECT3DDEVICE3 iface,
737 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3)
739 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
740 IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3);
741 IDirect3DViewportImpl *cur_viewport, *prev_viewport = NULL;
743 TRACE("(%p/%p)->(%p)\n", This, iface, lpDirect3DViewport3);
745 cur_viewport = This->viewport_list;
746 while (cur_viewport != NULL) {
747 if (cur_viewport == lpDirect3DViewportImpl) {
748 if (prev_viewport == NULL) This->viewport_list = cur_viewport->next;
749 else prev_viewport->next = cur_viewport->next;
750 /* TODO : add desactivate of the viewport and all associated lights... */
751 return DD_OK;
753 prev_viewport = cur_viewport;
754 cur_viewport = cur_viewport->next;
757 return DDERR_INVALIDPARAMS;
760 HRESULT WINAPI
761 Main_IDirect3DDeviceImpl_3_2T_1T_NextViewport(LPDIRECT3DDEVICE3 iface,
762 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3,
763 LPDIRECT3DVIEWPORT3* lplpDirect3DViewport3,
764 DWORD dwFlags)
766 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
767 IDirect3DViewportImpl *res = NULL;
769 TRACE("(%p/%p)->(%p,%p,%08lx)\n", This, iface, lpDirect3DViewport3, lplpDirect3DViewport3, dwFlags);
771 switch (dwFlags) {
772 case D3DNEXT_NEXT: {
773 IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3);
774 res = lpDirect3DViewportImpl->next;
775 } break;
776 case D3DNEXT_HEAD: {
777 res = This->viewport_list;
778 } break;
779 case D3DNEXT_TAIL: {
780 IDirect3DViewportImpl *cur_viewport = This->viewport_list;
781 if (cur_viewport != NULL) {
782 while (cur_viewport->next != NULL) cur_viewport = cur_viewport->next;
784 res = cur_viewport;
785 } break;
786 default:
787 *lplpDirect3DViewport3 = NULL;
788 return DDERR_INVALIDPARAMS;
790 *lplpDirect3DViewport3 = ICOM_INTERFACE(res, IDirect3DViewport3);
791 return DD_OK;
794 HRESULT WINAPI
795 Main_IDirect3DDeviceImpl_3_2T_SetCurrentViewport(LPDIRECT3DDEVICE3 iface,
796 LPDIRECT3DVIEWPORT3 lpDirect3DViewport3)
798 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
799 TRACE("(%p/%p)->(%p)\n", This, iface, lpDirect3DViewport3);
801 /* Should check if the viewport was added or not */
803 /* Set this viewport as the current viewport */
804 This->current_viewport = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3);
806 /* Activate this viewport */
807 This->current_viewport->active_device = This;
808 This->current_viewport->activate(This->current_viewport);
810 /* And copy the values in the structure used by the device */
811 if (This->current_viewport->use_vp2) {
812 This->active_viewport.dwX = This->current_viewport->viewports.vp2.dwX;
813 This->active_viewport.dwY = This->current_viewport->viewports.vp2.dwY;
814 This->active_viewport.dwHeight = This->current_viewport->viewports.vp2.dwHeight;
815 This->active_viewport.dwWidth = This->current_viewport->viewports.vp2.dwWidth;
816 This->active_viewport.dvMinZ = This->current_viewport->viewports.vp2.dvMinZ;
817 This->active_viewport.dvMaxZ = This->current_viewport->viewports.vp2.dvMaxZ;
818 } else {
819 This->active_viewport.dwX = This->current_viewport->viewports.vp1.dwX;
820 This->active_viewport.dwY = This->current_viewport->viewports.vp1.dwY;
821 This->active_viewport.dwHeight = This->current_viewport->viewports.vp1.dwHeight;
822 This->active_viewport.dwWidth = This->current_viewport->viewports.vp1.dwWidth;
823 This->active_viewport.dvMinZ = This->current_viewport->viewports.vp1.dvMinZ;
824 This->active_viewport.dvMaxZ = This->current_viewport->viewports.vp1.dvMaxZ;
827 return DD_OK;
830 HRESULT WINAPI
831 Main_IDirect3DDeviceImpl_3_2T_GetCurrentViewport(LPDIRECT3DDEVICE3 iface,
832 LPDIRECT3DVIEWPORT3* lplpDirect3DViewport3)
834 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
835 TRACE("(%p/%p)->(%p)\n", This, iface, lplpDirect3DViewport3);
837 *lplpDirect3DViewport3 = ICOM_INTERFACE(This->current_viewport, IDirect3DViewport3);
838 TRACE(" returning interface %p\n", *lplpDirect3DViewport3);
840 return DD_OK;
843 HRESULT WINAPI
844 Main_IDirect3DDeviceImpl_3_Begin(LPDIRECT3DDEVICE3 iface,
845 D3DPRIMITIVETYPE d3dptPrimitiveType,
846 DWORD dwVertexTypeDesc,
847 DWORD dwFlags)
849 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
850 FIXME("(%p/%p)->(%08x,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, dwVertexTypeDesc, dwFlags);
851 return DD_OK;
854 HRESULT WINAPI
855 Main_IDirect3DDeviceImpl_3_BeginIndexed(LPDIRECT3DDEVICE3 iface,
856 D3DPRIMITIVETYPE d3dptPrimitiveType,
857 DWORD d3dvtVertexType,
858 LPVOID lpvVertices,
859 DWORD dwNumVertices,
860 DWORD dwFlags)
862 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
863 FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwNumVertices, dwFlags);
864 return DD_OK;
867 HRESULT WINAPI
868 Main_IDirect3DDeviceImpl_3_2T_Vertex(LPDIRECT3DDEVICE3 iface,
869 LPVOID lpVertexType)
871 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
872 FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpVertexType);
873 return DD_OK;
876 HRESULT WINAPI
877 Main_IDirect3DDeviceImpl_3_2T_Index(LPDIRECT3DDEVICE3 iface,
878 WORD wVertexIndex)
880 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
881 FIXME("(%p/%p)->(%04x): stub!\n", This, iface, wVertexIndex);
882 return DD_OK;
885 HRESULT WINAPI
886 Main_IDirect3DDeviceImpl_3_2T_End(LPDIRECT3DDEVICE3 iface,
887 DWORD dwFlags)
889 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
890 FIXME("(%p/%p)->(%08lx): stub!\n", This, iface, dwFlags);
891 return DD_OK;
894 HRESULT WINAPI
895 Main_IDirect3DDeviceImpl_3_2T_GetLightState(LPDIRECT3DDEVICE3 iface,
896 D3DLIGHTSTATETYPE dwLightStateType,
897 LPDWORD lpdwLightState)
899 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
900 FIXME("(%p/%p)->(%08x,%p): stub!\n", This, iface, dwLightStateType, lpdwLightState);
901 return DD_OK;
904 HRESULT WINAPI
905 Main_IDirect3DDeviceImpl_3_2T_SetLightState(LPDIRECT3DDEVICE3 iface,
906 D3DLIGHTSTATETYPE dwLightStateType,
907 DWORD dwLightState)
909 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface);
910 FIXME("(%p/%p)->(%08x,%08lx): stub!\n", This, iface, dwLightStateType, dwLightState);
911 return DD_OK;
914 HRESULT WINAPI
915 Main_IDirect3DDeviceImpl_2_1T_SwapTextureHandles(LPDIRECT3DDEVICE2 iface,
916 LPDIRECT3DTEXTURE2 lpD3DTex1,
917 LPDIRECT3DTEXTURE2 lpD3DTex2)
919 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
920 IDirectDrawSurfaceImpl tmp,*surf1,*surf2;
921 TRACE("(%p/%p)->(%p,%p):\n", This, iface, lpD3DTex1, lpD3DTex2);
923 surf1 = ICOM_OBJECT(IDirectDrawSurfaceImpl,IDirect3DTexture2,lpD3DTex1);
924 surf2 = ICOM_OBJECT(IDirectDrawSurfaceImpl,IDirect3DTexture2,lpD3DTex2);
925 tmp = *surf1;
926 *surf1 = *surf2;
927 *surf2 = tmp;
929 return DD_OK;
932 HRESULT WINAPI
933 Main_IDirect3DDeviceImpl_2_NextViewport(LPDIRECT3DDEVICE2 iface,
934 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2,
935 LPDIRECT3DVIEWPORT2* lplpDirect3DViewport2,
936 DWORD dwFlags)
938 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
939 FIXME("(%p/%p)->(%p,%p,%08lx): stub!\n", This, iface, lpDirect3DViewport2, lplpDirect3DViewport2, dwFlags);
940 return DD_OK;
943 HRESULT WINAPI
944 Main_IDirect3DDeviceImpl_2_1T_EnumTextureFormats(LPDIRECT3DDEVICE2 iface,
945 LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc,
946 LPVOID lpArg)
948 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
949 FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3DEnumTextureProc, lpArg);
950 return DD_OK;
953 HRESULT WINAPI
954 Main_IDirect3DDeviceImpl_2_Begin(LPDIRECT3DDEVICE2 iface,
955 D3DPRIMITIVETYPE d3dpt,
956 D3DVERTEXTYPE dwVertexTypeDesc,
957 DWORD dwFlags)
959 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
960 FIXME("(%p/%p)->(%08x,%08x,%08lx): stub!\n", This, iface, d3dpt, dwVertexTypeDesc, dwFlags);
961 return DD_OK;
964 HRESULT WINAPI
965 Main_IDirect3DDeviceImpl_2_BeginIndexed(LPDIRECT3DDEVICE2 iface,
966 D3DPRIMITIVETYPE d3dptPrimitiveType,
967 D3DVERTEXTYPE d3dvtVertexType,
968 LPVOID lpvVertices,
969 DWORD dwNumVertices,
970 DWORD dwFlags)
972 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
973 FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwNumVertices, dwFlags);
974 return DD_OK;
977 HRESULT WINAPI
978 Main_IDirect3DDeviceImpl_2_DrawPrimitive(LPDIRECT3DDEVICE2 iface,
979 D3DPRIMITIVETYPE d3dptPrimitiveType,
980 D3DVERTEXTYPE d3dvtVertexType,
981 LPVOID lpvVertices,
982 DWORD dwVertexCount,
983 DWORD dwFlags)
985 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
986 FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwFlags);
987 return DD_OK;
990 HRESULT WINAPI
991 Main_IDirect3DDeviceImpl_2_DrawIndexedPrimitive(LPDIRECT3DDEVICE2 iface,
992 D3DPRIMITIVETYPE d3dptPrimitiveType,
993 D3DVERTEXTYPE d3dvtVertexType,
994 LPVOID lpvVertices,
995 DWORD dwVertexCount,
996 LPWORD dwIndices,
997 DWORD dwIndexCount,
998 DWORD dwFlags)
1000 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface);
1001 FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwIndices, dwIndexCount, dwFlags);
1002 return DD_OK;
1005 HRESULT WINAPI
1006 Main_IDirect3DDeviceImpl_1_Initialize(LPDIRECT3DDEVICE iface,
1007 LPDIRECT3D lpDirect3D,
1008 LPGUID lpGUID,
1009 LPD3DDEVICEDESC lpD3DDVDesc)
1011 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1012 FIXME("(%p/%p)->(%p,%p,%p): stub!\n", This, iface, lpDirect3D, lpGUID, lpD3DDVDesc);
1013 return DD_OK;
1016 HRESULT WINAPI
1017 Main_IDirect3DDeviceImpl_1_CreateExecuteBuffer(LPDIRECT3DDEVICE iface,
1018 LPD3DEXECUTEBUFFERDESC lpDesc,
1019 LPDIRECT3DEXECUTEBUFFER* lplpDirect3DExecuteBuffer,
1020 IUnknown* pUnkOuter)
1022 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1023 FIXME("(%p/%p)->(%p,%p,%p): stub!\n", This, iface, lpDesc, lplpDirect3DExecuteBuffer, pUnkOuter);
1024 return DD_OK;
1027 HRESULT WINAPI
1028 Main_IDirect3DDeviceImpl_1_Execute(LPDIRECT3DDEVICE iface,
1029 LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer,
1030 LPDIRECT3DVIEWPORT lpDirect3DViewport,
1031 DWORD dwFlags)
1033 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1034 IDirect3DExecuteBufferImpl *lpDirect3DExecuteBufferImpl = ICOM_OBJECT(IDirect3DExecuteBufferImpl, IDirect3DExecuteBuffer, lpDirect3DExecuteBuffer);
1035 IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport);
1037 TRACE("(%p/%p)->(%p,%p,%08lx)\n", This, iface, lpDirect3DExecuteBuffer, lpDirect3DViewport, dwFlags);
1039 /* Put this as the default context */
1041 /* Execute... */
1042 lpDirect3DExecuteBufferImpl->execute(lpDirect3DExecuteBufferImpl, This, lpDirect3DViewportImpl);
1044 return DD_OK;
1047 HRESULT WINAPI
1048 Main_IDirect3DDeviceImpl_1_NextViewport(LPDIRECT3DDEVICE iface,
1049 LPDIRECT3DVIEWPORT lpDirect3DViewport,
1050 LPDIRECT3DVIEWPORT* lplpDirect3DViewport,
1051 DWORD dwFlags)
1053 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1054 FIXME("(%p/%p)->(%p,%p,%08lx): stub!\n", This, iface, lpDirect3DViewport, lplpDirect3DViewport, dwFlags);
1055 return DD_OK;
1058 HRESULT WINAPI
1059 Main_IDirect3DDeviceImpl_1_Pick(LPDIRECT3DDEVICE iface,
1060 LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer,
1061 LPDIRECT3DVIEWPORT lpDirect3DViewport,
1062 DWORD dwFlags,
1063 LPD3DRECT lpRect)
1065 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1066 FIXME("(%p/%p)->(%p,%p,%08lx,%p): stub!\n", This, iface, lpDirect3DExecuteBuffer, lpDirect3DViewport, dwFlags, lpRect);
1067 return DD_OK;
1070 HRESULT WINAPI
1071 Main_IDirect3DDeviceImpl_1_GetPickRecords(LPDIRECT3DDEVICE iface,
1072 LPDWORD lpCount,
1073 LPD3DPICKRECORD lpD3DPickRec)
1075 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1076 FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpCount, lpD3DPickRec);
1077 return DD_OK;
1080 HRESULT WINAPI
1081 Main_IDirect3DDeviceImpl_1_CreateMatrix(LPDIRECT3DDEVICE iface,
1082 LPD3DMATRIXHANDLE lpD3DMatHandle)
1084 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1085 TRACE("(%p/%p)->(%p)\n", This, iface, lpD3DMatHandle);
1087 *lpD3DMatHandle = (D3DMATRIXHANDLE) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(D3DMATRIX));
1088 TRACE(" returning matrix handle %p\n", (void *) *lpD3DMatHandle);
1090 return DD_OK;
1093 HRESULT WINAPI
1094 Main_IDirect3DDeviceImpl_1_SetMatrix(LPDIRECT3DDEVICE iface,
1095 D3DMATRIXHANDLE D3DMatHandle,
1096 LPD3DMATRIX lpD3DMatrix)
1098 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1099 TRACE("(%p/%p)->(%08lx,%p)\n", This, iface, (DWORD) D3DMatHandle, lpD3DMatrix);
1101 dump_mat(lpD3DMatrix);
1102 *((D3DMATRIX *) D3DMatHandle) = *lpD3DMatrix;
1104 return DD_OK;
1107 HRESULT WINAPI
1108 Main_IDirect3DDeviceImpl_1_GetMatrix(LPDIRECT3DDEVICE iface,
1109 D3DMATRIXHANDLE D3DMatHandle,
1110 LPD3DMATRIX lpD3DMatrix)
1112 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1113 TRACE("(%p/%p)->(%08lx,%p)\n", This, iface, (DWORD) D3DMatHandle, lpD3DMatrix);
1115 *lpD3DMatrix = *((D3DMATRIX *) D3DMatHandle);
1117 return DD_OK;
1120 HRESULT WINAPI
1121 Main_IDirect3DDeviceImpl_1_DeleteMatrix(LPDIRECT3DDEVICE iface,
1122 D3DMATRIXHANDLE D3DMatHandle)
1124 ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface);
1125 TRACE("(%p/%p)->(%08lx)\n", This, iface, (DWORD) D3DMatHandle);
1127 HeapFree(GetProcessHeap(), 0, (void *) D3DMatHandle);
1129 return DD_OK;
1132 HRESULT WINAPI
1133 Thunk_IDirect3DDeviceImpl_3_QueryInterface(LPDIRECT3DDEVICE3 iface,
1134 REFIID riid,
1135 LPVOID* obp)
1137 TRACE("(%p)->(%s,%p) thunking to IDirect3DDevice7 interface.\n", iface, debugstr_guid(riid), obp);
1138 return IDirect3DDevice7_QueryInterface(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1139 riid,
1140 obp);
1143 HRESULT WINAPI
1144 Thunk_IDirect3DDeviceImpl_2_QueryInterface(LPDIRECT3DDEVICE2 iface,
1145 REFIID riid,
1146 LPVOID* obp)
1148 TRACE("(%p)->(%s,%p) thunking to IDirect3DDevice7 interface.\n", iface, debugstr_guid(riid), obp);
1149 return IDirect3DDevice7_QueryInterface(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1150 riid,
1151 obp);
1154 HRESULT WINAPI
1155 Thunk_IDirect3DDeviceImpl_1_QueryInterface(LPDIRECT3DDEVICE iface,
1156 REFIID riid,
1157 LPVOID* obp)
1159 TRACE("(%p)->(%s,%p) thunking to IDirect3DDevice7 interface.\n", iface, debugstr_guid(riid), obp);
1160 return IDirect3DDevice7_QueryInterface(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface),
1161 riid,
1162 obp);
1165 ULONG WINAPI
1166 Thunk_IDirect3DDeviceImpl_3_AddRef(LPDIRECT3DDEVICE3 iface)
1168 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1169 return IDirect3DDevice7_AddRef(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface));
1172 ULONG WINAPI
1173 Thunk_IDirect3DDeviceImpl_2_AddRef(LPDIRECT3DDEVICE2 iface)
1175 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1176 return IDirect3DDevice7_AddRef(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface));
1179 ULONG WINAPI
1180 Thunk_IDirect3DDeviceImpl_1_AddRef(LPDIRECT3DDEVICE iface)
1182 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1183 return IDirect3DDevice7_AddRef(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface));
1186 ULONG WINAPI
1187 Thunk_IDirect3DDeviceImpl_3_Release(LPDIRECT3DDEVICE3 iface)
1189 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1190 return IDirect3DDevice7_Release(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface));
1193 ULONG WINAPI
1194 Thunk_IDirect3DDeviceImpl_2_Release(LPDIRECT3DDEVICE2 iface)
1196 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1197 return IDirect3DDevice7_Release(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface));
1200 ULONG WINAPI
1201 Thunk_IDirect3DDeviceImpl_1_Release(LPDIRECT3DDEVICE iface)
1203 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1204 return IDirect3DDevice7_Release(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface));
1207 HRESULT WINAPI
1208 Thunk_IDirect3DDeviceImpl_2_AddViewport(LPDIRECT3DDEVICE2 iface,
1209 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2)
1211 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport2);
1212 return IDirect3DDevice3_AddViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1213 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */);
1216 HRESULT WINAPI
1217 Thunk_IDirect3DDeviceImpl_1_AddViewport(LPDIRECT3DDEVICE iface,
1218 LPDIRECT3DVIEWPORT lpDirect3DViewport)
1220 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport);
1221 return IDirect3DDevice3_AddViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1222 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport /* No need to cast here as all interfaces are equivalent */);
1225 HRESULT WINAPI
1226 Thunk_IDirect3DDeviceImpl_2_DeleteViewport(LPDIRECT3DDEVICE2 iface,
1227 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2)
1229 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport2);
1230 return IDirect3DDevice3_DeleteViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1231 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */);
1234 HRESULT WINAPI
1235 Thunk_IDirect3DDeviceImpl_1_DeleteViewport(LPDIRECT3DDEVICE iface,
1236 LPDIRECT3DVIEWPORT lpDirect3DViewport)
1238 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport);
1239 return IDirect3DDevice3_DeleteViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1240 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport /* No need to cast here as all interfaces are equivalent */);
1243 HRESULT WINAPI
1244 Thunk_IDirect3DDeviceImpl_2_NextViewport(LPDIRECT3DDEVICE3 iface,
1245 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2,
1246 LPDIRECT3DVIEWPORT2* lplpDirect3DViewport2,
1247 DWORD dwFlags)
1249 TRACE("(%p)->(%p,%p,%08lx) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport2, lplpDirect3DViewport2, dwFlags);
1250 return IDirect3DDevice3_NextViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1251 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */,
1252 (LPDIRECT3DVIEWPORT3*) lplpDirect3DViewport2,
1253 dwFlags);
1256 HRESULT WINAPI
1257 Thunk_IDirect3DDeviceImpl_1_NextViewport(LPDIRECT3DDEVICE3 iface,
1258 LPDIRECT3DVIEWPORT lpDirect3DViewport,
1259 LPDIRECT3DVIEWPORT* lplpDirect3DViewport,
1260 DWORD dwFlags)
1262 TRACE("(%p)->(%p,%p,%08lx) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport, lplpDirect3DViewport, dwFlags);
1263 return IDirect3DDevice3_NextViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1264 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport /* No need to cast here as all interfaces are equivalent */,
1265 (LPDIRECT3DVIEWPORT3*) lplpDirect3DViewport,
1266 dwFlags);
1269 HRESULT WINAPI
1270 Thunk_IDirect3DDeviceImpl_3_GetDirect3D(LPDIRECT3DDEVICE3 iface,
1271 LPDIRECT3D3* lplpDirect3D3)
1273 HRESULT ret;
1274 LPDIRECT3D7 ret_ptr;
1276 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpDirect3D3);
1277 ret = IDirect3DDevice7_GetDirect3D(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1278 &ret_ptr);
1279 *lplpDirect3D3 = COM_INTERFACE_CAST(IDirect3DImpl, IDirect3D7, IDirect3D3, ret_ptr);
1280 TRACE(" returning interface %p\n", *lplpDirect3D3);
1281 return ret;
1284 HRESULT WINAPI
1285 Thunk_IDirect3DDeviceImpl_2_GetDirect3D(LPDIRECT3DDEVICE2 iface,
1286 LPDIRECT3D2* lplpDirect3D2)
1288 HRESULT ret;
1289 LPDIRECT3D7 ret_ptr;
1291 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpDirect3D2);
1292 ret = IDirect3DDevice7_GetDirect3D(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1293 &ret_ptr);
1294 *lplpDirect3D2 = COM_INTERFACE_CAST(IDirect3DImpl, IDirect3D7, IDirect3D2, ret_ptr);
1295 TRACE(" returning interface %p\n", *lplpDirect3D2);
1296 return ret;
1299 HRESULT WINAPI
1300 Thunk_IDirect3DDeviceImpl_1_GetDirect3D(LPDIRECT3DDEVICE iface,
1301 LPDIRECT3D* lplpDirect3D)
1303 HRESULT ret;
1304 LPDIRECT3D7 ret_ptr;
1306 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpDirect3D);
1307 ret = IDirect3DDevice7_GetDirect3D(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface),
1308 &ret_ptr);
1309 *lplpDirect3D = COM_INTERFACE_CAST(IDirect3DImpl, IDirect3D7, IDirect3D, ret_ptr);
1310 TRACE(" returning interface %p\n", *lplpDirect3D);
1311 return ret;
1314 HRESULT WINAPI
1315 Thunk_IDirect3DDeviceImpl_2_SetCurrentViewport(LPDIRECT3DDEVICE2 iface,
1316 LPDIRECT3DVIEWPORT2 lpDirect3DViewport2)
1318 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpDirect3DViewport2);
1319 return IDirect3DDevice3_SetCurrentViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1320 (LPDIRECT3DVIEWPORT3) lpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */);
1323 HRESULT WINAPI
1324 Thunk_IDirect3DDeviceImpl_2_GetCurrentViewport(LPDIRECT3DDEVICE2 iface,
1325 LPDIRECT3DVIEWPORT2* lplpDirect3DViewport2)
1327 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lplpDirect3DViewport2);
1328 return IDirect3DDevice3_GetCurrentViewport(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1329 (LPDIRECT3DVIEWPORT3*) lplpDirect3DViewport2 /* No need to cast here as all interfaces are equivalent */);
1332 HRESULT WINAPI
1333 Thunk_IDirect3DDeviceImpl_3_EnumTextureFormats(LPDIRECT3DDEVICE3 iface,
1334 LPD3DENUMPIXELFORMATSCALLBACK lpD3DEnumPixelProc,
1335 LPVOID lpArg)
1337 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DEnumPixelProc, lpArg);
1338 return IDirect3DDevice7_EnumTextureFormats(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1339 lpD3DEnumPixelProc,
1340 lpArg);
1343 HRESULT WINAPI
1344 Thunk_IDirect3DDeviceImpl_3_BeginScene(LPDIRECT3DDEVICE3 iface)
1346 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1347 return IDirect3DDevice7_BeginScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface));
1350 HRESULT WINAPI
1351 Thunk_IDirect3DDeviceImpl_2_BeginScene(LPDIRECT3DDEVICE2 iface)
1353 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1354 return IDirect3DDevice7_BeginScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface));
1357 HRESULT WINAPI
1358 Thunk_IDirect3DDeviceImpl_1_BeginScene(LPDIRECT3DDEVICE iface)
1360 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1361 return IDirect3DDevice7_BeginScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface));
1364 HRESULT WINAPI
1365 Thunk_IDirect3DDeviceImpl_3_EndScene(LPDIRECT3DDEVICE3 iface)
1367 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1368 return IDirect3DDevice7_EndScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface));
1371 HRESULT WINAPI
1372 Thunk_IDirect3DDeviceImpl_2_EndScene(LPDIRECT3DDEVICE2 iface)
1374 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1375 return IDirect3DDevice7_EndScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface));
1378 HRESULT WINAPI
1379 Thunk_IDirect3DDeviceImpl_1_EndScene(LPDIRECT3DDEVICE iface)
1381 TRACE("(%p)->() thunking to IDirect3DDevice7 interface.\n", iface);
1382 return IDirect3DDevice7_EndScene(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice7, iface));
1385 HRESULT WINAPI
1386 Thunk_IDirect3DDeviceImpl_3_SetTransform(LPDIRECT3DDEVICE3 iface,
1387 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1388 LPD3DMATRIX lpD3DMatrix)
1390 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1391 return IDirect3DDevice7_SetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1392 dtstTransformStateType,
1393 lpD3DMatrix);
1396 HRESULT WINAPI
1397 Thunk_IDirect3DDeviceImpl_2_SetTransform(LPDIRECT3DDEVICE2 iface,
1398 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1399 LPD3DMATRIX lpD3DMatrix)
1401 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1402 return IDirect3DDevice7_SetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1403 dtstTransformStateType,
1404 lpD3DMatrix);
1407 HRESULT WINAPI
1408 Thunk_IDirect3DDeviceImpl_3_GetTransform(LPDIRECT3DDEVICE3 iface,
1409 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1410 LPD3DMATRIX lpD3DMatrix)
1412 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1413 return IDirect3DDevice7_GetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1414 dtstTransformStateType,
1415 lpD3DMatrix);
1418 HRESULT WINAPI
1419 Thunk_IDirect3DDeviceImpl_2_GetTransform(LPDIRECT3DDEVICE2 iface,
1420 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1421 LPD3DMATRIX lpD3DMatrix)
1423 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1424 return IDirect3DDevice7_GetTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1425 dtstTransformStateType,
1426 lpD3DMatrix);
1429 HRESULT WINAPI
1430 Thunk_IDirect3DDeviceImpl_3_MultiplyTransform(LPDIRECT3DDEVICE3 iface,
1431 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1432 LPD3DMATRIX lpD3DMatrix)
1434 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1435 return IDirect3DDevice7_MultiplyTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1436 dtstTransformStateType,
1437 lpD3DMatrix);
1440 HRESULT WINAPI
1441 Thunk_IDirect3DDeviceImpl_2_MultiplyTransform(LPDIRECT3DDEVICE2 iface,
1442 D3DTRANSFORMSTATETYPE dtstTransformStateType,
1443 LPD3DMATRIX lpD3DMatrix)
1445 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dtstTransformStateType, lpD3DMatrix);
1446 return IDirect3DDevice7_MultiplyTransform(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1447 dtstTransformStateType,
1448 lpD3DMatrix);
1451 HRESULT WINAPI
1452 Thunk_IDirect3DDeviceImpl_3_SetRenderState(LPDIRECT3DDEVICE3 iface,
1453 D3DRENDERSTATETYPE dwRenderStateType,
1454 DWORD dwRenderState)
1456 TRACE("(%p)->(%08x,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, dwRenderStateType, dwRenderState);
1457 return IDirect3DDevice7_SetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1458 dwRenderStateType,
1459 dwRenderState);
1462 HRESULT WINAPI
1463 Thunk_IDirect3DDeviceImpl_2_SetRenderState(LPDIRECT3DDEVICE2 iface,
1464 D3DRENDERSTATETYPE dwRenderStateType,
1465 DWORD dwRenderState)
1467 TRACE("(%p)->(%08x,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, dwRenderStateType, dwRenderState);
1468 return IDirect3DDevice7_SetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1469 dwRenderStateType,
1470 dwRenderState);
1473 HRESULT WINAPI
1474 Thunk_IDirect3DDeviceImpl_3_GetRenderState(LPDIRECT3DDEVICE3 iface,
1475 D3DRENDERSTATETYPE dwRenderStateType,
1476 LPDWORD lpdwRenderState)
1478 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dwRenderStateType, lpdwRenderState);
1479 return IDirect3DDevice7_GetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1480 dwRenderStateType,
1481 lpdwRenderState);
1484 HRESULT WINAPI
1485 Thunk_IDirect3DDeviceImpl_2_GetRenderState(LPDIRECT3DDEVICE2 iface,
1486 D3DRENDERSTATETYPE dwRenderStateType,
1487 LPDWORD lpdwRenderState)
1489 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dwRenderStateType, lpdwRenderState);
1490 return IDirect3DDevice7_GetRenderState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1491 dwRenderStateType,
1492 lpdwRenderState);
1495 HRESULT WINAPI
1496 Thunk_IDirect3DDeviceImpl_3_DrawPrimitive(LPDIRECT3DDEVICE3 iface,
1497 D3DPRIMITIVETYPE d3dptPrimitiveType,
1498 DWORD d3dvtVertexType,
1499 LPVOID lpvVertices,
1500 DWORD dwVertexCount,
1501 DWORD dwFlags)
1503 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwFlags);
1504 return IDirect3DDevice7_DrawPrimitive(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1505 d3dptPrimitiveType,
1506 d3dvtVertexType,
1507 lpvVertices,
1508 dwVertexCount,
1509 dwFlags);
1512 HRESULT WINAPI
1513 Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitive(LPDIRECT3DDEVICE3 iface,
1514 D3DPRIMITIVETYPE d3dptPrimitiveType,
1515 DWORD d3dvtVertexType,
1516 LPVOID lpvVertices,
1517 DWORD dwVertexCount,
1518 LPWORD dwIndices,
1519 DWORD dwIndexCount,
1520 DWORD dwFlags)
1522 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwIndices, dwIndexCount, dwFlags);
1523 return IDirect3DDevice7_DrawIndexedPrimitive(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1524 d3dptPrimitiveType,
1525 d3dvtVertexType,
1526 lpvVertices,
1527 dwVertexCount,
1528 dwIndices,
1529 dwIndexCount,
1530 dwFlags);
1533 HRESULT WINAPI
1534 Thunk_IDirect3DDeviceImpl_3_SetClipStatus(LPDIRECT3DDEVICE3 iface,
1535 LPD3DCLIPSTATUS lpD3DClipStatus)
1537 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DClipStatus);
1538 return IDirect3DDevice7_SetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1539 lpD3DClipStatus);
1542 HRESULT WINAPI
1543 Thunk_IDirect3DDeviceImpl_2_SetClipStatus(LPDIRECT3DDEVICE2 iface,
1544 LPD3DCLIPSTATUS lpD3DClipStatus)
1546 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DClipStatus);
1547 return IDirect3DDevice7_SetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1548 lpD3DClipStatus);
1551 HRESULT WINAPI
1552 Thunk_IDirect3DDeviceImpl_3_GetClipStatus(LPDIRECT3DDEVICE3 iface,
1553 LPD3DCLIPSTATUS lpD3DClipStatus)
1555 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DClipStatus);
1556 return IDirect3DDevice7_GetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1557 lpD3DClipStatus);
1560 HRESULT WINAPI
1561 Thunk_IDirect3DDeviceImpl_2_GetClipStatus(LPDIRECT3DDEVICE2 iface,
1562 LPD3DCLIPSTATUS lpD3DClipStatus)
1564 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpD3DClipStatus);
1565 return IDirect3DDevice7_GetClipStatus(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1566 lpD3DClipStatus);
1569 HRESULT WINAPI
1570 Thunk_IDirect3DDeviceImpl_3_DrawPrimitiveStrided(LPDIRECT3DDEVICE3 iface,
1571 D3DPRIMITIVETYPE d3dptPrimitiveType,
1572 DWORD dwVertexType,
1573 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
1574 DWORD dwVertexCount,
1575 DWORD dwFlags)
1577 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, d3dptPrimitiveType, dwVertexType, lpD3DDrawPrimStrideData, dwVertexCount, dwFlags);
1578 return IDirect3DDevice7_DrawPrimitiveStrided(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1579 d3dptPrimitiveType,
1580 dwVertexType,
1581 lpD3DDrawPrimStrideData,
1582 dwVertexCount,
1583 dwFlags);
1586 HRESULT WINAPI
1587 Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitiveStrided(LPDIRECT3DDEVICE3 iface,
1588 D3DPRIMITIVETYPE d3dptPrimitiveType,
1589 DWORD dwVertexType,
1590 LPD3DDRAWPRIMITIVESTRIDEDDATA lpD3DDrawPrimStrideData,
1591 DWORD dwVertexCount,
1592 LPWORD lpIndex,
1593 DWORD dwIndexCount,
1594 DWORD dwFlags)
1596 TRACE("(%p)->(%08x,%08lx,%p,%08lx,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, d3dptPrimitiveType, dwVertexType, lpD3DDrawPrimStrideData, dwVertexCount, lpIndex, dwIndexCount, dwFlags);
1597 return IDirect3DDevice7_DrawIndexedPrimitiveStrided(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1598 d3dptPrimitiveType,
1599 dwVertexType,
1600 lpD3DDrawPrimStrideData,
1601 dwVertexCount,
1602 lpIndex,
1603 dwIndexCount,
1604 dwFlags);
1607 HRESULT WINAPI
1608 Thunk_IDirect3DDeviceImpl_3_ComputeSphereVisibility(LPDIRECT3DDEVICE3 iface,
1609 LPD3DVECTOR lpCenters,
1610 LPD3DVALUE lpRadii,
1611 DWORD dwNumSpheres,
1612 DWORD dwFlags,
1613 LPDWORD lpdwReturnValues)
1615 TRACE("(%p)->(%p,%p,%08lx,%08lx,%p) thunking to IDirect3DDevice7 interface.\n", iface, lpCenters, lpRadii, dwNumSpheres, dwFlags, lpdwReturnValues);
1616 return IDirect3DDevice7_ComputeSphereVisibility(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1617 lpCenters,
1618 lpRadii,
1619 dwNumSpheres,
1620 dwFlags,
1621 lpdwReturnValues);
1624 HRESULT WINAPI
1625 Thunk_IDirect3DDeviceImpl_3_GetTextureStageState(LPDIRECT3DDEVICE3 iface,
1626 DWORD dwStage,
1627 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
1628 LPDWORD lpdwState)
1630 TRACE("(%p)->(%08lx,%08x,%p) thunking to IDirect3DDevice7 interface.\n", iface, dwStage, d3dTexStageStateType, lpdwState);
1631 return IDirect3DDevice7_GetTextureStageState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1632 dwStage,
1633 d3dTexStageStateType,
1634 lpdwState);
1637 HRESULT WINAPI
1638 Thunk_IDirect3DDeviceImpl_3_SetTextureStageState(LPDIRECT3DDEVICE3 iface,
1639 DWORD dwStage,
1640 D3DTEXTURESTAGESTATETYPE d3dTexStageStateType,
1641 DWORD dwState)
1643 TRACE("(%p)->(%08lx,%08x,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, dwStage, d3dTexStageStateType, dwState);
1644 return IDirect3DDevice7_SetTextureStageState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1645 dwStage,
1646 d3dTexStageStateType,
1647 dwState);
1650 HRESULT WINAPI
1651 Thunk_IDirect3DDeviceImpl_3_ValidateDevice(LPDIRECT3DDEVICE3 iface,
1652 LPDWORD lpdwPasses)
1654 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lpdwPasses);
1655 return IDirect3DDevice7_ValidateDevice(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1656 lpdwPasses);
1659 HRESULT WINAPI
1660 Thunk_IDirect3DDeviceImpl_2_GetCaps(LPDIRECT3DDEVICE2 iface,
1661 LPD3DDEVICEDESC lpD3DHWDevDesc,
1662 LPD3DDEVICEDESC lpD3DHELDevDesc)
1664 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice3 interface.\n", iface, lpD3DHWDevDesc, lpD3DHELDevDesc);
1665 return IDirect3DDevice3_GetCaps(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1666 lpD3DHWDevDesc,
1667 lpD3DHELDevDesc);
1670 HRESULT WINAPI
1671 Thunk_IDirect3DDeviceImpl_1_GetCaps(LPDIRECT3DDEVICE iface,
1672 LPD3DDEVICEDESC lpD3DHWDevDesc,
1673 LPD3DDEVICEDESC lpD3DHELDevDesc)
1675 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice3 interface.\n", iface, lpD3DHWDevDesc, lpD3DHELDevDesc);
1676 return IDirect3DDevice3_GetCaps(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1677 lpD3DHWDevDesc,
1678 lpD3DHELDevDesc);
1681 HRESULT WINAPI
1682 Thunk_IDirect3DDeviceImpl_1_SwapTextureHandles(LPDIRECT3DDEVICE iface,
1683 LPDIRECT3DTEXTURE lpD3DTex1,
1684 LPDIRECT3DTEXTURE lpD3DTex2)
1686 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice2 interface.\n", iface, lpD3DTex1, lpD3DTex2);
1687 return IDirect3DDevice2_SwapTextureHandles(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice2, iface),
1688 COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirect3DTexture, IDirect3DTexture2, lpD3DTex1),
1689 COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirect3DTexture, IDirect3DTexture2, lpD3DTex2));
1692 HRESULT WINAPI
1693 Thunk_IDirect3DDeviceImpl_2_GetStats(LPDIRECT3DDEVICE2 iface,
1694 LPD3DSTATS lpD3DStats)
1696 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpD3DStats);
1697 return IDirect3DDevice3_GetStats(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1698 lpD3DStats);
1701 HRESULT WINAPI
1702 Thunk_IDirect3DDeviceImpl_1_GetStats(LPDIRECT3DDEVICE iface,
1703 LPD3DSTATS lpD3DStats)
1705 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpD3DStats);
1706 return IDirect3DDevice3_GetStats(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice3, iface),
1707 lpD3DStats);
1710 HRESULT WINAPI
1711 Thunk_IDirect3DDeviceImpl_3_SetRenderTarget(LPDIRECT3DDEVICE3 iface,
1712 LPDIRECTDRAWSURFACE4 lpNewRenderTarget,
1713 DWORD dwFlags)
1715 TRACE("(%p)->(%p,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, lpNewRenderTarget, dwFlags);
1716 return IDirect3DDevice7_SetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1717 (LPDIRECTDRAWSURFACE7) lpNewRenderTarget /* No cast needed as DSurf4 == DSurf7 */,
1718 dwFlags);
1721 HRESULT WINAPI
1722 Thunk_IDirect3DDeviceImpl_3_GetRenderTarget(LPDIRECT3DDEVICE3 iface,
1723 LPDIRECTDRAWSURFACE4* lplpRenderTarget)
1725 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpRenderTarget);
1726 return IDirect3DDevice7_GetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1727 (LPDIRECTDRAWSURFACE7*) lplpRenderTarget /* No cast needed as DSurf4 == DSurf7 */);
1730 HRESULT WINAPI
1731 Thunk_IDirect3DDeviceImpl_2_SetRenderTarget(LPDIRECT3DDEVICE2 iface,
1732 LPDIRECTDRAWSURFACE lpNewRenderTarget,
1733 DWORD dwFlags)
1735 TRACE("(%p)->(%p,%08lx) thunking to IDirect3DDevice7 interface.\n", iface, lpNewRenderTarget, dwFlags);
1736 return IDirect3DDevice7_SetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1737 COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface3, IDirectDrawSurface7, lpNewRenderTarget),
1738 dwFlags);
1741 HRESULT WINAPI
1742 Thunk_IDirect3DDeviceImpl_2_GetRenderTarget(LPDIRECT3DDEVICE2 iface,
1743 LPDIRECTDRAWSURFACE* lplpRenderTarget)
1745 HRESULT ret;
1746 LPDIRECTDRAWSURFACE7 ret_val;
1748 TRACE("(%p)->(%p) thunking to IDirect3DDevice7 interface.\n", iface, lplpRenderTarget);
1749 ret = IDirect3DDevice7_GetRenderTarget(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice7, iface),
1750 &ret_val);
1751 *lplpRenderTarget = (LPDIRECTDRAWSURFACE) COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface7, IDirectDrawSurface3, ret_val);
1752 TRACE(" returning interface %p\n", *lplpRenderTarget);
1753 return ret;
1756 HRESULT WINAPI
1757 Thunk_IDirect3DDeviceImpl_2_Vertex(LPDIRECT3DDEVICE2 iface,
1758 LPVOID lpVertexType)
1760 TRACE("(%p)->(%p) thunking to IDirect3DDevice3 interface.\n", iface, lpVertexType);
1761 return IDirect3DDevice3_Vertex(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1762 lpVertexType);
1765 HRESULT WINAPI
1766 Thunk_IDirect3DDeviceImpl_2_Index(LPDIRECT3DDEVICE2 iface,
1767 WORD wVertexIndex)
1769 TRACE("(%p)->(%04x) thunking to IDirect3DDevice3 interface.\n", iface, wVertexIndex);
1770 return IDirect3DDevice3_Index(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1771 wVertexIndex);
1774 HRESULT WINAPI
1775 Thunk_IDirect3DDeviceImpl_2_End(LPDIRECT3DDEVICE2 iface,
1776 DWORD dwFlags)
1778 TRACE("(%p)->(%08lx) thunking to IDirect3DDevice3 interface.\n", iface, dwFlags);
1779 return IDirect3DDevice3_End(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1780 dwFlags);
1783 HRESULT WINAPI
1784 Thunk_IDirect3DDeviceImpl_2_GetLightState(LPDIRECT3DDEVICE2 iface,
1785 D3DLIGHTSTATETYPE dwLightStateType,
1786 LPDWORD lpdwLightState)
1788 TRACE("(%p)->(%08x,%p) thunking to IDirect3DDevice3 interface.\n", iface, dwLightStateType, lpdwLightState);
1789 return IDirect3DDevice3_GetLightState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1790 dwLightStateType,
1791 lpdwLightState);
1794 HRESULT WINAPI
1795 Thunk_IDirect3DDeviceImpl_2_SetLightState(LPDIRECT3DDEVICE2 iface,
1796 D3DLIGHTSTATETYPE dwLightStateType,
1797 DWORD dwLightState)
1799 TRACE("(%p)->(%08x,%08lx) thunking to IDirect3DDevice3 interface.\n", iface, dwLightStateType, dwLightState);
1800 return IDirect3DDevice3_SetLightState(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice2, IDirect3DDevice3, iface),
1801 dwLightStateType,
1802 dwLightState);
1805 HRESULT WINAPI
1806 Thunk_IDirect3DDeviceImpl_1_EnumTextureFormats(LPDIRECT3DDEVICE iface,
1807 LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc,
1808 LPVOID lpArg)
1810 TRACE("(%p)->(%p,%p) thunking to IDirect3DDevice2 interface.\n", iface, lpD3DEnumTextureProc, lpArg);
1811 return IDirect3DDevice2_EnumTextureFormats(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice, IDirect3DDevice2, iface),
1812 lpD3DEnumTextureProc,
1813 lpArg);
1816 HRESULT WINAPI
1817 Thunk_IDirect3DDeviceImpl_3_SetTexture(LPDIRECT3DDEVICE3 iface,
1818 DWORD dwStage,
1819 LPDIRECT3DTEXTURE2 lpTexture2)
1821 TRACE("(%p)->(%ld,%p) thunking to IDirect3DDevice7 interface.\n", iface, dwStage, lpTexture2);
1822 return IDirect3DDevice7_SetTexture(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1823 dwStage,
1824 COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirect3DTexture2, IDirectDrawSurface7, lpTexture2));
1827 HRESULT WINAPI
1828 Thunk_IDirect3DDeviceImpl_3_DrawPrimitiveVB(LPDIRECT3DDEVICE3 iface,
1829 D3DPRIMITIVETYPE d3dptPrimitiveType,
1830 LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf,
1831 DWORD dwStartVertex,
1832 DWORD dwNumVertices,
1833 DWORD dwFlags)
1835 TRACE("(%p)->(%08x,%p,%08lx,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface,
1836 d3dptPrimitiveType, lpD3DVertexBuf, dwStartVertex, dwNumVertices, dwFlags);
1837 return IDirect3DDevice7_DrawPrimitiveVB(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1838 d3dptPrimitiveType,
1839 COM_INTERFACE_CAST(IDirect3DVertexBufferImpl, IDirect3DVertexBuffer, IDirect3DVertexBuffer7, lpD3DVertexBuf),
1840 dwStartVertex,
1841 dwNumVertices,
1842 dwFlags);
1845 HRESULT WINAPI
1846 Thunk_IDirect3DDeviceImpl_3_DrawIndexedPrimitiveVB(LPDIRECT3DDEVICE3 iface,
1847 D3DPRIMITIVETYPE d3dptPrimitiveType,
1848 LPDIRECT3DVERTEXBUFFER lpD3DVertexBuf,
1849 LPWORD lpwIndices,
1850 DWORD dwIndexCount,
1851 DWORD dwFlags)
1853 TRACE("(%p)->(%08x,%p,%p,%08lx,%08lx) thunking to IDirect3DDevice7 interface.\n", iface,
1854 d3dptPrimitiveType, lpD3DVertexBuf, lpwIndices, dwIndexCount, dwFlags);
1855 return IDirect3DDevice7_DrawIndexedPrimitiveVB(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1856 d3dptPrimitiveType,
1857 COM_INTERFACE_CAST(IDirect3DVertexBufferImpl, IDirect3DVertexBuffer, IDirect3DVertexBuffer7, lpD3DVertexBuf),
1859 dwIndexCount,
1860 lpwIndices,
1861 dwIndexCount,
1862 dwFlags);
1865 HRESULT WINAPI
1866 Thunk_IDirect3DDeviceImpl_3_GetTexture(LPDIRECT3DDEVICE3 iface,
1867 DWORD dwStage,
1868 LPDIRECT3DTEXTURE2* lplpTexture2)
1870 HRESULT ret;
1871 LPDIRECTDRAWSURFACE7 ret_val;
1873 TRACE("(%p)->(%ld,%p) thunking to IDirect3DDevice7 interface.\n", iface, dwStage, lplpTexture2);
1874 ret = IDirect3DDevice7_GetTexture(COM_INTERFACE_CAST(IDirect3DDeviceImpl, IDirect3DDevice3, IDirect3DDevice7, iface),
1875 dwStage,
1876 &ret_val);
1878 *lplpTexture2 = COM_INTERFACE_CAST(IDirectDrawSurfaceImpl, IDirectDrawSurface7, IDirect3DTexture2, ret_val);
1880 TRACE(" returning interface %p.\n", *lplpTexture2);
1882 return ret;