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