|  | /* | 
|  | * Direct3D driver interface | 
|  | * (DirectX 7 version) | 
|  | * | 
|  | * Copyright (C) 2001 Ove Kaaven | 
|  | * | 
|  | * This library is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU Lesser General Public | 
|  | * License as published by the Free Software Foundation; either | 
|  | * version 2.1 of the License, or (at your option) any later version. | 
|  | * | 
|  | * This library is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|  | * Lesser General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU Lesser General Public | 
|  | * License along with this library; if not, write to the Free Software | 
|  | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
|  | */ | 
|  |  | 
|  | #ifndef __WINE_D3DHAL_H | 
|  | #define __WINE_D3DHAL_H | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #include <d3d.h> | 
|  |  | 
|  | /***************************************************************************** | 
|  | * device info structures | 
|  | */ | 
|  | typedef struct _D3DDeviceDesc_V1 { | 
|  | DWORD			dwSize; | 
|  | DWORD			dwFlags; | 
|  | D3DCOLORMODEL		dcmColorModel; | 
|  | DWORD			dwDevCaps; | 
|  | D3DTRANSFORMCAPS	dtcTransformCaps; | 
|  | BOOL			bClipping; | 
|  | D3DLIGHTINGCAPS	dlcLightingCaps; | 
|  | D3DPRIMCAPS		dpcLineCaps; | 
|  | D3DPRIMCAPS		dpcTriCaps; | 
|  | DWORD			dwDeviceRenderBitDepth; | 
|  | DWORD			dwDeviceZBufferBitDepth; | 
|  | DWORD			dwMaxBufferSize; | 
|  | DWORD			dwMaxVertexCount; | 
|  | } D3DDEVICEDESC_V1,*LPD3DDEVICEDESC_V1; | 
|  |  | 
|  | /* this is to allow keeping the bulk of our OpenGL code out of x11drv */ | 
|  | #define D3DDD_WINE_OPENGL_DEVICE 0x00008000 | 
|  |  | 
|  | typedef struct _D3DHAL_GLOBALDRIVERDATA { | 
|  | DWORD			dwSize; | 
|  | D3DDEVICEDESC_V1	hwCaps; | 
|  | DWORD			dwNumVertices; | 
|  | DWORD			dwNumClipVertices; | 
|  | DWORD			dwNumTextureFormats; | 
|  | LPDDSURFACEDESC	lpTextureFormats; | 
|  | } D3DHAL_GLOBALDRIVERDATA,*LPD3DHAL_GLOBALDRIVERDATA; | 
|  |  | 
|  | typedef struct _D3DHAL_D3DEXTENDEDCAPS { | 
|  | DWORD			dwSize; | 
|  | /* DirectX 5 */ | 
|  | DWORD			dwMinTextureWidth, dwMaxTextureWidth; | 
|  | DWORD			dwMinTextureHeight, dwMaxTextureHeight; | 
|  | DWORD			dwMinStippleWidth, dwMaxStippleWidth; | 
|  | DWORD			dwMinStippleHeight, dwMaxStippleHeight; | 
|  | /* DirectX 6 */ | 
|  | DWORD			dwMaxTextureRepeat; | 
|  | DWORD			dwMaxTextureAspectRatio; | 
|  | DWORD			dwMaxAnisotropy; | 
|  | D3DVALUE		dvGuardBandLeft; | 
|  | D3DVALUE		dvGuardBandTop; | 
|  | D3DVALUE		dvGuardBandRight; | 
|  | D3DVALUE		dvGuardBandBottom; | 
|  | D3DVALUE		dvExtentsAdjust; | 
|  | DWORD			dwStencilCaps; | 
|  | DWORD			dwFVFCaps; | 
|  | DWORD			dwTextureOpCaps; | 
|  | WORD			wMaxTextureBlendStages; | 
|  | WORD			wMaxSimultaneousTextures; | 
|  | /* DirectX 7 */ | 
|  | DWORD			dwMaxActiveLights; | 
|  | D3DVALUE		dvMaxVertexW; | 
|  | WORD			wMaxUserClipPlanes; | 
|  | WORD			wMaxVertexBlendMatrices; | 
|  | DWORD			dwVertexProcessingCaps; | 
|  | DWORD			dwReserved1; | 
|  | DWORD			dwReserved2; | 
|  | DWORD			dwReserved3; | 
|  | DWORD			dwReserved4; | 
|  | } D3DHAL_D3DEXTENDEDCAPS,*LPD3DHAL_D3DEXTENDEDCAPS; | 
|  |  | 
|  | /***************************************************************************** | 
|  | * d3d->driver callbacks | 
|  | */ | 
|  | typedef struct _D3DHAL_CONTEXTCREATEDATA	*LPD3DHAL_CONTEXTCREATEDATA; | 
|  | typedef struct _D3DHAL_CONTEXTDESTROYDATA	*LPD3DHAL_CONTEXTDESTROYDATA; | 
|  | typedef struct _D3DHAL_CONTEXTDESTROYALLDATA	*LPD3DHAL_CONTEXTDESTROYALLDATA; | 
|  | typedef struct _D3DHAL_SCENECAPTUREDATA		*LPD3DHAL_SCENECAPTUREDATA; | 
|  | typedef struct _D3DHAL_RENDERSTATEDATA		*LPD3DHAL_RENDERSTATEDATA; | 
|  | typedef struct _D3DHAL_RENDERPRIMITIVEDATA	*LPD3DHAL_RENDERPRIMITIVEDATA; | 
|  | typedef struct _D3DHAL_TEXTURECREATEDATA	*LPD3DHAL_TEXTURECREATEDATA; | 
|  | typedef struct _D3DHAL_TEXTUREDESTROYDATA	*LPD3DHAL_TEXTUREDESTROYDATA; | 
|  | typedef struct _D3DHAL_TEXTURESWAPDATA		*LPD3DHAL_TEXTURESWAPDATA; | 
|  | typedef struct _D3DHAL_TEXTUREGETSURFDATA	*LPD3DHAL_TEXTUREGETSURFDATA; | 
|  | typedef struct _D3DHAL_GETSTATEDATA		*LPD3DHAL_GETSTATEDATA; | 
|  |  | 
|  | typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB)    (LPD3DHAL_CONTEXTCREATEDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB)   (LPD3DHAL_CONTEXTDESTROYDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB)	    (LPD3DHAL_SCENECAPTUREDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB)	    (LPD3DHAL_RENDERSTATEDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB)  (LPD3DHAL_RENDERPRIMITIVEDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB)    (LPD3DHAL_TEXTURECREATEDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB)   (LPD3DHAL_TEXTUREDESTROYDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB)	    (LPD3DHAL_TEXTURESWAPDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB)   (LPD3DHAL_TEXTUREGETSURFDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB)	    (LPD3DHAL_GETSTATEDATA); | 
|  |  | 
|  | typedef struct _D3DHAL_CALLBACKS { | 
|  | DWORD				dwSize; | 
|  | LPD3DHAL_CONTEXTCREATECB	ContextCreate; | 
|  | LPD3DHAL_CONTEXTDESTROYCB	ContextDestroy; | 
|  | LPD3DHAL_CONTEXTDESTROYALLCB	ContextDestroyAll; | 
|  | LPD3DHAL_SCENECAPTURECB	SceneCapture; | 
|  | LPVOID			lpReserved10; | 
|  | LPVOID			lpReserved11; | 
|  | LPD3DHAL_RENDERSTATECB	RenderState; | 
|  | LPD3DHAL_RENDERPRIMITIVECB	RenderPrimitive; | 
|  | DWORD				dwReserved; | 
|  | LPD3DHAL_TEXTURECREATECB	TextureCreate; | 
|  | LPD3DHAL_TEXTUREDESTROYCB	TextureDestroy; | 
|  | LPD3DHAL_TEXTURESWAPCB	TextureSwap; | 
|  | LPD3DHAL_TEXTUREGETSURFCB	TextureGetSurf; | 
|  | /* now why did MS create CALLBACKS2 and CALLBACKS3 structures if | 
|  | * all these reserved fields were available? we may never know */ | 
|  | LPVOID			lpReserved12; | 
|  | LPVOID			lpReserved13; | 
|  | LPVOID			lpReserved14; | 
|  | LPVOID			lpReserved15; | 
|  | LPVOID			lpReserved16; | 
|  | LPVOID			lpReserved17; | 
|  | LPVOID			lpReserved18; | 
|  | LPVOID			lpReserved19; | 
|  | LPVOID			lpReserved20; | 
|  | LPVOID			lpReserved21; | 
|  | LPD3DHAL_GETSTATECB		GetState; | 
|  | DWORD				dwReserved0; | 
|  | DWORD				dwReserved1; | 
|  | DWORD				dwReserved2; | 
|  | DWORD				dwReserved3; | 
|  | DWORD				dwReserved4; | 
|  | DWORD				dwReserved5; | 
|  | DWORD				dwReserved6; | 
|  | DWORD				dwReserved7; | 
|  | DWORD				dwReserved8; | 
|  | DWORD				dwReserved9; | 
|  | } D3DHAL_CALLBACKS,*LPD3DHAL_CALLBACKS; | 
|  |  | 
|  | typedef struct _D3DHAL_SETRENDERTARGETDATA		*LPD3DHAL_SETRENDERTARGETDATA; | 
|  | typedef struct _D3DHAL_CLEARDATA			*LPD3DHAL_CLEARDATA; | 
|  | typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA		*LPD3DHAL_DRAWONEPRIMITIVEDATA; | 
|  | typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA	*LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA; | 
|  | typedef struct _D3DHAL_DRAWPRIMITIVESDATA		*LPD3DHAL_DRAWPRIMITIVESDATA; | 
|  |  | 
|  | typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB)	  (LPD3DHAL_SETRENDERTARGETDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_CLEARCB)		  (LPD3DHAL_CLEARDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB)	  (LPD3DHAL_DRAWONEPRIMITIVEDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB)	  (LPD3DHAL_DRAWPRIMITIVESDATA); | 
|  |  | 
|  | typedef struct _D3DHAL_CALLBACKS2 { | 
|  | DWORD					dwSize; | 
|  | DWORD					dwFlags; | 
|  | LPD3DHAL_SETRENDERTARGETCB		SetRenderTarget; | 
|  | LPD3DHAL_CLEARCB			Clear; | 
|  | LPD3DHAL_DRAWONEPRIMITIVECB		DrawOnePrimitive; | 
|  | LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB	DrawOneIndexedPrimitive; | 
|  | LPD3DHAL_DRAWPRIMITIVESCB		DrawPrimitives; | 
|  | } D3DHAL_CALLBACKS2,*LPD3DHAL_CALLBACKS2; | 
|  |  | 
|  | typedef struct _D3DHAL_CLEAR2DATA			*LPD3DHAL_CLEAR2DATA; | 
|  | typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA	*LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA; | 
|  | typedef struct _D3DHAL_DRAWPRIMITIVES2DATA		*LPD3DHAL_DRAWPRIMITIVES2DATA; | 
|  |  | 
|  | typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB)		  (LPD3DHAL_CLEAR2DATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA); | 
|  | typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB)	  (LPD3DHAL_DRAWPRIMITIVES2DATA); | 
|  |  | 
|  | typedef struct _D3DHAL_CALLBACKS3 { | 
|  | DWORD					dwSize; | 
|  | DWORD					dwFlags; | 
|  | LPD3DHAL_CLEAR2CB			Clear2; | 
|  | LPVOID				lpvReserved; | 
|  | LPD3DHAL_VALIDATETEXTURESTAGESTATECB	ValidateTextureStageState; | 
|  | LPD3DHAL_DRAWPRIMITIVES2CB		DrawPrimitives2; | 
|  | } D3DHAL_CALLBACKS3,*LPD3DHAL_CALLBACKS3; | 
|  |  | 
|  | /***************************************************************************** | 
|  | * parameter structures | 
|  | */ | 
|  | typedef struct _D3DHAL_CONTEXTCREATEDATA { | 
|  | union { | 
|  | LPDDRAWI_DIRECTDRAW_GBL	lpDDGbl; /* pre-DirectX 7 */ | 
|  | LPDDRAWI_DIRECTDRAW_LCL	lpDDLcl; /* DirectX 7 */ | 
|  | } DUMMYUNIONNAME1; | 
|  | union { | 
|  | LPDIRECTDRAWSURFACE		lpDDS; | 
|  | LPDDRAWI_DDRAWSURFACE_LCL	lpDDSLcl; /* DirectX 7 */ | 
|  | } DUMMYUNIONNAME2; | 
|  | union { | 
|  | LPDIRECTDRAWSURFACE		lpDDSZ; | 
|  | LPDDRAWI_DDRAWSURFACE_LCL	lpDDSZLcl; /* DirectX 7 */ | 
|  | } DUMMYUNIONNAME3; | 
|  | union { | 
|  | DWORD			dwPID; | 
|  | ULONG_PTR			dwrstates; | 
|  | } DUMMYUNIONNAME4; | 
|  | ULONG_PTR			dwhContext; | 
|  | HRESULT			ddrval; | 
|  | } D3DHAL_CONTEXTCREATEDATA; | 
|  |  | 
|  | typedef struct _D3DHAL_CONTEXTDESTROYDATA { | 
|  | ULONG_PTR			dwhContext; | 
|  | HRESULT			ddrval; | 
|  | } D3DHAL_CONTEXTDESTROYDATA; | 
|  |  | 
|  | typedef struct _D3DHAL_CONTEXTDESTROYALLDATA { | 
|  | DWORD				dwPID; | 
|  | HRESULT			ddrval; | 
|  | } D3DHAL_CONTEXTDESTROYALLDATA; | 
|  |  | 
|  | typedef struct _D3DHAL_SCENECAPTUREDATA { | 
|  | ULONG_PTR			dwhContext; | 
|  | DWORD				dwFlag; | 
|  | HRESULT			ddrval; | 
|  | } D3DHAL_SCENECAPTUREDATA; | 
|  |  | 
|  | #define D3DHAL_SCENE_CAPTURE_START	0x00000000 | 
|  | #define D3DHAL_SCENE_CAPTURE_END	0x00000001 | 
|  |  | 
|  | typedef struct _D3DHAL_SETRENDERTARGETDATA { | 
|  | ULONG_PTR			dwhContext; | 
|  | union { | 
|  | LPDIRECTDRAWSURFACE		lpDDS; | 
|  | LPDDRAWI_DDRAWSURFACE_LCL	lpDDSLcl; | 
|  | } DUMMYUNIONNAME1; | 
|  | union { | 
|  | LPDIRECTDRAWSURFACE		lpDDSZ; | 
|  | LPDDRAWI_DDRAWSURFACE_LCL	lpDDSZLcl; | 
|  | } DUMMYUNIONNAME2; | 
|  | HRESULT			ddrval; | 
|  | } D3DHAL_SETRENDERTARGETDATA; | 
|  |  | 
|  | typedef struct _D3DHAL_DRAWPRIMITIVES2DATA { | 
|  | ULONG_PTR			dwhContext; | 
|  | DWORD				dwFlags; | 
|  | DWORD				dwVertexType; | 
|  | LPDDRAWI_DDRAWSURFACE_LCL	lpDDCommands; | 
|  | DWORD				dwCommandOffset; | 
|  | DWORD				dwCommandLength; | 
|  | union { | 
|  | LPDDRAWI_DDRAWSURFACE_LCL	lpDDVertex; | 
|  | LPVOID			lpVertices; | 
|  | } DUMMYUNIONNAME1; | 
|  | DWORD				dwVertexOffset; | 
|  | DWORD				dwVertexLength; | 
|  | DWORD				dwReqVertexBufSize; | 
|  | DWORD				dwReqCommandBufSize; | 
|  | LPDWORD			lpdwRStates; | 
|  | union { | 
|  | DWORD			dwVertexSize; | 
|  | HRESULT			ddrval; | 
|  | } DUMMYUNIONNAME2; | 
|  | DWORD				dwErrorOffset; | 
|  | } D3DHAL_DRAWPRIMITIVES2DATA; | 
|  |  | 
|  | #define D3DHALDP2_USERMEMVERTICES	0x00000001 | 
|  | #define D3DHALDP2_EXECUTEBUFFER		0x00000002 | 
|  | #define D3DHALDP2_SWAPVERTEXBUFFER	0x00000004 | 
|  | #define D3DHALDP2_SWAPCOMMANDBUFFER	0x00000008 | 
|  | #define D3DHALDP2_REQVERTEXBUFSIZE	0x00000010 | 
|  | #define D3DHALDP2_REQCOMMANDBUFSIZE	0x00000020 | 
|  | #define D3DHALDP2_VIDMEMVERTEXBUF	0x00000040 | 
|  | #define D3DHALDP2_VIDMEMCOMMANDBUF	0x00000080 | 
|  |  | 
|  | /***************************************************************************** | 
|  | * DrawPrimitives2 command structures | 
|  | */ | 
|  | typedef struct _D3DHAL_DP2COMMAND { | 
|  | BYTE bCommand; | 
|  | BYTE bReserved; | 
|  | union { | 
|  | WORD wPrimitiveCount; | 
|  | WORD wStateCount; | 
|  | } DUMMYUNIONNAME; | 
|  | } D3DHAL_DP2COMMAND,*LPD3DHAL_DP2COMMAND; | 
|  |  | 
|  | typedef enum _D3DHAL_DP2OPERATION { | 
|  | D3DDP2OP_POINTS		= 1, | 
|  | D3DDP2OP_INDEXEDLINELIST	= 2, | 
|  | D3DDP2OP_INDEXEDTRIANGLELIST	= 3, | 
|  | D3DDP2OP_RESERVED0		= 4, | 
|  | D3DDP2OP_RENDERSTATE		= 8, | 
|  | D3DDP2OP_LINELIST		= 15, | 
|  | D3DDP2OP_LINESTRIP		= 16, | 
|  | D3DDP2OP_INDEXEDLINESTRIP	= 17, | 
|  | D3DDP2OP_TRIANGLELIST		= 18, | 
|  | D3DDP2OP_TRIANGLESTRIP	= 19, | 
|  | D3DDP2OP_INDEXEDTRIANGLESTRIP	= 20, | 
|  | D3DDP2OP_TRIANGLEFAN		= 21, | 
|  | D3DDP2OP_INDEXEDTRIANGLEFAN	= 22, | 
|  | D3DDP2OP_TRIANGLEFAN_IMM	= 23, | 
|  | D3DDP2OP_LINELIST_IMM		= 24, | 
|  | D3DDP2OP_TEXTURESTAGESTATE	= 25, | 
|  | D3DDP2OP_INDEXEDTRIANGLELIST2	= 26, | 
|  | D3DDP2OP_INDEXEDLINELIST2	= 27, | 
|  | D3DDP2OP_VIEWPORTINFO		= 28, | 
|  | D3DDP2OP_WINFO		= 29, | 
|  | /* pre-DirectX 7 interfaces */ | 
|  | D3DDP2OP_SETPALETTE		= 30, | 
|  | D3DDP2OP_UPDATEPALETTE	= 31, | 
|  | /* DirectX 7 interfaces */ | 
|  | D3DDP2OP_ZRANGE		= 32, | 
|  | D3DDP2OP_SETMATERIAL		= 33, | 
|  | D3DDP2OP_SETLIGHT		= 34, | 
|  | D3DDP2OP_CREATELIGHT		= 35, | 
|  | D3DDP2OP_SETTRANSFORM		= 36, | 
|  | D3DDP2OP_EXT			= 37, | 
|  | D3DDP2OP_TEXBLT		= 38, | 
|  | D3DDP2OP_STATESET		= 39, | 
|  | D3DDP2OP_SETPRIORITY		= 40, | 
|  | /* all interfaces */ | 
|  | D3DDP2OP_SETRENDERTARGET	= 41, | 
|  | D3DDP2OP_CLEAR		= 42, | 
|  | /* DirectX 7 interfaces */ | 
|  | D3DDP2OP_SETTEXLOD		= 43, | 
|  | D3DPP2OP_SETCLIPPLANE		= 44 | 
|  | } D3DHAL_DP2OPERATION; | 
|  |  | 
|  | /* point primitives */ | 
|  |  | 
|  | typedef struct _D3DHAL_POINTS { | 
|  | WORD wCount; | 
|  | WORD wVStart; | 
|  | } D3DHAL_DP2POINTS,*LPD3DHAL_DP2POINTS; | 
|  |  | 
|  | /* line primitives */ | 
|  |  | 
|  | typedef struct _D3DHAL_DP2STARTVERTEX { | 
|  | WORD wVStart; | 
|  | } D3DHAL_DP2STARTVERTEX,*LPD3DHAL_DP2STARTVERTEX; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2LINELIST { | 
|  | WORD wVStart; | 
|  | } D3DHAL_DP2LINELIST,*LPD3DHAL_DP2LINELIST; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2INDEXEDLINELIST { | 
|  | WORD wV1; | 
|  | WORD wV2; | 
|  | } D3DHAL_DP2INDEXEDLINELIST,*LPD3DHAL_DP2INDEXEDLINELIST; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2LINESTRIP { | 
|  | WORD wVStart; | 
|  | } D3DHAL_DP2LINESTRIP,*LPD3DHAL_DP2LINESTRIP; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2INDEXEDLINESTRIP { | 
|  | WORD wV[2]; | 
|  | } D3DHAL_DP2INDEXEDLINESTRIP,*LPD3DHAL_DP2INDEXEDLINESTRIP; | 
|  |  | 
|  | /* triangle primitives */ | 
|  |  | 
|  | typedef struct _D3DHAL_DP2TRIANGLELIST { | 
|  | WORD wVStart; | 
|  | } D3DHAL_DP2TRIANGLELIST,*LPD3DHAL_DP2TRIANGLELIST; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST { | 
|  | WORD wV1; | 
|  | WORD wV2; | 
|  | WORD wV3; | 
|  | WORD wFlags; | 
|  | } D3DHAL_DP2INDEXEDTRIANGLELIST,*LPD3DHAL_DP2INDEXEDTRIANGLELIST; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 { | 
|  | WORD wV1; | 
|  | WORD wV2; | 
|  | WORD wV3; | 
|  | } D3DHAL_DP2INDEXEDTRIANGLELIST2,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2TRIANGLESTRIP { | 
|  | WORD wVStart; | 
|  | } D3DHAL_DP2TRIANGLESTRIP,*LPD3DHAL_DP2TRIANGLESTRIP; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP { | 
|  | WORD wV[3]; | 
|  | } D3DHAL_DP2INDEXEDTRIANGLESTRIP,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2TRIANGLEFAN { | 
|  | WORD wVStart; | 
|  | } D3DHAL_DP2TRIANGLEFAN,*LPD3DHAL_DP2TRIANGLEFAN; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN { | 
|  | WORD wV[3]; | 
|  | } D3DHAL_DP2INDEXEDTRIANGLEFAN,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM { | 
|  | DWORD dwEdgeFlags; | 
|  | } D3DHAL_DP2TRIANGLEFAN_IMM,*LPD3DHAL_DP2TRIANGLEFAN_IMM; | 
|  |  | 
|  | /* render states */ | 
|  | typedef struct _D3DHAL_DP2RENDERSTATE { | 
|  | D3DRENDERSTATETYPE	RenderState; | 
|  | union { | 
|  | D3DVALUE dvState; | 
|  | DWORD dwState; | 
|  | } DUMMYUNIONNAME; | 
|  | } D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2TEXTURESTAGESTATE { | 
|  | WORD	wStage; | 
|  | WORD	TSState; | 
|  | DWORD dwValue; | 
|  | } D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE; | 
|  |  | 
|  | #define D3DTSS_TEXTUREMAP 0 | 
|  |  | 
|  | typedef struct _D3DHAL_DP2VIEWPORTINFO { | 
|  | DWORD dwX; | 
|  | DWORD dwY; | 
|  | DWORD dwWidth; | 
|  | DWORD dwHeight; | 
|  | } D3DHAL_DP2VIEWPORTINFO,*LPD3DHAL_DP2VIEWPORTINFO; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2WINFO { | 
|  | D3DVALUE dwWNear; | 
|  | D3DVALUE dwWFar; | 
|  | } D3DHAL_DP2WINFO,*LPD3DHAL_DP2WINFO; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2SETPALETTE { | 
|  | DWORD dwPaletteHandle; | 
|  | DWORD dwPaletteFlags; | 
|  | DWORD dwSurfaceHandle; | 
|  | } D3DHAL_DP2SETPALETTE,*LPD3DHAL_DP2SETPALETTE; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2UPDATEPALETTE { | 
|  | DWORD dwPaletteHandle; | 
|  | WORD	wStartIndex; | 
|  | WORD	wNumEntries; | 
|  | } D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2ZRANGE { | 
|  | D3DVALUE dvMinZ; | 
|  | D3DVALUE dvMaxZ; | 
|  | } D3DHAL_DP2ZRANGE,*LPD3DHAL_DP2ZRANGE; | 
|  |  | 
|  | typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2SETLIGHT { | 
|  | DWORD dwIndex; | 
|  | DWORD dwDataType; | 
|  | } D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT; | 
|  |  | 
|  | #define D3DHAL_SETLIGHT_ENABLE	0 | 
|  | #define D3DHAL_SETLIGHT_DISABLE	1 | 
|  | #define D3DHAL_SETLIGHT_DATA	2 | 
|  |  | 
|  | typedef struct _D3DHAL_DP2CREATELIGHT { | 
|  | DWORD dwIndex; | 
|  | } D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2SETTRANSFORM { | 
|  | D3DTRANSFORMSTATETYPE	xfrmType; | 
|  | D3DMATRIX		matrix; | 
|  | } D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2TEXBLT { | 
|  | DWORD dwDDDestSurface; | 
|  | DWORD dwDDSrcSurface; | 
|  | POINT pDest; | 
|  | RECTL rSrc; | 
|  | DWORD dwFlags; | 
|  | } D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2STATESET { | 
|  | DWORD               dwOperation; | 
|  | DWORD               dwParam; | 
|  | D3DSTATEBLOCKTYPE   sbType; | 
|  | } D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET; | 
|  |  | 
|  | #define D3DHAL_STATESETBEGIN	0 | 
|  | #define D3DHAL_STATESETEND	1 | 
|  | #define D3DHAL_STATESETDELETE	2 | 
|  | #define D3DHAL_STATESETEXECUTE	3 | 
|  | #define D3DHAL_STATESETCAPTURE	4 | 
|  |  | 
|  | typedef struct _D3DHAL_DP2SETPRIORITY { | 
|  | DWORD dwDDSurface; | 
|  | DWORD dwPriority; | 
|  | } D3DHAL_DP2SETPRIORITY,*LPD3DHAL_DP2SETPRIORITY; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2SETRENDERTARGET { | 
|  | DWORD hRenderTarget; | 
|  | DWORD hZBuffer; | 
|  | } D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2CLEAR { | 
|  | DWORD		dwFlags; | 
|  | DWORD		dwFillColor; | 
|  | D3DVALUE	dvFillDepth; | 
|  | DWORD		dwFillStencil; | 
|  | RECT		Rects[1]; | 
|  | } D3DHAL_DP2CLEAR,*LPD3DHAL_DP2CLEAR; | 
|  |  | 
|  | typedef struct _D3DHAL_DP2SETTEXLOD { | 
|  | DWORD dwDDSurface; | 
|  | DWORD dwLOD; | 
|  | } D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD; | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } /* extern "C" */ | 
|  | #endif | 
|  |  | 
|  | #endif /* __WINE_DDRAWI_H */ |