Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

452 lines
17 KiB

  1. /*==========================================================================;
  2. *
  3. * Copyright (C) 1995-1996 Microsoft Corporation. All Rights Reserved.
  4. *
  5. * File: d3dhal.h
  6. * Content: Direct3D HAL include file
  7. *@@BEGIN_MSINTERNAL
  8. * History:
  9. * Date By Reason
  10. * ==== == ======
  11. * 03/11/95 stevela Initial revision.
  12. * servank
  13. * 04/11/95 stevela Context added to call blocks.
  14. * Materials added. Required as lighting references
  15. * handles.
  16. * SetViewportData HAL function added.
  17. * 10/11/95 stevela Pack structures for driver -p4 option...
  18. * 11/11/95 stevela Remove definition of D3DHALCreateDriver.
  19. * Add lpDDSZ to D3DHAL_CONTEXTCREATEDATA.
  20. * Definition of lpLocalVertexBuffer changed to
  21. * LPD3DTLVERTEX.
  22. * 07/12/95 stevela Added texture swapping.
  23. * 18/12/95 stevela Added GetState and GetMatrix.
  24. * 17/02/95 stevela Use execute buffers for tl and h vertex buffers
  25. * 23/02/95 dougrab Change all handles to DWORD
  26. * 02/03/96 colinmc Minor build fix
  27. * 17/04/96 stevela Use ddraw.h externally and ddrawp.h internally
  28. *@@END_MSINTERNAL
  29. *
  30. ***************************************************************************/
  31. #ifndef _D3DHAL_H_
  32. #define _D3DHAL_H_
  33. //@@BEGIN_MSINTERNAL
  34. #include "ddrawp.h"
  35. #if 0
  36. //@@END_MSINTERNAL
  37. #include "ddraw.h"
  38. //@@BEGIN_MSINTERNAL
  39. #endif
  40. //@@END_MSINTERNAL
  41. #include "d3dtypes.h"
  42. #include "d3dcaps.h"
  43. #include "ddrawi.h"
  44. /*
  45. * If the HAL driver does not implement clipping, it must reserve at least
  46. * this much space at the end of the LocalVertexBuffer for use by the HEL
  47. * clipping. I.e. the vertex buffer contain dwNumVertices+dwNumClipVertices
  48. * vertices. No extra space is needed by the HEL clipping in the
  49. * LocalHVertexBuffer.
  50. */
  51. #define D3DHAL_NUMCLIPVERTICES 20
  52. /*
  53. * If no dwNumVertices is given, this is what will be used.
  54. */
  55. #define D3DHAL_DEFAULT_TL_NUM ((32 * 1024) / sizeof (D3DTLVERTEX))
  56. #define D3DHAL_DEFAULT_H_NUM ((32 * 1024) / sizeof (D3DHVERTEX))
  57. /* --------------------------------------------------------------
  58. * Instantiated by the HAL driver on driver connection.
  59. */
  60. typedef struct _D3DHAL_GLOBALDRIVERDATA {
  61. DWORD dwSize; // Size of this structure
  62. D3DDEVICEDESC hwCaps; // Capabilities of the hardware
  63. DWORD dwNumVertices; // see following comment
  64. DWORD dwNumClipVertices; // see following comment
  65. DWORD dwNumTextureFormats; // Number of texture formats
  66. LPDDSURFACEDESC lpTextureFormats; // Pointer to texture formats
  67. } D3DHAL_GLOBALDRIVERDATA;
  68. typedef D3DHAL_GLOBALDRIVERDATA *LPD3DHAL_GLOBALDRIVERDATA;
  69. /*
  70. * Regarding dwNumVertices, specify 0 if you are relying on the HEL to do
  71. * everything and you do not need the resultant TLVertex buffer to reside
  72. * in device memory.
  73. * The HAL driver will be asked to allocate dwNumVertices + dwNumClipVertices
  74. * in the case described above.
  75. */
  76. /* --------------------------------------------------------------
  77. * Direct3D HAL Table.
  78. * Instantiated by the HAL driver on connection.
  79. *
  80. * Calls take the form of:
  81. * retcode = HalCall(HalCallData* lpData);
  82. */
  83. typedef DWORD (__stdcall *LPD3DHAL_CONTEXTCREATECB) (LPD3DHAL_CONTEXTCREATEDATA);
  84. typedef DWORD (__stdcall *LPD3DHAL_CONTEXTDESTROYCB) (LPD3DHAL_CONTEXTDESTROYDATA);
  85. typedef DWORD (__stdcall *LPD3DHAL_CONTEXTDESTROYALLCB) (LPD3DHAL_CONTEXTDESTROYALLDATA);
  86. typedef DWORD (__stdcall *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA);
  87. typedef DWORD (__stdcall *LPD3DHAL_EXECUTECB) (LPD3DHAL_EXECUTEDATA);
  88. typedef DWORD (__stdcall *LPD3DHAL_EXECUTECLIPPEDCB) (LPD3DHAL_EXECUTECLIPPEDDATA);
  89. typedef DWORD (__stdcall *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA);
  90. typedef DWORD (__stdcall *LPD3DHAL_RENDERPRIMITIVECB) (LPD3DHAL_RENDERPRIMITIVEDATA);
  91. typedef DWORD (__stdcall *LPD3DHAL_EXECUTECLIPPEDCB) (LPD3DHAL_EXECUTECLIPPEDDATA);
  92. typedef DWORD (__stdcall *LPD3DHAL_TEXTURECREATECB) (LPD3DHAL_TEXTURECREATEDATA);
  93. typedef DWORD (__stdcall *LPD3DHAL_TEXTUREDESTROYCB) (LPD3DHAL_TEXTUREDESTROYDATA);
  94. typedef DWORD (__stdcall *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA);
  95. typedef DWORD (__stdcall *LPD3DHAL_TEXTUREGETSURFCB) (LPD3DHAL_TEXTUREGETSURFDATA);
  96. typedef DWORD (__stdcall *LPD3DHAL_MATRIXCREATECB) (LPD3DHAL_MATRIXCREATEDATA);
  97. typedef DWORD (__stdcall *LPD3DHAL_MATRIXDESTROYCB) (LPD3DHAL_MATRIXDESTROYDATA);
  98. typedef DWORD (__stdcall *LPD3DHAL_MATRIXSETDATACB) (LPD3DHAL_MATRIXSETDATADATA);
  99. typedef DWORD (__stdcall *LPD3DHAL_MATRIXGETDATACB) (LPD3DHAL_MATRIXGETDATADATA);
  100. typedef DWORD (__stdcall *LPD3DHAL_SETVIEWPORTDATACB) (LPD3DHAL_SETVIEWPORTDATADATA);
  101. typedef DWORD (__stdcall *LPD3DHAL_LIGHTSETCB) (LPD3DHAL_LIGHTSETDATA);
  102. typedef DWORD (__stdcall *LPD3DHAL_MATERIALCREATECB) (LPD3DHAL_MATERIALCREATEDATA);
  103. typedef DWORD (__stdcall *LPD3DHAL_MATERIALDESTROYCB) (LPD3DHAL_MATERIALDESTROYDATA);
  104. typedef DWORD (__stdcall *LPD3DHAL_MATERIALSETDATACB) (LPD3DHAL_MATERIALSETDATADATA);
  105. typedef DWORD (__stdcall *LPD3DHAL_MATERIALGETDATACB) (LPD3DHAL_MATERIALGETDATADATA);
  106. typedef DWORD (__stdcall *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA);
  107. typedef struct _D3DHAL_CALLBACKS {
  108. DWORD dwSize;
  109. // Device context
  110. LPD3DHAL_CONTEXTCREATECB ContextCreate;
  111. LPD3DHAL_CONTEXTDESTROYCB ContextDestroy;
  112. LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
  113. // Scene Capture
  114. LPD3DHAL_SCENECAPTURECB SceneCapture;
  115. // Execution
  116. LPD3DHAL_EXECUTECB Execute;
  117. LPD3DHAL_EXECUTECLIPPEDCB ExecuteClipped;
  118. LPD3DHAL_RENDERSTATECB RenderState;
  119. LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive;
  120. DWORD dwReserved; // Must be zero
  121. // Textures
  122. LPD3DHAL_TEXTURECREATECB TextureCreate;
  123. LPD3DHAL_TEXTUREDESTROYCB TextureDestroy;
  124. LPD3DHAL_TEXTURESWAPCB TextureSwap;
  125. LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf;
  126. // Transform
  127. LPD3DHAL_MATRIXCREATECB MatrixCreate;
  128. LPD3DHAL_MATRIXDESTROYCB MatrixDestroy;
  129. LPD3DHAL_MATRIXSETDATACB MatrixSetData;
  130. LPD3DHAL_MATRIXGETDATACB MatrixGetData;
  131. LPD3DHAL_SETVIEWPORTDATACB SetViewportData;
  132. // Lighting
  133. LPD3DHAL_LIGHTSETCB LightSet;
  134. LPD3DHAL_MATERIALCREATECB MaterialCreate;
  135. LPD3DHAL_MATERIALDESTROYCB MaterialDestroy;
  136. LPD3DHAL_MATERIALSETDATACB MaterialSetData;
  137. LPD3DHAL_MATERIALGETDATACB MaterialGetData;
  138. // Pipeline state
  139. LPD3DHAL_GETSTATECB GetState;
  140. DWORD dwReserved0; // Must be zero
  141. DWORD dwReserved1; // Must be zero
  142. DWORD dwReserved2; // Must be zero
  143. DWORD dwReserved3; // Must be zero
  144. DWORD dwReserved4; // Must be zero
  145. DWORD dwReserved5; // Must be zero
  146. DWORD dwReserved6; // Must be zero
  147. DWORD dwReserved7; // Must be zero
  148. DWORD dwReserved8; // Must be zero
  149. DWORD dwReserved9; // Must be zero
  150. } D3DHAL_CALLBACKS;
  151. typedef D3DHAL_CALLBACKS *LPD3DHAL_CALLBACKS;
  152. #define D3DHAL_SIZE_V1 sizeof( D3DHAL_CALLBACKS )
  153. /* --------------------------------------------------------------
  154. * Argument to the HAL functions.
  155. */
  156. #include "d3di.h"
  157. typedef struct _D3DHAL_CONTEXTCREATEDATA {
  158. LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; // in: Driver struct
  159. LPDIRECTDRAWSURFACE lpDDS; // in: Surface to be used as target
  160. LPDIRECTDRAWSURFACE lpDDSZ; // in: Surface to be used as Z
  161. DWORD dwPID; // in: Current process id
  162. DWORD dwhContext; // out: Context handle
  163. HRESULT ddrval; // out: Return value
  164. } D3DHAL_CONTEXTCREATEDATA;
  165. typedef D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA;
  166. typedef struct _D3DHAL_CONTEXTDESTROYDATA {
  167. DWORD dwhContext; // in: Context handle
  168. HRESULT ddrval; // out: Return value
  169. } D3DHAL_CONTEXTDESTROYDATA;
  170. typedef D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA;
  171. typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
  172. DWORD dwPID; // in: Process id to destroy contexts for
  173. HRESULT ddrval; // out: Return value
  174. } D3DHAL_CONTEXTDESTROYALLDATA;
  175. typedef D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA;
  176. typedef struct _D3DHAL_SCENECAPTUREDATA {
  177. DWORD dwhContext; // in: Context handle
  178. DWORD dwFlag; // in: Indicates beginning or end
  179. HRESULT ddrval; // out: Return value
  180. } D3DHAL_SCENECAPTUREDATA;
  181. typedef D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA;
  182. typedef struct _D3DHAL_EXECUTEDATA {
  183. DWORD dwhContext; // in: Context handle
  184. DWORD dwOffset; // in/out: Where to start/error occured
  185. DWORD dwFlags; // in: Flags for this execute
  186. DWORD dwStatus; // in/out: Condition branch status
  187. D3DI_EXECUTEDATA deExData; // in: Execute data describing buffer
  188. LPDIRECTDRAWSURFACE lpExeBuf; // in: Execute buffer containing data
  189. LPDIRECTDRAWSURFACE lpTLBuf; // in: Execute buffer containing TLVertex data
  190. // Only provided if HEL performing transform
  191. D3DINSTRUCTION diInstruction; // in: Optional one off instruction
  192. HRESULT ddrval; // out: Return value
  193. } D3DHAL_EXECUTEDATA;
  194. typedef D3DHAL_EXECUTEDATA *LPD3DHAL_EXECUTEDATA;
  195. typedef struct _D3DHAL_EXECUTECLIPPEDDATA {
  196. DWORD dwhContext; // in: Context handle
  197. DWORD dwOffset; // in/out: Where to start/error occured
  198. DWORD dwFlags; // in: Flags for this execute
  199. DWORD dwStatus; // in/out: Condition branch status
  200. D3DI_EXECUTEDATA deExData; // in: Execute data describing buffer
  201. LPDIRECTDRAWSURFACE lpExeBuf; // in: Execute buffer containing data
  202. LPDIRECTDRAWSURFACE lpTLBuf; // in: Execute buffer containing TLVertex data
  203. // Only provided if HEL performing transform
  204. LPDIRECTDRAWSURFACE lpHBuf; // in: Execute buffer containing HVertex data
  205. // Only provided if HEL performing transform
  206. D3DINSTRUCTION diInstruction; // in: Optional one off instruction
  207. HRESULT ddrval; // out: Return value
  208. } D3DHAL_EXECUTECLIPPEDDATA;
  209. typedef D3DHAL_EXECUTECLIPPEDDATA *LPD3DHAL_EXECUTECLIPPEDDATA;
  210. typedef struct _D3DHAL_RENDERSTATEDATA {
  211. DWORD dwhContext; // in: Context handle
  212. DWORD dwOffset; // in: Where to find states in buffer
  213. DWORD dwCount; // in: How many states to process
  214. LPDIRECTDRAWSURFACE lpExeBuf; // in: Execute buffer containing data
  215. HRESULT ddrval; // out: Return value
  216. } D3DHAL_RENDERSTATEDATA;
  217. typedef D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA;
  218. typedef struct _D3DHAL_RENDERPRIMITIVEDATA {
  219. DWORD dwhContext; // in: Context handle
  220. DWORD dwOffset; // in: Where to find primitive data in buffer
  221. DWORD dwStatus; // in/out: Condition branch status
  222. LPDIRECTDRAWSURFACE lpExeBuf; // in: Execute buffer containing data
  223. DWORD dwTLOffset; // in: Byte offset in lpTLBuf for start of vertex data
  224. LPDIRECTDRAWSURFACE lpTLBuf; // in: Execute buffer containing TLVertex data
  225. D3DINSTRUCTION diInstruction; // in: Primitive instruction
  226. HRESULT ddrval; // out: Return value
  227. } D3DHAL_RENDERPRIMITIVEDATA;
  228. typedef D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA;
  229. typedef struct _D3DHAL_TEXTURECREATEDATA {
  230. DWORD dwhContext; // in: Context handle
  231. LPDIRECTDRAWSURFACE lpDDS; // in: Pointer to surface object
  232. DWORD dwHandle; // out: Handle to texture
  233. HRESULT ddrval; // out: Return value
  234. } D3DHAL_TEXTURECREATEDATA;
  235. typedef D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA;
  236. typedef struct _D3DHAL_TEXTUREDESTROYDATA {
  237. DWORD dwhContext; // in: Context handle
  238. DWORD dwHandle; // in: Handle to texture
  239. HRESULT ddrval; // out: Return value
  240. } D3DHAL_TEXTUREDESTROYDATA;
  241. typedef D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA;
  242. typedef struct _D3DHAL_TEXTURESWAPDATA {
  243. DWORD dwhContext; // in: Context handle
  244. DWORD dwHandle1; // in: Handle to texture 1
  245. DWORD dwHandle2; // in: Handle to texture 2
  246. HRESULT ddrval; // out: Return value
  247. } D3DHAL_TEXTURESWAPDATA;
  248. typedef D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA;
  249. typedef struct _D3DHAL_TEXTUREGETSURFDATA {
  250. DWORD dwhContext; // in: Context handle
  251. DWORD lpDDS; // out: Pointer to surface object
  252. DWORD dwHandle; // in: Handle to texture
  253. HRESULT ddrval; // out: Return value
  254. } D3DHAL_TEXTUREGETSURFDATA;
  255. typedef D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA;
  256. typedef struct _D3DHAL_MATRIXCREATEDATA {
  257. DWORD dwhContext; // in: Context handle
  258. DWORD dwHandle; // out: Handle to matrix
  259. HRESULT ddrval; // out: Return value
  260. } D3DHAL_MATRIXCREATEDATA;
  261. typedef D3DHAL_MATRIXCREATEDATA *LPD3DHAL_MATRIXCREATEDATA;
  262. typedef struct _D3DHAL_MATRIXDESTROYDATA {
  263. DWORD dwhContext; // in: Context handle
  264. DWORD dwHandle; // in: Handle to matrix
  265. HRESULT ddrval; // out: Return value
  266. } D3DHAL_MATRIXDESTROYDATA;
  267. typedef D3DHAL_MATRIXDESTROYDATA *LPD3DHAL_MATRIXDESTROYDATA;
  268. typedef struct _D3DHAL_MATRIXSETDATADATA {
  269. DWORD dwhContext; // in: Context handle
  270. DWORD dwHandle; // in: Handle to matrix
  271. D3DMATRIX dmMatrix; // in: Matrix data
  272. HRESULT ddrval; // out: Return value
  273. } D3DHAL_MATRIXSETDATADATA;
  274. typedef D3DHAL_MATRIXSETDATADATA *LPD3DHAL_MATRIXSETDATADATA;
  275. typedef struct _D3DHAL_MATRIXGETDATADATA {
  276. DWORD dwhContext; // in: Context handle
  277. DWORD dwHandle; // in: Handle to matrix
  278. D3DMATRIX dmMatrix; // out: Matrix data
  279. HRESULT ddrval; // out: Return value
  280. } D3DHAL_MATRIXGETDATADATA;
  281. typedef D3DHAL_MATRIXGETDATADATA *LPD3DHAL_MATRIXGETDATADATA;
  282. typedef struct _D3DHAL_SETVIEWPORTDATADATA {
  283. DWORD dwhContext; // in: Context handle
  284. DWORD dwViewportID; // in: ID of viewport
  285. D3DVIEWPORT dvViewData; // in: Viewport data
  286. HRESULT ddrval; // out: Return value
  287. } D3DHAL_SETVIEWPORTDATADATA;
  288. typedef D3DHAL_SETVIEWPORTDATADATA *LPD3DHAL_SETVIEWPORTDATADATA;
  289. typedef struct _D3DHAL_LIGHTSETDATA {
  290. DWORD dwhContext; // in: Context handle
  291. DWORD dwLight; // in: Which light to set
  292. D3DI_LIGHT dlLight; // in: Light data
  293. HRESULT ddrval; // out: Return value
  294. } D3DHAL_LIGHTSETDATA;
  295. typedef D3DHAL_LIGHTSETDATA *LPD3DHAL_LIGHTSETDATA;
  296. typedef struct _D3DHAL_MATERIALCREATEDATA {
  297. DWORD dwhContext; // in: Context handle
  298. DWORD dwHandle; // out: Handle to material
  299. D3DMATERIAL dmMaterial; // in: Material data
  300. HRESULT ddrval; // out: Return value
  301. } D3DHAL_MATERIALCREATEDATA;
  302. typedef D3DHAL_MATERIALCREATEDATA *LPD3DHAL_MATERIALCREATEDATA;
  303. typedef struct _D3DHAL_MATERIALDESTROYDATA {
  304. DWORD dwhContext; // in: Context handle
  305. DWORD dwHandle; // in: Handle to material
  306. HRESULT ddrval; // out: Return value
  307. } D3DHAL_MATERIALDESTROYDATA;
  308. typedef D3DHAL_MATERIALDESTROYDATA *LPD3DHAL_MATERIALDESTROYDATA;
  309. typedef struct _D3DHAL_MATERIALSETDATADATA {
  310. DWORD dwhContext; // in: Context handle
  311. DWORD dwHandle; // in: Handle to material
  312. D3DMATERIAL dmMaterial; // in: Material data
  313. HRESULT ddrval; // out: Return value
  314. } D3DHAL_MATERIALSETDATADATA;
  315. typedef D3DHAL_MATERIALSETDATADATA *LPD3DHAL_MATERIALSETDATADATA;
  316. typedef struct _D3DHAL_MATERIALGETDATADATA {
  317. DWORD dwhContext; // in: Context handle
  318. DWORD dwHandle; // in: Handle to material
  319. D3DMATERIAL dmMaterial; // out: Material data
  320. HRESULT ddrval; // out: Return value
  321. } D3DHAL_MATERIALGETDATADATA;
  322. typedef D3DHAL_MATERIALGETDATADATA *LPD3DHAL_MATERIALGETDATADATA;
  323. typedef struct _D3DHAL_GETSTATEDATA {
  324. DWORD dwhContext; // in: Context handle
  325. DWORD dwWhich; // in: Transform, lighting or render?
  326. D3DSTATE ddState; // in/out: State.
  327. HRESULT ddrval; // out: Return value
  328. } D3DHAL_GETSTATEDATA;
  329. typedef D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA;
  330. /* --------------------------------------------------------------
  331. * Flags for the data parameters.
  332. */
  333. /*
  334. * SceneCapture()
  335. * This is used as an indication to the driver that a scene is about to
  336. * start or end, and that it should capture data if required.
  337. */
  338. #define D3DHAL_SCENE_CAPTURE_START 0x00000000L
  339. #define D3DHAL_SCENE_CAPTURE_END 0x00000001L
  340. /*
  341. * Execute()
  342. */
  343. /*
  344. * Use the instruction stream starting at dwOffset.
  345. */
  346. #define D3DHAL_EXECUTE_NORMAL 0x00000000L
  347. /*
  348. * Use the optional instruction override (diInstruction) and return
  349. * after completion. dwOffset is the offset to the first primitive.
  350. */
  351. #define D3DHAL_EXECUTE_OVERRIDE 0x00000001L
  352. /*
  353. * GetState()
  354. * The driver will get passed a flag in dwWhich specifying which module
  355. * the state must come from. The driver then fills in ulArg[1] with the
  356. * appropriate value depending on the state type given in ddState.
  357. */
  358. /*
  359. * The following are used to get the state of a particular stage of the
  360. * pipeline.
  361. */
  362. #define D3DHALSTATE_GET_TRANSFORM 0x00000001L
  363. #define D3DHALSTATE_GET_LIGHT 0x00000002L
  364. #define D3DHALSTATE_GET_RENDER 0x00000004L
  365. /* --------------------------------------------------------------
  366. * Return values from HAL functions.
  367. */
  368. /*
  369. * The context passed in was bad.
  370. */
  371. #define D3DHAL_CONTEXT_BAD 0x000000200L
  372. /*
  373. * No more contexts left.
  374. */
  375. #define D3DHAL_OUTOFCONTEXTS 0x000000201L
  376. /*
  377. * Execute() and ExecuteClipped()
  378. */
  379. /*
  380. * Executed to completion via early out.
  381. * (e.g. totally clipped)
  382. */
  383. #define D3DHAL_EXECUTE_ABORT 0x00000210L
  384. /*
  385. * An unhandled instruction code was found (e.g. D3DOP_TRANSFORM).
  386. * The dwOffset parameter must be set to the offset of the unhandled
  387. * instruction.
  388. *
  389. * Only valid from Execute()
  390. */
  391. #define D3DHAL_EXECUTE_UNHANDLED 0x00000211L
  392. #endif /* _D3DHAL_H */