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