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 "d3d10.idl"; 2892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 2992617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericpp_quote("#define D3D10_TX_VERSION(a, b) (('T' << 24) | ('X' << 16) | ((a) << 8) | (b)))") 3092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 3192617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_DEBUG = (1 << 0); 3292617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_SKIP_VALIDATION = (1 << 1); 3392617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_SKIP_OPTIMIZATION = (1 << 2); 3492617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_PACK_MATRIX_ROW_MAJOR = (1 << 3); 3592617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR = (1 << 4); 3692617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_PARTIAL_PRECISION = (1 << 5); 3792617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT = (1 << 6); 3892617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT = (1 << 7); 3992617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_NO_PRESHADER = (1 << 8); 4092617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_AVOID_FLOW_CONTROL = (1 << 9); 4192617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_PREFER_FLOW_CONTROL = (1 << 10); 4292617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_ENABLE_STRICTNESS = (1 << 11); 4392617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY = (1 << 12); 4492617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_IEEE_STRICTNESS = (1 << 13); 4592617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_WARNINGS_ARE_ERRORS = (1 << 18); 4692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 4792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 4892617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_OPTIMIZATION_LEVEL0 = (1 << 14); 4992617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_OPTIMIZATION_LEVEL1 = 0; 5092617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_OPTIMIZATION_LEVEL2 = ((1 << 14) | (1 << 15)); 5192617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericonst unsigned int D3D10_SHADER_OPTIMIZATION_LEVEL3 = (1 << 15); 5292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 5392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_SHADER_MACRO D3D10_SHADER_MACRO; 5492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D10_SHADER_MACRO* LPD3D10_SHADER_MACRO; 5592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 5692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 5792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_SHADER_VARIABLE_CLASS D3D10_SHADER_VARIABLE_CLASS; 5892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D10_SHADER_VARIABLE_CLASS* LPD3D10_SHADER_VARIABLE_CLASS; 5992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_SHADER_VARIABLE_FLAGS D3D10_SHADER_VARIABLE_FLAGS; 6092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D10_SHADER_VARIABLE_FLAGS* LPD3D10_SHADER_VARIABLE_FLAGS; 6192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_SHADER_VARIABLE_TYPE D3D10_SHADER_VARIABLE_TYPE; 6292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D10_SHADER_VARIABLE_TYPE* LPD3D10_SHADER_VARIABLE_TYPE; 6392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_SHADER_INPUT_FLAGS D3D10_SHADER_INPUT_FLAGS; 6492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D10_SHADER_INPUT_FLAGS* LPD3D10_SHADER_INPUT_FLAGS; 6592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_SHADER_INPUT_TYPE D3D10_SHADER_INPUT_TYPE; 6692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D10_SHADER_INPUT_TYPE* LPD3D10_SHADER_INPUT_TYPE; 6792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_SHADER_CBUFFER_FLAGS D3D10_SHADER_CBUFFER_FLAGS; 6892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D10_SHADER_CBUFFER_FLAGS* LPD3D10_SHADER_CBUFFER_FLAGS; 6992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_CBUFFER_TYPE D3D10_CBUFFER_TYPE; 7092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D10_CBUFFER_TYPE* LPD3D10_CBUFFER_TYPE; 7192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_NAME D3D10_NAME; 7292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_RESOURCE_RETURN_TYPE D3D10_RESOURCE_RETURN_TYPE; 7392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_REGISTER_COMPONENT_TYPE D3D10_REGISTER_COMPONENT_TYPE; 7492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_INCLUDE_TYPE D3D10_INCLUDE_TYPE; 7592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef ID3DInclude* LPD3D10INCLUDE; 7692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 7792617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericpp_quote("#define D3D10_SHVER_GET_TYPE(v) (((v) >> 16) & 0xffff)") 7892617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericpp_quote("#define D3D10_SHVER_GET_MAJOR(v) (((v) >> 4) & 0xf)") 7992617aeac109481258f0c3863d09c1b8903d438bLuca Barbiericpp_quote("#define D3D10_SHVER_GET_MINOR(v) (((v) >> 0) & 0xf)") 8092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 8192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef struct _D3D10_SIGNATURE_PARAMETER_DESC 8292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 8392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPCSTR SemanticName; 8492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT SemanticIndex; 8592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Register; 8692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_NAME SystemValueType; 8792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_REGISTER_COMPONENT_TYPE ComponentType; 8892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri BYTE Mask; 8992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri BYTE ReadWriteMask; 9092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri} D3D10_SIGNATURE_PARAMETER_DESC; 9192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 9292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef struct _D3D10_SHADER_BUFFER_DESC 9392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 9492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPCSTR Name; 9592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_CBUFFER_TYPE Type; 9692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Variables; 9792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Size; 9892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT uFlags; 9992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri} D3D10_SHADER_BUFFER_DESC; 10092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 10192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef struct _D3D10_SHADER_VARIABLE_DESC 10292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 10392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPCSTR Name; 10492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT StartOffset; 10592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Size; 10692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT uFlags; 10792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPVOID DefaultValue; 10892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT StartTexture; 10992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TextureSize; 11092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT StartSampler; 11192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT SamplerSize; 11292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri} D3D10_SHADER_VARIABLE_DESC; 11392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 11492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef struct _D3D10_SHADER_TYPE_DESC 11592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 11692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_SHADER_VARIABLE_CLASS Class; 11792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_SHADER_VARIABLE_TYPE Type; 11892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Rows; 11992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Columns; 12092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Elements; 12192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Members; 12292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Offset; 12392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPCSTR Name; 12492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri} D3D10_SHADER_TYPE_DESC; 12592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 12692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_TESSELLATOR_DOMAIN D3D10_TESSELLATOR_DOMAIN; 12792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_TESSELLATOR_PARTITIONING D3D10_TESSELLATOR_PARTITIONING; 12892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D10_TESSELLATOR_OUTPUT_PRIMITIVE; 12992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 13092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef struct _D3D10_SHADER_DESC 13192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 13292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Version; 13392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPCSTR Creator; 13492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT Flags; 13592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 13692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT ConstantBuffers; 13792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT BoundResources; 13892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT InputParameters; 13992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT OutputParameters; 14092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 14192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT InstructionCount; 14292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TempRegisterCount; 14392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TempArrayCount; 14492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT DefCount; 14592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT DclCount; 14692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TextureNormalInstructions; 14792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TextureLoadInstructions; 14892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TextureCompInstructions; 14992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TextureBiasInstructions; 15092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT TextureGradientInstructions; 15192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT FloatInstructionCount; 15292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT IntInstructionCount; 15392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT UintInstructionCount; 15492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT StaticFlowControlCount; 15592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT DynamicFlowControlCount; 15692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT MacroInstructionCount; 15792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT ArrayInstructionCount; 15892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT CutInstructionCount; 15992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT EmitInstructionCount; 16092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_PRIMITIVE_TOPOLOGY GSOutputTopology; 16192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT GSMaxOutputVertexCount; 16292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri} D3D10_SHADER_DESC; 16392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 16492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieritypedef struct _D3D10_SHADER_INPUT_BIND_DESC 16592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 16692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPCSTR Name; 16792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_SHADER_INPUT_TYPE Type; 16892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT BindPoint; 16992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT BindCount; 17092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 17192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT uFlags; 17292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_RESOURCE_RETURN_TYPE ReturnType; 17392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri D3D_SRV_DIMENSION Dimension; 17492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri UINT NumSamples; 17592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri} D3D10_SHADER_INPUT_BIND_DESC; 17692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 17792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri[local, object, uuid("C530AD7D-9B16-4395-A979-BA2ECFF83ADD")] 17892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieriinterface ID3D10ShaderReflectionType 17992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 18092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetDesc( 181b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D10_SHADER_TYPE_DESC *a 18292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 18392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 18492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D10ShaderReflectionType* GetMemberTypeByIndex( 185b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a 18692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 18792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 18892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D10ShaderReflectionType* GetMemberTypeByName( 189b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] LPCSTR a 19092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 19192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 19292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri LPCSTR GetMemberTypeName( 193b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a 19492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 19592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri}; 19692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 19792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieriinterface ID3D10ShaderReflectionConstantBuffer; 19892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 19992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri[object, local, uuid("1BF63C95-2650-405d-99C1-3636BD1DA0A1")] 20092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieriinterface ID3D10ShaderReflectionVariable 20192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 20292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetDesc( 203b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D10_SHADER_VARIABLE_DESC *a 20492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 20592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 20692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D10ShaderReflectionType* GetType(); 20792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri}; 20892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 20992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri[object, local, uuid("66C66A94-DDDD-4b62-A66A-F0DA33C2B4D0")] 21092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieriinterface ID3D10ShaderReflectionConstantBuffer 21192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 21292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetDesc( 213b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D10_SHADER_BUFFER_DESC *a 21492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 21592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 21692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D10ShaderReflectionVariable* GetVariableByIndex( 217b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a 21892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 21992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 22092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D10ShaderReflectionVariable* GetVariableByName( 221b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] LPCSTR a 22292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 22392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri}; 22492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 22592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri[object,local,uuid("D40E20B6-F8F7-42ad-AB20-4BAF8F15DFAA")] 22692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieriinterface ID3D10ShaderReflection : IUnknown 22792617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri{ 22892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetDesc( 229b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D10_SHADER_DESC *a 23092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 23192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 23292617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByIndex( 233b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a 23492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 23592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 23692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByName( 237b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] LPCSTR a 23892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 23992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 24092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetResourceBindingDesc( 241b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a, 242b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D10_SHADER_INPUT_BIND_DESC *b 24392617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 24492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 24592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetInputParameterDesc( 246b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a, 247b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D10_SIGNATURE_PARAMETER_DESC *b 24892617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 24992617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 25092617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri HRESULT GetOutputParameterDesc 25192617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ( 252b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [in] UINT a, 253b6b3fbcdb14faf5a5be66112a06d3406e7a46998Luca Barbieri [out] D3D10_SIGNATURE_PARAMETER_DESC *b 25492617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri ); 25592617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri}; 25692617aeac109481258f0c3863d09c1b8903d438bLuca Barbieri 25792617aeac109481258f0c3863d09c1b8903d438bLuca BarbieriHRESULT D3D10CompileShader(LPCSTR pSrcData, SIZE_T SrcDataLen, LPCSTR pFileName, const D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude, 2586c598c78bd17642d731cf57b8369cc794f64ba2fLuca Barbieri LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs); 25992617aeac109481258f0c3863d09c1b8903d438bLuca BarbieriHRESULT D3D10DisassembleShader(const void *pShader, SIZE_T BytecodeLength, BOOL EnableColorCode, LPCSTR pComments, ID3D10Blob** ppDisassembly); 26092617aeac109481258f0c3863d09c1b8903d438bLuca BarbieriLPCSTR D3D10GetPixelShaderProfile(ID3D10Device *pDevice); 26192617aeac109481258f0c3863d09c1b8903d438bLuca BarbieriLPCSTR D3D10GetVertexShaderProfile(ID3D10Device *pDevice); 26292617aeac109481258f0c3863d09c1b8903d438bLuca BarbieriLPCSTR D3D10GetGeometryShaderProfile(ID3D10Device *pDevice); 26392617aeac109481258f0c3863d09c1b8903d438bLuca BarbieriHRESULT D3D10ReflectShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10ShaderReflection **ppReflector); 26492617aeac109481258f0c3863d09c1b8903d438bLuca BarbieriHRESULT D3D10PreprocessShader(LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, const D3D10_SHADER_MACRO* pDefines, 2656c598c78bd17642d731cf57b8369cc794f64ba2fLuca Barbieri LPD3D10INCLUDE pInclude, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs); 26692617aeac109481258f0c3863d09c1b8903d438bLuca BarbieriHRESULT D3D10GetInputSignatureBlob(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob); 26792617aeac109481258f0c3863d09c1b8903d438bLuca BarbieriHRESULT D3D10GetOutputSignatureBlob(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob); 26892617aeac109481258f0c3863d09c1b8903d438bLuca BarbieriHRESULT D3D10GetInputAndOutputSignatureBlob(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob); 26992617aeac109481258f0c3863d09c1b8903d438bLuca BarbieriHRESULT D3D10GetShaderDebugInfo(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob** ppDebugInfo); 270