1/*
2 * Copyright 2007 Andras Kovacs
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19/* modified by Luca Barbieri on Sep 2010 to:
20 * - converted to using d3dcommon.idl
21 * - add missing D3D10_FORMAT_SUPPORT
22 * - add DXGI 1.1 	D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX, D3D10_RESOURCE_MISC_GDI_COMPATIBLE
23*/
24import "oaidl.idl";
25import "ocidl.idl";
26import "dxgi.idl";
27import "d3dcommon.idl";
28
29cpp_quote("#ifndef _D3D10_CONSTANTS")
30cpp_quote("#define _D3D10_CONSTANTS")
31const float D3D10_DEFAULT_BLEND_FACTOR_ALPHA                                            = 1.0;
32const float D3D10_DEFAULT_BLEND_FACTOR_BLUE                                             = 1.0;
33const float D3D10_DEFAULT_BLEND_FACTOR_GREEN                                            = 1.0;
34const float D3D10_DEFAULT_BLEND_FACTOR_RED                                              = 1.0;
35const float D3D10_DEFAULT_BORDER_COLOR_COMPONENT                                        = 0.0;
36const float D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS                                       = 0.0;
37const float D3D10_DEFAULT_DEPTH_BIAS_CLAMP                                              = 0.0;
38const float D3D10_DEFAULT_MAX_ANISOTROPY                                                = 16.0;
39const float D3D10_DEFAULT_MIP_LOD_BIAS                                                  = 0.0;
40const float D3D10_DEFAULT_VIEWPORT_MAX_DEPTH                                            = 0.0;
41const float D3D10_DEFAULT_VIEWPORT_MIN_DEPTH                                            = 0.0;
42const float D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP                                        = 0.6;
43const float D3D10_FLOAT32_MAX                                                           = 3.402823466e+38;
44const float D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP                                   = 0.6;
45const float D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR                                    = 2.4;
46const float D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR                                      = 1.0;
47const float D3D10_FLOAT_TO_SRGB_OFFSET                                                  = 0.055;
48const float D3D10_FLOAT_TO_SRGB_SCALE_1                                                 = 12.92;
49const float D3D10_FLOAT_TO_SRGB_SCALE_2                                                 = 1.055;
50const float D3D10_FLOAT_TO_SRGB_THRESHOLD                                               = 0.0031308;
51const float D3D10_FTOI_INSTRUCTION_MAX_INPUT                                            = 2147483647.999;
52const float D3D10_FTOI_INSTRUCTION_MIN_INPUT                                            = -2147483648.999;
53const float D3D10_FTOU_INSTRUCTION_MAX_INPUT                                            = 4294967295.999;
54const float D3D10_FTOU_INSTRUCTION_MIN_INPUT                                            = 0.0;
55const float D3D10_LINEAR_GAMMA                                                          = 1.0;
56const float D3D10_MAX_BORDER_COLOR_COMPONENT                                            = 1.0;
57const float D3D10_MAX_DEPTH                                                             = 1.0;
58const float D3D10_MAX_POSITION_VALUE                                                    = 3.402823466e+34;
59const float D3D10_MIN_BORDER_COLOR_COMPONENT                                            = 0.0;
60const float D3D10_MIN_DEPTH                                                             = 0.0;
61const float D3D10_MIP_LOD_BIAS_MAX                                                      = 15.99;
62const float D3D10_MIP_LOD_BIAS_MIN                                                      = -16.0;
63const float D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT                                  = 0.5;
64const float D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH                                      = 1.4;
65const float D3D10_SRGB_GAMMA                                                            = 2.2;
66const float D3D10_SRGB_TO_FLOAT_DENOMINATOR_1                                           = 12.92;
67const float D3D10_SRGB_TO_FLOAT_DENOMINATOR_2                                           = 1.055;
68const float D3D10_SRGB_TO_FLOAT_EXPONENT                                                = 2.4;
69const float D3D10_SRGB_TO_FLOAT_OFFSET                                                  = 0.055;
70const float D3D10_SRGB_TO_FLOAT_THRESHOLD                                               = 0.04045;
71const float D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP                                        = 0.5;
72const float D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT                           = 0.0;
73const float D3D_SPEC_VERSION                                                            = 1.050005;
74const unsigned int D3D10_16BIT_INDEX_STRIP_CUT_VALUE                                    = 0xffff;
75const unsigned int D3D10_32BIT_INDEX_STRIP_CUT_VALUE                                    = 0xffffffff;
76const unsigned int D3D10_8BIT_INDEX_STRIP_CUT_VALUE                                     = 0xff;
77const unsigned int D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT                             = 9;
78const unsigned int D3D10_CLIP_OR_CULL_DISTANCE_COUNT                                    = 8;
79const unsigned int D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT                            = 2;
80const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT                    = 14;
81const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS                        = 4;
82const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT               = 32;
83const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT                     = 15;
84const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS               = 4;
85const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT                    = 15;
86const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST           = 1;
87const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS               = 1;
88const unsigned int D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT                         = 64;
89const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS     = 4;
90const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT          = 1;
91const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
92const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS     = 1;
93const unsigned int D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT               = 32;
94const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS                = 1;
95const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT                     = 128;
96const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST            = 1;
97const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS                = 1;
98const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT                         = 128;
99const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS                       = 1;
100const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT                            = 16;
101const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST                   = 1;
102const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS                       = 1;
103const unsigned int D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT                                = 16;
104const unsigned int D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT                          = 32;
105const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS                          = 4;
106const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT                 = 32;
107const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COUNT                               = 4096;
108const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST                      = 3;
109const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS                          = 3;
110const unsigned int D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX                      = 10;
111const int D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN                               = -10;
112const int D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE                                  = -8;
113const unsigned int D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE                         = 7;
114const unsigned int D3D10_DEFAULT_DEPTH_BIAS                                             = 0;
115const unsigned int D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX                              = 0;
116const unsigned int D3D10_DEFAULT_SAMPLE_MASK                                            = 0xffffffff;
117const unsigned int D3D10_DEFAULT_SCISSOR_ENDX                                           = 0;
118const unsigned int D3D10_DEFAULT_SCISSOR_ENDY                                           = 0;
119const unsigned int D3D10_DEFAULT_SCISSOR_STARTX                                         = 0;
120const unsigned int D3D10_DEFAULT_SCISSOR_STARTY                                         = 0;
121const unsigned int D3D10_DEFAULT_STENCIL_READ_MASK                                      = 0xff;
122const unsigned int D3D10_DEFAULT_STENCIL_REFERENCE                                      = 0;
123const unsigned int D3D10_DEFAULT_STENCIL_WRITE_MASK                                     = 0xff;
124const unsigned int D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX                         = 0;
125const unsigned int D3D10_DEFAULT_VIEWPORT_HEIGHT                                        = 0;
126const unsigned int D3D10_DEFAULT_VIEWPORT_TOPLEFTX                                      = 0;
127const unsigned int D3D10_DEFAULT_VIEWPORT_TOPLEFTY                                      = 0;
128const unsigned int D3D10_DEFAULT_VIEWPORT_WIDTH                                         = 0;
129const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS                        = 1;
130const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT               = 32;
131const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT                             = 1;
132const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST                    = 2;
133const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS                        = 1;
134const unsigned int D3D10_GS_INPUT_REGISTER_COMPONENTS                                   = 4;
135const unsigned int D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          =32;
136const unsigned int D3D10_GS_INPUT_REGISTER_COUNT                                        = 16;
137const unsigned int D3D10_GS_INPUT_REGISTER_READS_PER_INST                               = 2;
138const unsigned int D3D10_GS_INPUT_REGISTER_READ_PORTS                                   = 1;
139const unsigned int D3D10_GS_INPUT_REGISTER_VERTICES                                     = 6;
140const unsigned int D3D10_GS_OUTPUT_ELEMENTS                                             = 32;
141const unsigned int D3D10_GS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
142const unsigned int D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
143const unsigned int D3D10_GS_OUTPUT_REGISTER_COUNT                                       = 32;
144const unsigned int D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES                        = 0;
145const unsigned int D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY                                  = 0;
146const unsigned int D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES                       = 0;
147const unsigned int D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT                             = 1;
148const unsigned int D3D10_IA_INSTANCE_ID_BIT_COUNT                                       = 32;
149const unsigned int D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT                                = 32;
150const unsigned int D3D10_IA_PRIMITIVE_ID_BIT_COUNT                                      = 32;
151const unsigned int D3D10_IA_VERTEX_ID_BIT_COUNT                                         = 32;
152const unsigned int D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT                            = 16;
153const unsigned int D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS                  = 64;
154const unsigned int D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT                        = 16;
155const unsigned int D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT                                = 0xffffffff;
156const unsigned int D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER                               = 0xffffffff;
157const unsigned int D3D10_MAX_MAXANISOTROPY                                              = 16;
158const unsigned int D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT                                   = 32;
159const unsigned int D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP                                 = 17;
160const unsigned int D3D10_MIN_MAXANISOTROPY                                              = 0;
161const unsigned int D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT                                   = 6;
162const unsigned int D3D10_MIP_LOD_RANGE_BIT_COUNT                                        = 8;
163const unsigned int D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT                     = 0;
164const unsigned int D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT                                  = 13;
165const unsigned int D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT                      = 15;
166const unsigned int D3D10_PS_FRONTFACING_DEFAULT_VALUE                                   = 0xffffffff;
167const unsigned int D3D10_PS_FRONTFACING_FALSE_VALUE                                     = 0;
168const unsigned int D3D10_PS_FRONTFACING_TRUE_VALUE                                      = 0xffffffff;
169const unsigned int D3D10_PS_INPUT_REGISTER_COMPONENTS                                   = 4;
170const unsigned int D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          = 32;
171const unsigned int D3D10_PS_INPUT_REGISTER_COUNT                                        = 32;
172const unsigned int D3D10_PS_INPUT_REGISTER_READS_PER_INST                               = 2;
173const unsigned int D3D10_PS_INPUT_REGISTER_READ_PORTS                                   = 1;
174const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS                            = 1;
175const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT                   = 32;
176const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT                                 = 1;
177const unsigned int D3D10_PS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
178const unsigned int D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
179const unsigned int D3D10_PS_OUTPUT_REGISTER_COUNT                                       = 8;
180const unsigned int D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT                             = 4096;
181const unsigned int D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP                       = 27;
182const unsigned int D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT                              = 4096;
183const unsigned int D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT                     = 4096;
184const unsigned int D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP                           = 32;
185const unsigned int D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP                                 = 32;
186const unsigned int D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION                = 8192;
187const unsigned int D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT                 = 1024;
188const unsigned int D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT                    = 4096;
189const unsigned int D3D10_REQ_MAXANISOTROPY                                              = 16;
190const unsigned int D3D10_REQ_MIP_LEVELS                                                 = 14;
191const unsigned int D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES                      = 2048;
192const unsigned int D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT                        = 4096;
193const unsigned int D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH                              = 8192;
194const unsigned int D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES                                 = 128;
195const unsigned int D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP                   = 20;
196const unsigned int D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT                           = 4096;
197const unsigned int D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION                             = 512;
198const unsigned int D3D10_REQ_TEXTURE1D_U_DIMENSION                                      = 8192;
199const unsigned int D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION                             = 512;
200const unsigned int D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION                                 = 8192;
201const unsigned int D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION                               = 2048;
202const unsigned int D3D10_REQ_TEXTURECUBE_DIMENSION                                      = 8192;
203const unsigned int D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL                   = 0;
204const unsigned int D3D10_SHADER_MAJOR_VERSION                                           = 4;
205const unsigned int D3D10_SHADER_MINOR_VERSION                                           = 0;
206const unsigned int D3D10_SHIFT_INSTRUCTION_PAD_VALUE                                    = 0;
207const unsigned int D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT                        = 5;
208const unsigned int D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT                               = 8;
209const unsigned int D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES                                  = 2048;
210const unsigned int D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES                            = 256;
211const unsigned int D3D10_SO_BUFFER_SLOT_COUNT                                           = 4;
212const unsigned int D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP                             = 0xffffffff;
213const unsigned int D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER                         = 1;
214const unsigned int D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT                               = 64;
215const unsigned int D3D10_STANDARD_COMPONENT_BIT_COUNT                                   = 32;
216const unsigned int D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED                           = 64;
217const unsigned int D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE               = 4;
218const unsigned int D3D10_STANDARD_PIXEL_COMPONENT_COUNT                                 = 128;
219const unsigned int D3D10_STANDARD_PIXEL_ELEMENT_COUNT                                   = 32;
220const unsigned int D3D10_STANDARD_VECTOR_SIZE                                           = 4;
221const unsigned int D3D10_STANDARD_VERTEX_ELEMENT_COUNT                                  = 16;
222const unsigned int D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT                          = 64;
223const unsigned int D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT                                  = 8;
224const unsigned int D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT                                  = 6;
225const unsigned int D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT                                  = 18;
226const unsigned int D3D10_UNBOUND_MEMORY_ACCESS_RESULT                                   = 0;
227const unsigned int D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX                             = 15;
228const unsigned int D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE             = 16;
229const unsigned int D3D10_VIEWPORT_BOUNDS_MAX                                            = 16383;
230const int D3D10_VIEWPORT_BOUNDS_MIN                                                     = -16384;
231const unsigned int D3D10_VS_INPUT_REGISTER_COMPONENTS                                   = 4;
232const unsigned int D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          = 32;
233const unsigned int D3D10_VS_INPUT_REGISTER_COUNT                                        = 16;
234const unsigned int D3D10_VS_INPUT_REGISTER_READS_PER_INST                               = 2;
235const unsigned int D3D10_VS_INPUT_REGISTER_READ_PORTS                                   = 1;
236const unsigned int D3D10_VS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
237const unsigned int D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
238const unsigned int D3D10_VS_OUTPUT_REGISTER_COUNT                                       = 16;
239const unsigned int D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT                          = 10;
240const unsigned int D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP                          = 25;
241const unsigned int D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP                                = 25;
242const unsigned int D3D_MAJOR_VERSION                                                    = 10;
243const unsigned int D3D_MINOR_VERSION                                                    = 0;
244const unsigned int D3D_SPEC_DATE_DAY                                                    = 8;
245const unsigned int D3D_SPEC_DATE_MONTH                                                  = 8;
246const unsigned int D3D_SPEC_DATE_YEAR                                                   = 2006;
247cpp_quote("#endif")
248
249const unsigned int D3D10_APPEND_ALIGNED_ELEMENT                                         = 0xffffffff;
250const unsigned int _FACD3D10                                                            = 0x87;
251const unsigned int _FACD3D10DEBUG                                                       = _FACD3D10 + 1;
252const unsigned int D3D10_FILTER_TYPE_MASK                                               = 0x3;
253const unsigned int D3D10_SDK_VERSION                                                    = 29;
254
255cpp_quote("#define MAKE_D3D10_HRESULT(code)                   MAKE_HRESULT( 1, _FACD3D10, code)")
256cpp_quote("#define MAKE_D3D10_STATUS(code)                    MAKE_HRESULT( 0, _FACD3D10, code)")
257cpp_quote("#define D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS  MAKE_D3D10_HRESULT(1)")
258cpp_quote("#define D3D10_ERROR_FILE_NOT_FOUND                 MAKE_D3D10_HRESULT(2)")
259
260typedef enum D3D10_FORMAT_SUPPORT
261{
262	D3D10_FORMAT_SUPPORT_BUFFER = 0x1,
263	D3D10_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x2,
264	D3D10_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x4,
265	D3D10_FORMAT_SUPPORT_SO_BUFFER = 0x8,
266	D3D10_FORMAT_SUPPORT_TEXTURE1D = 0x10,
267	D3D10_FORMAT_SUPPORT_TEXTURE2D = 0x20,
268	D3D10_FORMAT_SUPPORT_TEXTURE3D = 0x40,
269	D3D10_FORMAT_SUPPORT_TEXTURECUBE = 0x80,
270	D3D10_FORMAT_SUPPORT_SHADER_LOAD = 0x100,
271	D3D10_FORMAT_SUPPORT_SHADER_SAMPLE = 0x200,
272	D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x400,
273	D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x800,
274	D3D10_FORMAT_SUPPORT_MIP = 0x1000,
275	D3D10_FORMAT_SUPPORT_MIP_AUTOGEN = 0x2000,
276	D3D10_FORMAT_SUPPORT_RENDER_TARGET = 0x4000,
277	D3D10_FORMAT_SUPPORT_BLENDABLE = 0x8000,
278	D3D10_FORMAT_SUPPORT_DEPTH_STENCIL = 0x10000,
279	D3D10_FORMAT_SUPPORT_CPU_LOCKABLE = 0x20000,
280	D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x40000,
281	D3D10_FORMAT_SUPPORT_DISPLAY = 0x80000,
282	D3D10_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000,
283	D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000,
284	D3D10_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000,
285	D3D10_FORMAT_SUPPORT_SHADER_GATHER = 0x800000,
286} D3D10_FORMAT_SUPPORT;
287
288
289typedef enum D3D10_BLEND {
290    D3D10_BLEND_ZERO             = 1,
291    D3D10_BLEND_ONE              = 2,
292    D3D10_BLEND_SRC_COLOR        = 3,
293    D3D10_BLEND_INV_SRC_COLOR    = 4,
294    D3D10_BLEND_SRC_ALPHA        = 5,
295    D3D10_BLEND_INV_SRC_ALPHA    = 6,
296    D3D10_BLEND_DEST_ALPHA       = 7,
297    D3D10_BLEND_INV_DEST_ALPHA   = 8,
298    D3D10_BLEND_DEST_COLOR       = 9,
299    D3D10_BLEND_INV_DEST_COLOR   = 10,
300    D3D10_BLEND_SRC_ALPHA_SAT    = 11,
301    D3D10_BLEND_BLEND_FACTOR     = 14,
302    D3D10_BLEND_INV_BLEND_FACTOR = 15,
303    D3D10_BLEND_SRC1_COLOR       = 16,
304    D3D10_BLEND_INV_SRC1_COLOR   = 17,
305    D3D10_BLEND_SRC1_ALPHA       = 18,
306    D3D10_BLEND_INV_SRC1_ALPHA   = 19
307} D3D10_BLEND;
308
309typedef enum D3D10_BLEND_OP {
310    D3D10_BLEND_OP_ADD = 1,
311    D3D10_BLEND_OP_SUBTRACT,
312    D3D10_BLEND_OP_REV_SUBTRACT,
313    D3D10_BLEND_OP_MIN,
314    D3D10_BLEND_OP_MAX,
315} D3D10_BLEND_OP;
316
317typedef struct D3D10_BLEND_DESC {
318    BOOL AlphaToCoverageEnable;
319    BOOL BlendEnable[8];
320    D3D10_BLEND SrcBlend;
321    D3D10_BLEND DestBlend;
322    D3D10_BLEND_OP BlendOp;
323    D3D10_BLEND SrcBlendAlpha;
324    D3D10_BLEND DestBlendAlpha;
325    D3D10_BLEND_OP BlendOpAlpha;
326    UINT8 RenderTargetWriteMask[8];
327} D3D10_BLEND_DESC;
328
329typedef enum D3D10_DEPTH_WRITE_MASK {
330    D3D10_DEPTH_WRITE_MASK_ZERO,
331    D3D10_DEPTH_WRITE_MASK_ALL,
332} D3D10_DEPTH_WRITE_MASK;
333
334typedef enum D3D10_COMPARISON_FUNC {
335    D3D10_COMPARISON_NEVER = 1,
336    D3D10_COMPARISON_LESS,
337    D3D10_COMPARISON_EQUAL,
338    D3D10_COMPARISON_LESS_EQUAL,
339    D3D10_COMPARISON_GREATER,
340    D3D10_COMPARISON_NOT_EQUAL,
341    D3D10_COMPARISON_GREATER_EQUAL,
342    D3D10_COMPARISON_ALWAYS,
343} D3D10_COMPARISON_FUNC;
344
345typedef enum D3D10_STENCIL_OP {
346    D3D10_STENCIL_OP_KEEP = 1,
347    D3D10_STENCIL_OP_ZERO,
348    D3D10_STENCIL_OP_REPLACE,
349    D3D10_STENCIL_OP_INCR_SAT,
350    D3D10_STENCIL_OP_DECR_SAT,
351    D3D10_STENCIL_OP_INVERT,
352    D3D10_STENCIL_OP_INCR,
353    D3D10_STENCIL_OP_DECR,
354} D3D10_STENCIL_OP;
355
356typedef struct D3D10_DEPTH_STENCILOP_DESC {
357    D3D10_STENCIL_OP StencilFailOp;
358    D3D10_STENCIL_OP StencilDepthFailOp;
359    D3D10_STENCIL_OP StencilPassOp;
360    D3D10_COMPARISON_FUNC StencilFunc;
361} D3D10_DEPTH_STENCILOP_DESC;
362
363typedef struct D3D10_DEPTH_STENCIL_DESC {
364    BOOL DepthEnable;
365    D3D10_DEPTH_WRITE_MASK DepthWriteMask;
366    D3D10_COMPARISON_FUNC DepthFunc;
367    BOOL StencilEnable;
368    UINT8 StencilReadMask;
369    UINT8 StencilWriteMask;
370    D3D10_DEPTH_STENCILOP_DESC FrontFace;
371    D3D10_DEPTH_STENCILOP_DESC BackFace;
372} D3D10_DEPTH_STENCIL_DESC;
373
374typedef enum D3D10_FILL_MODE {
375    D3D10_FILL_WIREFRAME = 2,
376    D3D10_FILL_SOLID,
377} D3D10_FILL_MODE;
378
379typedef enum D3D10_CULL_MODE {
380    D3D10_CULL_NONE = 1,
381    D3D10_CULL_FRONT,
382    D3D10_CULL_BACK,
383} D3D10_CULL_MODE;
384
385typedef struct D3D10_RASTERIZER_DESC {
386    D3D10_FILL_MODE FillMode;
387    D3D10_CULL_MODE CullMode;
388    BOOL FrontCounterClockwise;
389    INT DepthBias;
390    FLOAT DepthBiasClamp;
391    FLOAT SlopeScaledDepthBias;
392    BOOL DepthClipEnable;
393    BOOL ScissorEnable;
394    BOOL MultisampleEnable;
395    BOOL AntialiasedLineEnable;
396} D3D10_RASTERIZER_DESC;
397
398typedef enum D3D10_FILTER {
399    D3D10_FILTER_MIN_MAG_MIP_POINT                          = 0,
400    D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR                   = 0x1,
401    D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT             = 0x4,
402    D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR                   = 0x5,
403    D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT                   = 0x10,
404    D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR            = 0x11,
405    D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT                   = 0x14,
406    D3D10_FILTER_MIN_MAG_MIP_LINEAR                         = 0x15,
407    D3D10_FILTER_ANISOTROPIC                                = 0x55,
408    D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT               = 0x80,
409    D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR        = 0x81,
410    D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT  = 0x84,
411    D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR        = 0x85,
412    D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT        = 0x90,
413    D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
414    D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT        = 0x94,
415    D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR              = 0x95,
416    D3D10_FILTER_COMPARISON_ANISOTROPIC                     = 0xd5,
417    D3D10_FILTER_TEXT_1BIT                                  = 0x80000000
418} D3D10_FILTER;
419
420typedef enum D3D10_TEXTURE_ADDRESS_MODE {
421    D3D10_TEXTURE_ADDRESS_WRAP = 1,
422    D3D10_TEXTURE_ADDRESS_MIRROR,
423    D3D10_TEXTURE_ADDRESS_CLAMP,
424    D3D10_TEXTURE_ADDRESS_BORDER,
425    D3D10_TEXTURE_ADDRESS_MIRROR_ONCE,
426} D3D10_TEXTURE_ADDRESS_MODE;
427
428typedef struct D3D10_SAMPLER_DESC {
429    D3D10_FILTER Filter;
430    D3D10_TEXTURE_ADDRESS_MODE AddressU;
431    D3D10_TEXTURE_ADDRESS_MODE AddressV;
432    D3D10_TEXTURE_ADDRESS_MODE AddressW;
433    FLOAT MipLODBias;
434    UINT MaxAnisotropy;
435    D3D10_COMPARISON_FUNC ComparisonFunc;
436    FLOAT BorderColor[4];
437    FLOAT MinLOD;
438    FLOAT MaxLOD;
439} D3D10_SAMPLER_DESC;
440
441typedef enum D3D10_COUNTER {
442    D3D10_COUNTER_GPU_IDLE,
443    D3D10_COUNTER_VERTEX_PROCESSING,
444    D3D10_COUNTER_GEOMETRY_PROCESSING,
445    D3D10_COUNTER_PIXEL_PROCESSING,
446    D3D10_COUNTER_OTHER_GPU_PROCESSING,
447    D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION,
448    D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION,
449    D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION,
450    D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION,
451    D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION,
452    D3D10_COUNTER_VS_MEMORY_LIMITED,
453    D3D10_COUNTER_VS_COMPUTATION_LIMITED,
454    D3D10_COUNTER_GS_MEMORY_LIMITED,
455    D3D10_COUNTER_GS_COMPUTATION_LIMITED,
456    D3D10_COUNTER_PS_MEMORY_LIMITED,
457    D3D10_COUNTER_PS_COMPUTATION_LIMITED,
458    D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE,
459    D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE,
460    D3D10_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000
461} D3D10_COUNTER;
462
463typedef struct D3D10_COUNTER_DESC {
464    D3D10_COUNTER Counter;
465    UINT MiscFlags;
466} D3D10_COUNTER_DESC;
467
468typedef enum D3D10_COUNTER_TYPE {
469    D3D10_COUNTER_TYPE_FLOAT32,
470    D3D10_COUNTER_TYPE_UINT16,
471    D3D10_COUNTER_TYPE_UINT32,
472    D3D10_COUNTER_TYPE_UINT64,
473} D3D10_COUNTER_TYPE;
474
475typedef struct D3D10_COUNTER_INFO {
476    D3D10_COUNTER LastDeviceDependentCounter;
477    UINT NumSimultaneousCounters;
478    UINT8 NumDetectableParallelUnits;
479} D3D10_COUNTER_INFO;
480
481typedef enum D3D10_RESOURCE_DIMENSION {
482    D3D10_RESOURCE_DIMENSION_UNKNOWN,
483    D3D10_RESOURCE_DIMENSION_BUFFER,
484    D3D10_RESOURCE_DIMENSION_TEXTURE1D,
485    D3D10_RESOURCE_DIMENSION_TEXTURE2D,
486    D3D10_RESOURCE_DIMENSION_TEXTURE3D,
487} D3D10_RESOURCE_DIMENSION;
488
489typedef enum D3D10_USAGE {
490    D3D10_USAGE_DEFAULT,
491    D3D10_USAGE_IMMUTABLE,
492    D3D10_USAGE_DYNAMIC,
493    D3D10_USAGE_STAGING,
494} D3D10_USAGE;
495
496typedef struct D3D10_BUFFER_DESC {
497    UINT ByteWidth;
498    D3D10_USAGE Usage;
499    UINT BindFlags;
500    UINT CPUAccessFlags;
501    UINT MiscFlags;
502} D3D10_BUFFER_DESC;
503
504typedef enum D3D10_MAP {
505    D3D10_MAP_READ = 1,
506    D3D10_MAP_WRITE,
507    D3D10_MAP_READ_WRITE,
508    D3D10_MAP_WRITE_DISCARD,
509    D3D10_MAP_WRITE_NO_OVERWRITE,
510} D3D10_MAP;
511
512typedef struct D3D10_TEXTURE1D_DESC {
513    UINT Width;
514    UINT MipLevels;
515    UINT ArraySize;
516    DXGI_FORMAT Format;
517    D3D10_USAGE Usage;
518    UINT BindFlags;
519    UINT CPUAccessFlags;
520    UINT MiscFlags;
521} D3D10_TEXTURE1D_DESC;
522
523typedef struct D3D10_TEXTURE2D_DESC {
524    UINT Width;
525    UINT Height;
526    UINT MipLevels;
527    UINT ArraySize;
528    DXGI_FORMAT Format;
529    DXGI_SAMPLE_DESC SampleDesc;
530    D3D10_USAGE Usage;
531    UINT BindFlags;
532    UINT CPUAccessFlags;
533    UINT MiscFlags;
534} D3D10_TEXTURE2D_DESC;
535
536typedef struct D3D10_TEXTURE3D_DESC {
537    UINT Width;
538    UINT Height;
539    UINT Depth;
540    UINT MipLevels;
541    DXGI_FORMAT Format;
542    D3D10_USAGE Usage;
543    UINT BindFlags;
544    UINT CPUAccessFlags;
545    UINT MiscFlags;
546} D3D10_TEXTURE3D_DESC;
547
548typedef enum D3D10_DSV_DIMENSION
549{
550    D3D10_DSV_DIMENSION_UNKNOWN,
551    D3D10_DSV_DIMENSION_TEXTURE1D,
552    D3D10_DSV_DIMENSION_TEXTURE1DARRAY,
553    D3D10_DSV_DIMENSION_TEXTURE2D,
554    D3D10_DSV_DIMENSION_TEXTURE2DARRAY,
555    D3D10_DSV_DIMENSION_TEXTURE2DMS,
556    D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY,
557} D3D10_DSV_DIMENSION;
558
559typedef struct D3D10_TEX1D_DSV {
560    UINT MipSlice;
561} D3D10_TEX1D_DSV;
562
563typedef struct D3D10_TEX1D_ARRAY_DSV {
564    UINT MipSlice;
565    UINT FirstArraySlice;
566    UINT ArraySize;
567} D3D10_TEX1D_ARRAY_DSV;
568
569typedef struct D3D10_TEX2D_DSV {
570    UINT MipSlice;
571} D3D10_TEX2D_DSV;
572
573typedef struct D3D10_TEX2D_ARRAY_DSV {
574    UINT MipSlice;
575    UINT FirstArraySlice;
576    UINT ArraySize;
577} D3D10_TEX2D_ARRAY_DSV;
578
579typedef struct D3D10_TEX2DMS_DSV {
580    UINT UnusedField_NothingToDefine;
581} D3D10_TEX2DMS_DSV;
582
583typedef struct D3D10_TEX2DMS_ARRAY_DSV {
584    UINT FirstArraySlice;
585    UINT ArraySize;
586} D3D10_TEX2DMS_ARRAY_DSV;
587
588typedef struct D3D10_DEPTH_STENCIL_VIEW_DESC {
589    DXGI_FORMAT Format;
590    D3D10_DSV_DIMENSION ViewDimension;
591    union {
592        D3D10_TEX1D_DSV Texture1D;
593        D3D10_TEX1D_ARRAY_DSV Texture1DArray;
594        D3D10_TEX2D_DSV Texture2D;
595        D3D10_TEX2D_ARRAY_DSV Texture2DArray;
596        D3D10_TEX2DMS_DSV Texture2DMS;
597        D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray;
598    } DUMMYUNIONNAME;
599} D3D10_DEPTH_STENCIL_VIEW_DESC;
600
601typedef enum D3D10_RTV_DIMENSION {
602    D3D10_RTV_DIMENSION_UNKNOWN,
603    D3D10_RTV_DIMENSION_BUFFER,
604    D3D10_RTV_DIMENSION_TEXTURE1D,
605    D3D10_RTV_DIMENSION_TEXTURE1DARRAY,
606    D3D10_RTV_DIMENSION_TEXTURE2D,
607    D3D10_RTV_DIMENSION_TEXTURE2DARRAY,
608    D3D10_RTV_DIMENSION_TEXTURE2DMS,
609    D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY,
610    D3D10_RTV_DIMENSION_TEXTURE3D,
611} D3D10_RTV_DIMENSION;
612
613typedef struct D3D10_BUFFER_RTV {
614    UINT ElementOffset;
615    UINT ElementWidth;
616} D3D10_BUFFER_RTV;
617
618typedef struct D3D10_TEX1D_RTV {
619    UINT MipSlice;
620} D3D10_TEX1D_RTV;
621
622typedef struct D3D10_TEX1D_ARRAY_RTV {
623    UINT MipSlice;
624    UINT FirstArraySlice;
625    UINT ArraySize;
626} D3D10_TEX1D_ARRAY_RTV;
627
628typedef struct D3D10_TEX2D_RTV {
629    UINT MipSlice;
630} D3D10_TEX2D_RTV;
631
632typedef struct D3D10_TEX2D_ARRAY_RTV {
633    UINT MipSlice;
634    UINT FirstArraySlice;
635    UINT ArraySize;
636} D3D10_TEX2D_ARRAY_RTV;
637
638typedef struct D3D10_TEX2DMS_RTV {
639    UINT UnusedField_NothingToDefine;
640} D3D10_TEX2DMS_RTV;
641
642typedef struct D3D10_TEX2DMS_ARRAY_RTV {
643    UINT FirstArraySlice;
644    UINT ArraySize;
645} D3D10_TEX2DMS_ARRAY_RTV;
646
647typedef struct D3D10_TEX3D_RTV {
648    UINT MipSlice;
649    UINT FirstWSlice;
650    UINT WSize;
651} D3D10_TEX3D_RTV;
652
653typedef struct D3D10_RENDER_TARGET_VIEW_DESC {
654    DXGI_FORMAT Format;
655    D3D10_RTV_DIMENSION ViewDimension;
656    union {
657        D3D10_BUFFER_RTV Buffer;
658        D3D10_TEX1D_RTV Texture1D;
659        D3D10_TEX1D_ARRAY_RTV Texture1DArray;
660        D3D10_TEX2D_RTV Texture2D;
661        D3D10_TEX2D_ARRAY_RTV Texture2DArray;
662        D3D10_TEX2DMS_RTV Texture2DMS;
663        D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray;
664        D3D10_TEX3D_RTV Texture3D;
665    } DUMMYUNIONNAME;
666} D3D10_RENDER_TARGET_VIEW_DESC;
667
668typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION;
669
670typedef struct D3D10_BUFFER_SRV {
671    UINT ElementOffset;
672    UINT ElementWidth;
673} D3D10_BUFFER_SRV;
674
675typedef struct D3D10_TEX1D_SRV {
676    UINT MostDetailedMip;
677    UINT MipLevels;
678} D3D10_TEX1D_SRV;
679
680typedef struct D3D10_TEX1D_ARRAY_SRV {
681    UINT MostDetailedMip;
682    UINT MipLevels;
683    UINT FirstArraySlice;
684    UINT ArraySize;
685} D3D10_TEX1D_ARRAY_SRV;
686
687typedef struct D3D10_TEX2D_SRV {
688    UINT MostDetailedMip;
689    UINT MipLevels;
690} D3D10_TEX2D_SRV;
691
692typedef struct D3D10_TEX2D_ARRAY_SRV {
693    UINT MostDetailedMip;
694    UINT MipLevels;
695    UINT FirstArraySlice;
696    UINT ArraySize;
697} D3D10_TEX2D_ARRAY_SRV;
698
699typedef struct D3D10_TEX2DMS_SRV {
700    UINT UnusedField_NothingToDefine;
701} D3D10_TEX2DMS_SRV;
702
703typedef struct D3D10_TEX2DMS_ARRAY_SRV {
704    UINT FirstArraySlice;
705    UINT ArraySize;
706} D3D10_TEX2DMS_ARRAY_SRV;
707
708typedef struct D3D10_TEX3D_SRV {
709    UINT MostDetailedMip;
710    UINT MipLevels;
711} D3D10_TEX3D_SRV;
712
713typedef struct D3D10_TEXCUBE_SRV {
714    UINT MostDetailedMip;
715    UINT MipLevels;
716} D3D10_TEXCUBE_SRV;
717
718typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC {
719    DXGI_FORMAT Format;
720    D3D10_SRV_DIMENSION ViewDimension;
721    union {
722        D3D10_BUFFER_SRV Buffer;
723        D3D10_TEX1D_SRV Texture1D;
724        D3D10_TEX1D_ARRAY_SRV Texture1DArray;
725        D3D10_TEX2D_SRV Texture2D;
726        D3D10_TEX2D_ARRAY_SRV Texture2DArray;
727        D3D10_TEX2DMS_SRV Texture2DMS;
728        D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
729        D3D10_TEX3D_SRV Texture3D;
730        D3D10_TEXCUBE_SRV TextureCube;
731    } DUMMYUNIONNAME;
732} D3D10_SHADER_RESOURCE_VIEW_DESC;
733
734typedef struct D3D10_BOX {
735    UINT left;
736    UINT top;
737    UINT front;
738    UINT right;
739    UINT bottom;
740    UINT back;
741} D3D10_BOX;
742
743typedef struct D3D10_SUBRESOURCE_DATA {
744    const void *pSysMem;
745    UINT SysMemPitch;
746    UINT SysMemSlicePitch;
747} D3D10_SUBRESOURCE_DATA;
748
749typedef struct D3D10_SO_DECLARATION_ENTRY {
750    LPCSTR SemanticName;
751    UINT SemanticIndex;
752    BYTE StartComponent;
753    BYTE ComponentCount;
754    BYTE OutputSlot;
755} D3D10_SO_DECLARATION_ENTRY;
756
757typedef enum D3D10_INPUT_CLASSIFICATION {
758    D3D10_INPUT_PER_VERTEX_DATA,
759    D3D10_INPUT_PER_INSTANCE_DATA,
760} D3D10_INPUT_CLASSIFICATION;
761
762typedef struct D3D10_INPUT_ELEMENT_DESC {
763    LPCSTR SemanticName;
764    UINT SemanticIndex;
765    DXGI_FORMAT Format;
766    UINT InputSlot;
767    UINT AlignedByteOffset;
768    D3D10_INPUT_CLASSIFICATION InputSlotClass;
769    UINT InstanceDataStepRate;
770} D3D10_INPUT_ELEMENT_DESC;
771
772typedef enum D3D10_QUERY {
773    D3D10_QUERY_EVENT,
774    D3D10_QUERY_OCCLUSION,
775    D3D10_QUERY_TIMESTAMP,
776    D3D10_QUERY_TIMESTAMP_DISJOINT,
777    D3D10_QUERY_PIPELINE_STATISTICS,
778    D3D10_QUERY_OCCLUSION_PREDICATE,
779    D3D10_QUERY_SO_STATISTICS,
780    D3D10_QUERY_SO_OVERFLOW_PREDICATE,
781} D3D10_QUERY;
782
783typedef struct D3D10_QUERY_DESC {
784    D3D10_QUERY Query;
785    UINT MiscFlags;
786} D3D10_QUERY_DESC;
787
788typedef D3D_PRIMITIVE_TOPOLOGY D3D10_PRIMITIVE_TOPOLOGY;
789
790typedef RECT D3D10_RECT;
791
792typedef struct D3D10_VIEWPORT {
793    INT TopLeftX;
794    INT TopLeftY;
795    UINT Width;
796    UINT Height;
797    FLOAT MinDepth;
798    FLOAT MaxDepth;
799} D3D10_VIEWPORT;
800
801typedef struct D3D10_MAPPED_TEXTURE2D {
802    void *pData;
803    UINT RowPitch;
804} D3D10_MAPPED_TEXTURE2D;
805
806typedef struct D3D10_MAPPED_TEXTURE3D {
807    void *pData;
808    UINT RowPitch;
809    UINT DepthPitch;
810} D3D10_MAPPED_TEXTURE3D;
811
812typedef enum D3D10_BIND_FLAG {
813    D3D10_BIND_VERTEX_BUFFER   = 0x1,
814    D3D10_BIND_INDEX_BUFFER    = 0x2,
815    D3D10_BIND_CONSTANT_BUFFER = 0x4,
816    D3D10_BIND_SHADER_RESOURCE = 0x8,
817    D3D10_BIND_STREAM_OUTPUT   = 0x10,
818    D3D10_BIND_RENDER_TARGET   = 0x20,
819    D3D10_BIND_DEPTH_STENCIL   = 0x40
820} D3D10_BIND_FLAG;
821
822typedef enum D3D10_CPU_ACCESS_FLAG {
823    D3D10_CPU_ACCESS_WRITE = 0x10000,
824    D3D10_CPU_ACCESS_READ  = 0x20000
825} D3D10_CPU_ACCESS_FLAG;
826
827typedef enum D3D10_RESOURCE_MISC_FLAG {
828    D3D10_RESOURCE_MISC_GENERATE_MIPS = 0x1,
829    D3D10_RESOURCE_MISC_SHARED        = 0x2,
830    D3D10_RESOURCE_MISC_TEXTURECUBE   = 0x4,
831    D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX	= 0x10L,
832    D3D10_RESOURCE_MISC_GDI_COMPATIBLE	= 0x20L
833} D3D10_RESOURCE_MISC_FLAG;
834
835typedef enum D3D10_MAP_FLAG {
836    D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000,
837} D3D10_MAP_FLAG;
838
839typedef enum D3D10_CLEAR_FLAG {
840    D3D10_CLEAR_DEPTH   = 0x1,
841    D3D10_CLEAR_STENCIL = 0x2
842} D3D10_CLEAR_FLAG;
843
844typedef enum D3D10_COLOR_WRITE_ENABLE {
845    D3D10_COLOR_WRITE_ENABLE_RED   = 0x1,
846    D3D10_COLOR_WRITE_ENABLE_GREEN = 0x2,
847    D3D10_COLOR_WRITE_ENABLE_BLUE  = 0x4,
848    D3D10_COLOR_WRITE_ENABLE_ALPHA = 0x8,
849    D3D10_COLOR_WRITE_ENABLE_ALL   = (D3D10_COLOR_WRITE_ENABLE_RED  | D3D10_COLOR_WRITE_ENABLE_GREEN |
850                                      D3D10_COLOR_WRITE_ENABLE_BLUE | D3D10_COLOR_WRITE_ENABLE_ALPHA)
851} D3D10_COLOR_WRITE_ENABLE;
852
853typedef enum D3D10_TEXTURECUBE_FACE {
854    D3D10_TEXTURECUBE_FACE_POSITIVE_X,
855    D3D10_TEXTURECUBE_FACE_NEGATIVE_X,
856    D3D10_TEXTURECUBE_FACE_POSITIVE_Y,
857    D3D10_TEXTURECUBE_FACE_NEGATIVE_Y,
858    D3D10_TEXTURECUBE_FACE_POSITIVE_Z,
859    D3D10_TEXTURECUBE_FACE_NEGATIVE_Z,
860} D3D10_TEXTURECUBE_FACE;
861
862typedef enum D3D10_ASYNC_GETDATA_FLAG {
863    D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1,
864} D3D10_ASYNC_GETDATA_FLAG;
865
866typedef enum D3D10_FILTER_TYPE {
867    D3D10_FILTER_TYPE_POINT,
868    D3D10_FILTER_TYPE_LINEAR
869} D3D10_FILTER_TYPE;
870
871typedef enum D3D10_QUERY_MISC_FLAG {
872    D3D10_QUERY_MISC_PREDICATEHINT = 0x1
873} D3D10_QUERY_MISC_FLAG;
874
875typedef struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT {
876    UINT64 Frequency;
877    BOOL Disjoint;
878} D3D10_QUERY_DATA_TIMESTAMP_DISJOINT;
879
880typedef struct D3D10_QUERY_DATA_PIPELINE_STATISTICS {
881    UINT64 IAVertices;
882    UINT64 IAPrimitives;
883    UINT64 VSInvocations;
884    UINT64 GSInvocations;
885    UINT64 GSPrimitives;
886    UINT64 CInvocations;
887    UINT64 CPrimitives;
888    UINT64 PSInvocations;
889} D3D10_QUERY_DATA_PIPELINE_STATISTICS;
890
891typedef struct D3D10_QUERY_DATA_SO_STATISTICS {
892    UINT64 NumPrimitivesWritten;
893    UINT64 PrimitivesStorageNeeded;
894} D3D10_QUERY_DATA_SO_STATISTICS;
895
896typedef enum D3D10_CREATE_DEVICE_FLAG {
897    D3D10_CREATE_DEVICE_SINGLETHREADED                           = 0x1,
898    D3D10_CREATE_DEVICE_DEBUG                                    = 0x2,
899    D3D10_CREATE_DEVICE_SWITCH_TO_REF                            = 0x4,
900    D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8
901} D3D10_CREATE_DEVICE_FLAG;
902
903/* Core */
904
905interface ID3D10Device;
906
907[
908    object,
909    local,
910    uuid(9b7e4c00-342c-4106-a19f-4f2704f689f0)
911]
912interface ID3D10DeviceChild : IUnknown
913{
914        void GetDevice(
915            [out] ID3D10Device **a);
916        HRESULT GetPrivateData(
917            [in] REFGUID a,
918            [in, out] UINT *b,
919            [out] void *c);
920        HRESULT SetPrivateData(
921            [in] REFGUID a,
922            [in] UINT b,
923            [in] const void *c);
924        HRESULT SetPrivateDataInterface(
925            [in] REFGUID a,
926            [in] const IUnknown *b);
927}
928
929/* Resource */
930
931[
932    object,
933    local,
934    uuid(9b7e4c01-342c-4106-a19f-4f2704f689f0)
935]
936interface ID3D10Resource : ID3D10DeviceChild
937{
938        void GetType(
939            [out] D3D10_RESOURCE_DIMENSION *a);
940        void SetEvictionPriority(
941            [in] UINT a);
942        UINT GetEvictionPriority();
943}
944
945[
946    object,
947    local,
948    uuid(9b7e4c02-342c-4106-a19f-4f2704f689f0)
949]
950interface ID3D10Buffer : ID3D10Resource
951{
952        HRESULT Map(
953            [in] D3D10_MAP a,
954            [in] UINT b,
955            [out] void **c);
956        void Unmap();
957        void GetDesc(
958            [out] D3D10_BUFFER_DESC *a);
959}
960
961[
962    object,
963    local,
964    uuid(9b7e4c03-342c-4106-a19f-4f2704f689F0)
965]
966interface ID3D10Texture1D : ID3D10Resource
967{
968        HRESULT Map(
969            [in] UINT a,
970            [in] D3D10_MAP b,
971            [in] UINT c,
972            [out] void **d);
973        void Unmap(
974            [in] UINT a);
975        void GetDesc(
976            [out] D3D10_TEXTURE1D_DESC *a);
977}
978
979[
980    object,
981    local,
982    uuid(9b7e4c04-342c-4106-a19f-4f2704f689F0)
983]
984interface ID3D10Texture2D : ID3D10Resource
985{
986        HRESULT Map(
987            [in] UINT a,
988            [in] D3D10_MAP b,
989            [in] UINT c,
990            [out] D3D10_MAPPED_TEXTURE2D *d);
991        void Unmap(
992            [in] UINT a);
993        void GetDesc(
994            [out] D3D10_TEXTURE2D_DESC *a);
995}
996
997[
998    object,
999    local,
1000    uuid(9b7e4c05-342c-4106-a19f-4f2704f689F0)
1001]
1002interface ID3D10Texture3D : ID3D10Resource
1003{
1004        HRESULT Map(
1005            [in] UINT a,
1006            [in] D3D10_MAP b,
1007            [in] UINT c,
1008            [out] D3D10_MAPPED_TEXTURE3D *d);
1009        void Unmap(
1010            [in] UINT a);
1011        void GetDesc(
1012            [out] D3D10_TEXTURE3D_DESC *a);
1013}
1014
1015[
1016    object,
1017    local,
1018    uuid(c902b03f-60a7-49ba-9936-2a3ab37a7e33)
1019]
1020interface ID3D10View : ID3D10DeviceChild
1021{
1022        void GetResource(
1023            [out] ID3D10Resource **a);
1024}
1025
1026[
1027    object,
1028    local,
1029    uuid(9b7e4c09-342c-4106-a19f-4f2704f689f0)
1030]
1031interface ID3D10DepthStencilView : ID3D10View
1032{
1033        void GetDesc(
1034            [out] D3D10_DEPTH_STENCIL_VIEW_DESC *a);
1035}
1036
1037
1038[
1039    object,
1040    local,
1041    uuid(9b7e4c08-342c-4106-a19f-4f2704f689f0)
1042]
1043interface ID3D10RenderTargetView : ID3D10View
1044{
1045        void GetDesc(
1046            [out] D3D10_RENDER_TARGET_VIEW_DESC *a);
1047}
1048
1049[
1050    object,
1051    local,
1052    uuid(9b7e4c07-342c-4106-a19f-4f2704f689f0)
1053]
1054interface ID3D10ShaderResourceView  : ID3D10View
1055{
1056        void GetDesc(
1057            [out] D3D10_SHADER_RESOURCE_VIEW_DESC *a);
1058}
1059
1060/* Resource End */
1061
1062[
1063    object,
1064    local,
1065    uuid(edad8d19-8a35-4d6d-8566-2ea276cde161)
1066]
1067interface ID3D10BlendState : ID3D10DeviceChild
1068{
1069    void GetDesc(
1070            [out] D3D10_BLEND_DESC *a);
1071}
1072
1073[
1074    object,
1075    local,
1076    uuid(2b4b1cc8-a4ad-41f8-8322-ca86fc3ec675)
1077]
1078interface ID3D10DepthStencilState : ID3D10DeviceChild
1079{
1080    void GetDesc(
1081            [out] D3D10_DEPTH_STENCIL_DESC *a);
1082}
1083
1084[
1085    object,
1086    local,
1087    uuid(6316be88-54cd-4040-ab44-20461bc81f68)
1088]
1089interface ID3D10GeometryShader  : ID3D10DeviceChild
1090{
1091}
1092
1093[
1094    object,
1095    local,
1096    uuid(9b7e4c0b-342c-4106-a19f-4f2704f689f0)
1097]
1098interface ID3D10InputLayout  : ID3D10DeviceChild
1099{
1100}
1101
1102[
1103    object,
1104    local,
1105    uuid(4968b601-9d00-4cde-8346-8e7f675819b6)
1106]
1107interface ID3D10PixelShader  : ID3D10DeviceChild
1108{
1109}
1110
1111[
1112    object,
1113    local,
1114    uuid(a2a07292-89af-4345-be2e-c53d9fbb6e9f)
1115]
1116interface ID3D10RasterizerState  : ID3D10DeviceChild
1117{
1118    void GetDesc(
1119            [out] D3D10_RASTERIZER_DESC *a);
1120}
1121
1122[
1123    object,
1124    local,
1125    uuid(9b7e4c0c-342c-4106-a19f-4f2704f689f0)
1126]
1127interface ID3D10SamplerState  : ID3D10DeviceChild
1128{
1129    void GetDesc(
1130            [out] D3D10_SAMPLER_DESC *a);
1131}
1132
1133[
1134    object,
1135    local,
1136    uuid(9b7e4c0a-342c-4106-a19f-4f2704f689f0)
1137]
1138interface ID3D10VertexShader  : ID3D10DeviceChild
1139{
1140}
1141
1142[
1143    object,
1144    local,
1145    uuid(9b7e4c0d-342c-4106-a19f-4f2704f689f0)
1146]
1147interface ID3D10Asynchronous  : ID3D10DeviceChild
1148{
1149    void Begin();
1150    void End();
1151    HRESULT GetData(
1152            [out] void *a,
1153            [in] UINT b,
1154            [in] UINT c);
1155    UINT GetDataSize();
1156}
1157
1158[
1159    object,
1160    local,
1161    uuid(9b7e4c11-342c-4106-a19f-4f2704f689f0)
1162]
1163interface ID3D10Counter  : ID3D10Asynchronous
1164{
1165    void GetDesc(
1166            [out] D3D10_COUNTER_DESC *a);
1167}
1168
1169[
1170    object,
1171    local,
1172    uuid(9b7e4C0e-342C-4106-a19f-4f2704f689f0)
1173]
1174interface ID3D10Query : ID3D10Asynchronous
1175{
1176    void GetDesc(
1177            [out] D3D10_QUERY_DESC *a);
1178}
1179
1180[
1181    object,
1182    local,
1183    uuid(9b7e4c10-342c-4106-a19f-4f2704f689f0)
1184]
1185interface ID3D10Predicate : ID3D10Query
1186{
1187}
1188
1189[
1190    object,
1191    local,
1192    uuid(9b7e4c0f-342c-4106-a19f-4f2704f689f0)
1193]
1194interface ID3D10Device : IUnknown
1195{
1196        void VSSetConstantBuffers(
1197            [in] UINT a,
1198            [in] UINT b,
1199            [in] ID3D10Buffer *const *c);
1200        void PSSetShaderResources(
1201            [in] UINT a,
1202            [in] UINT b,
1203            [in] ID3D10ShaderResourceView *const *c);
1204        void PSSetShader(
1205            [in] ID3D10PixelShader *a);
1206        void PSSetSamplers(
1207            [in] UINT a,
1208            [in] UINT b,
1209            [in]ID3D10SamplerState *const *c);
1210        void VSSetShader(
1211            [in] ID3D10VertexShader *a);
1212        void DrawIndexed(
1213            [in] UINT a,
1214            [in] UINT b,
1215            [in] INT c);
1216        void Draw(
1217            [in] UINT a,
1218            [in] UINT b);
1219        void PSSetConstantBuffers(
1220            [in] UINT a,
1221            [in] UINT b,
1222            [in] ID3D10Buffer *const *c);
1223        void IASetInputLayout(
1224            [in] ID3D10InputLayout *a);
1225        void IASetVertexBuffers(
1226            [in] UINT a,
1227            [in] UINT b,
1228            [in] ID3D10Buffer *const *c,
1229            [in] const UINT *d,
1230            [in] const UINT *e);
1231        void IASetIndexBuffer(
1232            [in] ID3D10Buffer *a,
1233            [in] DXGI_FORMAT b,
1234            [in] UINT c);
1235        void DrawIndexedInstanced(
1236            [in] UINT a,
1237            [in] UINT b,
1238            [in] UINT c,
1239            [in] INT d,
1240            [in] UINT e);
1241        void DrawInstanced(
1242            [in] UINT a,
1243            [in] UINT b,
1244            [in] UINT c,
1245            [in] UINT d);
1246        void GSSetConstantBuffers(
1247            [in] UINT a,
1248            [in] UINT b,
1249            [in] ID3D10Buffer *const *c);
1250        void GSSetShader(
1251            [in] ID3D10GeometryShader *a);
1252        void IASetPrimitiveTopology(
1253            [in] D3D10_PRIMITIVE_TOPOLOGY a);
1254        void VSSetShaderResources(
1255            [in] UINT a,
1256            [in] UINT b,
1257            [in] ID3D10ShaderResourceView *const *c);
1258        void VSSetSamplers(
1259            [in] UINT a,
1260            [in] UINT b,
1261            [in] ID3D10SamplerState *const *c);
1262        void SetPredication(
1263            [in] ID3D10Predicate *a,
1264            [in] BOOL b);
1265        void GSSetShaderResources(
1266            [in] UINT a,
1267            [in] UINT b,
1268            [in] ID3D10ShaderResourceView * const *c);
1269        void GSSetSamplers(
1270            [in] UINT a,
1271            [in] UINT b,
1272            [in] ID3D10SamplerState *const *c);
1273        void OMSetRenderTargets(
1274            [in] UINT a,
1275            [in] ID3D10RenderTargetView *const *b,
1276            [in] ID3D10DepthStencilView *c);
1277        void OMSetBlendState(
1278            [in] ID3D10BlendState *a,
1279            [in] const FLOAT b[4],
1280            [in] UINT c);
1281        void OMSetDepthStencilState(
1282            [in] ID3D10DepthStencilState *a,
1283            [in] UINT b);
1284        void SOSetTargets(
1285            [in] UINT a,
1286            [in] ID3D10Buffer *const *b,
1287            [in] const UINT *c);
1288        void DrawAuto();
1289        void RSSetState(
1290            [in] ID3D10RasterizerState *a);
1291        void RSSetViewports(
1292            [in] UINT a,
1293            [in] const D3D10_VIEWPORT *b);
1294        void RSSetScissorRects(
1295            [in] UINT a,
1296            [in] const D3D10_RECT *b);
1297        void CopySubresourceRegion(
1298            [in] ID3D10Resource *a,
1299            [in] UINT b,
1300            [in] UINT c,
1301            [in] UINT d,
1302            [in] UINT e,
1303            [in] ID3D10Resource *f,
1304            [in] UINT g,
1305            [in] const D3D10_BOX *h);
1306        void CopyResource(
1307            [in] ID3D10Resource *a,
1308            [in] ID3D10Resource *b);
1309        void UpdateSubresource(
1310            [in] ID3D10Resource *a,
1311            [in] UINT b,
1312            [in] const D3D10_BOX *c,
1313            [in] const void *d,
1314            [in] UINT e,
1315            [in] UINT f);
1316        void ClearRenderTargetView(
1317            [in] ID3D10RenderTargetView *a,
1318            [in] const FLOAT b[4]);
1319        void ClearDepthStencilView(
1320            [in] ID3D10DepthStencilView *a,
1321            [in] UINT b,
1322            [in] FLOAT c,
1323            [in] UINT8 d);
1324        void GenerateMips(
1325            [in] ID3D10ShaderResourceView *a);
1326        void ResolveSubresource(
1327            [in] ID3D10Resource *a,
1328            [in] UINT b,
1329            [in] ID3D10Resource *c,
1330            [in] UINT d,
1331            [in] DXGI_FORMAT e);
1332        void VSGetConstantBuffers(
1333            [in] UINT a,
1334            [in] UINT b,
1335            [out] ID3D10Buffer **c);
1336        void PSGetShaderResources(
1337            [in] UINT a,
1338            [in] UINT b,
1339            [out] ID3D10ShaderResourceView **c);
1340        void PSGetShader(
1341            [out] ID3D10PixelShader **a);
1342        void PSGetSamplers(
1343            [in] UINT a,
1344            [in] UINT b,
1345            [out] ID3D10SamplerState **c);
1346        void VSGetShader(
1347            [out] ID3D10VertexShader **a);
1348        void PSGetConstantBuffers(
1349            [in] UINT a,
1350            [in] UINT b,
1351            [out] ID3D10Buffer **c);
1352        void IAGetInputLayout(
1353            [out] ID3D10InputLayout **a);
1354        void IAGetVertexBuffers(
1355            [in] UINT a,
1356            [in] UINT b,
1357            [out] ID3D10Buffer **c,
1358            [out] UINT *d,
1359            [out] UINT *e);
1360        void IAGetIndexBuffer(
1361            [out] ID3D10Buffer **a,
1362            [out] DXGI_FORMAT *b,
1363            [out] UINT *c);
1364        void GSGetConstantBuffers(
1365            [in] UINT a,
1366            [in] UINT b,
1367            [out] ID3D10Buffer **c);
1368        void GSGetShader(
1369            [out] ID3D10GeometryShader **a);
1370        void IAGetPrimitiveTopology(
1371            [out] D3D10_PRIMITIVE_TOPOLOGY *a);
1372        void VSGetShaderResources(
1373            [in] UINT a,
1374            [in] UINT b,
1375            [out] ID3D10ShaderResourceView **c);
1376        void VSGetSamplers(
1377            [in] UINT a,
1378            [in] UINT b,
1379            [out] ID3D10SamplerState **c);
1380        void GetPredication(
1381            [out] ID3D10Predicate **a,
1382            [out] BOOL *b);
1383        void GSGetShaderResources(
1384            [in] UINT a,
1385            [in] UINT b,
1386            [out] ID3D10ShaderResourceView **c);
1387        void GSGetSamplers(
1388            [in] UINT a,
1389            [in] UINT b,
1390            [out] ID3D10SamplerState **c);
1391        void OMGetRenderTargets(
1392            [in] UINT a,
1393            [out] ID3D10RenderTargetView **b,
1394            [out] ID3D10DepthStencilView **c);
1395        void OMGetBlendState(
1396            [out] ID3D10BlendState **a,
1397            [out] FLOAT b[4],
1398            [out] UINT *c);
1399        void OMGetDepthStencilState(
1400            [out] ID3D10DepthStencilState **a,
1401            [out] UINT *b);
1402        void SOGetTargets(
1403            [in] UINT a,
1404            [out] ID3D10Buffer **b,
1405            [out] UINT *c);
1406        void RSGetState(
1407            [out] ID3D10RasterizerState **a);
1408        void RSGetViewports(
1409            [in, out] UINT *a,
1410            [out] D3D10_VIEWPORT *b);
1411        void RSGetScissorRects(
1412            [in, out] UINT *a,
1413            [out] D3D10_RECT *b);
1414        HRESULT GetDeviceRemovedReason();
1415        HRESULT SetExceptionMode(
1416            [in] UINT a);
1417        UINT GetExceptionMode();
1418        HRESULT GetPrivateData(
1419            [in] REFGUID a,
1420            [in, out] UINT *b,
1421            [out] void *c);
1422        HRESULT SetPrivateData(
1423            [in] REFGUID a,
1424            [in] UINT b,
1425            [in] const void *c);
1426        HRESULT SetPrivateDataInterface(
1427            [in] REFGUID a,
1428            [in] const IUnknown *b);
1429        void ClearState();
1430        void Flush();
1431        HRESULT CreateBuffer(
1432            [in] const D3D10_BUFFER_DESC *a,
1433            [in] const D3D10_SUBRESOURCE_DATA *b,
1434            [out] ID3D10Buffer **c);
1435        HRESULT CreateTexture1D(
1436            [in] const D3D10_TEXTURE1D_DESC *a,
1437            [in] const D3D10_SUBRESOURCE_DATA *b,
1438            [out] ID3D10Texture1D **c);
1439        HRESULT CreateTexture2D(
1440            [in] const D3D10_TEXTURE2D_DESC *a,
1441            [in] const D3D10_SUBRESOURCE_DATA *b,
1442            [out] ID3D10Texture2D **c);
1443        HRESULT CreateTexture3D(
1444            [in] const D3D10_TEXTURE3D_DESC *a,
1445            [in] const D3D10_SUBRESOURCE_DATA *b,
1446            [out] ID3D10Texture3D **c);
1447        HRESULT CreateShaderResourceView(
1448            [in] ID3D10Resource *a,
1449            [in] const D3D10_SHADER_RESOURCE_VIEW_DESC *b,
1450            [out] ID3D10ShaderResourceView **c);
1451        HRESULT CreateRenderTargetView(
1452            [in] ID3D10Resource *a,
1453            [in] const D3D10_RENDER_TARGET_VIEW_DESC *b,
1454            [out] ID3D10RenderTargetView **c);
1455        HRESULT CreateDepthStencilView(
1456            [in] ID3D10Resource *a,
1457            [in] const D3D10_DEPTH_STENCIL_VIEW_DESC *b,
1458            [out] ID3D10DepthStencilView **c);
1459        HRESULT CreateInputLayout(
1460            [in] const D3D10_INPUT_ELEMENT_DESC *a,
1461            [in] UINT b,
1462            [in] const void *c,
1463            [in] SIZE_T d,
1464            [out] ID3D10InputLayout **e);
1465        HRESULT CreateVertexShader(
1466            [in] const void *a,
1467            [in] SIZE_T b,
1468            [out] ID3D10VertexShader **c);
1469        HRESULT CreateGeometryShader(
1470            [in] const void *a,
1471            [in] SIZE_T b,
1472            [out] ID3D10GeometryShader **c);
1473        HRESULT CreateGeometryShaderWithStreamOutput(
1474            [in] const void *a,
1475            [in] SIZE_T b,
1476            [in] const D3D10_SO_DECLARATION_ENTRY *c,
1477            [in] UINT d,
1478            [in] UINT e,
1479            [out] ID3D10GeometryShader **f);
1480        HRESULT CreatePixelShader(
1481            [in] const void *a,
1482            [in] SIZE_T b,
1483            [out] ID3D10PixelShader **c);
1484        HRESULT CreateBlendState(
1485            [in] const D3D10_BLEND_DESC *a,
1486            [out] ID3D10BlendState **b);
1487        HRESULT CreateDepthStencilState(
1488            [in] const D3D10_DEPTH_STENCIL_DESC *a,
1489            [out] ID3D10DepthStencilState **b);
1490        HRESULT CreateRasterizerState(
1491            [in] const D3D10_RASTERIZER_DESC *a,
1492            [out] ID3D10RasterizerState **b);
1493        HRESULT CreateSamplerState(
1494            [in] const D3D10_SAMPLER_DESC *a,
1495            [out] ID3D10SamplerState **b);
1496        HRESULT CreateQuery(
1497            [in] const D3D10_QUERY_DESC *a,
1498            [out] ID3D10Query **b);
1499        HRESULT CreatePredicate(
1500            [in] const D3D10_QUERY_DESC *a,
1501            [out] ID3D10Predicate **b);
1502        HRESULT CreateCounter(
1503            [in] const D3D10_COUNTER_DESC *a,
1504            [out] ID3D10Counter **b);
1505        HRESULT CheckFormatSupport(
1506            [in] DXGI_FORMAT a,
1507            [out] UINT *b);
1508        HRESULT CheckMultisampleQualityLevels(
1509            [in] DXGI_FORMAT a,
1510            [in] UINT b,
1511            [out] UINT *c);
1512        void CheckCounterInfo(
1513            [out] D3D10_COUNTER_INFO *a);
1514        HRESULT CheckCounter(
1515            [in] const D3D10_COUNTER_DESC *a,
1516            [out] D3D10_COUNTER_TYPE *b,
1517            [out] UINT *c,
1518            [out] LPSTR d,
1519            [in, out] UINT *e,
1520            [out] LPSTR f,
1521            [in, out] UINT *g,
1522            [out] LPSTR h,
1523            [in, out] UINT *i);
1524        UINT GetCreationFlags();
1525        HRESULT OpenSharedResource(
1526            [in] HANDLE a,
1527            [in] REFIID b,
1528            [out] void **c);
1529        void SetTextFilterSize(
1530            [in] UINT a,
1531            [in] UINT b);
1532        void GetTextFilterSize(
1533            [out] UINT *a,
1534            [out] UINT *b);
1535}
1536
1537[
1538    object,
1539    local,
1540    uuid(9b7e4e00-342c-4106-a19f-4f2704f689f0)
1541]
1542interface ID3D10Multithread : IUnknown
1543{
1544        void Enter();
1545        void Leave();
1546        BOOL SetMultithreadProtected(
1547            [in] BOOL a);
1548        BOOL GetMultithreadProtected();
1549}
1550
1551cpp_quote("#include \"d3d10misc.h\"")
1552cpp_quote("#include \"d3d10shader.h\"")
1553cpp_quote("#include \"d3d10effect.h\"")
1554/* TODO: Include "d310sdklayers.h" as soon as it exists */
1555