4 This files contains all the common stuff for D3D devices.
13 #include "wine/obj_base.h"
16 #include "debugtools.h"
18 #include "d3d_private.h"
20 DEFAULT_DEBUG_CHANNEL(ddraw
);
22 /*******************************************************************************
26 HRESULT WINAPI
IDirect3DDevice2Impl_QueryInterface(
27 LPDIRECT3DDEVICE2 iface
, REFIID riid
, LPVOID
* ppvObj
29 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
30 FIXME("(%p)->(%s,%p): stub\n", This
, debugstr_guid(riid
),ppvObj
);
34 ULONG WINAPI
IDirect3DDevice2Impl_AddRef(LPDIRECT3DDEVICE2 iface
)
36 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
37 TRACE("(%p)->()incrementing from %lu.\n", This
, This
->ref
);
44 ULONG WINAPI
IDirect3DDevice2Impl_Release(LPDIRECT3DDEVICE2 iface
)
46 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
47 FIXME("(%p)->() decrementing from %lu.\n", This
, This
->ref
);
50 HeapFree(GetProcessHeap(),0,This
);
57 /*** IDirect3DDevice2 methods ***/
58 HRESULT WINAPI
IDirect3DDevice2Impl_GetCaps(
59 LPDIRECT3DDEVICE2 iface
, LPD3DDEVICEDESC lpdescsoft
,
60 LPD3DDEVICEDESC lpdeschard
62 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
63 FIXME("(%p)->(%p,%p), stub!\n", This
, lpdescsoft
, lpdeschard
);
69 HRESULT WINAPI
IDirect3DDevice2Impl_SwapTextureHandles(
70 LPDIRECT3DDEVICE2 iface
,LPDIRECT3DTEXTURE2 lptex1
,LPDIRECT3DTEXTURE2 lptex2
72 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
73 FIXME("(%p)->(%p,%p): stub\n", This
, lptex1
, lptex2
);
78 HRESULT WINAPI
IDirect3DDevice2Impl_GetStats(
79 LPDIRECT3DDEVICE2 iface
, LPD3DSTATS lpstats
)
81 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
82 FIXME("(%p)->(%p): stub\n", This
, lpstats
);
87 HRESULT WINAPI
IDirect3DDevice2Impl_AddViewport(
88 LPDIRECT3DDEVICE2 iface
, LPDIRECT3DVIEWPORT2 lpvp
90 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
91 IDirect3DViewport2Impl
* ilpvp
=(IDirect3DViewport2Impl
*)lpvp
;
92 FIXME("(%p)->(%p): stub\n", This
, ilpvp
);
94 /* Adds this viewport to the viewport list */
95 ilpvp
->next
= This
->viewport_list
;
96 This
->viewport_list
= ilpvp
;
101 HRESULT WINAPI
IDirect3DDevice2Impl_DeleteViewport(
102 LPDIRECT3DDEVICE2 iface
, LPDIRECT3DVIEWPORT2 lpvp
)
104 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
105 IDirect3DViewport2Impl
* ilpvp
=(IDirect3DViewport2Impl
*)lpvp
;
106 IDirect3DViewport2Impl
*cur
, *prev
;
107 FIXME("(%p)->(%p): stub\n", This
, lpvp
);
109 /* Finds this viewport in the list */
111 cur
= This
->viewport_list
;
112 while ((cur
!= NULL
) && (cur
!= ilpvp
)) {
117 return DDERR_INVALIDOBJECT
;
121 This
->viewport_list
= cur
->next
;
123 prev
->next
= cur
->next
;
127 HRESULT WINAPI
IDirect3DDevice2Impl_NextViewport(
128 LPDIRECT3DDEVICE2 iface
, LPDIRECT3DVIEWPORT2 lpvp
,
129 LPDIRECT3DVIEWPORT2
* lplpvp
, DWORD dwFlags
131 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
132 IDirect3DViewport2Impl
* ilpvp
=(IDirect3DViewport2Impl
*)lpvp
;
133 IDirect3DViewport2Impl
** ilplpvp
=(IDirect3DViewport2Impl
**)lplpvp
;
134 FIXME("(%p)->(%p,%p,%08lx): stub\n", This
, lpvp
, lpvp
, dwFlags
);
138 *ilplpvp
= ilpvp
->next
;
141 *ilplpvp
= This
->viewport_list
;
144 ilpvp
= This
->viewport_list
;
145 while (ilpvp
->next
!= NULL
)
150 return DDERR_INVALIDPARAMS
;
155 HRESULT WINAPI
IDirect3DDevice2Impl_EnumTextureFormats(
156 LPDIRECT3DDEVICE2 iface
, LPD3DENUMTEXTUREFORMATSCALLBACK cb
, LPVOID context
158 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
159 FIXME("(%p)->(%p,%p), stub!\n", This
, cb
, context
);
161 return DD_OK
; /* no texture formats in stub implementation */
166 HRESULT WINAPI
IDirect3DDevice2Impl_BeginScene(LPDIRECT3DDEVICE2 iface
)
168 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
170 FIXME("(%p)->(), stub!\n", This
);
172 /* Here, we should get the DDraw surface and 'copy it' to the
173 OpenGL surface.... */
177 HRESULT WINAPI
IDirect3DDevice2Impl_EndScene(LPDIRECT3DDEVICE2 iface
)
179 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
180 FIXME("(%p)->(): stub\n", This
);
184 HRESULT WINAPI
IDirect3DDevice2Impl_GetDirect3D(
185 LPDIRECT3DDEVICE2 iface
, LPDIRECT3D2
*lpd3d2
187 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
188 TRACE("(%p)->(%p): stub\n", This
, lpd3d2
);
189 *lpd3d2
= (LPDIRECT3D2
)This
->d3d
;
193 /*** DrawPrimitive API ***/
194 HRESULT WINAPI
IDirect3DDevice2Impl_SetCurrentViewport(
195 LPDIRECT3DDEVICE2 iface
, LPDIRECT3DVIEWPORT2 lpvp
197 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
198 IDirect3DViewport2Impl
* ilpvp
=(IDirect3DViewport2Impl
*)lpvp
;
199 FIXME("(%p)->(%p): stub\n", This
, ilpvp
);
201 /* Should check if the viewport was added or not */
203 /* Set this viewport as the current viewport */
204 This
->current_viewport
= ilpvp
;
206 /* Activate this viewport */
207 ilpvp
->device
.active_device2
= This
;
208 ilpvp
->activate(ilpvp
);
215 HRESULT WINAPI
IDirect3DDevice2Impl_GetCurrentViewport(
216 LPDIRECT3DDEVICE2 iface
, LPDIRECT3DVIEWPORT2
*lplpvp
218 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
219 FIXME("(%p)->(%p): stub\n", This
, lplpvp
);
221 /* Returns the current viewport */
222 *lplpvp
= (LPDIRECT3DVIEWPORT2
)This
->current_viewport
;
227 HRESULT WINAPI
IDirect3DDevice2Impl_SetRenderTarget(
228 LPDIRECT3DDEVICE2 iface
, LPDIRECTDRAWSURFACE lpdds
, DWORD dwFlags
230 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
231 FIXME("(%p)->(%p,%08lx): stub\n", This
, lpdds
, dwFlags
);
236 HRESULT WINAPI
IDirect3DDevice2Impl_GetRenderTarget(
237 LPDIRECT3DDEVICE2 iface
, LPDIRECTDRAWSURFACE
*lplpdds
239 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
240 FIXME("(%p)->(%p): stub\n", This
, lplpdds
);
242 /* Returns the current rendering target (the surface on wich we render) */
243 *lplpdds
= (LPDIRECTDRAWSURFACE
)This
->surface
;
248 HRESULT WINAPI
IDirect3DDevice2Impl_Begin(
249 LPDIRECT3DDEVICE2 iface
, D3DPRIMITIVETYPE d3dp
, D3DVERTEXTYPE d3dv
,
252 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
253 FIXME("(%p)->(%d,%d,%08lx): stub\n", This
, d3dp
, d3dv
, dwFlags
);
258 HRESULT WINAPI
IDirect3DDevice2Impl_BeginIndexed(
259 LPDIRECT3DDEVICE2 iface
, D3DPRIMITIVETYPE d3dp
, D3DVERTEXTYPE d3dv
,
260 LPVOID lpvert
, DWORD numvert
, DWORD dwFlags
262 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
263 FIXME("(%p)->(%d,%d,%p,%ld,%08lx): stub\n", This
, d3dp
, d3dv
, lpvert
, numvert
, dwFlags
);
268 HRESULT WINAPI
IDirect3DDevice2Impl_Vertex(
269 LPDIRECT3DDEVICE2 iface
,LPVOID lpvert
271 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
272 FIXME("(%p)->(%p): stub\n", This
, lpvert
);
277 HRESULT WINAPI
IDirect3DDevice2Impl_Index(LPDIRECT3DDEVICE2 iface
, WORD index
) {
278 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
279 FIXME("(%p)->(%d): stub\n", This
, index
);
286 HRESULT WINAPI
IDirect3DDevice2Impl_End(LPDIRECT3DDEVICE2 iface
,DWORD dwFlags
) {
287 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
288 FIXME("(%p)->(%08lx): stub\n", This
, dwFlags
);
293 HRESULT WINAPI
IDirect3DDevice2Impl_GetRenderState(
294 LPDIRECT3DDEVICE2 iface
, D3DRENDERSTATETYPE d3drs
, LPDWORD lprstate
296 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
297 FIXME("(%p)->(%d,%p): stub\n", This
, d3drs
, lprstate
);
302 HRESULT WINAPI
IDirect3DDevice2Impl_SetRenderState(
303 LPDIRECT3DDEVICE2 iface
, D3DRENDERSTATETYPE dwRenderStateType
,
306 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
308 FIXME("(%p)->(%d,%ld)\n", This
, dwRenderStateType
, dwRenderState
);
313 HRESULT WINAPI
IDirect3DDevice2Impl_GetLightState(
314 LPDIRECT3DDEVICE2 iface
, D3DLIGHTSTATETYPE d3dls
, LPDWORD lplstate
316 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
317 FIXME("(%p)->(%d,%p): stub\n", This
, d3dls
, lplstate
);
324 HRESULT WINAPI
IDirect3DDevice2Impl_SetLightState(
325 LPDIRECT3DDEVICE2 iface
, D3DLIGHTSTATETYPE dwLightStateType
,
328 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
329 FIXME("(%p)->(%d,%08lx): stub\n", This
, dwLightStateType
, dwLightState
);
333 HRESULT WINAPI
IDirect3DDevice2Impl_SetTransform(
334 LPDIRECT3DDEVICE2 iface
, D3DTRANSFORMSTATETYPE d3dts
, LPD3DMATRIX lpmatrix
336 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
337 FIXME("(%p)->(%d,%p),stub!\n",This
,d3dts
,lpmatrix
);
343 HRESULT WINAPI
IDirect3DDevice2Impl_GetTransform(
344 LPDIRECT3DDEVICE2 iface
, D3DTRANSFORMSTATETYPE d3dts
, LPD3DMATRIX lpmatrix
346 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
347 FIXME("(%p)->(%d,%p): stub\n", This
, d3dts
, lpmatrix
);
354 HRESULT WINAPI
IDirect3DDevice2Impl_MultiplyTransform(
355 LPDIRECT3DDEVICE2 iface
, D3DTRANSFORMSTATETYPE d3dts
, LPD3DMATRIX lpmatrix
357 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
358 FIXME("(%p)->(%d,%p): stub\n", This
, d3dts
, lpmatrix
);
363 HRESULT WINAPI
IDirect3DDevice2Impl_DrawPrimitive(
364 LPDIRECT3DDEVICE2 iface
, D3DPRIMITIVETYPE d3dp
, D3DVERTEXTYPE d3dv
,
365 LPVOID lpvertex
, DWORD vertcount
, DWORD dwFlags
367 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
369 TRACE("(%p)->(%d,%d,%p,%ld,%08lx): stub\n", This
, d3dp
, d3dv
, lpvertex
, vertcount
, dwFlags
);
374 HRESULT WINAPI
IDirect3DDevice2Impl_DrawIndexedPrimitive(
375 LPDIRECT3DDEVICE2 iface
, D3DPRIMITIVETYPE d3dp
, D3DVERTEXTYPE d3dv
,
376 LPVOID lpvertex
, DWORD vertcount
, LPWORD lpindexes
, DWORD indexcount
,
379 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
380 TRACE("(%p)->(%d,%d,%p,%ld,%p,%ld,%08lx): stub\n", This
, d3dp
, d3dv
, lpvertex
, vertcount
, lpindexes
, indexcount
, dwFlags
);
384 HRESULT WINAPI
IDirect3DDevice2Impl_SetClipStatus(
385 LPDIRECT3DDEVICE2 iface
, LPD3DCLIPSTATUS lpcs
387 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
388 FIXME("(%p)->(%p): stub\n", This
, lpcs
);
393 HRESULT WINAPI
IDirect3DDevice2Impl_GetClipStatus(
394 LPDIRECT3DDEVICE2 iface
, LPD3DCLIPSTATUS lpcs
396 ICOM_THIS(IDirect3DDevice2Impl
,iface
);
397 FIXME("(%p)->(%p): stub\n", This
, lpcs
);
402 /*******************************************************************************
405 HRESULT WINAPI
IDirect3DDeviceImpl_QueryInterface(
406 LPDIRECT3DDEVICE iface
, REFIID riid
, LPVOID
* ppvObj
408 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
409 FIXME("(%p)->(%s,%p): stub\n", This
, debugstr_guid(riid
),ppvObj
);
413 ULONG WINAPI
IDirect3DDeviceImpl_AddRef(LPDIRECT3DDEVICE iface
)
415 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
416 TRACE("(%p)->()incrementing from %lu.\n", This
, This
->ref
);
418 return ++(This
->ref
);
421 ULONG WINAPI
IDirect3DDeviceImpl_Release(LPDIRECT3DDEVICE iface
)
423 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
424 FIXME("(%p)->() decrementing from %lu.\n", This
, This
->ref
);
426 if (!--(This
->ref
)) {
427 HeapFree(GetProcessHeap(),0,This
);
433 HRESULT WINAPI
IDirect3DDeviceImpl_Initialize(
434 LPDIRECT3DDEVICE iface
, LPDIRECT3D lpd3d
, LPGUID lpGUID
,
435 LPD3DDEVICEDESC lpd3ddvdesc
437 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
438 TRACE("(%p)->(%p,%p,%p): stub\n", This
, lpd3d
,lpGUID
, lpd3ddvdesc
);
440 return DDERR_ALREADYINITIALIZED
;
444 HRESULT WINAPI
IDirect3DDeviceImpl_GetCaps(
445 LPDIRECT3DDEVICE iface
, LPD3DDEVICEDESC lpD3DHWDevDesc
,
446 LPD3DDEVICEDESC lpD3DSWDevDesc
448 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
449 TRACE("(%p)->(%p,%p): stub\n", This
, lpD3DHWDevDesc
, lpD3DSWDevDesc
);
455 HRESULT WINAPI
IDirect3DDeviceImpl_SwapTextureHandles(
456 LPDIRECT3DDEVICE iface
, LPDIRECT3DTEXTURE lpD3DTex1
,
457 LPDIRECT3DTEXTURE lpD3DTex2
459 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
460 TRACE("(%p)->(%p,%p): stub\n", This
, lpD3DTex1
, lpD3DTex2
);
465 HRESULT WINAPI
IDirect3DDeviceImpl_CreateExecuteBuffer(
466 LPDIRECT3DDEVICE iface
, LPD3DEXECUTEBUFFERDESC lpDesc
,
467 LPDIRECT3DEXECUTEBUFFER
*lplpDirect3DExecuteBuffer
, IUnknown
*pUnkOuter
469 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
470 FIXME("(%p)->(%p,%p,%p): stub\n", This
, lpDesc
, lplpDirect3DExecuteBuffer
, pUnkOuter
);
474 HRESULT WINAPI
IDirect3DDeviceImpl_GetStats(
475 LPDIRECT3DDEVICE iface
, LPD3DSTATS lpD3DStats
477 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
478 TRACE("(%p)->(%p): stub\n", This
, lpD3DStats
);
484 HRESULT WINAPI
IDirect3DDeviceImpl_Execute(
485 LPDIRECT3DDEVICE iface
, LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer
,
486 LPDIRECT3DVIEWPORT lpDirect3DViewport
, DWORD dwFlags
488 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
489 TRACE("(%p)->(%p,%p,%08ld): stub\n", This
, lpDirect3DExecuteBuffer
, lpDirect3DViewport
, dwFlags
);
491 /* Put this as the default context */
494 ((IDirect3DExecuteBufferImpl
*)lpDirect3DExecuteBuffer
)->execute(lpDirect3DExecuteBuffer
, iface
, (IDirect3DViewport
*)lpDirect3DViewport
);
499 HRESULT WINAPI
IDirect3DDeviceImpl_AddViewport(
500 LPDIRECT3DDEVICE iface
, LPDIRECT3DVIEWPORT lpvp
502 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
503 IDirect3DViewport2Impl
* ilpvp
=(IDirect3DViewport2Impl
*)lpvp
;
504 FIXME("(%p)->(%p): stub\n", This
, ilpvp
);
506 /* Adds this viewport to the viewport list */
507 ilpvp
->next
= This
->viewport_list
;
508 This
->viewport_list
= ilpvp
;
515 HRESULT WINAPI
IDirect3DDeviceImpl_DeleteViewport(
516 LPDIRECT3DDEVICE iface
, LPDIRECT3DVIEWPORT lpvp
518 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
519 IDirect3DViewport2Impl
* ilpvp
=(IDirect3DViewport2Impl
*)lpvp
;
520 IDirect3DViewport2Impl
*cur
, *prev
;
521 FIXME("(%p)->(%p): stub\n", This
, lpvp
);
523 /* Finds this viewport in the list */
525 cur
= This
->viewport_list
;
526 while ((cur
!= NULL
) && (cur
!= ilpvp
)) {
531 return DDERR_INVALIDOBJECT
;
535 This
->viewport_list
= cur
->next
;
537 prev
->next
= cur
->next
;
541 HRESULT WINAPI
IDirect3DDeviceImpl_NextViewport(
542 LPDIRECT3DDEVICE iface
, LPDIRECT3DVIEWPORT lpvp
,
543 LPDIRECT3DVIEWPORT
* lplpvp
, DWORD dwFlags
545 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
546 IDirect3DViewport2Impl
* ilpvp
=(IDirect3DViewport2Impl
*)lpvp
;
547 IDirect3DViewport2Impl
** ilplpvp
=(IDirect3DViewport2Impl
**)lplpvp
;
548 FIXME("(%p)->(%p,%p,%08lx): stub\n", This
, ilpvp
, ilplpvp
, dwFlags
);
552 *ilplpvp
= ilpvp
->next
;
555 *ilplpvp
= This
->viewport_list
;
558 ilpvp
= This
->viewport_list
;
559 while (ilpvp
->next
!= NULL
)
564 return DDERR_INVALIDPARAMS
;
569 HRESULT WINAPI
IDirect3DDeviceImpl_Pick(
570 LPDIRECT3DDEVICE iface
, LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer
,
571 LPDIRECT3DVIEWPORT lpDirect3DViewport
, DWORD dwFlags
, LPD3DRECT lpRect
573 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
574 TRACE("(%p)->(%p,%p,%08lx,%p): stub\n", This
, lpDirect3DExecuteBuffer
, lpDirect3DViewport
, dwFlags
, lpRect
);
578 HRESULT WINAPI
IDirect3DDeviceImpl_GetPickRecords(
579 LPDIRECT3DDEVICE iface
, LPDWORD lpCount
, LPD3DPICKRECORD lpD3DPickRec
581 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
582 TRACE("(%p)->(%p,%p): stub\n", This
, lpCount
, lpD3DPickRec
);
588 HRESULT WINAPI
IDirect3DDeviceImpl_EnumTextureFormats(
589 LPDIRECT3DDEVICE iface
,LPD3DENUMTEXTUREFORMATSCALLBACK lpd3dEnumTextureProc
,
592 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
593 TRACE("(%p)->(%p,%p): stub\n", This
, lpd3dEnumTextureProc
, lpArg
);
598 HRESULT WINAPI
IDirect3DDeviceImpl_CreateMatrix(
599 LPDIRECT3DDEVICE iface
, LPD3DMATRIXHANDLE lpD3DMatHandle
602 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
603 TRACE("(%p)->(%p)\n", This
, lpD3DMatHandle
);
605 *lpD3DMatHandle
= (D3DMATRIXHANDLE
) HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY
,sizeof(D3DMATRIX
));
611 HRESULT WINAPI
IDirect3DDeviceImpl_SetMatrix(
612 LPDIRECT3DDEVICE iface
, D3DMATRIXHANDLE d3dMatHandle
,
613 const LPD3DMATRIX lpD3DMatrix
)
615 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
616 TRACE("(%p)->(%08lx,%p)\n", This
, d3dMatHandle
, lpD3DMatrix
);
618 dump_mat(lpD3DMatrix
);
619 *((D3DMATRIX
*) d3dMatHandle
) = *lpD3DMatrix
;
624 HRESULT WINAPI
IDirect3DDeviceImpl_GetMatrix(
625 LPDIRECT3DDEVICE iface
,D3DMATRIXHANDLE D3DMatHandle
,LPD3DMATRIX lpD3DMatrix
627 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
628 TRACE("(%p)->(%08lx,%p)\n", This
, D3DMatHandle
, lpD3DMatrix
);
630 *lpD3DMatrix
= *((D3DMATRIX
*) D3DMatHandle
);
636 HRESULT WINAPI
IDirect3DDeviceImpl_DeleteMatrix(
637 LPDIRECT3DDEVICE iface
, D3DMATRIXHANDLE d3dMatHandle
639 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
640 TRACE("(%p)->(%08lx)\n", This
, d3dMatHandle
);
641 HeapFree(GetProcessHeap(),0, (void *) d3dMatHandle
);
646 HRESULT WINAPI
IDirect3DDeviceImpl_BeginScene(LPDIRECT3DDEVICE iface
)
648 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
649 FIXME("(%p)->(): stub\n", This
);
653 /* This is for the moment copy-pasted from IDirect3DDevice2...
654 Will make a common function ... */
655 HRESULT WINAPI
IDirect3DDeviceImpl_EndScene(LPDIRECT3DDEVICE iface
)
657 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
658 FIXME("(%p)->(): stub\n", This
);
662 HRESULT WINAPI
IDirect3DDeviceImpl_GetDirect3D(
663 LPDIRECT3DDEVICE iface
, LPDIRECT3D
*lpDirect3D
665 ICOM_THIS(IDirect3DDeviceImpl
,iface
);
666 TRACE("(%p)->(%p): stub\n", This
, lpDirect3D
);
671 /*******************************************************************************
672 * Direct3DDevice VTable
674 static ICOM_VTABLE(IDirect3DDevice
) WINE_UNUSED d3d_d3ddevice_vtbl
=
676 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
677 IDirect3DDeviceImpl_QueryInterface
,
678 IDirect3DDeviceImpl_AddRef
,
679 IDirect3DDeviceImpl_Release
,
680 IDirect3DDeviceImpl_Initialize
,
681 IDirect3DDeviceImpl_GetCaps
,
682 IDirect3DDeviceImpl_SwapTextureHandles
,
683 IDirect3DDeviceImpl_CreateExecuteBuffer
,
684 IDirect3DDeviceImpl_GetStats
,
685 IDirect3DDeviceImpl_Execute
,
686 IDirect3DDeviceImpl_AddViewport
,
687 IDirect3DDeviceImpl_DeleteViewport
,
688 IDirect3DDeviceImpl_NextViewport
,
689 IDirect3DDeviceImpl_Pick
,
690 IDirect3DDeviceImpl_GetPickRecords
,
691 IDirect3DDeviceImpl_EnumTextureFormats
,
692 IDirect3DDeviceImpl_CreateMatrix
,
693 IDirect3DDeviceImpl_SetMatrix
,
694 IDirect3DDeviceImpl_GetMatrix
,
695 IDirect3DDeviceImpl_DeleteMatrix
,
696 IDirect3DDeviceImpl_BeginScene
,
697 IDirect3DDeviceImpl_EndScene
,
698 IDirect3DDeviceImpl_GetDirect3D
,