wined3d: Move FBO based color blits from IWineD3DSurfaceImpl_BltOverride() to wined3d...
[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 enum D3D10_BIND_FLAG {
463     D3D10_BIND_VERTEX_BUFFER   = 0x1,
464     D3D10_BIND_INDEX_BUFFER    = 0x2,
465     D3D10_BIND_CONSTANT_BUFFER = 0x4,
466     D3D10_BIND_SHADER_RESOURCE = 0x8,
467     D3D10_BIND_STREAM_OUTPUT   = 0x10,
468     D3D10_BIND_RENDER_TARGET   = 0x20,
469     D3D10_BIND_DEPTH_STENCIL   = 0x40
470 } D3D10_BIND_FLAG;
471
472 typedef struct D3D10_BUFFER_DESC {
473     UINT ByteWidth;
474     D3D10_USAGE Usage;
475     UINT BindFlags;
476     UINT CPUAccessFlags;
477     UINT MiscFlags;
478 } D3D10_BUFFER_DESC;
479
480 cpp_quote("#if !defined(D3D10_NO_HELPERS) && defined(__cplusplus)")
481 cpp_quote("struct CD3D10_BUFFER_DESC : public D3D10_BUFFER_DESC {")
482 cpp_quote("    CD3D10_BUFFER_DESC() {}" )
483 cpp_quote("    explicit CD3D10_BUFFER_DESC(const D3D10_BUFFER_DESC &o) : D3D10_BUFFER_DESC(o) {}")
484 cpp_quote("    explicit CD3D10_BUFFER_DESC(UINT byteWidth, UINT bindFlags, D3D10_USAGE usage = D3D10_USAGE_DEFAULT, UINT cpuaccessFlags = 0, UINT miscFlags = 0 ) {")
485 cpp_quote("        ByteWidth = byteWidth;")
486 cpp_quote("        Usage = usage;")
487 cpp_quote("        BindFlags = bindFlags;")
488 cpp_quote("        CPUAccessFlags = cpuaccessFlags;")
489 cpp_quote("        MiscFlags = miscFlags;")
490 cpp_quote("    }")
491 cpp_quote("    ~CD3D10_BUFFER_DESC() {}")
492 cpp_quote("    operator const D3D10_BUFFER_DESC&() const {")
493 cpp_quote("        return *this;")
494 cpp_quote("    }")
495 cpp_quote("};")
496 cpp_quote("#endif")
497
498 typedef enum D3D10_MAP {
499     D3D10_MAP_READ = 1,
500     D3D10_MAP_WRITE,
501     D3D10_MAP_READ_WRITE,
502     D3D10_MAP_WRITE_DISCARD,
503     D3D10_MAP_WRITE_NO_OVERWRITE,
504 } D3D10_MAP;
505
506 typedef struct D3D10_TEXTURE1D_DESC {
507     UINT Width;
508     UINT MipLevels;
509     UINT ArraySize;
510     DXGI_FORMAT Format;
511     D3D10_USAGE Usage;
512     UINT BindFlags;
513     UINT CPUAccessFlags;
514     UINT MiscFlags;
515 } D3D10_TEXTURE1D_DESC;
516
517 cpp_quote("#if !defined(D3D10_NO_HELPERS) && defined(__cplusplus)")
518 cpp_quote("struct CD3D10_TEXTURE1D_DESC : public D3D10_TEXTURE1D_DESC {")
519 cpp_quote("    CD3D10_TEXTURE1D_DESC() {}")
520 cpp_quote("    explicit CD3D10_TEXTURE1D_DESC(const D3D10_TEXTURE1D_DESC &o) : D3D10_TEXTURE1D_DESC(o) {}")
521 cpp_quote("    explicit CD3D10_TEXTURE1D_DESC(DXGI_FORMAT format, UINT width, UINT arraySize = 1, UINT mipLevels = 0,")
522 cpp_quote("        UINT bindFlags = D3D10_BIND_SHADER_RESOURCE, D3D10_USAGE usage = D3D10_USAGE_DEFAULT, UINT cpuaccessFlags = 0,")
523 cpp_quote("        UINT miscFlags = 0) {")
524 cpp_quote("        Width = width;")
525 cpp_quote("        MipLevels = mipLevels;")
526 cpp_quote("        ArraySize = arraySize;")
527 cpp_quote("        Format = format;")
528 cpp_quote("        Usage = usage;")
529 cpp_quote("        BindFlags = bindFlags;")
530 cpp_quote("        CPUAccessFlags = cpuaccessFlags;")
531 cpp_quote("        MiscFlags = miscFlags;")
532 cpp_quote("    }")
533 cpp_quote("    ~CD3D10_TEXTURE1D_DESC() {}")
534 cpp_quote("    operator const D3D10_TEXTURE1D_DESC&() const {")
535 cpp_quote("        return *this;")
536 cpp_quote("    }")
537 cpp_quote("};")
538 cpp_quote("#endif")
539
540 typedef struct D3D10_TEXTURE2D_DESC {
541     UINT Width;
542     UINT Height;
543     UINT MipLevels;
544     UINT ArraySize;
545     DXGI_FORMAT Format;
546     DXGI_SAMPLE_DESC SampleDesc;
547     D3D10_USAGE Usage;
548     UINT BindFlags;
549     UINT CPUAccessFlags;
550     UINT MiscFlags;
551 } D3D10_TEXTURE2D_DESC;
552
553 cpp_quote("#if !defined(D3D10_NO_HELPERS) && defined(__cplusplus)")
554 cpp_quote("struct CD3D10_TEXTURE2D_DESC : public D3D10_TEXTURE2D_DESC {")
555 cpp_quote("    CD3D10_TEXTURE2D_DESC() {}" )
556 cpp_quote("    explicit CD3D10_TEXTURE2D_DESC(const D3D10_TEXTURE2D_DESC &o) : D3D10_TEXTURE2D_DESC(o) {}")
557 cpp_quote("    explicit CD3D10_TEXTURE2D_DESC(DXGI_FORMAT format, UINT width, UINT height,")
558 cpp_quote("            UINT arraySize = 1,")
559 cpp_quote("            UINT mipLevels = 0,")
560 cpp_quote("            UINT bindFlags = D3D10_BIND_SHADER_RESOURCE,")
561 cpp_quote("            D3D10_USAGE usage = D3D10_USAGE_DEFAULT,")
562 cpp_quote("            UINT cpuaccessFlags = 0,")
563 cpp_quote("            UINT sampleCount = 1,")
564 cpp_quote("            UINT sampleQuality = 0,")
565 cpp_quote("            UINT miscFlags = 0) {")
566 cpp_quote("        Width = width;" )
567 cpp_quote("        Height = height;" )
568 cpp_quote("        MipLevels = mipLevels;" )
569 cpp_quote("        ArraySize = arraySize;" )
570 cpp_quote("        Format = format;" )
571 cpp_quote("        SampleDesc.Count = sampleCount;" )
572 cpp_quote("        SampleDesc.Quality = sampleQuality;" )
573 cpp_quote("        Usage = usage;" )
574 cpp_quote("        BindFlags = bindFlags;" )
575 cpp_quote("        CPUAccessFlags = cpuaccessFlags;" )
576 cpp_quote("        MiscFlags = miscFlags;" )
577 cpp_quote("    }")
578 cpp_quote("    ~CD3D10_TEXTURE2D_DESC() {}")
579 cpp_quote("    operator const D3D10_TEXTURE2D_DESC&() const {")
580 cpp_quote("        return *this;")
581 cpp_quote("    }")
582 cpp_quote("};")
583 cpp_quote("#endif")
584
585 typedef struct D3D10_TEXTURE3D_DESC {
586     UINT Width;
587     UINT Height;
588     UINT Depth;
589     UINT MipLevels;
590     DXGI_FORMAT Format;
591     D3D10_USAGE Usage;
592     UINT BindFlags;
593     UINT CPUAccessFlags;
594     UINT MiscFlags;
595 } D3D10_TEXTURE3D_DESC;
596
597 typedef enum D3D10_DSV_DIMENSION
598 {
599     D3D10_DSV_DIMENSION_UNKNOWN,
600     D3D10_DSV_DIMENSION_TEXTURE1D,
601     D3D10_DSV_DIMENSION_TEXTURE1DARRAY,
602     D3D10_DSV_DIMENSION_TEXTURE2D,
603     D3D10_DSV_DIMENSION_TEXTURE2DARRAY,
604     D3D10_DSV_DIMENSION_TEXTURE2DMS,
605     D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY,
606 } D3D10_DSV_DIMENSION;
607
608 typedef struct D3D10_TEX1D_DSV {
609     UINT MipSlice;
610 } D3D10_TEX1D_DSV;
611
612 typedef struct D3D10_TEX1D_ARRAY_DSV {
613     UINT MipSlice;
614     UINT FirstArraySlice;
615     UINT ArraySize;
616 } D3D10_TEX1D_ARRAY_DSV;
617
618 typedef struct D3D10_TEX2D_DSV {
619     UINT MipSlice;
620 } D3D10_TEX2D_DSV;
621
622 typedef struct D3D10_TEX2D_ARRAY_DSV {
623     UINT MipSlice;
624     UINT FirstArraySlice;
625     UINT ArraySize;
626 } D3D10_TEX2D_ARRAY_DSV;
627
628 typedef struct D3D10_TEX2DMS_DSV {
629     UINT UnusedField_NothingToDefine;
630 } D3D10_TEX2DMS_DSV;
631
632 typedef struct D3D10_TEX2DMS_ARRAY_DSV {
633     UINT FirstArraySlice;
634     UINT ArraySize;
635 } D3D10_TEX2DMS_ARRAY_DSV;
636
637 typedef struct D3D10_DEPTH_STENCIL_VIEW_DESC {
638     DXGI_FORMAT Format;
639     D3D10_DSV_DIMENSION ViewDimension;
640     union {
641         D3D10_TEX1D_DSV Texture1D;
642         D3D10_TEX1D_ARRAY_DSV Texture1DArray;
643         D3D10_TEX2D_DSV Texture2D;
644         D3D10_TEX2D_ARRAY_DSV Texture2DArray;
645         D3D10_TEX2DMS_DSV Texture2DMS;
646         D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray;
647     } DUMMYUNIONNAME;
648 } D3D10_DEPTH_STENCIL_VIEW_DESC;
649
650 typedef enum D3D10_RTV_DIMENSION {
651     D3D10_RTV_DIMENSION_UNKNOWN,
652     D3D10_RTV_DIMENSION_BUFFER,
653     D3D10_RTV_DIMENSION_TEXTURE1D,
654     D3D10_RTV_DIMENSION_TEXTURE1DARRAY,
655     D3D10_RTV_DIMENSION_TEXTURE2D,
656     D3D10_RTV_DIMENSION_TEXTURE2DARRAY,
657     D3D10_RTV_DIMENSION_TEXTURE2DMS,
658     D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY,
659     D3D10_RTV_DIMENSION_TEXTURE3D,
660 } D3D10_RTV_DIMENSION;
661
662 typedef struct D3D10_BUFFER_RTV {
663     UINT ElementOffset;
664     UINT ElementWidth;
665 } D3D10_BUFFER_RTV;
666
667 typedef struct D3D10_TEX1D_RTV {
668     UINT MipSlice;
669 } D3D10_TEX1D_RTV;
670
671 typedef struct D3D10_TEX1D_ARRAY_RTV {
672     UINT MipSlice;
673     UINT FirstArraySlice;
674     UINT ArraySize;
675 } D3D10_TEX1D_ARRAY_RTV;
676
677 typedef struct D3D10_TEX2D_RTV {
678     UINT MipSlice;
679 } D3D10_TEX2D_RTV;
680
681 typedef struct D3D10_TEX2D_ARRAY_RTV {
682     UINT MipSlice;
683     UINT FirstArraySlice;
684     UINT ArraySize;
685 } D3D10_TEX2D_ARRAY_RTV;
686
687 typedef struct D3D10_TEX2DMS_RTV {
688     UINT UnusedField_NothingToDefine;
689 } D3D10_TEX2DMS_RTV;
690
691 typedef struct D3D10_TEX2DMS_ARRAY_RTV {
692     UINT FirstArraySlice;
693     UINT ArraySize;
694 } D3D10_TEX2DMS_ARRAY_RTV;
695
696 typedef struct D3D10_TEX3D_RTV {
697     UINT MipSlice;
698     UINT FirstWSlice;
699     UINT WSize;
700 } D3D10_TEX3D_RTV;
701
702 typedef struct D3D10_RENDER_TARGET_VIEW_DESC {
703     DXGI_FORMAT Format;
704     D3D10_RTV_DIMENSION ViewDimension;
705     union {
706         D3D10_BUFFER_RTV Buffer;
707         D3D10_TEX1D_RTV Texture1D;
708         D3D10_TEX1D_ARRAY_RTV Texture1DArray;
709         D3D10_TEX2D_RTV Texture2D;
710         D3D10_TEX2D_ARRAY_RTV Texture2DArray;
711         D3D10_TEX2DMS_RTV Texture2DMS;
712         D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray;
713         D3D10_TEX3D_RTV Texture3D;
714     } DUMMYUNIONNAME;
715 } D3D10_RENDER_TARGET_VIEW_DESC;
716
717 typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION;
718
719 typedef struct D3D10_BUFFER_SRV {
720     UINT ElementOffset;
721     UINT ElementWidth;
722 } D3D10_BUFFER_SRV;
723
724 typedef struct D3D10_TEX1D_SRV {
725     UINT MostDetailedMip;
726     UINT MipLevels;
727 } D3D10_TEX1D_SRV;
728
729 typedef struct D3D10_TEX1D_ARRAY_SRV {
730     UINT MostDetailedMip;
731     UINT MipLevels;
732     UINT FirstArraySlice;
733     UINT ArraySize;
734 } D3D10_TEX1D_ARRAY_SRV;
735
736 typedef struct D3D10_TEX2D_SRV {
737     UINT MostDetailedMip;
738     UINT MipLevels;
739 } D3D10_TEX2D_SRV;
740
741 typedef struct D3D10_TEX2D_ARRAY_SRV {
742     UINT MostDetailedMip;
743     UINT MipLevels;
744     UINT FirstArraySlice;
745     UINT ArraySize;
746 } D3D10_TEX2D_ARRAY_SRV;
747
748 typedef struct D3D10_TEX2DMS_SRV {
749     UINT UnusedField_NothingToDefine;
750 } D3D10_TEX2DMS_SRV;
751
752 typedef struct D3D10_TEX2DMS_ARRAY_SRV {
753     UINT FirstArraySlice;
754     UINT ArraySize;
755 } D3D10_TEX2DMS_ARRAY_SRV;
756
757 typedef struct D3D10_TEX3D_SRV {
758     UINT MostDetailedMip;
759     UINT MipLevels;
760 } D3D10_TEX3D_SRV;
761
762 typedef struct D3D10_TEXCUBE_SRV {
763     UINT MostDetailedMip;
764     UINT MipLevels;
765 } D3D10_TEXCUBE_SRV;
766
767 typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC {
768     DXGI_FORMAT Format;
769     D3D10_SRV_DIMENSION ViewDimension;
770     union {
771         D3D10_BUFFER_SRV Buffer;
772         D3D10_TEX1D_SRV Texture1D;
773         D3D10_TEX1D_ARRAY_SRV Texture1DArray;
774         D3D10_TEX2D_SRV Texture2D;
775         D3D10_TEX2D_ARRAY_SRV Texture2DArray;
776         D3D10_TEX2DMS_SRV Texture2DMS;
777         D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
778         D3D10_TEX3D_SRV Texture3D;
779         D3D10_TEXCUBE_SRV TextureCube;
780     } DUMMYUNIONNAME;
781 } D3D10_SHADER_RESOURCE_VIEW_DESC;
782
783 typedef struct D3D10_BOX {
784     UINT left;
785     UINT top;
786     UINT front;
787     UINT right;
788     UINT bottom;
789     UINT back;
790 } D3D10_BOX;
791
792 typedef struct D3D10_SUBRESOURCE_DATA {
793     const void *pSysMem;
794     UINT SysMemPitch;
795     UINT SysMemSlicePitch;
796 } D3D10_SUBRESOURCE_DATA;
797
798 typedef struct D3D10_SO_DECLARATION_ENTRY {
799     LPCSTR SemanticName;
800     UINT SemanticIndex;
801     BYTE StartComponent;
802     BYTE ComponentCount;
803     BYTE OutputSlot;
804 } D3D10_SO_DECLARATION_ENTRY;
805
806 typedef enum D3D10_INPUT_CLASSIFICATION {
807     D3D10_INPUT_PER_VERTEX_DATA,
808     D3D10_INPUT_PER_INSTANCE_DATA,
809 } D3D10_INPUT_CLASSIFICATION;
810
811 typedef struct D3D10_INPUT_ELEMENT_DESC {
812     LPCSTR SemanticName;
813     UINT SemanticIndex;
814     DXGI_FORMAT Format;
815     UINT InputSlot;
816     UINT AlignedByteOffset;
817     D3D10_INPUT_CLASSIFICATION InputSlotClass;
818     UINT InstanceDataStepRate;
819 } D3D10_INPUT_ELEMENT_DESC;
820
821 typedef enum D3D10_QUERY {
822     D3D10_QUERY_EVENT,
823     D3D10_QUERY_OCCLUSION,
824     D3D10_QUERY_TIMESTAMP,
825     D3D10_QUERY_TIMESTAMP_DISJOINT,
826     D3D10_QUERY_PIPELINE_STATISTICS,
827     D3D10_QUERY_OCCLUSION_PREDICATE,
828     D3D10_QUERY_SO_STATISTICS,
829     D3D10_QUERY_SO_OVERFLOW_PREDICATE,
830 } D3D10_QUERY;
831
832 typedef struct D3D10_QUERY_DESC {
833     D3D10_QUERY Query;
834     UINT MiscFlags;
835 } D3D10_QUERY_DESC;
836
837 typedef D3D_PRIMITIVE_TOPOLOGY D3D10_PRIMITIVE_TOPOLOGY;
838
839 typedef D3D_PRIMITIVE D3D10_PRIMITIVE;
840
841 typedef RECT D3D10_RECT;
842
843 typedef struct D3D10_VIEWPORT {
844     INT TopLeftX;
845     INT TopLeftY;
846     UINT Width;
847     UINT Height;
848     FLOAT MinDepth;
849     FLOAT MaxDepth;
850 } D3D10_VIEWPORT;
851
852 typedef struct D3D10_MAPPED_TEXTURE2D {
853     void *pData;
854     UINT RowPitch;
855 } D3D10_MAPPED_TEXTURE2D;
856
857 typedef struct D3D10_MAPPED_TEXTURE3D {
858     void *pData;
859     UINT RowPitch;
860     UINT DepthPitch;
861 } D3D10_MAPPED_TEXTURE3D;
862
863 typedef enum D3D10_CPU_ACCESS_FLAG {
864     D3D10_CPU_ACCESS_WRITE = 0x10000,
865     D3D10_CPU_ACCESS_READ  = 0x20000
866 } D3D10_CPU_ACCESS_FLAG;
867
868 typedef enum D3D10_RESOURCE_MISC_FLAG {
869     D3D10_RESOURCE_MISC_GENERATE_MIPS      = 0x0001,
870     D3D10_RESOURCE_MISC_SHARED             = 0x0002,
871     D3D10_RESOURCE_MISC_TEXTURECUBE        = 0x0004,
872     D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX  = 0x0010,
873     D3D10_RESOURCE_MISC_GDI_COMPATIBLE     = 0x0020
874 } D3D10_RESOURCE_MISC_FLAG;
875
876 typedef enum D3D10_MAP_FLAG {
877     D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000,
878 } D3D10_MAP_FLAG;
879
880 typedef enum D3D10_CLEAR_FLAG {
881     D3D10_CLEAR_DEPTH   = 0x1,
882     D3D10_CLEAR_STENCIL = 0x2
883 } D3D10_CLEAR_FLAG;
884
885 typedef enum D3D10_COLOR_WRITE_ENABLE {
886     D3D10_COLOR_WRITE_ENABLE_RED   = 0x1,
887     D3D10_COLOR_WRITE_ENABLE_GREEN = 0x2,
888     D3D10_COLOR_WRITE_ENABLE_BLUE  = 0x4,
889     D3D10_COLOR_WRITE_ENABLE_ALPHA = 0x8,
890     D3D10_COLOR_WRITE_ENABLE_ALL   = (D3D10_COLOR_WRITE_ENABLE_RED  | D3D10_COLOR_WRITE_ENABLE_GREEN |
891                                       D3D10_COLOR_WRITE_ENABLE_BLUE | D3D10_COLOR_WRITE_ENABLE_ALPHA)
892 } D3D10_COLOR_WRITE_ENABLE;
893
894 typedef enum D3D10_TEXTURECUBE_FACE {
895     D3D10_TEXTURECUBE_FACE_POSITIVE_X,
896     D3D10_TEXTURECUBE_FACE_NEGATIVE_X,
897     D3D10_TEXTURECUBE_FACE_POSITIVE_Y,
898     D3D10_TEXTURECUBE_FACE_NEGATIVE_Y,
899     D3D10_TEXTURECUBE_FACE_POSITIVE_Z,
900     D3D10_TEXTURECUBE_FACE_NEGATIVE_Z,
901 } D3D10_TEXTURECUBE_FACE;
902
903 typedef enum D3D10_ASYNC_GETDATA_FLAG {
904     D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1,
905 } D3D10_ASYNC_GETDATA_FLAG;
906
907 typedef enum D3D10_FILTER_TYPE {
908     D3D10_FILTER_TYPE_POINT,
909     D3D10_FILTER_TYPE_LINEAR
910 } D3D10_FILTER_TYPE;
911
912 typedef enum D3D10_QUERY_MISC_FLAG {
913     D3D10_QUERY_MISC_PREDICATEHINT = 0x1
914 } D3D10_QUERY_MISC_FLAG;
915
916 typedef struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT {
917     UINT64 Frequency;
918     BOOL Disjoint;
919 } D3D10_QUERY_DATA_TIMESTAMP_DISJOINT;
920
921 typedef struct D3D10_QUERY_DATA_PIPELINE_STATISTICS {
922     UINT64 IAVertices;
923     UINT64 IAPrimitives;
924     UINT64 VSInvocations;
925     UINT64 GSInvocations;
926     UINT64 GSPrimitives;
927     UINT64 CInvocations;
928     UINT64 CPrimitives;
929     UINT64 PSInvocations;
930 } D3D10_QUERY_DATA_PIPELINE_STATISTICS;
931
932 typedef struct D3D10_QUERY_DATA_SO_STATISTICS {
933     UINT64 NumPrimitivesWritten;
934     UINT64 PrimitivesStorageNeeded;
935 } D3D10_QUERY_DATA_SO_STATISTICS;
936
937 typedef enum D3D10_CREATE_DEVICE_FLAG {
938     D3D10_CREATE_DEVICE_SINGLETHREADED                           = 0x1,
939     D3D10_CREATE_DEVICE_DEBUG                                    = 0x2,
940     D3D10_CREATE_DEVICE_SWITCH_TO_REF                            = 0x4,
941     D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8,
942     D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP                      = 0x10,
943     D3D10_CREATE_DEVICE_BGRA_SUPPORT                             = 0x20,
944     D3D10_CREATE_DEVICE_STRICT_VALIDATION                        = 0x0200
945 } D3D10_CREATE_DEVICE_FLAG;
946
947 /* Core */
948
949 interface ID3D10Device;
950
951 [
952     object,
953     local,
954     uuid(9b7e4c00-342c-4106-a19f-4f2704f689f0)
955 ]
956 interface ID3D10DeviceChild : IUnknown
957 {
958         void GetDevice(
959             [out] ID3D10Device **ppDevice);
960         HRESULT GetPrivateData(
961             [in] REFGUID guid,
962             [in, out] UINT *pDataSize,
963             [out] void *pData);
964         HRESULT SetPrivateData(
965             [in] REFGUID guid,
966             [in] UINT DataSize,
967             [in] const void *pData);
968         HRESULT SetPrivateDataInterface(
969             [in] REFGUID guid,
970             [in] const IUnknown *pData);
971 }
972
973 /* Resource */
974
975 [
976     object,
977     local,
978     uuid(9b7e4c01-342c-4106-a19f-4f2704f689f0)
979 ]
980 interface ID3D10Resource : ID3D10DeviceChild
981 {
982         void GetType(
983             [out] D3D10_RESOURCE_DIMENSION *rType);
984         void SetEvictionPriority(
985             [in] UINT EvictionPriority);
986         UINT GetEvictionPriority();
987 }
988
989 [
990     object,
991     local,
992     uuid(9b7e4c02-342c-4106-a19f-4f2704f689f0)
993 ]
994 interface ID3D10Buffer : ID3D10Resource
995 {
996         HRESULT Map(
997             [in] D3D10_MAP MapType,
998             [in] UINT MapFlags,
999             [out] void **ppData);
1000         void Unmap();
1001         void GetDesc(
1002             [out] D3D10_BUFFER_DESC *pDesc);
1003 }
1004
1005 [
1006     object,
1007     local,
1008     uuid(9b7e4c03-342c-4106-a19f-4f2704f689F0)
1009 ]
1010 interface ID3D10Texture1D : ID3D10Resource
1011 {
1012         HRESULT Map(
1013             [in] UINT Subresource,
1014             [in] D3D10_MAP MapType,
1015             [in] UINT MapFlags,
1016             [out] void **ppData);
1017         void Unmap(
1018             [in] UINT Subresource);
1019         void GetDesc(
1020             [out] D3D10_TEXTURE1D_DESC *pDesc);
1021 }
1022
1023 [
1024     object,
1025     local,
1026     uuid(9b7e4c04-342c-4106-a19f-4f2704f689F0)
1027 ]
1028 interface ID3D10Texture2D : ID3D10Resource
1029 {
1030         HRESULT Map(
1031             [in] UINT Subresource,
1032             [in] D3D10_MAP MapType,
1033             [in] UINT MapFlags,
1034             [out] D3D10_MAPPED_TEXTURE2D *pMappedTex2D);
1035         void Unmap(
1036             [in] UINT Subresource);
1037         void GetDesc(
1038             [out] D3D10_TEXTURE2D_DESC *pDesc);
1039 }
1040
1041 [
1042     object,
1043     local,
1044     uuid(9b7e4c05-342c-4106-a19f-4f2704f689F0)
1045 ]
1046 interface ID3D10Texture3D : ID3D10Resource
1047 {
1048         HRESULT Map(
1049             [in] UINT Subresource,
1050             [in] D3D10_MAP MapType,
1051             [in] UINT MapFlags,
1052             [out] D3D10_MAPPED_TEXTURE3D *pMappedTex3D);
1053         void Unmap(
1054             [in] UINT Subresource);
1055         void GetDesc(
1056             [out] D3D10_TEXTURE3D_DESC *pDesc);
1057 }
1058
1059 [
1060     object,
1061     local,
1062     uuid(c902b03f-60a7-49ba-9936-2a3ab37a7e33)
1063 ]
1064 interface ID3D10View : ID3D10DeviceChild
1065 {
1066         void GetResource(
1067             [out] ID3D10Resource **ppResource);
1068 }
1069
1070 [
1071     object,
1072     local,
1073     uuid(9b7e4c09-342c-4106-a19f-4f2704f689f0)
1074 ]
1075 interface ID3D10DepthStencilView : ID3D10View
1076 {
1077         void GetDesc(
1078             [out] D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc);
1079 }
1080
1081
1082 [
1083     object,
1084     local,
1085     uuid(9b7e4c08-342c-4106-a19f-4f2704f689f0)
1086 ]
1087 interface ID3D10RenderTargetView : ID3D10View
1088 {
1089         void GetDesc(
1090             [out] D3D10_RENDER_TARGET_VIEW_DESC *pDesc);
1091 }
1092
1093 [
1094     object,
1095     local,
1096     uuid(9b7e4c07-342c-4106-a19f-4f2704f689f0)
1097 ]
1098 interface ID3D10ShaderResourceView  : ID3D10View
1099 {
1100         void GetDesc(
1101             [out] D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
1102 }
1103
1104 /* Resource End */
1105
1106 [
1107     object,
1108     local,
1109     uuid(edad8d19-8a35-4d6d-8566-2ea276cde161)
1110 ]
1111 interface ID3D10BlendState : ID3D10DeviceChild
1112 {
1113     void GetDesc(
1114             [out] D3D10_BLEND_DESC *pDesc);
1115 }
1116
1117 [
1118     object,
1119     local,
1120     uuid(2b4b1cc8-a4ad-41f8-8322-ca86fc3ec675)
1121 ]
1122 interface ID3D10DepthStencilState : ID3D10DeviceChild
1123 {
1124     void GetDesc(
1125             [out] D3D10_DEPTH_STENCIL_DESC *pDesc);
1126 }
1127
1128 [
1129     object,
1130     local,
1131     uuid(6316be88-54cd-4040-ab44-20461bc81f68)
1132 ]
1133 interface ID3D10GeometryShader  : ID3D10DeviceChild
1134 {
1135 }
1136
1137 [
1138     object,
1139     local,
1140     uuid(9b7e4c0b-342c-4106-a19f-4f2704f689f0)
1141 ]
1142 interface ID3D10InputLayout  : ID3D10DeviceChild
1143 {
1144 }
1145
1146 [
1147     object,
1148     local,
1149     uuid(4968b601-9d00-4cde-8346-8e7f675819b6)
1150 ]
1151 interface ID3D10PixelShader  : ID3D10DeviceChild
1152 {
1153 }
1154
1155 [
1156     object,
1157     local,
1158     uuid(a2a07292-89af-4345-be2e-c53d9fbb6e9f)
1159 ]
1160 interface ID3D10RasterizerState  : ID3D10DeviceChild
1161 {
1162     void GetDesc(
1163             [out] D3D10_RASTERIZER_DESC *pDesc);
1164 }
1165
1166 [
1167     object,
1168     local,
1169     uuid(9b7e4c0c-342c-4106-a19f-4f2704f689f0)
1170 ]
1171 interface ID3D10SamplerState  : ID3D10DeviceChild
1172 {
1173     void GetDesc(
1174             [out] D3D10_SAMPLER_DESC *pDesc);
1175 }
1176
1177 [
1178     object,
1179     local,
1180     uuid(9b7e4c0a-342c-4106-a19f-4f2704f689f0)
1181 ]
1182 interface ID3D10VertexShader  : ID3D10DeviceChild
1183 {
1184 }
1185
1186 [
1187     object,
1188     local,
1189     uuid(9b7e4c0d-342c-4106-a19f-4f2704f689f0)
1190 ]
1191 interface ID3D10Asynchronous  : ID3D10DeviceChild
1192 {
1193     void Begin();
1194     void End();
1195     HRESULT GetData(
1196             [out] void *pData,
1197             [in] UINT DataSize,
1198             [in] UINT GetDataFlags);
1199     UINT GetDataSize();
1200 }
1201
1202 [
1203     object,
1204     local,
1205     uuid(9b7e4c11-342c-4106-a19f-4f2704f689f0)
1206 ]
1207 interface ID3D10Counter  : ID3D10Asynchronous
1208 {
1209     void GetDesc(
1210             [out] D3D10_COUNTER_DESC *pDesc);
1211 }
1212
1213 [
1214     object,
1215     local,
1216     uuid(9b7e4C0e-342C-4106-a19f-4f2704f689f0)
1217 ]
1218 interface ID3D10Query : ID3D10Asynchronous
1219 {
1220     void GetDesc(
1221             [out] D3D10_QUERY_DESC *pDesc);
1222 }
1223
1224 [
1225     object,
1226     local,
1227     uuid(9b7e4c10-342c-4106-a19f-4f2704f689f0)
1228 ]
1229 interface ID3D10Predicate : ID3D10Query
1230 {
1231 }
1232
1233 [
1234     object,
1235     local,
1236     uuid(9b7e4c0f-342c-4106-a19f-4f2704f689f0)
1237 ]
1238 interface ID3D10Device : IUnknown
1239 {
1240         void VSSetConstantBuffers(
1241             [in] UINT StartSlot,
1242             [in] UINT NumBuffers,
1243             [in] ID3D10Buffer *const *ppConstantBuffers);
1244         void PSSetShaderResources(
1245             [in] UINT StartSlot,
1246             [in] UINT NumViews,
1247             [in] ID3D10ShaderResourceView *const *ppShaderResourceViews);
1248         void PSSetShader(
1249             [in] ID3D10PixelShader *pPixelShader);
1250         void PSSetSamplers(
1251             [in] UINT StartSlot,
1252             [in] UINT NumSamplers,
1253             [in]ID3D10SamplerState *const *ppSamplers);
1254         void VSSetShader(
1255             [in] ID3D10VertexShader *pVertexShader);
1256         void DrawIndexed(
1257             [in] UINT IndexCount,
1258             [in] UINT StartIndexLocation,
1259             [in] INT BaseVertexLocation);
1260         void Draw(
1261             [in] UINT VertexCount,
1262             [in] UINT StartVertexLocation);
1263         void PSSetConstantBuffers(
1264             [in] UINT StartSlot,
1265             [in] UINT NumBuffers,
1266             [in] ID3D10Buffer *const *ppConstantBuffers);
1267         void IASetInputLayout(
1268             [in] ID3D10InputLayout *pInputLayout);
1269         void IASetVertexBuffers(
1270             [in] UINT StartSlot,
1271             [in] UINT NumBuffers,
1272             [in] ID3D10Buffer *const *ppVertexBuffers,
1273             [in] const UINT *pStrides,
1274             [in] const UINT *pOffsets);
1275         void IASetIndexBuffer(
1276             [in] ID3D10Buffer *pIndexBuffer,
1277             [in] DXGI_FORMAT Format,
1278             [in] UINT Offset);
1279         void DrawIndexedInstanced(
1280             [in] UINT IndexCountPerInstance,
1281             [in] UINT InstanceCount,
1282             [in] UINT StartIndexLocation,
1283             [in] INT BaseVertexLocation,
1284             [in] UINT StartInstanceLocation);
1285         void DrawInstanced(
1286             [in] UINT VertexCountPerInstance,
1287             [in] UINT InstanceCount,
1288             [in] UINT StartVertexLocation,
1289             [in] UINT StartInstanceLocation);
1290         void GSSetConstantBuffers(
1291             [in] UINT StartSlot,
1292             [in] UINT NumBuffers,
1293             [in] ID3D10Buffer *const *ppConstantBuffers);
1294         void GSSetShader(
1295             [in] ID3D10GeometryShader *pShader);
1296         void IASetPrimitiveTopology(
1297             [in] D3D10_PRIMITIVE_TOPOLOGY Topology);
1298         void VSSetShaderResources(
1299             [in] UINT StartSlot,
1300             [in] UINT NumViews,
1301             [in] ID3D10ShaderResourceView *const *ppShaderResourceViews);
1302         void VSSetSamplers(
1303             [in] UINT StartSlot,
1304             [in] UINT NumSamplers,
1305             [in] ID3D10SamplerState *const *ppSamplers);
1306         void SetPredication(
1307             [in] ID3D10Predicate *pPredicate,
1308             [in] BOOL PredicateValue);
1309         void GSSetShaderResources(
1310             [in] UINT StartSlot,
1311             [in] UINT NumViews,
1312             [in] ID3D10ShaderResourceView * const *ppShaderResourceViews);
1313         void GSSetSamplers(
1314             [in] UINT StartSlot,
1315             [in] UINT NumSamplers,
1316             [in] ID3D10SamplerState *const *ppSamplers);
1317         void OMSetRenderTargets(
1318             [in] UINT NumViews,
1319             [in] ID3D10RenderTargetView *const *ppRenderTargetViews,
1320             [in] ID3D10DepthStencilView *pDepthStencilView);
1321         void OMSetBlendState(
1322             [in] ID3D10BlendState *pBlendState,
1323             [in] const FLOAT BlendFactor[4],
1324             [in] UINT SampleMask);
1325         void OMSetDepthStencilState(
1326             [in] ID3D10DepthStencilState *pDepthStencilState,
1327             [in] UINT StencilRef);
1328         void SOSetTargets(
1329             [in] UINT NumBuffers,
1330             [in] ID3D10Buffer *const *ppSOTargets,
1331             [in] const UINT *pOffsets);
1332         void DrawAuto();
1333         void RSSetState(
1334             [in] ID3D10RasterizerState *pRasterizerState);
1335         void RSSetViewports(
1336             [in] UINT NumViewports,
1337             [in] const D3D10_VIEWPORT *pViewports);
1338         void RSSetScissorRects(
1339             [in] UINT NumRects,
1340             [in] const D3D10_RECT *pRects);
1341         void CopySubresourceRegion(
1342             [in] ID3D10Resource *pDstResource,
1343             [in] UINT DstSubresource,
1344             [in] UINT DstX,
1345             [in] UINT DstY,
1346             [in] UINT DstZ,
1347             [in] ID3D10Resource *pSrcResource,
1348             [in] UINT SrcSubresource,
1349             [in] const D3D10_BOX *pSrcBox);
1350         void CopyResource(
1351             [in] ID3D10Resource *pDstResource,
1352             [in] ID3D10Resource *pSrcResource);
1353         void UpdateSubresource(
1354             [in] ID3D10Resource *pDstResource,
1355             [in] UINT DstSubresource,
1356             [in] const D3D10_BOX *pDstBox,
1357             [in] const void *pSrcData,
1358             [in] UINT SrcRowPitch,
1359             [in] UINT SrcDepthPitch);
1360         void ClearRenderTargetView(
1361             [in] ID3D10RenderTargetView *pRenderTargetView,
1362             [in] const FLOAT ColorRGBA[4]);
1363         void ClearDepthStencilView(
1364             [in] ID3D10DepthStencilView *pDepthStencilView,
1365             [in] UINT ClearFlags,
1366             [in] FLOAT Depth,
1367             [in] UINT8 Stencil);
1368         void GenerateMips(
1369             [in] ID3D10ShaderResourceView *pShaderResourceView);
1370         void ResolveSubresource(
1371             [in] ID3D10Resource *pDstResource,
1372             [in] UINT DstSubresource,
1373             [in] ID3D10Resource *pSrcResource,
1374             [in] UINT SrcSubresource,
1375             [in] DXGI_FORMAT Format);
1376         void VSGetConstantBuffers(
1377             [in] UINT StartSlot,
1378             [in] UINT NumBuffers,
1379             [out] ID3D10Buffer **ppConstantBuffers);
1380         void PSGetShaderResources(
1381             [in] UINT StartSlot,
1382             [in] UINT NumViews,
1383             [out] ID3D10ShaderResourceView **ppShaderResourceViews);
1384         void PSGetShader(
1385             [out] ID3D10PixelShader **ppPixelShader);
1386         void PSGetSamplers(
1387             [in] UINT StartSlot,
1388             [in] UINT NumSamplers,
1389             [out] ID3D10SamplerState **ppSamplers);
1390         void VSGetShader(
1391             [out] ID3D10VertexShader **ppVertexShader);
1392         void PSGetConstantBuffers(
1393             [in] UINT StartSlot,
1394             [in] UINT NumBuffers,
1395             [out] ID3D10Buffer **ppConstantBuffers);
1396         void IAGetInputLayout(
1397             [out] ID3D10InputLayout **ppInputLayout);
1398         void IAGetVertexBuffers(
1399             [in] UINT StartSlot,
1400             [in] UINT NumBuffers,
1401             [out] ID3D10Buffer **ppVertexBuffers,
1402             [out] UINT *pStrides,
1403             [out] UINT *pOffsets);
1404         void IAGetIndexBuffer(
1405             [out] ID3D10Buffer **pIndexBuffer,
1406             [out] DXGI_FORMAT *Format,
1407             [out] UINT *Offset);
1408         void GSGetConstantBuffers(
1409             [in] UINT StartSlot,
1410             [in] UINT NumBuffers,
1411             [out] ID3D10Buffer **ppConstantBuffers);
1412         void GSGetShader(
1413             [out] ID3D10GeometryShader **ppGeometryShader);
1414         void IAGetPrimitiveTopology(
1415             [out] D3D10_PRIMITIVE_TOPOLOGY *pTopology);
1416         void VSGetShaderResources(
1417             [in] UINT StartSlot,
1418             [in] UINT NumViews,
1419             [out] ID3D10ShaderResourceView **ppShaderResourceViews);
1420         void VSGetSamplers(
1421             [in] UINT StartSlot,
1422             [in] UINT NumSamplers,
1423             [out] ID3D10SamplerState **ppSamplers);
1424         void GetPredication(
1425             [out] ID3D10Predicate **ppPredicate,
1426             [out] BOOL *pPredicateValue);
1427         void GSGetShaderResources(
1428             [in] UINT StartSlot,
1429             [in] UINT NumViews,
1430             [out] ID3D10ShaderResourceView **ppShaderResourceViews);
1431         void GSGetSamplers(
1432             [in] UINT StartSlot,
1433             [in] UINT NumSamplers,
1434             [out] ID3D10SamplerState **ppSamplers);
1435         void OMGetRenderTargets(
1436             [in] UINT NumViews,
1437             [out] ID3D10RenderTargetView **ppRenderTargetViews,
1438             [out] ID3D10DepthStencilView **ppDepthStencilView);
1439         void OMGetBlendState(
1440             [out] ID3D10BlendState **ppBlendState,
1441             [out] FLOAT BlendFactor[4],
1442             [out] UINT *pSampleMask);
1443         void OMGetDepthStencilState(
1444             [out] ID3D10DepthStencilState **ppDepthStencilState,
1445             [out] UINT *pStencilRef);
1446         void SOGetTargets(
1447             [in] UINT NumBuffers,
1448             [out] ID3D10Buffer **ppSOTargets,
1449             [out] UINT *pOffsets);
1450         void RSGetState(
1451             [out] ID3D10RasterizerState **ppRasterizerState);
1452         void RSGetViewports(
1453             [in, out] UINT *NumViewports,
1454             [out] D3D10_VIEWPORT *pViewports);
1455         void RSGetScissorRects(
1456             [in, out] UINT *NumRects,
1457             [out] D3D10_RECT *pRects);
1458         HRESULT GetDeviceRemovedReason();
1459         HRESULT SetExceptionMode(
1460             [in] UINT RaiseFlags);
1461         UINT GetExceptionMode();
1462         HRESULT GetPrivateData(
1463             [in] REFGUID guid,
1464             [in, out] UINT *pDataSize,
1465             [out] void *pData);
1466         HRESULT SetPrivateData(
1467             [in] REFGUID guid,
1468             [in] UINT DataSize,
1469             [in] const void *pData);
1470         HRESULT SetPrivateDataInterface(
1471             [in] REFGUID guid,
1472             [in] const IUnknown *pData);
1473         void ClearState();
1474         void Flush();
1475         HRESULT CreateBuffer(
1476             [in] const D3D10_BUFFER_DESC *pDesc,
1477             [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
1478             [out] ID3D10Buffer **ppBuffer);
1479         HRESULT CreateTexture1D(
1480             [in] const D3D10_TEXTURE1D_DESC *pDesc,
1481             [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
1482             [out] ID3D10Texture1D **ppTexture1D);
1483         HRESULT CreateTexture2D(
1484             [in] const D3D10_TEXTURE2D_DESC *pDesc,
1485             [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
1486             [out] ID3D10Texture2D **ppTexture2D);
1487         HRESULT CreateTexture3D(
1488             [in] const D3D10_TEXTURE3D_DESC *pDesc,
1489             [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
1490             [out] ID3D10Texture3D **ppTexture3D);
1491         HRESULT CreateShaderResourceView(
1492             [in] ID3D10Resource *pResource,
1493             [in] const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
1494             [out] ID3D10ShaderResourceView **ppSRView);
1495         HRESULT CreateRenderTargetView(
1496             [in] ID3D10Resource *pResource,
1497             [in] const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
1498             [out] ID3D10RenderTargetView **ppRTView);
1499         HRESULT CreateDepthStencilView(
1500             [in] ID3D10Resource *pResource,
1501             [in] const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
1502             [out] ID3D10DepthStencilView **ppDepthStencilView);
1503         HRESULT CreateInputLayout(
1504             [in] const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
1505             [in] UINT NumElements,
1506             [in] const void *pShaderBytecodeWithInputSignature,
1507             [in] SIZE_T BytecodeLength,
1508             [out] ID3D10InputLayout **ppInputLayout);
1509         HRESULT CreateVertexShader(
1510             [in] const void *pShaderBytecode,
1511             [in] SIZE_T BytecodeLength,
1512             [out] ID3D10VertexShader **ppVertexShader);
1513         HRESULT CreateGeometryShader(
1514             [in] const void *pShaderBytecode,
1515             [in] SIZE_T BytecodeLength,
1516             [out] ID3D10GeometryShader **ppGeometryShader);
1517         HRESULT CreateGeometryShaderWithStreamOutput(
1518             [in] const void *pShaderBytecode,
1519             [in] SIZE_T BytecodeLength,
1520             [in] const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
1521             [in] UINT NumEntries,
1522             [in] UINT OutputStreamStride,
1523             [out] ID3D10GeometryShader **ppGeometryShader);
1524         HRESULT CreatePixelShader(
1525             [in] const void *pShaderBytecode,
1526             [in] SIZE_T BytecodeLength,
1527             [out] ID3D10PixelShader **ppPixelShader);
1528         HRESULT CreateBlendState(
1529             [in] const D3D10_BLEND_DESC *pBlendStateDesc,
1530             [out] ID3D10BlendState **ppBlendState);
1531         HRESULT CreateDepthStencilState(
1532             [in] const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
1533             [out] ID3D10DepthStencilState **ppDepthStencilState);
1534         HRESULT CreateRasterizerState(
1535             [in] const D3D10_RASTERIZER_DESC *pRasterizerDesc,
1536             [out] ID3D10RasterizerState **ppRasterizerState);
1537         HRESULT CreateSamplerState(
1538             [in] const D3D10_SAMPLER_DESC *pSamplerDesc,
1539             [out] ID3D10SamplerState **ppSamplerState);
1540         HRESULT CreateQuery(
1541             [in] const D3D10_QUERY_DESC *pQueryDesc,
1542             [out] ID3D10Query **ppQuery);
1543         HRESULT CreatePredicate(
1544             [in] const D3D10_QUERY_DESC *pPredicateDesc,
1545             [out] ID3D10Predicate **ppPredicate);
1546         HRESULT CreateCounter(
1547             [in] const D3D10_COUNTER_DESC *pCounterDesc,
1548             [out] ID3D10Counter **ppCounter);
1549         HRESULT CheckFormatSupport(
1550             [in] DXGI_FORMAT Format,
1551             [out] UINT *pFormatSupport);
1552         HRESULT CheckMultisampleQualityLevels(
1553             [in] DXGI_FORMAT Format,
1554             [in] UINT SampleCount,
1555             [out] UINT *pNumQualityLevels);
1556         void CheckCounterInfo(
1557             [out] D3D10_COUNTER_INFO *pCounterInfo);
1558         HRESULT CheckCounter(
1559             [in] const D3D10_COUNTER_DESC *pDesc,
1560             [out] D3D10_COUNTER_TYPE *pType,
1561             [out] UINT *pActiveCounters,
1562             [out] LPSTR szName,
1563             [in, out] UINT *pNameLength,
1564             [out] LPSTR szUnits,
1565             [in, out] UINT *pUnitsLength,
1566             [out] LPSTR szDescription,
1567             [in, out] UINT *pDescriptionLength);
1568         UINT GetCreationFlags();
1569         HRESULT OpenSharedResource(
1570             [in] HANDLE hResource,
1571             [in] REFIID ReturnedInterface,
1572             [out] void **ppResource);
1573         void SetTextFilterSize(
1574             [in] UINT Width,
1575             [in] UINT Height);
1576         void GetTextFilterSize(
1577             [out] UINT *pWidth,
1578             [out] UINT *pHeight);
1579 }
1580
1581 [
1582     object,
1583     local,
1584     uuid(9b7e4e00-342c-4106-a19f-4f2704f689f0)
1585 ]
1586 interface ID3D10Multithread : IUnknown
1587 {
1588         void Enter();
1589         void Leave();
1590         BOOL SetMultithreadProtected(
1591             [in] BOOL bMTProtect);
1592         BOOL GetMultithreadProtected();
1593 }
1594
1595 cpp_quote("#include \"d3d10misc.h\"")
1596 cpp_quote("#include \"d3d10shader.h\"")
1597 cpp_quote("#include \"d3d10effect.h\"")
1598 /* TODO: Include "d310sdklayers.h" as soon as it exists */