d3dcommon.idl 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991
  1. /*-------------------------------------------------------------------------------------
  2. *
  3. * Copyright (c) Microsoft Corporation
  4. * Licensed under the MIT license
  5. *
  6. *-------------------------------------------------------------------------------------*/
  7. import "oaidl.idl";
  8. import "ocidl.idl";
  9. //----------------------------------------------------------------------------
  10. //
  11. // D3D-version-neutral runtime information.
  12. //
  13. //----------------------------------------------------------------------------
  14. typedef enum D3D_DRIVER_TYPE
  15. {
  16. D3D_DRIVER_TYPE_UNKNOWN,
  17. D3D_DRIVER_TYPE_HARDWARE,
  18. D3D_DRIVER_TYPE_REFERENCE,
  19. D3D_DRIVER_TYPE_NULL,
  20. D3D_DRIVER_TYPE_SOFTWARE,
  21. D3D_DRIVER_TYPE_WARP,
  22. } D3D_DRIVER_TYPE;
  23. typedef enum D3D_FEATURE_LEVEL
  24. {
  25. D3D_FEATURE_LEVEL_1_0_GENERIC = 0x100,
  26. D3D_FEATURE_LEVEL_1_0_CORE = 0x1000,
  27. D3D_FEATURE_LEVEL_9_1 = 0x9100,
  28. D3D_FEATURE_LEVEL_9_2 = 0x9200,
  29. D3D_FEATURE_LEVEL_9_3 = 0x9300,
  30. D3D_FEATURE_LEVEL_10_0 = 0xa000,
  31. D3D_FEATURE_LEVEL_10_1 = 0xa100,
  32. D3D_FEATURE_LEVEL_11_0 = 0xb000,
  33. D3D_FEATURE_LEVEL_11_1 = 0xb100,
  34. D3D_FEATURE_LEVEL_12_0 = 0xc000,
  35. D3D_FEATURE_LEVEL_12_1 = 0xc100,
  36. D3D_FEATURE_LEVEL_12_2 = 0xc200
  37. } D3D_FEATURE_LEVEL;
  38. cpp_quote("#define D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION 2048")
  39. cpp_quote("#define D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION 4096")
  40. cpp_quote("#define D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION 2048")
  41. cpp_quote("#define D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION 4096")
  42. cpp_quote("#define D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION 512")
  43. cpp_quote("#define D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION 4096")
  44. cpp_quote("#define D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 256")
  45. cpp_quote("#define D3D_FL9_1_DEFAULT_MAX_ANISOTROPY 2")
  46. cpp_quote("#define D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT 65535")
  47. cpp_quote("#define D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT 1048575")
  48. cpp_quote("#define D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT 1")
  49. cpp_quote("#define D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT 4")
  50. cpp_quote("#define D3D_FL9_1_MAX_TEXTURE_REPEAT 128")
  51. cpp_quote("#define D3D_FL9_2_MAX_TEXTURE_REPEAT 2048")
  52. cpp_quote("#define D3D_FL9_3_MAX_TEXTURE_REPEAT 8192")
  53. typedef enum D3D_PRIMITIVE_TOPOLOGY
  54. {
  55. D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
  56. D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
  57. D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2,
  58. D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
  59. D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
  60. D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
  61. D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN = 6,
  62. // Adjacency values should be equal to (0x8 & non-adjacency):
  63. D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
  64. D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
  65. D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
  66. D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13,
  67. D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33,
  68. D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34,
  69. D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35,
  70. D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36,
  71. D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37,
  72. D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38,
  73. D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39,
  74. D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40,
  75. D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41,
  76. D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42,
  77. D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43,
  78. D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44,
  79. D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45,
  80. D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46,
  81. D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47,
  82. D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48,
  83. D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49,
  84. D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50,
  85. D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51,
  86. D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52,
  87. D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53,
  88. D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54,
  89. D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55,
  90. D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56,
  91. D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57,
  92. D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58,
  93. D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59,
  94. D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60,
  95. D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61,
  96. D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62,
  97. D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63,
  98. D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64,
  99. D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED,
  100. D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST,
  101. D3D10_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST,
  102. D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP,
  103. D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
  104. D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
  105. D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
  106. D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
  107. D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
  108. D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
  109. D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED,
  110. D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST,
  111. D3D11_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST,
  112. D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP,
  113. D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
  114. D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
  115. D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
  116. D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
  117. D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
  118. D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
  119. D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST,
  120. D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST,
  121. D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST,
  122. D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST,
  123. D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST,
  124. D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST,
  125. D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST,
  126. D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST,
  127. D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST,
  128. D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST,
  129. D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST,
  130. D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST,
  131. D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST,
  132. D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST,
  133. D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST,
  134. D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST,
  135. D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST,
  136. D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST,
  137. D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST,
  138. D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST,
  139. D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST,
  140. D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST,
  141. D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST,
  142. D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST,
  143. D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST,
  144. D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST,
  145. D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST,
  146. D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST,
  147. D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST,
  148. D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST,
  149. D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST,
  150. D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST
  151. } D3D_PRIMITIVE_TOPOLOGY;
  152. typedef enum D3D_PRIMITIVE
  153. {
  154. D3D_PRIMITIVE_UNDEFINED = 0,
  155. D3D_PRIMITIVE_POINT = 1,
  156. D3D_PRIMITIVE_LINE = 2,
  157. D3D_PRIMITIVE_TRIANGLE = 3,
  158. // Adjacency values should be equal to (0x4 & non-adjacency):
  159. D3D_PRIMITIVE_LINE_ADJ = 6,
  160. D3D_PRIMITIVE_TRIANGLE_ADJ = 7,
  161. D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8,
  162. D3D_PRIMITIVE_2_CONTROL_POINT_PATCH = 9,
  163. D3D_PRIMITIVE_3_CONTROL_POINT_PATCH = 10,
  164. D3D_PRIMITIVE_4_CONTROL_POINT_PATCH = 11,
  165. D3D_PRIMITIVE_5_CONTROL_POINT_PATCH = 12,
  166. D3D_PRIMITIVE_6_CONTROL_POINT_PATCH = 13,
  167. D3D_PRIMITIVE_7_CONTROL_POINT_PATCH = 14,
  168. D3D_PRIMITIVE_8_CONTROL_POINT_PATCH = 15,
  169. D3D_PRIMITIVE_9_CONTROL_POINT_PATCH = 16,
  170. D3D_PRIMITIVE_10_CONTROL_POINT_PATCH = 17,
  171. D3D_PRIMITIVE_11_CONTROL_POINT_PATCH = 18,
  172. D3D_PRIMITIVE_12_CONTROL_POINT_PATCH = 19,
  173. D3D_PRIMITIVE_13_CONTROL_POINT_PATCH = 20,
  174. D3D_PRIMITIVE_14_CONTROL_POINT_PATCH = 21,
  175. D3D_PRIMITIVE_15_CONTROL_POINT_PATCH = 22,
  176. D3D_PRIMITIVE_16_CONTROL_POINT_PATCH = 23,
  177. D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24,
  178. D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25,
  179. D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26,
  180. D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 27,
  181. D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 28,
  182. D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 29,
  183. D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 30,
  184. D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 31,
  185. D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 32,
  186. D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 33,
  187. D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 34,
  188. D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 35,
  189. D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 36,
  190. D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 37,
  191. D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 38,
  192. D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 39,
  193. D3D10_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED,
  194. D3D10_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT,
  195. D3D10_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE,
  196. D3D10_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE,
  197. D3D10_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ,
  198. D3D10_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ,
  199. D3D11_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED,
  200. D3D11_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT,
  201. D3D11_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE,
  202. D3D11_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE,
  203. D3D11_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ,
  204. D3D11_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ,
  205. D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = D3D_PRIMITIVE_1_CONTROL_POINT_PATCH,
  206. D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH = D3D_PRIMITIVE_2_CONTROL_POINT_PATCH,
  207. D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH = D3D_PRIMITIVE_3_CONTROL_POINT_PATCH,
  208. D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH = D3D_PRIMITIVE_4_CONTROL_POINT_PATCH,
  209. D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH = D3D_PRIMITIVE_5_CONTROL_POINT_PATCH,
  210. D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH = D3D_PRIMITIVE_6_CONTROL_POINT_PATCH,
  211. D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH = D3D_PRIMITIVE_7_CONTROL_POINT_PATCH,
  212. D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH = D3D_PRIMITIVE_8_CONTROL_POINT_PATCH,
  213. D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH = D3D_PRIMITIVE_9_CONTROL_POINT_PATCH,
  214. D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH = D3D_PRIMITIVE_10_CONTROL_POINT_PATCH,
  215. D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH = D3D_PRIMITIVE_11_CONTROL_POINT_PATCH,
  216. D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH = D3D_PRIMITIVE_12_CONTROL_POINT_PATCH,
  217. D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH = D3D_PRIMITIVE_13_CONTROL_POINT_PATCH,
  218. D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH = D3D_PRIMITIVE_14_CONTROL_POINT_PATCH,
  219. D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH = D3D_PRIMITIVE_15_CONTROL_POINT_PATCH,
  220. D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH = D3D_PRIMITIVE_16_CONTROL_POINT_PATCH,
  221. D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = D3D_PRIMITIVE_17_CONTROL_POINT_PATCH,
  222. D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = D3D_PRIMITIVE_18_CONTROL_POINT_PATCH,
  223. D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = D3D_PRIMITIVE_19_CONTROL_POINT_PATCH,
  224. D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = D3D_PRIMITIVE_20_CONTROL_POINT_PATCH,
  225. D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = D3D_PRIMITIVE_21_CONTROL_POINT_PATCH,
  226. D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = D3D_PRIMITIVE_22_CONTROL_POINT_PATCH,
  227. D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = D3D_PRIMITIVE_23_CONTROL_POINT_PATCH,
  228. D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = D3D_PRIMITIVE_24_CONTROL_POINT_PATCH,
  229. D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = D3D_PRIMITIVE_25_CONTROL_POINT_PATCH,
  230. D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = D3D_PRIMITIVE_26_CONTROL_POINT_PATCH,
  231. D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = D3D_PRIMITIVE_27_CONTROL_POINT_PATCH,
  232. D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = D3D_PRIMITIVE_28_CONTROL_POINT_PATCH,
  233. D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = D3D_PRIMITIVE_29_CONTROL_POINT_PATCH,
  234. D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = D3D_PRIMITIVE_30_CONTROL_POINT_PATCH,
  235. D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = D3D_PRIMITIVE_31_CONTROL_POINT_PATCH,
  236. D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = D3D_PRIMITIVE_32_CONTROL_POINT_PATCH,
  237. } D3D_PRIMITIVE;
  238. typedef enum D3D_SRV_DIMENSION
  239. {
  240. D3D_SRV_DIMENSION_UNKNOWN = 0,
  241. D3D_SRV_DIMENSION_BUFFER = 1,
  242. D3D_SRV_DIMENSION_TEXTURE1D = 2,
  243. D3D_SRV_DIMENSION_TEXTURE1DARRAY = 3,
  244. D3D_SRV_DIMENSION_TEXTURE2D = 4,
  245. D3D_SRV_DIMENSION_TEXTURE2DARRAY = 5,
  246. D3D_SRV_DIMENSION_TEXTURE2DMS = 6,
  247. D3D_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
  248. D3D_SRV_DIMENSION_TEXTURE3D = 8,
  249. D3D_SRV_DIMENSION_TEXTURECUBE = 9,
  250. D3D_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
  251. D3D_SRV_DIMENSION_BUFFEREX = 11,
  252. D3D10_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN,
  253. D3D10_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER,
  254. D3D10_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D,
  255. D3D10_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
  256. D3D10_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D,
  257. D3D10_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
  258. D3D10_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS,
  259. D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
  260. D3D10_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D,
  261. D3D10_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE,
  262. D3D10_1_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN,
  263. D3D10_1_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER,
  264. D3D10_1_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D,
  265. D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
  266. D3D10_1_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D,
  267. D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
  268. D3D10_1_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS,
  269. D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
  270. D3D10_1_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D,
  271. D3D10_1_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE,
  272. D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY,
  273. D3D11_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN,
  274. D3D11_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER,
  275. D3D11_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D,
  276. D3D11_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
  277. D3D11_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D,
  278. D3D11_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
  279. D3D11_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS,
  280. D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
  281. D3D11_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D,
  282. D3D11_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE,
  283. D3D11_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY,
  284. D3D11_SRV_DIMENSION_BUFFEREX = D3D_SRV_DIMENSION_BUFFEREX,
  285. } D3D_SRV_DIMENSION;
  286. // Bits in shaders indicating features they use which the runtime checks against current device support:
  287. cpp_quote("#define D3D_SHADER_FEATURE_DOUBLES 0x00001")
  288. cpp_quote("#define D3D_SHADER_FEATURE_COMPUTE_SHADERS_PLUS_RAW_AND_STRUCTURED_BUFFERS_VIA_SHADER_4_X 0x00002")
  289. cpp_quote("#define D3D_SHADER_FEATURE_UAVS_AT_EVERY_STAGE 0x00004")
  290. cpp_quote("#define D3D_SHADER_FEATURE_64_UAVS 0x00008")
  291. cpp_quote("#define D3D_SHADER_FEATURE_MINIMUM_PRECISION 0x00010")
  292. cpp_quote("#define D3D_SHADER_FEATURE_11_1_DOUBLE_EXTENSIONS 0x00020")
  293. cpp_quote("#define D3D_SHADER_FEATURE_11_1_SHADER_EXTENSIONS 0x00040")
  294. cpp_quote("#define D3D_SHADER_FEATURE_LEVEL_9_COMPARISON_FILTERING 0x00080")
  295. cpp_quote("#define D3D_SHADER_FEATURE_TILED_RESOURCES 0x00100")
  296. cpp_quote("#define D3D_SHADER_FEATURE_STENCIL_REF 0x00200")
  297. cpp_quote("#define D3D_SHADER_FEATURE_INNER_COVERAGE 0x00400")
  298. cpp_quote("#define D3D_SHADER_FEATURE_TYPED_UAV_LOAD_ADDITIONAL_FORMATS 0x00800")
  299. cpp_quote("#define D3D_SHADER_FEATURE_ROVS 0x01000")
  300. cpp_quote("#define D3D_SHADER_FEATURE_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER 0x02000")
  301. cpp_quote("#define D3D_SHADER_FEATURE_WAVE_OPS 0x04000")
  302. cpp_quote("#define D3D_SHADER_FEATURE_INT64_OPS 0x08000")
  303. cpp_quote("#define D3D_SHADER_FEATURE_VIEW_ID 0x10000")
  304. cpp_quote("#define D3D_SHADER_FEATURE_BARYCENTRICS 0x20000")
  305. cpp_quote("#define D3D_SHADER_FEATURE_NATIVE_16BIT_OPS 0x40000")
  306. cpp_quote("#define D3D_SHADER_FEATURE_SHADING_RATE 0x80000")
  307. cpp_quote("#define D3D_SHADER_FEATURE_RAYTRACING_TIER_1_1 0x100000")
  308. cpp_quote("#define D3D_SHADER_FEATURE_SAMPLER_FEEDBACK 0x200000")
  309. cpp_quote("#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_TYPED_RESOURCE 0x400000")
  310. cpp_quote("#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_GROUP_SHARED 0x800000")
  311. cpp_quote("#define D3D_SHADER_FEATURE_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS 0x1000000")
  312. cpp_quote("#define D3D_SHADER_FEATURE_RESOURCE_DESCRIPTOR_HEAP_INDEXING 0x2000000")
  313. cpp_quote("#define D3D_SHADER_FEATURE_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x4000000")
  314. cpp_quote("#define D3D_SHADER_FEATURE_WAVE_MMA 0x8000000")
  315. cpp_quote("#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE 0x10000000")
  316. cpp_quote("#define D3D_SHADER_FEATURE_ADVANCED_TEXTURE_OPS 0x20000000")
  317. cpp_quote("#define D3D_SHADER_FEATURE_WRITEABLE_MSAA_TEXTURES 0x40000000")
  318. cpp_quote("#define D3D_SHADER_FEATURE_SAMPLE_CMP_GRADIENT_OR_BIAS 0x80000000")
  319. cpp_quote("#define D3D_SHADER_FEATURE_EXTENDED_COMMAND_INFO 0x100000000ull")
  320. // This section is for flags that do not directly indicate a required feature,
  321. // but are used to indicate something about the shader.
  322. // Flag for any derivative use. This allows call-graph validation
  323. // in the runtime to detect misuse of derivatives for an entry point that cannot
  324. // support it, or to determine when the flag
  325. // D3D_SHADER_FEATURE_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS is required.
  326. cpp_quote("#define D3D_OPT_SHADER_FEATURE_USES_DERIVATIVES 0x0000010000000000ull")
  327. cpp_quote("#define D3D_OPT_SHADER_FEATURE_REQUIRES_GROUP 0x0000020000000000ull")
  328. // Additional internal shader feature flags are listed in dxbcutils.h (not relevant/useful for public to see)
  329. // When adding entries here, make sure they don't conflict with what's there.
  330. //----------------------------------------------------------------------------
  331. //
  332. // Shader compilation information.
  333. //
  334. //----------------------------------------------------------------------------
  335. //----------------------------------------------------------------------------
  336. // D3D_SHADER_MACRO:
  337. // ----------
  338. // Preprocessor macro definition. The application pass in a NULL-terminated
  339. // array of this structure to various D3D APIs. This enables the application
  340. // to #define tokens at runtime, before the file is parsed.
  341. //----------------------------------------------------------------------------
  342. typedef struct _D3D_SHADER_MACRO
  343. {
  344. LPCSTR Name;
  345. LPCSTR Definition;
  346. } D3D_SHADER_MACRO, *LPD3D_SHADER_MACRO;
  347. //----------------------------------------------------------------------------
  348. // ID3DBlob:
  349. // ------------
  350. // The buffer object is used by D3D to return arbitrary size data.
  351. // For compatibility with D3D10 this interface is also called ID3D10Blob,
  352. // but the version-neutral form is preferred.
  353. //
  354. // GetBufferPointer -
  355. // Returns a pointer to the beginning of the buffer.
  356. //
  357. // GetBufferSize -
  358. // Returns the size of the buffer, in bytes.
  359. //----------------------------------------------------------------------------
  360. // {8BA5FB08-5195-40e2-AC58-0D989C3A0102}
  361. cpp_quote("DEFINE_GUID(IID_ID3D10Blob, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2);")
  362. [ uuid( 8BA5FB08-5195-40e2-AC58-0D989C3A0102 ), object, local, pointer_default( unique ) ]
  363. interface ID3D10Blob : IUnknown
  364. {
  365. LPVOID GetBufferPointer();
  366. SIZE_T GetBufferSize();
  367. };
  368. cpp_quote("typedef interface ID3D10Blob* LPD3D10BLOB;")
  369. typedef ID3D10Blob ID3DBlob;
  370. cpp_quote("typedef ID3DBlob* LPD3DBLOB;")
  371. cpp_quote("#define IID_ID3DBlob IID_ID3D10Blob")
  372. // ID3DDestructionNotifier: An interface to QI for, to set a callback which is triggered when the object is fully destroyed
  373. typedef void(__stdcall *PFN_DESTRUCTION_CALLBACK)(void* pData);
  374. [uuid(a06eb39a-50da-425b-8c31-4eecd6c270f3), object, local, pointer_default(unique)]
  375. interface ID3DDestructionNotifier
  376. : IUnknown
  377. {
  378. HRESULT RegisterDestructionCallback(
  379. [annotation("_In_")] PFN_DESTRUCTION_CALLBACK callbackFn,
  380. [annotation("_In_")] void* pData,
  381. [annotation("_Out_")] UINT* pCallbackID
  382. );
  383. HRESULT UnregisterDestructionCallback(
  384. [annotation("_In_")] UINT callbackID
  385. );
  386. };
  387. typedef enum _D3D_INCLUDE_TYPE
  388. {
  389. D3D_INCLUDE_LOCAL,
  390. D3D_INCLUDE_SYSTEM,
  391. D3D10_INCLUDE_LOCAL = D3D_INCLUDE_LOCAL,
  392. D3D10_INCLUDE_SYSTEM = D3D_INCLUDE_SYSTEM,
  393. // force 32-bit size enum
  394. D3D_INCLUDE_FORCE_DWORD = 0x7fffffff
  395. } D3D_INCLUDE_TYPE;
  396. //----------------------------------------------------------------------------
  397. // ID3DInclude:
  398. // -------------
  399. // This interface is intended to be implemented by the application, and can
  400. // be used by various D3D APIs. This enables application-specific handling
  401. // of #include directives in source files.
  402. //
  403. // Open()
  404. // Opens an include file. If successful, it should fill in ppData and
  405. // pBytes. The data pointer returned must remain valid until Close is
  406. // subsequently called. The name of the file is encoded in UTF-8 format.
  407. // Close()
  408. // Closes an include file. If Open was successful, Close is guaranteed
  409. // to be called before the API using this interface returns.
  410. //----------------------------------------------------------------------------
  411. cpp_quote("typedef interface ID3DInclude ID3DInclude;")
  412. cpp_quote("#undef INTERFACE")
  413. cpp_quote("#define INTERFACE ID3DInclude")
  414. cpp_quote("DECLARE_INTERFACE(ID3DInclude)")
  415. cpp_quote("{")
  416. cpp_quote(" STDMETHOD(Open)(THIS_ D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) PURE;")
  417. cpp_quote(" STDMETHOD(Close)(THIS_ LPCVOID pData) PURE;")
  418. cpp_quote("};")
  419. cpp_quote("typedef ID3DInclude* LPD3DINCLUDE;")
  420. //----------------------------------------------------------------------------
  421. //
  422. // Shader reflection information.
  423. //
  424. //----------------------------------------------------------------------------
  425. typedef enum _D3D_SHADER_VARIABLE_CLASS
  426. {
  427. D3D_SVC_SCALAR,
  428. D3D_SVC_VECTOR,
  429. D3D_SVC_MATRIX_ROWS,
  430. D3D_SVC_MATRIX_COLUMNS,
  431. D3D_SVC_OBJECT,
  432. D3D_SVC_STRUCT,
  433. D3D_SVC_INTERFACE_CLASS,
  434. D3D_SVC_INTERFACE_POINTER,
  435. D3D10_SVC_SCALAR = D3D_SVC_SCALAR,
  436. D3D10_SVC_VECTOR = D3D_SVC_VECTOR,
  437. D3D10_SVC_MATRIX_ROWS = D3D_SVC_MATRIX_ROWS,
  438. D3D10_SVC_MATRIX_COLUMNS = D3D_SVC_MATRIX_COLUMNS,
  439. D3D10_SVC_OBJECT = D3D_SVC_OBJECT,
  440. D3D10_SVC_STRUCT = D3D_SVC_STRUCT,
  441. D3D11_SVC_INTERFACE_CLASS = D3D_SVC_INTERFACE_CLASS,
  442. D3D11_SVC_INTERFACE_POINTER = D3D_SVC_INTERFACE_POINTER,
  443. // force 32-bit size enum
  444. D3D_SVC_FORCE_DWORD = 0x7fffffff
  445. } D3D_SHADER_VARIABLE_CLASS;
  446. typedef enum _D3D_SHADER_VARIABLE_FLAGS
  447. {
  448. D3D_SVF_USERPACKED = 1,
  449. D3D_SVF_USED = 2,
  450. D3D_SVF_INTERFACE_POINTER = 4,
  451. D3D_SVF_INTERFACE_PARAMETER = 8,
  452. D3D10_SVF_USERPACKED = D3D_SVF_USERPACKED,
  453. D3D10_SVF_USED = D3D_SVF_USED,
  454. D3D11_SVF_INTERFACE_POINTER = D3D_SVF_INTERFACE_POINTER,
  455. D3D11_SVF_INTERFACE_PARAMETER = D3D_SVF_INTERFACE_PARAMETER,
  456. // force 32-bit size enum
  457. D3D_SVF_FORCE_DWORD = 0x7fffffff
  458. } D3D_SHADER_VARIABLE_FLAGS;
  459. typedef enum _D3D_SHADER_VARIABLE_TYPE
  460. {
  461. D3D_SVT_VOID = 0,
  462. D3D_SVT_BOOL = 1,
  463. D3D_SVT_INT = 2,
  464. D3D_SVT_FLOAT = 3,
  465. D3D_SVT_STRING = 4,
  466. D3D_SVT_TEXTURE = 5,
  467. D3D_SVT_TEXTURE1D = 6,
  468. D3D_SVT_TEXTURE2D = 7,
  469. D3D_SVT_TEXTURE3D = 8,
  470. D3D_SVT_TEXTURECUBE = 9,
  471. D3D_SVT_SAMPLER = 10,
  472. D3D_SVT_SAMPLER1D = 11,
  473. D3D_SVT_SAMPLER2D = 12,
  474. D3D_SVT_SAMPLER3D = 13,
  475. D3D_SVT_SAMPLERCUBE = 14,
  476. D3D_SVT_PIXELSHADER = 15,
  477. D3D_SVT_VERTEXSHADER = 16,
  478. D3D_SVT_PIXELFRAGMENT = 17,
  479. D3D_SVT_VERTEXFRAGMENT = 18,
  480. D3D_SVT_UINT = 19,
  481. D3D_SVT_UINT8 = 20,
  482. D3D_SVT_GEOMETRYSHADER = 21,
  483. D3D_SVT_RASTERIZER = 22,
  484. D3D_SVT_DEPTHSTENCIL = 23,
  485. D3D_SVT_BLEND = 24,
  486. D3D_SVT_BUFFER = 25,
  487. D3D_SVT_CBUFFER = 26,
  488. D3D_SVT_TBUFFER = 27,
  489. D3D_SVT_TEXTURE1DARRAY = 28,
  490. D3D_SVT_TEXTURE2DARRAY = 29,
  491. D3D_SVT_RENDERTARGETVIEW = 30,
  492. D3D_SVT_DEPTHSTENCILVIEW = 31,
  493. D3D_SVT_TEXTURE2DMS = 32,
  494. D3D_SVT_TEXTURE2DMSARRAY = 33,
  495. D3D_SVT_TEXTURECUBEARRAY = 34,
  496. D3D_SVT_HULLSHADER = 35,
  497. D3D_SVT_DOMAINSHADER = 36,
  498. D3D_SVT_INTERFACE_POINTER = 37,
  499. D3D_SVT_COMPUTESHADER = 38,
  500. D3D_SVT_DOUBLE = 39,
  501. D3D_SVT_RWTEXTURE1D = 40,
  502. D3D_SVT_RWTEXTURE1DARRAY = 41,
  503. D3D_SVT_RWTEXTURE2D = 42,
  504. D3D_SVT_RWTEXTURE2DARRAY = 43,
  505. D3D_SVT_RWTEXTURE3D = 44,
  506. D3D_SVT_RWBUFFER = 45,
  507. D3D_SVT_BYTEADDRESS_BUFFER = 46,
  508. D3D_SVT_RWBYTEADDRESS_BUFFER = 47,
  509. D3D_SVT_STRUCTURED_BUFFER = 48,
  510. D3D_SVT_RWSTRUCTURED_BUFFER = 49,
  511. D3D_SVT_APPEND_STRUCTURED_BUFFER = 50,
  512. D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51,
  513. D3D_SVT_MIN8FLOAT = 52,
  514. D3D_SVT_MIN10FLOAT = 53,
  515. D3D_SVT_MIN16FLOAT = 54,
  516. D3D_SVT_MIN12INT = 55,
  517. D3D_SVT_MIN16INT = 56,
  518. D3D_SVT_MIN16UINT = 57,
  519. D3D_SVT_INT16 = 58,
  520. D3D_SVT_UINT16 = 59,
  521. D3D_SVT_FLOAT16 = 60,
  522. D3D_SVT_INT64 = 61,
  523. D3D_SVT_UINT64 = 62,
  524. D3D10_SVT_VOID = D3D_SVT_VOID,
  525. D3D10_SVT_BOOL = D3D_SVT_BOOL,
  526. D3D10_SVT_INT = D3D_SVT_INT,
  527. D3D10_SVT_FLOAT = D3D_SVT_FLOAT,
  528. D3D10_SVT_STRING = D3D_SVT_STRING,
  529. D3D10_SVT_TEXTURE = D3D_SVT_TEXTURE,
  530. D3D10_SVT_TEXTURE1D = D3D_SVT_TEXTURE1D,
  531. D3D10_SVT_TEXTURE2D = D3D_SVT_TEXTURE2D,
  532. D3D10_SVT_TEXTURE3D = D3D_SVT_TEXTURE3D,
  533. D3D10_SVT_TEXTURECUBE = D3D_SVT_TEXTURECUBE,
  534. D3D10_SVT_SAMPLER = D3D_SVT_SAMPLER,
  535. D3D10_SVT_SAMPLER1D = D3D_SVT_SAMPLER1D,
  536. D3D10_SVT_SAMPLER2D = D3D_SVT_SAMPLER2D,
  537. D3D10_SVT_SAMPLER3D = D3D_SVT_SAMPLER3D,
  538. D3D10_SVT_SAMPLERCUBE = D3D_SVT_SAMPLERCUBE,
  539. D3D10_SVT_PIXELSHADER = D3D_SVT_PIXELSHADER,
  540. D3D10_SVT_VERTEXSHADER = D3D_SVT_VERTEXSHADER,
  541. D3D10_SVT_PIXELFRAGMENT = D3D_SVT_PIXELFRAGMENT,
  542. D3D10_SVT_VERTEXFRAGMENT = D3D_SVT_VERTEXFRAGMENT,
  543. D3D10_SVT_UINT = D3D_SVT_UINT,
  544. D3D10_SVT_UINT8 = D3D_SVT_UINT8,
  545. D3D10_SVT_GEOMETRYSHADER = D3D_SVT_GEOMETRYSHADER,
  546. D3D10_SVT_RASTERIZER = D3D_SVT_RASTERIZER,
  547. D3D10_SVT_DEPTHSTENCIL = D3D_SVT_DEPTHSTENCIL,
  548. D3D10_SVT_BLEND = D3D_SVT_BLEND,
  549. D3D10_SVT_BUFFER = D3D_SVT_BUFFER,
  550. D3D10_SVT_CBUFFER = D3D_SVT_CBUFFER,
  551. D3D10_SVT_TBUFFER = D3D_SVT_TBUFFER,
  552. D3D10_SVT_TEXTURE1DARRAY = D3D_SVT_TEXTURE1DARRAY,
  553. D3D10_SVT_TEXTURE2DARRAY = D3D_SVT_TEXTURE2DARRAY,
  554. D3D10_SVT_RENDERTARGETVIEW = D3D_SVT_RENDERTARGETVIEW,
  555. D3D10_SVT_DEPTHSTENCILVIEW = D3D_SVT_DEPTHSTENCILVIEW,
  556. D3D10_SVT_TEXTURE2DMS = D3D_SVT_TEXTURE2DMS,
  557. D3D10_SVT_TEXTURE2DMSARRAY = D3D_SVT_TEXTURE2DMSARRAY,
  558. D3D10_SVT_TEXTURECUBEARRAY = D3D_SVT_TEXTURECUBEARRAY,
  559. D3D11_SVT_HULLSHADER = D3D_SVT_HULLSHADER,
  560. D3D11_SVT_DOMAINSHADER = D3D_SVT_DOMAINSHADER,
  561. D3D11_SVT_INTERFACE_POINTER = D3D_SVT_INTERFACE_POINTER,
  562. D3D11_SVT_COMPUTESHADER = D3D_SVT_COMPUTESHADER,
  563. D3D11_SVT_DOUBLE = D3D_SVT_DOUBLE,
  564. D3D11_SVT_RWTEXTURE1D = D3D_SVT_RWTEXTURE1D,
  565. D3D11_SVT_RWTEXTURE1DARRAY = D3D_SVT_RWTEXTURE1DARRAY,
  566. D3D11_SVT_RWTEXTURE2D = D3D_SVT_RWTEXTURE2D,
  567. D3D11_SVT_RWTEXTURE2DARRAY = D3D_SVT_RWTEXTURE2DARRAY,
  568. D3D11_SVT_RWTEXTURE3D = D3D_SVT_RWTEXTURE3D,
  569. D3D11_SVT_RWBUFFER = D3D_SVT_RWBUFFER,
  570. D3D11_SVT_BYTEADDRESS_BUFFER = D3D_SVT_BYTEADDRESS_BUFFER,
  571. D3D11_SVT_RWBYTEADDRESS_BUFFER = D3D_SVT_RWBYTEADDRESS_BUFFER,
  572. D3D11_SVT_STRUCTURED_BUFFER = D3D_SVT_STRUCTURED_BUFFER,
  573. D3D11_SVT_RWSTRUCTURED_BUFFER = D3D_SVT_RWSTRUCTURED_BUFFER,
  574. D3D11_SVT_APPEND_STRUCTURED_BUFFER = D3D_SVT_APPEND_STRUCTURED_BUFFER,
  575. D3D11_SVT_CONSUME_STRUCTURED_BUFFER = D3D_SVT_CONSUME_STRUCTURED_BUFFER,
  576. // force 32-bit size enum
  577. D3D_SVT_FORCE_DWORD = 0x7fffffff
  578. } D3D_SHADER_VARIABLE_TYPE;
  579. typedef enum _D3D_SHADER_INPUT_FLAGS
  580. {
  581. D3D_SIF_USERPACKED = 0x01,
  582. D3D_SIF_COMPARISON_SAMPLER = 0x02, // is this a comparison sampler?
  583. D3D_SIF_TEXTURE_COMPONENT_0 = 0x04, // this 2-bit value encodes c - 1, where c
  584. D3D_SIF_TEXTURE_COMPONENT_1 = 0x08, // is the number of components in the texture
  585. D3D_SIF_TEXTURE_COMPONENTS = 0x0c,
  586. D3D_SIF_UNUSED = 0x10,
  587. D3D10_SIF_USERPACKED = D3D_SIF_USERPACKED,
  588. D3D10_SIF_COMPARISON_SAMPLER = D3D_SIF_COMPARISON_SAMPLER,
  589. D3D10_SIF_TEXTURE_COMPONENT_0 = D3D_SIF_TEXTURE_COMPONENT_0,
  590. D3D10_SIF_TEXTURE_COMPONENT_1 = D3D_SIF_TEXTURE_COMPONENT_1,
  591. D3D10_SIF_TEXTURE_COMPONENTS = D3D_SIF_TEXTURE_COMPONENTS,
  592. // force 32-bit size enum
  593. D3D_SIF_FORCE_DWORD = 0x7fffffff
  594. } D3D_SHADER_INPUT_FLAGS;
  595. typedef enum _D3D_SHADER_INPUT_TYPE
  596. {
  597. D3D_SIT_CBUFFER,
  598. D3D_SIT_TBUFFER,
  599. D3D_SIT_TEXTURE,
  600. D3D_SIT_SAMPLER,
  601. D3D_SIT_UAV_RWTYPED,
  602. D3D_SIT_STRUCTURED,
  603. D3D_SIT_UAV_RWSTRUCTURED,
  604. D3D_SIT_BYTEADDRESS,
  605. D3D_SIT_UAV_RWBYTEADDRESS,
  606. D3D_SIT_UAV_APPEND_STRUCTURED,
  607. D3D_SIT_UAV_CONSUME_STRUCTURED,
  608. D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER,
  609. D3D_SIT_RTACCELERATIONSTRUCTURE,
  610. D3D_SIT_UAV_FEEDBACKTEXTURE,
  611. D3D10_SIT_CBUFFER = D3D_SIT_CBUFFER,
  612. D3D10_SIT_TBUFFER = D3D_SIT_TBUFFER,
  613. D3D10_SIT_TEXTURE = D3D_SIT_TEXTURE,
  614. D3D10_SIT_SAMPLER = D3D_SIT_SAMPLER,
  615. D3D11_SIT_UAV_RWTYPED = D3D_SIT_UAV_RWTYPED,
  616. D3D11_SIT_STRUCTURED = D3D_SIT_STRUCTURED,
  617. D3D11_SIT_UAV_RWSTRUCTURED = D3D_SIT_UAV_RWSTRUCTURED,
  618. D3D11_SIT_BYTEADDRESS = D3D_SIT_BYTEADDRESS,
  619. D3D11_SIT_UAV_RWBYTEADDRESS = D3D_SIT_UAV_RWBYTEADDRESS,
  620. D3D11_SIT_UAV_APPEND_STRUCTURED = D3D_SIT_UAV_APPEND_STRUCTURED,
  621. D3D11_SIT_UAV_CONSUME_STRUCTURED = D3D_SIT_UAV_CONSUME_STRUCTURED,
  622. D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER,
  623. } D3D_SHADER_INPUT_TYPE;
  624. typedef enum _D3D_SHADER_CBUFFER_FLAGS
  625. {
  626. D3D_CBF_USERPACKED = 1,
  627. D3D10_CBF_USERPACKED = D3D_CBF_USERPACKED,
  628. // force 32-bit size enum
  629. D3D_CBF_FORCE_DWORD = 0x7fffffff
  630. } D3D_SHADER_CBUFFER_FLAGS;
  631. typedef enum _D3D_CBUFFER_TYPE
  632. {
  633. D3D_CT_CBUFFER,
  634. D3D_CT_TBUFFER,
  635. D3D_CT_INTERFACE_POINTERS,
  636. D3D_CT_RESOURCE_BIND_INFO,
  637. D3D10_CT_CBUFFER = D3D_CT_CBUFFER,
  638. D3D10_CT_TBUFFER = D3D_CT_TBUFFER,
  639. D3D11_CT_CBUFFER = D3D_CT_CBUFFER,
  640. D3D11_CT_TBUFFER = D3D_CT_TBUFFER,
  641. D3D11_CT_INTERFACE_POINTERS = D3D_CT_INTERFACE_POINTERS,
  642. D3D11_CT_RESOURCE_BIND_INFO = D3D_CT_RESOURCE_BIND_INFO,
  643. } D3D_CBUFFER_TYPE;
  644. typedef enum D3D_NAME
  645. {
  646. D3D_NAME_UNDEFINED = 0,
  647. // Names meaningful to both HLSL and hardware
  648. D3D_NAME_POSITION = 1,
  649. D3D_NAME_CLIP_DISTANCE = 2,
  650. D3D_NAME_CULL_DISTANCE = 3,
  651. D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4,
  652. D3D_NAME_VIEWPORT_ARRAY_INDEX = 5,
  653. D3D_NAME_VERTEX_ID = 6,
  654. D3D_NAME_PRIMITIVE_ID = 7,
  655. D3D_NAME_INSTANCE_ID = 8,
  656. D3D_NAME_IS_FRONT_FACE = 9,
  657. D3D_NAME_SAMPLE_INDEX = 10,
  658. D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11,
  659. D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12,
  660. D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13,
  661. D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14,
  662. D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15,
  663. D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16,
  664. D3D_NAME_BARYCENTRICS = 23,
  665. D3D_NAME_SHADINGRATE = 24,
  666. D3D_NAME_CULLPRIMITIVE = 25,
  667. // Names meaningful to HLSL only
  668. D3D_NAME_TARGET = 64,
  669. D3D_NAME_DEPTH = 65,
  670. D3D_NAME_COVERAGE = 66,
  671. D3D_NAME_DEPTH_GREATER_EQUAL = 67,
  672. D3D_NAME_DEPTH_LESS_EQUAL = 68,
  673. D3D_NAME_STENCIL_REF = 69,
  674. D3D_NAME_INNER_COVERAGE = 70,
  675. D3D10_NAME_UNDEFINED = D3D_NAME_UNDEFINED,
  676. D3D10_NAME_POSITION = D3D_NAME_POSITION,
  677. D3D10_NAME_CLIP_DISTANCE = D3D_NAME_CLIP_DISTANCE,
  678. D3D10_NAME_CULL_DISTANCE = D3D_NAME_CULL_DISTANCE,
  679. D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = D3D_NAME_RENDER_TARGET_ARRAY_INDEX,
  680. D3D10_NAME_VIEWPORT_ARRAY_INDEX = D3D_NAME_VIEWPORT_ARRAY_INDEX,
  681. D3D10_NAME_VERTEX_ID = D3D_NAME_VERTEX_ID,
  682. D3D10_NAME_PRIMITIVE_ID = D3D_NAME_PRIMITIVE_ID,
  683. D3D10_NAME_INSTANCE_ID = D3D_NAME_INSTANCE_ID,
  684. D3D10_NAME_IS_FRONT_FACE = D3D_NAME_IS_FRONT_FACE,
  685. D3D10_NAME_SAMPLE_INDEX = D3D_NAME_SAMPLE_INDEX,
  686. D3D10_NAME_TARGET = D3D_NAME_TARGET,
  687. D3D10_NAME_DEPTH = D3D_NAME_DEPTH,
  688. D3D10_NAME_COVERAGE = D3D_NAME_COVERAGE,
  689. D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR,
  690. D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR,
  691. D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR,
  692. D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR,
  693. D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR,
  694. D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR,
  695. D3D11_NAME_DEPTH_GREATER_EQUAL = D3D_NAME_DEPTH_GREATER_EQUAL,
  696. D3D11_NAME_DEPTH_LESS_EQUAL = D3D_NAME_DEPTH_LESS_EQUAL,
  697. D3D11_NAME_STENCIL_REF = D3D_NAME_STENCIL_REF,
  698. D3D11_NAME_INNER_COVERAGE = D3D_NAME_INNER_COVERAGE,
  699. D3D12_NAME_BARYCENTRICS = D3D_NAME_BARYCENTRICS,
  700. D3D12_NAME_SHADINGRATE = D3D_NAME_SHADINGRATE,
  701. D3D12_NAME_CULLPRIMITIVE = D3D_NAME_CULLPRIMITIVE,
  702. } D3D_NAME;
  703. typedef enum D3D_RESOURCE_RETURN_TYPE
  704. {
  705. D3D_RETURN_TYPE_UNORM = 1,
  706. D3D_RETURN_TYPE_SNORM = 2,
  707. D3D_RETURN_TYPE_SINT = 3,
  708. D3D_RETURN_TYPE_UINT = 4,
  709. D3D_RETURN_TYPE_FLOAT = 5,
  710. D3D_RETURN_TYPE_MIXED = 6,
  711. D3D_RETURN_TYPE_DOUBLE = 7,
  712. D3D_RETURN_TYPE_CONTINUED = 8,
  713. D3D10_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM,
  714. D3D10_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM,
  715. D3D10_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT,
  716. D3D10_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT,
  717. D3D10_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT,
  718. D3D10_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED,
  719. D3D11_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM,
  720. D3D11_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM,
  721. D3D11_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT,
  722. D3D11_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT,
  723. D3D11_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT,
  724. D3D11_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED,
  725. D3D11_RETURN_TYPE_DOUBLE = D3D_RETURN_TYPE_DOUBLE,
  726. D3D11_RETURN_TYPE_CONTINUED = D3D_RETURN_TYPE_CONTINUED,
  727. } D3D_RESOURCE_RETURN_TYPE;
  728. typedef enum D3D_REGISTER_COMPONENT_TYPE
  729. {
  730. D3D_REGISTER_COMPONENT_UNKNOWN = 0,
  731. D3D_REGISTER_COMPONENT_UINT32 = 1,
  732. D3D_REGISTER_COMPONENT_SINT32 = 2,
  733. D3D_REGISTER_COMPONENT_FLOAT32 = 3,
  734. D3D_REGISTER_COMPONENT_UINT16 = 4,
  735. D3D_REGISTER_COMPONENT_SINT16 = 5,
  736. D3D_REGISTER_COMPONENT_FLOAT16 = 6,
  737. D3D_REGISTER_COMPONENT_UINT64 = 7,
  738. D3D_REGISTER_COMPONENT_SINT64 = 8,
  739. D3D_REGISTER_COMPONENT_FLOAT64 = 9,
  740. D3D10_REGISTER_COMPONENT_UNKNOWN = D3D_REGISTER_COMPONENT_UNKNOWN,
  741. D3D10_REGISTER_COMPONENT_UINT32 = D3D_REGISTER_COMPONENT_UINT32,
  742. D3D10_REGISTER_COMPONENT_SINT32 = D3D_REGISTER_COMPONENT_SINT32,
  743. D3D10_REGISTER_COMPONENT_FLOAT32 = D3D_REGISTER_COMPONENT_FLOAT32,
  744. D3D10_REGISTER_COMPONENT_UINT16 = D3D_REGISTER_COMPONENT_UINT16,
  745. D3D10_REGISTER_COMPONENT_SINT16 = D3D_REGISTER_COMPONENT_SINT16,
  746. D3D10_REGISTER_COMPONENT_FLOAT16 = D3D_REGISTER_COMPONENT_FLOAT16,
  747. D3D10_REGISTER_COMPONENT_UINT64 = D3D_REGISTER_COMPONENT_UINT64,
  748. D3D10_REGISTER_COMPONENT_SINT64 = D3D_REGISTER_COMPONENT_SINT64,
  749. D3D10_REGISTER_COMPONENT_FLOAT64 = D3D_REGISTER_COMPONENT_FLOAT64,
  750. } D3D_REGISTER_COMPONENT_TYPE;
  751. typedef enum D3D_TESSELLATOR_DOMAIN
  752. {
  753. D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0,
  754. D3D_TESSELLATOR_DOMAIN_ISOLINE = 1,
  755. D3D_TESSELLATOR_DOMAIN_TRI = 2,
  756. D3D_TESSELLATOR_DOMAIN_QUAD = 3,
  757. D3D11_TESSELLATOR_DOMAIN_UNDEFINED = D3D_TESSELLATOR_DOMAIN_UNDEFINED,
  758. D3D11_TESSELLATOR_DOMAIN_ISOLINE = D3D_TESSELLATOR_DOMAIN_ISOLINE,
  759. D3D11_TESSELLATOR_DOMAIN_TRI = D3D_TESSELLATOR_DOMAIN_TRI,
  760. D3D11_TESSELLATOR_DOMAIN_QUAD = D3D_TESSELLATOR_DOMAIN_QUAD,
  761. } D3D_TESSELLATOR_DOMAIN;
  762. typedef enum D3D_TESSELLATOR_PARTITIONING
  763. {
  764. D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0,
  765. D3D_TESSELLATOR_PARTITIONING_INTEGER = 1,
  766. D3D_TESSELLATOR_PARTITIONING_POW2 = 2,
  767. D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3,
  768. D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4,
  769. D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = D3D_TESSELLATOR_PARTITIONING_UNDEFINED,
  770. D3D11_TESSELLATOR_PARTITIONING_INTEGER = D3D_TESSELLATOR_PARTITIONING_INTEGER,
  771. D3D11_TESSELLATOR_PARTITIONING_POW2 = D3D_TESSELLATOR_PARTITIONING_POW2,
  772. D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD,
  773. D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN,
  774. } D3D_TESSELLATOR_PARTITIONING;
  775. typedef enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE
  776. {
  777. D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0,
  778. D3D_TESSELLATOR_OUTPUT_POINT = 1,
  779. D3D_TESSELLATOR_OUTPUT_LINE = 2,
  780. D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3,
  781. D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4,
  782. D3D11_TESSELLATOR_OUTPUT_UNDEFINED = D3D_TESSELLATOR_OUTPUT_UNDEFINED,
  783. D3D11_TESSELLATOR_OUTPUT_POINT = D3D_TESSELLATOR_OUTPUT_POINT,
  784. D3D11_TESSELLATOR_OUTPUT_LINE = D3D_TESSELLATOR_OUTPUT_LINE,
  785. D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW,
  786. D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW,
  787. } D3D_TESSELLATOR_OUTPUT_PRIMITIVE;
  788. typedef enum D3D_MIN_PRECISION
  789. {
  790. D3D_MIN_PRECISION_DEFAULT = 0, // Default precision for the shader model
  791. D3D_MIN_PRECISION_FLOAT_16 = 1, // Min 16 bit/component float
  792. D3D_MIN_PRECISION_FLOAT_2_8 = 2, // Min 10(2.8)bit/comp. float
  793. D3D_MIN_PRECISION_RESERVED = 3, // Reserved for future use
  794. D3D_MIN_PRECISION_SINT_16 = 4, // Min 16 bit/comp. signed integer
  795. D3D_MIN_PRECISION_UINT_16 = 5, // Min 16 bit/comp. unsigned integer
  796. // These values are abstractions of width only for use in situations
  797. // where a general width is needed instead of specific types. They
  798. // will never be used in shader operands.
  799. D3D_MIN_PRECISION_ANY_16 = 0xf0,
  800. D3D_MIN_PRECISION_ANY_10 = 0xf1,
  801. } D3D_MIN_PRECISION;
  802. typedef enum D3D_INTERPOLATION_MODE
  803. {
  804. D3D_INTERPOLATION_UNDEFINED = 0,
  805. D3D_INTERPOLATION_CONSTANT = 1,
  806. D3D_INTERPOLATION_LINEAR = 2,
  807. D3D_INTERPOLATION_LINEAR_CENTROID = 3,
  808. D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4,
  809. D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5,
  810. D3D_INTERPOLATION_LINEAR_SAMPLE = 6,
  811. D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7,
  812. } D3D_INTERPOLATION_MODE;
  813. // Parameter flags.
  814. typedef enum _D3D_PARAMETER_FLAGS
  815. {
  816. D3D_PF_NONE = 0x00000000,
  817. D3D_PF_IN = 0x00000001,
  818. D3D_PF_OUT = 0x00000002,
  819. D3D_PF_FORCE_DWORD = 0x7fffffff
  820. } D3D_PARAMETER_FLAGS;
  821. // Format Layout Properties
  822. typedef enum D3D_FORMAT_LAYOUT
  823. {
  824. D3DFL_STANDARD = 0, // standard layout
  825. D3DFL_CUSTOM = -1 // custom layout
  826. // Note, 1 bit allocated for this in FORMAT_DETAIL below. If you add fields here, add bits...
  827. // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ
  828. } D3D_FORMAT_LAYOUT;
  829. typedef enum D3D_FORMAT_TYPE_LEVEL
  830. {
  831. D3DFTL_NO_TYPE = 0,
  832. D3DFTL_PARTIAL_TYPE = -2,
  833. D3DFTL_FULL_TYPE = -1,
  834. // Note, 2 bits allocated for this in FORMAT_DETAIL below. If you add fields here, add bits...
  835. // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ
  836. } D3D_FORMAT_TYPE_LEVEL;
  837. typedef enum D3D_FORMAT_COMPONENT_NAME
  838. {
  839. D3DFCN_R = -4,
  840. D3DFCN_G = -3,
  841. D3DFCN_B = -2,
  842. D3DFCN_A = -1,
  843. D3DFCN_D = 0,
  844. D3DFCN_S = 1,
  845. D3DFCN_X = 2,
  846. // Note, 3 bits allocated for this in FORMAT_DETAIL below. If you add fields here, add bits...
  847. // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ
  848. } D3D_FORMAT_COMPONENT_NAME;
  849. typedef enum D3D_FORMAT_COMPONENT_INTERPRETATION
  850. {
  851. D3DFCI_TYPELESS = 0,
  852. D3DFCI_FLOAT = -4,
  853. D3DFCI_SNORM = -3,
  854. D3DFCI_UNORM = -2,
  855. D3DFCI_SINT = -1,
  856. D3DFCI_UINT = 1,
  857. D3DFCI_UNORM_SRGB = 2,
  858. D3DFCI_BIASED_FIXED_2_8 = 3,
  859. // Note, 3 bits allocated for this in FORMAT_DETAIL below. If you add fields here, add bits...
  860. // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ
  861. } D3D_FORMAT_COMPONENT_INTERPRETATION;
  862. // Well-Known Private Data IDs (WKPDID_*):
  863. // WKPDID_D3DDebugObjectName provides a unique name to objects in order to assist the developer during debugging.
  864. //
  865. // const char c_szName[] = "texture.jpg";
  866. // pObject->SetPrivateData( WKPDID_D3DDebugObjectName, sizeof( c_szName ) - 1, c_szName );
  867. cpp_quote("DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00);")
  868. cpp_quote("DEFINE_GUID(WKPDID_D3DDebugObjectNameW,0x4cca5fd8,0x921f,0x42c8,0x85,0x66,0x70,0xca,0xf2,0xa9,0xb7,0x41);")
  869. cpp_quote("DEFINE_GUID(WKPDID_CommentStringW,0xd0149dc0,0x90e8,0x4ec8,0x81, 0x44, 0xe9, 0x00, 0xad, 0x26, 0x6b, 0xb2);")
  870. cpp_quote("DEFINE_GUID(WKPDID_D3D12UniqueObjectId, 0x1b39de15, 0xec04, 0x4bae, 0xba, 0x4d, 0x8c, 0xef, 0x79, 0xfc, 0x04, 0xc1);")
  871. cpp_quote("#define D3D_SET_OBJECT_NAME_N_A(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectName, Chars, pName)")
  872. cpp_quote("#define D3D_SET_OBJECT_NAME_A(pObject, pName) D3D_SET_OBJECT_NAME_N_A(pObject, lstrlenA(pName), pName)")
  873. cpp_quote("#define D3D_SET_OBJECT_NAME_N_W(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectNameW, Chars*2, pName)")
  874. cpp_quote("#define D3D_SET_OBJECT_NAME_W(pObject, pName) D3D_SET_OBJECT_NAME_N_W(pObject, wcslen(pName), pName)")
  875. cpp_quote("#define D3D_COMPONENT_MASK_X 1")
  876. cpp_quote("#define D3D_COMPONENT_MASK_Y 2")
  877. cpp_quote("#define D3D_COMPONENT_MASK_Z 4")
  878. cpp_quote("#define D3D_COMPONENT_MASK_W 8")
  879. cpp_quote("DEFINE_GUID(D3D_TEXTURE_LAYOUT_ROW_MAJOR,0xb5dc234f,0x72bb,0x4bec,0x97,0x05,0x8c,0xf2,0x58,0xdf,0x6b,0x6c);") // Feature_D3D1XDisplayable
  880. cpp_quote("DEFINE_GUID(D3D_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE,0x4c0f29e3,0x3f5f,0x4d35,0x84,0xc9,0xbc,0x09,0x83,0xb6,0x2c,0x28);") // Feature_D3D1XDisplayable