comparison win32/directx/d3d10.d @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
comparison
equal deleted inserted replaced
0:586e4a649642 1:4a9dcbd9e54f
1 /***********************************************************************\
2 * d3d10.d *
3 * *
4 * Windows API header module *
5 * *
6 * Placed into public domain *
7 \***********************************************************************/
8 module win32.directx.d3d10;
9
10 private import win32.windows;
11
12 public import win32.directx.dxgitype;
13 public import win32.directx.dxgi;
14 public import win32.directx.d3d10misc;
15 public import win32.directx.d3d10shader;
16 public import win32.directx.d3d10effect;
17
18 pragma(lib, "d3d10.lib");
19
20 const D3D10_16BIT_INDEX_STRIP_CUT_VALUE = 0xffff;
21 const D3D10_32BIT_INDEX_STRIP_CUT_VALUE = 0xffffffff;
22 const D3D10_8BIT_INDEX_STRIP_CUT_VALUE = 0xff;
23 const D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT = 9;
24 const D3D10_CLIP_OR_CULL_DISTANCE_COUNT = 8;
25 const D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT = 2;
26 const D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = 14;
27 const D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = 4;
28 const D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32;
29 const D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = 15;
30 const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4;
31 const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15;
32 const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
33 const D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1;
34 const D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = 64;
35 const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4;
36 const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = 1;
37 const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
38 const D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1;
39 const D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = 32;
40 const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = 1;
41 const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = 128;
42 const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = 1;
43 const D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = 1;
44 const D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = 128;
45 const D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = 1;
46 const D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT = 16;
47 const D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = 1;
48 const D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = 1;
49 const D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT = 16;
50 const D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = 32;
51 const D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS = 4;
52 const D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = 32;
53 const D3D10_COMMONSHADER_TEMP_REGISTER_COUNT = 4096;
54 const D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = 3;
55 const D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS = 3;
56 const D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = 10;
57 const D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = -10;
58 const D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = -8;
59 const D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = 7;
60 const D3D10_DEFAULT_BLEND_FACTOR_ALPHA = 1.0f;
61 const D3D10_DEFAULT_BLEND_FACTOR_BLUE = 1.0f;
62 const D3D10_DEFAULT_BLEND_FACTOR_GREEN = 1.0f;
63 const D3D10_DEFAULT_BLEND_FACTOR_RED = 1.0f;
64 const D3D10_DEFAULT_BORDER_COLOR_COMPONENT = 0.0f;
65 const D3D10_DEFAULT_DEPTH_BIAS = 0;
66 const D3D10_DEFAULT_DEPTH_BIAS_CLAMP = 0.0f;
67 const D3D10_DEFAULT_MAX_ANISOTROPY = 16.0f;
68 const D3D10_DEFAULT_MIP_LOD_BIAS = 0.0f;
69 const D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0;
70 const D3D10_DEFAULT_SAMPLE_MASK = 0xffffffff;
71 const D3D10_DEFAULT_SCISSOR_ENDX = 0;
72 const D3D10_DEFAULT_SCISSOR_ENDY = 0;
73 const D3D10_DEFAULT_SCISSOR_STARTX = 0;
74 const D3D10_DEFAULT_SCISSOR_STARTY = 0;
75 const D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS = 0.0f;
76 const D3D10_DEFAULT_STENCIL_READ_MASK = 0xff;
77 const D3D10_DEFAULT_STENCIL_REFERENCE = 0;
78 const D3D10_DEFAULT_STENCIL_WRITE_MASK = 0xff;
79 const D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0;
80 const D3D10_DEFAULT_VIEWPORT_HEIGHT = 0;
81 const D3D10_DEFAULT_VIEWPORT_MAX_DEPTH = 0.0f;
82 const D3D10_DEFAULT_VIEWPORT_MIN_DEPTH = 0.0f;
83 const D3D10_DEFAULT_VIEWPORT_TOPLEFTX = 0;
84 const D3D10_DEFAULT_VIEWPORT_TOPLEFTY = 0;
85 const D3D10_DEFAULT_VIEWPORT_WIDTH = 0;
86 const D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP = 0.6;
87 const D3D10_FLOAT32_MAX = 3.402823466e+38f;
88 const D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = 0.6f;
89 const D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR = 2.4f;
90 const D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR = 1.0f;
91 const D3D10_FLOAT_TO_SRGB_OFFSET = 0.055f;
92 const D3D10_FLOAT_TO_SRGB_SCALE_1 = 12.92f;
93 const D3D10_FLOAT_TO_SRGB_SCALE_2 = 1.055f;
94 const D3D10_FLOAT_TO_SRGB_THRESHOLD = 0.0031308f;
95 const D3D10_FTOI_INSTRUCTION_MAX_INPUT = 2147483647.999f;
96 const D3D10_FTOI_INSTRUCTION_MIN_INPUT = -2147483648.999f;
97 const D3D10_FTOU_INSTRUCTION_MAX_INPUT = 4294967295.999f;
98 const D3D10_FTOU_INSTRUCTION_MIN_INPUT = 0.0f;
99 const D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS = 1;
100 const D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT = 32;
101 const D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT = 1;
102 const D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST = 2;
103 const D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS = 1;
104 const D3D10_GS_INPUT_REGISTER_COMPONENTS = 4;
105 const D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
106 const D3D10_GS_INPUT_REGISTER_COUNT = 16;
107 const D3D10_GS_INPUT_REGISTER_READS_PER_INST = 2;
108 const D3D10_GS_INPUT_REGISTER_READ_PORTS = 1;
109 const D3D10_GS_INPUT_REGISTER_VERTICES = 6;
110 const D3D10_GS_OUTPUT_ELEMENTS = 32;
111 const D3D10_GS_OUTPUT_REGISTER_COMPONENTS = 4;
112 const D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
113 const D3D10_GS_OUTPUT_REGISTER_COUNT = 32;
114 const D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = 0;
115 const D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY = 0;
116 const D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = 0;
117 const D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = 1;
118 const D3D10_IA_INSTANCE_ID_BIT_COUNT = 32;
119 const D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT = 32;
120 const D3D10_IA_PRIMITIVE_ID_BIT_COUNT = 32;
121 const D3D10_IA_VERTEX_ID_BIT_COUNT = 32;
122 const D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 16;
123 const D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 64;
124 const D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 16;
125 const D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT = 0xffffffff;
126 const D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER = 0xffffffff;
127 const D3D10_LINEAR_GAMMA = 1.0f;
128 const D3D10_MAX_BORDER_COLOR_COMPONENT = 1.0f;
129 const D3D10_MAX_DEPTH = 1.0f;
130 const D3D10_MAX_MAXANISOTROPY = 16;
131 const D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT = 32;
132 const D3D10_MAX_POSITION_VALUE = 3.402823466e+34f;
133 const D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP = 17;
134 const D3D10_MIN_BORDER_COLOR_COMPONENT = 0.0f;
135 const D3D10_MIN_DEPTH = 0.0f;
136 const D3D10_MIN_MAXANISOTROPY = 0;
137 const D3D10_MIP_LOD_BIAS_MAX = 15.99f;
138 const D3D10_MIP_LOD_BIAS_MIN = -16.0f;
139 const D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT = 6;
140 const D3D10_MIP_LOD_RANGE_BIT_COUNT = 8;
141 const D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH = 1.4f;
142 const D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT = 0;
143 const D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT = 13;
144 const D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = 15;
145 const D3D10_PS_FRONTFACING_DEFAULT_VALUE = 0xffffffff;
146 const D3D10_PS_FRONTFACING_FALSE_VALUE = 0;
147 const D3D10_PS_FRONTFACING_TRUE_VALUE = 0xffffffff;
148 const D3D10_PS_INPUT_REGISTER_COMPONENTS = 4;
149 const D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
150 const D3D10_PS_INPUT_REGISTER_COUNT = 32;
151 const D3D10_PS_INPUT_REGISTER_READS_PER_INST = 2;
152 const D3D10_PS_INPUT_REGISTER_READ_PORTS = 1;
153 const D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.0f;
154 const D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = 1;
155 const D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = 32;
156 const D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT = 1;
157 const D3D10_PS_OUTPUT_REGISTER_COMPONENTS = 4;
158 const D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
159 const D3D10_PS_OUTPUT_REGISTER_COUNT = 8;
160 const D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.5f;
161 const D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT = 4096;
162 const D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27;
163 const D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
164 const D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT = 4096;
165 const D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 32;
166 const D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = 32;
167 const D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = 8192;
168 const D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = 1024;
169 const D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
170 const D3D10_REQ_MAXANISOTROPY = 16;
171 const D3D10_REQ_MIP_LEVELS = 14;
172 const D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = 2048;
173 const D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT = 4096;
174 const D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = 8192;
175 const D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES = 128;
176 const D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP = 20;
177 const D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT = 4096;
178 const D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 512;
179 const D3D10_REQ_TEXTURE1D_U_DIMENSION = 8192;
180 const D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 512;
181 const D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION = 8192;
182 const D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048;
183 const D3D10_REQ_TEXTURECUBE_DIMENSION = 8192;
184 const D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = 0;
185 const D3D10_SHADER_MAJOR_VERSION = 4;
186 const D3D10_SHADER_MINOR_VERSION = 0;
187 const D3D10_SHIFT_INSTRUCTION_PAD_VALUE = 0;
188 const D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5;
189 const D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT = 8;
190 const D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048;
191 const D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 256;
192 const D3D10_SO_BUFFER_SLOT_COUNT = 4;
193 const D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP = 0xffffffff;
194 const D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER = 1;
195 const D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT = 64;
196 const D3D10_SRGB_GAMMA = 2.2f;
197 const D3D10_SRGB_TO_FLOAT_DENOMINATOR_1 = 12.92f;
198 const D3D10_SRGB_TO_FLOAT_DENOMINATOR_2 = 1.055f;
199 const D3D10_SRGB_TO_FLOAT_EXPONENT = 2.4f;
200 const D3D10_SRGB_TO_FLOAT_OFFSET = 0.055f;
201 const D3D10_SRGB_TO_FLOAT_THRESHOLD = 0.04045f;
202 const D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP = 0.5f;
203 const D3D10_STANDARD_COMPONENT_BIT_COUNT = 32;
204 const D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = 64;
205 const D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4;
206 const D3D10_STANDARD_PIXEL_COMPONENT_COUNT = 128;
207 const D3D10_STANDARD_PIXEL_ELEMENT_COUNT = 32;
208 const D3D10_STANDARD_VECTOR_SIZE = 4;
209 const D3D10_STANDARD_VERTEX_ELEMENT_COUNT = 16;
210 const D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = 64;
211 const D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8;
212 const D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT = 6;
213 const D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT = 18;
214 const D3D10_UNBOUND_MEMORY_ACCESS_RESULT = 0;
215 const D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = 15;
216 const D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16;
217 const D3D10_VIEWPORT_BOUNDS_MAX = 16383;
218 const D3D10_VIEWPORT_BOUNDS_MIN = -16384;
219 const D3D10_VS_INPUT_REGISTER_COMPONENTS = 4;
220 const D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
221 const D3D10_VS_INPUT_REGISTER_COUNT = 16;
222 const D3D10_VS_INPUT_REGISTER_READS_PER_INST = 2;
223 const D3D10_VS_INPUT_REGISTER_READ_PORTS = 1;
224 const D3D10_VS_OUTPUT_REGISTER_COMPONENTS = 4;
225 const D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
226 const D3D10_VS_OUTPUT_REGISTER_COUNT = 16;
227 const D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT = 10;
228 const D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 25;
229 const D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP = 25;
230 const D3D_MAJOR_VERSION = 10;
231 const D3D_MINOR_VERSION = 0;
232 const D3D_SPEC_DATE_DAY = 8;
233 const D3D_SPEC_DATE_MONTH = 8;
234 const D3D_SPEC_DATE_YEAR = 2006;
235 const D3D_SPEC_VERSION = 1.050005;
236
237 const _FACD3D10 = 0x879;
238 const _FACD3D10DEBUG = _FACD3D10 + 1;
239
240 HRESULT MAKE_D3D10_HRESULT(T)(T code) {
241 return MAKE_HRESULT(1, _FACD3D10, code);
242 }
243
244 HRESULT MAKE_D3D10_STATUS(T)(T code) {
245 return MAKE_HRESULT(0, _FACD3D10, code);
246 }
247
248 const D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS = MAKE_D3D10_HRESULT(1);
249 const D3D10_ERROR_FILE_NOT_FOUND = MAKE_D3D10_HRESULT(2);
250
251 enum D3D10_INPUT_CLASSIFICATION {
252 D3D10_INPUT_PER_VERTEX_DATA = 0,
253 D3D10_INPUT_PER_INSTANCE_DATA = 1
254 }
255
256 const D3D10_APPEND_ALIGNED_ELEMENT = 0xffffffff;
257
258 struct D3D10_INPUT_ELEMENT_DESC {
259 LPCSTR SemanticName;
260 UINT SemanticIndex;
261 DXGI_FORMAT Format;
262 UINT InputSlot;
263 UINT AlignedByteOffset;
264 D3D10_INPUT_CLASSIFICATION InputSlotClass;
265 UINT InstanceDataStepRate;
266 }
267
268 enum D3D10_FILL_MODE {
269 D3D10_FILL_WIREFRAME = 2,
270 D3D10_FILL_SOLID = 3
271 }
272
273 enum D3D10_PRIMITIVE_TOPOLOGY {
274 D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
275 D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
276 D3D10_PRIMITIVE_TOPOLOGY_LINELIST = 2,
277 D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
278 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
279 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
280 D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
281 D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
282 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
283 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13
284 }
285
286 enum D3D10_PRIMITIVE {
287 D3D10_PRIMITIVE_UNDEFINED = 0,
288 D3D10_PRIMITIVE_POINT = 1,
289 D3D10_PRIMITIVE_LINE = 2,
290 D3D10_PRIMITIVE_TRIANGLE = 3,
291 D3D10_PRIMITIVE_LINE_ADJ = 6,
292 D3D10_PRIMITIVE_TRIANGLE_ADJ = 7
293 }
294
295 enum D3D10_CULL_MODE {
296 D3D10_CULL_NONE = 1,
297 D3D10_CULL_FRONT,
298 D3D10_CULL_BACK
299 }
300
301 struct D3D10_SO_DECLARATION_ENTRY {
302 LPCSTR SemanticName;
303 UINT SemanticIndex;
304 BYTE StartComponent;
305 BYTE ComponentCount;
306 BYTE OutputSlot;
307 }
308
309 struct D3D10_VIEWPORT {
310 INT TopLeftX;
311 INT TopLeftY;
312 UINT Width;
313 UINT Height;
314 FLOAT MinDepth;
315 FLOAT MaxDepth;
316 }
317
318 enum D3D10_RESOURCE_DIMENSION {
319 D3D10_RESOURCE_DIMENSION_UNKNOWN = 0,
320 D3D10_RESOURCE_DIMENSION_BUFFER,
321 D3D10_RESOURCE_DIMENSION_TEXTURE1D,
322 D3D10_RESOURCE_DIMENSION_TEXTURE2D,
323 D3D10_RESOURCE_DIMENSION_TEXTURE3D
324 }
325
326 enum D3D10_SRV_DIMENSION {
327 D3D10_SRV_DIMENSION_UNKNOWN = 0,
328 D3D10_SRV_DIMENSION_BUFFER,
329 D3D10_SRV_DIMENSION_TEXTURE1D,
330 D3D10_SRV_DIMENSION_TEXTURE1DARRAY,
331 D3D10_SRV_DIMENSION_TEXTURE2D,
332 D3D10_SRV_DIMENSION_TEXTURE2DARRAY,
333 D3D10_SRV_DIMENSION_TEXTURE2DMS,
334 D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY,
335 D3D10_SRV_DIMENSION_TEXTURE3D,
336 D3D10_SRV_DIMENSION_TEXTURECUBE
337 }
338
339 enum D3D10_DSV_DIMENSION {
340 D3D10_DSV_DIMENSION_UNKNOWN = 0,
341 D3D10_DSV_DIMENSION_TEXTURE1D,
342 D3D10_DSV_DIMENSION_TEXTURE1DARRAY,
343 D3D10_DSV_DIMENSION_TEXTURE2D,
344 D3D10_DSV_DIMENSION_TEXTURE2DARRAY,
345 D3D10_DSV_DIMENSION_TEXTURE2DMS,
346 D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY6
347 }
348
349 enum D3D10_RTV_DIMENSION {
350 D3D10_RTV_DIMENSION_UNKNOWN = 0,
351 D3D10_RTV_DIMENSION_BUFFER,
352 D3D10_RTV_DIMENSION_TEXTURE1D,
353 D3D10_RTV_DIMENSION_TEXTURE1DARRAY,
354 D3D10_RTV_DIMENSION_TEXTURE2D,
355 D3D10_RTV_DIMENSION_TEXTURE2DARRAY,
356 D3D10_RTV_DIMENSION_TEXTURE2DMS,
357 D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY,
358 D3D10_RTV_DIMENSION_TEXTURE3D
359 }
360
361 enum D3D10_USAGE {
362 D3D10_USAGE_DEFAULT = 0,
363 D3D10_USAGE_IMMUTABLE,
364 D3D10_USAGE_DYNAMIC,
365 D3D10_USAGE_STAGING
366 }
367
368 enum D3D10_BIND_FLAG {
369 D3D10_BIND_VERTEX_BUFFER = 0x01,
370 D3D10_BIND_INDEX_BUFFER = 0x02,
371 D3D10_BIND_CONSTANT_BUFFER = 0x04,
372 D3D10_BIND_SHADER_RESOURCE = 0x08,
373 D3D10_BIND_STREAM_OUTPUT = 0x10,
374 D3D10_BIND_RENDER_TARGET = 0x20,
375 D3D10_BIND_DEPTH_STENCIL = 0x40
376 }
377
378 enum D3D10_CPU_ACCESS_FLAG {
379 D3D10_CPU_ACCESS_WRITE = 0x10000,
380 D3D10_CPU_ACCESS_READ = 0x20000
381 }
382
383 enum D3D10_RESOURCE_MISC_FLAG {
384 D3D10_RESOURCE_MISC_GENERATE_MIPS = 0x01,
385 D3D10_RESOURCE_MISC_SHARED = 0x02,
386 D3D10_RESOURCE_MISC_TEXTURECUBE = 0x04
387 }
388
389 enum D3D10_MAP {
390 D3D10_MAP_READ = 1,
391 D3D10_MAP_WRITE,
392 D3D10_MAP_READ_WRITE,
393 D3D10_MAP_WRITE_DISCARD,
394 D3D10_MAP_WRITE_NO_OVERWRITE
395 }
396
397 enum D3D10_MAP_FLAG {
398 D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000
399 }
400
401 enum D3D10_RAISE_FLAG {
402 D3D10_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x01
403 }
404
405 enum D3D10_CLEAR_FLAG {
406 D3D10_CLEAR_DEPTH = 0x01,
407 D3D10_CLEAR_STENCIL = 0x02
408 }
409
410 alias RECT D3D10_RECT;
411
412 struct D3D10_BOX {
413 UINT left;
414 UINT top;
415 UINT front;
416 UINT right;
417 UINT bottom;
418 UINT back;
419 }
420
421 extern (Windows) interface ID3D10DeviceChild : IUnknown {
422 //extern(Windows) :
423 void GetDevice(ID3D10Device* ppDevice);
424 HRESULT GetPrivateData(REFGUID guid, UINT *pDataSize, void *pData);
425 HRESULT SetPrivateData(REFGUID guid, UINT DataSize, void *pData);
426 HRESULT SetPrivateDataInterface(REFGUID guid, IUnknown pData);
427 }
428
429 enum D3D10_COMPARISON_FUNC {
430 D3D10_COMPARISON_NEVER = 1,
431 D3D10_COMPARISON_LESS,
432 D3D10_COMPARISON_EQUAL,
433 D3D10_COMPARISON_LESS_EQUAL,
434 D3D10_COMPARISON_GREATER,
435 D3D10_COMPARISON_NOT_EQUAL,
436 D3D10_COMPARISON_GREATER_EQUAL,
437 D3D10_COMPARISON_ALWAYS
438 }
439
440 enum D3D10_DEPTH_WRITE_MASK {
441 D3D10_DEPTH_WRITE_MASK_ZERO = 0,
442 D3D10_DEPTH_WRITE_MASK_ALL
443 }
444
445 enum D3D10_STENCIL_OP {
446 D3D10_STENCIL_OP_KEEP = 1,
447 D3D10_STENCIL_OP_ZERO,
448 D3D10_STENCIL_OP_REPLACE,
449 D3D10_STENCIL_OP_INCR_SAT,
450 D3D10_STENCIL_OP_DECR_SAT,
451 D3D10_STENCIL_OP_INVERT,
452 D3D10_STENCIL_OP_INCR,
453 D3D10_STENCIL_OP_DECR
454 }
455
456 struct D3D10_DEPTH_STENCILOP_DESC {
457 D3D10_STENCIL_OP StencilFailOp;
458 D3D10_STENCIL_OP StencilDepthFailOp;
459 D3D10_STENCIL_OP StencilPassOp;
460 D3D10_COMPARISON_FUNC StencilFunc;
461 }
462
463 struct D3D10_DEPTH_STENCIL_DESC {
464 BOOL DepthEnable;
465 D3D10_DEPTH_WRITE_MASK DepthWriteMask;
466 D3D10_COMPARISON_FUNC DepthFunc;
467 BOOL StencilEnable;
468 UINT8 StencilReadMask;
469 UINT8 StencilWriteMask;
470 D3D10_DEPTH_STENCILOP_DESC FrontFace;
471 D3D10_DEPTH_STENCILOP_DESC BackFace;
472 }
473
474 interface ID3D10DepthStencilState : ID3D10DeviceChild {
475 extern(Windows) :
476 void GetDesc(D3D10_DEPTH_STENCIL_DESC *pDesc);
477 }
478
479 enum D3D10_BLEND {
480 D3D10_BLEND_ZERO = 1,
481 D3D10_BLEND_ONE = 2,
482 D3D10_BLEND_SRC_COLOR = 3,
483 D3D10_BLEND_INV_SRC_COLOR = 4,
484 D3D10_BLEND_SRC_ALPHA = 5,
485 D3D10_BLEND_INV_SRC_ALPHA = 6,
486 D3D10_BLEND_DEST_ALPHA = 7,
487 D3D10_BLEND_INV_DEST_ALPHA = 8,
488 D3D10_BLEND_DEST_COLOR = 9,
489 D3D10_BLEND_INV_DEST_COLOR = 10,
490 D3D10_BLEND_SRC_ALPHA_SAT = 11,
491 D3D10_BLEND_BLEND_FACTOR = 14,
492 D3D10_BLEND_INV_BLEND_FACTOR = 15,
493 D3D10_BLEND_SRC1_COLOR = 16,
494 D3D10_BLEND_INV_SRC1_COLOR = 17,
495 D3D10_BLEND_SRC1_ALPHA = 18,
496 D3D10_BLEND_INV_SRC1_ALPHA = 19
497 }
498
499 enum D3D10_BLEND_OP {
500 D3D10_BLEND_OP_ADD = 1,
501 D3D10_BLEND_OP_SUBTRACT,
502 D3D10_BLEND_OP_REV_SUBTRACT,
503 D3D10_BLEND_OP_MIN,
504 D3D10_BLEND_OP_MAX
505 }
506
507 enum D3D10_COLOR_WRITE_ENABLE {
508 D3D10_COLOR_WRITE_ENABLE_RED = 1,
509 D3D10_COLOR_WRITE_ENABLE_GREEN = 2,
510 D3D10_COLOR_WRITE_ENABLE_BLUE = 4,
511 D3D10_COLOR_WRITE_ENABLE_ALPHA = 8,
512 D3D10_COLOR_WRITE_ENABLE_ALL = (((D3D10_COLOR_WRITE_ENABLE_RED | D3D10_COLOR_WRITE_ENABLE_GREEN) | D3D10_COLOR_WRITE_ENABLE_BLUE) | D3D10_COLOR_WRITE_ENABLE_ALPHA)
513 }
514
515 struct D3D10_BLEND_DESC {
516 BOOL AlphaToCoverageEnable;
517 BOOL[8] BlendEnable;
518 D3D10_BLEND SrcBlend;
519 D3D10_BLEND DestBlend;
520 D3D10_BLEND_OP BlendOp;
521 D3D10_BLEND SrcBlendAlpha;
522 D3D10_BLEND DestBlendAlpha;
523 D3D10_BLEND_OP BlendOpAlpha;
524 UINT8[8] RenderTargetWriteMask;
525 }
526
527 interface ID3D10BlendState : ID3D10DeviceChild {
528 extern(Windows) :
529 void GetDesc(D3D10_BLEND_DESC *pDesc);
530 }
531
532 struct D3D10_RASTERIZER_DESC {
533 D3D10_FILL_MODE FillMode;
534 D3D10_CULL_MODE CullMode;
535 BOOL FrontCounterClockwise;
536 INT DepthBias;
537 FLOAT DepthBiasClamp;
538 FLOAT SlopeScaledDepthBias;
539 BOOL DepthClipEnable;
540 BOOL ScissorEnable;
541 BOOL MultisampleEnable;
542 BOOL AntialiasedLineEnable;
543 }
544
545 interface ID3D10RasterizerState : ID3D10DeviceChild {
546 extern(Windows) :
547 void GetDesc(D3D10_RASTERIZER_DESC *pDesc);
548 }
549
550 UINT D3D10CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT MipLevels) {
551 return MipSlice + ArraySlice * MipLevels;
552 }
553
554 struct D3D10_SUBRESOURCE_DATA {
555 void *pSysMem;
556 UINT SysMemPitch;
557 UINT SysMemSlicePitch;
558 }
559
560 interface ID3D10Resource : ID3D10DeviceChild {
561 extern(Windows) :
562 void GetType(D3D10_RESOURCE_DIMENSION *rType);
563 void SetEvictionPriority(UINT EvictionPriority);
564 UINT GetEvictionPriority();
565 }
566
567 struct D3D10_BUFFER_DESC {
568 UINT ByteWidth;
569 D3D10_USAGE Usage;
570 UINT BindFlags;
571 UINT CPUAccessFlags;
572 UINT MiscFlags;
573 }
574
575 interface ID3D10Buffer : ID3D10Resource {
576 extern(Windows) :
577 HRESULT Map(D3D10_MAP MapType, UINT MapFlags, void **ppData);
578 void Unmap();
579 void GetDesc(D3D10_BUFFER_DESC *pDesc);
580 }
581
582 struct D3D10_TEXTURE1D_DESC {
583 UINT Width;
584 UINT MipLevels;
585 UINT ArraySize;
586 DXGI_FORMAT Format;
587 D3D10_USAGE Usage;
588 UINT BindFlags;
589 UINT CPUAccessFlags;
590 UINT MiscFlags;
591 }
592
593 interface ID3D10Texture1D : ID3D10Resource {
594 extern(Windows) :
595 HRESULT Map(UINT Subresource, D3D10_MAP MapType, UINT MapFlags, void **ppData);
596 void Unmap(UINT Subresource);
597 void GetDesc(D3D10_TEXTURE1D_DESC *pDesc);
598 }
599
600 struct D3D10_TEXTURE2D_DESC {
601 UINT Width;
602 UINT Height;
603 UINT MipLevels;
604 UINT ArraySize;
605 DXGI_FORMAT Format;
606 DXGI_SAMPLE_DESC SampleDesc;
607 D3D10_USAGE Usage;
608 UINT BindFlags;
609 UINT CPUAccessFlags;
610 UINT MiscFlags;
611 }
612
613 struct D3D10_MAPPED_TEXTURE2D {
614 void *pData;
615 UINT RowPitch;
616 }
617
618 interface ID3D10Texture2D : ID3D10Resource {
619 extern(Windows) :
620 HRESULT Map(UINT Subresource, D3D10_MAP MapType, UINT MapFlags, D3D10_MAPPED_TEXTURE2D *pMappedTex2D);
621 void Unmap(UINT Subresource);
622 void GetDesc(D3D10_TEXTURE2D_DESC *pDesc);
623 }
624
625 struct D3D10_TEXTURE3D_DESC {
626 UINT Width;
627 UINT Height;
628 UINT Depth;
629 UINT MipLevels;
630 DXGI_FORMAT Format;
631 D3D10_USAGE Usage;
632 UINT BindFlags;
633 UINT CPUAccessFlags;
634 UINT MiscFlags;
635 }
636
637 struct D3D10_MAPPED_TEXTURE3D {
638 void *pData;
639 UINT RowPitch;
640 UINT DepthPitch;
641 }
642
643 interface ID3D10Texture3D : ID3D10Resource {
644 extern(Windows) :
645 HRESULT Map(UINT Subresource, D3D10_MAP MapType, UINT MapFlags, D3D10_MAPPED_TEXTURE3D *pMappedTex3D);
646 void Unmap(UINT Subresource);
647 void GetDesc(D3D10_TEXTURE3D_DESC *pDesc);
648 }
649
650 enum D3D10_TEXTURECUBE_FACE {
651 D3D10_TEXTURECUBE_FACE_POSITIVE_X = 0,
652 D3D10_TEXTURECUBE_FACE_NEGATIVE_X,
653 D3D10_TEXTURECUBE_FACE_POSITIVE_Y,
654 D3D10_TEXTURECUBE_FACE_NEGATIVE_Y,
655 D3D10_TEXTURECUBE_FACE_POSITIVE_Z,
656 D3D10_TEXTURECUBE_FACE_NEGATIVE_Z
657 }
658
659 interface ID3D10View : ID3D10DeviceChild {
660 extern(Windows) :
661 void GetResource(ID3D10Resource *ppResource);
662 }
663
664 struct D3D10_BUFFER_SRV {
665 UINT ElementOffset;
666 UINT ElementWidth;
667 }
668
669 struct D3D10_TEX1D_SRV {
670 UINT MostDetailedMip;
671 UINT MipLevels;
672 }
673
674 struct D3D10_TEX1D_ARRAY_SRV {
675 UINT MostDetailedMip;
676 UINT MipLevels;
677 UINT FirstArraySlice;
678 UINT ArraySize;
679 }
680
681 struct D3D10_TEX2D_SRV {
682 UINT MostDetailedMip;
683 UINT MipLevels;
684 }
685
686 struct D3D10_TEX2D_ARRAY_SRV {
687 UINT MostDetailedMip;
688 UINT MipLevels;
689 UINT FirstArraySlice;
690 UINT ArraySize;
691 }
692
693 struct D3D10_TEX3D_SRV {
694 UINT MostDetailedMip;
695 UINT MipLevels;
696 }
697
698 struct D3D10_TEXCUBE_SRV {
699 UINT MostDetailedMip;
700 UINT MipLevels;
701 }
702
703 struct D3D10_TEX2DMS_SRV {
704 UINT UnusedField_NothingToDefine;
705 }
706
707 struct D3D10_TEX2DMS_ARRAY_SRV {
708 UINT FirstArraySlice;
709 UINT ArraySize;
710 }
711
712 struct D3D10_SHADER_RESOURCE_VIEW_DESC {
713 DXGI_FORMAT Format;
714 D3D10_SRV_DIMENSION ViewDimension;
715 union {
716 D3D10_BUFFER_SRV Buffer;
717 D3D10_TEX1D_SRV Texture1D;
718 D3D10_TEX1D_ARRAY_SRV Texture1DArray;
719 D3D10_TEX2D_SRV Texture2D;
720 D3D10_TEX2D_ARRAY_SRV Texture2DArray;
721 D3D10_TEX2DMS_SRV Texture2DMS;
722 D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
723 D3D10_TEX3D_SRV Texture3D;
724 D3D10_TEXCUBE_SRV TextureCube;
725 }
726 }
727
728 interface ID3D10ShaderResourceView : ID3D10View {
729 extern(Windows) :
730 void GetDesc(D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
731 }
732
733 struct D3D10_BUFFER_RTV {
734 UINT ElementOffset;
735 UINT ElementWidth;
736 }
737
738 struct D3D10_TEX1D_RTV {
739 UINT MipSlice;
740 }
741
742 struct D3D10_TEX1D_ARRAY_RTV {
743 UINT MipSlice;
744 UINT FirstArraySlice;
745 UINT ArraySize;
746 }
747
748 struct D3D10_TEX2D_RTV {
749 UINT MipSlice;
750 }
751
752 struct D3D10_TEX2DMS_RTV {
753 UINT UnusedField_NothingToDefine;
754 }
755
756 struct D3D10_TEX2D_ARRAY_RTV {
757 UINT MipSlice;
758 UINT FirstArraySlice;
759 UINT ArraySize;
760 }
761
762 struct D3D10_TEX2DMS_ARRAY_RTV {
763 UINT FirstArraySlice;
764 UINT ArraySize;
765 }
766
767 struct D3D10_TEX3D_RTV {
768 UINT MipSlice;
769 UINT FirstWSlice;
770 UINT WSize;
771 }
772
773 struct D3D10_RENDER_TARGET_VIEW_DESC {
774 DXGI_FORMAT Format;
775 D3D10_RTV_DIMENSION ViewDimension;
776 union {
777 D3D10_BUFFER_RTV Buffer;
778 D3D10_TEX1D_RTV Texture1D;
779 D3D10_TEX1D_ARRAY_RTV Texture1DArray;
780 D3D10_TEX2D_RTV Texture2D;
781 D3D10_TEX2D_ARRAY_RTV Texture2DArray;
782 D3D10_TEX2DMS_RTV Texture2DMS;
783 D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray;
784 D3D10_TEX3D_RTV Texture3D;
785 }
786 }
787
788 interface ID3D10RenderTargetView : ID3D10View {
789 extern(Windows) :
790 void GetDesc(D3D10_RENDER_TARGET_VIEW_DESC *pDesc);
791 }
792
793 struct D3D10_TEX1D_DSV {
794 UINT MipSlice;
795 }
796
797 struct D3D10_TEX1D_ARRAY_DSV {
798 UINT MipSlice;
799 UINT FirstArraySlice;
800 UINT ArraySize;
801 }
802
803 struct D3D10_TEX2D_DSV {
804 UINT MipSlice;
805 }
806
807 struct D3D10_TEX2D_ARRAY_DSV {
808 UINT MipSlice;
809 UINT FirstArraySlice;
810 UINT ArraySize;
811 }
812
813 struct D3D10_TEX2DMS_DSV {
814 UINT UnusedField_NothingToDefine;
815 }
816
817 struct D3D10_TEX2DMS_ARRAY_DSV {
818 UINT FirstArraySlice;
819 UINT ArraySize;
820 }
821
822 struct D3D10_DEPTH_STENCIL_VIEW_DESC {
823 DXGI_FORMAT Format;
824 D3D10_DSV_DIMENSION ViewDimension;
825 union {
826 D3D10_TEX1D_DSV Texture1D;
827 D3D10_TEX1D_ARRAY_DSV Texture1DArray;
828 D3D10_TEX2D_DSV Texture2D;
829 D3D10_TEX2D_ARRAY_DSV Texture2DArray;
830 D3D10_TEX2DMS_DSV Texture2DMS;
831 D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray;
832 }
833 }
834
835 interface ID3D10DepthStencilView : ID3D10View {
836 extern(Windows) :
837 void GetDesc(D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc);
838 }
839
840 interface ID3D10VertexShader : ID3D10DeviceChild { }
841
842 interface ID3D10GeometryShader : ID3D10DeviceChild { }
843
844 interface ID3D10PixelShader : ID3D10DeviceChild { }
845
846 interface ID3D10InputLayout : ID3D10DeviceChild { }
847
848 enum D3D10_FILTER {
849 D3D10_FILTER_MIN_MAG_MIP_POINT = 0x00,
850 D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x01,
851 D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x04,
852 D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x05,
853 D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
854 D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
855 D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
856 D3D10_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
857 D3D10_FILTER_ANISOTROPIC = 0x55,
858 D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
859 D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
860 D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
861 D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
862 D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
863 D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
864 D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
865 D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
866 D3D10_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
867 D3D10_FILTER_TEXT_1BIT = 0x80000000
868 }
869
870
871 enum D3D10_FILTER_TYPE {
872 D3D10_FILTER_TYPE_POINT = 0,
873 D3D10_FILTER_TYPE_LINEAR
874 }
875
876 const D3D10_FILTER_TYPE_MASK = 0x03;
877
878 const D3D10_MIN_FILTER_SHIFT = 4;
879
880 const D3D10_MAG_FILTER_SHIFT = 2;
881
882 const D3D10_MIP_FILTER_SHIFT = 0;
883
884 const D3D10_COMPARISON_FILTERING_BIT = 0x80;
885
886 const D3D10_ANISOTROPIC_FILTERING_BIT = 0x40;
887
888 const D3D10_TEXT_1BIT_BIT = 0x80000000;
889
890 D3D10_FILTER D3D10_ENCODE_BASIC_FILTER(int min, int mag, int mip, bool bComparison) {
891 return cast(D3D10_FILTER)(((bComparison) ? D3D10_COMPARISON_FILTERING_BIT : 0) |
892 ((min & D3D10_FILTER_TYPE_MASK) << D3D10_MIN_FILTER_SHIFT) |
893 ((mag & D3D10_FILTER_TYPE_MASK) << D3D10_MAG_FILTER_SHIFT) |
894 ((mip & D3D10_FILTER_TYPE_MASK) << D3D10_MIP_FILTER_SHIFT));
895 }
896
897 D3D10_FILTER D3D10_ENCODE_ANISOTROPIC_FILTER(bool bComparison) {
898 return cast(D3D10_FILTER)(D3D10_ANISOTROPIC_FILTERING_BIT |
899 D3D10_ENCODE_BASIC_FILTER(D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR,
900 D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR, D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR,
901 bComparison));
902 }
903
904 D3D10_FILTER_TYPE D3D10_DECODE_MIN_FILTER(D3D10_FILTER d3d10Filter) {
905 return cast(D3D10_FILTER_TYPE)((d3d10Filter >> D3D10_MIN_FILTER_SHIFT) & D3D10_FILTER_TYPE_MASK);
906 }
907
908 D3D10_FILTER_TYPE D3D10_DECODE_MAG_FILTER(D3D10_FILTER d3d10Filter) {
909 return cast(D3D10_FILTER_TYPE)((d3d10Filter >> D3D10_MAG_FILTER_SHIFT) & D3D10_FILTER_TYPE_MASK);
910 }
911
912 D3D10_FILTER_TYPE D3D10_DECODE_MIP_FILTER(D3D10_FILTER d3d10Filter) {
913 return cast(D3D10_FILTER_TYPE)((d3d10Filter >> D3D10_MIP_FILTER_SHIFT) & D3D10_FILTER_TYPE_MASK);
914 }
915
916 bool D3D10_DECODE_IS_COMPARISON_FILTER(D3D10_FILTER d3d10Filter) {
917 return (d3d10Filter & D3D10_COMPARISON_FILTERING_BIT) == D3D10_COMPARISON_FILTERING_BIT;
918 }
919
920 bool D3D10_DECODE_IS_ANISOTROPIC_FILTER(D3D10_FILTER d3d10Filter) {
921 return ((d3d10Filter & D3D10_ANISOTROPIC_FILTERING_BIT) &&
922 (D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MIN_FILTER(d3d10Filter)) &&
923 (D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MAG_FILTER(d3d10Filter)) &&
924 (D3D10_FILTER_TYPE.D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MIP_FILTER(d3d10Filter)));
925 }
926
927 bool D3D10_DECODE_IS_TEXT_1BIT_FILTER(D3D10_FILTER d3d10Filter) {
928 return d3d10Filter == D3D10_TEXT_1BIT_BIT;
929 }
930
931 enum D3D10_TEXTURE_ADDRESS_MODE {
932 D3D10_TEXTURE_ADDRESS_WRAP = 1,
933 D3D10_TEXTURE_ADDRESS_MIRROR,
934 D3D10_TEXTURE_ADDRESS_CLAMP,
935 D3D10_TEXTURE_ADDRESS_BORDER,
936 D3D10_TEXTURE_ADDRESS_MIRROR_ONCE
937 }
938
939 struct D3D10_SAMPLER_DESC {
940 D3D10_FILTER Filter;
941 D3D10_TEXTURE_ADDRESS_MODE AddressU;
942 D3D10_TEXTURE_ADDRESS_MODE AddressV;
943 D3D10_TEXTURE_ADDRESS_MODE AddressW;
944 FLOAT MipLODBias;
945 UINT MaxAnisotropy;
946 D3D10_COMPARISON_FUNC ComparisonFunc;
947 FLOAT[4] BorderColor;
948 FLOAT MinLOD;
949 FLOAT MaxLOD;
950 }
951
952 interface ID3D10SamplerState : ID3D10DeviceChild {
953 extern(Windows) :
954 void GetDesc(D3D10_SAMPLER_DESC *pDesc);
955 }
956
957 enum D3D10_FORMAT_SUPPORT {
958 D3D10_FORMAT_SUPPORT_BUFFER = 0x000001,
959 D3D10_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x000002,
960 D3D10_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x000004,
961 D3D10_FORMAT_SUPPORT_SO_BUFFER = 0x000008,
962 D3D10_FORMAT_SUPPORT_TEXTURE1D = 0x000010,
963 D3D10_FORMAT_SUPPORT_TEXTURE2D = 0x000020,
964 D3D10_FORMAT_SUPPORT_TEXTURE3D = 0x000040,
965 D3D10_FORMAT_SUPPORT_TEXTURECUBE = 0x000080,
966 D3D10_FORMAT_SUPPORT_SHADER_LOAD = 0x000100,
967 D3D10_FORMAT_SUPPORT_SHADER_SAMPLE = 0x000200,
968 D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x000400,
969 D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x000800,
970 D3D10_FORMAT_SUPPORT_MIP = 0x001000,
971 D3D10_FORMAT_SUPPORT_MIP_AUTOGEN = 0x002000,
972 D3D10_FORMAT_SUPPORT_RENDER_TARGET = 0x004000,
973 D3D10_FORMAT_SUPPORT_BLENDABLE = 0x008000,
974 D3D10_FORMAT_SUPPORT_DEPTH_STENCIL = 0x010000,
975 D3D10_FORMAT_SUPPORT_CPU_LOCKABLE = 0x020000,
976 D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x040000,
977 D3D10_FORMAT_SUPPORT_DISPLAY = 0x080000,
978 D3D10_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000,
979 D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000,
980 D3D10_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000,
981 D3D10_FORMAT_SUPPORT_SHADER_GATHER = 0x800000
982 }
983
984 interface ID3D10Asynchronous : ID3D10DeviceChild {
985 extern(Windows) :
986 void Begin();
987 void End();
988 HRESULT GetData(void *pData, UINT DataSize, UINT GetDataFlags);
989 UINT GetDataSize();
990 }
991
992 enum D3D10_ASYNC_GETDATA_FLAG {
993 D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1
994 }
995
996 enum D3D10_QUERY {
997 D3D10_QUERY_EVENT = 0,
998 D3D10_QUERY_OCCLUSION = (D3D10_QUERY_EVENT + 1),
999 D3D10_QUERY_TIMESTAMP = (D3D10_QUERY_OCCLUSION + 1),
1000 D3D10_QUERY_TIMESTAMP_DISJOINT = (D3D10_QUERY_TIMESTAMP + 1),
1001 D3D10_QUERY_PIPELINE_STATISTICS = (D3D10_QUERY_TIMESTAMP_DISJOINT + 1),
1002 D3D10_QUERY_OCCLUSION_PREDICATE = (D3D10_QUERY_PIPELINE_STATISTICS + 1),
1003 D3D10_QUERY_SO_STATISTICS = (D3D10_QUERY_OCCLUSION_PREDICATE + 1),
1004 D3D10_QUERY_SO_OVERFLOW_PREDICATE = (D3D10_QUERY_SO_STATISTICS + 1)
1005 }
1006
1007 enum D3D10_QUERY_MISC_FLAG {
1008 D3D10_QUERY_MISC_PREDICATEHINT = 0x01
1009 }
1010
1011 struct D3D10_QUERY_DESC {
1012 D3D10_QUERY Query;
1013 UINT MiscFlags;
1014 }
1015
1016 interface ID3D10Query : ID3D10Asynchronous {
1017 extern(Windows) :
1018 void GetDesc(D3D10_QUERY_DESC *pDesc);
1019 }
1020
1021 interface ID3D10Predicate : ID3D10Query { }
1022
1023 struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT {
1024 UINT64 Frequency;
1025 BOOL Disjoint;
1026 }
1027
1028 struct D3D10_QUERY_DATA_PIPELINE_STATISTICS {
1029 UINT64 IAVertices;
1030 UINT64 IAPrimitives;
1031 UINT64 VSInvocations;
1032 UINT64 GSInvocations;
1033 UINT64 GSPrimitives;
1034 UINT64 CInvocations;
1035 UINT64 CPrimitives;
1036 UINT64 PSInvocations;
1037 }
1038
1039 struct D3D10_QUERY_DATA_SO_STATISTICS {
1040 UINT64 NumPrimitivesWritten;
1041 UINT64 PrimitivesStorageNeeded;
1042 }
1043
1044 enum D3D10_COUNTER {
1045 D3D10_COUNTER_GPU_IDLE = 0,
1046 D3D10_COUNTER_VERTEX_PROCESSING = (D3D10_COUNTER_GPU_IDLE + 1),
1047 D3D10_COUNTER_GEOMETRY_PROCESSING = (D3D10_COUNTER_VERTEX_PROCESSING + 1),
1048 D3D10_COUNTER_PIXEL_PROCESSING = (D3D10_COUNTER_GEOMETRY_PROCESSING + 1),
1049 D3D10_COUNTER_OTHER_GPU_PROCESSING = (D3D10_COUNTER_PIXEL_PROCESSING + 1),
1050 D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION = (D3D10_COUNTER_OTHER_GPU_PROCESSING + 1),
1051 D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION = (D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION + 1),
1052 D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION = (D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION + 1),
1053 D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION = (D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION + 1),
1054 D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION = (D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION + 1),
1055 D3D10_COUNTER_VS_MEMORY_LIMITED = (D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION + 1),
1056 D3D10_COUNTER_VS_COMPUTATION_LIMITED = (D3D10_COUNTER_VS_MEMORY_LIMITED + 1),
1057 D3D10_COUNTER_GS_MEMORY_LIMITED = (D3D10_COUNTER_VS_COMPUTATION_LIMITED + 1),
1058 D3D10_COUNTER_GS_COMPUTATION_LIMITED = (D3D10_COUNTER_GS_MEMORY_LIMITED + 1),
1059 D3D10_COUNTER_PS_MEMORY_LIMITED = (D3D10_COUNTER_GS_COMPUTATION_LIMITED + 1),
1060 D3D10_COUNTER_PS_COMPUTATION_LIMITED = (D3D10_COUNTER_PS_MEMORY_LIMITED + 1),
1061 D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE = (D3D10_COUNTER_PS_COMPUTATION_LIMITED + 1),
1062 D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE = (D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE + 1),
1063 D3D10_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000
1064 }
1065
1066 enum D3D10_COUNTER_TYPE {
1067 D3D10_COUNTER_TYPE_FLOAT32 = 0,
1068 D3D10_COUNTER_TYPE_UINT16 = (D3D10_COUNTER_TYPE_FLOAT32 + 1),
1069 D3D10_COUNTER_TYPE_UINT32 = (D3D10_COUNTER_TYPE_UINT16 + 1),
1070 D3D10_COUNTER_TYPE_UINT64 = (D3D10_COUNTER_TYPE_UINT32 + 1)
1071 }
1072
1073 struct D3D10_COUNTER_DESC {
1074 D3D10_COUNTER Counter;
1075 UINT MiscFlags;
1076 }
1077
1078 struct D3D10_COUNTER_INFO {
1079 D3D10_COUNTER LastDeviceDependentCounter;
1080 UINT NumSimultaneousCounters;
1081 UINT8 NumDetectableParallelUnits;
1082 }
1083
1084 interface ID3D10Counter : ID3D10Asynchronous {
1085 extern(Windows) :
1086 void GetDesc(D3D10_COUNTER_DESC *pDesc);
1087 }
1088
1089 interface ID3D10Device : IUnknown {
1090 extern(Windows) :
1091 void VSSetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers);
1092 void PSSetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews);
1093 void PSSetShader(ID3D10PixelShader pPixelShader);
1094 void PSSetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers);
1095 void VSSetShader(ID3D10VertexShader pVertexShader);
1096 void DrawIndexed(UINT IndexCount, UINT StartIndexLocation, INT BaseVertexLocation);
1097 void Draw(UINT VertexCount, UINT StartVertexLocation);
1098 void PSSetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers);
1099 void IASetInputLayout(ID3D10InputLayout pInputLayout);
1100 void IASetVertexBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppVertexBuffers, UINT* pStrides, UINT* pOffsets);
1101 void IASetIndexBuffer(ID3D10Buffer pIndexBuffer, DXGI_FORMAT Format, UINT Offset);
1102 void DrawIndexedInstanced(UINT IndexCountPerInstance, UINT InstanceCount, UINT StartIndexLocation, INT BaseVertexLocation, UINT StartInstanceLocation);
1103 void DrawInstanced(UINT VertexCountPerInstance, UINT InstanceCount, UINT StartVertexLocation, UINT StartInstanceLocation);
1104 void GSSetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers);
1105 void GSSetShader(ID3D10GeometryShader pShader);
1106 void IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY Topology);
1107 void VSSetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews);
1108 void VSSetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers);
1109 void SetPredication(ID3D10Predicate pPredicate, BOOL PredicateValue);
1110 void GSSetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews);
1111 void GSSetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers);
1112 void OMSetRenderTargets(UINT NumViews, ID3D10RenderTargetView* ppRenderTargetViews, ID3D10DepthStencilView pDepthStencilView);
1113 void OMSetBlendState(ID3D10BlendState pBlendState, FLOAT[4] BlendFactor, UINT SampleMask);
1114 void OMSetDepthStencilState(ID3D10DepthStencilState pDepthStencilState, UINT StencilRef);
1115 void SOSetTargets(UINT NumBuffers, ID3D10Buffer* ppSOTargets, UINT* pOffsets);
1116 void DrawAuto();
1117 void RSSetState(ID3D10RasterizerState pRasterizerState);
1118 void RSSetViewports(UINT NumViewports, D3D10_VIEWPORT* pViewports);
1119 void RSSetScissorRects(UINT NumRects, D3D10_RECT* pRects);
1120 void CopySubresourceRegion(ID3D10Resource pDstResource, UINT DstSubresource, UINT DstX, UINT DstY, UINT DstZ, ID3D10Resource pSrcResource, UINT SrcSubresource, D3D10_BOX* pSrcBox);
1121 void CopyResource(ID3D10Resource pDstResource, ID3D10Resource pSrcResource);
1122 void UpdateSubresource(ID3D10Resource pDstResource, UINT DstSubresource, D3D10_BOX* pDstBox, void* pSrcData, UINT SrcRowPitch, UINT SrcDepthPitch);
1123 void ClearRenderTargetView(ID3D10RenderTargetView pRenderTargetView, FLOAT[4] ColorRGBA);
1124 void ClearDepthStencilView(ID3D10DepthStencilView pDepthStencilView, UINT ClearFlags, FLOAT Depth, UINT8 Stencil);
1125 void GenerateMips(ID3D10ShaderResourceView pShaderResourceView);
1126 void ResolveSubresource(ID3D10Resource pDstResource, UINT DstSubresource, ID3D10Resource pSrcResource, UINT SrcSubresource, DXGI_FORMAT Format);
1127 void VSGetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers);
1128 void PSGetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews);
1129 void PSGetShader(ID3D10PixelShader* ppPixelShader);
1130 void PSGetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers);
1131 void VSGetShader(ID3D10VertexShader* ppVertexShader);
1132 void PSGetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers);
1133 void IAGetInputLayout(ID3D10InputLayout* ppInputLayout);
1134 void IAGetVertexBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppVertexBuffers, UINT* pStrides, UINT* pOffsets);
1135 void IAGetIndexBuffer(ID3D10Buffer* pIndexBuffer, DXGI_FORMAT* Format, UINT* Offset);
1136 void GSGetConstantBuffers(UINT StartSlot, UINT NumBuffers, ID3D10Buffer* ppConstantBuffers);
1137 void GSGetShader(ID3D10GeometryShader* ppGeometryShader);
1138 void IAGetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY* pTopology);
1139 void VSGetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews);
1140 void VSGetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers);
1141 void GetPredication(ID3D10Predicate* ppPredicate, BOOL* pPredicateValue);
1142 void GSGetShaderResources(UINT StartSlot, UINT NumViews, ID3D10ShaderResourceView* ppShaderResourceViews);
1143 void GSGetSamplers(UINT StartSlot, UINT NumSamplers, ID3D10SamplerState* ppSamplers);
1144 void OMGetRenderTargets(UINT NumViews, ID3D10RenderTargetView* ppRenderTargetViews, ID3D10DepthStencilView* ppDepthStencilView);
1145 void OMGetBlendState(ID3D10BlendState* ppBlendState, FLOAT BlendFactor[ 4 ], UINT* pSampleMask);
1146 void OMGetDepthStencilState(ID3D10DepthStencilState* ppDepthStencilState, UINT* pStencilRef);
1147 void SOGetTargets(UINT NumBuffers, ID3D10Buffer* ppSOTargets, UINT* pOffsets);
1148 void RSGetState(ID3D10RasterizerState* ppRasterizerState);
1149 void RSGetViewports(UINT* NumViewports, D3D10_VIEWPORT* pViewports);
1150 void RSGetScissorRects(UINT* NumRects, D3D10_RECT* pRects);
1151 HRESULT GetDeviceRemovedReason();
1152 HRESULT SetExceptionMode(UINT RaiseFlags);
1153 UINT GetExceptionMode();
1154 HRESULT GetPrivateData(REFGUID guid, UINT* pDataSize, void* pData);
1155 HRESULT SetPrivateData(REFGUID guid, UINT DataSize, void* pData);
1156 HRESULT SetPrivateDataInterface(REFGUID guid, IUnknown pData);
1157 void ClearState();
1158 void Flush();
1159 HRESULT CreateBuffer(D3D10_BUFFER_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Buffer* ppBuffer);
1160 HRESULT CreateTexture1D(D3D10_TEXTURE1D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture1D* ppTexture1D);
1161 HRESULT CreateTexture2D(D3D10_TEXTURE2D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture2D* ppTexture2D);
1162 HRESULT CreateTexture3D(D3D10_TEXTURE3D_DESC* pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Texture3D* ppTexture3D);
1163 HRESULT CreateShaderResourceView(ID3D10Resource pResource, D3D10_SHADER_RESOURCE_VIEW_DESC* pDesc, ID3D10ShaderResourceView* ppSRView);
1164 HRESULT CreateRenderTargetView(ID3D10Resource pResource, D3D10_RENDER_TARGET_VIEW_DESC* pDesc, ID3D10RenderTargetView* ppRTView);
1165 HRESULT CreateDepthStencilView(ID3D10Resource pResource, D3D10_DEPTH_STENCIL_VIEW_DESC* pDesc, ID3D10DepthStencilView* ppDepthStencilView);
1166 HRESULT CreateInputLayout(D3D10_INPUT_ELEMENT_DESC* pInputElementDescs, UINT NumElements, void* pShaderBytecodeWithInputSignature, SIZE_T BytecodeLength, ID3D10InputLayout* ppInputLayout);
1167 HRESULT CreateVertexShader(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10VertexShader* ppVertexShader);
1168 HRESULT CreateGeometryShader(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10GeometryShader* ppGeometryShader);
1169 HRESULT CreateGeometryShaderWithStreamOutput(void* pShaderBytecode, SIZE_T BytecodeLength, D3D10_SO_DECLARATION_ENTRY* pSODeclaration, UINT NumEntries, UINT OutputStreamStride, ID3D10GeometryShader* ppGeometryShader);
1170 HRESULT CreatePixelShader(void* pShaderBytecode, SIZE_T BytecodeLength, ID3D10PixelShader* ppPixelShader);
1171 HRESULT CreateBlendState(D3D10_BLEND_DESC* pBlendStateDesc, ID3D10BlendState* ppBlendState);
1172 HRESULT CreateDepthStencilState(D3D10_DEPTH_STENCIL_DESC* pDepthStencilDesc, ID3D10DepthStencilState* ppDepthStencilState);
1173 HRESULT CreateRasterizerState(D3D10_RASTERIZER_DESC* pRasterizerDesc, ID3D10RasterizerState* ppRasterizerState);
1174 HRESULT CreateSamplerState(D3D10_SAMPLER_DESC* pSamplerDesc, ID3D10SamplerState* ppSamplerState);
1175 HRESULT CreateQuery(D3D10_QUERY_DESC* pQueryDesc, ID3D10Query* ppQuery);
1176 HRESULT CreatePredicate(D3D10_QUERY_DESC* pPredicateDesc, ID3D10Predicate* ppPredicate);
1177 HRESULT CreateCounter(D3D10_COUNTER_DESC* pCounterDesc, ID3D10Counter* ppCounter);
1178 HRESULT CheckFormatSupport(DXGI_FORMAT Format, UINT* pFormatSupport);
1179 HRESULT CheckMultisampleQualityLevels(DXGI_FORMAT Format, UINT SampleCount, UINT* pNumQualityLevels);
1180 void CheckCounterInfo(D3D10_COUNTER_INFO* pCounterInfo);
1181 HRESULT CheckCounter(D3D10_COUNTER_DESC* pDesc, D3D10_COUNTER_TYPE* pType, UINT* pActiveCounters, LPSTR szName, UINT* pNameLength, LPSTR szUnits, UINT* pUnitsLength, LPSTR szDescription, UINT* pDescriptionLength);
1182 UINT GetCreationFlags();
1183 HRESULT OpenSharedResource(HANDLE hResource, REFIID ReturnedInterface, void** ppResource);
1184 void SetTextFilterSize(UINT Width, UINT Height);
1185 void GetTextFilterSize(UINT* pWidth, UINT* pHeight);
1186 }
1187
1188 interface ID3D10Multithread : IUnknown {
1189 extern(Windows) :
1190 void Enter();
1191 void Leave();
1192 BOOL SetMultithreadProtected(BOOL bMTProtect);
1193 BOOL GetMultithreadProtected();
1194 }
1195
1196 enum D3D10_CREATE_DEVICE_FLAG {
1197 D3D10_CREATE_DEVICE_SINGLETHREADED = 0x01,
1198 D3D10_CREATE_DEVICE_DEBUG = 0x02,
1199 D3D10_CREATE_DEVICE_SWITCH_TO_REF = 0x04,
1200 D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x08
1201 }
1202
1203 const D3D10_SDK_VERSION = 29;
1204
1205 extern(C) const GUID IID_ID3D10DeviceChild = {0x9B7E4C00, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1206 extern(C) const GUID IID_ID3D10DepthStencilState = {0x2B4B1CC8, 0xA4AD, 0x41f8, [0x83, 0x22, 0xCA, 0x86, 0xFC, 0x3E, 0xC6, 0x75]};
1207 extern(C) const GUID IID_ID3D10BlendState = {0xEDAD8D19, 0x8A35, 0x4d6d, [0x85, 0x66, 0x2E, 0xA2, 0x76, 0xCD, 0xE1, 0x61]};
1208 extern(C) const GUID IID_ID3D10RasterizerState = {0xA2A07292, 0x89AF, 0x4345, [0xBE, 0x2E, 0xC5, 0x3D, 0x9F, 0xBB, 0x6E, 0x9F]};
1209 extern(C) const GUID IID_ID3D10Resource = {0x9B7E4C01, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1210 extern(C) const GUID IID_ID3D10Buffer = {0x9B7E4C02, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1211 extern(C) const GUID IID_ID3D10Texture1D = {0x9B7E4C03, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1212 extern(C) const GUID IID_ID3D10Texture2D = {0x9B7E4C04, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1213 extern(C) const GUID IID_ID3D10Texture3D = {0x9B7E4C05, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1214 extern(C) const GUID IID_ID3D10View = {0xC902B03F, 0x60A7, 0x49BA, [0x99, 0x36, 0x2A, 0x3A, 0xB3, 0x7A, 0x7E, 0x33]};
1215 extern(C) const GUID IID_ID3D10ShaderResourceView = {0x9B7E4C07, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1216 extern(C) const GUID IID_ID3D10RenderTargetView = {0x9B7E4C08, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1217 extern(C) const GUID IID_ID3D10DepthStencilView = {0x9B7E4C09, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1218 extern(C) const GUID IID_ID3D10VertexShader = {0x9B7E4C0A, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1219 extern(C) const GUID IID_ID3D10GeometryShader = {0x6316BE88, 0x54CD, 0x4040, [0xAB, 0x44, 0x20, 0x46, 0x1B, 0xC8, 0x1F, 0x68]};
1220 extern(C) const GUID IID_ID3D10PixelShader = {0x4968B601, 0x9D00, 0x4cde, [0x83, 0x46, 0x8E, 0x7F, 0x67, 0x58, 0x19, 0xB6]};
1221 extern(C) const GUID IID_ID3D10InputLayout = {0x9B7E4C0B, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1222 extern(C) const GUID IID_ID3D10SamplerState = {0x9B7E4C0C, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1223 extern(C) const GUID IID_ID3D10Asynchronous = {0x9B7E4C0D, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1224 extern(C) const GUID IID_ID3D10Query = {0x9B7E4C0E, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1225 extern(C) const GUID IID_ID3D10Predicate = {0x9B7E4C10, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1226 extern(C) const GUID IID_ID3D10Counter = {0x9B7E4C11, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1227 extern(C) const GUID IID_ID3D10Device = {0x9B7E4C0F, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1228 extern(C) const GUID IID_ID3D10Multithread = {0x9B7E4E00, 0x342C, 0x4106, [0xA1, 0x9F, 0x4F, 0x27, 0x04, 0xF6, 0x89, 0xF0]};
1229