21import "d3dcommon.idl";
34cpp_quote(
"#define D3D12_SHVER_GET_TYPE(v) (((v) >> 16) & 0xffff)")
35cpp_quote("
#define D3D12_SHVER_GET_MAJOR(v) (((v) >> 4) & 0xf)")
36cpp_quote("#define D3D12_SHVER_GET_MINOR(v) (((v) >> 0) & 0xf)")
38typedef struct _D3D12_SHADER_DESC
46 UINT OutputParameters;
47 UINT InstructionCount;
48 UINT TempRegisterCount;
52 UINT TextureNormalInstructions;
53 UINT TextureLoadInstructions;
54 UINT TextureCompInstructions;
55 UINT TextureBiasInstructions;
56 UINT TextureGradientInstructions;
57 UINT FloatInstructionCount;
58 UINT IntInstructionCount;
59 UINT UintInstructionCount;
60 UINT StaticFlowControlCount;
61 UINT DynamicFlowControlCount;
62 UINT MacroInstructionCount;
63 UINT ArrayInstructionCount;
64 UINT CutInstructionCount;
65 UINT EmitInstructionCount;
66 D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
67 UINT GSMaxOutputVertexCount;
68 D3D_PRIMITIVE InputPrimitive;
69 UINT PatchConstantParameters;
70 UINT cGSInstanceCount;
72 D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;
73 D3D_TESSELLATOR_PARTITIONING HSPartitioning;
74 D3D_TESSELLATOR_DOMAIN TessellatorDomain;
75 UINT cBarrierInstructions;
76 UINT cInterlockedInstructions;
77 UINT cTextureStoreInstructions;
80typedef struct _D3D12_SHADER_VARIABLE_DESC
91} D3D12_SHADER_VARIABLE_DESC;
93typedef struct _D3D12_SHADER_TYPE_DESC
95 D3D_SHADER_VARIABLE_CLASS Class;
96 D3D_SHADER_VARIABLE_TYPE Type;
103} D3D12_SHADER_TYPE_DESC;
105typedef struct _D3D12_SHADER_BUFFER_DESC
108 D3D_CBUFFER_TYPE Type;
112} D3D12_SHADER_BUFFER_DESC;
114typedef struct _D3D12_SHADER_INPUT_BIND_DESC
117 D3D_SHADER_INPUT_TYPE Type;
121 D3D_RESOURCE_RETURN_TYPE ReturnType;
122 D3D_SRV_DIMENSION Dimension;
126} D3D12_SHADER_INPUT_BIND_DESC;
128typedef struct _D3D12_SIGNATURE_PARAMETER_DESC
130 const char *SemanticName;
133 D3D_NAME SystemValueType;
134 D3D_REGISTER_COMPONENT_TYPE ComponentType;
138 D3D_MIN_PRECISION MinPrecision;
139} D3D12_SIGNATURE_PARAMETER_DESC;
141typedef struct _D3D12_PARAMETER_DESC
144 const char *SemanticName;
145 D3D_SHADER_VARIABLE_TYPE Type;
146 D3D_SHADER_VARIABLE_CLASS Class;
149 D3D_INTERPOLATION_MODE InterpolationMode;
150 D3D_PARAMETER_FLAGS Flags;
151 UINT FirstInRegister;
152 UINT FirstInComponent;
153 UINT FirstOutRegister;
154 UINT FirstOutComponent;
155} D3D12_PARAMETER_DESC;
157typedef struct _D3D12_FUNCTION_DESC
162 UINT ConstantBuffers;
164 UINT InstructionCount;
165 UINT TempRegisterCount;
169 UINT TextureNormalInstructions;
170 UINT TextureLoadInstructions;
171 UINT TextureCompInstructions;
172 UINT TextureBiasInstructions;
173 UINT TextureGradientInstructions;
174 UINT FloatInstructionCount;
175 UINT IntInstructionCount;
176 UINT UintInstructionCount;
177 UINT StaticFlowControlCount;
178 UINT DynamicFlowControlCount;
179 UINT MacroInstructionCount;
180 UINT ArrayInstructionCount;
181 UINT MovInstructionCount;
182 UINT MovcInstructionCount;
183 UINT ConversionInstructionCount;
184 UINT BitwiseInstructionCount;
185 D3D_FEATURE_LEVEL MinFeatureLevel;
186 UINT64 RequiredFeatureFlags;
188 INT FunctionParameterCount;
190 BOOL Has10Level9VertexShader;
191 BOOL Has10Level9PixelShader;
192} D3D12_FUNCTION_DESC;
194typedef struct _D3D12_LIBRARY_DESC
201interface ID3D12ShaderReflectionConstantBuffer;
204 uuid(e913c351-783d-48ca-a1d1-4f306284ad56),
208interface ID3D12ShaderReflectionType
210 HRESULT GetDesc(D3D12_SHADER_TYPE_DESC *desc);
211 ID3D12ShaderReflectionType *GetMemberTypeByIndex(UINT index);
212 ID3D12ShaderReflectionType *GetMemberTypeByName(const char *name);
213 const char *GetMemberTypeName(UINT index);
214 HRESULT IsEqual(ID3D12ShaderReflectionType *type);
215 ID3D12ShaderReflectionType *GetSubType();
216 ID3D12ShaderReflectionType *GetBaseClass();
217 UINT GetNumInterfaces();
218 ID3D12ShaderReflectionType *GetInterfaceByIndex(UINT index);
219 HRESULT IsOfType(ID3D12ShaderReflectionType *type);
220 HRESULT ImplementsInterface(ID3D12ShaderReflectionType *base);
224 uuid(8337a8a6-a216-444a-b2f4-314733a73aea),
228interface ID3D12ShaderReflectionVariable
230 HRESULT GetDesc(D3D12_SHADER_VARIABLE_DESC *desc);
231 ID3D12ShaderReflectionType *GetType();
232 ID3D12ShaderReflectionConstantBuffer *GetBuffer();
233 UINT GetInterfaceSlot(UINT index);
237 uuid(c59598b4-48b3-4869-b9b1-b1618b14a8b7),
241interface ID3D12ShaderReflectionConstantBuffer
243 HRESULT GetDesc(D3D12_SHADER_BUFFER_DESC *desc);
244 ID3D12ShaderReflectionVariable *GetVariableByIndex(UINT index);
245 ID3D12ShaderReflectionVariable *GetVariableByName(const char *name);
249 uuid(5a58797d-a72c-478d-8ba2-efc6b0efe88e),
253interface ID3D12ShaderReflection : IUnknown
255 HRESULT GetDesc(D3D12_SHADER_DESC *desc);
256 ID3D12ShaderReflectionConstantBuffer *GetConstantBufferByIndex(UINT index);
257 ID3D12ShaderReflectionConstantBuffer *GetConstantBufferByName(const char *name);
258 HRESULT GetResourceBindingDesc(UINT index, D3D12_SHADER_INPUT_BIND_DESC *desc);
259 HRESULT GetInputParameterDesc(UINT index, D3D12_SIGNATURE_PARAMETER_DESC *desc);
260 HRESULT GetOutputParameterDesc(UINT index, D3D12_SIGNATURE_PARAMETER_DESC *desc);
261 HRESULT GetPatchConstantParameterDesc(UINT index, D3D12_SIGNATURE_PARAMETER_DESC *desc);
262 ID3D12ShaderReflectionVariable *GetVariableByName(const char *name);
263 HRESULT GetResourceBindingDescByName(const char *name, D3D12_SHADER_INPUT_BIND_DESC *desc);
264 UINT GetMovInstructionCount();
265 UINT GetMovcInstructionCount();
266 UINT GetConversionInstructionCount();
267 UINT GetBitwiseInstructionCount();
268 D3D_PRIMITIVE GetGSInputPrimitive();
269 BOOL IsSampleFrequencyShader();
270 UINT GetNumInterfaceSlots();
271 HRESULT GetMinFeatureLevel(D3D_FEATURE_LEVEL *level);
272 UINT GetThreadGroupSize(UINT *sizex, UINT *sizey, UINT *sizez);
273 UINT64 GetRequiresFlags();
277 uuid(ec25f42d-7006-4f2b-b33e-02cc3375733f),
281interface ID3D12FunctionParameterReflection
283 HRESULT GetDesc(D3D12_PARAMETER_DESC *desc);
287 uuid(1108795c-2772-4ba9-b2a8-d464dc7e2799),
291interface ID3D12FunctionReflection
293 HRESULT GetDesc(D3D12_FUNCTION_DESC *desc);
294 ID3D12ShaderReflectionConstantBuffer *GetConstantBufferByIndex(UINT index);
295 ID3D12ShaderReflectionConstantBuffer *GetConstantBufferByName(const char *name);
296 HRESULT GetResourceBindingDesc(UINT index, D3D12_SHADER_INPUT_BIND_DESC *desc);
297 ID3D12ShaderReflectionVariable *GetVariableByName(const char *name);
298 HRESULT GetResourceBindingDescByName(const char *name, D3D12_SHADER_INPUT_BIND_DESC *desc);
299 ID3D12FunctionParameterReflection *GetFunctionParameter(INT index);
303 uuid(8e349d19-54db-4a56-9dc9-119d87bdb804),
307interface ID3D12LibraryReflection : IUnknown
309 HRESULT GetDesc(D3D12_LIBRARY_DESC *desc);
310 ID3D12FunctionReflection *GetFunctionByIndex(INT index);
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const
D3D12_SHADER_VERSION_TYPE
@ D3D12_SHVER_VERTEX_SHADER
@ D3D12_SHVER_HULL_SHADER
@ D3D12_SHVER_GEOMETRY_SHADER
@ D3D12_SHVER_PIXEL_SHADER
@ D3D12_SHVER_DOMAIN_SHADER
@ D3D12_SHVER_COMPUTE_SHADER