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