d3d12shader.h 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137
  1. /*** Autogenerated by WIDL 7.7 from include/d3d12shader.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __d3d12shader_h__
  14. #define __d3d12shader_h__
  15. /* Forward declarations */
  16. #ifndef __ID3D12ShaderReflectionType_FWD_DEFINED__
  17. #define __ID3D12ShaderReflectionType_FWD_DEFINED__
  18. typedef interface ID3D12ShaderReflectionType ID3D12ShaderReflectionType;
  19. #ifdef __cplusplus
  20. interface ID3D12ShaderReflectionType;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __ID3D12ShaderReflectionVariable_FWD_DEFINED__
  24. #define __ID3D12ShaderReflectionVariable_FWD_DEFINED__
  25. typedef interface ID3D12ShaderReflectionVariable ID3D12ShaderReflectionVariable;
  26. #ifdef __cplusplus
  27. interface ID3D12ShaderReflectionVariable;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __ID3D12ShaderReflectionConstantBuffer_FWD_DEFINED__
  31. #define __ID3D12ShaderReflectionConstantBuffer_FWD_DEFINED__
  32. typedef interface ID3D12ShaderReflectionConstantBuffer ID3D12ShaderReflectionConstantBuffer;
  33. #ifdef __cplusplus
  34. interface ID3D12ShaderReflectionConstantBuffer;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __ID3D12ShaderReflection_FWD_DEFINED__
  38. #define __ID3D12ShaderReflection_FWD_DEFINED__
  39. typedef interface ID3D12ShaderReflection ID3D12ShaderReflection;
  40. #ifdef __cplusplus
  41. interface ID3D12ShaderReflection;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __ID3D12FunctionParameterReflection_FWD_DEFINED__
  45. #define __ID3D12FunctionParameterReflection_FWD_DEFINED__
  46. typedef interface ID3D12FunctionParameterReflection ID3D12FunctionParameterReflection;
  47. #ifdef __cplusplus
  48. interface ID3D12FunctionParameterReflection;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __ID3D12FunctionReflection_FWD_DEFINED__
  52. #define __ID3D12FunctionReflection_FWD_DEFINED__
  53. typedef interface ID3D12FunctionReflection ID3D12FunctionReflection;
  54. #ifdef __cplusplus
  55. interface ID3D12FunctionReflection;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __ID3D12LibraryReflection_FWD_DEFINED__
  59. #define __ID3D12LibraryReflection_FWD_DEFINED__
  60. typedef interface ID3D12LibraryReflection ID3D12LibraryReflection;
  61. #ifdef __cplusplus
  62. interface ID3D12LibraryReflection;
  63. #endif /* __cplusplus */
  64. #endif
  65. /* Headers for imported files */
  66. #include <oaidl.h>
  67. #include <ocidl.h>
  68. #include <d3dcommon.h>
  69. #ifdef __cplusplus
  70. extern "C" {
  71. #endif
  72. typedef enum D3D12_SHADER_VERSION_TYPE {
  73. D3D12_SHVER_PIXEL_SHADER = 0x0,
  74. D3D12_SHVER_VERTEX_SHADER = 0x1,
  75. D3D12_SHVER_GEOMETRY_SHADER = 0x2,
  76. D3D12_SHVER_HULL_SHADER = 0x3,
  77. D3D12_SHVER_DOMAIN_SHADER = 0x4,
  78. D3D12_SHVER_COMPUTE_SHADER = 0x5,
  79. D3D12_SHVER_RESERVED0 = 0xfff0
  80. } D3D12_SHADER_VERSION_TYPE;
  81. typedef struct _D3D12_SHADER_DESC {
  82. UINT Version;
  83. const char *Creator;
  84. UINT Flags;
  85. UINT ConstantBuffers;
  86. UINT BoundResources;
  87. UINT InputParameters;
  88. UINT OutputParameters;
  89. UINT InstructionCount;
  90. UINT TempRegisterCount;
  91. UINT TempArrayCount;
  92. UINT DefCount;
  93. UINT DclCount;
  94. UINT TextureNormalInstructions;
  95. UINT TextureLoadInstructions;
  96. UINT TextureCompInstructions;
  97. UINT TextureBiasInstructions;
  98. UINT TextureGradientInstructions;
  99. UINT FloatInstructionCount;
  100. UINT IntInstructionCount;
  101. UINT UintInstructionCount;
  102. UINT StaticFlowControlCount;
  103. UINT DynamicFlowControlCount;
  104. UINT MacroInstructionCount;
  105. UINT ArrayInstructionCount;
  106. UINT CutInstructionCount;
  107. UINT EmitInstructionCount;
  108. D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
  109. UINT GSMaxOutputVertexCount;
  110. D3D_PRIMITIVE InputPrimitive;
  111. UINT PatchConstantParameters;
  112. UINT cGSInstanceCount;
  113. UINT cControlPoints;
  114. D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;
  115. D3D_TESSELLATOR_PARTITIONING HSPartitioning;
  116. D3D_TESSELLATOR_DOMAIN TessellatorDomain;
  117. UINT cBarrierInstructions;
  118. UINT cInterlockedInstructions;
  119. UINT cTextureStoreInstructions;
  120. } D3D12_SHADER_DESC;
  121. typedef struct _D3D12_SHADER_VARIABLE_DESC {
  122. const char *Name;
  123. UINT StartOffset;
  124. UINT Size;
  125. UINT uFlags;
  126. void *DefaultValue;
  127. UINT StartTexture;
  128. UINT TextureSize;
  129. UINT StartSampler;
  130. UINT SamplerSize;
  131. } D3D12_SHADER_VARIABLE_DESC;
  132. typedef struct _D3D12_SHADER_TYPE_DESC {
  133. D3D_SHADER_VARIABLE_CLASS Class;
  134. D3D_SHADER_VARIABLE_TYPE Type;
  135. UINT Rows;
  136. UINT Columns;
  137. UINT Elements;
  138. UINT Members;
  139. UINT Offset;
  140. const char *Name;
  141. } D3D12_SHADER_TYPE_DESC;
  142. typedef struct _D3D12_SHADER_BUFFER_DESC {
  143. const char *Name;
  144. D3D_CBUFFER_TYPE Type;
  145. UINT Variables;
  146. UINT Size;
  147. UINT uFlags;
  148. } D3D12_SHADER_BUFFER_DESC;
  149. typedef struct _D3D12_SHADER_INPUT_BIND_DESC {
  150. const char *Name;
  151. D3D_SHADER_INPUT_TYPE Type;
  152. UINT BindPoint;
  153. UINT BindCount;
  154. UINT uFlags;
  155. D3D_RESOURCE_RETURN_TYPE ReturnType;
  156. D3D_SRV_DIMENSION Dimension;
  157. UINT NumSamples;
  158. UINT Space;
  159. UINT uID;
  160. } D3D12_SHADER_INPUT_BIND_DESC;
  161. typedef struct _D3D12_SIGNATURE_PARAMETER_DESC {
  162. const char *SemanticName;
  163. UINT SemanticIndex;
  164. UINT Register;
  165. D3D_NAME SystemValueType;
  166. D3D_REGISTER_COMPONENT_TYPE ComponentType;
  167. BYTE Mask;
  168. BYTE ReadWriteMask;
  169. UINT Stream;
  170. D3D_MIN_PRECISION MinPrecision;
  171. } D3D12_SIGNATURE_PARAMETER_DESC;
  172. typedef struct _D3D12_PARAMETER_DESC {
  173. const char *Name;
  174. const char *SemanticName;
  175. D3D_SHADER_VARIABLE_TYPE Type;
  176. D3D_SHADER_VARIABLE_CLASS Class;
  177. UINT Rows;
  178. UINT Columns;
  179. D3D_INTERPOLATION_MODE InterpolationMode;
  180. D3D_PARAMETER_FLAGS Flags;
  181. UINT FirstInRegister;
  182. UINT FirstInComponent;
  183. UINT FirstOutRegister;
  184. UINT FirstOutComponent;
  185. } D3D12_PARAMETER_DESC;
  186. typedef struct _D3D12_FUNCTION_DESC {
  187. UINT Version;
  188. const char *Creator;
  189. UINT Flags;
  190. UINT ConstantBuffers;
  191. UINT BoundResources;
  192. UINT InstructionCount;
  193. UINT TempRegisterCount;
  194. UINT TempArrayCount;
  195. UINT DefCount;
  196. UINT DclCount;
  197. UINT TextureNormalInstructions;
  198. UINT TextureLoadInstructions;
  199. UINT TextureCompInstructions;
  200. UINT TextureBiasInstructions;
  201. UINT TextureGradientInstructions;
  202. UINT FloatInstructionCount;
  203. UINT IntInstructionCount;
  204. UINT UintInstructionCount;
  205. UINT StaticFlowControlCount;
  206. UINT DynamicFlowControlCount;
  207. UINT MacroInstructionCount;
  208. UINT ArrayInstructionCount;
  209. UINT MovInstructionCount;
  210. UINT MovcInstructionCount;
  211. UINT ConversionInstructionCount;
  212. UINT BitwiseInstructionCount;
  213. D3D_FEATURE_LEVEL MinFeatureLevel;
  214. UINT64 RequiredFeatureFlags;
  215. const char *Name;
  216. INT FunctionParameterCount;
  217. WINBOOL HasReturn;
  218. WINBOOL Has10Level9VertexShader;
  219. WINBOOL Has10Level9PixelShader;
  220. } D3D12_FUNCTION_DESC;
  221. typedef struct _D3D12_LIBRARY_DESC {
  222. const char *Creator;
  223. UINT Flags;
  224. UINT FunctionCount;
  225. } D3D12_LIBRARY_DESC;
  226. #ifndef __ID3D12ShaderReflectionConstantBuffer_FWD_DEFINED__
  227. #define __ID3D12ShaderReflectionConstantBuffer_FWD_DEFINED__
  228. typedef interface ID3D12ShaderReflectionConstantBuffer ID3D12ShaderReflectionConstantBuffer;
  229. #ifdef __cplusplus
  230. interface ID3D12ShaderReflectionConstantBuffer;
  231. #endif /* __cplusplus */
  232. #endif
  233. /*****************************************************************************
  234. * ID3D12ShaderReflectionType interface
  235. */
  236. #ifndef __ID3D12ShaderReflectionType_INTERFACE_DEFINED__
  237. #define __ID3D12ShaderReflectionType_INTERFACE_DEFINED__
  238. DEFINE_GUID(IID_ID3D12ShaderReflectionType, 0xe913c351, 0x783d, 0x48ca, 0xa1,0xd1, 0x4f,0x30,0x62,0x84,0xad,0x56);
  239. #if defined(__cplusplus) && !defined(CINTERFACE)
  240. MIDL_INTERFACE("e913c351-783d-48ca-a1d1-4f306284ad56")
  241. ID3D12ShaderReflectionType
  242. {
  243. BEGIN_INTERFACE
  244. virtual HRESULT STDMETHODCALLTYPE GetDesc(
  245. D3D12_SHADER_TYPE_DESC *desc) = 0;
  246. virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetMemberTypeByIndex(
  247. UINT index) = 0;
  248. virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetMemberTypeByName(
  249. const char *name) = 0;
  250. virtual const char * STDMETHODCALLTYPE GetMemberTypeName(
  251. UINT index) = 0;
  252. virtual HRESULT STDMETHODCALLTYPE IsEqual(
  253. ID3D12ShaderReflectionType *type) = 0;
  254. virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetSubType(
  255. ) = 0;
  256. virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetBaseClass(
  257. ) = 0;
  258. virtual UINT STDMETHODCALLTYPE GetNumInterfaces(
  259. ) = 0;
  260. virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetInterfaceByIndex(
  261. UINT index) = 0;
  262. virtual HRESULT STDMETHODCALLTYPE IsOfType(
  263. ID3D12ShaderReflectionType *type) = 0;
  264. virtual HRESULT STDMETHODCALLTYPE ImplementsInterface(
  265. ID3D12ShaderReflectionType *base) = 0;
  266. END_INTERFACE
  267. };
  268. #ifdef __CRT_UUID_DECL
  269. __CRT_UUID_DECL(ID3D12ShaderReflectionType, 0xe913c351, 0x783d, 0x48ca, 0xa1,0xd1, 0x4f,0x30,0x62,0x84,0xad,0x56)
  270. #endif
  271. #else
  272. typedef struct ID3D12ShaderReflectionTypeVtbl {
  273. BEGIN_INTERFACE
  274. /*** ID3D12ShaderReflectionType methods ***/
  275. HRESULT (STDMETHODCALLTYPE *GetDesc)(
  276. ID3D12ShaderReflectionType *This,
  277. D3D12_SHADER_TYPE_DESC *desc);
  278. ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetMemberTypeByIndex)(
  279. ID3D12ShaderReflectionType *This,
  280. UINT index);
  281. ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetMemberTypeByName)(
  282. ID3D12ShaderReflectionType *This,
  283. const char *name);
  284. const char * (STDMETHODCALLTYPE *GetMemberTypeName)(
  285. ID3D12ShaderReflectionType *This,
  286. UINT index);
  287. HRESULT (STDMETHODCALLTYPE *IsEqual)(
  288. ID3D12ShaderReflectionType *This,
  289. ID3D12ShaderReflectionType *type);
  290. ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetSubType)(
  291. ID3D12ShaderReflectionType *This);
  292. ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetBaseClass)(
  293. ID3D12ShaderReflectionType *This);
  294. UINT (STDMETHODCALLTYPE *GetNumInterfaces)(
  295. ID3D12ShaderReflectionType *This);
  296. ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetInterfaceByIndex)(
  297. ID3D12ShaderReflectionType *This,
  298. UINT index);
  299. HRESULT (STDMETHODCALLTYPE *IsOfType)(
  300. ID3D12ShaderReflectionType *This,
  301. ID3D12ShaderReflectionType *type);
  302. HRESULT (STDMETHODCALLTYPE *ImplementsInterface)(
  303. ID3D12ShaderReflectionType *This,
  304. ID3D12ShaderReflectionType *base);
  305. END_INTERFACE
  306. } ID3D12ShaderReflectionTypeVtbl;
  307. interface ID3D12ShaderReflectionType {
  308. CONST_VTBL ID3D12ShaderReflectionTypeVtbl* lpVtbl;
  309. };
  310. #ifdef COBJMACROS
  311. #ifndef WIDL_C_INLINE_WRAPPERS
  312. /*** ID3D12ShaderReflectionType methods ***/
  313. #define ID3D12ShaderReflectionType_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
  314. #define ID3D12ShaderReflectionType_GetMemberTypeByIndex(This,index) (This)->lpVtbl->GetMemberTypeByIndex(This,index)
  315. #define ID3D12ShaderReflectionType_GetMemberTypeByName(This,name) (This)->lpVtbl->GetMemberTypeByName(This,name)
  316. #define ID3D12ShaderReflectionType_GetMemberTypeName(This,index) (This)->lpVtbl->GetMemberTypeName(This,index)
  317. #define ID3D12ShaderReflectionType_IsEqual(This,type) (This)->lpVtbl->IsEqual(This,type)
  318. #define ID3D12ShaderReflectionType_GetSubType(This) (This)->lpVtbl->GetSubType(This)
  319. #define ID3D12ShaderReflectionType_GetBaseClass(This) (This)->lpVtbl->GetBaseClass(This)
  320. #define ID3D12ShaderReflectionType_GetNumInterfaces(This) (This)->lpVtbl->GetNumInterfaces(This)
  321. #define ID3D12ShaderReflectionType_GetInterfaceByIndex(This,index) (This)->lpVtbl->GetInterfaceByIndex(This,index)
  322. #define ID3D12ShaderReflectionType_IsOfType(This,type) (This)->lpVtbl->IsOfType(This,type)
  323. #define ID3D12ShaderReflectionType_ImplementsInterface(This,base) (This)->lpVtbl->ImplementsInterface(This,base)
  324. #else
  325. /*** ID3D12ShaderReflectionType methods ***/
  326. static FORCEINLINE HRESULT ID3D12ShaderReflectionType_GetDesc(ID3D12ShaderReflectionType* This,D3D12_SHADER_TYPE_DESC *desc) {
  327. return This->lpVtbl->GetDesc(This,desc);
  328. }
  329. static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetMemberTypeByIndex(ID3D12ShaderReflectionType* This,UINT index) {
  330. return This->lpVtbl->GetMemberTypeByIndex(This,index);
  331. }
  332. static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetMemberTypeByName(ID3D12ShaderReflectionType* This,const char *name) {
  333. return This->lpVtbl->GetMemberTypeByName(This,name);
  334. }
  335. static FORCEINLINE const char * ID3D12ShaderReflectionType_GetMemberTypeName(ID3D12ShaderReflectionType* This,UINT index) {
  336. return This->lpVtbl->GetMemberTypeName(This,index);
  337. }
  338. static FORCEINLINE HRESULT ID3D12ShaderReflectionType_IsEqual(ID3D12ShaderReflectionType* This,ID3D12ShaderReflectionType *type) {
  339. return This->lpVtbl->IsEqual(This,type);
  340. }
  341. static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetSubType(ID3D12ShaderReflectionType* This) {
  342. return This->lpVtbl->GetSubType(This);
  343. }
  344. static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetBaseClass(ID3D12ShaderReflectionType* This) {
  345. return This->lpVtbl->GetBaseClass(This);
  346. }
  347. static FORCEINLINE UINT ID3D12ShaderReflectionType_GetNumInterfaces(ID3D12ShaderReflectionType* This) {
  348. return This->lpVtbl->GetNumInterfaces(This);
  349. }
  350. static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionType_GetInterfaceByIndex(ID3D12ShaderReflectionType* This,UINT index) {
  351. return This->lpVtbl->GetInterfaceByIndex(This,index);
  352. }
  353. static FORCEINLINE HRESULT ID3D12ShaderReflectionType_IsOfType(ID3D12ShaderReflectionType* This,ID3D12ShaderReflectionType *type) {
  354. return This->lpVtbl->IsOfType(This,type);
  355. }
  356. static FORCEINLINE HRESULT ID3D12ShaderReflectionType_ImplementsInterface(ID3D12ShaderReflectionType* This,ID3D12ShaderReflectionType *base) {
  357. return This->lpVtbl->ImplementsInterface(This,base);
  358. }
  359. #endif
  360. #endif
  361. #endif
  362. #endif /* __ID3D12ShaderReflectionType_INTERFACE_DEFINED__ */
  363. /*****************************************************************************
  364. * ID3D12ShaderReflectionVariable interface
  365. */
  366. #ifndef __ID3D12ShaderReflectionVariable_INTERFACE_DEFINED__
  367. #define __ID3D12ShaderReflectionVariable_INTERFACE_DEFINED__
  368. DEFINE_GUID(IID_ID3D12ShaderReflectionVariable, 0x8337a8a6, 0xa216, 0x444a, 0xb2,0xf4, 0x31,0x47,0x33,0xa7,0x3a,0xea);
  369. #if defined(__cplusplus) && !defined(CINTERFACE)
  370. MIDL_INTERFACE("8337a8a6-a216-444a-b2f4-314733a73aea")
  371. ID3D12ShaderReflectionVariable
  372. {
  373. BEGIN_INTERFACE
  374. virtual HRESULT STDMETHODCALLTYPE GetDesc(
  375. D3D12_SHADER_VARIABLE_DESC *desc) = 0;
  376. virtual ID3D12ShaderReflectionType * STDMETHODCALLTYPE GetType(
  377. ) = 0;
  378. virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetBuffer(
  379. ) = 0;
  380. virtual UINT STDMETHODCALLTYPE GetInterfaceSlot(
  381. UINT index) = 0;
  382. END_INTERFACE
  383. };
  384. #ifdef __CRT_UUID_DECL
  385. __CRT_UUID_DECL(ID3D12ShaderReflectionVariable, 0x8337a8a6, 0xa216, 0x444a, 0xb2,0xf4, 0x31,0x47,0x33,0xa7,0x3a,0xea)
  386. #endif
  387. #else
  388. typedef struct ID3D12ShaderReflectionVariableVtbl {
  389. BEGIN_INTERFACE
  390. /*** ID3D12ShaderReflectionVariable methods ***/
  391. HRESULT (STDMETHODCALLTYPE *GetDesc)(
  392. ID3D12ShaderReflectionVariable *This,
  393. D3D12_SHADER_VARIABLE_DESC *desc);
  394. ID3D12ShaderReflectionType * (STDMETHODCALLTYPE *GetType)(
  395. ID3D12ShaderReflectionVariable *This);
  396. ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetBuffer)(
  397. ID3D12ShaderReflectionVariable *This);
  398. UINT (STDMETHODCALLTYPE *GetInterfaceSlot)(
  399. ID3D12ShaderReflectionVariable *This,
  400. UINT index);
  401. END_INTERFACE
  402. } ID3D12ShaderReflectionVariableVtbl;
  403. interface ID3D12ShaderReflectionVariable {
  404. CONST_VTBL ID3D12ShaderReflectionVariableVtbl* lpVtbl;
  405. };
  406. #ifdef COBJMACROS
  407. #ifndef WIDL_C_INLINE_WRAPPERS
  408. /*** ID3D12ShaderReflectionVariable methods ***/
  409. #define ID3D12ShaderReflectionVariable_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
  410. #define ID3D12ShaderReflectionVariable_GetType(This) (This)->lpVtbl->GetType(This)
  411. #define ID3D12ShaderReflectionVariable_GetBuffer(This) (This)->lpVtbl->GetBuffer(This)
  412. #define ID3D12ShaderReflectionVariable_GetInterfaceSlot(This,index) (This)->lpVtbl->GetInterfaceSlot(This,index)
  413. #else
  414. /*** ID3D12ShaderReflectionVariable methods ***/
  415. static FORCEINLINE HRESULT ID3D12ShaderReflectionVariable_GetDesc(ID3D12ShaderReflectionVariable* This,D3D12_SHADER_VARIABLE_DESC *desc) {
  416. return This->lpVtbl->GetDesc(This,desc);
  417. }
  418. static FORCEINLINE ID3D12ShaderReflectionType * ID3D12ShaderReflectionVariable_GetType(ID3D12ShaderReflectionVariable* This) {
  419. return This->lpVtbl->GetType(This);
  420. }
  421. static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12ShaderReflectionVariable_GetBuffer(ID3D12ShaderReflectionVariable* This) {
  422. return This->lpVtbl->GetBuffer(This);
  423. }
  424. static FORCEINLINE UINT ID3D12ShaderReflectionVariable_GetInterfaceSlot(ID3D12ShaderReflectionVariable* This,UINT index) {
  425. return This->lpVtbl->GetInterfaceSlot(This,index);
  426. }
  427. #endif
  428. #endif
  429. #endif
  430. #endif /* __ID3D12ShaderReflectionVariable_INTERFACE_DEFINED__ */
  431. /*****************************************************************************
  432. * ID3D12ShaderReflectionConstantBuffer interface
  433. */
  434. #ifndef __ID3D12ShaderReflectionConstantBuffer_INTERFACE_DEFINED__
  435. #define __ID3D12ShaderReflectionConstantBuffer_INTERFACE_DEFINED__
  436. DEFINE_GUID(IID_ID3D12ShaderReflectionConstantBuffer, 0xc59598b4, 0x48b3, 0x4869, 0xb9,0xb1, 0xb1,0x61,0x8b,0x14,0xa8,0xb7);
  437. #if defined(__cplusplus) && !defined(CINTERFACE)
  438. MIDL_INTERFACE("c59598b4-48b3-4869-b9b1-b1618b14a8b7")
  439. ID3D12ShaderReflectionConstantBuffer
  440. {
  441. BEGIN_INTERFACE
  442. virtual HRESULT STDMETHODCALLTYPE GetDesc(
  443. D3D12_SHADER_BUFFER_DESC *desc) = 0;
  444. virtual ID3D12ShaderReflectionVariable * STDMETHODCALLTYPE GetVariableByIndex(
  445. UINT index) = 0;
  446. virtual ID3D12ShaderReflectionVariable * STDMETHODCALLTYPE GetVariableByName(
  447. const char *name) = 0;
  448. END_INTERFACE
  449. };
  450. #ifdef __CRT_UUID_DECL
  451. __CRT_UUID_DECL(ID3D12ShaderReflectionConstantBuffer, 0xc59598b4, 0x48b3, 0x4869, 0xb9,0xb1, 0xb1,0x61,0x8b,0x14,0xa8,0xb7)
  452. #endif
  453. #else
  454. typedef struct ID3D12ShaderReflectionConstantBufferVtbl {
  455. BEGIN_INTERFACE
  456. /*** ID3D12ShaderReflectionConstantBuffer methods ***/
  457. HRESULT (STDMETHODCALLTYPE *GetDesc)(
  458. ID3D12ShaderReflectionConstantBuffer *This,
  459. D3D12_SHADER_BUFFER_DESC *desc);
  460. ID3D12ShaderReflectionVariable * (STDMETHODCALLTYPE *GetVariableByIndex)(
  461. ID3D12ShaderReflectionConstantBuffer *This,
  462. UINT index);
  463. ID3D12ShaderReflectionVariable * (STDMETHODCALLTYPE *GetVariableByName)(
  464. ID3D12ShaderReflectionConstantBuffer *This,
  465. const char *name);
  466. END_INTERFACE
  467. } ID3D12ShaderReflectionConstantBufferVtbl;
  468. interface ID3D12ShaderReflectionConstantBuffer {
  469. CONST_VTBL ID3D12ShaderReflectionConstantBufferVtbl* lpVtbl;
  470. };
  471. #ifdef COBJMACROS
  472. #ifndef WIDL_C_INLINE_WRAPPERS
  473. /*** ID3D12ShaderReflectionConstantBuffer methods ***/
  474. #define ID3D12ShaderReflectionConstantBuffer_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
  475. #define ID3D12ShaderReflectionConstantBuffer_GetVariableByIndex(This,index) (This)->lpVtbl->GetVariableByIndex(This,index)
  476. #define ID3D12ShaderReflectionConstantBuffer_GetVariableByName(This,name) (This)->lpVtbl->GetVariableByName(This,name)
  477. #else
  478. /*** ID3D12ShaderReflectionConstantBuffer methods ***/
  479. static FORCEINLINE HRESULT ID3D12ShaderReflectionConstantBuffer_GetDesc(ID3D12ShaderReflectionConstantBuffer* This,D3D12_SHADER_BUFFER_DESC *desc) {
  480. return This->lpVtbl->GetDesc(This,desc);
  481. }
  482. static FORCEINLINE ID3D12ShaderReflectionVariable * ID3D12ShaderReflectionConstantBuffer_GetVariableByIndex(ID3D12ShaderReflectionConstantBuffer* This,UINT index) {
  483. return This->lpVtbl->GetVariableByIndex(This,index);
  484. }
  485. static FORCEINLINE ID3D12ShaderReflectionVariable * ID3D12ShaderReflectionConstantBuffer_GetVariableByName(ID3D12ShaderReflectionConstantBuffer* This,const char *name) {
  486. return This->lpVtbl->GetVariableByName(This,name);
  487. }
  488. #endif
  489. #endif
  490. #endif
  491. #endif /* __ID3D12ShaderReflectionConstantBuffer_INTERFACE_DEFINED__ */
  492. /*****************************************************************************
  493. * ID3D12ShaderReflection interface
  494. */
  495. #ifndef __ID3D12ShaderReflection_INTERFACE_DEFINED__
  496. #define __ID3D12ShaderReflection_INTERFACE_DEFINED__
  497. DEFINE_GUID(IID_ID3D12ShaderReflection, 0x5a58797d, 0xa72c, 0x478d, 0x8b,0xa2, 0xef,0xc6,0xb0,0xef,0xe8,0x8e);
  498. #if defined(__cplusplus) && !defined(CINTERFACE)
  499. MIDL_INTERFACE("5a58797d-a72c-478d-8ba2-efc6b0efe88e")
  500. ID3D12ShaderReflection : public IUnknown
  501. {
  502. virtual HRESULT STDMETHODCALLTYPE GetDesc(
  503. D3D12_SHADER_DESC *desc) = 0;
  504. virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetConstantBufferByIndex(
  505. UINT index) = 0;
  506. virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetConstantBufferByName(
  507. const char *name) = 0;
  508. virtual HRESULT STDMETHODCALLTYPE GetResourceBindingDesc(
  509. UINT index,
  510. D3D12_SHADER_INPUT_BIND_DESC *desc) = 0;
  511. virtual HRESULT STDMETHODCALLTYPE GetInputParameterDesc(
  512. UINT index,
  513. D3D12_SIGNATURE_PARAMETER_DESC *desc) = 0;
  514. virtual HRESULT STDMETHODCALLTYPE GetOutputParameterDesc(
  515. UINT index,
  516. D3D12_SIGNATURE_PARAMETER_DESC *desc) = 0;
  517. virtual HRESULT STDMETHODCALLTYPE GetPatchConstantParameterDesc(
  518. UINT index,
  519. D3D12_SIGNATURE_PARAMETER_DESC *desc) = 0;
  520. virtual ID3D12ShaderReflectionVariable * STDMETHODCALLTYPE GetVariableByName(
  521. const char *name) = 0;
  522. virtual HRESULT STDMETHODCALLTYPE GetResourceBindingDescByName(
  523. const char *name,
  524. D3D12_SHADER_INPUT_BIND_DESC *desc) = 0;
  525. virtual UINT STDMETHODCALLTYPE GetMovInstructionCount(
  526. ) = 0;
  527. virtual UINT STDMETHODCALLTYPE GetMovcInstructionCount(
  528. ) = 0;
  529. virtual UINT STDMETHODCALLTYPE GetConversionInstructionCount(
  530. ) = 0;
  531. virtual UINT STDMETHODCALLTYPE GetBitwiseInstructionCount(
  532. ) = 0;
  533. virtual D3D_PRIMITIVE STDMETHODCALLTYPE GetGSInputPrimitive(
  534. ) = 0;
  535. virtual WINBOOL STDMETHODCALLTYPE IsSampleFrequencyShader(
  536. ) = 0;
  537. virtual UINT STDMETHODCALLTYPE GetNumInterfaceSlots(
  538. ) = 0;
  539. virtual HRESULT STDMETHODCALLTYPE GetMinFeatureLevel(
  540. D3D_FEATURE_LEVEL *level) = 0;
  541. virtual UINT STDMETHODCALLTYPE GetThreadGroupSize(
  542. UINT *sizex,
  543. UINT *sizey,
  544. UINT *sizez) = 0;
  545. virtual UINT64 STDMETHODCALLTYPE GetRequiresFlags(
  546. ) = 0;
  547. };
  548. #ifdef __CRT_UUID_DECL
  549. __CRT_UUID_DECL(ID3D12ShaderReflection, 0x5a58797d, 0xa72c, 0x478d, 0x8b,0xa2, 0xef,0xc6,0xb0,0xef,0xe8,0x8e)
  550. #endif
  551. #else
  552. typedef struct ID3D12ShaderReflectionVtbl {
  553. BEGIN_INTERFACE
  554. /*** IUnknown methods ***/
  555. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  556. ID3D12ShaderReflection *This,
  557. REFIID riid,
  558. void **ppvObject);
  559. ULONG (STDMETHODCALLTYPE *AddRef)(
  560. ID3D12ShaderReflection *This);
  561. ULONG (STDMETHODCALLTYPE *Release)(
  562. ID3D12ShaderReflection *This);
  563. /*** ID3D12ShaderReflection methods ***/
  564. HRESULT (STDMETHODCALLTYPE *GetDesc)(
  565. ID3D12ShaderReflection *This,
  566. D3D12_SHADER_DESC *desc);
  567. ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByIndex)(
  568. ID3D12ShaderReflection *This,
  569. UINT index);
  570. ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByName)(
  571. ID3D12ShaderReflection *This,
  572. const char *name);
  573. HRESULT (STDMETHODCALLTYPE *GetResourceBindingDesc)(
  574. ID3D12ShaderReflection *This,
  575. UINT index,
  576. D3D12_SHADER_INPUT_BIND_DESC *desc);
  577. HRESULT (STDMETHODCALLTYPE *GetInputParameterDesc)(
  578. ID3D12ShaderReflection *This,
  579. UINT index,
  580. D3D12_SIGNATURE_PARAMETER_DESC *desc);
  581. HRESULT (STDMETHODCALLTYPE *GetOutputParameterDesc)(
  582. ID3D12ShaderReflection *This,
  583. UINT index,
  584. D3D12_SIGNATURE_PARAMETER_DESC *desc);
  585. HRESULT (STDMETHODCALLTYPE *GetPatchConstantParameterDesc)(
  586. ID3D12ShaderReflection *This,
  587. UINT index,
  588. D3D12_SIGNATURE_PARAMETER_DESC *desc);
  589. ID3D12ShaderReflectionVariable * (STDMETHODCALLTYPE *GetVariableByName)(
  590. ID3D12ShaderReflection *This,
  591. const char *name);
  592. HRESULT (STDMETHODCALLTYPE *GetResourceBindingDescByName)(
  593. ID3D12ShaderReflection *This,
  594. const char *name,
  595. D3D12_SHADER_INPUT_BIND_DESC *desc);
  596. UINT (STDMETHODCALLTYPE *GetMovInstructionCount)(
  597. ID3D12ShaderReflection *This);
  598. UINT (STDMETHODCALLTYPE *GetMovcInstructionCount)(
  599. ID3D12ShaderReflection *This);
  600. UINT (STDMETHODCALLTYPE *GetConversionInstructionCount)(
  601. ID3D12ShaderReflection *This);
  602. UINT (STDMETHODCALLTYPE *GetBitwiseInstructionCount)(
  603. ID3D12ShaderReflection *This);
  604. D3D_PRIMITIVE (STDMETHODCALLTYPE *GetGSInputPrimitive)(
  605. ID3D12ShaderReflection *This);
  606. WINBOOL (STDMETHODCALLTYPE *IsSampleFrequencyShader)(
  607. ID3D12ShaderReflection *This);
  608. UINT (STDMETHODCALLTYPE *GetNumInterfaceSlots)(
  609. ID3D12ShaderReflection *This);
  610. HRESULT (STDMETHODCALLTYPE *GetMinFeatureLevel)(
  611. ID3D12ShaderReflection *This,
  612. D3D_FEATURE_LEVEL *level);
  613. UINT (STDMETHODCALLTYPE *GetThreadGroupSize)(
  614. ID3D12ShaderReflection *This,
  615. UINT *sizex,
  616. UINT *sizey,
  617. UINT *sizez);
  618. UINT64 (STDMETHODCALLTYPE *GetRequiresFlags)(
  619. ID3D12ShaderReflection *This);
  620. END_INTERFACE
  621. } ID3D12ShaderReflectionVtbl;
  622. interface ID3D12ShaderReflection {
  623. CONST_VTBL ID3D12ShaderReflectionVtbl* lpVtbl;
  624. };
  625. #ifdef COBJMACROS
  626. #ifndef WIDL_C_INLINE_WRAPPERS
  627. /*** IUnknown methods ***/
  628. #define ID3D12ShaderReflection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  629. #define ID3D12ShaderReflection_AddRef(This) (This)->lpVtbl->AddRef(This)
  630. #define ID3D12ShaderReflection_Release(This) (This)->lpVtbl->Release(This)
  631. /*** ID3D12ShaderReflection methods ***/
  632. #define ID3D12ShaderReflection_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
  633. #define ID3D12ShaderReflection_GetConstantBufferByIndex(This,index) (This)->lpVtbl->GetConstantBufferByIndex(This,index)
  634. #define ID3D12ShaderReflection_GetConstantBufferByName(This,name) (This)->lpVtbl->GetConstantBufferByName(This,name)
  635. #define ID3D12ShaderReflection_GetResourceBindingDesc(This,index,desc) (This)->lpVtbl->GetResourceBindingDesc(This,index,desc)
  636. #define ID3D12ShaderReflection_GetInputParameterDesc(This,index,desc) (This)->lpVtbl->GetInputParameterDesc(This,index,desc)
  637. #define ID3D12ShaderReflection_GetOutputParameterDesc(This,index,desc) (This)->lpVtbl->GetOutputParameterDesc(This,index,desc)
  638. #define ID3D12ShaderReflection_GetPatchConstantParameterDesc(This,index,desc) (This)->lpVtbl->GetPatchConstantParameterDesc(This,index,desc)
  639. #define ID3D12ShaderReflection_GetVariableByName(This,name) (This)->lpVtbl->GetVariableByName(This,name)
  640. #define ID3D12ShaderReflection_GetResourceBindingDescByName(This,name,desc) (This)->lpVtbl->GetResourceBindingDescByName(This,name,desc)
  641. #define ID3D12ShaderReflection_GetMovInstructionCount(This) (This)->lpVtbl->GetMovInstructionCount(This)
  642. #define ID3D12ShaderReflection_GetMovcInstructionCount(This) (This)->lpVtbl->GetMovcInstructionCount(This)
  643. #define ID3D12ShaderReflection_GetConversionInstructionCount(This) (This)->lpVtbl->GetConversionInstructionCount(This)
  644. #define ID3D12ShaderReflection_GetBitwiseInstructionCount(This) (This)->lpVtbl->GetBitwiseInstructionCount(This)
  645. #define ID3D12ShaderReflection_GetGSInputPrimitive(This) (This)->lpVtbl->GetGSInputPrimitive(This)
  646. #define ID3D12ShaderReflection_IsSampleFrequencyShader(This) (This)->lpVtbl->IsSampleFrequencyShader(This)
  647. #define ID3D12ShaderReflection_GetNumInterfaceSlots(This) (This)->lpVtbl->GetNumInterfaceSlots(This)
  648. #define ID3D12ShaderReflection_GetMinFeatureLevel(This,level) (This)->lpVtbl->GetMinFeatureLevel(This,level)
  649. #define ID3D12ShaderReflection_GetThreadGroupSize(This,sizex,sizey,sizez) (This)->lpVtbl->GetThreadGroupSize(This,sizex,sizey,sizez)
  650. #define ID3D12ShaderReflection_GetRequiresFlags(This) (This)->lpVtbl->GetRequiresFlags(This)
  651. #else
  652. /*** IUnknown methods ***/
  653. static FORCEINLINE HRESULT ID3D12ShaderReflection_QueryInterface(ID3D12ShaderReflection* This,REFIID riid,void **ppvObject) {
  654. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  655. }
  656. static FORCEINLINE ULONG ID3D12ShaderReflection_AddRef(ID3D12ShaderReflection* This) {
  657. return This->lpVtbl->AddRef(This);
  658. }
  659. static FORCEINLINE ULONG ID3D12ShaderReflection_Release(ID3D12ShaderReflection* This) {
  660. return This->lpVtbl->Release(This);
  661. }
  662. /*** ID3D12ShaderReflection methods ***/
  663. static FORCEINLINE HRESULT ID3D12ShaderReflection_GetDesc(ID3D12ShaderReflection* This,D3D12_SHADER_DESC *desc) {
  664. return This->lpVtbl->GetDesc(This,desc);
  665. }
  666. static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12ShaderReflection_GetConstantBufferByIndex(ID3D12ShaderReflection* This,UINT index) {
  667. return This->lpVtbl->GetConstantBufferByIndex(This,index);
  668. }
  669. static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12ShaderReflection_GetConstantBufferByName(ID3D12ShaderReflection* This,const char *name) {
  670. return This->lpVtbl->GetConstantBufferByName(This,name);
  671. }
  672. static FORCEINLINE HRESULT ID3D12ShaderReflection_GetResourceBindingDesc(ID3D12ShaderReflection* This,UINT index,D3D12_SHADER_INPUT_BIND_DESC *desc) {
  673. return This->lpVtbl->GetResourceBindingDesc(This,index,desc);
  674. }
  675. static FORCEINLINE HRESULT ID3D12ShaderReflection_GetInputParameterDesc(ID3D12ShaderReflection* This,UINT index,D3D12_SIGNATURE_PARAMETER_DESC *desc) {
  676. return This->lpVtbl->GetInputParameterDesc(This,index,desc);
  677. }
  678. static FORCEINLINE HRESULT ID3D12ShaderReflection_GetOutputParameterDesc(ID3D12ShaderReflection* This,UINT index,D3D12_SIGNATURE_PARAMETER_DESC *desc) {
  679. return This->lpVtbl->GetOutputParameterDesc(This,index,desc);
  680. }
  681. static FORCEINLINE HRESULT ID3D12ShaderReflection_GetPatchConstantParameterDesc(ID3D12ShaderReflection* This,UINT index,D3D12_SIGNATURE_PARAMETER_DESC *desc) {
  682. return This->lpVtbl->GetPatchConstantParameterDesc(This,index,desc);
  683. }
  684. static FORCEINLINE ID3D12ShaderReflectionVariable * ID3D12ShaderReflection_GetVariableByName(ID3D12ShaderReflection* This,const char *name) {
  685. return This->lpVtbl->GetVariableByName(This,name);
  686. }
  687. static FORCEINLINE HRESULT ID3D12ShaderReflection_GetResourceBindingDescByName(ID3D12ShaderReflection* This,const char *name,D3D12_SHADER_INPUT_BIND_DESC *desc) {
  688. return This->lpVtbl->GetResourceBindingDescByName(This,name,desc);
  689. }
  690. static FORCEINLINE UINT ID3D12ShaderReflection_GetMovInstructionCount(ID3D12ShaderReflection* This) {
  691. return This->lpVtbl->GetMovInstructionCount(This);
  692. }
  693. static FORCEINLINE UINT ID3D12ShaderReflection_GetMovcInstructionCount(ID3D12ShaderReflection* This) {
  694. return This->lpVtbl->GetMovcInstructionCount(This);
  695. }
  696. static FORCEINLINE UINT ID3D12ShaderReflection_GetConversionInstructionCount(ID3D12ShaderReflection* This) {
  697. return This->lpVtbl->GetConversionInstructionCount(This);
  698. }
  699. static FORCEINLINE UINT ID3D12ShaderReflection_GetBitwiseInstructionCount(ID3D12ShaderReflection* This) {
  700. return This->lpVtbl->GetBitwiseInstructionCount(This);
  701. }
  702. static FORCEINLINE D3D_PRIMITIVE ID3D12ShaderReflection_GetGSInputPrimitive(ID3D12ShaderReflection* This) {
  703. return This->lpVtbl->GetGSInputPrimitive(This);
  704. }
  705. static FORCEINLINE WINBOOL ID3D12ShaderReflection_IsSampleFrequencyShader(ID3D12ShaderReflection* This) {
  706. return This->lpVtbl->IsSampleFrequencyShader(This);
  707. }
  708. static FORCEINLINE UINT ID3D12ShaderReflection_GetNumInterfaceSlots(ID3D12ShaderReflection* This) {
  709. return This->lpVtbl->GetNumInterfaceSlots(This);
  710. }
  711. static FORCEINLINE HRESULT ID3D12ShaderReflection_GetMinFeatureLevel(ID3D12ShaderReflection* This,D3D_FEATURE_LEVEL *level) {
  712. return This->lpVtbl->GetMinFeatureLevel(This,level);
  713. }
  714. static FORCEINLINE UINT ID3D12ShaderReflection_GetThreadGroupSize(ID3D12ShaderReflection* This,UINT *sizex,UINT *sizey,UINT *sizez) {
  715. return This->lpVtbl->GetThreadGroupSize(This,sizex,sizey,sizez);
  716. }
  717. static FORCEINLINE UINT64 ID3D12ShaderReflection_GetRequiresFlags(ID3D12ShaderReflection* This) {
  718. return This->lpVtbl->GetRequiresFlags(This);
  719. }
  720. #endif
  721. #endif
  722. #endif
  723. #endif /* __ID3D12ShaderReflection_INTERFACE_DEFINED__ */
  724. /*****************************************************************************
  725. * ID3D12FunctionParameterReflection interface
  726. */
  727. #ifndef __ID3D12FunctionParameterReflection_INTERFACE_DEFINED__
  728. #define __ID3D12FunctionParameterReflection_INTERFACE_DEFINED__
  729. DEFINE_GUID(IID_ID3D12FunctionParameterReflection, 0xec25f42d, 0x7006, 0x4f2b, 0xb3,0x3e, 0x02,0xcc,0x33,0x75,0x73,0x3f);
  730. #if defined(__cplusplus) && !defined(CINTERFACE)
  731. MIDL_INTERFACE("ec25f42d-7006-4f2b-b33e-02cc3375733f")
  732. ID3D12FunctionParameterReflection
  733. {
  734. BEGIN_INTERFACE
  735. virtual HRESULT STDMETHODCALLTYPE GetDesc(
  736. D3D12_PARAMETER_DESC *desc) = 0;
  737. END_INTERFACE
  738. };
  739. #ifdef __CRT_UUID_DECL
  740. __CRT_UUID_DECL(ID3D12FunctionParameterReflection, 0xec25f42d, 0x7006, 0x4f2b, 0xb3,0x3e, 0x02,0xcc,0x33,0x75,0x73,0x3f)
  741. #endif
  742. #else
  743. typedef struct ID3D12FunctionParameterReflectionVtbl {
  744. BEGIN_INTERFACE
  745. /*** ID3D12FunctionParameterReflection methods ***/
  746. HRESULT (STDMETHODCALLTYPE *GetDesc)(
  747. ID3D12FunctionParameterReflection *This,
  748. D3D12_PARAMETER_DESC *desc);
  749. END_INTERFACE
  750. } ID3D12FunctionParameterReflectionVtbl;
  751. interface ID3D12FunctionParameterReflection {
  752. CONST_VTBL ID3D12FunctionParameterReflectionVtbl* lpVtbl;
  753. };
  754. #ifdef COBJMACROS
  755. #ifndef WIDL_C_INLINE_WRAPPERS
  756. /*** ID3D12FunctionParameterReflection methods ***/
  757. #define ID3D12FunctionParameterReflection_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
  758. #else
  759. /*** ID3D12FunctionParameterReflection methods ***/
  760. static FORCEINLINE HRESULT ID3D12FunctionParameterReflection_GetDesc(ID3D12FunctionParameterReflection* This,D3D12_PARAMETER_DESC *desc) {
  761. return This->lpVtbl->GetDesc(This,desc);
  762. }
  763. #endif
  764. #endif
  765. #endif
  766. #endif /* __ID3D12FunctionParameterReflection_INTERFACE_DEFINED__ */
  767. /*****************************************************************************
  768. * ID3D12FunctionReflection interface
  769. */
  770. #ifndef __ID3D12FunctionReflection_INTERFACE_DEFINED__
  771. #define __ID3D12FunctionReflection_INTERFACE_DEFINED__
  772. DEFINE_GUID(IID_ID3D12FunctionReflection, 0x1108795c, 0x2772, 0x4ba9, 0xb2,0xa8, 0xd4,0x64,0xdc,0x7e,0x27,0x99);
  773. #if defined(__cplusplus) && !defined(CINTERFACE)
  774. MIDL_INTERFACE("1108795c-2772-4ba9-b2a8-d464dc7e2799")
  775. ID3D12FunctionReflection
  776. {
  777. BEGIN_INTERFACE
  778. virtual HRESULT STDMETHODCALLTYPE GetDesc(
  779. D3D12_FUNCTION_DESC *desc) = 0;
  780. virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetConstantBufferByIndex(
  781. UINT index) = 0;
  782. virtual ID3D12ShaderReflectionConstantBuffer * STDMETHODCALLTYPE GetConstantBufferByName(
  783. const char *name) = 0;
  784. virtual HRESULT STDMETHODCALLTYPE GetResourceBindingDesc(
  785. UINT index,
  786. D3D12_SHADER_INPUT_BIND_DESC *desc) = 0;
  787. virtual ID3D12ShaderReflectionVariable * STDMETHODCALLTYPE GetVariableByName(
  788. const char *name) = 0;
  789. virtual HRESULT STDMETHODCALLTYPE GetResourceBindingDescByName(
  790. const char *name,
  791. D3D12_SHADER_INPUT_BIND_DESC *desc) = 0;
  792. virtual ID3D12FunctionParameterReflection * STDMETHODCALLTYPE GetFunctionParameter(
  793. INT index) = 0;
  794. END_INTERFACE
  795. };
  796. #ifdef __CRT_UUID_DECL
  797. __CRT_UUID_DECL(ID3D12FunctionReflection, 0x1108795c, 0x2772, 0x4ba9, 0xb2,0xa8, 0xd4,0x64,0xdc,0x7e,0x27,0x99)
  798. #endif
  799. #else
  800. typedef struct ID3D12FunctionReflectionVtbl {
  801. BEGIN_INTERFACE
  802. /*** ID3D12FunctionReflection methods ***/
  803. HRESULT (STDMETHODCALLTYPE *GetDesc)(
  804. ID3D12FunctionReflection *This,
  805. D3D12_FUNCTION_DESC *desc);
  806. ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByIndex)(
  807. ID3D12FunctionReflection *This,
  808. UINT index);
  809. ID3D12ShaderReflectionConstantBuffer * (STDMETHODCALLTYPE *GetConstantBufferByName)(
  810. ID3D12FunctionReflection *This,
  811. const char *name);
  812. HRESULT (STDMETHODCALLTYPE *GetResourceBindingDesc)(
  813. ID3D12FunctionReflection *This,
  814. UINT index,
  815. D3D12_SHADER_INPUT_BIND_DESC *desc);
  816. ID3D12ShaderReflectionVariable * (STDMETHODCALLTYPE *GetVariableByName)(
  817. ID3D12FunctionReflection *This,
  818. const char *name);
  819. HRESULT (STDMETHODCALLTYPE *GetResourceBindingDescByName)(
  820. ID3D12FunctionReflection *This,
  821. const char *name,
  822. D3D12_SHADER_INPUT_BIND_DESC *desc);
  823. ID3D12FunctionParameterReflection * (STDMETHODCALLTYPE *GetFunctionParameter)(
  824. ID3D12FunctionReflection *This,
  825. INT index);
  826. END_INTERFACE
  827. } ID3D12FunctionReflectionVtbl;
  828. interface ID3D12FunctionReflection {
  829. CONST_VTBL ID3D12FunctionReflectionVtbl* lpVtbl;
  830. };
  831. #ifdef COBJMACROS
  832. #ifndef WIDL_C_INLINE_WRAPPERS
  833. /*** ID3D12FunctionReflection methods ***/
  834. #define ID3D12FunctionReflection_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
  835. #define ID3D12FunctionReflection_GetConstantBufferByIndex(This,index) (This)->lpVtbl->GetConstantBufferByIndex(This,index)
  836. #define ID3D12FunctionReflection_GetConstantBufferByName(This,name) (This)->lpVtbl->GetConstantBufferByName(This,name)
  837. #define ID3D12FunctionReflection_GetResourceBindingDesc(This,index,desc) (This)->lpVtbl->GetResourceBindingDesc(This,index,desc)
  838. #define ID3D12FunctionReflection_GetVariableByName(This,name) (This)->lpVtbl->GetVariableByName(This,name)
  839. #define ID3D12FunctionReflection_GetResourceBindingDescByName(This,name,desc) (This)->lpVtbl->GetResourceBindingDescByName(This,name,desc)
  840. #define ID3D12FunctionReflection_GetFunctionParameter(This,index) (This)->lpVtbl->GetFunctionParameter(This,index)
  841. #else
  842. /*** ID3D12FunctionReflection methods ***/
  843. static FORCEINLINE HRESULT ID3D12FunctionReflection_GetDesc(ID3D12FunctionReflection* This,D3D12_FUNCTION_DESC *desc) {
  844. return This->lpVtbl->GetDesc(This,desc);
  845. }
  846. static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12FunctionReflection_GetConstantBufferByIndex(ID3D12FunctionReflection* This,UINT index) {
  847. return This->lpVtbl->GetConstantBufferByIndex(This,index);
  848. }
  849. static FORCEINLINE ID3D12ShaderReflectionConstantBuffer * ID3D12FunctionReflection_GetConstantBufferByName(ID3D12FunctionReflection* This,const char *name) {
  850. return This->lpVtbl->GetConstantBufferByName(This,name);
  851. }
  852. static FORCEINLINE HRESULT ID3D12FunctionReflection_GetResourceBindingDesc(ID3D12FunctionReflection* This,UINT index,D3D12_SHADER_INPUT_BIND_DESC *desc) {
  853. return This->lpVtbl->GetResourceBindingDesc(This,index,desc);
  854. }
  855. static FORCEINLINE ID3D12ShaderReflectionVariable * ID3D12FunctionReflection_GetVariableByName(ID3D12FunctionReflection* This,const char *name) {
  856. return This->lpVtbl->GetVariableByName(This,name);
  857. }
  858. static FORCEINLINE HRESULT ID3D12FunctionReflection_GetResourceBindingDescByName(ID3D12FunctionReflection* This,const char *name,D3D12_SHADER_INPUT_BIND_DESC *desc) {
  859. return This->lpVtbl->GetResourceBindingDescByName(This,name,desc);
  860. }
  861. static FORCEINLINE ID3D12FunctionParameterReflection * ID3D12FunctionReflection_GetFunctionParameter(ID3D12FunctionReflection* This,INT index) {
  862. return This->lpVtbl->GetFunctionParameter(This,index);
  863. }
  864. #endif
  865. #endif
  866. #endif
  867. #endif /* __ID3D12FunctionReflection_INTERFACE_DEFINED__ */
  868. /*****************************************************************************
  869. * ID3D12LibraryReflection interface
  870. */
  871. #ifndef __ID3D12LibraryReflection_INTERFACE_DEFINED__
  872. #define __ID3D12LibraryReflection_INTERFACE_DEFINED__
  873. DEFINE_GUID(IID_ID3D12LibraryReflection, 0x8e349d19, 0x54db, 0x4a56, 0x9d,0xc9, 0x11,0x9d,0x87,0xbd,0xb8,0x04);
  874. #if defined(__cplusplus) && !defined(CINTERFACE)
  875. MIDL_INTERFACE("8e349d19-54db-4a56-9dc9-119d87bdb804")
  876. ID3D12LibraryReflection : public IUnknown
  877. {
  878. virtual HRESULT STDMETHODCALLTYPE GetDesc(
  879. D3D12_LIBRARY_DESC *desc) = 0;
  880. virtual ID3D12FunctionReflection * STDMETHODCALLTYPE GetFunctionByIndex(
  881. INT index) = 0;
  882. };
  883. #ifdef __CRT_UUID_DECL
  884. __CRT_UUID_DECL(ID3D12LibraryReflection, 0x8e349d19, 0x54db, 0x4a56, 0x9d,0xc9, 0x11,0x9d,0x87,0xbd,0xb8,0x04)
  885. #endif
  886. #else
  887. typedef struct ID3D12LibraryReflectionVtbl {
  888. BEGIN_INTERFACE
  889. /*** IUnknown methods ***/
  890. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  891. ID3D12LibraryReflection *This,
  892. REFIID riid,
  893. void **ppvObject);
  894. ULONG (STDMETHODCALLTYPE *AddRef)(
  895. ID3D12LibraryReflection *This);
  896. ULONG (STDMETHODCALLTYPE *Release)(
  897. ID3D12LibraryReflection *This);
  898. /*** ID3D12LibraryReflection methods ***/
  899. HRESULT (STDMETHODCALLTYPE *GetDesc)(
  900. ID3D12LibraryReflection *This,
  901. D3D12_LIBRARY_DESC *desc);
  902. ID3D12FunctionReflection * (STDMETHODCALLTYPE *GetFunctionByIndex)(
  903. ID3D12LibraryReflection *This,
  904. INT index);
  905. END_INTERFACE
  906. } ID3D12LibraryReflectionVtbl;
  907. interface ID3D12LibraryReflection {
  908. CONST_VTBL ID3D12LibraryReflectionVtbl* lpVtbl;
  909. };
  910. #ifdef COBJMACROS
  911. #ifndef WIDL_C_INLINE_WRAPPERS
  912. /*** IUnknown methods ***/
  913. #define ID3D12LibraryReflection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  914. #define ID3D12LibraryReflection_AddRef(This) (This)->lpVtbl->AddRef(This)
  915. #define ID3D12LibraryReflection_Release(This) (This)->lpVtbl->Release(This)
  916. /*** ID3D12LibraryReflection methods ***/
  917. #define ID3D12LibraryReflection_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
  918. #define ID3D12LibraryReflection_GetFunctionByIndex(This,index) (This)->lpVtbl->GetFunctionByIndex(This,index)
  919. #else
  920. /*** IUnknown methods ***/
  921. static FORCEINLINE HRESULT ID3D12LibraryReflection_QueryInterface(ID3D12LibraryReflection* This,REFIID riid,void **ppvObject) {
  922. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  923. }
  924. static FORCEINLINE ULONG ID3D12LibraryReflection_AddRef(ID3D12LibraryReflection* This) {
  925. return This->lpVtbl->AddRef(This);
  926. }
  927. static FORCEINLINE ULONG ID3D12LibraryReflection_Release(ID3D12LibraryReflection* This) {
  928. return This->lpVtbl->Release(This);
  929. }
  930. /*** ID3D12LibraryReflection methods ***/
  931. static FORCEINLINE HRESULT ID3D12LibraryReflection_GetDesc(ID3D12LibraryReflection* This,D3D12_LIBRARY_DESC *desc) {
  932. return This->lpVtbl->GetDesc(This,desc);
  933. }
  934. static FORCEINLINE ID3D12FunctionReflection * ID3D12LibraryReflection_GetFunctionByIndex(ID3D12LibraryReflection* This,INT index) {
  935. return This->lpVtbl->GetFunctionByIndex(This,index);
  936. }
  937. #endif
  938. #endif
  939. #endif
  940. #endif /* __ID3D12LibraryReflection_INTERFACE_DEFINED__ */
  941. /* Begin additional prototypes for all interfaces */
  942. /* End additional prototypes */
  943. #ifdef __cplusplus
  944. }
  945. #endif
  946. #endif /* __d3d12shader_h__ */