1use ctypes::c_int;
7use shared::basetsd::UINT64;
8use shared::minwindef::{BOOL, BYTE, INT, LPVOID, UINT};
9use um::d3dcommon::{
10 D3D_CBUFFER_TYPE, D3D_FEATURE_LEVEL, D3D_INTERPOLATION_MODE, D3D_MIN_PRECISION, D3D_NAME,
11 D3D_PARAMETER_FLAGS, D3D_PRIMITIVE, D3D_PRIMITIVE_TOPOLOGY, D3D_REGISTER_COMPONENT_TYPE,
12 D3D_RESOURCE_RETURN_TYPE, D3D_SHADER_INPUT_TYPE, D3D_SHADER_VARIABLE_CLASS,
13 D3D_SHADER_VARIABLE_TYPE, D3D_SRV_DIMENSION, D3D_TESSELLATOR_DOMAIN,
14 D3D_TESSELLATOR_OUTPUT_PRIMITIVE, D3D_TESSELLATOR_PARTITIONING, ID3DBlob,
15};
16use um::unknwnbase::{IUnknown, IUnknownVtbl};
17use um::winnt::{HRESULT, LPCSTR};
18ENUM!{enum D3D11_SHADER_VERSION_TYPE {
19 D3D11_SHVER_PIXEL_SHADER = 0,
20 D3D11_SHVER_VERTEX_SHADER = 1,
21 D3D11_SHVER_GEOMETRY_SHADER = 2,
22 D3D11_SHVER_HULL_SHADER = 3,
23 D3D11_SHVER_DOMAIN_SHADER = 4,
24 D3D11_SHVER_COMPUTE_SHADER = 5,
25 D3D11_SHVER_RESERVED0 = 0xFFF0,
26}}
27pub const D3D_RETURN_PARAMETER_INDEX: c_int = -1;
28pub type D3D11_RESOURCE_RETURN_TYPE = D3D_RESOURCE_RETURN_TYPE;
29pub type D3D11_CBUFFER_TYPE = D3D_CBUFFER_TYPE;
30STRUCT!{struct D3D11_SIGNATURE_PARAMETER_DESC {
31 SemanticName: LPCSTR,
32 SemanticIndex: UINT,
33 Register: UINT,
34 SystemValueType: D3D_NAME,
35 ComponentType: D3D_REGISTER_COMPONENT_TYPE,
36 Mask: BYTE,
37 ReadWriteMask: BYTE,
38 Stream: UINT,
39 MinPrecision: D3D_MIN_PRECISION,
40}}
41STRUCT!{struct D3D11_SHADER_BUFFER_DESC {
42 Name: LPCSTR,
43 Type: D3D_CBUFFER_TYPE,
44 Variables: UINT,
45 Size: UINT,
46 uFlags: UINT,
47}}
48STRUCT!{struct D3D11_SHADER_VARIABLE_DESC {
49 Name: LPCSTR,
50 StartOffset: UINT,
51 Size: UINT,
52 uFlags: UINT,
53 DefaultValue: LPVOID,
54 StartTexture: UINT,
55 TextureSize: UINT,
56 StartSampler: UINT,
57 SamplerSize: UINT,
58}}
59STRUCT!{struct D3D11_SHADER_TYPE_DESC {
60 Class: D3D_SHADER_VARIABLE_CLASS,
61 Type: D3D_SHADER_VARIABLE_TYPE,
62 Rows: UINT,
63 Columns: UINT,
64 Elements: UINT,
65 Members: UINT,
66 Offset: UINT,
67 Name: LPCSTR,
68}}
69pub type D3D11_TESSELLATOR_DOMAIN = D3D_TESSELLATOR_DOMAIN;
70pub type D3D11_TESSELLATOR_PARTITIONING = D3D_TESSELLATOR_PARTITIONING;
71pub type D3D11_TESSELLATOR_OUTPUT_PRIMITIVE = D3D_TESSELLATOR_OUTPUT_PRIMITIVE;
72STRUCT!{struct D3D11_SHADER_DESC {
73 Version: UINT,
74 Creator: LPCSTR,
75 Flags: UINT,
76 ConstantBuffers: UINT,
77 BoundResources: UINT,
78 InputParameters: UINT,
79 OutputParameters: UINT,
80 InstructionCount: UINT,
81 TempRegisterCount: UINT,
82 TempArrayCount: UINT,
83 DefCount: UINT,
84 DclCount: UINT,
85 TextureNormalInstructions: UINT,
86 TextureLoadInstructions: UINT,
87 TextureCompInstructions: UINT,
88 TextureBiasInstructions: UINT,
89 TextureGradientInstructions: UINT,
90 FloatInstructionCount: UINT,
91 IntInstructionCount: UINT,
92 UintInstructionCount: UINT,
93 StaticFlowControlCount: UINT,
94 DynamicFlowControlCount: UINT,
95 MacroInstructionCount: UINT,
96 ArrayInstructionCount: UINT,
97 CutInstructionCount: UINT,
98 EmitInstructionCount: UINT,
99 GSOutputTopology: D3D_PRIMITIVE_TOPOLOGY,
100 GSMaxOutputVertexCount: UINT,
101 InputPrimitive: D3D_PRIMITIVE,
102 PatchConstantParameters: UINT,
103 cGSInstanceCount: UINT,
104 cControlPoints: UINT,
105 HSOutputPrimitive: D3D_TESSELLATOR_OUTPUT_PRIMITIVE,
106 HSPartitioning: D3D_TESSELLATOR_PARTITIONING,
107 TessellatorDomain: D3D_TESSELLATOR_DOMAIN,
108 cBarrierInstructions: UINT,
109 cInterlockedInstructions: UINT,
110 cTextureStoreInstructions: UINT,
111}}
112STRUCT!{struct D3D11_SHADER_INPUT_BIND_DESC {
113 Name: LPCSTR,
114 Type: D3D_SHADER_INPUT_TYPE,
115 BindPoint: UINT,
116 BindCount: UINT,
117 uFlags: UINT,
118 ReturnType: D3D_RESOURCE_RETURN_TYPE,
119 Dimension: D3D_SRV_DIMENSION,
120 NumSamples: UINT,
121}}
122pub const D3D_SHADER_REQUIRES_DOUBLES: UINT64 = 0x00000001;
123pub const D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL: UINT64 = 0x00000002;
124pub const D3D_SHADER_REQUIRES_UAVS_AT_EVERY_STAGE: UINT64 = 0x00000004;
125pub const D3D_SHADER_REQUIRES_64_UAVS: UINT64 = 0x00000008;
126pub const D3D_SHADER_REQUIRES_MINIMUM_PRECISION: UINT64 = 0x00000010;
127pub const D3D_SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS: UINT64 = 0x00000020;
128pub const D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS: UINT64 = 0x00000040;
129pub const D3D_SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING: UINT64 = 0x00000080;
130pub const D3D_SHADER_REQUIRES_TILED_RESOURCES: UINT64 = 0x00000100;
131STRUCT!{struct D3D11_LIBRARY_DESC {
132 Creator: LPCSTR,
133 Flags: UINT,
134 FunctionCount: UINT,
135}}
136STRUCT!{struct D3D11_FUNCTION_DESC {
137 Version: UINT,
138 Creator: LPCSTR,
139 Flags: UINT,
140 ConstantBuffers: UINT,
141 BoundResources: UINT,
142 InstructionCount: UINT,
143 TempRegisterCount: UINT,
144 TempArrayCount: UINT,
145 DefCount: UINT,
146 DclCount: UINT,
147 TextureNormalInstructions: UINT,
148 TextureLoadInstructions: UINT,
149 TextureCompInstructions: UINT,
150 TextureBiasInstructions: UINT,
151 TextureGradientInstructions: UINT,
152 FloatInstructionCount: UINT,
153 IntInstructionCount: UINT,
154 UintInstructionCount: UINT,
155 StaticFlowControlCount: UINT,
156 DynamicFlowControlCount: UINT,
157 MacroInstructionCount: UINT,
158 ArrayInstructionCount: UINT,
159 MovInstructionCount: UINT,
160 MovcInstructionCount: UINT,
161 ConversionInstructionCount: UINT,
162 BitwiseInstructionCount: UINT,
163 MinFeatureLevel: D3D_FEATURE_LEVEL,
164 RequiredFeatureFlags: UINT64,
165 Name: LPCSTR,
166 FunctionParameterCount: INT,
167 HasReturn: BOOL,
168 Has10Level9VertexShader: BOOL,
169 Has10Level9PixelShader: BOOL,
170}}
171STRUCT!{struct D3D11_PARAMETER_DESC {
172 Name: LPCSTR,
173 SemanticName: LPCSTR,
174 Type: D3D_SHADER_VARIABLE_TYPE,
175 Class: D3D_SHADER_VARIABLE_CLASS,
176 Rows: UINT,
177 Columns: UINT,
178 InterpolationMode: D3D_INTERPOLATION_MODE,
179 Flags: D3D_PARAMETER_FLAGS,
180 FirstInRegister: UINT,
181 FirstInComponent: UINT,
182 FirstOutRegister: UINT,
183 FirstOutComponent: UINT,
184}}
185DEFINE_GUID!{IID_ID3D11ShaderReflectionType,
186 0x6e6ffa6a, 0x9bae, 0x4613, 0xa5, 0x1e, 0x91, 0x65, 0x2d, 0x50, 0x8c, 0x21}
187RIDL!{#[uuid(0x6e6ffa6a, 0x9bae, 0x4613, 0xa5, 0x1e, 0x91, 0x65, 0x2d, 0x50, 0x8c, 0x21)]
188interface ID3D11ShaderReflectionType(ID3D11ShaderReflectionTypeVtbl) {
189 fn GetDesc(
190 pDesc: *mut D3D11_SHADER_TYPE_DESC,
191 ) -> HRESULT,
192 fn GetMemberTypeByIndex(
193 Index: UINT,
194 ) -> *mut ID3D11ShaderReflectionType,
195 fn GetMemberTypeByName(
196 Name: LPCSTR,
197 ) -> *mut ID3D11ShaderReflectionType,
198 fn GetMemberTypeName(
199 Index: UINT,
200 ) -> LPCSTR,
201 fn IsEqual(
202 pType: *mut ID3D11ShaderReflectionType,
203 ) -> HRESULT,
204 fn GetSubType() -> *mut ID3D11ShaderReflectionType,
205 fn GetBaseClass() -> *mut ID3D11ShaderReflectionType,
206 fn GetNumInterfaces() -> UINT,
207 fn GetInterfaceByIndex(
208 uIndex: UINT,
209 ) -> *mut ID3D11ShaderReflectionType,
210 fn IsOfType(
211 pType: *mut ID3D11ShaderReflectionType,
212 ) -> HRESULT,
213 fn ImplementsInterface(
214 pBase: *mut ID3D11ShaderReflectionType,
215 ) -> HRESULT,
216}}
217DEFINE_GUID!{IID_ID3D11ShaderReflectionVariable,
218 0x51f23923, 0xf3e5, 0x4bd1, 0x91, 0xcb, 0x60, 0x61, 0x77, 0xd8, 0xdb, 0x4c}
219RIDL!{#[uuid(0x51f23923, 0xf3e5, 0x4bd1, 0x91, 0xcb, 0x60, 0x61, 0x77, 0xd8, 0xdb, 0x4c)]
220interface ID3D11ShaderReflectionVariable(ID3D11ShaderReflectionVariableVtbl) {
221 fn GetDesc(
222 pDesc: *mut D3D11_SHADER_VARIABLE_DESC,
223 ) -> HRESULT,
224 fn GetType() -> *mut ID3D11ShaderReflectionType,
225 fn GetBuffer() -> *mut ID3D11ShaderReflectionConstantBuffer,
226 fn GetInterfaceSlot(
227 uArrayIndex: UINT,
228 ) -> UINT,
229}}
230DEFINE_GUID!{IID_ID3D11ShaderReflectionConstantBuffer,
231 0xeb62d63d, 0x93dd, 0x4318, 0x8a, 0xe8, 0xc6, 0xf8, 0x3a, 0xd3, 0x71, 0xb8}
232RIDL!{#[uuid(0xeb62d63d, 0x93dd, 0x4318, 0x8a, 0xe8, 0xc6, 0xf8, 0x3a, 0xd3, 0x71, 0xb8)]
233interface ID3D11ShaderReflectionConstantBuffer(ID3D11ShaderReflectionConstantBufferVtbl) {
234 fn GetDesc(
235 pDesc: *mut D3D11_SHADER_BUFFER_DESC,
236 ) -> HRESULT,
237 fn GetVariableByIndex(
238 Index: UINT,
239 ) -> *mut ID3D11ShaderReflectionVariable,
240 fn GetVariableByName(
241 Name: LPCSTR,
242 ) -> *mut ID3D11ShaderReflectionVariable,
243}}
244DEFINE_GUID!{IID_ID3D11ShaderReflection,
245 0x8d536ca1, 0x0cca, 0x4956, 0xa8, 0x37, 0x78, 0x69, 0x63, 0x75, 0x55, 0x84}
246RIDL!{#[uuid(0x8d536ca1, 0x0cca, 0x4956, 0xa8, 0x37, 0x78, 0x69, 0x63, 0x75, 0x55, 0x84)]
247interface ID3D11ShaderReflection(ID3D11ShaderReflectionVtbl): IUnknown(IUnknownVtbl) {
248 fn GetDesc(
249 pDesc: *mut D3D11_SHADER_DESC,
250 ) -> HRESULT,
251 fn GetConstantBufferByIndex(
252 Index: UINT,
253 ) -> *mut ID3D11ShaderReflectionConstantBuffer,
254 fn GetConstantBufferByName(
255 Name: LPCSTR,
256 ) -> *mut ID3D11ShaderReflectionConstantBuffer,
257 fn GetResourceBindingDesc(
258 ResourceIndex: UINT,
259 pDesc: *mut D3D11_SHADER_INPUT_BIND_DESC,
260 ) -> HRESULT,
261 fn GetInputParameterDesc(
262 ParameterIndex: UINT,
263 pDesc: *mut D3D11_SIGNATURE_PARAMETER_DESC,
264 ) -> HRESULT,
265 fn GetOutputParameterDesc(
266 ParameterIndex: UINT,
267 pDesc: *mut D3D11_SIGNATURE_PARAMETER_DESC,
268 ) -> HRESULT,
269 fn GetPatchConstantParameterDesc(
270 ParameterIndex: UINT,
271 pDesc: *mut D3D11_SIGNATURE_PARAMETER_DESC,
272 ) -> HRESULT,
273 fn GetVariableByName(
274 Name: LPCSTR,
275 ) -> *mut ID3D11ShaderReflectionVariable,
276 fn GetResourceBindingDescByName(
277 Name: LPCSTR,
278 pDesc: *mut D3D11_SHADER_INPUT_BIND_DESC,
279 ) -> HRESULT,
280 fn GetMovInstructionCount() -> UINT,
281 fn GetMovcInstructionCount() -> UINT,
282 fn GetConversionInstructionCount() -> UINT,
283 fn GetBitwiseInstructionCount() -> UINT,
284 fn GetGSInputPrimitive() -> D3D_PRIMITIVE,
285 fn IsSampleFrequencyShader() -> BOOL,
286 fn GetNumInterfaceSlots() -> UINT,
287 fn GetMinFeatureLevel(
288 pLevel: *mut D3D_FEATURE_LEVEL,
289 ) -> HRESULT,
290 fn GetThreadGroupSize(
291 pSizeX: *mut UINT,
292 pSizeY: *mut UINT,
293 pSizeZ: *mut UINT,
294 ) -> UINT,
295 fn GetRequiresFlags() -> UINT64,
296}}
297DEFINE_GUID!{IID_ID3D11LibraryReflection,
298 0x54384f1b, 0x5b3e, 0x4bb7, 0xae, 0x01, 0x60, 0xba, 0x30, 0x97, 0xcb, 0xb6}
299RIDL!{#[uuid(0x54384f1b, 0x5b3e, 0x4bb7, 0xae, 0x01, 0x60, 0xba, 0x30, 0x97, 0xcb, 0xb6)]
300interface ID3D11LibraryReflection(ID3D11LibraryReflectionVtbl): IUnknown(IUnknownVtbl) {
301 fn GetDesc(
302 pDesc: *mut D3D11_LIBRARY_DESC,
303 ) -> HRESULT,
304 fn GetFunctionByIndex(
305 FunctionIndex: INT,
306 ) -> *mut ID3D11FunctionReflection,
307}}
308DEFINE_GUID!{IID_ID3D11FunctionReflection,
309 0x207bcecb, 0xd683, 0x4a06, 0xa8, 0xa3, 0x9b, 0x14, 0x9b, 0x9f, 0x73, 0xa4}
310RIDL!{#[uuid(0x207bcecb, 0xd683, 0x4a06, 0xa8, 0xa3, 0x9b, 0x14, 0x9b, 0x9f, 0x73, 0xa4)]
311interface ID3D11FunctionReflection(ID3D11FunctionReflectionVtbl) {
312 fn GetDesc(
313 pDesc: *mut D3D11_FUNCTION_DESC,
314 ) -> HRESULT,
315 fn GetConstantBufferByIndex(
316 BufferIndex: UINT,
317 ) -> *mut ID3D11ShaderReflectionConstantBuffer,
318 fn GetConstantBufferByName(
319 Name: LPCSTR,
320 ) -> *mut ID3D11ShaderReflectionConstantBuffer,
321 fn GetResourceBindingDesc(
322 ResourceIndex: UINT,
323 pDesc: *mut D3D11_SHADER_INPUT_BIND_DESC,
324 ) -> HRESULT,
325 fn GetVariableByName(
326 Name: LPCSTR,
327 ) -> *mut ID3D11ShaderReflectionVariable,
328 fn GetResourceBindingDescByName(
329 Name: LPCSTR,
330 pDesc: *mut D3D11_SHADER_INPUT_BIND_DESC,
331 ) -> HRESULT,
332 fn GetFunctionParameter(
333 ParameterIndex: INT,
334 ) -> *mut ID3D11FunctionParameterReflection,
335}}
336DEFINE_GUID!{IID_ID3D11FunctionParameterReflection,
337 0x42757488, 0x334f, 0x47fe, 0x98, 0x2e, 0x1a, 0x65, 0xd0, 0x8c, 0xc4, 0x62}
338RIDL!{#[uuid(0x42757488, 0x334f, 0x47fe, 0x98, 0x2e, 0x1a, 0x65, 0xd0, 0x8c, 0xc4, 0x62)]
339interface ID3D11FunctionParameterReflection(ID3D11FunctionParameterReflectionVtbl) {
340 fn GetDesc(
341 pDesc: *mut D3D11_PARAMETER_DESC,
342 ) -> HRESULT,
343}}
344DEFINE_GUID!{IID_ID3D11Module,
345 0xcac701ee, 0x80fc, 0x4122, 0x82, 0x42, 0x10, 0xb3, 0x9c, 0x8c, 0xec, 0x34}
346RIDL!{#[uuid(0xcac701ee, 0x80fc, 0x4122, 0x82, 0x42, 0x10, 0xb3, 0x9c, 0x8c, 0xec, 0x34)]
347interface ID3D11Module(ID3D11ModuleVtbl): IUnknown(IUnknownVtbl) {
348 fn CreateInstance(
349 pNamespace: LPCSTR,
350 ppModuleInstance: *mut *mut ID3D11ModuleInstance,
351 ) -> HRESULT,
352}}
353DEFINE_GUID!{IID_ID3D11ModuleInstance,
354 0x469e07f7, 0x045a, 0x48d5, 0xaa, 0x12, 0x68, 0xa4, 0x78, 0xcd, 0xf7, 0x5d}
355RIDL!{#[uuid(0x469e07f7, 0x045a, 0x48d5, 0xaa, 0x12, 0x68, 0xa4, 0x78, 0xcd, 0xf7, 0x5d)]
356interface ID3D11ModuleInstance(ID3D11ModuleInstanceVtbl): IUnknown(IUnknownVtbl) {
357 fn BindConstantBuffer(
358 uSrcSlot: UINT,
359 uDstSlot: UINT,
360 cbDstOffset: UINT,
361 ) -> HRESULT,
362 fn BindConstantBufferByName(
363 pName: LPCSTR,
364 uDstSlot: UINT,
365 cbDstOffset: UINT,
366 ) -> HRESULT,
367 fn BindResource(
368 uSrcSlot: UINT,
369 uDstSlot: UINT,
370 uCount: UINT,
371 ) -> HRESULT,
372 fn BindResourceByName(
373 pName: LPCSTR,
374 uDstSlot: UINT,
375 uCount: UINT,
376 ) -> HRESULT,
377 fn BindSampler(
378 uSrcSlot: UINT,
379 uDstSlot: UINT,
380 uCount: UINT,
381 ) -> HRESULT,
382 fn BindSamplerByName(
383 pName: LPCSTR,
384 uDstSlot: UINT,
385 uCount: UINT,
386 ) -> HRESULT,
387 fn BindUnorderedAccessView(
388 uSrcSlot: UINT,
389 uDstSlot: UINT,
390 uCount: UINT,
391 ) -> HRESULT,
392 fn BindUnorderedAccessViewByName(
393 pName: LPCSTR,
394 uDstSlot: UINT,
395 uCount: UINT,
396 ) -> HRESULT,
397 fn BindResourceAsUnorderedAccessView(
398 uSrcSrvSlot: UINT,
399 uDstUavSlot: UINT,
400 uCount: UINT,
401 ) -> HRESULT,
402 fn BindResourceAsUnorderedAccessViewByName(
403 pSrvName: LPCSTR,
404 uDstUavSlot: UINT,
405 uCount: UINT,
406 ) -> HRESULT,
407}}
408DEFINE_GUID!{IID_ID3D11Linker,
409 0x59a6cd0e, 0xe10d, 0x4c1f, 0x88, 0xc0, 0x63, 0xab, 0xa1, 0xda, 0xf3, 0x0e}
410RIDL!{#[uuid(0x59a6cd0e, 0xe10d, 0x4c1f, 0x88, 0xc0, 0x63, 0xab, 0xa1, 0xda, 0xf3, 0x0e)]
411interface ID3D11Linker(ID3D11LinkerVtbl): IUnknown(IUnknownVtbl) {
412 fn Link(
413 pEntry: *mut ID3D11ModuleInstance,
414 pEntryName: LPCSTR,
415 pTargetName: LPCSTR,
416 uFlags: UINT,
417 ppShaderBlob: *mut *mut ID3DBlob,
418 ppErrorBuffer: *mut *mut ID3DBlob,
419 ) -> HRESULT,
420 fn UseLibrary(
421 pLibraryMI: *mut ID3D11ModuleInstance,
422 ) -> HRESULT,
423 fn AddClipPlaneFromCBuffer(
424 uCBufferSlot: UINT,
425 uCBufferEntry: UINT,
426 ) -> HRESULT,
427}}
428DEFINE_GUID!{IID_ID3D11LinkingNode,
429 0xd80dd70c, 0x8d2f, 0x4751, 0x94, 0xa1, 0x03, 0xc7, 0x9b, 0x35, 0x56, 0xdb}
430RIDL!{#[uuid(0xd80dd70c, 0x8d2f, 0x4751, 0x94, 0xa1, 0x03, 0xc7, 0x9b, 0x35, 0x56, 0xdb)]
431interface ID3D11LinkingNode(ID3D11LinkingNodeVtbl): IUnknown(IUnknownVtbl) {}}
432DEFINE_GUID!{IID_ID3D11FunctionLinkingGraph,
433 0x54133220, 0x1ce8, 0x43d3, 0x82, 0x36, 0x98, 0x55, 0xc5, 0xce, 0xec, 0xff}
434RIDL!{#[uuid(0x54133220, 0x1ce8, 0x43d3, 0x82, 0x36, 0x98, 0x55, 0xc5, 0xce, 0xec, 0xff)]
435interface ID3D11FunctionLinkingGraph(ID3D11FunctionLinkingGraphVtbl): IUnknown(IUnknownVtbl) {
436 fn CreateModuleInstance(
437 ppModuleInstance: *mut *mut ID3D11ModuleInstance,
438 ppErrorBuffer: *mut *mut ID3DBlob,
439 ) -> HRESULT,
440 fn SetInputSignature(
441 pInputParameters: *const D3D11_PARAMETER_DESC,
442 cInputParameters: UINT,
443 ppInputNode: *mut *mut ID3D11LinkingNode,
444 ) -> HRESULT,
445 fn SetOutputSignature(
446 pOutputParameters: *const D3D11_PARAMETER_DESC,
447 cOutputParameters: UINT,
448 ppOutputNode: *mut *mut ID3D11LinkingNode,
449 ) -> HRESULT,
450 fn CallFunction(
451 pModuleInstanceNamespace: LPCSTR,
452 pModuleWithFunctionPrototype: *mut ID3D11Module,
453 pFunctionName: LPCSTR,
454 ppCallNode: *mut *mut ID3D11LinkingNode,
455 ) -> HRESULT,
456 fn PassValue(
457 pSrcNode: *mut ID3D11LinkingNode,
458 SrcParameterIndex: INT,
459 pDstNode: *mut ID3D11LinkingNode,
460 DstParameterIndex: INT,
461 ) -> HRESULT,
462 fn PassValueWithSwizzle(
463 pSrcNode: *mut ID3D11LinkingNode,
464 SrcParameterIndex: INT,
465 pSrcSwizzle: LPCSTR,
466 pDstNode: *mut ID3D11LinkingNode,
467 DstParameterIndex: INT,
468 pDstSwizzle: LPCSTR,
469 ) -> HRESULT,
470 fn GetLastError(
471 ppErrorBuffer: *mut *mut ID3DBlob,
472 ) -> HRESULT,
473 fn GenerateHlsl(
474 uFlags: UINT,
475 ppBuffer: *mut *mut ID3DBlob,
476 ) -> HRESULT,
477}}