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