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