| /* | 
 |  * 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 */ |