1 /* Direct3D private include file
4 This files contains all the structure that are not exported
5 through d3d.h and all common macros. */
7 #ifndef __GRAPHICS_WINE_D3D_PRIVATE_H
8 #define __GRAPHICS_WINE_D3D_PRIVATE_H
10 /* THIS FILE MUST NOT CONTAIN X11 or MESA DEFINES */
14 /*****************************************************************************
15 * Predeclare the interface implementation structures
17 typedef struct IDirect3DImpl IDirect3DImpl;
18 typedef struct IDirect3D2Impl IDirect3D2Impl;
19 typedef struct IDirect3DLightImpl IDirect3DLightImpl;
20 typedef struct IDirect3DMaterial2Impl IDirect3DMaterial2Impl;
21 typedef struct IDirect3DTexture2Impl IDirect3DTexture2Impl;
22 typedef struct IDirect3DViewport2Impl IDirect3DViewport2Impl;
23 typedef struct IDirect3DExecuteBufferImpl IDirect3DExecuteBufferImpl;
24 typedef struct IDirect3DDeviceImpl IDirect3DDeviceImpl;
25 typedef struct IDirect3DDevice2Impl IDirect3DDevice2Impl;
27 #include "ddraw_private.h"
29 extern ICOM_VTABLE(IDirect3D) mesa_d3dvt;
30 extern ICOM_VTABLE(IDirect3D2) mesa_d3d2vt;
32 /*****************************************************************************
33 * IDirect3D implementation structure
38 ICOM_VFIELD(IDirect3D);
40 /* IDirect3D fields */
41 IDirectDrawImpl* ddraw;
45 /*****************************************************************************
46 * IDirect3D2 implementation structure
51 ICOM_VFIELD(IDirect3D2);
53 /* IDirect3D2 fields */
54 IDirectDrawImpl* ddraw;
58 extern HRESULT WINAPI IDirect3DImpl_QueryInterface(
59 LPDIRECT3D iface,REFIID refiid,LPVOID *obj
61 extern ULONG WINAPI IDirect3DImpl_AddRef(LPDIRECT3D iface);
62 extern ULONG WINAPI IDirect3DImpl_Release(LPDIRECT3D iface)
64 extern HRESULT WINAPI IDirect3DImpl_Initialize(LPDIRECT3D iface,REFIID refiid);
65 extern HRESULT WINAPI IDirect3DImpl_EnumDevices(
66 LPDIRECT3D iface, LPD3DENUMDEVICESCALLBACK cb, LPVOID context
68 extern HRESULT WINAPI IDirect3DImpl_CreateLight(
69 LPDIRECT3D iface, LPDIRECT3DLIGHT *lplight, IUnknown *lpunk
71 extern HRESULT WINAPI IDirect3DImpl_CreateMaterial(
72 LPDIRECT3D iface, LPDIRECT3DMATERIAL *lpmaterial, IUnknown *lpunk
74 extern HRESULT WINAPI IDirect3DImpl_CreateViewport(
75 LPDIRECT3D iface, LPDIRECT3DVIEWPORT *lpviewport, IUnknown *lpunk
77 extern HRESULT WINAPI IDirect3DImpl_FindDevice(
78 LPDIRECT3D iface, LPD3DFINDDEVICESEARCH lpfinddevsrc,
79 LPD3DFINDDEVICERESULT lpfinddevrst)
81 extern HRESULT WINAPI IDirect3D2Impl_QueryInterface(LPDIRECT3D2 iface,REFIID refiid,LPVOID *obj);
82 extern ULONG WINAPI IDirect3D2Impl_AddRef(LPDIRECT3D2 iface);
83 extern ULONG WINAPI IDirect3D2Impl_Release(LPDIRECT3D2 iface);
84 extern HRESULT WINAPI IDirect3D2Impl_EnumDevices(
85 LPDIRECT3D2 iface,LPD3DENUMDEVICESCALLBACK cb, LPVOID context
87 extern HRESULT WINAPI IDirect3D2Impl_CreateLight(
88 LPDIRECT3D2 iface, LPDIRECT3DLIGHT *lplight, IUnknown *lpunk
90 extern HRESULT WINAPI IDirect3D2Impl_CreateMaterial(
91 LPDIRECT3D2 iface, LPDIRECT3DMATERIAL2 *lpmaterial, IUnknown *lpunk
93 extern HRESULT WINAPI IDirect3D2Impl_CreateViewport(
94 LPDIRECT3D2 iface, LPDIRECT3DVIEWPORT2 *lpviewport, IUnknown *lpunk
96 extern HRESULT WINAPI IDirect3D2Impl_FindDevice(
97 LPDIRECT3D2 iface, LPD3DFINDDEVICESEARCH lpfinddevsrc,
98 LPD3DFINDDEVICERESULT lpfinddevrst);
99 extern HRESULT WINAPI IDirect3D2Impl_CreateDevice(
100 LPDIRECT3D2 iface, REFCLSID rguid, LPDIRECTDRAWSURFACE surface,
101 LPDIRECT3DDEVICE2 *device);
103 /*****************************************************************************
104 * IDirect3DLight implementation structure
106 struct IDirect3DLightImpl
108 /* IUnknown fields */
109 ICOM_VFIELD(IDirect3DLight);
111 /* IDirect3DLight fields */
114 IDirect3D2Impl* d3d2;
120 /* Chained list used for adding / removing from viewports */
121 IDirect3DLightImpl *next, *prev;
123 /* Activation function */
124 void (*activate)(IDirect3DLightImpl*);
130 /*****************************************************************************
131 * IDirect3DMaterial2 implementation structure
133 struct IDirect3DMaterial2Impl
135 /* IUnknown fields */
136 ICOM_VFIELD(IDirect3DMaterial2);
138 /* IDirect3DMaterial2 fields */
141 IDirect3D2Impl* d3d2;
144 IDirect3DDeviceImpl* active_device1;
145 IDirect3DDevice2Impl* active_device2;
151 void (*activate)(IDirect3DMaterial2Impl* this);
155 /*****************************************************************************
156 * IDirect3DTexture2 implementation structure
158 struct IDirect3DTexture2Impl
160 /* IUnknown fields */
161 ICOM_VFIELD(IDirect3DTexture2);
163 /* IDirect3DTexture2 fields */
164 void* D3Ddevice; /* (void *) to use the same pointer
165 * for both Direct3D and Direct3D2 */
166 IDirectDrawSurface4Impl* surface;
170 extern HRESULT WINAPI IDirect3DTexture2Impl_QueryInterface(
171 LPDIRECT3DTEXTURE2 iface, REFIID riid, LPVOID* ppvObj
173 extern ULONG WINAPI IDirect3DTexture2Impl_AddRef(LPDIRECT3DTEXTURE2 iface);
174 extern ULONG WINAPI IDirect3DTexture2Impl_Release(LPDIRECT3DTEXTURE2 iface);
175 extern HRESULT WINAPI IDirect3DTextureImpl_GetHandle(LPDIRECT3DTEXTURE iface,
176 LPDIRECT3DDEVICE lpD3DDevice,
177 LPD3DTEXTUREHANDLE lpHandle)
179 extern HRESULT WINAPI IDirect3DTextureImpl_Initialize(LPDIRECT3DTEXTURE iface,
180 LPDIRECT3DDEVICE lpD3DDevice,
181 LPDIRECTDRAWSURFACE lpSurface)
183 extern HRESULT WINAPI IDirect3DTextureImpl_Unload(LPDIRECT3DTEXTURE iface);
184 extern HRESULT WINAPI IDirect3DTexture2Impl_GetHandle(
185 LPDIRECT3DTEXTURE2 iface, LPDIRECT3DDEVICE2 lpD3DDevice2,
186 LPD3DTEXTUREHANDLE lpHandle
188 extern HRESULT WINAPI IDirect3DTexture2Impl_PaletteChanged(
189 LPDIRECT3DTEXTURE2 iface, DWORD dwStart, DWORD dwCount
191 extern HRESULT WINAPI IDirect3DTexture2Impl_Load(
192 LPDIRECT3DTEXTURE2 iface, LPDIRECT3DTEXTURE2 lpD3DTexture2
195 /*****************************************************************************
196 * IDirect3DViewport2 implementation structure
198 struct IDirect3DViewport2Impl
200 /* IUnknown fields */
201 ICOM_VFIELD(IDirect3DViewport2);
203 /* IDirect3DViewport2 fields */
206 IDirect3D2Impl* d3d2;
208 /* If this viewport is active for one device, put the device here */
210 IDirect3DDeviceImpl* active_device1;
211 IDirect3DDevice2Impl* active_device2;
221 /* Activation function */
222 void (*activate)(IDirect3DViewport2Impl*);
224 /* Field used to chain viewports together */
225 IDirect3DViewport2Impl* next;
228 IDirect3DLightImpl* lights;
233 extern HRESULT WINAPI IDirect3DViewport2Impl_QueryInterface(
234 LPDIRECT3DVIEWPORT2 iface, REFIID riid, LPVOID* ppvObj
236 extern ULONG WINAPI IDirect3DViewport2Impl_AddRef(LPDIRECT3DVIEWPORT2 iface)
238 extern ULONG WINAPI IDirect3DViewport2Impl_Release(LPDIRECT3DVIEWPORT2 iface)
240 extern HRESULT WINAPI IDirect3DViewport2Impl_Initialize(
241 LPDIRECT3DVIEWPORT2 iface, LPDIRECT3D d3d
243 extern HRESULT WINAPI IDirect3DViewport2Impl_GetViewport(
244 LPDIRECT3DVIEWPORT2 iface, LPD3DVIEWPORT lpvp
246 extern HRESULT WINAPI IDirect3DViewport2Impl_SetViewport(
247 LPDIRECT3DVIEWPORT2 iface,LPD3DVIEWPORT lpvp
249 extern HRESULT WINAPI IDirect3DViewport2Impl_TransformVertices(
250 LPDIRECT3DVIEWPORT2 iface,DWORD dwVertexCount,LPD3DTRANSFORMDATA lpData,
251 DWORD dwFlags,LPDWORD lpOffScreen
253 extern HRESULT WINAPI IDirect3DViewport2Impl_LightElements(
254 LPDIRECT3DVIEWPORT2 iface,DWORD dwElementCount,LPD3DLIGHTDATA lpData
256 extern HRESULT WINAPI IDirect3DViewport2Impl_SetBackground(
257 LPDIRECT3DVIEWPORT2 iface, D3DMATERIALHANDLE hMat
259 extern HRESULT WINAPI IDirect3DViewport2Impl_GetBackground(
260 LPDIRECT3DVIEWPORT2 iface,LPD3DMATERIALHANDLE lphMat,LPBOOL lpValid
262 extern HRESULT WINAPI IDirect3DViewport2Impl_SetBackgroundDepth(
263 LPDIRECT3DVIEWPORT2 iface,LPDIRECTDRAWSURFACE lpDDSurface
265 extern HRESULT WINAPI IDirect3DViewport2Impl_GetBackgroundDepth(
266 LPDIRECT3DVIEWPORT2 iface,LPDIRECTDRAWSURFACE* lplpDDSurface,LPBOOL lpValid
268 extern HRESULT WINAPI IDirect3DViewport2Impl_Clear(
269 LPDIRECT3DVIEWPORT2 iface, DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlags
271 extern HRESULT WINAPI IDirect3DViewport2Impl_AddLight(
272 LPDIRECT3DVIEWPORT2 iface,LPDIRECT3DLIGHT lpLight
274 extern HRESULT WINAPI IDirect3DViewport2Impl_DeleteLight(
275 LPDIRECT3DVIEWPORT2 iface,LPDIRECT3DLIGHT lpLight
277 extern HRESULT WINAPI IDirect3DViewport2Impl_NextLight(
278 LPDIRECT3DVIEWPORT2 iface, LPDIRECT3DLIGHT lpLight,
279 LPDIRECT3DLIGHT* lplpLight, DWORD dwFlags
281 extern HRESULT WINAPI IDirect3DViewport2Impl_GetViewport2(
282 LPDIRECT3DVIEWPORT2 iface, LPD3DVIEWPORT2 lpViewport2
284 extern HRESULT WINAPI IDirect3DViewport2Impl_SetViewport2(
285 LPDIRECT3DVIEWPORT2 iface, LPD3DVIEWPORT2 lpViewport2
288 /*****************************************************************************
289 * IDirect3DExecuteBuffer implementation structure
291 struct IDirect3DExecuteBufferImpl
293 /* IUnknown fields */
294 ICOM_VFIELD(IDirect3DExecuteBuffer);
296 /* IDirect3DExecuteBuffer fields */
297 IDirect3DDeviceImpl* d3ddev;
299 D3DEXECUTEBUFFERDESC desc;
302 /* This buffer will store the transformed vertices */
304 D3DVERTEXTYPE vertex_type;
306 /* This flags is set to TRUE if we allocated ourselves the
310 void (*execute)(IDirect3DExecuteBuffer* this,
311 IDirect3DDevice* dev,
312 IDirect3DViewport2* vp);
315 extern LPDIRECT3DEXECUTEBUFFER d3dexecutebuffer_create(IDirect3DDeviceImpl* d3ddev, LPD3DEXECUTEBUFFERDESC lpDesc);
317 /*****************************************************************************
318 * IDirect3DDevice implementation structure
320 struct IDirect3DDeviceImpl
322 /* IUnknown fields */
323 ICOM_VFIELD(IDirect3DDevice);
325 /* IDirect3DDevice fields */
327 IDirectDrawSurfaceImpl* surface;
329 IDirect3DViewport2Impl* viewport_list;
330 IDirect3DViewport2Impl* current_viewport;
332 void (*set_context)(IDirect3DDeviceImpl*);
336 /*****************************************************************************
337 * IDirect3DDevice2 implementation structure
339 struct IDirect3DDevice2Impl
341 /* IUnknown fields */
342 ICOM_VFIELD(IDirect3DDevice2);
344 /* IDirect3DDevice fields */
346 IDirectDrawSurfaceImpl* surface;
348 IDirect3DViewport2Impl* viewport_list;
349 IDirect3DViewport2Impl* current_viewport;
351 void (*set_context)(IDirect3DDevice2Impl*);
354 extern HRESULT WINAPI IDirect3DDevice2Impl_QueryInterface(
355 LPDIRECT3DDEVICE2 iface, REFIID riid, LPVOID* ppvObj
357 extern ULONG WINAPI IDirect3DDevice2Impl_AddRef(LPDIRECT3DDEVICE2 iface);
358 extern ULONG WINAPI IDirect3DDevice2Impl_Release(LPDIRECT3DDEVICE2 iface)
360 extern HRESULT WINAPI IDirect3DDevice2Impl_GetCaps(
361 LPDIRECT3DDEVICE2 iface, LPD3DDEVICEDESC lpdescsoft,
362 LPD3DDEVICEDESC lpdeschard
364 extern HRESULT WINAPI IDirect3DDevice2Impl_SwapTextureHandles(
365 LPDIRECT3DDEVICE2 iface,LPDIRECT3DTEXTURE2 lptex1,LPDIRECT3DTEXTURE2 lptex2
367 extern HRESULT WINAPI IDirect3DDevice2Impl_GetStats(
368 LPDIRECT3DDEVICE2 iface, LPD3DSTATS lpstats)
370 extern HRESULT WINAPI IDirect3DDevice2Impl_AddViewport(
371 LPDIRECT3DDEVICE2 iface, LPDIRECT3DVIEWPORT2 lpvp
373 extern HRESULT WINAPI IDirect3DDevice2Impl_DeleteViewport(
374 LPDIRECT3DDEVICE2 iface, LPDIRECT3DVIEWPORT2 lpvp)
376 extern HRESULT WINAPI IDirect3DDevice2Impl_NextViewport(
377 LPDIRECT3DDEVICE2 iface, LPDIRECT3DVIEWPORT2 lpvp,
378 LPDIRECT3DVIEWPORT2* lplpvp, DWORD dwFlags
380 extern HRESULT WINAPI IDirect3DDevice2Impl_EnumTextureFormats(
381 LPDIRECT3DDEVICE2 iface, LPD3DENUMTEXTUREFORMATSCALLBACK cb, LPVOID context
383 extern HRESULT WINAPI IDirect3DDevice2Impl_BeginScene(LPDIRECT3DDEVICE2 iface);
384 extern HRESULT WINAPI IDirect3DDevice2Impl_EndScene(LPDIRECT3DDEVICE2 iface);
385 extern HRESULT WINAPI IDirect3DDevice2Impl_GetDirect3D(
386 LPDIRECT3DDEVICE2 iface, LPDIRECT3D2 *lpd3d2
388 extern HRESULT WINAPI IDirect3DDevice2Impl_SetCurrentViewport(
389 LPDIRECT3DDEVICE2 iface, LPDIRECT3DVIEWPORT2 lpvp
391 extern HRESULT WINAPI IDirect3DDevice2Impl_GetCurrentViewport(
392 LPDIRECT3DDEVICE2 iface, LPDIRECT3DVIEWPORT2 *lplpvp
394 extern HRESULT WINAPI IDirect3DDevice2Impl_SetRenderTarget(
395 LPDIRECT3DDEVICE2 iface, LPDIRECTDRAWSURFACE lpdds, DWORD dwFlags
397 extern HRESULT WINAPI IDirect3DDevice2Impl_GetRenderTarget(
398 LPDIRECT3DDEVICE2 iface, LPDIRECTDRAWSURFACE *lplpdds
400 extern HRESULT WINAPI IDirect3DDevice2Impl_Begin(
401 LPDIRECT3DDEVICE2 iface, D3DPRIMITIVETYPE d3dp, D3DVERTEXTYPE d3dv,
404 extern HRESULT WINAPI IDirect3DDevice2Impl_BeginIndexed(
405 LPDIRECT3DDEVICE2 iface, D3DPRIMITIVETYPE d3dp, D3DVERTEXTYPE d3dv,
406 LPVOID lpvert, DWORD numvert, DWORD dwFlags
408 extern HRESULT WINAPI IDirect3DDevice2Impl_Vertex(
409 LPDIRECT3DDEVICE2 iface,LPVOID lpvert
411 extern HRESULT WINAPI IDirect3DDevice2Impl_Index(LPDIRECT3DDEVICE2 iface, WORD index);
412 extern HRESULT WINAPI IDirect3DDevice2Impl_End(LPDIRECT3DDEVICE2 iface,DWORD dwFlags);
413 extern HRESULT WINAPI IDirect3DDevice2Impl_GetRenderState(
414 LPDIRECT3DDEVICE2 iface, D3DRENDERSTATETYPE d3drs, LPDWORD lprstate
416 extern HRESULT WINAPI IDirect3DDevice2Impl_SetRenderState(
417 LPDIRECT3DDEVICE2 iface, D3DRENDERSTATETYPE dwRenderStateType,
420 extern HRESULT WINAPI IDirect3DDevice2Impl_GetLightState(
421 LPDIRECT3DDEVICE2 iface, D3DLIGHTSTATETYPE d3dls, LPDWORD lplstate
423 extern HRESULT WINAPI IDirect3DDevice2Impl_SetLightState(
424 LPDIRECT3DDEVICE2 iface, D3DLIGHTSTATETYPE dwLightStateType,
427 extern HRESULT WINAPI IDirect3DDevice2Impl_SetTransform(
428 LPDIRECT3DDEVICE2 iface, D3DTRANSFORMSTATETYPE d3dts, LPD3DMATRIX lpmatrix
430 extern HRESULT WINAPI IDirect3DDevice2Impl_GetTransform(
431 LPDIRECT3DDEVICE2 iface, D3DTRANSFORMSTATETYPE d3dts, LPD3DMATRIX lpmatrix
433 extern HRESULT WINAPI IDirect3DDevice2Impl_MultiplyTransform(
434 LPDIRECT3DDEVICE2 iface, D3DTRANSFORMSTATETYPE d3dts, LPD3DMATRIX lpmatrix
436 extern HRESULT WINAPI IDirect3DDevice2Impl_DrawPrimitive(
437 LPDIRECT3DDEVICE2 iface, D3DPRIMITIVETYPE d3dp, D3DVERTEXTYPE d3dv,
438 LPVOID lpvertex, DWORD vertcount, DWORD dwFlags
440 extern HRESULT WINAPI IDirect3DDevice2Impl_DrawIndexedPrimitive(
441 LPDIRECT3DDEVICE2 iface, D3DPRIMITIVETYPE d3dp, D3DVERTEXTYPE d3dv,
442 LPVOID lpvertex, DWORD vertcount, LPWORD lpindexes, DWORD indexcount,
445 extern HRESULT WINAPI IDirect3DDevice2Impl_SetClipStatus(
446 LPDIRECT3DDEVICE2 iface, LPD3DCLIPSTATUS lpcs
448 extern HRESULT WINAPI IDirect3DDevice2Impl_GetClipStatus(
449 LPDIRECT3DDEVICE2 iface, LPD3DCLIPSTATUS lpcs
451 extern HRESULT WINAPI IDirect3DDeviceImpl_QueryInterface(
452 LPDIRECT3DDEVICE iface, REFIID riid, LPVOID* ppvObj
454 extern ULONG WINAPI IDirect3DDeviceImpl_AddRef(LPDIRECT3DDEVICE iface);
455 extern ULONG WINAPI IDirect3DDeviceImpl_Release(LPDIRECT3DDEVICE iface);
456 extern HRESULT WINAPI IDirect3DDeviceImpl_Initialize(
457 LPDIRECT3DDEVICE iface, LPDIRECT3D lpd3d, LPGUID lpGUID,
458 LPD3DDEVICEDESC lpd3ddvdesc
460 extern HRESULT WINAPI IDirect3DDeviceImpl_GetCaps(
461 LPDIRECT3DDEVICE iface, LPD3DDEVICEDESC lpD3DHWDevDesc,
462 LPD3DDEVICEDESC lpD3DSWDevDesc
464 extern HRESULT WINAPI IDirect3DDeviceImpl_SwapTextureHandles(
465 LPDIRECT3DDEVICE iface, LPDIRECT3DTEXTURE lpD3DTex1,
466 LPDIRECT3DTEXTURE lpD3DTex2
468 extern HRESULT WINAPI IDirect3DDeviceImpl_CreateExecuteBuffer(
469 LPDIRECT3DDEVICE iface, LPD3DEXECUTEBUFFERDESC lpDesc,
470 LPDIRECT3DEXECUTEBUFFER *lplpDirect3DExecuteBuffer, IUnknown *pUnkOuter
472 extern HRESULT WINAPI IDirect3DDeviceImpl_GetStats(
473 LPDIRECT3DDEVICE iface, LPD3DSTATS lpD3DStats
475 extern HRESULT WINAPI IDirect3DDeviceImpl_Execute(
476 LPDIRECT3DDEVICE iface, LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer,
477 LPDIRECT3DVIEWPORT lpDirect3DViewport, DWORD dwFlags
479 extern HRESULT WINAPI IDirect3DDeviceImpl_AddViewport(
480 LPDIRECT3DDEVICE iface, LPDIRECT3DVIEWPORT lpvp
482 extern HRESULT WINAPI IDirect3DDeviceImpl_DeleteViewport(
483 LPDIRECT3DDEVICE iface, LPDIRECT3DVIEWPORT lpvp
485 extern HRESULT WINAPI IDirect3DDeviceImpl_NextViewport(
486 LPDIRECT3DDEVICE iface, LPDIRECT3DVIEWPORT lpvp,
487 LPDIRECT3DVIEWPORT* lplpvp, DWORD dwFlags
489 extern HRESULT WINAPI IDirect3DDeviceImpl_Pick(
490 LPDIRECT3DDEVICE iface, LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer,
491 LPDIRECT3DVIEWPORT lpDirect3DViewport, DWORD dwFlags, LPD3DRECT lpRect
493 extern HRESULT WINAPI IDirect3DDeviceImpl_GetPickRecords(
494 LPDIRECT3DDEVICE iface, LPDWORD lpCount, LPD3DPICKRECORD lpD3DPickRec
496 extern HRESULT WINAPI IDirect3DDeviceImpl_EnumTextureFormats(
497 LPDIRECT3DDEVICE iface,LPD3DENUMTEXTUREFORMATSCALLBACK lpd3dEnumTextureProc,
500 extern HRESULT WINAPI IDirect3DDeviceImpl_CreateMatrix(
501 LPDIRECT3DDEVICE iface, LPD3DMATRIXHANDLE lpD3DMatHandle
504 extern HRESULT WINAPI IDirect3DDeviceImpl_SetMatrix(
505 LPDIRECT3DDEVICE iface, D3DMATRIXHANDLE d3dMatHandle,
506 const LPD3DMATRIX lpD3DMatrix)
508 extern HRESULT WINAPI IDirect3DDeviceImpl_GetMatrix(
509 LPDIRECT3DDEVICE iface,D3DMATRIXHANDLE D3DMatHandle,LPD3DMATRIX lpD3DMatrix
511 extern HRESULT WINAPI IDirect3DDeviceImpl_DeleteMatrix(
512 LPDIRECT3DDEVICE iface, D3DMATRIXHANDLE d3dMatHandle
514 extern HRESULT WINAPI IDirect3DDeviceImpl_BeginScene(LPDIRECT3DDEVICE iface)
516 extern HRESULT WINAPI IDirect3DDeviceImpl_EndScene(LPDIRECT3DDEVICE iface)
518 extern HRESULT WINAPI IDirect3DDeviceImpl_GetDirect3D(
519 LPDIRECT3DDEVICE iface, LPDIRECT3D *lpDirect3D
522 /* All non-static functions 'exported' by various sub-objects */
523 extern LPDIRECT3DTEXTURE2 d3dtexture2_create(IDirectDrawSurface4Impl* surf);
524 extern LPDIRECT3DTEXTURE d3dtexture_create(IDirectDrawSurface4Impl* surf);
526 extern LPDIRECT3DLIGHT d3dlight_create_dx3(IDirect3DImpl* d3d1);
527 extern LPDIRECT3DLIGHT d3dlight_create(IDirect3D2Impl* d3d2);
529 extern LPDIRECT3DEXECUTEBUFFER d3dexecutebuffer_create(IDirect3DDeviceImpl* d3ddev, LPD3DEXECUTEBUFFERDESC lpDesc);
531 extern LPDIRECT3DMATERIAL d3dmaterial_create(IDirect3DImpl* d3d1);
532 extern LPDIRECT3DMATERIAL2 d3dmaterial2_create(IDirect3D2Impl* d3d2);
534 extern LPDIRECT3DVIEWPORT d3dviewport_create(IDirect3DImpl* d3d1);
535 extern LPDIRECT3DVIEWPORT2 d3dviewport2_create(IDirect3D2Impl* d3d2);
537 extern int is_OpenGL_dx3(REFCLSID rguid, IDirectDrawSurfaceImpl* surface, IDirect3DDeviceImpl** device);
538 extern int d3d_OpenGL_dx3(LPD3DENUMDEVICESCALLBACK cb, LPVOID context) ;
539 extern int d3d_OpenGL(LPD3DENUMDEVICESCALLBACK cb, LPVOID context) ;
540 extern int is_OpenGL(REFCLSID rguid, IDirectDrawSurfaceImpl* surface, IDirect3DDevice2Impl** device, IDirect3D2Impl* d3d);
543 extern void _dump_renderstate(D3DRENDERSTATETYPE type, DWORD value);
545 #define dump_mat(mat) \
546 TRACE("%f %f %f %f\n", (mat)->_11, (mat)->_12, (mat)->_13, (mat)->_14); \
547 TRACE("%f %f %f %f\n", (mat)->_21, (mat)->_22, (mat)->_23, (mat)->_24); \
548 TRACE("%f %f %f %f\n", (mat)->_31, (mat)->_32, (mat)->_33, (mat)->_34); \
549 TRACE("%f %f %f %f\n", (mat)->_41, (mat)->_42, (mat)->_43, (mat)->_44);
551 #endif /* __GRAPHICS_WINE_D3D_PRIVATE_H */