192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri/************************************************************************** 292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * 392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * Copyright 2010 Luca Barbieri 492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * 592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * Permission is hereby granted, free of charge, to any person obtaining 692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * a copy of this software and associated documentation files (the 792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * "Software"), to deal in the Software without restriction, including 892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * without limitation the rights to use, copy, modify, merge, publish, 992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * distribute, sublicense, and/or sell copies of the Software, and to 1092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * permit persons to whom the Software is furnished to do so, subject to 1192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * the following conditions: 1292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * 1392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * The above copyright notice and this permission notice (including the 1492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * next paragraph) shall be included in all copies or substantial 1592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * portions of the Software. 1692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * 1792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 1892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 2092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE 2192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 2292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 2392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri * 2592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri **************************************************************************/ 2692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 2792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieriimport "d3dcommon.idl"; 2892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 2992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef enum D3D11_SHADER_VERSION_TYPE 3092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 3192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D11_SHVER_PIXEL_SHADER, 3292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D11_SHVER_VERTEX_SHADER, 3392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D11_SHVER_GEOMETRY_SHADER, 3492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 3592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D11_SHVER_HULL_SHADER, 3692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D11_SHVER_DOMAIN_SHADER, 3792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D11_SHVER_COMPUTE_SHADER, 3892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri} D3D11_SHADER_VERSION_TYPE; 3992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 4092617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericpp_quote("#define D3D11_SHVER_GET_TYPE(v) (((v) >> 16) & 0xffff)") 4192617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericpp_quote("#define D3D11_SHVER_GET_MAJOR(v) (((v) >> 4) & 0xf)") 4292617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericpp_quote("#define D3D11_SHVER_GET_MINOR(v) (((v) >> 0) & 0xf)") 4392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 4492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_RESOURCE_RETURN_TYPE D3D11_RESOURCE_RETURN_TYPE; 4592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_CBUFFER_TYPE D3D11_CBUFFER_TYPE; 4692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 4792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef struct _D3D11_SIGNATURE_PARAMETER_DESC 4892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 4992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPCSTR SemanticName; 5092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT SemanticIndex; 5192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Register; 5292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_NAME SystemValueType; 5392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_REGISTER_COMPONENT_TYPE ComponentType; 5492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri BYTE Mask; 5592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri BYTE ReadWriteMask; 5692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Stream; 5792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri} D3D11_SIGNATURE_PARAMETER_DESC; 5892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 5992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef struct _D3D11_SHADER_BUFFER_DESC 6092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 6192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPCSTR Name; 6292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_CBUFFER_TYPE Type; 6392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Variables; 6492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Size; 6592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT uFlags; 6692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri} D3D11_SHADER_BUFFER_DESC; 6792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 6892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef struct _D3D11_SHADER_VARIABLE_DESC 6992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 7092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPCSTR Name; 7192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT StartOffset; 7292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Size; 7392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT uFlags; 7492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPVOID DefaultValue; 7592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT StartTexture; 7692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TextureSize; 7792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT StartSampler; 7892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT SamplerSize; 7992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri} D3D11_SHADER_VARIABLE_DESC; 8092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 8192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef struct _D3D11_SHADER_TYPE_DESC 8292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 8392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_SHADER_VARIABLE_CLASS Class; 8492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_SHADER_VARIABLE_TYPE Type; 8592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Rows; 8692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Columns; 8792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Elements; 8892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Members; 8992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Offset; 9092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPCSTR Name; 9192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri} D3D11_SHADER_TYPE_DESC; 9292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 9392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_TESSELLATOR_DOMAIN D3D11_TESSELLATOR_DOMAIN; 9492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_TESSELLATOR_PARTITIONING D3D11_TESSELLATOR_PARTITIONING; 9592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D11_TESSELLATOR_OUTPUT_PRIMITIVE; 9692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 9792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef struct _D3D11_SHADER_DESC 9892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 9992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Version; 10092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPCSTR Creator; 10192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Flags; 10292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 10392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT ConstantBuffers; 10492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT BoundResources; 10592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT InputParameters; 10692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT OutputParameters; 10792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 10892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT InstructionCount; 10992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TempRegisterCount; 11092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TempArrayCount; 11192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT DefCount; 11292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT DclCount; 11392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TextureNormalInstructions; 11492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TextureLoadInstructions; 11592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TextureCompInstructions; 11692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TextureBiasInstructions; 11792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TextureGradientInstructions; 11892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT FloatInstructionCount; 11992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT IntInstructionCount; 12092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT UintInstructionCount; 12192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT StaticFlowControlCount; 12292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT DynamicFlowControlCount; 12392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT MacroInstructionCount; 12492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT ArrayInstructionCount; 12592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT CutInstructionCount; 12692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT EmitInstructionCount; 12792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_PRIMITIVE_TOPOLOGY GSOutputTopology; 12892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT GSMaxOutputVertexCount; 12992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_PRIMITIVE InputPrimitive; 13092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT PatchConstantParameters; 13192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT cGSInstanceCount; 13292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT cControlPoints; 13392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive; 13492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_TESSELLATOR_PARTITIONING HSPartitioning; 13592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_TESSELLATOR_DOMAIN TessellatorDomain; 13692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 13792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT cBarrierInstructions; 13892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT cInterlockedInstructions; 13992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT cTextureStoreInstructions; 14092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri} D3D11_SHADER_DESC; 14192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 14292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef struct _D3D11_SHADER_INPUT_BIND_DESC 14392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 14492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPCSTR Name; 14592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_SHADER_INPUT_TYPE Type; 14692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT BindPoint; 14792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT BindCount; 14892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 14992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT uFlags; 15092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_RESOURCE_RETURN_TYPE ReturnType; 15192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_SRV_DIMENSION Dimension; 15292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT NumSamples; 15392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri} D3D11_SHADER_INPUT_BIND_DESC; 15492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 15592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri[local, object, uuid("6e6ffa6a-9bae-4613-a51e-91652d508c21")] 15692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieriinterface ID3D11ShaderReflectionType 15792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 15892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetDesc( 159b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D11_SHADER_TYPE_DESC *a 16092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 16192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 16292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D11ShaderReflectionType* GetMemberTypeByIndex( 163b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a 16492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 16592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 16692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D11ShaderReflectionType* GetMemberTypeByName( 167b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] LPCSTR a 16892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 16992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 17092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPCSTR GetMemberTypeName( 171b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a 17292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 17392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 17492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT IsEqual( 175b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] ID3D11ShaderReflectionType* a 17692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 17792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D11ShaderReflectionType* GetSubType(); 17892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D11ShaderReflectionType* GetBaseClass(); 17992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT GetNumInterfaces(); 18092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D11ShaderReflectionType* GetInterfaceByIndex( 181b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a 18292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 18392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT IsOfType( 184b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] ID3D11ShaderReflectionType* a 18592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 18692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT ImplementsInterface( 187b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] ID3D11ShaderReflectionType* a 18892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 18992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri}; 19092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 19192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieriinterface ID3D11ShaderReflectionConstantBuffer; 19292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 19392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri[object, local, uuid("51f23923-f3e5-4bd1-91cb-606177d8db4c")] 19492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieriinterface ID3D11ShaderReflectionVariable 19592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 19692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetDesc( 197b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D11_SHADER_VARIABLE_DESC *a 19892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 19992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 20092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D11ShaderReflectionType* GetType(); 20192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D11ShaderReflectionConstantBuffer* GetBuffer(); 20292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 20392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT GetInterfaceSlot( 204b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a 20592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 20692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri}; 20792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 20892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri[object, local, uuid("eb62d63d-93dd-4318-8ae8-c6f83ad371b8")] 20992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieriinterface ID3D11ShaderReflectionConstantBuffer 21092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 21192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetDesc( 212b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D11_SHADER_BUFFER_DESC *a 21392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 21492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 21592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D11ShaderReflectionVariable* GetVariableByIndex( 216b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a 21792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 21892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 21992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D11ShaderReflectionVariable* GetVariableByName( 220b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] LPCSTR a 22192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 22292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri}; 22392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 22492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri[object,local,uuid("0a233719-3960-4578-9d7c-203b8b1d9cc1")] 22592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieriinterface ID3D11ShaderReflection 22692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 22792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetDesc( 228b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D11_SHADER_DESC *a 22992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 23092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 23192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D11ShaderReflectionConstantBuffer* GetConstantBufferByIndex( 232b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a 23392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 23492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 23592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D11ShaderReflectionConstantBuffer* GetConstantBufferByName( 236b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] LPCSTR a 23792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 23892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 23992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetResourceBindingDesc( 240b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a, 241b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D11_SHADER_INPUT_BIND_DESC *b 24292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 24392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 24492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetInputParameterDesc( 245b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a, 246b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D11_SIGNATURE_PARAMETER_DESC *b 24792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 24892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 24992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetOutputParameterDesc 25092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ( 251b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a, 252b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D11_SIGNATURE_PARAMETER_DESC *b 25392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 25492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 25592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetPatchConstantParameterDesc( 256b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a, 257b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D11_SIGNATURE_PARAMETER_DESC *b 25892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 25992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 26092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D11ShaderReflectionVariable* GetVariableByName( 261b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] LPCSTR a 26292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 26392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 26492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetResourceBindingDescByName( 265b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] LPCSTR a, 266b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D11_SHADER_INPUT_BIND_DESC *b 26792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 26892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 26992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT GetMovInstructionCount(); 27092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT GetMovcInstructionCount(); 27192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT GetConversionInstructionCount(); 27292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT GetBitwiseInstructionCount(); 27392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_PRIMITIVE GetGSInputPrimitive(); 27492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri BOOL IsSampleFrequencyShader(); 27592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT GetNumInterfaceSlots(); 27692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 27792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetMinFeatureLevel( 278b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D_FEATURE_LEVEL* a 27992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 28092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 28192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT GetThreadGroupSize( 282b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out,optional] UINT* a, 283b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out,optional] UINT* b, 284b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out,optional] UINT* c 28592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 28692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri}; 28792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 288