d3dhal.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526
  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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  20. */
  21. #ifndef __WINE_D3DHAL_H
  22. #define __WINE_D3DHAL_H
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26. #include <d3d.h>
  27. /*****************************************************************************
  28. * device info structures
  29. */
  30. typedef struct _D3DDeviceDesc_V1 {
  31. DWORD dwSize;
  32. DWORD dwFlags;
  33. D3DCOLORMODEL dcmColorModel;
  34. DWORD dwDevCaps;
  35. D3DTRANSFORMCAPS dtcTransformCaps;
  36. BOOL bClipping;
  37. D3DLIGHTINGCAPS dlcLightingCaps;
  38. D3DPRIMCAPS dpcLineCaps;
  39. D3DPRIMCAPS dpcTriCaps;
  40. DWORD dwDeviceRenderBitDepth;
  41. DWORD dwDeviceZBufferBitDepth;
  42. DWORD dwMaxBufferSize;
  43. DWORD dwMaxVertexCount;
  44. } D3DDEVICEDESC_V1,*LPD3DDEVICEDESC_V1;
  45. /* this is to allow keeping the bulk of our OpenGL code out of x11drv */
  46. #define D3DDD_WINE_OPENGL_DEVICE 0x00008000
  47. typedef struct _D3DHAL_GLOBALDRIVERDATA {
  48. DWORD dwSize;
  49. D3DDEVICEDESC_V1 hwCaps;
  50. DWORD dwNumVertices;
  51. DWORD dwNumClipVertices;
  52. DWORD dwNumTextureFormats;
  53. LPDDSURFACEDESC lpTextureFormats;
  54. } D3DHAL_GLOBALDRIVERDATA,*LPD3DHAL_GLOBALDRIVERDATA;
  55. typedef struct _D3DHAL_D3DEXTENDEDCAPS {
  56. DWORD dwSize;
  57. /* DirectX 5 */
  58. DWORD dwMinTextureWidth, dwMaxTextureWidth;
  59. DWORD dwMinTextureHeight, dwMaxTextureHeight;
  60. DWORD dwMinStippleWidth, dwMaxStippleWidth;
  61. DWORD dwMinStippleHeight, dwMaxStippleHeight;
  62. /* DirectX 6 */
  63. DWORD dwMaxTextureRepeat;
  64. DWORD dwMaxTextureAspectRatio;
  65. DWORD dwMaxAnisotropy;
  66. D3DVALUE dvGuardBandLeft;
  67. D3DVALUE dvGuardBandTop;
  68. D3DVALUE dvGuardBandRight;
  69. D3DVALUE dvGuardBandBottom;
  70. D3DVALUE dvExtentsAdjust;
  71. DWORD dwStencilCaps;
  72. DWORD dwFVFCaps;
  73. DWORD dwTextureOpCaps;
  74. WORD wMaxTextureBlendStages;
  75. WORD wMaxSimultaneousTextures;
  76. /* DirectX 7 */
  77. DWORD dwMaxActiveLights;
  78. D3DVALUE dvMaxVertexW;
  79. WORD wMaxUserClipPlanes;
  80. WORD wMaxVertexBlendMatrices;
  81. DWORD dwVertexProcessingCaps;
  82. DWORD dwReserved1;
  83. DWORD dwReserved2;
  84. DWORD dwReserved3;
  85. DWORD dwReserved4;
  86. } D3DHAL_D3DEXTENDEDCAPS,*LPD3DHAL_D3DEXTENDEDCAPS;
  87. /*****************************************************************************
  88. * d3d->driver callbacks
  89. */
  90. typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA;
  91. typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA;
  92. typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA;
  93. typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA;
  94. typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA;
  95. typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA;
  96. typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA;
  97. typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA;
  98. typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA;
  99. typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA;
  100. typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA;
  101. typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB) (LPD3DHAL_CONTEXTCREATEDATA);
  102. typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB) (LPD3DHAL_CONTEXTDESTROYDATA);
  103. typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA);
  104. typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA);
  105. typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA);
  106. typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB) (LPD3DHAL_RENDERPRIMITIVEDATA);
  107. typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB) (LPD3DHAL_TEXTURECREATEDATA);
  108. typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB) (LPD3DHAL_TEXTUREDESTROYDATA);
  109. typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA);
  110. typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB) (LPD3DHAL_TEXTUREGETSURFDATA);
  111. typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA);
  112. typedef struct _D3DHAL_CALLBACKS {
  113. DWORD dwSize;
  114. LPD3DHAL_CONTEXTCREATECB ContextCreate;
  115. LPD3DHAL_CONTEXTDESTROYCB ContextDestroy;
  116. LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
  117. LPD3DHAL_SCENECAPTURECB SceneCapture;
  118. LPVOID lpReserved10;
  119. LPVOID lpReserved11;
  120. LPD3DHAL_RENDERSTATECB RenderState;
  121. LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive;
  122. DWORD dwReserved;
  123. LPD3DHAL_TEXTURECREATECB TextureCreate;
  124. LPD3DHAL_TEXTUREDESTROYCB TextureDestroy;
  125. LPD3DHAL_TEXTURESWAPCB TextureSwap;
  126. LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf;
  127. /* now why did MS create CALLBACKS2 and CALLBACKS3 structures if
  128. * all these reserved fields were available? we may never know */
  129. LPVOID lpReserved12;
  130. LPVOID lpReserved13;
  131. LPVOID lpReserved14;
  132. LPVOID lpReserved15;
  133. LPVOID lpReserved16;
  134. LPVOID lpReserved17;
  135. LPVOID lpReserved18;
  136. LPVOID lpReserved19;
  137. LPVOID lpReserved20;
  138. LPVOID lpReserved21;
  139. LPD3DHAL_GETSTATECB GetState;
  140. DWORD dwReserved0;
  141. DWORD dwReserved1;
  142. DWORD dwReserved2;
  143. DWORD dwReserved3;
  144. DWORD dwReserved4;
  145. DWORD dwReserved5;
  146. DWORD dwReserved6;
  147. DWORD dwReserved7;
  148. DWORD dwReserved8;
  149. DWORD dwReserved9;
  150. } D3DHAL_CALLBACKS,*LPD3DHAL_CALLBACKS;
  151. typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA;
  152. typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA;
  153. typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA;
  154. typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA;
  155. typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA;
  156. typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB) (LPD3DHAL_SETRENDERTARGETDATA);
  157. typedef DWORD (PASCAL *LPD3DHAL_CLEARCB) (LPD3DHAL_CLEARDATA);
  158. typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB) (LPD3DHAL_DRAWONEPRIMITIVEDATA);
  159. typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA);
  160. typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB) (LPD3DHAL_DRAWPRIMITIVESDATA);
  161. typedef struct _D3DHAL_CALLBACKS2 {
  162. DWORD dwSize;
  163. DWORD dwFlags;
  164. LPD3DHAL_SETRENDERTARGETCB SetRenderTarget;
  165. LPD3DHAL_CLEARCB Clear;
  166. LPD3DHAL_DRAWONEPRIMITIVECB DrawOnePrimitive;
  167. LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB DrawOneIndexedPrimitive;
  168. LPD3DHAL_DRAWPRIMITIVESCB DrawPrimitives;
  169. } D3DHAL_CALLBACKS2,*LPD3DHAL_CALLBACKS2;
  170. typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA;
  171. typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA;
  172. typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA;
  173. typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB) (LPD3DHAL_CLEAR2DATA);
  174. typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
  175. typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB) (LPD3DHAL_DRAWPRIMITIVES2DATA);
  176. typedef struct _D3DHAL_CALLBACKS3 {
  177. DWORD dwSize;
  178. DWORD dwFlags;
  179. LPD3DHAL_CLEAR2CB Clear2;
  180. LPVOID lpvReserved;
  181. LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
  182. LPD3DHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
  183. } D3DHAL_CALLBACKS3,*LPD3DHAL_CALLBACKS3;
  184. /*****************************************************************************
  185. * parameter structures
  186. */
  187. typedef struct _D3DHAL_CONTEXTCREATEDATA {
  188. union {
  189. LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; /* pre-DirectX 7 */
  190. LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; /* DirectX 7 */
  191. } DUMMYUNIONNAME1;
  192. union {
  193. LPDIRECTDRAWSURFACE lpDDS;
  194. LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; /* DirectX 7 */
  195. } DUMMYUNIONNAME2;
  196. union {
  197. LPDIRECTDRAWSURFACE lpDDSZ;
  198. LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; /* DirectX 7 */
  199. } DUMMYUNIONNAME3;
  200. union {
  201. DWORD dwPID;
  202. ULONG_PTR dwrstates;
  203. } DUMMYUNIONNAME4;
  204. ULONG_PTR dwhContext;
  205. HRESULT ddrval;
  206. } D3DHAL_CONTEXTCREATEDATA;
  207. typedef struct _D3DHAL_CONTEXTDESTROYDATA {
  208. ULONG_PTR dwhContext;
  209. HRESULT ddrval;
  210. } D3DHAL_CONTEXTDESTROYDATA;
  211. typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
  212. DWORD dwPID;
  213. HRESULT ddrval;
  214. } D3DHAL_CONTEXTDESTROYALLDATA;
  215. typedef struct _D3DHAL_SCENECAPTUREDATA {
  216. ULONG_PTR dwhContext;
  217. DWORD dwFlag;
  218. HRESULT ddrval;
  219. } D3DHAL_SCENECAPTUREDATA;
  220. #define D3DHAL_SCENE_CAPTURE_START 0x00000000
  221. #define D3DHAL_SCENE_CAPTURE_END 0x00000001
  222. typedef struct _D3DHAL_SETRENDERTARGETDATA {
  223. ULONG_PTR dwhContext;
  224. union {
  225. LPDIRECTDRAWSURFACE lpDDS;
  226. LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
  227. } DUMMYUNIONNAME1;
  228. union {
  229. LPDIRECTDRAWSURFACE lpDDSZ;
  230. LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl;
  231. } DUMMYUNIONNAME2;
  232. HRESULT ddrval;
  233. } D3DHAL_SETRENDERTARGETDATA;
  234. typedef struct _D3DHAL_DRAWPRIMITIVES2DATA {
  235. ULONG_PTR dwhContext;
  236. DWORD dwFlags;
  237. DWORD dwVertexType;
  238. LPDDRAWI_DDRAWSURFACE_LCL lpDDCommands;
  239. DWORD dwCommandOffset;
  240. DWORD dwCommandLength;
  241. union {
  242. LPDDRAWI_DDRAWSURFACE_LCL lpDDVertex;
  243. LPVOID lpVertices;
  244. } DUMMYUNIONNAME1;
  245. DWORD dwVertexOffset;
  246. DWORD dwVertexLength;
  247. DWORD dwReqVertexBufSize;
  248. DWORD dwReqCommandBufSize;
  249. LPDWORD lpdwRStates;
  250. union {
  251. DWORD dwVertexSize;
  252. HRESULT ddrval;
  253. } DUMMYUNIONNAME2;
  254. DWORD dwErrorOffset;
  255. } D3DHAL_DRAWPRIMITIVES2DATA;
  256. #define D3DHALDP2_USERMEMVERTICES 0x00000001
  257. #define D3DHALDP2_EXECUTEBUFFER 0x00000002
  258. #define D3DHALDP2_SWAPVERTEXBUFFER 0x00000004
  259. #define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008
  260. #define D3DHALDP2_REQVERTEXBUFSIZE 0x00000010
  261. #define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020
  262. #define D3DHALDP2_VIDMEMVERTEXBUF 0x00000040
  263. #define D3DHALDP2_VIDMEMCOMMANDBUF 0x00000080
  264. /*****************************************************************************
  265. * DrawPrimitives2 command structures
  266. */
  267. typedef struct _D3DHAL_DP2COMMAND {
  268. BYTE bCommand;
  269. BYTE bReserved;
  270. union {
  271. WORD wPrimitiveCount;
  272. WORD wStateCount;
  273. } DUMMYUNIONNAME;
  274. } D3DHAL_DP2COMMAND,*LPD3DHAL_DP2COMMAND;
  275. typedef enum _D3DHAL_DP2OPERATION {
  276. D3DDP2OP_POINTS = 1,
  277. D3DDP2OP_INDEXEDLINELIST = 2,
  278. D3DDP2OP_INDEXEDTRIANGLELIST = 3,
  279. D3DDP2OP_RESERVED0 = 4,
  280. D3DDP2OP_RENDERSTATE = 8,
  281. D3DDP2OP_LINELIST = 15,
  282. D3DDP2OP_LINESTRIP = 16,
  283. D3DDP2OP_INDEXEDLINESTRIP = 17,
  284. D3DDP2OP_TRIANGLELIST = 18,
  285. D3DDP2OP_TRIANGLESTRIP = 19,
  286. D3DDP2OP_INDEXEDTRIANGLESTRIP = 20,
  287. D3DDP2OP_TRIANGLEFAN = 21,
  288. D3DDP2OP_INDEXEDTRIANGLEFAN = 22,
  289. D3DDP2OP_TRIANGLEFAN_IMM = 23,
  290. D3DDP2OP_LINELIST_IMM = 24,
  291. D3DDP2OP_TEXTURESTAGESTATE = 25,
  292. D3DDP2OP_INDEXEDTRIANGLELIST2 = 26,
  293. D3DDP2OP_INDEXEDLINELIST2 = 27,
  294. D3DDP2OP_VIEWPORTINFO = 28,
  295. D3DDP2OP_WINFO = 29,
  296. /* pre-DirectX 7 interfaces */
  297. D3DDP2OP_SETPALETTE = 30,
  298. D3DDP2OP_UPDATEPALETTE = 31,
  299. /* DirectX 7 interfaces */
  300. D3DDP2OP_ZRANGE = 32,
  301. D3DDP2OP_SETMATERIAL = 33,
  302. D3DDP2OP_SETLIGHT = 34,
  303. D3DDP2OP_CREATELIGHT = 35,
  304. D3DDP2OP_SETTRANSFORM = 36,
  305. D3DDP2OP_EXT = 37,
  306. D3DDP2OP_TEXBLT = 38,
  307. D3DDP2OP_STATESET = 39,
  308. D3DDP2OP_SETPRIORITY = 40,
  309. /* all interfaces */
  310. D3DDP2OP_SETRENDERTARGET = 41,
  311. D3DDP2OP_CLEAR = 42,
  312. /* DirectX 7 interfaces */
  313. D3DDP2OP_SETTEXLOD = 43,
  314. D3DPP2OP_SETCLIPPLANE = 44
  315. } D3DHAL_DP2OPERATION;
  316. /* point primitives */
  317. typedef struct _D3DHAL_POINTS {
  318. WORD wCount;
  319. WORD wVStart;
  320. } D3DHAL_DP2POINTS,*LPD3DHAL_DP2POINTS;
  321. /* line primitives */
  322. typedef struct _D3DHAL_DP2STARTVERTEX {
  323. WORD wVStart;
  324. } D3DHAL_DP2STARTVERTEX,*LPD3DHAL_DP2STARTVERTEX;
  325. typedef struct _D3DHAL_DP2LINELIST {
  326. WORD wVStart;
  327. } D3DHAL_DP2LINELIST,*LPD3DHAL_DP2LINELIST;
  328. typedef struct _D3DHAL_DP2INDEXEDLINELIST {
  329. WORD wV1;
  330. WORD wV2;
  331. } D3DHAL_DP2INDEXEDLINELIST,*LPD3DHAL_DP2INDEXEDLINELIST;
  332. typedef struct _D3DHAL_DP2LINESTRIP {
  333. WORD wVStart;
  334. } D3DHAL_DP2LINESTRIP,*LPD3DHAL_DP2LINESTRIP;
  335. typedef struct _D3DHAL_DP2INDEXEDLINESTRIP {
  336. WORD wV[2];
  337. } D3DHAL_DP2INDEXEDLINESTRIP,*LPD3DHAL_DP2INDEXEDLINESTRIP;
  338. /* triangle primitives */
  339. typedef struct _D3DHAL_DP2TRIANGLELIST {
  340. WORD wVStart;
  341. } D3DHAL_DP2TRIANGLELIST,*LPD3DHAL_DP2TRIANGLELIST;
  342. typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
  343. WORD wV1;
  344. WORD wV2;
  345. WORD wV3;
  346. WORD wFlags;
  347. } D3DHAL_DP2INDEXEDTRIANGLELIST,*LPD3DHAL_DP2INDEXEDTRIANGLELIST;
  348. typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 {
  349. WORD wV1;
  350. WORD wV2;
  351. WORD wV3;
  352. } D3DHAL_DP2INDEXEDTRIANGLELIST2,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2;
  353. typedef struct _D3DHAL_DP2TRIANGLESTRIP {
  354. WORD wVStart;
  355. } D3DHAL_DP2TRIANGLESTRIP,*LPD3DHAL_DP2TRIANGLESTRIP;
  356. typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
  357. WORD wV[3];
  358. } D3DHAL_DP2INDEXEDTRIANGLESTRIP,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;
  359. typedef struct _D3DHAL_DP2TRIANGLEFAN {
  360. WORD wVStart;
  361. } D3DHAL_DP2TRIANGLEFAN,*LPD3DHAL_DP2TRIANGLEFAN;
  362. typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
  363. WORD wV[3];
  364. } D3DHAL_DP2INDEXEDTRIANGLEFAN,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN;
  365. typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
  366. DWORD dwEdgeFlags;
  367. } D3DHAL_DP2TRIANGLEFAN_IMM,*LPD3DHAL_DP2TRIANGLEFAN_IMM;
  368. /* render states */
  369. typedef struct _D3DHAL_DP2RENDERSTATE {
  370. D3DRENDERSTATETYPE RenderState;
  371. union {
  372. D3DVALUE dvState;
  373. DWORD dwState;
  374. } DUMMYUNIONNAME;
  375. } D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE;
  376. typedef struct _D3DHAL_DP2TEXTURESTAGESTATE {
  377. WORD wStage;
  378. WORD TSState;
  379. DWORD dwValue;
  380. } D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE;
  381. #define D3DTSS_TEXTUREMAP 0
  382. typedef struct _D3DHAL_DP2VIEWPORTINFO {
  383. DWORD dwX;
  384. DWORD dwY;
  385. DWORD dwWidth;
  386. DWORD dwHeight;
  387. } D3DHAL_DP2VIEWPORTINFO,*LPD3DHAL_DP2VIEWPORTINFO;
  388. typedef struct _D3DHAL_DP2WINFO {
  389. D3DVALUE dwWNear;
  390. D3DVALUE dwWFar;
  391. } D3DHAL_DP2WINFO,*LPD3DHAL_DP2WINFO;
  392. typedef struct _D3DHAL_DP2SETPALETTE {
  393. DWORD dwPaletteHandle;
  394. DWORD dwPaletteFlags;
  395. DWORD dwSurfaceHandle;
  396. } D3DHAL_DP2SETPALETTE,*LPD3DHAL_DP2SETPALETTE;
  397. typedef struct _D3DHAL_DP2UPDATEPALETTE {
  398. DWORD dwPaletteHandle;
  399. WORD wStartIndex;
  400. WORD wNumEntries;
  401. } D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE;
  402. typedef struct _D3DHAL_DP2ZRANGE {
  403. D3DVALUE dvMinZ;
  404. D3DVALUE dvMaxZ;
  405. } D3DHAL_DP2ZRANGE,*LPD3DHAL_DP2ZRANGE;
  406. typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL;
  407. typedef struct _D3DHAL_DP2SETLIGHT {
  408. DWORD dwIndex;
  409. DWORD dwDataType;
  410. } D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT;
  411. #define D3DHAL_SETLIGHT_ENABLE 0
  412. #define D3DHAL_SETLIGHT_DISABLE 1
  413. #define D3DHAL_SETLIGHT_DATA 2
  414. typedef struct _D3DHAL_DP2CREATELIGHT {
  415. DWORD dwIndex;
  416. } D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT;
  417. typedef struct _D3DHAL_DP2SETTRANSFORM {
  418. D3DTRANSFORMSTATETYPE xfrmType;
  419. D3DMATRIX matrix;
  420. } D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM;
  421. typedef struct _D3DHAL_DP2TEXBLT {
  422. DWORD dwDDDestSurface;
  423. DWORD dwDDSrcSurface;
  424. POINT pDest;
  425. RECTL rSrc;
  426. DWORD dwFlags;
  427. } D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT;
  428. typedef struct _D3DHAL_DP2STATESET {
  429. DWORD dwOperation;
  430. DWORD dwParam;
  431. D3DSTATEBLOCKTYPE sbType;
  432. } D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET;
  433. #define D3DHAL_STATESETBEGIN 0
  434. #define D3DHAL_STATESETEND 1
  435. #define D3DHAL_STATESETDELETE 2
  436. #define D3DHAL_STATESETEXECUTE 3
  437. #define D3DHAL_STATESETCAPTURE 4
  438. typedef struct _D3DHAL_DP2SETPRIORITY {
  439. DWORD dwDDSurface;
  440. DWORD dwPriority;
  441. } D3DHAL_DP2SETPRIORITY,*LPD3DHAL_DP2SETPRIORITY;
  442. typedef struct _D3DHAL_DP2SETRENDERTARGET {
  443. DWORD hRenderTarget;
  444. DWORD hZBuffer;
  445. } D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET;
  446. typedef struct _D3DHAL_DP2CLEAR {
  447. DWORD dwFlags;
  448. DWORD dwFillColor;
  449. D3DVALUE dvFillDepth;
  450. DWORD dwFillStencil;
  451. RECT Rects[1];
  452. } D3DHAL_DP2CLEAR,*LPD3DHAL_DP2CLEAR;
  453. typedef struct _D3DHAL_DP2SETTEXLOD {
  454. DWORD dwDDSurface;
  455. DWORD dwLOD;
  456. } D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD;
  457. #ifdef __cplusplus
  458. } /* extern "C" */
  459. #endif
  460. #endif /* __WINE_DDRAWI_H */