|  | /* Direct3D private include file | 
|  | (c) 1998 Lionel ULMER | 
|  |  | 
|  | This files contains all the structure that are not exported | 
|  | through d3d.h and all common macros. */ | 
|  |  | 
|  | #ifndef __GRAPHICS_WINE_D3D_PRIVATE_H | 
|  | #define __GRAPHICS_WINE_D3D_PRIVATE_H | 
|  |  | 
|  | /* THIS FILE MUST NOT CONTAIN X11 or MESA DEFINES */ | 
|  |  | 
|  | #include "d3d.h" | 
|  |  | 
|  | /***************************************************************************** | 
|  | * Predeclare the interface implementation structures | 
|  | */ | 
|  | typedef struct IDirect3DImpl IDirect3DImpl; | 
|  | typedef struct IDirect3D2Impl IDirect3D2Impl; | 
|  | typedef struct IDirect3D3Impl IDirect3D3Impl; | 
|  |  | 
|  | typedef struct IDirect3DLightImpl IDirect3DLightImpl; | 
|  | typedef struct IDirect3DMaterial2Impl IDirect3DMaterial2Impl; | 
|  | typedef struct IDirect3DTexture2Impl IDirect3DTexture2Impl; | 
|  | typedef struct IDirect3DViewport2Impl IDirect3DViewport2Impl; | 
|  | typedef struct IDirect3DExecuteBufferImpl IDirect3DExecuteBufferImpl; | 
|  | typedef struct IDirect3DDeviceImpl IDirect3DDeviceImpl; | 
|  | typedef struct IDirect3DDevice2Impl IDirect3DDevice2Impl; | 
|  |  | 
|  | #include "ddraw_private.h" | 
|  |  | 
|  | extern ICOM_VTABLE(IDirect3D)	mesa_d3dvt; | 
|  | extern ICOM_VTABLE(IDirect3D2)	mesa_d3d2vt; | 
|  | extern ICOM_VTABLE(IDirect3D3)  mesa_d3d3vt; | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IDirect3D implementation structure | 
|  | */ | 
|  | struct IDirect3DImpl | 
|  | { | 
|  | /* IUnknown fields */ | 
|  | ICOM_VFIELD(IDirect3D); | 
|  | DWORD                   ref; | 
|  | /* IDirect3D fields */ | 
|  | IDirectDrawImpl*	ddraw; | 
|  | LPVOID		private; | 
|  | }; | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IDirect3D2 implementation structure | 
|  | */ | 
|  | struct IDirect3D2Impl | 
|  | { | 
|  | /* IUnknown fields */ | 
|  | ICOM_VFIELD(IDirect3D2); | 
|  | DWORD                    ref; | 
|  | /* IDirect3D2 fields */ | 
|  | IDirectDrawImpl*	ddraw; | 
|  | LPVOID		private; | 
|  | }; | 
|  |  | 
|  | struct IDirect3D3Impl | 
|  | { | 
|  | /* IUnknown fields */ | 
|  | ICOM_VFIELD(IDirect3D3); | 
|  | DWORD                    ref; | 
|  | /* IDirect3D2 fields */ | 
|  | IDirectDrawImpl*    ddraw; | 
|  | LPVOID              private; | 
|  | /* IDirect3D3 fields */ | 
|  | }; | 
|  |  | 
|  |  | 
|  | extern HRESULT WINAPI IDirect3DImpl_QueryInterface( | 
|  | LPDIRECT3D iface,REFIID refiid,LPVOID *obj | 
|  | ); | 
|  | extern ULONG WINAPI IDirect3DImpl_AddRef(LPDIRECT3D iface); | 
|  | extern ULONG WINAPI IDirect3DImpl_Release(LPDIRECT3D iface) | 
|  | ; | 
|  | extern HRESULT WINAPI IDirect3DImpl_Initialize(LPDIRECT3D iface,REFIID refiid); | 
|  | extern HRESULT WINAPI IDirect3DImpl_EnumDevices( | 
|  | LPDIRECT3D iface, LPD3DENUMDEVICESCALLBACK cb, LPVOID context | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DImpl_CreateLight( | 
|  | LPDIRECT3D iface, LPDIRECT3DLIGHT *lplight, IUnknown *lpunk | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DImpl_CreateMaterial( | 
|  | LPDIRECT3D iface, LPDIRECT3DMATERIAL *lpmaterial, IUnknown *lpunk | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DImpl_CreateViewport( | 
|  | LPDIRECT3D iface, LPDIRECT3DVIEWPORT *lpviewport, IUnknown *lpunk | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DImpl_FindDevice( | 
|  | LPDIRECT3D iface, LPD3DFINDDEVICESEARCH lpfinddevsrc, | 
|  | LPD3DFINDDEVICERESULT lpfinddevrst) | 
|  | ; | 
|  | extern HRESULT WINAPI IDirect3D2Impl_QueryInterface(LPDIRECT3D2 iface,REFIID refiid,LPVOID *obj); | 
|  | extern ULONG WINAPI IDirect3D2Impl_AddRef(LPDIRECT3D2 iface); | 
|  | extern ULONG WINAPI IDirect3D2Impl_Release(LPDIRECT3D2 iface); | 
|  | extern HRESULT WINAPI IDirect3D2Impl_EnumDevices( | 
|  | LPDIRECT3D2 iface,LPD3DENUMDEVICESCALLBACK cb, LPVOID context | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3D2Impl_CreateLight( | 
|  | LPDIRECT3D2 iface, LPDIRECT3DLIGHT *lplight, IUnknown *lpunk | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3D2Impl_CreateMaterial( | 
|  | LPDIRECT3D2 iface, LPDIRECT3DMATERIAL2 *lpmaterial, IUnknown *lpunk | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3D2Impl_CreateViewport( | 
|  | LPDIRECT3D2 iface, LPDIRECT3DVIEWPORT2 *lpviewport, IUnknown *lpunk | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3D2Impl_FindDevice( | 
|  | LPDIRECT3D2 iface, LPD3DFINDDEVICESEARCH lpfinddevsrc, | 
|  | LPD3DFINDDEVICERESULT lpfinddevrst); | 
|  | extern HRESULT WINAPI IDirect3D2Impl_CreateDevice( | 
|  | LPDIRECT3D2 iface, REFCLSID rguid, LPDIRECTDRAWSURFACE surface, | 
|  | LPDIRECT3DDEVICE2 *device); | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IDirect3DLight implementation structure | 
|  | */ | 
|  | struct IDirect3DLightImpl | 
|  | { | 
|  | /* IUnknown fields */ | 
|  | ICOM_VFIELD(IDirect3DLight); | 
|  | DWORD                        ref; | 
|  | /* IDirect3DLight fields */ | 
|  | union { | 
|  | IDirect3DImpl*  d3d1; | 
|  | IDirect3D2Impl* d3d2; | 
|  | } d3d; | 
|  | int                 type; | 
|  |  | 
|  | D3DLIGHT2           light; | 
|  |  | 
|  | /* Chained list used for adding / removing from viewports */ | 
|  | IDirect3DLightImpl *next, *prev; | 
|  |  | 
|  | /* Activation function */ | 
|  | void (*activate)(IDirect3DLightImpl*); | 
|  | int                 is_active; | 
|  |  | 
|  | LPVOID		private; | 
|  | }; | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IDirect3DMaterial2 implementation structure | 
|  | */ | 
|  | struct IDirect3DMaterial2Impl | 
|  | { | 
|  | /* IUnknown fields */ | 
|  | ICOM_VFIELD(IDirect3DMaterial2); | 
|  | DWORD                            ref; | 
|  | /* IDirect3DMaterial2 fields */ | 
|  | union { | 
|  | IDirect3DImpl*        d3d1; | 
|  | IDirect3D2Impl*       d3d2; | 
|  | } d3d; | 
|  | union { | 
|  | IDirect3DDeviceImpl*  active_device1; | 
|  | IDirect3DDevice2Impl* active_device2; | 
|  | } device; | 
|  | int                       use_d3d2; | 
|  |  | 
|  | D3DMATERIAL               mat; | 
|  |  | 
|  | void (*activate)(IDirect3DMaterial2Impl* this); | 
|  | LPVOID			private; | 
|  | }; | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IDirect3DTexture2 implementation structure | 
|  | */ | 
|  | struct IDirect3DTexture2Impl | 
|  | { | 
|  | /* IUnknown fields */ | 
|  | ICOM_VFIELD(IDirect3DTexture2); | 
|  | DWORD                           ref; | 
|  | /* IDirect3DTexture2 fields */ | 
|  | void*			D3Ddevice; /* (void *) to use the same pointer | 
|  | * for both Direct3D and Direct3D2 */ | 
|  | IDirectDrawSurfaceImpl*	surface; | 
|  | LPVOID			private; | 
|  | }; | 
|  |  | 
|  | extern HRESULT WINAPI IDirect3DTexture2Impl_QueryInterface( | 
|  | LPDIRECT3DTEXTURE2 iface, REFIID riid, LPVOID* ppvObj | 
|  | ); | 
|  | extern ULONG WINAPI IDirect3DTexture2Impl_AddRef(LPDIRECT3DTEXTURE2 iface); | 
|  | extern ULONG WINAPI IDirect3DTexture2Impl_Release(LPDIRECT3DTEXTURE2 iface); | 
|  | extern HRESULT WINAPI IDirect3DTextureImpl_GetHandle(LPDIRECT3DTEXTURE iface, | 
|  | LPDIRECT3DDEVICE lpD3DDevice, | 
|  | LPD3DTEXTUREHANDLE lpHandle) | 
|  | ; | 
|  | extern HRESULT WINAPI IDirect3DTextureImpl_Initialize(LPDIRECT3DTEXTURE iface, | 
|  | LPDIRECT3DDEVICE lpD3DDevice, | 
|  | LPDIRECTDRAWSURFACE lpSurface) | 
|  | ; | 
|  | extern HRESULT WINAPI IDirect3DTextureImpl_Unload(LPDIRECT3DTEXTURE iface); | 
|  | extern HRESULT WINAPI IDirect3DTexture2Impl_GetHandle( | 
|  | LPDIRECT3DTEXTURE2 iface, LPDIRECT3DDEVICE2 lpD3DDevice2, | 
|  | LPD3DTEXTUREHANDLE lpHandle | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DTexture2Impl_PaletteChanged( | 
|  | LPDIRECT3DTEXTURE2 iface, DWORD dwStart, DWORD dwCount | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DTexture2Impl_Load( | 
|  | LPDIRECT3DTEXTURE2 iface, LPDIRECT3DTEXTURE2 lpD3DTexture2 | 
|  | ); | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IDirect3DViewport2 implementation structure | 
|  | */ | 
|  | struct IDirect3DViewport2Impl | 
|  | { | 
|  | /* IUnknown fields */ | 
|  | ICOM_VFIELD(IDirect3DViewport2); | 
|  | DWORD                            ref; | 
|  | /* IDirect3DViewport2 fields */ | 
|  | union { | 
|  | IDirect3DImpl*        d3d1; | 
|  | IDirect3D2Impl*       d3d2; | 
|  | } d3d; | 
|  | /* If this viewport is active for one device, put the device here */ | 
|  | union { | 
|  | IDirect3DDeviceImpl*	active_device1; | 
|  | IDirect3DDevice2Impl*	active_device2; | 
|  | } device; | 
|  | int				use_d3d2; | 
|  |  | 
|  | union { | 
|  | D3DVIEWPORT		vp1; | 
|  | D3DVIEWPORT2		vp2; | 
|  | } viewport; | 
|  | int				use_vp2; | 
|  |  | 
|  | /* Activation function */ | 
|  | void (*activate)(IDirect3DViewport2Impl*); | 
|  |  | 
|  | /* Field used to chain viewports together */ | 
|  | IDirect3DViewport2Impl*	next; | 
|  |  | 
|  | /* Lights list */ | 
|  | IDirect3DLightImpl*		lights; | 
|  |  | 
|  | LPVOID			private; | 
|  | }; | 
|  |  | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_QueryInterface( | 
|  | LPDIRECT3DVIEWPORT2 iface, REFIID riid, LPVOID* ppvObj | 
|  | ); | 
|  | extern ULONG WINAPI IDirect3DViewport2Impl_AddRef(LPDIRECT3DVIEWPORT2 iface) | 
|  | ; | 
|  | extern ULONG WINAPI IDirect3DViewport2Impl_Release(LPDIRECT3DVIEWPORT2 iface) | 
|  | ; | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_Initialize( | 
|  | LPDIRECT3DVIEWPORT2 iface, LPDIRECT3D d3d | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_GetViewport( | 
|  | LPDIRECT3DVIEWPORT2 iface, LPD3DVIEWPORT lpvp | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_SetViewport( | 
|  | LPDIRECT3DVIEWPORT2 iface,LPD3DVIEWPORT lpvp | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_TransformVertices( | 
|  | LPDIRECT3DVIEWPORT2 iface,DWORD dwVertexCount,LPD3DTRANSFORMDATA lpData, | 
|  | DWORD dwFlags,LPDWORD lpOffScreen | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_LightElements( | 
|  | LPDIRECT3DVIEWPORT2 iface,DWORD dwElementCount,LPD3DLIGHTDATA lpData | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_SetBackground( | 
|  | LPDIRECT3DVIEWPORT2 iface, D3DMATERIALHANDLE hMat | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_GetBackground( | 
|  | LPDIRECT3DVIEWPORT2 iface,LPD3DMATERIALHANDLE lphMat,LPBOOL lpValid | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_SetBackgroundDepth( | 
|  | LPDIRECT3DVIEWPORT2 iface,LPDIRECTDRAWSURFACE lpDDSurface | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_GetBackgroundDepth( | 
|  | LPDIRECT3DVIEWPORT2 iface,LPDIRECTDRAWSURFACE* lplpDDSurface,LPBOOL lpValid | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_Clear( | 
|  | LPDIRECT3DVIEWPORT2 iface, DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlags | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_AddLight( | 
|  | LPDIRECT3DVIEWPORT2 iface,LPDIRECT3DLIGHT lpLight | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_DeleteLight( | 
|  | LPDIRECT3DVIEWPORT2 iface,LPDIRECT3DLIGHT lpLight | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_NextLight( | 
|  | LPDIRECT3DVIEWPORT2 iface, LPDIRECT3DLIGHT lpLight, | 
|  | LPDIRECT3DLIGHT* lplpLight, DWORD dwFlags | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_GetViewport2( | 
|  | LPDIRECT3DVIEWPORT2 iface, LPD3DVIEWPORT2 lpViewport2 | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DViewport2Impl_SetViewport2( | 
|  | LPDIRECT3DVIEWPORT2 iface, LPD3DVIEWPORT2 lpViewport2 | 
|  | ); | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IDirect3DExecuteBuffer implementation structure | 
|  | */ | 
|  | struct IDirect3DExecuteBufferImpl | 
|  | { | 
|  | /* IUnknown fields */ | 
|  | ICOM_VFIELD(IDirect3DExecuteBuffer); | 
|  | DWORD                                ref; | 
|  | /* IDirect3DExecuteBuffer fields */ | 
|  | IDirect3DDeviceImpl* d3ddev; | 
|  |  | 
|  | D3DEXECUTEBUFFERDESC desc; | 
|  | D3DEXECUTEDATA data; | 
|  |  | 
|  | /* This buffer will store the transformed vertices */ | 
|  | void* vertex_data; | 
|  | D3DVERTEXTYPE vertex_type; | 
|  |  | 
|  | /* This flags is set to TRUE if we allocated ourselves the | 
|  | data buffer */ | 
|  | BOOL need_free; | 
|  |  | 
|  | void (*execute)(IDirect3DExecuteBuffer* this, | 
|  | IDirect3DDevice* dev, | 
|  | IDirect3DViewport* vp); | 
|  | LPVOID private; | 
|  | }; | 
|  | extern LPDIRECT3DEXECUTEBUFFER d3dexecutebuffer_create(IDirect3DDeviceImpl* d3ddev, LPD3DEXECUTEBUFFERDESC lpDesc); | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IDirect3DDevice implementation structure | 
|  | */ | 
|  | struct IDirect3DDeviceImpl | 
|  | { | 
|  | /* IUnknown fields */ | 
|  | ICOM_VFIELD(IDirect3DDevice); | 
|  | DWORD                         ref; | 
|  | /* IDirect3DDevice fields */ | 
|  | IDirect3DImpl*          d3d; | 
|  | IDirectDrawSurfaceImpl* surface; | 
|  |  | 
|  | IDirect3DViewport2Impl*  viewport_list; | 
|  | IDirect3DViewport2Impl*  current_viewport; | 
|  |  | 
|  | void (*set_context)(IDirect3DDeviceImpl*); | 
|  | LPVOID		private; | 
|  | }; | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IDirect3DDevice2 implementation structure | 
|  | */ | 
|  | struct IDirect3DDevice2Impl | 
|  | { | 
|  | /* IUnknown fields */ | 
|  | ICOM_VFIELD(IDirect3DDevice2); | 
|  | DWORD                          ref; | 
|  | /* IDirect3DDevice fields */ | 
|  | IDirect3D2Impl*         d3d; | 
|  | IDirectDrawSurfaceImpl* surface; | 
|  |  | 
|  | IDirect3DViewport2Impl* viewport_list; | 
|  | IDirect3DViewport2Impl* current_viewport; | 
|  |  | 
|  | void (*set_context)(IDirect3DDevice2Impl*); | 
|  | LPVOID		private; | 
|  | }; | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_QueryInterface( | 
|  | LPDIRECT3DDEVICE2 iface, REFIID riid, LPVOID* ppvObj | 
|  | ); | 
|  | extern ULONG WINAPI IDirect3DDevice2Impl_AddRef(LPDIRECT3DDEVICE2 iface); | 
|  | extern ULONG WINAPI IDirect3DDevice2Impl_Release(LPDIRECT3DDEVICE2 iface) | 
|  | ; | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_GetCaps( | 
|  | LPDIRECT3DDEVICE2 iface, LPD3DDEVICEDESC lpdescsoft, | 
|  | LPD3DDEVICEDESC lpdeschard | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_SwapTextureHandles( | 
|  | LPDIRECT3DDEVICE2 iface,LPDIRECT3DTEXTURE2 lptex1,LPDIRECT3DTEXTURE2 lptex2 | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_GetStats( | 
|  | LPDIRECT3DDEVICE2 iface, LPD3DSTATS lpstats) | 
|  | ; | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_AddViewport( | 
|  | LPDIRECT3DDEVICE2 iface, LPDIRECT3DVIEWPORT2 lpvp | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_DeleteViewport( | 
|  | LPDIRECT3DDEVICE2 iface, LPDIRECT3DVIEWPORT2 lpvp) | 
|  | ; | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_NextViewport( | 
|  | LPDIRECT3DDEVICE2 iface, LPDIRECT3DVIEWPORT2 lpvp, | 
|  | LPDIRECT3DVIEWPORT2* lplpvp, DWORD dwFlags | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_EnumTextureFormats( | 
|  | LPDIRECT3DDEVICE2 iface, LPD3DENUMTEXTUREFORMATSCALLBACK cb, LPVOID context | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_BeginScene(LPDIRECT3DDEVICE2 iface); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_EndScene(LPDIRECT3DDEVICE2 iface); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_GetDirect3D( | 
|  | LPDIRECT3DDEVICE2 iface, LPDIRECT3D2 *lpd3d2 | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_SetCurrentViewport( | 
|  | LPDIRECT3DDEVICE2 iface, LPDIRECT3DVIEWPORT2 lpvp | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_GetCurrentViewport( | 
|  | LPDIRECT3DDEVICE2 iface, LPDIRECT3DVIEWPORT2 *lplpvp | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_SetRenderTarget( | 
|  | LPDIRECT3DDEVICE2 iface, LPDIRECTDRAWSURFACE lpdds, DWORD dwFlags | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_GetRenderTarget( | 
|  | LPDIRECT3DDEVICE2 iface, LPDIRECTDRAWSURFACE *lplpdds | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_Begin( | 
|  | LPDIRECT3DDEVICE2 iface, D3DPRIMITIVETYPE d3dp, D3DVERTEXTYPE d3dv, | 
|  | DWORD dwFlags | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_BeginIndexed( | 
|  | LPDIRECT3DDEVICE2 iface, D3DPRIMITIVETYPE d3dp, D3DVERTEXTYPE d3dv, | 
|  | LPVOID lpvert, DWORD numvert, DWORD dwFlags | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_Vertex( | 
|  | LPDIRECT3DDEVICE2 iface,LPVOID lpvert | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_Index(LPDIRECT3DDEVICE2 iface, WORD index); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_End(LPDIRECT3DDEVICE2 iface,DWORD dwFlags); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_GetRenderState( | 
|  | LPDIRECT3DDEVICE2 iface, D3DRENDERSTATETYPE d3drs, LPDWORD lprstate | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_SetRenderState( | 
|  | LPDIRECT3DDEVICE2 iface, D3DRENDERSTATETYPE dwRenderStateType, | 
|  | DWORD dwRenderState | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_GetLightState( | 
|  | LPDIRECT3DDEVICE2 iface, D3DLIGHTSTATETYPE d3dls, LPDWORD lplstate | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_SetLightState( | 
|  | LPDIRECT3DDEVICE2 iface, D3DLIGHTSTATETYPE dwLightStateType, | 
|  | DWORD dwLightState | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_SetTransform( | 
|  | LPDIRECT3DDEVICE2 iface, D3DTRANSFORMSTATETYPE d3dts, LPD3DMATRIX lpmatrix | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_GetTransform( | 
|  | LPDIRECT3DDEVICE2 iface, D3DTRANSFORMSTATETYPE d3dts, LPD3DMATRIX lpmatrix | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_MultiplyTransform( | 
|  | LPDIRECT3DDEVICE2 iface, D3DTRANSFORMSTATETYPE d3dts, LPD3DMATRIX lpmatrix | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_DrawPrimitive( | 
|  | LPDIRECT3DDEVICE2 iface, D3DPRIMITIVETYPE d3dp, D3DVERTEXTYPE d3dv, | 
|  | LPVOID lpvertex, DWORD vertcount, DWORD dwFlags | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_DrawIndexedPrimitive( | 
|  | LPDIRECT3DDEVICE2 iface, D3DPRIMITIVETYPE d3dp, D3DVERTEXTYPE d3dv, | 
|  | LPVOID lpvertex, DWORD vertcount, LPWORD lpindexes, DWORD indexcount, | 
|  | DWORD dwFlags | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_SetClipStatus( | 
|  | LPDIRECT3DDEVICE2 iface, LPD3DCLIPSTATUS lpcs | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDevice2Impl_GetClipStatus( | 
|  | LPDIRECT3DDEVICE2 iface, LPD3DCLIPSTATUS lpcs | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_QueryInterface( | 
|  | LPDIRECT3DDEVICE iface, REFIID riid, LPVOID* ppvObj | 
|  | ); | 
|  | extern ULONG WINAPI IDirect3DDeviceImpl_AddRef(LPDIRECT3DDEVICE iface); | 
|  | extern ULONG WINAPI IDirect3DDeviceImpl_Release(LPDIRECT3DDEVICE iface); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_Initialize( | 
|  | LPDIRECT3DDEVICE iface, LPDIRECT3D lpd3d, LPGUID lpGUID, | 
|  | LPD3DDEVICEDESC lpd3ddvdesc | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_GetCaps( | 
|  | LPDIRECT3DDEVICE iface, LPD3DDEVICEDESC lpD3DHWDevDesc, | 
|  | LPD3DDEVICEDESC lpD3DSWDevDesc | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_SwapTextureHandles( | 
|  | LPDIRECT3DDEVICE iface, LPDIRECT3DTEXTURE lpD3DTex1, | 
|  | LPDIRECT3DTEXTURE lpD3DTex2 | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_CreateExecuteBuffer( | 
|  | LPDIRECT3DDEVICE iface, LPD3DEXECUTEBUFFERDESC lpDesc, | 
|  | LPDIRECT3DEXECUTEBUFFER *lplpDirect3DExecuteBuffer, IUnknown *pUnkOuter | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_GetStats( | 
|  | LPDIRECT3DDEVICE iface, LPD3DSTATS lpD3DStats | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_Execute( | 
|  | LPDIRECT3DDEVICE iface, LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer, | 
|  | LPDIRECT3DVIEWPORT lpDirect3DViewport, DWORD dwFlags | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_AddViewport( | 
|  | LPDIRECT3DDEVICE iface, LPDIRECT3DVIEWPORT lpvp | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_DeleteViewport( | 
|  | LPDIRECT3DDEVICE iface, LPDIRECT3DVIEWPORT lpvp | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_NextViewport( | 
|  | LPDIRECT3DDEVICE iface, LPDIRECT3DVIEWPORT lpvp, | 
|  | LPDIRECT3DVIEWPORT* lplpvp, DWORD dwFlags | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_Pick( | 
|  | LPDIRECT3DDEVICE iface, LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer, | 
|  | LPDIRECT3DVIEWPORT lpDirect3DViewport, DWORD dwFlags, LPD3DRECT lpRect | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_GetPickRecords( | 
|  | LPDIRECT3DDEVICE iface, LPDWORD lpCount, LPD3DPICKRECORD lpD3DPickRec | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_EnumTextureFormats( | 
|  | LPDIRECT3DDEVICE iface,LPD3DENUMTEXTUREFORMATSCALLBACK lpd3dEnumTextureProc, | 
|  | LPVOID lpArg | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_CreateMatrix( | 
|  | LPDIRECT3DDEVICE iface, LPD3DMATRIXHANDLE lpD3DMatHandle | 
|  | ) | 
|  | ; | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_SetMatrix( | 
|  | LPDIRECT3DDEVICE iface, D3DMATRIXHANDLE d3dMatHandle, | 
|  | const LPD3DMATRIX lpD3DMatrix) | 
|  | ; | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_GetMatrix( | 
|  | LPDIRECT3DDEVICE iface,D3DMATRIXHANDLE D3DMatHandle,LPD3DMATRIX lpD3DMatrix | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_DeleteMatrix( | 
|  | LPDIRECT3DDEVICE iface, D3DMATRIXHANDLE d3dMatHandle | 
|  | ); | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_BeginScene(LPDIRECT3DDEVICE iface) | 
|  | ; | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_EndScene(LPDIRECT3DDEVICE iface) | 
|  | ; | 
|  | extern HRESULT WINAPI IDirect3DDeviceImpl_GetDirect3D( | 
|  | LPDIRECT3DDEVICE iface, LPDIRECT3D *lpDirect3D | 
|  | ); | 
|  |  | 
|  | /* All non-static functions 'exported' by various sub-objects */ | 
|  | extern LPDIRECT3DTEXTURE2 d3dtexture2_create(IDirectDrawSurfaceImpl* surf); | 
|  | extern LPDIRECT3DTEXTURE d3dtexture_create(IDirectDrawSurfaceImpl* surf); | 
|  |  | 
|  | extern LPDIRECT3DLIGHT d3dlight_create_dx3(IDirect3DImpl* d3d1); | 
|  | extern LPDIRECT3DLIGHT d3dlight_create(IDirect3D2Impl* d3d2); | 
|  |  | 
|  | extern LPDIRECT3DEXECUTEBUFFER d3dexecutebuffer_create(IDirect3DDeviceImpl* d3ddev, LPD3DEXECUTEBUFFERDESC lpDesc); | 
|  |  | 
|  | extern LPDIRECT3DMATERIAL d3dmaterial_create(IDirect3DImpl* d3d1); | 
|  | extern LPDIRECT3DMATERIAL2 d3dmaterial2_create(IDirect3D2Impl* d3d2); | 
|  |  | 
|  | extern LPDIRECT3DVIEWPORT d3dviewport_create(IDirect3DImpl* d3d1); | 
|  | extern LPDIRECT3DVIEWPORT2 d3dviewport2_create(IDirect3D2Impl* d3d2); | 
|  |  | 
|  | extern int is_OpenGL_dx3(REFCLSID rguid, IDirectDrawSurfaceImpl* surface, IDirect3DDeviceImpl** device); | 
|  | extern int d3d_OpenGL_dx3(LPD3DENUMDEVICESCALLBACK cb, LPVOID context) ; | 
|  | extern int d3d_OpenGL(LPD3DENUMDEVICESCALLBACK cb, LPVOID context) ; | 
|  | extern int is_OpenGL(REFCLSID rguid, IDirectDrawSurfaceImpl* surface, IDirect3DDevice2Impl** device, IDirect3D2Impl* d3d); | 
|  |  | 
|  |  | 
|  | extern void _dump_renderstate(D3DRENDERSTATETYPE type, DWORD value); | 
|  |  | 
|  | #define dump_mat(mat) \ | 
|  | TRACE("%f %f %f %f\n", (mat)->_11, (mat)->_12, (mat)->_13, (mat)->_14); \ | 
|  | TRACE("%f %f %f %f\n", (mat)->_21, (mat)->_22, (mat)->_23, (mat)->_24); \ | 
|  | TRACE("%f %f %f %f\n", (mat)->_31, (mat)->_32, (mat)->_33, (mat)->_34); \ | 
|  | TRACE("%f %f %f %f\n", (mat)->_41, (mat)->_42, (mat)->_43, (mat)->_44); | 
|  |  | 
|  | #endif /* __GRAPHICS_WINE_D3D_PRIVATE_H */ |