summaryrefslogtreecommitdiff
path: root/vendor/winapi/src/um/d3d11shader.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/winapi/src/um/d3d11shader.rs')
-rw-r--r--vendor/winapi/src/um/d3d11shader.rs477
1 files changed, 477 insertions, 0 deletions
diff --git a/vendor/winapi/src/um/d3d11shader.rs b/vendor/winapi/src/um/d3d11shader.rs
new file mode 100644
index 0000000..ebe06b4
--- /dev/null
+++ b/vendor/winapi/src/um/d3d11shader.rs
@@ -0,0 +1,477 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use ctypes::c_int;
+use shared::basetsd::UINT64;
+use shared::minwindef::{BOOL, BYTE, INT, LPVOID, UINT};
+use um::d3dcommon::{
+ D3D_CBUFFER_TYPE, D3D_FEATURE_LEVEL, D3D_INTERPOLATION_MODE, D3D_MIN_PRECISION, D3D_NAME,
+ D3D_PARAMETER_FLAGS, D3D_PRIMITIVE, D3D_PRIMITIVE_TOPOLOGY, D3D_REGISTER_COMPONENT_TYPE,
+ D3D_RESOURCE_RETURN_TYPE, D3D_SHADER_INPUT_TYPE, D3D_SHADER_VARIABLE_CLASS,
+ D3D_SHADER_VARIABLE_TYPE, D3D_SRV_DIMENSION, D3D_TESSELLATOR_DOMAIN,
+ D3D_TESSELLATOR_OUTPUT_PRIMITIVE, D3D_TESSELLATOR_PARTITIONING, ID3DBlob,
+};
+use um::unknwnbase::{IUnknown, IUnknownVtbl};
+use um::winnt::{HRESULT, LPCSTR};
+ENUM!{enum D3D11_SHADER_VERSION_TYPE {
+ D3D11_SHVER_PIXEL_SHADER = 0,
+ D3D11_SHVER_VERTEX_SHADER = 1,
+ D3D11_SHVER_GEOMETRY_SHADER = 2,
+ D3D11_SHVER_HULL_SHADER = 3,
+ D3D11_SHVER_DOMAIN_SHADER = 4,
+ D3D11_SHVER_COMPUTE_SHADER = 5,
+ D3D11_SHVER_RESERVED0 = 0xFFF0,
+}}
+pub const D3D_RETURN_PARAMETER_INDEX: c_int = -1;
+pub type D3D11_RESOURCE_RETURN_TYPE = D3D_RESOURCE_RETURN_TYPE;
+pub type D3D11_CBUFFER_TYPE = D3D_CBUFFER_TYPE;
+STRUCT!{struct D3D11_SIGNATURE_PARAMETER_DESC {
+ SemanticName: LPCSTR,
+ SemanticIndex: UINT,
+ Register: UINT,
+ SystemValueType: D3D_NAME,
+ ComponentType: D3D_REGISTER_COMPONENT_TYPE,
+ Mask: BYTE,
+ ReadWriteMask: BYTE,
+ Stream: UINT,
+ MinPrecision: D3D_MIN_PRECISION,
+}}
+STRUCT!{struct D3D11_SHADER_BUFFER_DESC {
+ Name: LPCSTR,
+ Type: D3D_CBUFFER_TYPE,
+ Variables: UINT,
+ Size: UINT,
+ uFlags: UINT,
+}}
+STRUCT!{struct D3D11_SHADER_VARIABLE_DESC {
+ Name: LPCSTR,
+ StartOffset: UINT,
+ Size: UINT,
+ uFlags: UINT,
+ DefaultValue: LPVOID,
+ StartTexture: UINT,
+ TextureSize: UINT,
+ StartSampler: UINT,
+ SamplerSize: UINT,
+}}
+STRUCT!{struct D3D11_SHADER_TYPE_DESC {
+ Class: D3D_SHADER_VARIABLE_CLASS,
+ Type: D3D_SHADER_VARIABLE_TYPE,
+ Rows: UINT,
+ Columns: UINT,
+ Elements: UINT,
+ Members: UINT,
+ Offset: UINT,
+ Name: LPCSTR,
+}}
+pub type D3D11_TESSELLATOR_DOMAIN = D3D_TESSELLATOR_DOMAIN;
+pub type D3D11_TESSELLATOR_PARTITIONING = D3D_TESSELLATOR_PARTITIONING;
+pub type D3D11_TESSELLATOR_OUTPUT_PRIMITIVE = D3D_TESSELLATOR_OUTPUT_PRIMITIVE;
+STRUCT!{struct D3D11_SHADER_DESC {
+ Version: UINT,
+ Creator: LPCSTR,
+ Flags: UINT,
+ ConstantBuffers: UINT,
+ BoundResources: UINT,
+ InputParameters: UINT,
+ OutputParameters: UINT,
+ InstructionCount: UINT,
+ TempRegisterCount: UINT,
+ TempArrayCount: UINT,
+ DefCount: UINT,
+ DclCount: UINT,
+ TextureNormalInstructions: UINT,
+ TextureLoadInstructions: UINT,
+ TextureCompInstructions: UINT,
+ TextureBiasInstructions: UINT,
+ TextureGradientInstructions: UINT,
+ FloatInstructionCount: UINT,
+ IntInstructionCount: UINT,
+ UintInstructionCount: UINT,
+ StaticFlowControlCount: UINT,
+ DynamicFlowControlCount: UINT,
+ MacroInstructionCount: UINT,
+ ArrayInstructionCount: UINT,
+ CutInstructionCount: UINT,
+ EmitInstructionCount: UINT,
+ GSOutputTopology: D3D_PRIMITIVE_TOPOLOGY,
+ GSMaxOutputVertexCount: UINT,
+ InputPrimitive: D3D_PRIMITIVE,
+ PatchConstantParameters: UINT,
+ cGSInstanceCount: UINT,
+ cControlPoints: UINT,
+ HSOutputPrimitive: D3D_TESSELLATOR_OUTPUT_PRIMITIVE,
+ HSPartitioning: D3D_TESSELLATOR_PARTITIONING,
+ TessellatorDomain: D3D_TESSELLATOR_DOMAIN,
+ cBarrierInstructions: UINT,
+ cInterlockedInstructions: UINT,
+ cTextureStoreInstructions: UINT,
+}}
+STRUCT!{struct D3D11_SHADER_INPUT_BIND_DESC {
+ Name: LPCSTR,
+ Type: D3D_SHADER_INPUT_TYPE,
+ BindPoint: UINT,
+ BindCount: UINT,
+ uFlags: UINT,
+ ReturnType: D3D_RESOURCE_RETURN_TYPE,
+ Dimension: D3D_SRV_DIMENSION,
+ NumSamples: UINT,
+}}
+pub const D3D_SHADER_REQUIRES_DOUBLES: UINT64 = 0x00000001;
+pub const D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL: UINT64 = 0x00000002;
+pub const D3D_SHADER_REQUIRES_UAVS_AT_EVERY_STAGE: UINT64 = 0x00000004;
+pub const D3D_SHADER_REQUIRES_64_UAVS: UINT64 = 0x00000008;
+pub const D3D_SHADER_REQUIRES_MINIMUM_PRECISION: UINT64 = 0x00000010;
+pub const D3D_SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS: UINT64 = 0x00000020;
+pub const D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS: UINT64 = 0x00000040;
+pub const D3D_SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING: UINT64 = 0x00000080;
+pub const D3D_SHADER_REQUIRES_TILED_RESOURCES: UINT64 = 0x00000100;
+STRUCT!{struct D3D11_LIBRARY_DESC {
+ Creator: LPCSTR,
+ Flags: UINT,
+ FunctionCount: UINT,
+}}
+STRUCT!{struct D3D11_FUNCTION_DESC {
+ Version: UINT,
+ Creator: LPCSTR,
+ Flags: UINT,
+ ConstantBuffers: UINT,
+ BoundResources: UINT,
+ InstructionCount: UINT,
+ TempRegisterCount: UINT,
+ TempArrayCount: UINT,
+ DefCount: UINT,
+ DclCount: UINT,
+ TextureNormalInstructions: UINT,
+ TextureLoadInstructions: UINT,
+ TextureCompInstructions: UINT,
+ TextureBiasInstructions: UINT,
+ TextureGradientInstructions: UINT,
+ FloatInstructionCount: UINT,
+ IntInstructionCount: UINT,
+ UintInstructionCount: UINT,
+ StaticFlowControlCount: UINT,
+ DynamicFlowControlCount: UINT,
+ MacroInstructionCount: UINT,
+ ArrayInstructionCount: UINT,
+ MovInstructionCount: UINT,
+ MovcInstructionCount: UINT,
+ ConversionInstructionCount: UINT,
+ BitwiseInstructionCount: UINT,
+ MinFeatureLevel: D3D_FEATURE_LEVEL,
+ RequiredFeatureFlags: UINT64,
+ Name: LPCSTR,
+ FunctionParameterCount: INT,
+ HasReturn: BOOL,
+ Has10Level9VertexShader: BOOL,
+ Has10Level9PixelShader: BOOL,
+}}
+STRUCT!{struct D3D11_PARAMETER_DESC {
+ Name: LPCSTR,
+ SemanticName: LPCSTR,
+ Type: D3D_SHADER_VARIABLE_TYPE,
+ Class: D3D_SHADER_VARIABLE_CLASS,
+ Rows: UINT,
+ Columns: UINT,
+ InterpolationMode: D3D_INTERPOLATION_MODE,
+ Flags: D3D_PARAMETER_FLAGS,
+ FirstInRegister: UINT,
+ FirstInComponent: UINT,
+ FirstOutRegister: UINT,
+ FirstOutComponent: UINT,
+}}
+DEFINE_GUID!{IID_ID3D11ShaderReflectionType,
+ 0x6e6ffa6a, 0x9bae, 0x4613, 0xa5, 0x1e, 0x91, 0x65, 0x2d, 0x50, 0x8c, 0x21}
+RIDL!{#[uuid(0x6e6ffa6a, 0x9bae, 0x4613, 0xa5, 0x1e, 0x91, 0x65, 0x2d, 0x50, 0x8c, 0x21)]
+interface ID3D11ShaderReflectionType(ID3D11ShaderReflectionTypeVtbl) {
+ fn GetDesc(
+ pDesc: *mut D3D11_SHADER_TYPE_DESC,
+ ) -> HRESULT,
+ fn GetMemberTypeByIndex(
+ Index: UINT,
+ ) -> *mut ID3D11ShaderReflectionType,
+ fn GetMemberTypeByName(
+ Name: LPCSTR,
+ ) -> *mut ID3D11ShaderReflectionType,
+ fn GetMemberTypeName(
+ Index: UINT,
+ ) -> LPCSTR,
+ fn IsEqual(
+ pType: *mut ID3D11ShaderReflectionType,
+ ) -> HRESULT,
+ fn GetSubType() -> *mut ID3D11ShaderReflectionType,
+ fn GetBaseClass() -> *mut ID3D11ShaderReflectionType,
+ fn GetNumInterfaces() -> UINT,
+ fn GetInterfaceByIndex(
+ uIndex: UINT,
+ ) -> *mut ID3D11ShaderReflectionType,
+ fn IsOfType(
+ pType: *mut ID3D11ShaderReflectionType,
+ ) -> HRESULT,
+ fn ImplementsInterface(
+ pBase: *mut ID3D11ShaderReflectionType,
+ ) -> HRESULT,
+}}
+DEFINE_GUID!{IID_ID3D11ShaderReflectionVariable,
+ 0x51f23923, 0xf3e5, 0x4bd1, 0x91, 0xcb, 0x60, 0x61, 0x77, 0xd8, 0xdb, 0x4c}
+RIDL!{#[uuid(0x51f23923, 0xf3e5, 0x4bd1, 0x91, 0xcb, 0x60, 0x61, 0x77, 0xd8, 0xdb, 0x4c)]
+interface ID3D11ShaderReflectionVariable(ID3D11ShaderReflectionVariableVtbl) {
+ fn GetDesc(
+ pDesc: *mut D3D11_SHADER_VARIABLE_DESC,
+ ) -> HRESULT,
+ fn GetType() -> *mut ID3D11ShaderReflectionType,
+ fn GetBuffer() -> *mut ID3D11ShaderReflectionConstantBuffer,
+ fn GetInterfaceSlot(
+ uArrayIndex: UINT,
+ ) -> UINT,
+}}
+DEFINE_GUID!{IID_ID3D11ShaderReflectionConstantBuffer,
+ 0xeb62d63d, 0x93dd, 0x4318, 0x8a, 0xe8, 0xc6, 0xf8, 0x3a, 0xd3, 0x71, 0xb8}
+RIDL!{#[uuid(0xeb62d63d, 0x93dd, 0x4318, 0x8a, 0xe8, 0xc6, 0xf8, 0x3a, 0xd3, 0x71, 0xb8)]
+interface ID3D11ShaderReflectionConstantBuffer(ID3D11ShaderReflectionConstantBufferVtbl) {
+ fn GetDesc(
+ pDesc: *mut D3D11_SHADER_BUFFER_DESC,
+ ) -> HRESULT,
+ fn GetVariableByIndex(
+ Index: UINT,
+ ) -> *mut ID3D11ShaderReflectionVariable,
+ fn GetVariableByName(
+ Name: LPCSTR,
+ ) -> *mut ID3D11ShaderReflectionVariable,
+}}
+DEFINE_GUID!{IID_ID3D11ShaderReflection,
+ 0x8d536ca1, 0x0cca, 0x4956, 0xa8, 0x37, 0x78, 0x69, 0x63, 0x75, 0x55, 0x84}
+RIDL!{#[uuid(0x8d536ca1, 0x0cca, 0x4956, 0xa8, 0x37, 0x78, 0x69, 0x63, 0x75, 0x55, 0x84)]
+interface ID3D11ShaderReflection(ID3D11ShaderReflectionVtbl): IUnknown(IUnknownVtbl) {
+ fn GetDesc(
+ pDesc: *mut D3D11_SHADER_DESC,
+ ) -> HRESULT,
+ fn GetConstantBufferByIndex(
+ Index: UINT,
+ ) -> *mut ID3D11ShaderReflectionConstantBuffer,
+ fn GetConstantBufferByName(
+ Name: LPCSTR,
+ ) -> *mut ID3D11ShaderReflectionConstantBuffer,
+ fn GetResourceBindingDesc(
+ ResourceIndex: UINT,
+ pDesc: *mut D3D11_SHADER_INPUT_BIND_DESC,
+ ) -> HRESULT,
+ fn GetInputParameterDesc(
+ ParameterIndex: UINT,
+ pDesc: *mut D3D11_SIGNATURE_PARAMETER_DESC,
+ ) -> HRESULT,
+ fn GetOutputParameterDesc(
+ ParameterIndex: UINT,
+ pDesc: *mut D3D11_SIGNATURE_PARAMETER_DESC,
+ ) -> HRESULT,
+ fn GetPatchConstantParameterDesc(
+ ParameterIndex: UINT,
+ pDesc: *mut D3D11_SIGNATURE_PARAMETER_DESC,
+ ) -> HRESULT,
+ fn GetVariableByName(
+ Name: LPCSTR,
+ ) -> *mut ID3D11ShaderReflectionVariable,
+ fn GetResourceBindingDescByName(
+ Name: LPCSTR,
+ pDesc: *mut D3D11_SHADER_INPUT_BIND_DESC,
+ ) -> HRESULT,
+ fn GetMovInstructionCount() -> UINT,
+ fn GetMovcInstructionCount() -> UINT,
+ fn GetConversionInstructionCount() -> UINT,
+ fn GetBitwiseInstructionCount() -> UINT,
+ fn GetGSInputPrimitive() -> D3D_PRIMITIVE,
+ fn IsSampleFrequencyShader() -> BOOL,
+ fn GetNumInterfaceSlots() -> UINT,
+ fn GetMinFeatureLevel(
+ pLevel: *mut D3D_FEATURE_LEVEL,
+ ) -> HRESULT,
+ fn GetThreadGroupSize(
+ pSizeX: *mut UINT,
+ pSizeY: *mut UINT,
+ pSizeZ: *mut UINT,
+ ) -> UINT,
+ fn GetRequiresFlags() -> UINT64,
+}}
+DEFINE_GUID!{IID_ID3D11LibraryReflection,
+ 0x54384f1b, 0x5b3e, 0x4bb7, 0xae, 0x01, 0x60, 0xba, 0x30, 0x97, 0xcb, 0xb6}
+RIDL!{#[uuid(0x54384f1b, 0x5b3e, 0x4bb7, 0xae, 0x01, 0x60, 0xba, 0x30, 0x97, 0xcb, 0xb6)]
+interface ID3D11LibraryReflection(ID3D11LibraryReflectionVtbl): IUnknown(IUnknownVtbl) {
+ fn GetDesc(
+ pDesc: *mut D3D11_LIBRARY_DESC,
+ ) -> HRESULT,
+ fn GetFunctionByIndex(
+ FunctionIndex: INT,
+ ) -> *mut ID3D11FunctionReflection,
+}}
+DEFINE_GUID!{IID_ID3D11FunctionReflection,
+ 0x207bcecb, 0xd683, 0x4a06, 0xa8, 0xa3, 0x9b, 0x14, 0x9b, 0x9f, 0x73, 0xa4}
+RIDL!{#[uuid(0x207bcecb, 0xd683, 0x4a06, 0xa8, 0xa3, 0x9b, 0x14, 0x9b, 0x9f, 0x73, 0xa4)]
+interface ID3D11FunctionReflection(ID3D11FunctionReflectionVtbl) {
+ fn GetDesc(
+ pDesc: *mut D3D11_FUNCTION_DESC,
+ ) -> HRESULT,
+ fn GetConstantBufferByIndex(
+ BufferIndex: UINT,
+ ) -> *mut ID3D11ShaderReflectionConstantBuffer,
+ fn GetConstantBufferByName(
+ Name: LPCSTR,
+ ) -> *mut ID3D11ShaderReflectionConstantBuffer,
+ fn GetResourceBindingDesc(
+ ResourceIndex: UINT,
+ pDesc: *mut D3D11_SHADER_INPUT_BIND_DESC,
+ ) -> HRESULT,
+ fn GetVariableByName(
+ Name: LPCSTR,
+ ) -> *mut ID3D11ShaderReflectionVariable,
+ fn GetResourceBindingDescByName(
+ Name: LPCSTR,
+ pDesc: *mut D3D11_SHADER_INPUT_BIND_DESC,
+ ) -> HRESULT,
+ fn GetFunctionParameter(
+ ParameterIndex: INT,
+ ) -> *mut ID3D11FunctionParameterReflection,
+}}
+DEFINE_GUID!{IID_ID3D11FunctionParameterReflection,
+ 0x42757488, 0x334f, 0x47fe, 0x98, 0x2e, 0x1a, 0x65, 0xd0, 0x8c, 0xc4, 0x62}
+RIDL!{#[uuid(0x42757488, 0x334f, 0x47fe, 0x98, 0x2e, 0x1a, 0x65, 0xd0, 0x8c, 0xc4, 0x62)]
+interface ID3D11FunctionParameterReflection(ID3D11FunctionParameterReflectionVtbl) {
+ fn GetDesc(
+ pDesc: *mut D3D11_PARAMETER_DESC,
+ ) -> HRESULT,
+}}
+DEFINE_GUID!{IID_ID3D11Module,
+ 0xcac701ee, 0x80fc, 0x4122, 0x82, 0x42, 0x10, 0xb3, 0x9c, 0x8c, 0xec, 0x34}
+RIDL!{#[uuid(0xcac701ee, 0x80fc, 0x4122, 0x82, 0x42, 0x10, 0xb3, 0x9c, 0x8c, 0xec, 0x34)]
+interface ID3D11Module(ID3D11ModuleVtbl): IUnknown(IUnknownVtbl) {
+ fn CreateInstance(
+ pNamespace: LPCSTR,
+ ppModuleInstance: *mut *mut ID3D11ModuleInstance,
+ ) -> HRESULT,
+}}
+DEFINE_GUID!{IID_ID3D11ModuleInstance,
+ 0x469e07f7, 0x045a, 0x48d5, 0xaa, 0x12, 0x68, 0xa4, 0x78, 0xcd, 0xf7, 0x5d}
+RIDL!{#[uuid(0x469e07f7, 0x045a, 0x48d5, 0xaa, 0x12, 0x68, 0xa4, 0x78, 0xcd, 0xf7, 0x5d)]
+interface ID3D11ModuleInstance(ID3D11ModuleInstanceVtbl): IUnknown(IUnknownVtbl) {
+ fn BindConstantBuffer(
+ uSrcSlot: UINT,
+ uDstSlot: UINT,
+ cbDstOffset: UINT,
+ ) -> HRESULT,
+ fn BindConstantBufferByName(
+ pName: LPCSTR,
+ uDstSlot: UINT,
+ cbDstOffset: UINT,
+ ) -> HRESULT,
+ fn BindResource(
+ uSrcSlot: UINT,
+ uDstSlot: UINT,
+ uCount: UINT,
+ ) -> HRESULT,
+ fn BindResourceByName(
+ pName: LPCSTR,
+ uDstSlot: UINT,
+ uCount: UINT,
+ ) -> HRESULT,
+ fn BindSampler(
+ uSrcSlot: UINT,
+ uDstSlot: UINT,
+ uCount: UINT,
+ ) -> HRESULT,
+ fn BindSamplerByName(
+ pName: LPCSTR,
+ uDstSlot: UINT,
+ uCount: UINT,
+ ) -> HRESULT,
+ fn BindUnorderedAccessView(
+ uSrcSlot: UINT,
+ uDstSlot: UINT,
+ uCount: UINT,
+ ) -> HRESULT,
+ fn BindUnorderedAccessViewByName(
+ pName: LPCSTR,
+ uDstSlot: UINT,
+ uCount: UINT,
+ ) -> HRESULT,
+ fn BindResourceAsUnorderedAccessView(
+ uSrcSrvSlot: UINT,
+ uDstUavSlot: UINT,
+ uCount: UINT,
+ ) -> HRESULT,
+ fn BindResourceAsUnorderedAccessViewByName(
+ pSrvName: LPCSTR,
+ uDstUavSlot: UINT,
+ uCount: UINT,
+ ) -> HRESULT,
+}}
+DEFINE_GUID!{IID_ID3D11Linker,
+ 0x59a6cd0e, 0xe10d, 0x4c1f, 0x88, 0xc0, 0x63, 0xab, 0xa1, 0xda, 0xf3, 0x0e}
+RIDL!{#[uuid(0x59a6cd0e, 0xe10d, 0x4c1f, 0x88, 0xc0, 0x63, 0xab, 0xa1, 0xda, 0xf3, 0x0e)]
+interface ID3D11Linker(ID3D11LinkerVtbl): IUnknown(IUnknownVtbl) {
+ fn Link(
+ pEntry: *mut ID3D11ModuleInstance,
+ pEntryName: LPCSTR,
+ pTargetName: LPCSTR,
+ uFlags: UINT,
+ ppShaderBlob: *mut *mut ID3DBlob,
+ ppErrorBuffer: *mut *mut ID3DBlob,
+ ) -> HRESULT,
+ fn UseLibrary(
+ pLibraryMI: *mut ID3D11ModuleInstance,
+ ) -> HRESULT,
+ fn AddClipPlaneFromCBuffer(
+ uCBufferSlot: UINT,
+ uCBufferEntry: UINT,
+ ) -> HRESULT,
+}}
+DEFINE_GUID!{IID_ID3D11LinkingNode,
+ 0xd80dd70c, 0x8d2f, 0x4751, 0x94, 0xa1, 0x03, 0xc7, 0x9b, 0x35, 0x56, 0xdb}
+RIDL!{#[uuid(0xd80dd70c, 0x8d2f, 0x4751, 0x94, 0xa1, 0x03, 0xc7, 0x9b, 0x35, 0x56, 0xdb)]
+interface ID3D11LinkingNode(ID3D11LinkingNodeVtbl): IUnknown(IUnknownVtbl) {}}
+DEFINE_GUID!{IID_ID3D11FunctionLinkingGraph,
+ 0x54133220, 0x1ce8, 0x43d3, 0x82, 0x36, 0x98, 0x55, 0xc5, 0xce, 0xec, 0xff}
+RIDL!{#[uuid(0x54133220, 0x1ce8, 0x43d3, 0x82, 0x36, 0x98, 0x55, 0xc5, 0xce, 0xec, 0xff)]
+interface ID3D11FunctionLinkingGraph(ID3D11FunctionLinkingGraphVtbl): IUnknown(IUnknownVtbl) {
+ fn CreateModuleInstance(
+ ppModuleInstance: *mut *mut ID3D11ModuleInstance,
+ ppErrorBuffer: *mut *mut ID3DBlob,
+ ) -> HRESULT,
+ fn SetInputSignature(
+ pInputParameters: *const D3D11_PARAMETER_DESC,
+ cInputParameters: UINT,
+ ppInputNode: *mut *mut ID3D11LinkingNode,
+ ) -> HRESULT,
+ fn SetOutputSignature(
+ pOutputParameters: *const D3D11_PARAMETER_DESC,
+ cOutputParameters: UINT,
+ ppOutputNode: *mut *mut ID3D11LinkingNode,
+ ) -> HRESULT,
+ fn CallFunction(
+ pModuleInstanceNamespace: LPCSTR,
+ pModuleWithFunctionPrototype: *mut ID3D11Module,
+ pFunctionName: LPCSTR,
+ ppCallNode: *mut *mut ID3D11LinkingNode,
+ ) -> HRESULT,
+ fn PassValue(
+ pSrcNode: *mut ID3D11LinkingNode,
+ SrcParameterIndex: INT,
+ pDstNode: *mut ID3D11LinkingNode,
+ DstParameterIndex: INT,
+ ) -> HRESULT,
+ fn PassValueWithSwizzle(
+ pSrcNode: *mut ID3D11LinkingNode,
+ SrcParameterIndex: INT,
+ pSrcSwizzle: LPCSTR,
+ pDstNode: *mut ID3D11LinkingNode,
+ DstParameterIndex: INT,
+ pDstSwizzle: LPCSTR,
+ ) -> HRESULT,
+ fn GetLastError(
+ ppErrorBuffer: *mut *mut ID3DBlob,
+ ) -> HRESULT,
+ fn GenerateHlsl(
+ uFlags: UINT,
+ ppBuffer: *mut *mut ID3DBlob,
+ ) -> HRESULT,
+}}