d3dhal.h 16 KB

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