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