1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/**************************************************************************
2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Copyright 2010 Luca Barbieri
4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Permission is hereby granted, free of charge, to any person obtaining
6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * a copy of this software and associated documentation files (the
7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * "Software"), to deal in the Software without restriction, including
8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * without limitation the rights to use, copy, modify, merge, publish,
9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * distribute, sublicense, and/or sell copies of the Software, and to
10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * permit persons to whom the Software is furnished to do so, subject to
11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * the following conditions:
12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * The above copyright notice and this permission notice (including the
14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * next paragraph) shall be included in all copies or substantial
15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * portions of the Software.
16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org **************************************************************************/
26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgimport "d3d10.idl";
28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcpp_quote("#define D3D10_TX_VERSION(a, b) (('T' << 24) | ('X' << 16) | ((a) << 8) | (b)))")
30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_DEBUG = (1 << 0);
32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_SKIP_VALIDATION = (1 << 1);
33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_SKIP_OPTIMIZATION = (1 << 2);
34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_PACK_MATRIX_ROW_MAJOR = (1 << 3);
35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR = (1 << 4);
36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_PARTIAL_PRECISION = (1 << 5);
37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT = (1 << 6);
38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT = (1 << 7);
39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_NO_PRESHADER = (1 << 8);
40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_AVOID_FLOW_CONTROL = (1 << 9);
41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_PREFER_FLOW_CONTROL = (1 << 10);
42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_ENABLE_STRICTNESS = (1 << 11);
43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY = (1 << 12);
44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_IEEE_STRICTNESS = (1 << 13);
45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_WARNINGS_ARE_ERRORS = (1 << 18);
46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_OPTIMIZATION_LEVEL0 = (1 << 14);
49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_OPTIMIZATION_LEVEL1 = 0;
50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_OPTIMIZATION_LEVEL2 = ((1 << 14) | (1 << 15));
51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgconst unsigned int D3D10_SHADER_OPTIMIZATION_LEVEL3 = (1 << 15);
52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_SHADER_MACRO D3D10_SHADER_MACRO;
54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D10_SHADER_MACRO* LPD3D10_SHADER_MACRO;
55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_SHADER_VARIABLE_CLASS D3D10_SHADER_VARIABLE_CLASS;
58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D10_SHADER_VARIABLE_CLASS* LPD3D10_SHADER_VARIABLE_CLASS;
59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_SHADER_VARIABLE_FLAGS D3D10_SHADER_VARIABLE_FLAGS;
60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D10_SHADER_VARIABLE_FLAGS* LPD3D10_SHADER_VARIABLE_FLAGS;
61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_SHADER_VARIABLE_TYPE D3D10_SHADER_VARIABLE_TYPE;
62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D10_SHADER_VARIABLE_TYPE* LPD3D10_SHADER_VARIABLE_TYPE;
63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_SHADER_INPUT_FLAGS D3D10_SHADER_INPUT_FLAGS;
64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D10_SHADER_INPUT_FLAGS* LPD3D10_SHADER_INPUT_FLAGS;
65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_SHADER_INPUT_TYPE D3D10_SHADER_INPUT_TYPE;
66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D10_SHADER_INPUT_TYPE* LPD3D10_SHADER_INPUT_TYPE;
67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_SHADER_CBUFFER_FLAGS D3D10_SHADER_CBUFFER_FLAGS;
68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D10_SHADER_CBUFFER_FLAGS* LPD3D10_SHADER_CBUFFER_FLAGS;
69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_CBUFFER_TYPE D3D10_CBUFFER_TYPE;
70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D10_CBUFFER_TYPE* LPD3D10_CBUFFER_TYPE;
71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_NAME D3D10_NAME;
72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_RESOURCE_RETURN_TYPE D3D10_RESOURCE_RETURN_TYPE;
73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_REGISTER_COMPONENT_TYPE D3D10_REGISTER_COMPONENT_TYPE;
74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_INCLUDE_TYPE D3D10_INCLUDE_TYPE;
75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef ID3DInclude* LPD3D10INCLUDE;
76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcpp_quote("#define D3D10_SHVER_GET_TYPE(v) (((v) >> 16) & 0xffff)")
78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcpp_quote("#define D3D10_SHVER_GET_MAJOR(v) (((v) >> 4) & 0xf)")
79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcpp_quote("#define D3D10_SHVER_GET_MINOR(v) (((v) >> 0) & 0xf)")
80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct _D3D10_SIGNATURE_PARAMETER_DESC
82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	LPCSTR SemanticName;
84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT SemanticIndex;
85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT Register;
86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	D3D_NAME SystemValueType;
87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	D3D_REGISTER_COMPONENT_TYPE ComponentType;
88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	BYTE Mask;
89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	BYTE ReadWriteMask;
90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} D3D10_SIGNATURE_PARAMETER_DESC;
91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct _D3D10_SHADER_BUFFER_DESC
93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	LPCSTR Name;
95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	D3D_CBUFFER_TYPE Type;
96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT Variables;
97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT Size;
98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT uFlags;
99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} D3D10_SHADER_BUFFER_DESC;
100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct _D3D10_SHADER_VARIABLE_DESC
102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	LPCSTR Name;
104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT StartOffset;
105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT Size;
106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT uFlags;
107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	LPVOID DefaultValue;
108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT StartTexture;
109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT TextureSize;
110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT StartSampler;
111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT SamplerSize;
112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} D3D10_SHADER_VARIABLE_DESC;
113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct _D3D10_SHADER_TYPE_DESC
115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	D3D_SHADER_VARIABLE_CLASS Class;
117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	D3D_SHADER_VARIABLE_TYPE Type;
118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT Rows;
119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT Columns;
120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT Elements;
121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT Members;
122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT Offset;
123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	LPCSTR Name;
124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} D3D10_SHADER_TYPE_DESC;
125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_TESSELLATOR_DOMAIN D3D10_TESSELLATOR_DOMAIN;
127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_TESSELLATOR_PARTITIONING D3D10_TESSELLATOR_PARTITIONING;
128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D10_TESSELLATOR_OUTPUT_PRIMITIVE;
129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct _D3D10_SHADER_DESC
131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT Version;
133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	LPCSTR Creator;
134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT Flags;
135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT ConstantBuffers;
137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT BoundResources;
138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT InputParameters;
139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT OutputParameters;
140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT InstructionCount;
142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT TempRegisterCount;
143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT TempArrayCount;
144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT DefCount;
145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT DclCount;
146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT TextureNormalInstructions;
147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT TextureLoadInstructions;
148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT TextureCompInstructions;
149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT TextureBiasInstructions;
150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT TextureGradientInstructions;
151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT FloatInstructionCount;
152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT IntInstructionCount;
153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT UintInstructionCount;
154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT StaticFlowControlCount;
155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT DynamicFlowControlCount;
156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT MacroInstructionCount;
157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT ArrayInstructionCount;
158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT CutInstructionCount;
159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT EmitInstructionCount;
160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT GSMaxOutputVertexCount;
162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} D3D10_SHADER_DESC;
163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct _D3D10_SHADER_INPUT_BIND_DESC
165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	LPCSTR Name;
167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	D3D_SHADER_INPUT_TYPE Type;
168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT BindPoint;
169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT BindCount;
170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT uFlags;
172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	D3D_RESOURCE_RETURN_TYPE ReturnType;
173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	D3D_SRV_DIMENSION Dimension;
174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	UINT NumSamples;
175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} D3D10_SHADER_INPUT_BIND_DESC;
176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org[local, object, uuid("C530AD7D-9B16-4395-A979-BA2ECFF83ADD")]
178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orginterface ID3D10ShaderReflectionType
179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	HRESULT GetDesc(
181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[out] D3D10_SHADER_TYPE_DESC *a
182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	);
183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	ID3D10ShaderReflectionType* GetMemberTypeByIndex(
185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[in] UINT a
186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	);
187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	ID3D10ShaderReflectionType* GetMemberTypeByName(
189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[in] LPCSTR a
190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	);
191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	LPCSTR GetMemberTypeName(
193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[in] UINT a
194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	);
195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org};
196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orginterface ID3D10ShaderReflectionConstantBuffer;
198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org[object, local, uuid("1BF63C95-2650-405d-99C1-3636BD1DA0A1")]
200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orginterface ID3D10ShaderReflectionVariable
201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	HRESULT GetDesc(
203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[out] D3D10_SHADER_VARIABLE_DESC *a
204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	);
205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	ID3D10ShaderReflectionType* GetType();
207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org};
208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org[object, local, uuid("66C66A94-DDDD-4b62-A66A-F0DA33C2B4D0")]
210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orginterface ID3D10ShaderReflectionConstantBuffer
211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	HRESULT GetDesc(
213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[out] D3D10_SHADER_BUFFER_DESC *a
214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	);
215f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
216f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	ID3D10ShaderReflectionVariable* GetVariableByIndex(
217f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[in] UINT a
218f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	);
219f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
220f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	ID3D10ShaderReflectionVariable* GetVariableByName(
221f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[in] LPCSTR a
222f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	);
223f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org};
224f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
225f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org[object,local,uuid("D40E20B6-F8F7-42ad-AB20-4BAF8F15DFAA")]
226f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orginterface ID3D10ShaderReflection : IUnknown
227f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
228f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	HRESULT GetDesc(
229f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[out] D3D10_SHADER_DESC *a
230f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	);
231f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
232f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByIndex(
233f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[in] UINT a
234f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	);
235f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
236f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByName(
237f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[in] LPCSTR a
238f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	);
239f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
240f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	HRESULT GetResourceBindingDesc(
241f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[in] UINT a,
242f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[out] D3D10_SHADER_INPUT_BIND_DESC *b
243f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	);
244f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
245f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	HRESULT GetInputParameterDesc(
246f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[in] UINT a,
247f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[out] D3D10_SIGNATURE_PARAMETER_DESC *b
248f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	);
249f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
250f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	HRESULT GetOutputParameterDesc
251f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	(
252f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[in] UINT a,
253f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org		[out] D3D10_SIGNATURE_PARAMETER_DESC *b
254f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	);
255f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org};
256f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
257f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgHRESULT D3D10CompileShader(LPCSTR pSrcData, SIZE_T SrcDataLen, LPCSTR pFileName, const D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
258f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs);
259f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgHRESULT D3D10DisassembleShader(const void *pShader, SIZE_T BytecodeLength, BOOL EnableColorCode, LPCSTR pComments, ID3D10Blob** ppDisassembly);
260f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgLPCSTR D3D10GetPixelShaderProfile(ID3D10Device *pDevice);
261f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgLPCSTR D3D10GetVertexShaderProfile(ID3D10Device *pDevice);
262f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgLPCSTR D3D10GetGeometryShaderProfile(ID3D10Device *pDevice);
263f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgHRESULT D3D10ReflectShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10ShaderReflection **ppReflector);
264f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgHRESULT D3D10PreprocessShader(LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, const D3D10_SHADER_MACRO* pDefines,
265f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org	LPD3D10INCLUDE pInclude, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs);
266f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgHRESULT D3D10GetInputSignatureBlob(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob);
267f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgHRESULT D3D10GetOutputSignatureBlob(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob);
268f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgHRESULT D3D10GetInputAndOutputSignatureBlob(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob);
269f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgHRESULT D3D10GetShaderDebugInfo(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob** ppDebugInfo);
270