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