zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

d3dhal.h (17883B) - Raw


      1 /*
      2  * Direct3D driver interface
      3  * (DirectX 7 version)
      4  *
      5  * Copyright (C) 2001 Ove Kaaven
      6  *
      7  * This library is free software; you can redistribute it and/or
      8  * modify it under the terms of the GNU Lesser General Public
      9  * License as published by the Free Software Foundation; either
     10  * version 2.1 of the License, or (at your option) any later version.
     11  *
     12  * This library is distributed in the hope that it will be useful,
     13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     15  * Lesser General Public License for more details.
     16  *
     17  * You should have received a copy of the GNU Lesser General Public
     18  * License along with this library; if not, write to the Free Software
     19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
     20  */
     21 
     22 #ifndef __WINE_D3DHAL_H
     23 #define __WINE_D3DHAL_H
     24 
     25 #ifdef __cplusplus
     26 extern "C" {
     27 #endif
     28 
     29 #include <d3d.h>
     30 
     31 /*****************************************************************************
     32  * device info structures
     33  */
     34 typedef struct _D3DDeviceDesc_V1 {
     35   DWORD			dwSize;
     36   DWORD			dwFlags;
     37   D3DCOLORMODEL		dcmColorModel;
     38   DWORD			dwDevCaps;
     39   D3DTRANSFORMCAPS	dtcTransformCaps;
     40   WINBOOL			bClipping;
     41   D3DLIGHTINGCAPS	dlcLightingCaps;
     42   D3DPRIMCAPS		dpcLineCaps;
     43   D3DPRIMCAPS		dpcTriCaps;
     44   DWORD			dwDeviceRenderBitDepth;
     45   DWORD			dwDeviceZBufferBitDepth;
     46   DWORD			dwMaxBufferSize;
     47   DWORD			dwMaxVertexCount;
     48 } D3DDEVICEDESC_V1,*LPD3DDEVICEDESC_V1;
     49 
     50 typedef struct _D3DDeviceDesc_V2
     51 {
     52   DWORD dwSize;
     53   DWORD dwFlags;
     54   D3DCOLORMODEL dcmColorModel;
     55   DWORD dwDevCaps;
     56   D3DTRANSFORMCAPS dtcTransformCaps;
     57   WINBOOL bClipping;
     58   D3DLIGHTINGCAPS dlcLightingCaps;
     59   D3DPRIMCAPS dpcLineCaps;
     60   D3DPRIMCAPS dpcTriCaps;
     61   DWORD dwDeviceRenderBitDepth;
     62   DWORD dwDeviceZBufferBitDepth;
     63   DWORD dwMaxBufferSize;
     64   DWORD dwMaxVertexCount;
     65 
     66   /* DirectX 5 */
     67   DWORD dwMinTextureWidth;
     68   DWORD dwMinTextureHeight;
     69   DWORD dwMaxTextureWidth;
     70   DWORD dwMaxTextureHeight;
     71   DWORD dwMinStippleWidth;
     72   DWORD dwMaxStippleWidth;
     73   DWORD dwMinStippleHeight;
     74   DWORD dwMaxStippleHeight;
     75 } D3DDEVICEDESC_V2, *LPD3DDEVICEDESC_V2;
     76 
     77 typedef struct _D3DDeviceDesc_V3
     78 {
     79   DWORD dwSize;
     80   DWORD dwFlags;
     81   D3DCOLORMODEL dcmColorModel;
     82   DWORD dwDevCaps;
     83   D3DTRANSFORMCAPS dtcTransformCaps;
     84   WINBOOL bClipping;
     85   D3DLIGHTINGCAPS dlcLightingCaps;
     86   D3DPRIMCAPS dpcLineCaps;
     87   D3DPRIMCAPS dpcTriCaps;
     88   DWORD dwDeviceRenderBitDepth;
     89   DWORD dwDeviceZBufferBitDepth;
     90   DWORD dwMaxBufferSize;
     91   DWORD dwMaxVertexCount;
     92 
     93   /* DirectX 5 */
     94   DWORD dwMinTextureWidth;
     95   DWORD dwMinTextureHeight;
     96   DWORD dwMaxTextureWidth;
     97   DWORD dwMaxTextureHeight;
     98   DWORD dwMinStippleWidth;
     99   DWORD dwMaxStippleWidth;
    100   DWORD dwMinStippleHeight;
    101   DWORD dwMaxStippleHeight;
    102 
    103   /* DirectX 6 */
    104   DWORD dwMaxTextureRepeat;
    105   DWORD dwMaxTextureAspectRatio;
    106   DWORD dwMaxAnisotropy;
    107   D3DVALUE dvGuardBandLeft;
    108   D3DVALUE dvGuardBandTop;
    109   D3DVALUE dvGuardBandRight;
    110   D3DVALUE dvGuardBandBottom;
    111   D3DVALUE dvExtentsAdjust;
    112   DWORD dwStencilCaps;
    113   DWORD dwFVFCaps;
    114   DWORD dwTextureOpCaps;
    115   WORD wMaxTextureBlendStages;
    116   WORD wMaxSimultaneousTextures;
    117 } D3DDEVICEDESC_V3, *LPD3DDEVICEDESC_V3;
    118 
    119 typedef struct _D3DHAL_GLOBALDRIVERDATA {
    120   DWORD			dwSize;
    121   D3DDEVICEDESC_V1	hwCaps;
    122   DWORD			dwNumVertices;
    123   DWORD			dwNumClipVertices;
    124   DWORD			dwNumTextureFormats;
    125   LPDDSURFACEDESC	lpTextureFormats;
    126 } D3DHAL_GLOBALDRIVERDATA,*LPD3DHAL_GLOBALDRIVERDATA;
    127 
    128 typedef struct _D3DHAL_D3DEXTENDEDCAPS {
    129   DWORD			dwSize;
    130   /* DirectX 5 */
    131   DWORD			dwMinTextureWidth, dwMaxTextureWidth;
    132   DWORD			dwMinTextureHeight, dwMaxTextureHeight;
    133   DWORD			dwMinStippleWidth, dwMaxStippleWidth;
    134   DWORD			dwMinStippleHeight, dwMaxStippleHeight;
    135   /* DirectX 6 */
    136   DWORD			dwMaxTextureRepeat;
    137   DWORD			dwMaxTextureAspectRatio;
    138   DWORD			dwMaxAnisotropy;
    139   D3DVALUE		dvGuardBandLeft;
    140   D3DVALUE		dvGuardBandTop;
    141   D3DVALUE		dvGuardBandRight;
    142   D3DVALUE		dvGuardBandBottom;
    143   D3DVALUE		dvExtentsAdjust;
    144   DWORD			dwStencilCaps;
    145   DWORD			dwFVFCaps;
    146   DWORD			dwTextureOpCaps;
    147   WORD			wMaxTextureBlendStages;
    148   WORD			wMaxSimultaneousTextures;
    149   /* DirectX 7 */
    150   DWORD			dwMaxActiveLights;
    151   D3DVALUE		dvMaxVertexW;
    152   WORD			wMaxUserClipPlanes;
    153   WORD			wMaxVertexBlendMatrices;
    154   DWORD			dwVertexProcessingCaps;
    155   DWORD			dwReserved1;
    156   DWORD			dwReserved2;
    157   DWORD			dwReserved3;
    158   DWORD			dwReserved4;
    159 } D3DHAL_D3DEXTENDEDCAPS,*LPD3DHAL_D3DEXTENDEDCAPS;
    160 
    161 /*****************************************************************************
    162  * d3d->driver callbacks
    163  */
    164 typedef struct _D3DHAL_CONTEXTCREATEDATA	*LPD3DHAL_CONTEXTCREATEDATA;
    165 typedef struct _D3DHAL_CONTEXTDESTROYDATA	*LPD3DHAL_CONTEXTDESTROYDATA;
    166 typedef struct _D3DHAL_CONTEXTDESTROYALLDATA	*LPD3DHAL_CONTEXTDESTROYALLDATA;
    167 typedef struct _D3DHAL_SCENECAPTUREDATA		*LPD3DHAL_SCENECAPTUREDATA;
    168 typedef struct _D3DHAL_RENDERSTATEDATA		*LPD3DHAL_RENDERSTATEDATA;
    169 typedef struct _D3DHAL_RENDERPRIMITIVEDATA	*LPD3DHAL_RENDERPRIMITIVEDATA;
    170 typedef struct _D3DHAL_TEXTURECREATEDATA	*LPD3DHAL_TEXTURECREATEDATA;
    171 typedef struct _D3DHAL_TEXTUREDESTROYDATA	*LPD3DHAL_TEXTUREDESTROYDATA;
    172 typedef struct _D3DHAL_TEXTURESWAPDATA		*LPD3DHAL_TEXTURESWAPDATA;
    173 typedef struct _D3DHAL_TEXTUREGETSURFDATA	*LPD3DHAL_TEXTUREGETSURFDATA;
    174 typedef struct _D3DHAL_GETSTATEDATA		*LPD3DHAL_GETSTATEDATA;
    175 
    176 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB)    (LPD3DHAL_CONTEXTCREATEDATA);
    177 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB)   (LPD3DHAL_CONTEXTDESTROYDATA);
    178 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA);
    179 typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB)	    (LPD3DHAL_SCENECAPTUREDATA);
    180 typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB)	    (LPD3DHAL_RENDERSTATEDATA);
    181 typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB)  (LPD3DHAL_RENDERPRIMITIVEDATA);
    182 typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB)    (LPD3DHAL_TEXTURECREATEDATA);
    183 typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB)   (LPD3DHAL_TEXTUREDESTROYDATA);
    184 typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB)	    (LPD3DHAL_TEXTURESWAPDATA);
    185 typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB)   (LPD3DHAL_TEXTUREGETSURFDATA);
    186 typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB)	    (LPD3DHAL_GETSTATEDATA);
    187 
    188 typedef struct _D3DHAL_CALLBACKS {
    189   DWORD				dwSize;
    190   LPD3DHAL_CONTEXTCREATECB	ContextCreate;
    191   LPD3DHAL_CONTEXTDESTROYCB	ContextDestroy;
    192   LPD3DHAL_CONTEXTDESTROYALLCB	ContextDestroyAll;
    193   LPD3DHAL_SCENECAPTURECB	SceneCapture;
    194   LPVOID			lpReserved10;
    195   LPVOID			lpReserved11;
    196   LPD3DHAL_RENDERSTATECB	RenderState;
    197   LPD3DHAL_RENDERPRIMITIVECB	RenderPrimitive;
    198   DWORD				dwReserved;
    199   LPD3DHAL_TEXTURECREATECB	TextureCreate;
    200   LPD3DHAL_TEXTUREDESTROYCB	TextureDestroy;
    201   LPD3DHAL_TEXTURESWAPCB	TextureSwap;
    202   LPD3DHAL_TEXTUREGETSURFCB	TextureGetSurf;
    203   /* now why did MS create CALLBACKS2 and CALLBACKS3 structures if
    204    * all these reserved fields were available? we may never know */
    205   LPVOID			lpReserved12;
    206   LPVOID			lpReserved13;
    207   LPVOID			lpReserved14;
    208   LPVOID			lpReserved15;
    209   LPVOID			lpReserved16;
    210   LPVOID			lpReserved17;
    211   LPVOID			lpReserved18;
    212   LPVOID			lpReserved19;
    213   LPVOID			lpReserved20;
    214   LPVOID			lpReserved21;
    215   LPD3DHAL_GETSTATECB		GetState;
    216   DWORD				dwReserved0;
    217   DWORD				dwReserved1;
    218   DWORD				dwReserved2;
    219   DWORD				dwReserved3;
    220   DWORD				dwReserved4;
    221   DWORD				dwReserved5;
    222   DWORD				dwReserved6;
    223   DWORD				dwReserved7;
    224   DWORD				dwReserved8;
    225   DWORD				dwReserved9;
    226 } D3DHAL_CALLBACKS,*LPD3DHAL_CALLBACKS;
    227 
    228 typedef struct _D3DHAL_SETRENDERTARGETDATA		*LPD3DHAL_SETRENDERTARGETDATA;
    229 typedef struct _D3DHAL_CLEARDATA			*LPD3DHAL_CLEARDATA;
    230 typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA		*LPD3DHAL_DRAWONEPRIMITIVEDATA;
    231 typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA	*LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA;
    232 typedef struct _D3DHAL_DRAWPRIMITIVESDATA		*LPD3DHAL_DRAWPRIMITIVESDATA;
    233 
    234 typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB)	  (LPD3DHAL_SETRENDERTARGETDATA);
    235 typedef DWORD (PASCAL *LPD3DHAL_CLEARCB)		  (LPD3DHAL_CLEARDATA);
    236 typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB)	  (LPD3DHAL_DRAWONEPRIMITIVEDATA);
    237 typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA);
    238 typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB)	  (LPD3DHAL_DRAWPRIMITIVESDATA);
    239 
    240 typedef struct _D3DHAL_CALLBACKS2 {
    241   DWORD					dwSize;
    242   DWORD					dwFlags;
    243   LPD3DHAL_SETRENDERTARGETCB		SetRenderTarget;
    244   LPD3DHAL_CLEARCB			Clear;
    245   LPD3DHAL_DRAWONEPRIMITIVECB		DrawOnePrimitive;
    246   LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB	DrawOneIndexedPrimitive;
    247   LPD3DHAL_DRAWPRIMITIVESCB		DrawPrimitives;
    248 } D3DHAL_CALLBACKS2,*LPD3DHAL_CALLBACKS2;
    249 
    250 typedef struct _D3DHAL_CLEAR2DATA			*LPD3DHAL_CLEAR2DATA;
    251 typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA	*LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA;
    252 typedef struct _D3DHAL_DRAWPRIMITIVES2DATA		*LPD3DHAL_DRAWPRIMITIVES2DATA;
    253 
    254 typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB)		  (LPD3DHAL_CLEAR2DATA);
    255 typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
    256 typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB)	  (LPD3DHAL_DRAWPRIMITIVES2DATA);
    257 
    258 typedef struct _D3DHAL_CALLBACKS3 {
    259   DWORD					dwSize;
    260   DWORD					dwFlags;
    261   LPD3DHAL_CLEAR2CB			Clear2;
    262   LPVOID				lpvReserved;
    263   LPD3DHAL_VALIDATETEXTURESTAGESTATECB	ValidateTextureStageState;
    264   LPD3DHAL_DRAWPRIMITIVES2CB		DrawPrimitives2;
    265 } D3DHAL_CALLBACKS3,*LPD3DHAL_CALLBACKS3;
    266 
    267 /*****************************************************************************
    268  * parameter structures
    269  */
    270 typedef struct _D3DHAL_CONTEXTCREATEDATA {
    271   union {
    272     LPDDRAWI_DIRECTDRAW_GBL	lpDDGbl; /* pre-DirectX 7 */
    273     LPDDRAWI_DIRECTDRAW_LCL	lpDDLcl; /* DirectX 7 */
    274   } DUMMYUNIONNAME1;
    275   union {
    276     LPDIRECTDRAWSURFACE		lpDDS;
    277     LPDDRAWI_DDRAWSURFACE_LCL	lpDDSLcl; /* DirectX 7 */
    278   } DUMMYUNIONNAME2;
    279   union {
    280     LPDIRECTDRAWSURFACE		lpDDSZ;
    281     LPDDRAWI_DDRAWSURFACE_LCL	lpDDSZLcl; /* DirectX 7 */
    282   } DUMMYUNIONNAME3;
    283   union {
    284     DWORD			dwPID;
    285     ULONG_PTR			dwrstates;
    286   } DUMMYUNIONNAME4;
    287   ULONG_PTR			dwhContext;
    288   HRESULT			ddrval;
    289 } D3DHAL_CONTEXTCREATEDATA;
    290 
    291 typedef struct _D3DHAL_CONTEXTDESTROYDATA {
    292   ULONG_PTR			dwhContext;
    293   HRESULT			ddrval;
    294 } D3DHAL_CONTEXTDESTROYDATA;
    295 
    296 typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
    297   DWORD				dwPID;
    298   HRESULT			ddrval;
    299 } D3DHAL_CONTEXTDESTROYALLDATA;
    300 
    301 typedef struct _D3DHAL_SCENECAPTUREDATA {
    302   ULONG_PTR			dwhContext;
    303   DWORD				dwFlag;
    304   HRESULT			ddrval;
    305 } D3DHAL_SCENECAPTUREDATA;
    306 
    307 #define D3DHAL_SCENE_CAPTURE_START	0x00000000
    308 #define D3DHAL_SCENE_CAPTURE_END	0x00000001
    309 
    310 typedef struct _D3DHAL_SETRENDERTARGETDATA {
    311   ULONG_PTR			dwhContext;
    312   union {
    313     LPDIRECTDRAWSURFACE		lpDDS;
    314     LPDDRAWI_DDRAWSURFACE_LCL	lpDDSLcl;
    315   } DUMMYUNIONNAME1;
    316   union {
    317     LPDIRECTDRAWSURFACE		lpDDSZ;
    318     LPDDRAWI_DDRAWSURFACE_LCL	lpDDSZLcl;
    319   } DUMMYUNIONNAME2;
    320   HRESULT			ddrval;
    321 } D3DHAL_SETRENDERTARGETDATA;
    322 
    323 typedef struct _D3DHAL_DRAWPRIMITIVES2DATA {
    324   ULONG_PTR			dwhContext;
    325   DWORD				dwFlags;
    326   DWORD				dwVertexType;
    327   LPDDRAWI_DDRAWSURFACE_LCL	lpDDCommands;
    328   DWORD				dwCommandOffset;
    329   DWORD				dwCommandLength;
    330   union {
    331     LPDDRAWI_DDRAWSURFACE_LCL	lpDDVertex;
    332     LPVOID			lpVertices;
    333   } DUMMYUNIONNAME1;
    334   DWORD				dwVertexOffset;
    335   DWORD				dwVertexLength;
    336   DWORD				dwReqVertexBufSize;
    337   DWORD				dwReqCommandBufSize;
    338   LPDWORD			lpdwRStates;
    339   union {
    340     DWORD			dwVertexSize;
    341     HRESULT			ddrval;
    342   } DUMMYUNIONNAME2;
    343   DWORD				dwErrorOffset;
    344 } D3DHAL_DRAWPRIMITIVES2DATA;
    345 
    346 #define D3DHALDP2_USERMEMVERTICES	0x00000001
    347 #define D3DHALDP2_EXECUTEBUFFER		0x00000002
    348 #define D3DHALDP2_SWAPVERTEXBUFFER	0x00000004
    349 #define D3DHALDP2_SWAPCOMMANDBUFFER	0x00000008
    350 #define D3DHALDP2_REQVERTEXBUFSIZE	0x00000010
    351 #define D3DHALDP2_REQCOMMANDBUFSIZE	0x00000020
    352 #define D3DHALDP2_VIDMEMVERTEXBUF	0x00000040
    353 #define D3DHALDP2_VIDMEMCOMMANDBUF	0x00000080
    354 
    355 /*****************************************************************************
    356  * DrawPrimitives2 command structures
    357  */
    358 typedef struct _D3DHAL_DP2COMMAND {
    359   BYTE bCommand;
    360   BYTE bReserved;
    361   union {
    362     WORD wPrimitiveCount;
    363     WORD wStateCount;
    364   } DUMMYUNIONNAME;
    365 } D3DHAL_DP2COMMAND,*LPD3DHAL_DP2COMMAND;
    366 
    367 typedef enum _D3DHAL_DP2OPERATION {
    368   D3DDP2OP_POINTS		= 1,
    369   D3DDP2OP_INDEXEDLINELIST	= 2,
    370   D3DDP2OP_INDEXEDTRIANGLELIST	= 3,
    371   D3DDP2OP_RENDERSTATE		= 8,
    372   D3DDP2OP_LINELIST		= 15,
    373   D3DDP2OP_LINESTRIP		= 16,
    374   D3DDP2OP_INDEXEDLINESTRIP	= 17,
    375   D3DDP2OP_TRIANGLELIST		= 18,
    376   D3DDP2OP_TRIANGLESTRIP	= 19,
    377   D3DDP2OP_INDEXEDTRIANGLESTRIP	= 20,
    378   D3DDP2OP_TRIANGLEFAN		= 21,
    379   D3DDP2OP_INDEXEDTRIANGLEFAN	= 22,
    380   D3DDP2OP_TRIANGLEFAN_IMM	= 23,
    381   D3DDP2OP_LINELIST_IMM		= 24,
    382   D3DDP2OP_TEXTURESTAGESTATE	= 25,
    383   D3DDP2OP_INDEXEDTRIANGLELIST2	= 26,
    384   D3DDP2OP_INDEXEDLINELIST2	= 27,
    385   D3DDP2OP_VIEWPORTINFO		= 28,
    386   D3DDP2OP_WINFO		= 29,
    387   /* pre-DirectX 7 interfaces */
    388   D3DDP2OP_SETPALETTE		= 30,
    389   D3DDP2OP_UPDATEPALETTE	= 31,
    390   /* DirectX 7 interfaces */
    391   D3DDP2OP_ZRANGE		= 32,
    392   D3DDP2OP_SETMATERIAL		= 33,
    393   D3DDP2OP_SETLIGHT		= 34,
    394   D3DDP2OP_CREATELIGHT		= 35,
    395   D3DDP2OP_SETTRANSFORM		= 36,
    396   D3DDP2OP_TEXBLT		= 38,
    397   D3DDP2OP_STATESET		= 39,
    398   D3DDP2OP_SETPRIORITY		= 40,
    399   /* all interfaces */
    400   D3DDP2OP_SETRENDERTARGET	= 41,
    401   D3DDP2OP_CLEAR		= 42,
    402   /* DirectX 7 interfaces */
    403   D3DDP2OP_SETTEXLOD		= 43,
    404   D3DPP2OP_SETCLIPPLANE		= 44
    405 } D3DHAL_DP2OPERATION;
    406 
    407 /* point primitives */
    408 
    409 typedef struct _D3DHAL_POINTS {
    410   WORD wCount;
    411   WORD wVStart;
    412 } D3DHAL_DP2POINTS,*LPD3DHAL_DP2POINTS;
    413 
    414 /* line primitives */
    415 
    416 typedef struct _D3DHAL_DP2STARTVERTEX {
    417   WORD wVStart;
    418 } D3DHAL_DP2STARTVERTEX,*LPD3DHAL_DP2STARTVERTEX;
    419 
    420 typedef struct _D3DHAL_DP2LINELIST {
    421   WORD wVStart;
    422 } D3DHAL_DP2LINELIST,*LPD3DHAL_DP2LINELIST;
    423 
    424 typedef struct _D3DHAL_DP2INDEXEDLINELIST {
    425   WORD wV1;
    426   WORD wV2;
    427 } D3DHAL_DP2INDEXEDLINELIST,*LPD3DHAL_DP2INDEXEDLINELIST;
    428 
    429 typedef struct _D3DHAL_DP2LINESTRIP {
    430   WORD wVStart;
    431 } D3DHAL_DP2LINESTRIP,*LPD3DHAL_DP2LINESTRIP;
    432 
    433 typedef struct _D3DHAL_DP2INDEXEDLINESTRIP {
    434   WORD wV[2];
    435 } D3DHAL_DP2INDEXEDLINESTRIP,*LPD3DHAL_DP2INDEXEDLINESTRIP;
    436 
    437 /* triangle primitives */
    438 
    439 typedef struct _D3DHAL_DP2TRIANGLELIST {
    440   WORD wVStart;
    441 } D3DHAL_DP2TRIANGLELIST,*LPD3DHAL_DP2TRIANGLELIST;
    442 
    443 typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
    444   WORD wV1;
    445   WORD wV2;
    446   WORD wV3;
    447   WORD wFlags;
    448 } D3DHAL_DP2INDEXEDTRIANGLELIST,*LPD3DHAL_DP2INDEXEDTRIANGLELIST;
    449 
    450 typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 {
    451   WORD wV1;
    452   WORD wV2;
    453   WORD wV3;
    454 } D3DHAL_DP2INDEXEDTRIANGLELIST2,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2;
    455 
    456 typedef struct _D3DHAL_DP2TRIANGLESTRIP {
    457   WORD wVStart;
    458 } D3DHAL_DP2TRIANGLESTRIP,*LPD3DHAL_DP2TRIANGLESTRIP;
    459 
    460 typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
    461   WORD wV[3];
    462 } D3DHAL_DP2INDEXEDTRIANGLESTRIP,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;
    463 
    464 typedef struct _D3DHAL_DP2TRIANGLEFAN {
    465   WORD wVStart;
    466 } D3DHAL_DP2TRIANGLEFAN,*LPD3DHAL_DP2TRIANGLEFAN;
    467 
    468 typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
    469   WORD wV[3];
    470 } D3DHAL_DP2INDEXEDTRIANGLEFAN,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN;
    471 
    472 typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
    473   DWORD dwEdgeFlags;
    474 } D3DHAL_DP2TRIANGLEFAN_IMM,*LPD3DHAL_DP2TRIANGLEFAN_IMM;
    475 
    476 /* render states */
    477 typedef struct _D3DHAL_DP2RENDERSTATE {
    478   D3DRENDERSTATETYPE	RenderState;
    479   union {
    480     D3DVALUE dvState;
    481     DWORD dwState;
    482   } DUMMYUNIONNAME;
    483 } D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE;
    484 
    485 typedef struct _D3DHAL_DP2TEXTURESTAGESTATE {
    486   WORD	wStage;
    487   WORD	TSState;
    488   DWORD dwValue;
    489 } D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE;
    490 
    491 #define D3DTSS_TEXTUREMAP 0
    492 
    493 typedef struct _D3DHAL_DP2VIEWPORTINFO {
    494   DWORD dwX;
    495   DWORD dwY;
    496   DWORD dwWidth;
    497   DWORD dwHeight;
    498 } D3DHAL_DP2VIEWPORTINFO,*LPD3DHAL_DP2VIEWPORTINFO;
    499 
    500 typedef struct _D3DHAL_DP2WINFO {
    501   D3DVALUE dwWNear;
    502   D3DVALUE dwWFar;
    503 } D3DHAL_DP2WINFO,*LPD3DHAL_DP2WINFO;
    504 
    505 typedef struct _D3DHAL_DP2SETPALETTE {
    506   DWORD dwPaletteHandle;
    507   DWORD dwPaletteFlags;
    508   DWORD dwSurfaceHandle;
    509 } D3DHAL_DP2SETPALETTE,*LPD3DHAL_DP2SETPALETTE;
    510 
    511 typedef struct _D3DHAL_DP2UPDATEPALETTE {
    512   DWORD dwPaletteHandle;
    513   WORD	wStartIndex;
    514   WORD	wNumEntries;
    515 } D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE;
    516 
    517 typedef struct _D3DHAL_DP2ZRANGE {
    518   D3DVALUE dvMinZ;
    519   D3DVALUE dvMaxZ;
    520 } D3DHAL_DP2ZRANGE,*LPD3DHAL_DP2ZRANGE;
    521 
    522 typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL;
    523 
    524 typedef struct _D3DHAL_DP2SETLIGHT {
    525   DWORD dwIndex;
    526   DWORD dwDataType;
    527 } D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT;
    528 
    529 #define D3DHAL_SETLIGHT_ENABLE	0
    530 #define D3DHAL_SETLIGHT_DISABLE	1
    531 #define D3DHAL_SETLIGHT_DATA	2
    532 
    533 typedef struct _D3DHAL_DP2CREATELIGHT {
    534   DWORD dwIndex;
    535 } D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT;
    536 
    537 typedef struct _D3DHAL_DP2SETTRANSFORM {
    538   D3DTRANSFORMSTATETYPE	xfrmType;
    539   D3DMATRIX		matrix;
    540 } D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM;
    541 
    542 typedef struct _D3DHAL_DP2TEXBLT {
    543   DWORD dwDDDestSurface;
    544   DWORD dwDDSrcSurface;
    545   POINT pDest;
    546   RECTL rSrc;
    547   DWORD dwFlags;
    548 } D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT;
    549 
    550 typedef struct _D3DHAL_DP2STATESET {
    551   DWORD               dwOperation;
    552   DWORD               dwParam;
    553   D3DSTATEBLOCKTYPE   sbType;
    554 } D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET;
    555 
    556 #define D3DHAL_STATESETBEGIN	0
    557 #define D3DHAL_STATESETEND	1
    558 #define D3DHAL_STATESETDELETE	2
    559 #define D3DHAL_STATESETEXECUTE	3
    560 #define D3DHAL_STATESETCAPTURE	4
    561 
    562 typedef struct _D3DHAL_DP2SETPRIORITY {
    563   DWORD dwDDSurface;
    564   DWORD dwPriority;
    565 } D3DHAL_DP2SETPRIORITY,*LPD3DHAL_DP2SETPRIORITY;
    566 
    567 typedef struct _D3DHAL_DP2SETRENDERTARGET {
    568   DWORD hRenderTarget;
    569   DWORD hZBuffer;
    570 } D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET;
    571 
    572 typedef struct _D3DHAL_DP2CLEAR {
    573   DWORD		dwFlags;
    574   DWORD		dwFillColor;
    575   D3DVALUE	dvFillDepth;
    576   DWORD		dwFillStencil;
    577   RECT		Rects[1];
    578 } D3DHAL_DP2CLEAR,*LPD3DHAL_DP2CLEAR;
    579 
    580 typedef struct _D3DHAL_DP2SETTEXLOD {
    581   DWORD dwDDSurface;
    582   DWORD dwLOD;
    583 } D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD;
    584 
    585 #ifdef __cplusplus
    586 } /* extern "C" */
    587 #endif
    588 
    589 #endif /* __WINE_D3DHAL_H */