Previous 199869 Revisions Next

r34799 Sunday 1st February, 2015 at 16:08:10 UTC by Miodrag Milanović
Renamed h files so they can be cross compiled on linux
[3rdparty/dxsdk/Include]D3D10.h D3D10_1.h D3D10_1shader.h D3D10effect.h D3D10shader.h D3D11.h D3D11SDKLayers.h D3D11Shader.h D3DCSX.h D3DX10.h D3DX10core.h D3DX10math.h D3DX10mesh.h D3DX10tex.h D3DX11.h D3DX11async.h D3DX11core.h D3DX11tex.h D3Dcommon.h D3Dcompiler.h d3d10.h* d3d10_1.h* d3d10_1shader.h* d3d10effect.h* d3d10shader.h* d3d11.h* d3d11sdklayers.h* d3d11shader.h* d3dcommon.h* d3dcompiler.h* d3dcsx.h* d3dx10.h* d3dx10core.h* d3dx10math.h* d3dx10mesh.h* d3dx10tex.h* d3dx11.h* d3dx11async.h* d3dx11core.h* d3dx11tex.h*

trunk/3rdparty/dxsdk/Include/D3D10.h
r243310r243311
1/*-------------------------------------------------------------------------------------
2 *
3 * Copyright (c) Microsoft Corporation
4 *
5 *-------------------------------------------------------------------------------------*/
6
7
8/* this ALWAYS GENERATED file contains the definitions for the interfaces */
9
10
11 /* File created by MIDL compiler version 7.00.0555 */
12/* @@MIDL_FILE_HEADING(  ) */
13
14#ifdef _MSC_VER
15#pragma warning( disable: 4049 )  /* more than 64k source lines */
16#endif // _MSC_VER
17
18
19/* verify that the <rpcndr.h> version is high enough to compile this file*/
20#ifndef __REQUIRED_RPCNDR_H_VERSION__
21#define __REQUIRED_RPCNDR_H_VERSION__ 475
22#endif
23
24/* verify that the <rpcsal.h> version is high enough to compile this file*/
25#ifndef __REQUIRED_RPCSAL_H_VERSION__
26#define __REQUIRED_RPCSAL_H_VERSION__ 100
27#endif
28
29#include "rpc.h"
30#include "rpcndr.h"
31
32#ifndef __RPCNDR_H_VERSION__
33#error this stub requires an updated version of <rpcndr.h>
34#endif // __RPCNDR_H_VERSION__
35
36#ifndef COM_NO_WINDOWS_H
37#include "windows.h"
38#include "ole2.h"
39#endif /*COM_NO_WINDOWS_H*/
40
41#ifndef __d3d10_h__
42#define __d3d10_h__
43
44#if defined(_MSC_VER) && (_MSC_VER >= 1020)
45#pragma once
46#endif
47
48/* Forward Declarations */
49
50#ifndef __ID3D10DeviceChild_FWD_DEFINED__
51#define __ID3D10DeviceChild_FWD_DEFINED__
52typedef interface ID3D10DeviceChild ID3D10DeviceChild;
53#endif    /* __ID3D10DeviceChild_FWD_DEFINED__ */
54
55
56#ifndef __ID3D10DepthStencilState_FWD_DEFINED__
57#define __ID3D10DepthStencilState_FWD_DEFINED__
58typedef interface ID3D10DepthStencilState ID3D10DepthStencilState;
59#endif    /* __ID3D10DepthStencilState_FWD_DEFINED__ */
60
61
62#ifndef __ID3D10BlendState_FWD_DEFINED__
63#define __ID3D10BlendState_FWD_DEFINED__
64typedef interface ID3D10BlendState ID3D10BlendState;
65#endif    /* __ID3D10BlendState_FWD_DEFINED__ */
66
67
68#ifndef __ID3D10RasterizerState_FWD_DEFINED__
69#define __ID3D10RasterizerState_FWD_DEFINED__
70typedef interface ID3D10RasterizerState ID3D10RasterizerState;
71#endif    /* __ID3D10RasterizerState_FWD_DEFINED__ */
72
73
74#ifndef __ID3D10Resource_FWD_DEFINED__
75#define __ID3D10Resource_FWD_DEFINED__
76typedef interface ID3D10Resource ID3D10Resource;
77#endif    /* __ID3D10Resource_FWD_DEFINED__ */
78
79
80#ifndef __ID3D10Buffer_FWD_DEFINED__
81#define __ID3D10Buffer_FWD_DEFINED__
82typedef interface ID3D10Buffer ID3D10Buffer;
83#endif    /* __ID3D10Buffer_FWD_DEFINED__ */
84
85
86#ifndef __ID3D10Texture1D_FWD_DEFINED__
87#define __ID3D10Texture1D_FWD_DEFINED__
88typedef interface ID3D10Texture1D ID3D10Texture1D;
89#endif    /* __ID3D10Texture1D_FWD_DEFINED__ */
90
91
92#ifndef __ID3D10Texture2D_FWD_DEFINED__
93#define __ID3D10Texture2D_FWD_DEFINED__
94typedef interface ID3D10Texture2D ID3D10Texture2D;
95#endif    /* __ID3D10Texture2D_FWD_DEFINED__ */
96
97
98#ifndef __ID3D10Texture3D_FWD_DEFINED__
99#define __ID3D10Texture3D_FWD_DEFINED__
100typedef interface ID3D10Texture3D ID3D10Texture3D;
101#endif    /* __ID3D10Texture3D_FWD_DEFINED__ */
102
103
104#ifndef __ID3D10View_FWD_DEFINED__
105#define __ID3D10View_FWD_DEFINED__
106typedef interface ID3D10View ID3D10View;
107#endif    /* __ID3D10View_FWD_DEFINED__ */
108
109
110#ifndef __ID3D10ShaderResourceView_FWD_DEFINED__
111#define __ID3D10ShaderResourceView_FWD_DEFINED__
112typedef interface ID3D10ShaderResourceView ID3D10ShaderResourceView;
113#endif    /* __ID3D10ShaderResourceView_FWD_DEFINED__ */
114
115
116#ifndef __ID3D10RenderTargetView_FWD_DEFINED__
117#define __ID3D10RenderTargetView_FWD_DEFINED__
118typedef interface ID3D10RenderTargetView ID3D10RenderTargetView;
119#endif    /* __ID3D10RenderTargetView_FWD_DEFINED__ */
120
121
122#ifndef __ID3D10DepthStencilView_FWD_DEFINED__
123#define __ID3D10DepthStencilView_FWD_DEFINED__
124typedef interface ID3D10DepthStencilView ID3D10DepthStencilView;
125#endif    /* __ID3D10DepthStencilView_FWD_DEFINED__ */
126
127
128#ifndef __ID3D10VertexShader_FWD_DEFINED__
129#define __ID3D10VertexShader_FWD_DEFINED__
130typedef interface ID3D10VertexShader ID3D10VertexShader;
131#endif    /* __ID3D10VertexShader_FWD_DEFINED__ */
132
133
134#ifndef __ID3D10GeometryShader_FWD_DEFINED__
135#define __ID3D10GeometryShader_FWD_DEFINED__
136typedef interface ID3D10GeometryShader ID3D10GeometryShader;
137#endif    /* __ID3D10GeometryShader_FWD_DEFINED__ */
138
139
140#ifndef __ID3D10PixelShader_FWD_DEFINED__
141#define __ID3D10PixelShader_FWD_DEFINED__
142typedef interface ID3D10PixelShader ID3D10PixelShader;
143#endif    /* __ID3D10PixelShader_FWD_DEFINED__ */
144
145
146#ifndef __ID3D10InputLayout_FWD_DEFINED__
147#define __ID3D10InputLayout_FWD_DEFINED__
148typedef interface ID3D10InputLayout ID3D10InputLayout;
149#endif    /* __ID3D10InputLayout_FWD_DEFINED__ */
150
151
152#ifndef __ID3D10SamplerState_FWD_DEFINED__
153#define __ID3D10SamplerState_FWD_DEFINED__
154typedef interface ID3D10SamplerState ID3D10SamplerState;
155#endif    /* __ID3D10SamplerState_FWD_DEFINED__ */
156
157
158#ifndef __ID3D10Asynchronous_FWD_DEFINED__
159#define __ID3D10Asynchronous_FWD_DEFINED__
160typedef interface ID3D10Asynchronous ID3D10Asynchronous;
161#endif    /* __ID3D10Asynchronous_FWD_DEFINED__ */
162
163
164#ifndef __ID3D10Query_FWD_DEFINED__
165#define __ID3D10Query_FWD_DEFINED__
166typedef interface ID3D10Query ID3D10Query;
167#endif    /* __ID3D10Query_FWD_DEFINED__ */
168
169
170#ifndef __ID3D10Predicate_FWD_DEFINED__
171#define __ID3D10Predicate_FWD_DEFINED__
172typedef interface ID3D10Predicate ID3D10Predicate;
173#endif    /* __ID3D10Predicate_FWD_DEFINED__ */
174
175
176#ifndef __ID3D10Counter_FWD_DEFINED__
177#define __ID3D10Counter_FWD_DEFINED__
178typedef interface ID3D10Counter ID3D10Counter;
179#endif    /* __ID3D10Counter_FWD_DEFINED__ */
180
181
182#ifndef __ID3D10Device_FWD_DEFINED__
183#define __ID3D10Device_FWD_DEFINED__
184typedef interface ID3D10Device ID3D10Device;
185#endif    /* __ID3D10Device_FWD_DEFINED__ */
186
187
188#ifndef __ID3D10Multithread_FWD_DEFINED__
189#define __ID3D10Multithread_FWD_DEFINED__
190typedef interface ID3D10Multithread ID3D10Multithread;
191#endif    /* __ID3D10Multithread_FWD_DEFINED__ */
192
193
194/* header files for imported files */
195#include "oaidl.h"
196#include "ocidl.h"
197#include "dxgi.h"
198#include "d3dcommon.h"
199
200#ifdef __cplusplus
201extern "C"{
202#endif
203
204
205/* interface __MIDL_itf_d3d10_0000_0000 */
206/* [local] */
207
208#ifndef _D3D10_CONSTANTS
209#define _D3D10_CONSTANTS
210#define   D3D10_16BIT_INDEX_STRIP_CUT_VALUE   ( 0xffff )
211
212#define   D3D10_32BIT_INDEX_STRIP_CUT_VALUE   ( 0xffffffff )
213
214#define   D3D10_8BIT_INDEX_STRIP_CUT_VALUE   ( 0xff )
215
216#define   D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT   ( 9 )
217
218#define   D3D10_CLIP_OR_CULL_DISTANCE_COUNT   ( 8 )
219
220#define   D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT   ( 2 )
221
222#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT   ( 14 )
223
224#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS   ( 4 )
225
226#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT   ( 32 )
227
228#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT   ( 15 )
229
230#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS   ( 4 )
231
232#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT   ( 15 )
233
234#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST   ( 1 )
235
236#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS   ( 1 )
237
238#define   D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT   ( 64 )
239
240#define   D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS   ( 4 )
241
242#define   D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT   ( 1 )
243
244#define   D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST   ( 1 )
245
246#define   D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS   ( 1 )
247
248#define   D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT   ( 32 )
249
250#define   D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS   ( 1 )
251
252#define   D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT   ( 128 )
253
254#define   D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST   ( 1 )
255
256#define   D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS   ( 1 )
257
258#define   D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT   ( 128 )
259
260#define   D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS   ( 1 )
261
262#define   D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT   ( 16 )
263
264#define   D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST   ( 1 )
265
266#define   D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS   ( 1 )
267
268#define   D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT   ( 16 )
269
270#define   D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT   ( 32 )
271
272#define   D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS   ( 4 )
273
274#define   D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
275
276#define   D3D10_COMMONSHADER_TEMP_REGISTER_COUNT   ( 4096 )
277
278#define   D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST   ( 3 )
279
280#define   D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS   ( 3 )
281
282#define   D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX   ( 10 )
283
284#define   D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN   ( -10 )
285
286#define   D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE   ( -8 )
287
288#define   D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE   ( 7 )
289
290#define D3D10_DEFAULT_BLEND_FACTOR_ALPHA   ( 1.0f )
291#define D3D10_DEFAULT_BLEND_FACTOR_BLUE   ( 1.0f )
292#define D3D10_DEFAULT_BLEND_FACTOR_GREEN   ( 1.0f )
293#define D3D10_DEFAULT_BLEND_FACTOR_RED   ( 1.0f )
294#define D3D10_DEFAULT_BORDER_COLOR_COMPONENT   ( 0.0f )
295#define   D3D10_DEFAULT_DEPTH_BIAS   ( 0 )
296
297#define D3D10_DEFAULT_DEPTH_BIAS_CLAMP   ( 0.0f )
298#define D3D10_DEFAULT_MAX_ANISOTROPY   ( 16.0f )
299#define D3D10_DEFAULT_MIP_LOD_BIAS   ( 0.0f )
300#define   D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX   ( 0 )
301
302#define   D3D10_DEFAULT_SAMPLE_MASK   ( 0xffffffff )
303
304#define   D3D10_DEFAULT_SCISSOR_ENDX   ( 0 )
305
306#define   D3D10_DEFAULT_SCISSOR_ENDY   ( 0 )
307
308#define   D3D10_DEFAULT_SCISSOR_STARTX   ( 0 )
309
310#define   D3D10_DEFAULT_SCISSOR_STARTY   ( 0 )
311
312#define D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS   ( 0.0f )
313#define   D3D10_DEFAULT_STENCIL_READ_MASK   ( 0xff )
314
315#define   D3D10_DEFAULT_STENCIL_REFERENCE   ( 0 )
316
317#define   D3D10_DEFAULT_STENCIL_WRITE_MASK   ( 0xff )
318
319#define   D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX   ( 0 )
320
321#define   D3D10_DEFAULT_VIEWPORT_HEIGHT   ( 0 )
322
323#define D3D10_DEFAULT_VIEWPORT_MAX_DEPTH   ( 0.0f )
324#define D3D10_DEFAULT_VIEWPORT_MIN_DEPTH   ( 0.0f )
325#define   D3D10_DEFAULT_VIEWPORT_TOPLEFTX   ( 0 )
326
327#define   D3D10_DEFAULT_VIEWPORT_TOPLEFTY   ( 0 )
328
329#define   D3D10_DEFAULT_VIEWPORT_WIDTH   ( 0 )
330
331#define D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP   ( 0.6 )
332#define D3D10_FLOAT32_MAX   ( 3.402823466e+38f )
333#define D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP   ( 0.6f )
334#define D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR   ( 2.4f )
335#define D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR   ( 1.0f )
336#define D3D10_FLOAT_TO_SRGB_OFFSET   ( 0.055f )
337#define D3D10_FLOAT_TO_SRGB_SCALE_1   ( 12.92f )
338#define D3D10_FLOAT_TO_SRGB_SCALE_2   ( 1.055f )
339#define D3D10_FLOAT_TO_SRGB_THRESHOLD   ( 0.0031308f )
340#define D3D10_FTOI_INSTRUCTION_MAX_INPUT   ( 2147483647.999f )
341#define D3D10_FTOI_INSTRUCTION_MIN_INPUT   ( -2147483648.999f )
342#define D3D10_FTOU_INSTRUCTION_MAX_INPUT   ( 4294967295.999f )
343#define D3D10_FTOU_INSTRUCTION_MIN_INPUT   ( 0.0f )
344#define   D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS   ( 1 )
345
346#define   D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
347
348#define   D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT   ( 1 )
349
350#define   D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST   ( 2 )
351
352#define   D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS   ( 1 )
353
354#define   D3D10_GS_INPUT_REGISTER_COMPONENTS   ( 4 )
355
356#define   D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
357
358#define   D3D10_GS_INPUT_REGISTER_COUNT   ( 16 )
359
360#define   D3D10_GS_INPUT_REGISTER_READS_PER_INST   ( 2 )
361
362#define   D3D10_GS_INPUT_REGISTER_READ_PORTS   ( 1 )
363
364#define   D3D10_GS_INPUT_REGISTER_VERTICES   ( 6 )
365
366#define   D3D10_GS_OUTPUT_ELEMENTS   ( 32 )
367
368#define   D3D10_GS_OUTPUT_REGISTER_COMPONENTS   ( 4 )
369
370#define   D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
371
372#define   D3D10_GS_OUTPUT_REGISTER_COUNT   ( 32 )
373
374#define   D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES   ( 0 )
375
376#define   D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY   ( 0 )
377
378#define   D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES   ( 0 )
379
380#define   D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT   ( 1 )
381
382#define   D3D10_IA_INSTANCE_ID_BIT_COUNT   ( 32 )
383
384#define   D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT   ( 32 )
385
386#define   D3D10_IA_PRIMITIVE_ID_BIT_COUNT   ( 32 )
387
388#define   D3D10_IA_VERTEX_ID_BIT_COUNT   ( 32 )
389
390#define   D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT   ( 16 )
391
392#define   D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS   ( 64 )
393
394#define   D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT   ( 16 )
395
396#define   D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT   ( 0xffffffff )
397
398#define   D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER   ( 0xffffffff )
399
400#define D3D10_LINEAR_GAMMA   ( 1.0f )
401#define D3D10_MAX_BORDER_COLOR_COMPONENT   ( 1.0f )
402#define D3D10_MAX_DEPTH   ( 1.0f )
403#define   D3D10_MAX_MAXANISOTROPY   ( 16 )
404
405#define   D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT   ( 32 )
406
407#define D3D10_MAX_POSITION_VALUE   ( 3.402823466e+34f )
408#define   D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP   ( 17 )
409
410#define D3D10_MIN_BORDER_COLOR_COMPONENT   ( 0.0f )
411#define D3D10_MIN_DEPTH   ( 0.0f )
412#define   D3D10_MIN_MAXANISOTROPY   ( 0 )
413
414#define D3D10_MIP_LOD_BIAS_MAX   ( 15.99f )
415#define D3D10_MIP_LOD_BIAS_MIN   ( -16.0f )
416#define   D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT   ( 6 )
417
418#define   D3D10_MIP_LOD_RANGE_BIT_COUNT   ( 8 )
419
420#define D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH   ( 1.4f )
421#define   D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT   ( 0 )
422
423#define   D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT   ( 13 )
424
425#define   D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT   ( 15 )
426
427#define   D3D10_PS_FRONTFACING_DEFAULT_VALUE   ( 0xffffffff )
428
429#define   D3D10_PS_FRONTFACING_FALSE_VALUE   ( 0 )
430
431#define   D3D10_PS_FRONTFACING_TRUE_VALUE   ( 0xffffffff )
432
433#define   D3D10_PS_INPUT_REGISTER_COMPONENTS   ( 4 )
434
435#define   D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
436
437#define   D3D10_PS_INPUT_REGISTER_COUNT   ( 32 )
438
439#define   D3D10_PS_INPUT_REGISTER_READS_PER_INST   ( 2 )
440
441#define   D3D10_PS_INPUT_REGISTER_READ_PORTS   ( 1 )
442
443#define D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT   ( 0.0f )
444#define   D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS   ( 1 )
445
446#define   D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
447
448#define   D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT   ( 1 )
449
450#define   D3D10_PS_OUTPUT_REGISTER_COMPONENTS   ( 4 )
451
452#define   D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
453
454#define   D3D10_PS_OUTPUT_REGISTER_COUNT   ( 8 )
455
456#define D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT   ( 0.5f )
457#define   D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT   ( 4096 )
458
459#define   D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP   ( 27 )
460
461#define   D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT   ( 4096 )
462
463#define   D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT   ( 4096 )
464
465#define   D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP   ( 32 )
466
467#define   D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP   ( 32 )
468
469#define   D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION   ( 8192 )
470
471#define   D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT   ( 1024 )
472
473#define   D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT   ( 4096 )
474
475#define   D3D10_REQ_MAXANISOTROPY   ( 16 )
476
477#define   D3D10_REQ_MIP_LEVELS   ( 14 )
478
479#define   D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES   ( 2048 )
480
481#define   D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT   ( 4096 )
482
483#define   D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH   ( 8192 )
484
485#define   D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES   ( 128 )
486
487#define   D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP   ( 20 )
488
489#define   D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT   ( 4096 )
490
491#define   D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION   ( 512 )
492
493#define   D3D10_REQ_TEXTURE1D_U_DIMENSION   ( 8192 )
494
495#define   D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION   ( 512 )
496
497#define   D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION   ( 8192 )
498
499#define   D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION   ( 2048 )
500
501#define   D3D10_REQ_TEXTURECUBE_DIMENSION   ( 8192 )
502
503#define   D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL   ( 0 )
504
505#define   D3D10_SHADER_MAJOR_VERSION   ( 4 )
506
507#define   D3D10_SHADER_MINOR_VERSION   ( 0 )
508
509#define   D3D10_SHIFT_INSTRUCTION_PAD_VALUE   ( 0 )
510
511#define   D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT   ( 5 )
512
513#define   D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT   ( 8 )
514
515#define   D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES   ( 2048 )
516
517#define   D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES   ( 256 )
518
519#define   D3D10_SO_BUFFER_SLOT_COUNT   ( 4 )
520
521#define   D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP   ( 0xffffffff )
522
523#define   D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER   ( 1 )
524
525#define   D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT   ( 64 )
526
527#define D3D10_SRGB_GAMMA   ( 2.2f )
528#define D3D10_SRGB_TO_FLOAT_DENOMINATOR_1   ( 12.92f )
529#define D3D10_SRGB_TO_FLOAT_DENOMINATOR_2   ( 1.055f )
530#define D3D10_SRGB_TO_FLOAT_EXPONENT   ( 2.4f )
531#define D3D10_SRGB_TO_FLOAT_OFFSET   ( 0.055f )
532#define D3D10_SRGB_TO_FLOAT_THRESHOLD   ( 0.04045f )
533#define D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP   ( 0.5f )
534#define   D3D10_STANDARD_COMPONENT_BIT_COUNT   ( 32 )
535
536#define   D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED   ( 64 )
537
538#define   D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE   ( 4 )
539
540#define   D3D10_STANDARD_PIXEL_COMPONENT_COUNT   ( 128 )
541
542#define   D3D10_STANDARD_PIXEL_ELEMENT_COUNT   ( 32 )
543
544#define   D3D10_STANDARD_VECTOR_SIZE   ( 4 )
545
546#define   D3D10_STANDARD_VERTEX_ELEMENT_COUNT   ( 16 )
547
548#define   D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT   ( 64 )
549
550#define   D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT   ( 8 )
551
552#define   D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT   ( 6 )
553
554#define   D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT   ( 18 )
555
556#define   D3D10_UNBOUND_MEMORY_ACCESS_RESULT   ( 0 )
557
558#define   D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX   ( 15 )
559
560#define   D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE   ( 16 )
561
562#define   D3D10_VIEWPORT_BOUNDS_MAX   ( 16383 )
563
564#define   D3D10_VIEWPORT_BOUNDS_MIN   ( -16384 )
565
566#define   D3D10_VS_INPUT_REGISTER_COMPONENTS   ( 4 )
567
568#define   D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
569
570#define   D3D10_VS_INPUT_REGISTER_COUNT   ( 16 )
571
572#define   D3D10_VS_INPUT_REGISTER_READS_PER_INST   ( 2 )
573
574#define   D3D10_VS_INPUT_REGISTER_READ_PORTS   ( 1 )
575
576#define   D3D10_VS_OUTPUT_REGISTER_COMPONENTS   ( 4 )
577
578#define   D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
579
580#define   D3D10_VS_OUTPUT_REGISTER_COUNT   ( 16 )
581
582#define   D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT   ( 10 )
583
584#define   D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP   ( 25 )
585
586#define   D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP   ( 25 )
587
588#define   D3D_MAJOR_VERSION   ( 10 )
589
590#define   D3D_MINOR_VERSION   ( 0 )
591
592#define   D3D_SPEC_DATE_DAY   ( 8 )
593
594#define   D3D_SPEC_DATE_MONTH   ( 8 )
595
596#define   D3D_SPEC_DATE_YEAR   ( 2006 )
597
598#define D3D_SPEC_VERSION   ( 1.050005 )
599#endif
600#if !defined( __d3d10_1_h__ ) && !(D3D10_HEADER_MINOR_VERSION >= 1)
601#define D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT
602#define D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT
603#endif
604#define   _FACD3D10   ( 0x879 )
605
606#define   _FACD3D10DEBUG   ( ( _FACD3D10 + 1 )  )
607
608#define MAKE_D3D10_HRESULT( code )  MAKE_HRESULT( 1, _FACD3D10, code )
609#define MAKE_D3D10_STATUS( code )    MAKE_HRESULT( 0, _FACD3D10, code )
610#define D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS  MAKE_D3D10_HRESULT(1)
611#define D3D10_ERROR_FILE_NOT_FOUND  MAKE_D3D10_HRESULT(2)
612#if __SAL_H_FULL_VER < 140050727
613#undef __in_range
614#undef __in_xcount_opt
615#define __in_range(x, y)
616#define __in_xcount_opt(x)
617#endif
618typedef
619enum D3D10_INPUT_CLASSIFICATION
620    {   D3D10_INPUT_PER_VERTEX_DATA   = 0,
621   D3D10_INPUT_PER_INSTANCE_DATA   = 1
622    }    D3D10_INPUT_CLASSIFICATION;
623
624#define   D3D10_APPEND_ALIGNED_ELEMENT   ( 0xffffffff )
625
626typedef struct D3D10_INPUT_ELEMENT_DESC
627    {
628    LPCSTR SemanticName;
629    UINT SemanticIndex;
630    DXGI_FORMAT Format;
631    UINT InputSlot;
632    UINT AlignedByteOffset;
633    D3D10_INPUT_CLASSIFICATION InputSlotClass;
634    UINT InstanceDataStepRate;
635    }    D3D10_INPUT_ELEMENT_DESC;
636
637typedef
638enum D3D10_FILL_MODE
639    {   D3D10_FILL_WIREFRAME   = 2,
640   D3D10_FILL_SOLID   = 3
641    }    D3D10_FILL_MODE;
642
643typedef D3D_PRIMITIVE_TOPOLOGY D3D10_PRIMITIVE_TOPOLOGY;
644
645typedef D3D_PRIMITIVE D3D10_PRIMITIVE;
646
647typedef
648enum D3D10_CULL_MODE
649    {   D3D10_CULL_NONE   = 1,
650   D3D10_CULL_FRONT   = 2,
651   D3D10_CULL_BACK   = 3
652    }    D3D10_CULL_MODE;
653
654typedef struct D3D10_SO_DECLARATION_ENTRY
655    {
656    LPCSTR SemanticName;
657    UINT SemanticIndex;
658    BYTE StartComponent;
659    BYTE ComponentCount;
660    BYTE OutputSlot;
661    }    D3D10_SO_DECLARATION_ENTRY;
662
663typedef struct D3D10_VIEWPORT
664    {
665    INT TopLeftX;
666    INT TopLeftY;
667    UINT Width;
668    UINT Height;
669    FLOAT MinDepth;
670    FLOAT MaxDepth;
671    }    D3D10_VIEWPORT;
672
673typedef
674enum D3D10_RESOURCE_DIMENSION
675    {   D3D10_RESOURCE_DIMENSION_UNKNOWN   = 0,
676   D3D10_RESOURCE_DIMENSION_BUFFER   = 1,
677   D3D10_RESOURCE_DIMENSION_TEXTURE1D   = 2,
678   D3D10_RESOURCE_DIMENSION_TEXTURE2D   = 3,
679   D3D10_RESOURCE_DIMENSION_TEXTURE3D   = 4
680    }    D3D10_RESOURCE_DIMENSION;
681
682typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION;
683
684typedef
685enum D3D10_DSV_DIMENSION
686    {   D3D10_DSV_DIMENSION_UNKNOWN   = 0,
687   D3D10_DSV_DIMENSION_TEXTURE1D   = 1,
688   D3D10_DSV_DIMENSION_TEXTURE1DARRAY   = 2,
689   D3D10_DSV_DIMENSION_TEXTURE2D   = 3,
690   D3D10_DSV_DIMENSION_TEXTURE2DARRAY   = 4,
691   D3D10_DSV_DIMENSION_TEXTURE2DMS   = 5,
692   D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY   = 6
693    }    D3D10_DSV_DIMENSION;
694
695typedef
696enum D3D10_RTV_DIMENSION
697    {   D3D10_RTV_DIMENSION_UNKNOWN   = 0,
698   D3D10_RTV_DIMENSION_BUFFER   = 1,
699   D3D10_RTV_DIMENSION_TEXTURE1D   = 2,
700   D3D10_RTV_DIMENSION_TEXTURE1DARRAY   = 3,
701   D3D10_RTV_DIMENSION_TEXTURE2D   = 4,
702   D3D10_RTV_DIMENSION_TEXTURE2DARRAY   = 5,
703   D3D10_RTV_DIMENSION_TEXTURE2DMS   = 6,
704   D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY   = 7,
705   D3D10_RTV_DIMENSION_TEXTURE3D   = 8
706    }    D3D10_RTV_DIMENSION;
707
708typedef
709enum D3D10_USAGE
710    {   D3D10_USAGE_DEFAULT   = 0,
711   D3D10_USAGE_IMMUTABLE   = 1,
712   D3D10_USAGE_DYNAMIC   = 2,
713   D3D10_USAGE_STAGING   = 3
714    }    D3D10_USAGE;
715
716typedef
717enum D3D10_BIND_FLAG
718    {   D3D10_BIND_VERTEX_BUFFER   = 0x1L,
719   D3D10_BIND_INDEX_BUFFER   = 0x2L,
720   D3D10_BIND_CONSTANT_BUFFER   = 0x4L,
721   D3D10_BIND_SHADER_RESOURCE   = 0x8L,
722   D3D10_BIND_STREAM_OUTPUT   = 0x10L,
723   D3D10_BIND_RENDER_TARGET   = 0x20L,
724   D3D10_BIND_DEPTH_STENCIL   = 0x40L
725    }    D3D10_BIND_FLAG;
726
727typedef
728enum D3D10_CPU_ACCESS_FLAG
729    {   D3D10_CPU_ACCESS_WRITE   = 0x10000L,
730   D3D10_CPU_ACCESS_READ   = 0x20000L
731    }    D3D10_CPU_ACCESS_FLAG;
732
733typedef
734enum D3D10_RESOURCE_MISC_FLAG
735    {   D3D10_RESOURCE_MISC_GENERATE_MIPS   = 0x1L,
736   D3D10_RESOURCE_MISC_SHARED   = 0x2L,
737   D3D10_RESOURCE_MISC_TEXTURECUBE   = 0x4L,
738   D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX   = 0x10L,
739   D3D10_RESOURCE_MISC_GDI_COMPATIBLE   = 0x20L
740    }    D3D10_RESOURCE_MISC_FLAG;
741
742typedef
743enum D3D10_MAP
744    {   D3D10_MAP_READ   = 1,
745   D3D10_MAP_WRITE   = 2,
746   D3D10_MAP_READ_WRITE   = 3,
747   D3D10_MAP_WRITE_DISCARD   = 4,
748   D3D10_MAP_WRITE_NO_OVERWRITE   = 5
749    }    D3D10_MAP;
750
751typedef
752enum D3D10_MAP_FLAG
753    {   D3D10_MAP_FLAG_DO_NOT_WAIT   = 0x100000L
754    }    D3D10_MAP_FLAG;
755
756typedef
757enum D3D10_RAISE_FLAG
758    {   D3D10_RAISE_FLAG_DRIVER_INTERNAL_ERROR   = 0x1L
759    }    D3D10_RAISE_FLAG;
760
761typedef
762enum D3D10_CLEAR_FLAG
763    {   D3D10_CLEAR_DEPTH   = 0x1L,
764   D3D10_CLEAR_STENCIL   = 0x2L
765    }    D3D10_CLEAR_FLAG;
766
767typedef RECT D3D10_RECT;
768
769typedef struct D3D10_BOX
770    {
771    UINT left;
772    UINT top;
773    UINT front;
774    UINT right;
775    UINT bottom;
776    UINT back;
777    }    D3D10_BOX;
778
779
780
781
782extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0000_v0_0_c_ifspec;
783extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0000_v0_0_s_ifspec;
784
785#ifndef __ID3D10DeviceChild_INTERFACE_DEFINED__
786#define __ID3D10DeviceChild_INTERFACE_DEFINED__
787
788/* interface ID3D10DeviceChild */
789/* [unique][local][object][uuid] */
790
791
792EXTERN_C const IID IID_ID3D10DeviceChild;
793
794#if defined(__cplusplus) && !defined(CINTERFACE)
795   
796    MIDL_INTERFACE("9B7E4C00-342C-4106-A19F-4F2704F689F0")
797    ID3D10DeviceChild : public IUnknown
798    {
799    public:
800        virtual void STDMETHODCALLTYPE GetDevice(
801            /* [annotation] */
802            __out  ID3D10Device **ppDevice) = 0;
803       
804        virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
805            /* [annotation] */
806            __in  REFGUID guid,
807            /* [annotation] */
808            __inout  UINT *pDataSize,
809            /* [annotation] */
810            __out_bcount_opt(*pDataSize)  void *pData) = 0;
811       
812        virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
813            /* [annotation] */
814            __in  REFGUID guid,
815            /* [annotation] */
816            __in  UINT DataSize,
817            /* [annotation] */
818            __in_bcount_opt(DataSize)  const void *pData) = 0;
819       
820        virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
821            /* [annotation] */
822            __in  REFGUID guid,
823            /* [annotation] */
824            __in_opt  const IUnknown *pData) = 0;
825       
826    };
827   
828#else    /* C style interface */
829
830    typedef struct ID3D10DeviceChildVtbl
831    {
832        BEGIN_INTERFACE
833       
834        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
835            ID3D10DeviceChild * This,
836            /* [in] */ REFIID riid,
837            /* [annotation][iid_is][out] */
838            __RPC__deref_out  void **ppvObject);
839       
840        ULONG ( STDMETHODCALLTYPE *AddRef )(
841            ID3D10DeviceChild * This);
842       
843        ULONG ( STDMETHODCALLTYPE *Release )(
844            ID3D10DeviceChild * This);
845       
846        void ( STDMETHODCALLTYPE *GetDevice )(
847            ID3D10DeviceChild * This,
848            /* [annotation] */
849            __out  ID3D10Device **ppDevice);
850       
851        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
852            ID3D10DeviceChild * This,
853            /* [annotation] */
854            __in  REFGUID guid,
855            /* [annotation] */
856            __inout  UINT *pDataSize,
857            /* [annotation] */
858            __out_bcount_opt(*pDataSize)  void *pData);
859       
860        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
861            ID3D10DeviceChild * This,
862            /* [annotation] */
863            __in  REFGUID guid,
864            /* [annotation] */
865            __in  UINT DataSize,
866            /* [annotation] */
867            __in_bcount_opt(DataSize)  const void *pData);
868       
869        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
870            ID3D10DeviceChild * This,
871            /* [annotation] */
872            __in  REFGUID guid,
873            /* [annotation] */
874            __in_opt  const IUnknown *pData);
875       
876        END_INTERFACE
877    } ID3D10DeviceChildVtbl;
878
879    interface ID3D10DeviceChild
880    {
881        CONST_VTBL struct ID3D10DeviceChildVtbl *lpVtbl;
882    };
883
884   
885
886#ifdef COBJMACROS
887
888
889#define ID3D10DeviceChild_QueryInterface(This,riid,ppvObject)   \
890    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
891
892#define ID3D10DeviceChild_AddRef(This)   \
893    ( (This)->lpVtbl -> AddRef(This) )
894
895#define ID3D10DeviceChild_Release(This)   \
896    ( (This)->lpVtbl -> Release(This) )
897
898
899#define ID3D10DeviceChild_GetDevice(This,ppDevice)   \
900    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
901
902#define ID3D10DeviceChild_GetPrivateData(This,guid,pDataSize,pData)   \
903    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
904
905#define ID3D10DeviceChild_SetPrivateData(This,guid,DataSize,pData)   \
906    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
907
908#define ID3D10DeviceChild_SetPrivateDataInterface(This,guid,pData)   \
909    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
910
911#endif /* COBJMACROS */
912
913
914#endif    /* C style interface */
915
916
917
918
919#endif    /* __ID3D10DeviceChild_INTERFACE_DEFINED__ */
920
921
922/* interface __MIDL_itf_d3d10_0000_0001 */
923/* [local] */
924
925typedef
926enum D3D10_COMPARISON_FUNC
927    {   D3D10_COMPARISON_NEVER   = 1,
928   D3D10_COMPARISON_LESS   = 2,
929   D3D10_COMPARISON_EQUAL   = 3,
930   D3D10_COMPARISON_LESS_EQUAL   = 4,
931   D3D10_COMPARISON_GREATER   = 5,
932   D3D10_COMPARISON_NOT_EQUAL   = 6,
933   D3D10_COMPARISON_GREATER_EQUAL   = 7,
934   D3D10_COMPARISON_ALWAYS   = 8
935    }    D3D10_COMPARISON_FUNC;
936
937typedef
938enum D3D10_DEPTH_WRITE_MASK
939    {   D3D10_DEPTH_WRITE_MASK_ZERO   = 0,
940   D3D10_DEPTH_WRITE_MASK_ALL   = 1
941    }    D3D10_DEPTH_WRITE_MASK;
942
943typedef
944enum D3D10_STENCIL_OP
945    {   D3D10_STENCIL_OP_KEEP   = 1,
946   D3D10_STENCIL_OP_ZERO   = 2,
947   D3D10_STENCIL_OP_REPLACE   = 3,
948   D3D10_STENCIL_OP_INCR_SAT   = 4,
949   D3D10_STENCIL_OP_DECR_SAT   = 5,
950   D3D10_STENCIL_OP_INVERT   = 6,
951   D3D10_STENCIL_OP_INCR   = 7,
952   D3D10_STENCIL_OP_DECR   = 8
953    }    D3D10_STENCIL_OP;
954
955typedef struct D3D10_DEPTH_STENCILOP_DESC
956    {
957    D3D10_STENCIL_OP StencilFailOp;
958    D3D10_STENCIL_OP StencilDepthFailOp;
959    D3D10_STENCIL_OP StencilPassOp;
960    D3D10_COMPARISON_FUNC StencilFunc;
961    }    D3D10_DEPTH_STENCILOP_DESC;
962
963typedef struct D3D10_DEPTH_STENCIL_DESC
964    {
965    BOOL DepthEnable;
966    D3D10_DEPTH_WRITE_MASK DepthWriteMask;
967    D3D10_COMPARISON_FUNC DepthFunc;
968    BOOL StencilEnable;
969    UINT8 StencilReadMask;
970    UINT8 StencilWriteMask;
971    D3D10_DEPTH_STENCILOP_DESC FrontFace;
972    D3D10_DEPTH_STENCILOP_DESC BackFace;
973    }    D3D10_DEPTH_STENCIL_DESC;
974
975
976
977extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0001_v0_0_c_ifspec;
978extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0001_v0_0_s_ifspec;
979
980#ifndef __ID3D10DepthStencilState_INTERFACE_DEFINED__
981#define __ID3D10DepthStencilState_INTERFACE_DEFINED__
982
983/* interface ID3D10DepthStencilState */
984/* [unique][local][object][uuid] */
985
986
987EXTERN_C const IID IID_ID3D10DepthStencilState;
988
989#if defined(__cplusplus) && !defined(CINTERFACE)
990   
991    MIDL_INTERFACE("2B4B1CC8-A4AD-41f8-8322-CA86FC3EC675")
992    ID3D10DepthStencilState : public ID3D10DeviceChild
993    {
994    public:
995        virtual void STDMETHODCALLTYPE GetDesc(
996            /* [annotation] */
997            __out  D3D10_DEPTH_STENCIL_DESC *pDesc) = 0;
998       
999    };
1000   
1001#else    /* C style interface */
1002
1003    typedef struct ID3D10DepthStencilStateVtbl
1004    {
1005        BEGIN_INTERFACE
1006       
1007        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1008            ID3D10DepthStencilState * This,
1009            /* [in] */ REFIID riid,
1010            /* [annotation][iid_is][out] */
1011            __RPC__deref_out  void **ppvObject);
1012       
1013        ULONG ( STDMETHODCALLTYPE *AddRef )(
1014            ID3D10DepthStencilState * This);
1015       
1016        ULONG ( STDMETHODCALLTYPE *Release )(
1017            ID3D10DepthStencilState * This);
1018       
1019        void ( STDMETHODCALLTYPE *GetDevice )(
1020            ID3D10DepthStencilState * This,
1021            /* [annotation] */
1022            __out  ID3D10Device **ppDevice);
1023       
1024        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1025            ID3D10DepthStencilState * This,
1026            /* [annotation] */
1027            __in  REFGUID guid,
1028            /* [annotation] */
1029            __inout  UINT *pDataSize,
1030            /* [annotation] */
1031            __out_bcount_opt(*pDataSize)  void *pData);
1032       
1033        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1034            ID3D10DepthStencilState * This,
1035            /* [annotation] */
1036            __in  REFGUID guid,
1037            /* [annotation] */
1038            __in  UINT DataSize,
1039            /* [annotation] */
1040            __in_bcount_opt(DataSize)  const void *pData);
1041       
1042        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1043            ID3D10DepthStencilState * This,
1044            /* [annotation] */
1045            __in  REFGUID guid,
1046            /* [annotation] */
1047            __in_opt  const IUnknown *pData);
1048       
1049        void ( STDMETHODCALLTYPE *GetDesc )(
1050            ID3D10DepthStencilState * This,
1051            /* [annotation] */
1052            __out  D3D10_DEPTH_STENCIL_DESC *pDesc);
1053       
1054        END_INTERFACE
1055    } ID3D10DepthStencilStateVtbl;
1056
1057    interface ID3D10DepthStencilState
1058    {
1059        CONST_VTBL struct ID3D10DepthStencilStateVtbl *lpVtbl;
1060    };
1061
1062   
1063
1064#ifdef COBJMACROS
1065
1066
1067#define ID3D10DepthStencilState_QueryInterface(This,riid,ppvObject)   \
1068    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1069
1070#define ID3D10DepthStencilState_AddRef(This)   \
1071    ( (This)->lpVtbl -> AddRef(This) )
1072
1073#define ID3D10DepthStencilState_Release(This)   \
1074    ( (This)->lpVtbl -> Release(This) )
1075
1076
1077#define ID3D10DepthStencilState_GetDevice(This,ppDevice)   \
1078    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1079
1080#define ID3D10DepthStencilState_GetPrivateData(This,guid,pDataSize,pData)   \
1081    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1082
1083#define ID3D10DepthStencilState_SetPrivateData(This,guid,DataSize,pData)   \
1084    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1085
1086#define ID3D10DepthStencilState_SetPrivateDataInterface(This,guid,pData)   \
1087    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1088
1089
1090#define ID3D10DepthStencilState_GetDesc(This,pDesc)   \
1091    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1092
1093#endif /* COBJMACROS */
1094
1095
1096#endif    /* C style interface */
1097
1098
1099
1100
1101#endif    /* __ID3D10DepthStencilState_INTERFACE_DEFINED__ */
1102
1103
1104/* interface __MIDL_itf_d3d10_0000_0002 */
1105/* [local] */
1106
1107typedef
1108enum D3D10_BLEND
1109    {   D3D10_BLEND_ZERO   = 1,
1110   D3D10_BLEND_ONE   = 2,
1111   D3D10_BLEND_SRC_COLOR   = 3,
1112   D3D10_BLEND_INV_SRC_COLOR   = 4,
1113   D3D10_BLEND_SRC_ALPHA   = 5,
1114   D3D10_BLEND_INV_SRC_ALPHA   = 6,
1115   D3D10_BLEND_DEST_ALPHA   = 7,
1116   D3D10_BLEND_INV_DEST_ALPHA   = 8,
1117   D3D10_BLEND_DEST_COLOR   = 9,
1118   D3D10_BLEND_INV_DEST_COLOR   = 10,
1119   D3D10_BLEND_SRC_ALPHA_SAT   = 11,
1120   D3D10_BLEND_BLEND_FACTOR   = 14,
1121   D3D10_BLEND_INV_BLEND_FACTOR   = 15,
1122   D3D10_BLEND_SRC1_COLOR   = 16,
1123   D3D10_BLEND_INV_SRC1_COLOR   = 17,
1124   D3D10_BLEND_SRC1_ALPHA   = 18,
1125   D3D10_BLEND_INV_SRC1_ALPHA   = 19
1126    }    D3D10_BLEND;
1127
1128typedef
1129enum D3D10_BLEND_OP
1130    {   D3D10_BLEND_OP_ADD   = 1,
1131   D3D10_BLEND_OP_SUBTRACT   = 2,
1132   D3D10_BLEND_OP_REV_SUBTRACT   = 3,
1133   D3D10_BLEND_OP_MIN   = 4,
1134   D3D10_BLEND_OP_MAX   = 5
1135    }    D3D10_BLEND_OP;
1136
1137typedef
1138enum D3D10_COLOR_WRITE_ENABLE
1139    {   D3D10_COLOR_WRITE_ENABLE_RED   = 1,
1140   D3D10_COLOR_WRITE_ENABLE_GREEN   = 2,
1141   D3D10_COLOR_WRITE_ENABLE_BLUE   = 4,
1142   D3D10_COLOR_WRITE_ENABLE_ALPHA   = 8,
1143   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 )
1144    }    D3D10_COLOR_WRITE_ENABLE;
1145
1146typedef struct D3D10_BLEND_DESC
1147    {
1148    BOOL AlphaToCoverageEnable;
1149    BOOL BlendEnable[ 8 ];
1150    D3D10_BLEND SrcBlend;
1151    D3D10_BLEND DestBlend;
1152    D3D10_BLEND_OP BlendOp;
1153    D3D10_BLEND SrcBlendAlpha;
1154    D3D10_BLEND DestBlendAlpha;
1155    D3D10_BLEND_OP BlendOpAlpha;
1156    UINT8 RenderTargetWriteMask[ 8 ];
1157    }    D3D10_BLEND_DESC;
1158
1159
1160
1161extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0002_v0_0_c_ifspec;
1162extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0002_v0_0_s_ifspec;
1163
1164#ifndef __ID3D10BlendState_INTERFACE_DEFINED__
1165#define __ID3D10BlendState_INTERFACE_DEFINED__
1166
1167/* interface ID3D10BlendState */
1168/* [unique][local][object][uuid] */
1169
1170
1171EXTERN_C const IID IID_ID3D10BlendState;
1172
1173#if defined(__cplusplus) && !defined(CINTERFACE)
1174   
1175    MIDL_INTERFACE("EDAD8D19-8A35-4d6d-8566-2EA276CDE161")
1176    ID3D10BlendState : public ID3D10DeviceChild
1177    {
1178    public:
1179        virtual void STDMETHODCALLTYPE GetDesc(
1180            /* [annotation] */
1181            __out  D3D10_BLEND_DESC *pDesc) = 0;
1182       
1183    };
1184   
1185#else    /* C style interface */
1186
1187    typedef struct ID3D10BlendStateVtbl
1188    {
1189        BEGIN_INTERFACE
1190       
1191        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1192            ID3D10BlendState * This,
1193            /* [in] */ REFIID riid,
1194            /* [annotation][iid_is][out] */
1195            __RPC__deref_out  void **ppvObject);
1196       
1197        ULONG ( STDMETHODCALLTYPE *AddRef )(
1198            ID3D10BlendState * This);
1199       
1200        ULONG ( STDMETHODCALLTYPE *Release )(
1201            ID3D10BlendState * This);
1202       
1203        void ( STDMETHODCALLTYPE *GetDevice )(
1204            ID3D10BlendState * This,
1205            /* [annotation] */
1206            __out  ID3D10Device **ppDevice);
1207       
1208        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1209            ID3D10BlendState * This,
1210            /* [annotation] */
1211            __in  REFGUID guid,
1212            /* [annotation] */
1213            __inout  UINT *pDataSize,
1214            /* [annotation] */
1215            __out_bcount_opt(*pDataSize)  void *pData);
1216       
1217        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1218            ID3D10BlendState * This,
1219            /* [annotation] */
1220            __in  REFGUID guid,
1221            /* [annotation] */
1222            __in  UINT DataSize,
1223            /* [annotation] */
1224            __in_bcount_opt(DataSize)  const void *pData);
1225       
1226        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1227            ID3D10BlendState * This,
1228            /* [annotation] */
1229            __in  REFGUID guid,
1230            /* [annotation] */
1231            __in_opt  const IUnknown *pData);
1232       
1233        void ( STDMETHODCALLTYPE *GetDesc )(
1234            ID3D10BlendState * This,
1235            /* [annotation] */
1236            __out  D3D10_BLEND_DESC *pDesc);
1237       
1238        END_INTERFACE
1239    } ID3D10BlendStateVtbl;
1240
1241    interface ID3D10BlendState
1242    {
1243        CONST_VTBL struct ID3D10BlendStateVtbl *lpVtbl;
1244    };
1245
1246   
1247
1248#ifdef COBJMACROS
1249
1250
1251#define ID3D10BlendState_QueryInterface(This,riid,ppvObject)   \
1252    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1253
1254#define ID3D10BlendState_AddRef(This)   \
1255    ( (This)->lpVtbl -> AddRef(This) )
1256
1257#define ID3D10BlendState_Release(This)   \
1258    ( (This)->lpVtbl -> Release(This) )
1259
1260
1261#define ID3D10BlendState_GetDevice(This,ppDevice)   \
1262    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1263
1264#define ID3D10BlendState_GetPrivateData(This,guid,pDataSize,pData)   \
1265    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1266
1267#define ID3D10BlendState_SetPrivateData(This,guid,DataSize,pData)   \
1268    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1269
1270#define ID3D10BlendState_SetPrivateDataInterface(This,guid,pData)   \
1271    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1272
1273
1274#define ID3D10BlendState_GetDesc(This,pDesc)   \
1275    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1276
1277#endif /* COBJMACROS */
1278
1279
1280#endif    /* C style interface */
1281
1282
1283
1284
1285#endif    /* __ID3D10BlendState_INTERFACE_DEFINED__ */
1286
1287
1288/* interface __MIDL_itf_d3d10_0000_0003 */
1289/* [local] */
1290
1291typedef struct D3D10_RASTERIZER_DESC
1292    {
1293    D3D10_FILL_MODE FillMode;
1294    D3D10_CULL_MODE CullMode;
1295    BOOL FrontCounterClockwise;
1296    INT DepthBias;
1297    FLOAT DepthBiasClamp;
1298    FLOAT SlopeScaledDepthBias;
1299    BOOL DepthClipEnable;
1300    BOOL ScissorEnable;
1301    BOOL MultisampleEnable;
1302    BOOL AntialiasedLineEnable;
1303    }    D3D10_RASTERIZER_DESC;
1304
1305
1306
1307extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0003_v0_0_c_ifspec;
1308extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0003_v0_0_s_ifspec;
1309
1310#ifndef __ID3D10RasterizerState_INTERFACE_DEFINED__
1311#define __ID3D10RasterizerState_INTERFACE_DEFINED__
1312
1313/* interface ID3D10RasterizerState */
1314/* [unique][local][object][uuid] */
1315
1316
1317EXTERN_C const IID IID_ID3D10RasterizerState;
1318
1319#if defined(__cplusplus) && !defined(CINTERFACE)
1320   
1321    MIDL_INTERFACE("A2A07292-89AF-4345-BE2E-C53D9FBB6E9F")
1322    ID3D10RasterizerState : public ID3D10DeviceChild
1323    {
1324    public:
1325        virtual void STDMETHODCALLTYPE GetDesc(
1326            /* [annotation] */
1327            __out  D3D10_RASTERIZER_DESC *pDesc) = 0;
1328       
1329    };
1330   
1331#else    /* C style interface */
1332
1333    typedef struct ID3D10RasterizerStateVtbl
1334    {
1335        BEGIN_INTERFACE
1336       
1337        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1338            ID3D10RasterizerState * This,
1339            /* [in] */ REFIID riid,
1340            /* [annotation][iid_is][out] */
1341            __RPC__deref_out  void **ppvObject);
1342       
1343        ULONG ( STDMETHODCALLTYPE *AddRef )(
1344            ID3D10RasterizerState * This);
1345       
1346        ULONG ( STDMETHODCALLTYPE *Release )(
1347            ID3D10RasterizerState * This);
1348       
1349        void ( STDMETHODCALLTYPE *GetDevice )(
1350            ID3D10RasterizerState * This,
1351            /* [annotation] */
1352            __out  ID3D10Device **ppDevice);
1353       
1354        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1355            ID3D10RasterizerState * This,
1356            /* [annotation] */
1357            __in  REFGUID guid,
1358            /* [annotation] */
1359            __inout  UINT *pDataSize,
1360            /* [annotation] */
1361            __out_bcount_opt(*pDataSize)  void *pData);
1362       
1363        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1364            ID3D10RasterizerState * This,
1365            /* [annotation] */
1366            __in  REFGUID guid,
1367            /* [annotation] */
1368            __in  UINT DataSize,
1369            /* [annotation] */
1370            __in_bcount_opt(DataSize)  const void *pData);
1371       
1372        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1373            ID3D10RasterizerState * This,
1374            /* [annotation] */
1375            __in  REFGUID guid,
1376            /* [annotation] */
1377            __in_opt  const IUnknown *pData);
1378       
1379        void ( STDMETHODCALLTYPE *GetDesc )(
1380            ID3D10RasterizerState * This,
1381            /* [annotation] */
1382            __out  D3D10_RASTERIZER_DESC *pDesc);
1383       
1384        END_INTERFACE
1385    } ID3D10RasterizerStateVtbl;
1386
1387    interface ID3D10RasterizerState
1388    {
1389        CONST_VTBL struct ID3D10RasterizerStateVtbl *lpVtbl;
1390    };
1391
1392   
1393
1394#ifdef COBJMACROS
1395
1396
1397#define ID3D10RasterizerState_QueryInterface(This,riid,ppvObject)   \
1398    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1399
1400#define ID3D10RasterizerState_AddRef(This)   \
1401    ( (This)->lpVtbl -> AddRef(This) )
1402
1403#define ID3D10RasterizerState_Release(This)   \
1404    ( (This)->lpVtbl -> Release(This) )
1405
1406
1407#define ID3D10RasterizerState_GetDevice(This,ppDevice)   \
1408    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1409
1410#define ID3D10RasterizerState_GetPrivateData(This,guid,pDataSize,pData)   \
1411    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1412
1413#define ID3D10RasterizerState_SetPrivateData(This,guid,DataSize,pData)   \
1414    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1415
1416#define ID3D10RasterizerState_SetPrivateDataInterface(This,guid,pData)   \
1417    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1418
1419
1420#define ID3D10RasterizerState_GetDesc(This,pDesc)   \
1421    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1422
1423#endif /* COBJMACROS */
1424
1425
1426#endif    /* C style interface */
1427
1428
1429
1430
1431#endif    /* __ID3D10RasterizerState_INTERFACE_DEFINED__ */
1432
1433
1434/* interface __MIDL_itf_d3d10_0000_0004 */
1435/* [local] */
1436
1437#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus )
1438inline UINT D3D10CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT MipLevels )
1439{ return MipSlice + ArraySlice * MipLevels; }
1440#endif
1441typedef struct D3D10_SUBRESOURCE_DATA
1442    {
1443    const void *pSysMem;
1444    UINT SysMemPitch;
1445    UINT SysMemSlicePitch;
1446    }    D3D10_SUBRESOURCE_DATA;
1447
1448
1449
1450extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0004_v0_0_c_ifspec;
1451extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0004_v0_0_s_ifspec;
1452
1453#ifndef __ID3D10Resource_INTERFACE_DEFINED__
1454#define __ID3D10Resource_INTERFACE_DEFINED__
1455
1456/* interface ID3D10Resource */
1457/* [unique][local][object][uuid] */
1458
1459
1460EXTERN_C const IID IID_ID3D10Resource;
1461
1462#if defined(__cplusplus) && !defined(CINTERFACE)
1463   
1464    MIDL_INTERFACE("9B7E4C01-342C-4106-A19F-4F2704F689F0")
1465    ID3D10Resource : public ID3D10DeviceChild
1466    {
1467    public:
1468        virtual void STDMETHODCALLTYPE GetType(
1469            /* [annotation] */
1470            __out  D3D10_RESOURCE_DIMENSION *rType) = 0;
1471       
1472        virtual void STDMETHODCALLTYPE SetEvictionPriority(
1473            /* [annotation] */
1474            __in  UINT EvictionPriority) = 0;
1475       
1476        virtual UINT STDMETHODCALLTYPE GetEvictionPriority( void) = 0;
1477       
1478    };
1479   
1480#else    /* C style interface */
1481
1482    typedef struct ID3D10ResourceVtbl
1483    {
1484        BEGIN_INTERFACE
1485       
1486        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1487            ID3D10Resource * This,
1488            /* [in] */ REFIID riid,
1489            /* [annotation][iid_is][out] */
1490            __RPC__deref_out  void **ppvObject);
1491       
1492        ULONG ( STDMETHODCALLTYPE *AddRef )(
1493            ID3D10Resource * This);
1494       
1495        ULONG ( STDMETHODCALLTYPE *Release )(
1496            ID3D10Resource * This);
1497       
1498        void ( STDMETHODCALLTYPE *GetDevice )(
1499            ID3D10Resource * This,
1500            /* [annotation] */
1501            __out  ID3D10Device **ppDevice);
1502       
1503        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1504            ID3D10Resource * This,
1505            /* [annotation] */
1506            __in  REFGUID guid,
1507            /* [annotation] */
1508            __inout  UINT *pDataSize,
1509            /* [annotation] */
1510            __out_bcount_opt(*pDataSize)  void *pData);
1511       
1512        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1513            ID3D10Resource * This,
1514            /* [annotation] */
1515            __in  REFGUID guid,
1516            /* [annotation] */
1517            __in  UINT DataSize,
1518            /* [annotation] */
1519            __in_bcount_opt(DataSize)  const void *pData);
1520       
1521        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1522            ID3D10Resource * This,
1523            /* [annotation] */
1524            __in  REFGUID guid,
1525            /* [annotation] */
1526            __in_opt  const IUnknown *pData);
1527       
1528        void ( STDMETHODCALLTYPE *GetType )(
1529            ID3D10Resource * This,
1530            /* [annotation] */
1531            __out  D3D10_RESOURCE_DIMENSION *rType);
1532       
1533        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
1534            ID3D10Resource * This,
1535            /* [annotation] */
1536            __in  UINT EvictionPriority);
1537       
1538        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
1539            ID3D10Resource * This);
1540       
1541        END_INTERFACE
1542    } ID3D10ResourceVtbl;
1543
1544    interface ID3D10Resource
1545    {
1546        CONST_VTBL struct ID3D10ResourceVtbl *lpVtbl;
1547    };
1548
1549   
1550
1551#ifdef COBJMACROS
1552
1553
1554#define ID3D10Resource_QueryInterface(This,riid,ppvObject)   \
1555    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1556
1557#define ID3D10Resource_AddRef(This)   \
1558    ( (This)->lpVtbl -> AddRef(This) )
1559
1560#define ID3D10Resource_Release(This)   \
1561    ( (This)->lpVtbl -> Release(This) )
1562
1563
1564#define ID3D10Resource_GetDevice(This,ppDevice)   \
1565    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1566
1567#define ID3D10Resource_GetPrivateData(This,guid,pDataSize,pData)   \
1568    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1569
1570#define ID3D10Resource_SetPrivateData(This,guid,DataSize,pData)   \
1571    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1572
1573#define ID3D10Resource_SetPrivateDataInterface(This,guid,pData)   \
1574    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1575
1576
1577#define ID3D10Resource_GetType(This,rType)   \
1578    ( (This)->lpVtbl -> GetType(This,rType) )
1579
1580#define ID3D10Resource_SetEvictionPriority(This,EvictionPriority)   \
1581    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
1582
1583#define ID3D10Resource_GetEvictionPriority(This)   \
1584    ( (This)->lpVtbl -> GetEvictionPriority(This) )
1585
1586#endif /* COBJMACROS */
1587
1588
1589#endif    /* C style interface */
1590
1591
1592
1593
1594#endif    /* __ID3D10Resource_INTERFACE_DEFINED__ */
1595
1596
1597/* interface __MIDL_itf_d3d10_0000_0005 */
1598/* [local] */
1599
1600typedef struct D3D10_BUFFER_DESC
1601    {
1602    UINT ByteWidth;
1603    D3D10_USAGE Usage;
1604    UINT BindFlags;
1605    UINT CPUAccessFlags;
1606    UINT MiscFlags;
1607    }    D3D10_BUFFER_DESC;
1608
1609#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus )
1610struct CD3D10_BUFFER_DESC : public D3D10_BUFFER_DESC
1611{
1612    CD3D10_BUFFER_DESC()
1613    {}
1614    explicit CD3D10_BUFFER_DESC( const D3D10_BUFFER_DESC& o ) :
1615        D3D10_BUFFER_DESC( o )
1616    {}
1617    explicit CD3D10_BUFFER_DESC(
1618        UINT byteWidth,
1619        UINT bindFlags,
1620        D3D10_USAGE usage = D3D10_USAGE_DEFAULT,
1621        UINT cpuaccessFlags = 0,
1622        UINT miscFlags = 0 )
1623    {
1624        ByteWidth = byteWidth;
1625        Usage = usage;
1626        BindFlags = bindFlags;
1627        CPUAccessFlags = cpuaccessFlags ;
1628        MiscFlags = miscFlags;
1629    }
1630    ~CD3D10_BUFFER_DESC() {}
1631    operator const D3D10_BUFFER_DESC&() const { return *this; }
1632};
1633#endif
1634
1635
1636extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0005_v0_0_c_ifspec;
1637extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0005_v0_0_s_ifspec;
1638
1639#ifndef __ID3D10Buffer_INTERFACE_DEFINED__
1640#define __ID3D10Buffer_INTERFACE_DEFINED__
1641
1642/* interface ID3D10Buffer */
1643/* [unique][local][object][uuid] */
1644
1645
1646EXTERN_C const IID IID_ID3D10Buffer;
1647
1648#if defined(__cplusplus) && !defined(CINTERFACE)
1649   
1650    MIDL_INTERFACE("9B7E4C02-342C-4106-A19F-4F2704F689F0")
1651    ID3D10Buffer : public ID3D10Resource
1652    {
1653    public:
1654        virtual HRESULT STDMETHODCALLTYPE Map(
1655            /* [annotation] */
1656            __in  D3D10_MAP MapType,
1657            /* [annotation] */
1658            __in  UINT MapFlags,
1659            /* [annotation] */
1660            __out  void **ppData) = 0;
1661       
1662        virtual void STDMETHODCALLTYPE Unmap( void) = 0;
1663       
1664        virtual void STDMETHODCALLTYPE GetDesc(
1665            /* [annotation] */
1666            __out  D3D10_BUFFER_DESC *pDesc) = 0;
1667       
1668    };
1669   
1670#else    /* C style interface */
1671
1672    typedef struct ID3D10BufferVtbl
1673    {
1674        BEGIN_INTERFACE
1675       
1676        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1677            ID3D10Buffer * This,
1678            /* [in] */ REFIID riid,
1679            /* [annotation][iid_is][out] */
1680            __RPC__deref_out  void **ppvObject);
1681       
1682        ULONG ( STDMETHODCALLTYPE *AddRef )(
1683            ID3D10Buffer * This);
1684       
1685        ULONG ( STDMETHODCALLTYPE *Release )(
1686            ID3D10Buffer * This);
1687       
1688        void ( STDMETHODCALLTYPE *GetDevice )(
1689            ID3D10Buffer * This,
1690            /* [annotation] */
1691            __out  ID3D10Device **ppDevice);
1692       
1693        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1694            ID3D10Buffer * This,
1695            /* [annotation] */
1696            __in  REFGUID guid,
1697            /* [annotation] */
1698            __inout  UINT *pDataSize,
1699            /* [annotation] */
1700            __out_bcount_opt(*pDataSize)  void *pData);
1701       
1702        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1703            ID3D10Buffer * This,
1704            /* [annotation] */
1705            __in  REFGUID guid,
1706            /* [annotation] */
1707            __in  UINT DataSize,
1708            /* [annotation] */
1709            __in_bcount_opt(DataSize)  const void *pData);
1710       
1711        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1712            ID3D10Buffer * This,
1713            /* [annotation] */
1714            __in  REFGUID guid,
1715            /* [annotation] */
1716            __in_opt  const IUnknown *pData);
1717       
1718        void ( STDMETHODCALLTYPE *GetType )(
1719            ID3D10Buffer * This,
1720            /* [annotation] */
1721            __out  D3D10_RESOURCE_DIMENSION *rType);
1722       
1723        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
1724            ID3D10Buffer * This,
1725            /* [annotation] */
1726            __in  UINT EvictionPriority);
1727       
1728        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
1729            ID3D10Buffer * This);
1730       
1731        HRESULT ( STDMETHODCALLTYPE *Map )(
1732            ID3D10Buffer * This,
1733            /* [annotation] */
1734            __in  D3D10_MAP MapType,
1735            /* [annotation] */
1736            __in  UINT MapFlags,
1737            /* [annotation] */
1738            __out  void **ppData);
1739       
1740        void ( STDMETHODCALLTYPE *Unmap )(
1741            ID3D10Buffer * This);
1742       
1743        void ( STDMETHODCALLTYPE *GetDesc )(
1744            ID3D10Buffer * This,
1745            /* [annotation] */
1746            __out  D3D10_BUFFER_DESC *pDesc);
1747       
1748        END_INTERFACE
1749    } ID3D10BufferVtbl;
1750
1751    interface ID3D10Buffer
1752    {
1753        CONST_VTBL struct ID3D10BufferVtbl *lpVtbl;
1754    };
1755
1756   
1757
1758#ifdef COBJMACROS
1759
1760
1761#define ID3D10Buffer_QueryInterface(This,riid,ppvObject)   \
1762    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1763
1764#define ID3D10Buffer_AddRef(This)   \
1765    ( (This)->lpVtbl -> AddRef(This) )
1766
1767#define ID3D10Buffer_Release(This)   \
1768    ( (This)->lpVtbl -> Release(This) )
1769
1770
1771#define ID3D10Buffer_GetDevice(This,ppDevice)   \
1772    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1773
1774#define ID3D10Buffer_GetPrivateData(This,guid,pDataSize,pData)   \
1775    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1776
1777#define ID3D10Buffer_SetPrivateData(This,guid,DataSize,pData)   \
1778    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1779
1780#define ID3D10Buffer_SetPrivateDataInterface(This,guid,pData)   \
1781    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1782
1783
1784#define ID3D10Buffer_GetType(This,rType)   \
1785    ( (This)->lpVtbl -> GetType(This,rType) )
1786
1787#define ID3D10Buffer_SetEvictionPriority(This,EvictionPriority)   \
1788    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
1789
1790#define ID3D10Buffer_GetEvictionPriority(This)   \
1791    ( (This)->lpVtbl -> GetEvictionPriority(This) )
1792
1793
1794#define ID3D10Buffer_Map(This,MapType,MapFlags,ppData)   \
1795    ( (This)->lpVtbl -> Map(This,MapType,MapFlags,ppData) )
1796
1797#define ID3D10Buffer_Unmap(This)   \
1798    ( (This)->lpVtbl -> Unmap(This) )
1799
1800#define ID3D10Buffer_GetDesc(This,pDesc)   \
1801    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1802
1803#endif /* COBJMACROS */
1804
1805
1806#endif    /* C style interface */
1807
1808
1809
1810
1811#endif    /* __ID3D10Buffer_INTERFACE_DEFINED__ */
1812
1813
1814/* interface __MIDL_itf_d3d10_0000_0006 */
1815/* [local] */
1816
1817typedef struct D3D10_TEXTURE1D_DESC
1818    {
1819    UINT Width;
1820    UINT MipLevels;
1821    UINT ArraySize;
1822    DXGI_FORMAT Format;
1823    D3D10_USAGE Usage;
1824    UINT BindFlags;
1825    UINT CPUAccessFlags;
1826    UINT MiscFlags;
1827    }    D3D10_TEXTURE1D_DESC;
1828
1829#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus )
1830struct CD3D10_TEXTURE1D_DESC : public D3D10_TEXTURE1D_DESC
1831{
1832    CD3D10_TEXTURE1D_DESC()
1833    {}
1834    explicit CD3D10_TEXTURE1D_DESC( const D3D10_TEXTURE1D_DESC& o ) :
1835        D3D10_TEXTURE1D_DESC( o )
1836    {}
1837    explicit CD3D10_TEXTURE1D_DESC(
1838        DXGI_FORMAT format,
1839        UINT width,
1840        UINT arraySize = 1,
1841        UINT mipLevels = 0,
1842        UINT bindFlags = D3D10_BIND_SHADER_RESOURCE,
1843        D3D10_USAGE usage = D3D10_USAGE_DEFAULT,
1844        UINT cpuaccessFlags= 0,
1845        UINT miscFlags = 0 )
1846    {
1847        Width = width;
1848        MipLevels = mipLevels;
1849        ArraySize = arraySize;
1850        Format = format;
1851        Usage = usage;
1852        BindFlags = bindFlags;
1853        CPUAccessFlags = cpuaccessFlags;
1854        MiscFlags = miscFlags;
1855    }
1856    ~CD3D10_TEXTURE1D_DESC() {}
1857    operator const D3D10_TEXTURE1D_DESC&() const { return *this; }
1858};
1859#endif
1860
1861
1862extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0006_v0_0_c_ifspec;
1863extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0006_v0_0_s_ifspec;
1864
1865#ifndef __ID3D10Texture1D_INTERFACE_DEFINED__
1866#define __ID3D10Texture1D_INTERFACE_DEFINED__
1867
1868/* interface ID3D10Texture1D */
1869/* [unique][local][object][uuid] */
1870
1871
1872EXTERN_C const IID IID_ID3D10Texture1D;
1873
1874#if defined(__cplusplus) && !defined(CINTERFACE)
1875   
1876    MIDL_INTERFACE("9B7E4C03-342C-4106-A19F-4F2704F689F0")
1877    ID3D10Texture1D : public ID3D10Resource
1878    {
1879    public:
1880        virtual HRESULT STDMETHODCALLTYPE Map(
1881            /* [annotation] */
1882            __in  UINT Subresource,
1883            /* [annotation] */
1884            __in  D3D10_MAP MapType,
1885            /* [annotation] */
1886            __in  UINT MapFlags,
1887            /* [annotation] */
1888            __out  void **ppData) = 0;
1889       
1890        virtual void STDMETHODCALLTYPE Unmap(
1891            /* [annotation] */
1892            __in  UINT Subresource) = 0;
1893       
1894        virtual void STDMETHODCALLTYPE GetDesc(
1895            /* [annotation] */
1896            __out  D3D10_TEXTURE1D_DESC *pDesc) = 0;
1897       
1898    };
1899   
1900#else    /* C style interface */
1901
1902    typedef struct ID3D10Texture1DVtbl
1903    {
1904        BEGIN_INTERFACE
1905       
1906        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1907            ID3D10Texture1D * This,
1908            /* [in] */ REFIID riid,
1909            /* [annotation][iid_is][out] */
1910            __RPC__deref_out  void **ppvObject);
1911       
1912        ULONG ( STDMETHODCALLTYPE *AddRef )(
1913            ID3D10Texture1D * This);
1914       
1915        ULONG ( STDMETHODCALLTYPE *Release )(
1916            ID3D10Texture1D * This);
1917       
1918        void ( STDMETHODCALLTYPE *GetDevice )(
1919            ID3D10Texture1D * This,
1920            /* [annotation] */
1921            __out  ID3D10Device **ppDevice);
1922       
1923        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1924            ID3D10Texture1D * This,
1925            /* [annotation] */
1926            __in  REFGUID guid,
1927            /* [annotation] */
1928            __inout  UINT *pDataSize,
1929            /* [annotation] */
1930            __out_bcount_opt(*pDataSize)  void *pData);
1931       
1932        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1933            ID3D10Texture1D * This,
1934            /* [annotation] */
1935            __in  REFGUID guid,
1936            /* [annotation] */
1937            __in  UINT DataSize,
1938            /* [annotation] */
1939            __in_bcount_opt(DataSize)  const void *pData);
1940       
1941        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1942            ID3D10Texture1D * This,
1943            /* [annotation] */
1944            __in  REFGUID guid,
1945            /* [annotation] */
1946            __in_opt  const IUnknown *pData);
1947       
1948        void ( STDMETHODCALLTYPE *GetType )(
1949            ID3D10Texture1D * This,
1950            /* [annotation] */
1951            __out  D3D10_RESOURCE_DIMENSION *rType);
1952       
1953        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
1954            ID3D10Texture1D * This,
1955            /* [annotation] */
1956            __in  UINT EvictionPriority);
1957       
1958        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
1959            ID3D10Texture1D * This);
1960       
1961        HRESULT ( STDMETHODCALLTYPE *Map )(
1962            ID3D10Texture1D * This,
1963            /* [annotation] */
1964            __in  UINT Subresource,
1965            /* [annotation] */
1966            __in  D3D10_MAP MapType,
1967            /* [annotation] */
1968            __in  UINT MapFlags,
1969            /* [annotation] */
1970            __out  void **ppData);
1971       
1972        void ( STDMETHODCALLTYPE *Unmap )(
1973            ID3D10Texture1D * This,
1974            /* [annotation] */
1975            __in  UINT Subresource);
1976       
1977        void ( STDMETHODCALLTYPE *GetDesc )(
1978            ID3D10Texture1D * This,
1979            /* [annotation] */
1980            __out  D3D10_TEXTURE1D_DESC *pDesc);
1981       
1982        END_INTERFACE
1983    } ID3D10Texture1DVtbl;
1984
1985    interface ID3D10Texture1D
1986    {
1987        CONST_VTBL struct ID3D10Texture1DVtbl *lpVtbl;
1988    };
1989
1990   
1991
1992#ifdef COBJMACROS
1993
1994
1995#define ID3D10Texture1D_QueryInterface(This,riid,ppvObject)   \
1996    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1997
1998#define ID3D10Texture1D_AddRef(This)   \
1999    ( (This)->lpVtbl -> AddRef(This) )
2000
2001#define ID3D10Texture1D_Release(This)   \
2002    ( (This)->lpVtbl -> Release(This) )
2003
2004
2005#define ID3D10Texture1D_GetDevice(This,ppDevice)   \
2006    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2007
2008#define ID3D10Texture1D_GetPrivateData(This,guid,pDataSize,pData)   \
2009    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2010
2011#define ID3D10Texture1D_SetPrivateData(This,guid,DataSize,pData)   \
2012    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2013
2014#define ID3D10Texture1D_SetPrivateDataInterface(This,guid,pData)   \
2015    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2016
2017
2018#define ID3D10Texture1D_GetType(This,rType)   \
2019    ( (This)->lpVtbl -> GetType(This,rType) )
2020
2021#define ID3D10Texture1D_SetEvictionPriority(This,EvictionPriority)   \
2022    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2023
2024#define ID3D10Texture1D_GetEvictionPriority(This)   \
2025    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2026
2027
2028#define ID3D10Texture1D_Map(This,Subresource,MapType,MapFlags,ppData)   \
2029    ( (This)->lpVtbl -> Map(This,Subresource,MapType,MapFlags,ppData) )
2030
2031#define ID3D10Texture1D_Unmap(This,Subresource)   \
2032    ( (This)->lpVtbl -> Unmap(This,Subresource) )
2033
2034#define ID3D10Texture1D_GetDesc(This,pDesc)   \
2035    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2036
2037#endif /* COBJMACROS */
2038
2039
2040#endif    /* C style interface */
2041
2042
2043
2044
2045#endif    /* __ID3D10Texture1D_INTERFACE_DEFINED__ */
2046
2047
2048/* interface __MIDL_itf_d3d10_0000_0007 */
2049/* [local] */
2050
2051typedef struct D3D10_TEXTURE2D_DESC
2052    {
2053    UINT Width;
2054    UINT Height;
2055    UINT MipLevels;
2056    UINT ArraySize;
2057    DXGI_FORMAT Format;
2058    DXGI_SAMPLE_DESC SampleDesc;
2059    D3D10_USAGE Usage;
2060    UINT BindFlags;
2061    UINT CPUAccessFlags;
2062    UINT MiscFlags;
2063    }    D3D10_TEXTURE2D_DESC;
2064
2065#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus )
2066struct CD3D10_TEXTURE2D_DESC : public D3D10_TEXTURE2D_DESC
2067{
2068    CD3D10_TEXTURE2D_DESC()
2069    {}
2070    explicit CD3D10_TEXTURE2D_DESC( const D3D10_TEXTURE2D_DESC& o ) :
2071        D3D10_TEXTURE2D_DESC( o )
2072    {}
2073    explicit CD3D10_TEXTURE2D_DESC(
2074        DXGI_FORMAT format,
2075        UINT width,
2076        UINT height,
2077        UINT arraySize = 1,
2078        UINT mipLevels = 0,
2079        UINT bindFlags = D3D10_BIND_SHADER_RESOURCE,
2080        D3D10_USAGE usage = D3D10_USAGE_DEFAULT,
2081        UINT cpuaccessFlags = 0,
2082        UINT sampleCount = 1,
2083        UINT sampleQuality = 0,
2084        UINT miscFlags = 0 )
2085    {
2086        Width = width;
2087        Height = height;
2088        MipLevels = mipLevels;
2089        ArraySize = arraySize;
2090        Format = format;
2091        SampleDesc.Count = sampleCount;
2092        SampleDesc.Quality = sampleQuality;
2093        Usage = usage;
2094        BindFlags = bindFlags;
2095        CPUAccessFlags = cpuaccessFlags;
2096        MiscFlags = miscFlags;
2097    }
2098    ~CD3D10_TEXTURE2D_DESC() {}
2099    operator const D3D10_TEXTURE2D_DESC&() const { return *this; }
2100};
2101#endif
2102typedef struct D3D10_MAPPED_TEXTURE2D
2103    {
2104    void *pData;
2105    UINT RowPitch;
2106    }    D3D10_MAPPED_TEXTURE2D;
2107
2108
2109
2110extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0007_v0_0_c_ifspec;
2111extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0007_v0_0_s_ifspec;
2112
2113#ifndef __ID3D10Texture2D_INTERFACE_DEFINED__
2114#define __ID3D10Texture2D_INTERFACE_DEFINED__
2115
2116/* interface ID3D10Texture2D */
2117/* [unique][local][object][uuid] */
2118
2119
2120EXTERN_C const IID IID_ID3D10Texture2D;
2121
2122#if defined(__cplusplus) && !defined(CINTERFACE)
2123   
2124    MIDL_INTERFACE("9B7E4C04-342C-4106-A19F-4F2704F689F0")
2125    ID3D10Texture2D : public ID3D10Resource
2126    {
2127    public:
2128        virtual HRESULT STDMETHODCALLTYPE Map(
2129            /* [annotation] */
2130            __in  UINT Subresource,
2131            /* [annotation] */
2132            __in  D3D10_MAP MapType,
2133            /* [annotation] */
2134            __in  UINT MapFlags,
2135            /* [annotation] */
2136            __out  D3D10_MAPPED_TEXTURE2D *pMappedTex2D) = 0;
2137       
2138        virtual void STDMETHODCALLTYPE Unmap(
2139            /* [annotation] */
2140            __in  UINT Subresource) = 0;
2141       
2142        virtual void STDMETHODCALLTYPE GetDesc(
2143            /* [annotation] */
2144            __out  D3D10_TEXTURE2D_DESC *pDesc) = 0;
2145       
2146    };
2147   
2148#else    /* C style interface */
2149
2150    typedef struct ID3D10Texture2DVtbl
2151    {
2152        BEGIN_INTERFACE
2153       
2154        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2155            ID3D10Texture2D * This,
2156            /* [in] */ REFIID riid,
2157            /* [annotation][iid_is][out] */
2158            __RPC__deref_out  void **ppvObject);
2159       
2160        ULONG ( STDMETHODCALLTYPE *AddRef )(
2161            ID3D10Texture2D * This);
2162       
2163        ULONG ( STDMETHODCALLTYPE *Release )(
2164            ID3D10Texture2D * This);
2165       
2166        void ( STDMETHODCALLTYPE *GetDevice )(
2167            ID3D10Texture2D * This,
2168            /* [annotation] */
2169            __out  ID3D10Device **ppDevice);
2170       
2171        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2172            ID3D10Texture2D * This,
2173            /* [annotation] */
2174            __in  REFGUID guid,
2175            /* [annotation] */
2176            __inout  UINT *pDataSize,
2177            /* [annotation] */
2178            __out_bcount_opt(*pDataSize)  void *pData);
2179       
2180        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2181            ID3D10Texture2D * This,
2182            /* [annotation] */
2183            __in  REFGUID guid,
2184            /* [annotation] */
2185            __in  UINT DataSize,
2186            /* [annotation] */
2187            __in_bcount_opt(DataSize)  const void *pData);
2188       
2189        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2190            ID3D10Texture2D * This,
2191            /* [annotation] */
2192            __in  REFGUID guid,
2193            /* [annotation] */
2194            __in_opt  const IUnknown *pData);
2195       
2196        void ( STDMETHODCALLTYPE *GetType )(
2197            ID3D10Texture2D * This,
2198            /* [annotation] */
2199            __out  D3D10_RESOURCE_DIMENSION *rType);
2200       
2201        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
2202            ID3D10Texture2D * This,
2203            /* [annotation] */
2204            __in  UINT EvictionPriority);
2205       
2206        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
2207            ID3D10Texture2D * This);
2208       
2209        HRESULT ( STDMETHODCALLTYPE *Map )(
2210            ID3D10Texture2D * This,
2211            /* [annotation] */
2212            __in  UINT Subresource,
2213            /* [annotation] */
2214            __in  D3D10_MAP MapType,
2215            /* [annotation] */
2216            __in  UINT MapFlags,
2217            /* [annotation] */
2218            __out  D3D10_MAPPED_TEXTURE2D *pMappedTex2D);
2219       
2220        void ( STDMETHODCALLTYPE *Unmap )(
2221            ID3D10Texture2D * This,
2222            /* [annotation] */
2223            __in  UINT Subresource);
2224       
2225        void ( STDMETHODCALLTYPE *GetDesc )(
2226            ID3D10Texture2D * This,
2227            /* [annotation] */
2228            __out  D3D10_TEXTURE2D_DESC *pDesc);
2229       
2230        END_INTERFACE
2231    } ID3D10Texture2DVtbl;
2232
2233    interface ID3D10Texture2D
2234    {
2235        CONST_VTBL struct ID3D10Texture2DVtbl *lpVtbl;
2236    };
2237
2238   
2239
2240#ifdef COBJMACROS
2241
2242
2243#define ID3D10Texture2D_QueryInterface(This,riid,ppvObject)   \
2244    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2245
2246#define ID3D10Texture2D_AddRef(This)   \
2247    ( (This)->lpVtbl -> AddRef(This) )
2248
2249#define ID3D10Texture2D_Release(This)   \
2250    ( (This)->lpVtbl -> Release(This) )
2251
2252
2253#define ID3D10Texture2D_GetDevice(This,ppDevice)   \
2254    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2255
2256#define ID3D10Texture2D_GetPrivateData(This,guid,pDataSize,pData)   \
2257    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2258
2259#define ID3D10Texture2D_SetPrivateData(This,guid,DataSize,pData)   \
2260    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2261
2262#define ID3D10Texture2D_SetPrivateDataInterface(This,guid,pData)   \
2263    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2264
2265
2266#define ID3D10Texture2D_GetType(This,rType)   \
2267    ( (This)->lpVtbl -> GetType(This,rType) )
2268
2269#define ID3D10Texture2D_SetEvictionPriority(This,EvictionPriority)   \
2270    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2271
2272#define ID3D10Texture2D_GetEvictionPriority(This)   \
2273    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2274
2275
2276#define ID3D10Texture2D_Map(This,Subresource,MapType,MapFlags,pMappedTex2D)   \
2277    ( (This)->lpVtbl -> Map(This,Subresource,MapType,MapFlags,pMappedTex2D) )
2278
2279#define ID3D10Texture2D_Unmap(This,Subresource)   \
2280    ( (This)->lpVtbl -> Unmap(This,Subresource) )
2281
2282#define ID3D10Texture2D_GetDesc(This,pDesc)   \
2283    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2284
2285#endif /* COBJMACROS */
2286
2287
2288#endif    /* C style interface */
2289
2290
2291
2292
2293#endif    /* __ID3D10Texture2D_INTERFACE_DEFINED__ */
2294
2295
2296/* interface __MIDL_itf_d3d10_0000_0008 */
2297/* [local] */
2298
2299typedef struct D3D10_TEXTURE3D_DESC
2300    {
2301    UINT Width;
2302    UINT Height;
2303    UINT Depth;
2304    UINT MipLevels;
2305    DXGI_FORMAT Format;
2306    D3D10_USAGE Usage;
2307    UINT BindFlags;
2308    UINT CPUAccessFlags;
2309    UINT MiscFlags;
2310    }    D3D10_TEXTURE3D_DESC;
2311
2312#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus )
2313struct CD3D10_TEXTURE3D_DESC : public D3D10_TEXTURE3D_DESC
2314{
2315    CD3D10_TEXTURE3D_DESC()
2316    {}
2317    explicit CD3D10_TEXTURE3D_DESC( const D3D10_TEXTURE3D_DESC& o ) :
2318        D3D10_TEXTURE3D_DESC( o )
2319    {}
2320    explicit CD3D10_TEXTURE3D_DESC(
2321        DXGI_FORMAT format,
2322        UINT width,
2323        UINT height,
2324        UINT depth,
2325        UINT mipLevels = 0,
2326        UINT bindFlags = D3D10_BIND_SHADER_RESOURCE,
2327        D3D10_USAGE usage = D3D10_USAGE_DEFAULT,
2328        UINT cpuaccessFlags = 0,
2329        UINT miscFlags = 0 )
2330    {
2331        Width = width;
2332        Height = height;
2333        Depth = depth;
2334        MipLevels = mipLevels;
2335        Format = format;
2336        Usage = usage;
2337        BindFlags = bindFlags;
2338        CPUAccessFlags = cpuaccessFlags;
2339        MiscFlags = miscFlags;
2340    }
2341    ~CD3D10_TEXTURE3D_DESC() {}
2342    operator const D3D10_TEXTURE3D_DESC&() const { return *this; }
2343};
2344#endif
2345typedef struct D3D10_MAPPED_TEXTURE3D
2346    {
2347    void *pData;
2348    UINT RowPitch;
2349    UINT DepthPitch;
2350    }    D3D10_MAPPED_TEXTURE3D;
2351
2352
2353
2354extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0008_v0_0_c_ifspec;
2355extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0008_v0_0_s_ifspec;
2356
2357#ifndef __ID3D10Texture3D_INTERFACE_DEFINED__
2358#define __ID3D10Texture3D_INTERFACE_DEFINED__
2359
2360/* interface ID3D10Texture3D */
2361/* [unique][local][object][uuid] */
2362
2363
2364EXTERN_C const IID IID_ID3D10Texture3D;
2365
2366#if defined(__cplusplus) && !defined(CINTERFACE)
2367   
2368    MIDL_INTERFACE("9B7E4C05-342C-4106-A19F-4F2704F689F0")
2369    ID3D10Texture3D : public ID3D10Resource
2370    {
2371    public:
2372        virtual HRESULT STDMETHODCALLTYPE Map(
2373            /* [annotation] */
2374            __in  UINT Subresource,
2375            /* [annotation] */
2376            __in  D3D10_MAP MapType,
2377            /* [annotation] */
2378            __in  UINT MapFlags,
2379            /* [annotation] */
2380            __out  D3D10_MAPPED_TEXTURE3D *pMappedTex3D) = 0;
2381       
2382        virtual void STDMETHODCALLTYPE Unmap(
2383            /* [annotation] */
2384            __in  UINT Subresource) = 0;
2385       
2386        virtual void STDMETHODCALLTYPE GetDesc(
2387            /* [annotation] */
2388            __out  D3D10_TEXTURE3D_DESC *pDesc) = 0;
2389       
2390    };
2391   
2392#else    /* C style interface */
2393
2394    typedef struct ID3D10Texture3DVtbl
2395    {
2396        BEGIN_INTERFACE
2397       
2398        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2399            ID3D10Texture3D * This,
2400            /* [in] */ REFIID riid,
2401            /* [annotation][iid_is][out] */
2402            __RPC__deref_out  void **ppvObject);
2403       
2404        ULONG ( STDMETHODCALLTYPE *AddRef )(
2405            ID3D10Texture3D * This);
2406       
2407        ULONG ( STDMETHODCALLTYPE *Release )(
2408            ID3D10Texture3D * This);
2409       
2410        void ( STDMETHODCALLTYPE *GetDevice )(
2411            ID3D10Texture3D * This,
2412            /* [annotation] */
2413            __out  ID3D10Device **ppDevice);
2414       
2415        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2416            ID3D10Texture3D * This,
2417            /* [annotation] */
2418            __in  REFGUID guid,
2419            /* [annotation] */
2420            __inout  UINT *pDataSize,
2421            /* [annotation] */
2422            __out_bcount_opt(*pDataSize)  void *pData);
2423       
2424        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2425            ID3D10Texture3D * This,
2426            /* [annotation] */
2427            __in  REFGUID guid,
2428            /* [annotation] */
2429            __in  UINT DataSize,
2430            /* [annotation] */
2431            __in_bcount_opt(DataSize)  const void *pData);
2432       
2433        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2434            ID3D10Texture3D * This,
2435            /* [annotation] */
2436            __in  REFGUID guid,
2437            /* [annotation] */
2438            __in_opt  const IUnknown *pData);
2439       
2440        void ( STDMETHODCALLTYPE *GetType )(
2441            ID3D10Texture3D * This,
2442            /* [annotation] */
2443            __out  D3D10_RESOURCE_DIMENSION *rType);
2444       
2445        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
2446            ID3D10Texture3D * This,
2447            /* [annotation] */
2448            __in  UINT EvictionPriority);
2449       
2450        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
2451            ID3D10Texture3D * This);
2452       
2453        HRESULT ( STDMETHODCALLTYPE *Map )(
2454            ID3D10Texture3D * This,
2455            /* [annotation] */
2456            __in  UINT Subresource,
2457            /* [annotation] */
2458            __in  D3D10_MAP MapType,
2459            /* [annotation] */
2460            __in  UINT MapFlags,
2461            /* [annotation] */
2462            __out  D3D10_MAPPED_TEXTURE3D *pMappedTex3D);
2463       
2464        void ( STDMETHODCALLTYPE *Unmap )(
2465            ID3D10Texture3D * This,
2466            /* [annotation] */
2467            __in  UINT Subresource);
2468       
2469        void ( STDMETHODCALLTYPE *GetDesc )(
2470            ID3D10Texture3D * This,
2471            /* [annotation] */
2472            __out  D3D10_TEXTURE3D_DESC *pDesc);
2473       
2474        END_INTERFACE
2475    } ID3D10Texture3DVtbl;
2476
2477    interface ID3D10Texture3D
2478    {
2479        CONST_VTBL struct ID3D10Texture3DVtbl *lpVtbl;
2480    };
2481
2482   
2483
2484#ifdef COBJMACROS
2485
2486
2487#define ID3D10Texture3D_QueryInterface(This,riid,ppvObject)   \
2488    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2489
2490#define ID3D10Texture3D_AddRef(This)   \
2491    ( (This)->lpVtbl -> AddRef(This) )
2492
2493#define ID3D10Texture3D_Release(This)   \
2494    ( (This)->lpVtbl -> Release(This) )
2495
2496
2497#define ID3D10Texture3D_GetDevice(This,ppDevice)   \
2498    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2499
2500#define ID3D10Texture3D_GetPrivateData(This,guid,pDataSize,pData)   \
2501    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2502
2503#define ID3D10Texture3D_SetPrivateData(This,guid,DataSize,pData)   \
2504    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2505
2506#define ID3D10Texture3D_SetPrivateDataInterface(This,guid,pData)   \
2507    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2508
2509
2510#define ID3D10Texture3D_GetType(This,rType)   \
2511    ( (This)->lpVtbl -> GetType(This,rType) )
2512
2513#define ID3D10Texture3D_SetEvictionPriority(This,EvictionPriority)   \
2514    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2515
2516#define ID3D10Texture3D_GetEvictionPriority(This)   \
2517    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2518
2519
2520#define ID3D10Texture3D_Map(This,Subresource,MapType,MapFlags,pMappedTex3D)   \
2521    ( (This)->lpVtbl -> Map(This,Subresource,MapType,MapFlags,pMappedTex3D) )
2522
2523#define ID3D10Texture3D_Unmap(This,Subresource)   \
2524    ( (This)->lpVtbl -> Unmap(This,Subresource) )
2525
2526#define ID3D10Texture3D_GetDesc(This,pDesc)   \
2527    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2528
2529#endif /* COBJMACROS */
2530
2531
2532#endif    /* C style interface */
2533
2534
2535
2536
2537#endif    /* __ID3D10Texture3D_INTERFACE_DEFINED__ */
2538
2539
2540/* interface __MIDL_itf_d3d10_0000_0009 */
2541/* [local] */
2542
2543typedef
2544enum D3D10_TEXTURECUBE_FACE
2545    {   D3D10_TEXTURECUBE_FACE_POSITIVE_X   = 0,
2546   D3D10_TEXTURECUBE_FACE_NEGATIVE_X   = 1,
2547   D3D10_TEXTURECUBE_FACE_POSITIVE_Y   = 2,
2548   D3D10_TEXTURECUBE_FACE_NEGATIVE_Y   = 3,
2549   D3D10_TEXTURECUBE_FACE_POSITIVE_Z   = 4,
2550   D3D10_TEXTURECUBE_FACE_NEGATIVE_Z   = 5
2551    }    D3D10_TEXTURECUBE_FACE;
2552
2553
2554
2555extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0009_v0_0_c_ifspec;
2556extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0009_v0_0_s_ifspec;
2557
2558#ifndef __ID3D10View_INTERFACE_DEFINED__
2559#define __ID3D10View_INTERFACE_DEFINED__
2560
2561/* interface ID3D10View */
2562/* [unique][local][object][uuid] */
2563
2564
2565EXTERN_C const IID IID_ID3D10View;
2566
2567#if defined(__cplusplus) && !defined(CINTERFACE)
2568   
2569    MIDL_INTERFACE("C902B03F-60A7-49BA-9936-2A3AB37A7E33")
2570    ID3D10View : public ID3D10DeviceChild
2571    {
2572    public:
2573        virtual void STDMETHODCALLTYPE GetResource(
2574            /* [annotation] */
2575            __out  ID3D10Resource **ppResource) = 0;
2576       
2577    };
2578   
2579#else    /* C style interface */
2580
2581    typedef struct ID3D10ViewVtbl
2582    {
2583        BEGIN_INTERFACE
2584       
2585        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2586            ID3D10View * This,
2587            /* [in] */ REFIID riid,
2588            /* [annotation][iid_is][out] */
2589            __RPC__deref_out  void **ppvObject);
2590       
2591        ULONG ( STDMETHODCALLTYPE *AddRef )(
2592            ID3D10View * This);
2593       
2594        ULONG ( STDMETHODCALLTYPE *Release )(
2595            ID3D10View * This);
2596       
2597        void ( STDMETHODCALLTYPE *GetDevice )(
2598            ID3D10View * This,
2599            /* [annotation] */
2600            __out  ID3D10Device **ppDevice);
2601       
2602        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2603            ID3D10View * This,
2604            /* [annotation] */
2605            __in  REFGUID guid,
2606            /* [annotation] */
2607            __inout  UINT *pDataSize,
2608            /* [annotation] */
2609            __out_bcount_opt(*pDataSize)  void *pData);
2610       
2611        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2612            ID3D10View * This,
2613            /* [annotation] */
2614            __in  REFGUID guid,
2615            /* [annotation] */
2616            __in  UINT DataSize,
2617            /* [annotation] */
2618            __in_bcount_opt(DataSize)  const void *pData);
2619       
2620        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2621            ID3D10View * This,
2622            /* [annotation] */
2623            __in  REFGUID guid,
2624            /* [annotation] */
2625            __in_opt  const IUnknown *pData);
2626       
2627        void ( STDMETHODCALLTYPE *GetResource )(
2628            ID3D10View * This,
2629            /* [annotation] */
2630            __out  ID3D10Resource **ppResource);
2631       
2632        END_INTERFACE
2633    } ID3D10ViewVtbl;
2634
2635    interface ID3D10View
2636    {
2637        CONST_VTBL struct ID3D10ViewVtbl *lpVtbl;
2638    };
2639
2640   
2641
2642#ifdef COBJMACROS
2643
2644
2645#define ID3D10View_QueryInterface(This,riid,ppvObject)   \
2646    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2647
2648#define ID3D10View_AddRef(This)   \
2649    ( (This)->lpVtbl -> AddRef(This) )
2650
2651#define ID3D10View_Release(This)   \
2652    ( (This)->lpVtbl -> Release(This) )
2653
2654
2655#define ID3D10View_GetDevice(This,ppDevice)   \
2656    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2657
2658#define ID3D10View_GetPrivateData(This,guid,pDataSize,pData)   \
2659    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2660
2661#define ID3D10View_SetPrivateData(This,guid,DataSize,pData)   \
2662    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2663
2664#define ID3D10View_SetPrivateDataInterface(This,guid,pData)   \
2665    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2666
2667
2668#define ID3D10View_GetResource(This,ppResource)   \
2669    ( (This)->lpVtbl -> GetResource(This,ppResource) )
2670
2671#endif /* COBJMACROS */
2672
2673
2674#endif    /* C style interface */
2675
2676
2677
2678
2679#endif    /* __ID3D10View_INTERFACE_DEFINED__ */
2680
2681
2682/* interface __MIDL_itf_d3d10_0000_0010 */
2683/* [local] */
2684
2685typedef struct D3D10_BUFFER_SRV
2686    {
2687    union
2688        {
2689        UINT FirstElement;
2690        UINT ElementOffset;
2691        }    ;
2692    union
2693        {
2694        UINT NumElements;
2695        UINT ElementWidth;
2696        }    ;
2697    }    D3D10_BUFFER_SRV;
2698
2699typedef struct D3D10_TEX1D_SRV
2700    {
2701    UINT MostDetailedMip;
2702    UINT MipLevels;
2703    }    D3D10_TEX1D_SRV;
2704
2705typedef struct D3D10_TEX1D_ARRAY_SRV
2706    {
2707    UINT MostDetailedMip;
2708    UINT MipLevels;
2709    UINT FirstArraySlice;
2710    UINT ArraySize;
2711    }    D3D10_TEX1D_ARRAY_SRV;
2712
2713typedef struct D3D10_TEX2D_SRV
2714    {
2715    UINT MostDetailedMip;
2716    UINT MipLevels;
2717    }    D3D10_TEX2D_SRV;
2718
2719typedef struct D3D10_TEX2D_ARRAY_SRV
2720    {
2721    UINT MostDetailedMip;
2722    UINT MipLevels;
2723    UINT FirstArraySlice;
2724    UINT ArraySize;
2725    }    D3D10_TEX2D_ARRAY_SRV;
2726
2727typedef struct D3D10_TEX3D_SRV
2728    {
2729    UINT MostDetailedMip;
2730    UINT MipLevels;
2731    }    D3D10_TEX3D_SRV;
2732
2733typedef struct D3D10_TEXCUBE_SRV
2734    {
2735    UINT MostDetailedMip;
2736    UINT MipLevels;
2737    }    D3D10_TEXCUBE_SRV;
2738
2739typedef struct D3D10_TEX2DMS_SRV
2740    {
2741    UINT UnusedField_NothingToDefine;
2742    }    D3D10_TEX2DMS_SRV;
2743
2744typedef struct D3D10_TEX2DMS_ARRAY_SRV
2745    {
2746    UINT FirstArraySlice;
2747    UINT ArraySize;
2748    }    D3D10_TEX2DMS_ARRAY_SRV;
2749
2750typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC
2751    {
2752    DXGI_FORMAT Format;
2753    D3D10_SRV_DIMENSION ViewDimension;
2754    union
2755        {
2756        D3D10_BUFFER_SRV Buffer;
2757        D3D10_TEX1D_SRV Texture1D;
2758        D3D10_TEX1D_ARRAY_SRV Texture1DArray;
2759        D3D10_TEX2D_SRV Texture2D;
2760        D3D10_TEX2D_ARRAY_SRV Texture2DArray;
2761        D3D10_TEX2DMS_SRV Texture2DMS;
2762        D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
2763        D3D10_TEX3D_SRV Texture3D;
2764        D3D10_TEXCUBE_SRV TextureCube;
2765        }    ;
2766    }    D3D10_SHADER_RESOURCE_VIEW_DESC;
2767
2768
2769
2770extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0010_v0_0_c_ifspec;
2771extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0010_v0_0_s_ifspec;
2772
2773#ifndef __ID3D10ShaderResourceView_INTERFACE_DEFINED__
2774#define __ID3D10ShaderResourceView_INTERFACE_DEFINED__
2775
2776/* interface ID3D10ShaderResourceView */
2777/* [unique][local][object][uuid] */
2778
2779
2780EXTERN_C const IID IID_ID3D10ShaderResourceView;
2781
2782#if defined(__cplusplus) && !defined(CINTERFACE)
2783   
2784    MIDL_INTERFACE("9B7E4C07-342C-4106-A19F-4F2704F689F0")
2785    ID3D10ShaderResourceView : public ID3D10View
2786    {
2787    public:
2788        virtual void STDMETHODCALLTYPE GetDesc(
2789            /* [annotation] */
2790            __out  D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc) = 0;
2791       
2792    };
2793   
2794#else    /* C style interface */
2795
2796    typedef struct ID3D10ShaderResourceViewVtbl
2797    {
2798        BEGIN_INTERFACE
2799       
2800        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2801            ID3D10ShaderResourceView * This,
2802            /* [in] */ REFIID riid,
2803            /* [annotation][iid_is][out] */
2804            __RPC__deref_out  void **ppvObject);
2805       
2806        ULONG ( STDMETHODCALLTYPE *AddRef )(
2807            ID3D10ShaderResourceView * This);
2808       
2809        ULONG ( STDMETHODCALLTYPE *Release )(
2810            ID3D10ShaderResourceView * This);
2811       
2812        void ( STDMETHODCALLTYPE *GetDevice )(
2813            ID3D10ShaderResourceView * This,
2814            /* [annotation] */
2815            __out  ID3D10Device **ppDevice);
2816       
2817        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2818            ID3D10ShaderResourceView * This,
2819            /* [annotation] */
2820            __in  REFGUID guid,
2821            /* [annotation] */
2822            __inout  UINT *pDataSize,
2823            /* [annotation] */
2824            __out_bcount_opt(*pDataSize)  void *pData);
2825       
2826        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2827            ID3D10ShaderResourceView * This,
2828            /* [annotation] */
2829            __in  REFGUID guid,
2830            /* [annotation] */
2831            __in  UINT DataSize,
2832            /* [annotation] */
2833            __in_bcount_opt(DataSize)  const void *pData);
2834       
2835        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2836            ID3D10ShaderResourceView * This,
2837            /* [annotation] */
2838            __in  REFGUID guid,
2839            /* [annotation] */
2840            __in_opt  const IUnknown *pData);
2841       
2842        void ( STDMETHODCALLTYPE *GetResource )(
2843            ID3D10ShaderResourceView * This,
2844            /* [annotation] */
2845            __out  ID3D10Resource **ppResource);
2846       
2847        void ( STDMETHODCALLTYPE *GetDesc )(
2848            ID3D10ShaderResourceView * This,
2849            /* [annotation] */
2850            __out  D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
2851       
2852        END_INTERFACE
2853    } ID3D10ShaderResourceViewVtbl;
2854
2855    interface ID3D10ShaderResourceView
2856    {
2857        CONST_VTBL struct ID3D10ShaderResourceViewVtbl *lpVtbl;
2858    };
2859
2860   
2861
2862#ifdef COBJMACROS
2863
2864
2865#define ID3D10ShaderResourceView_QueryInterface(This,riid,ppvObject)   \
2866    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2867
2868#define ID3D10ShaderResourceView_AddRef(This)   \
2869    ( (This)->lpVtbl -> AddRef(This) )
2870
2871#define ID3D10ShaderResourceView_Release(This)   \
2872    ( (This)->lpVtbl -> Release(This) )
2873
2874
2875#define ID3D10ShaderResourceView_GetDevice(This,ppDevice)   \
2876    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2877
2878#define ID3D10ShaderResourceView_GetPrivateData(This,guid,pDataSize,pData)   \
2879    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2880
2881#define ID3D10ShaderResourceView_SetPrivateData(This,guid,DataSize,pData)   \
2882    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2883
2884#define ID3D10ShaderResourceView_SetPrivateDataInterface(This,guid,pData)   \
2885    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2886
2887
2888#define ID3D10ShaderResourceView_GetResource(This,ppResource)   \
2889    ( (This)->lpVtbl -> GetResource(This,ppResource) )
2890
2891
2892#define ID3D10ShaderResourceView_GetDesc(This,pDesc)   \
2893    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2894
2895#endif /* COBJMACROS */
2896
2897
2898#endif    /* C style interface */
2899
2900
2901
2902
2903#endif    /* __ID3D10ShaderResourceView_INTERFACE_DEFINED__ */
2904
2905
2906/* interface __MIDL_itf_d3d10_0000_0011 */
2907/* [local] */
2908
2909typedef struct D3D10_BUFFER_RTV
2910    {
2911    union
2912        {
2913        UINT FirstElement;
2914        UINT ElementOffset;
2915        }    ;
2916    union
2917        {
2918        UINT NumElements;
2919        UINT ElementWidth;
2920        }    ;
2921    }    D3D10_BUFFER_RTV;
2922
2923typedef struct D3D10_TEX1D_RTV
2924    {
2925    UINT MipSlice;
2926    }    D3D10_TEX1D_RTV;
2927
2928typedef struct D3D10_TEX1D_ARRAY_RTV
2929    {
2930    UINT MipSlice;
2931    UINT FirstArraySlice;
2932    UINT ArraySize;
2933    }    D3D10_TEX1D_ARRAY_RTV;
2934
2935typedef struct D3D10_TEX2D_RTV
2936    {
2937    UINT MipSlice;
2938    }    D3D10_TEX2D_RTV;
2939
2940typedef struct D3D10_TEX2DMS_RTV
2941    {
2942    UINT UnusedField_NothingToDefine;
2943    }    D3D10_TEX2DMS_RTV;
2944
2945typedef struct D3D10_TEX2D_ARRAY_RTV
2946    {
2947    UINT MipSlice;
2948    UINT FirstArraySlice;
2949    UINT ArraySize;
2950    }    D3D10_TEX2D_ARRAY_RTV;
2951
2952typedef struct D3D10_TEX2DMS_ARRAY_RTV
2953    {
2954    UINT FirstArraySlice;
2955    UINT ArraySize;
2956    }    D3D10_TEX2DMS_ARRAY_RTV;
2957
2958typedef struct D3D10_TEX3D_RTV
2959    {
2960    UINT MipSlice;
2961    UINT FirstWSlice;
2962    UINT WSize;
2963    }    D3D10_TEX3D_RTV;
2964
2965typedef struct D3D10_RENDER_TARGET_VIEW_DESC
2966    {
2967    DXGI_FORMAT Format;
2968    D3D10_RTV_DIMENSION ViewDimension;
2969    union
2970        {
2971        D3D10_BUFFER_RTV Buffer;
2972        D3D10_TEX1D_RTV Texture1D;
2973        D3D10_TEX1D_ARRAY_RTV Texture1DArray;
2974        D3D10_TEX2D_RTV Texture2D;
2975        D3D10_TEX2D_ARRAY_RTV Texture2DArray;
2976        D3D10_TEX2DMS_RTV Texture2DMS;
2977        D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray;
2978        D3D10_TEX3D_RTV Texture3D;
2979        }    ;
2980    }    D3D10_RENDER_TARGET_VIEW_DESC;
2981
2982
2983
2984extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0011_v0_0_c_ifspec;
2985extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0011_v0_0_s_ifspec;
2986
2987#ifndef __ID3D10RenderTargetView_INTERFACE_DEFINED__
2988#define __ID3D10RenderTargetView_INTERFACE_DEFINED__
2989
2990/* interface ID3D10RenderTargetView */
2991/* [unique][local][object][uuid] */
2992
2993
2994EXTERN_C const IID IID_ID3D10RenderTargetView;
2995
2996#if defined(__cplusplus) && !defined(CINTERFACE)
2997   
2998    MIDL_INTERFACE("9B7E4C08-342C-4106-A19F-4F2704F689F0")
2999    ID3D10RenderTargetView : public ID3D10View
3000    {
3001    public:
3002        virtual void STDMETHODCALLTYPE GetDesc(
3003            /* [annotation] */
3004            __out  D3D10_RENDER_TARGET_VIEW_DESC *pDesc) = 0;
3005       
3006    };
3007   
3008#else    /* C style interface */
3009
3010    typedef struct ID3D10RenderTargetViewVtbl
3011    {
3012        BEGIN_INTERFACE
3013       
3014        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3015            ID3D10RenderTargetView * This,
3016            /* [in] */ REFIID riid,
3017            /* [annotation][iid_is][out] */
3018            __RPC__deref_out  void **ppvObject);
3019       
3020        ULONG ( STDMETHODCALLTYPE *AddRef )(
3021            ID3D10RenderTargetView * This);
3022       
3023        ULONG ( STDMETHODCALLTYPE *Release )(
3024            ID3D10RenderTargetView * This);
3025       
3026        void ( STDMETHODCALLTYPE *GetDevice )(
3027            ID3D10RenderTargetView * This,
3028            /* [annotation] */
3029            __out  ID3D10Device **ppDevice);
3030       
3031        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3032            ID3D10RenderTargetView * This,
3033            /* [annotation] */
3034            __in  REFGUID guid,
3035            /* [annotation] */
3036            __inout  UINT *pDataSize,
3037            /* [annotation] */
3038            __out_bcount_opt(*pDataSize)  void *pData);
3039       
3040        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3041            ID3D10RenderTargetView * This,
3042            /* [annotation] */
3043            __in  REFGUID guid,
3044            /* [annotation] */
3045            __in  UINT DataSize,
3046            /* [annotation] */
3047            __in_bcount_opt(DataSize)  const void *pData);
3048       
3049        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3050            ID3D10RenderTargetView * This,
3051            /* [annotation] */
3052            __in  REFGUID guid,
3053            /* [annotation] */
3054            __in_opt  const IUnknown *pData);
3055       
3056        void ( STDMETHODCALLTYPE *GetResource )(
3057            ID3D10RenderTargetView * This,
3058            /* [annotation] */
3059            __out  ID3D10Resource **ppResource);
3060       
3061        void ( STDMETHODCALLTYPE *GetDesc )(
3062            ID3D10RenderTargetView * This,
3063            /* [annotation] */
3064            __out  D3D10_RENDER_TARGET_VIEW_DESC *pDesc);
3065       
3066        END_INTERFACE
3067    } ID3D10RenderTargetViewVtbl;
3068
3069    interface ID3D10RenderTargetView
3070    {
3071        CONST_VTBL struct ID3D10RenderTargetViewVtbl *lpVtbl;
3072    };
3073
3074   
3075
3076#ifdef COBJMACROS
3077
3078
3079#define ID3D10RenderTargetView_QueryInterface(This,riid,ppvObject)   \
3080    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3081
3082#define ID3D10RenderTargetView_AddRef(This)   \
3083    ( (This)->lpVtbl -> AddRef(This) )
3084
3085#define ID3D10RenderTargetView_Release(This)   \
3086    ( (This)->lpVtbl -> Release(This) )
3087
3088
3089#define ID3D10RenderTargetView_GetDevice(This,ppDevice)   \
3090    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3091
3092#define ID3D10RenderTargetView_GetPrivateData(This,guid,pDataSize,pData)   \
3093    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3094
3095#define ID3D10RenderTargetView_SetPrivateData(This,guid,DataSize,pData)   \
3096    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3097
3098#define ID3D10RenderTargetView_SetPrivateDataInterface(This,guid,pData)   \
3099    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3100
3101
3102#define ID3D10RenderTargetView_GetResource(This,ppResource)   \
3103    ( (This)->lpVtbl -> GetResource(This,ppResource) )
3104
3105
3106#define ID3D10RenderTargetView_GetDesc(This,pDesc)   \
3107    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
3108
3109#endif /* COBJMACROS */
3110
3111
3112#endif    /* C style interface */
3113
3114
3115
3116
3117#endif    /* __ID3D10RenderTargetView_INTERFACE_DEFINED__ */
3118
3119
3120/* interface __MIDL_itf_d3d10_0000_0012 */
3121/* [local] */
3122
3123typedef struct D3D10_TEX1D_DSV
3124    {
3125    UINT MipSlice;
3126    }    D3D10_TEX1D_DSV;
3127
3128typedef struct D3D10_TEX1D_ARRAY_DSV
3129    {
3130    UINT MipSlice;
3131    UINT FirstArraySlice;
3132    UINT ArraySize;
3133    }    D3D10_TEX1D_ARRAY_DSV;
3134
3135typedef struct D3D10_TEX2D_DSV
3136    {
3137    UINT MipSlice;
3138    }    D3D10_TEX2D_DSV;
3139
3140typedef struct D3D10_TEX2D_ARRAY_DSV
3141    {
3142    UINT MipSlice;
3143    UINT FirstArraySlice;
3144    UINT ArraySize;
3145    }    D3D10_TEX2D_ARRAY_DSV;
3146
3147typedef struct D3D10_TEX2DMS_DSV
3148    {
3149    UINT UnusedField_NothingToDefine;
3150    }    D3D10_TEX2DMS_DSV;
3151
3152typedef struct D3D10_TEX2DMS_ARRAY_DSV
3153    {
3154    UINT FirstArraySlice;
3155    UINT ArraySize;
3156    }    D3D10_TEX2DMS_ARRAY_DSV;
3157
3158typedef struct D3D10_DEPTH_STENCIL_VIEW_DESC
3159    {
3160    DXGI_FORMAT Format;
3161    D3D10_DSV_DIMENSION ViewDimension;
3162    union
3163        {
3164        D3D10_TEX1D_DSV Texture1D;
3165        D3D10_TEX1D_ARRAY_DSV Texture1DArray;
3166        D3D10_TEX2D_DSV Texture2D;
3167        D3D10_TEX2D_ARRAY_DSV Texture2DArray;
3168        D3D10_TEX2DMS_DSV Texture2DMS;
3169        D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray;
3170        }    ;
3171    }    D3D10_DEPTH_STENCIL_VIEW_DESC;
3172
3173
3174
3175extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0012_v0_0_c_ifspec;
3176extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0012_v0_0_s_ifspec;
3177
3178#ifndef __ID3D10DepthStencilView_INTERFACE_DEFINED__
3179#define __ID3D10DepthStencilView_INTERFACE_DEFINED__
3180
3181/* interface ID3D10DepthStencilView */
3182/* [unique][local][object][uuid] */
3183
3184
3185EXTERN_C const IID IID_ID3D10DepthStencilView;
3186
3187#if defined(__cplusplus) && !defined(CINTERFACE)
3188   
3189    MIDL_INTERFACE("9B7E4C09-342C-4106-A19F-4F2704F689F0")
3190    ID3D10DepthStencilView : public ID3D10View
3191    {
3192    public:
3193        virtual void STDMETHODCALLTYPE GetDesc(
3194            /* [annotation] */
3195            __out  D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc) = 0;
3196       
3197    };
3198   
3199#else    /* C style interface */
3200
3201    typedef struct ID3D10DepthStencilViewVtbl
3202    {
3203        BEGIN_INTERFACE
3204       
3205        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3206            ID3D10DepthStencilView * This,
3207            /* [in] */ REFIID riid,
3208            /* [annotation][iid_is][out] */
3209            __RPC__deref_out  void **ppvObject);
3210       
3211        ULONG ( STDMETHODCALLTYPE *AddRef )(
3212            ID3D10DepthStencilView * This);
3213       
3214        ULONG ( STDMETHODCALLTYPE *Release )(
3215            ID3D10DepthStencilView * This);
3216       
3217        void ( STDMETHODCALLTYPE *GetDevice )(
3218            ID3D10DepthStencilView * This,
3219            /* [annotation] */
3220            __out  ID3D10Device **ppDevice);
3221       
3222        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3223            ID3D10DepthStencilView * This,
3224            /* [annotation] */
3225            __in  REFGUID guid,
3226            /* [annotation] */
3227            __inout  UINT *pDataSize,
3228            /* [annotation] */
3229            __out_bcount_opt(*pDataSize)  void *pData);
3230       
3231        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3232            ID3D10DepthStencilView * This,
3233            /* [annotation] */
3234            __in  REFGUID guid,
3235            /* [annotation] */
3236            __in  UINT DataSize,
3237            /* [annotation] */
3238            __in_bcount_opt(DataSize)  const void *pData);
3239       
3240        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3241            ID3D10DepthStencilView * This,
3242            /* [annotation] */
3243            __in  REFGUID guid,
3244            /* [annotation] */
3245            __in_opt  const IUnknown *pData);
3246       
3247        void ( STDMETHODCALLTYPE *GetResource )(
3248            ID3D10DepthStencilView * This,
3249            /* [annotation] */
3250            __out  ID3D10Resource **ppResource);
3251       
3252        void ( STDMETHODCALLTYPE *GetDesc )(
3253            ID3D10DepthStencilView * This,
3254            /* [annotation] */
3255            __out  D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc);
3256       
3257        END_INTERFACE
3258    } ID3D10DepthStencilViewVtbl;
3259
3260    interface ID3D10DepthStencilView
3261    {
3262        CONST_VTBL struct ID3D10DepthStencilViewVtbl *lpVtbl;
3263    };
3264
3265   
3266
3267#ifdef COBJMACROS
3268
3269
3270#define ID3D10DepthStencilView_QueryInterface(This,riid,ppvObject)   \
3271    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3272
3273#define ID3D10DepthStencilView_AddRef(This)   \
3274    ( (This)->lpVtbl -> AddRef(This) )
3275
3276#define ID3D10DepthStencilView_Release(This)   \
3277    ( (This)->lpVtbl -> Release(This) )
3278
3279
3280#define ID3D10DepthStencilView_GetDevice(This,ppDevice)   \
3281    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3282
3283#define ID3D10DepthStencilView_GetPrivateData(This,guid,pDataSize,pData)   \
3284    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3285
3286#define ID3D10DepthStencilView_SetPrivateData(This,guid,DataSize,pData)   \
3287    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3288
3289#define ID3D10DepthStencilView_SetPrivateDataInterface(This,guid,pData)   \
3290    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3291
3292
3293#define ID3D10DepthStencilView_GetResource(This,ppResource)   \
3294    ( (This)->lpVtbl -> GetResource(This,ppResource) )
3295
3296
3297#define ID3D10DepthStencilView_GetDesc(This,pDesc)   \
3298    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
3299
3300#endif /* COBJMACROS */
3301
3302
3303#endif    /* C style interface */
3304
3305
3306
3307
3308#endif    /* __ID3D10DepthStencilView_INTERFACE_DEFINED__ */
3309
3310
3311#ifndef __ID3D10VertexShader_INTERFACE_DEFINED__
3312#define __ID3D10VertexShader_INTERFACE_DEFINED__
3313
3314/* interface ID3D10VertexShader */
3315/* [unique][local][object][uuid] */
3316
3317
3318EXTERN_C const IID IID_ID3D10VertexShader;
3319
3320#if defined(__cplusplus) && !defined(CINTERFACE)
3321   
3322    MIDL_INTERFACE("9B7E4C0A-342C-4106-A19F-4F2704F689F0")
3323    ID3D10VertexShader : public ID3D10DeviceChild
3324    {
3325    public:
3326    };
3327   
3328#else    /* C style interface */
3329
3330    typedef struct ID3D10VertexShaderVtbl
3331    {
3332        BEGIN_INTERFACE
3333       
3334        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3335            ID3D10VertexShader * This,
3336            /* [in] */ REFIID riid,
3337            /* [annotation][iid_is][out] */
3338            __RPC__deref_out  void **ppvObject);
3339       
3340        ULONG ( STDMETHODCALLTYPE *AddRef )(
3341            ID3D10VertexShader * This);
3342       
3343        ULONG ( STDMETHODCALLTYPE *Release )(
3344            ID3D10VertexShader * This);
3345       
3346        void ( STDMETHODCALLTYPE *GetDevice )(
3347            ID3D10VertexShader * This,
3348            /* [annotation] */
3349            __out  ID3D10Device **ppDevice);
3350       
3351        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3352            ID3D10VertexShader * This,
3353            /* [annotation] */
3354            __in  REFGUID guid,
3355            /* [annotation] */
3356            __inout  UINT *pDataSize,
3357            /* [annotation] */
3358            __out_bcount_opt(*pDataSize)  void *pData);
3359       
3360        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3361            ID3D10VertexShader * This,
3362            /* [annotation] */
3363            __in  REFGUID guid,
3364            /* [annotation] */
3365            __in  UINT DataSize,
3366            /* [annotation] */
3367            __in_bcount_opt(DataSize)  const void *pData);
3368       
3369        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3370            ID3D10VertexShader * This,
3371            /* [annotation] */
3372            __in  REFGUID guid,
3373            /* [annotation] */
3374            __in_opt  const IUnknown *pData);
3375       
3376        END_INTERFACE
3377    } ID3D10VertexShaderVtbl;
3378
3379    interface ID3D10VertexShader
3380    {
3381        CONST_VTBL struct ID3D10VertexShaderVtbl *lpVtbl;
3382    };
3383
3384   
3385
3386#ifdef COBJMACROS
3387
3388
3389#define ID3D10VertexShader_QueryInterface(This,riid,ppvObject)   \
3390    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3391
3392#define ID3D10VertexShader_AddRef(This)   \
3393    ( (This)->lpVtbl -> AddRef(This) )
3394
3395#define ID3D10VertexShader_Release(This)   \
3396    ( (This)->lpVtbl -> Release(This) )
3397
3398
3399#define ID3D10VertexShader_GetDevice(This,ppDevice)   \
3400    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3401
3402#define ID3D10VertexShader_GetPrivateData(This,guid,pDataSize,pData)   \
3403    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3404
3405#define ID3D10VertexShader_SetPrivateData(This,guid,DataSize,pData)   \
3406    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3407
3408#define ID3D10VertexShader_SetPrivateDataInterface(This,guid,pData)   \
3409    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3410
3411
3412#endif /* COBJMACROS */
3413
3414
3415#endif    /* C style interface */
3416
3417
3418
3419
3420#endif    /* __ID3D10VertexShader_INTERFACE_DEFINED__ */
3421
3422
3423#ifndef __ID3D10GeometryShader_INTERFACE_DEFINED__
3424#define __ID3D10GeometryShader_INTERFACE_DEFINED__
3425
3426/* interface ID3D10GeometryShader */
3427/* [unique][local][object][uuid] */
3428
3429
3430EXTERN_C const IID IID_ID3D10GeometryShader;
3431
3432#if defined(__cplusplus) && !defined(CINTERFACE)
3433   
3434    MIDL_INTERFACE("6316BE88-54CD-4040-AB44-20461BC81F68")
3435    ID3D10GeometryShader : public ID3D10DeviceChild
3436    {
3437    public:
3438    };
3439   
3440#else    /* C style interface */
3441
3442    typedef struct ID3D10GeometryShaderVtbl
3443    {
3444        BEGIN_INTERFACE
3445       
3446        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3447            ID3D10GeometryShader * This,
3448            /* [in] */ REFIID riid,
3449            /* [annotation][iid_is][out] */
3450            __RPC__deref_out  void **ppvObject);
3451       
3452        ULONG ( STDMETHODCALLTYPE *AddRef )(
3453            ID3D10GeometryShader * This);
3454       
3455        ULONG ( STDMETHODCALLTYPE *Release )(
3456            ID3D10GeometryShader * This);
3457       
3458        void ( STDMETHODCALLTYPE *GetDevice )(
3459            ID3D10GeometryShader * This,
3460            /* [annotation] */
3461            __out  ID3D10Device **ppDevice);
3462       
3463        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3464            ID3D10GeometryShader * This,
3465            /* [annotation] */
3466            __in  REFGUID guid,
3467            /* [annotation] */
3468            __inout  UINT *pDataSize,
3469            /* [annotation] */
3470            __out_bcount_opt(*pDataSize)  void *pData);
3471       
3472        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3473            ID3D10GeometryShader * This,
3474            /* [annotation] */
3475            __in  REFGUID guid,
3476            /* [annotation] */
3477            __in  UINT DataSize,
3478            /* [annotation] */
3479            __in_bcount_opt(DataSize)  const void *pData);
3480       
3481        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3482            ID3D10GeometryShader * This,
3483            /* [annotation] */
3484            __in  REFGUID guid,
3485            /* [annotation] */
3486            __in_opt  const IUnknown *pData);
3487       
3488        END_INTERFACE
3489    } ID3D10GeometryShaderVtbl;
3490
3491    interface ID3D10GeometryShader
3492    {
3493        CONST_VTBL struct ID3D10GeometryShaderVtbl *lpVtbl;
3494    };
3495
3496   
3497
3498#ifdef COBJMACROS
3499
3500
3501#define ID3D10GeometryShader_QueryInterface(This,riid,ppvObject)   \
3502    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3503
3504#define ID3D10GeometryShader_AddRef(This)   \
3505    ( (This)->lpVtbl -> AddRef(This) )
3506
3507#define ID3D10GeometryShader_Release(This)   \
3508    ( (This)->lpVtbl -> Release(This) )
3509
3510
3511#define ID3D10GeometryShader_GetDevice(This,ppDevice)   \
3512    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3513
3514#define ID3D10GeometryShader_GetPrivateData(This,guid,pDataSize,pData)   \
3515    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3516
3517#define ID3D10GeometryShader_SetPrivateData(This,guid,DataSize,pData)   \
3518    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3519
3520#define ID3D10GeometryShader_SetPrivateDataInterface(This,guid,pData)   \
3521    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3522
3523
3524#endif /* COBJMACROS */
3525
3526
3527#endif    /* C style interface */
3528
3529
3530
3531
3532#endif    /* __ID3D10GeometryShader_INTERFACE_DEFINED__ */
3533
3534
3535#ifndef __ID3D10PixelShader_INTERFACE_DEFINED__
3536#define __ID3D10PixelShader_INTERFACE_DEFINED__
3537
3538/* interface ID3D10PixelShader */
3539/* [unique][local][object][uuid] */
3540
3541
3542EXTERN_C const IID IID_ID3D10PixelShader;
3543
3544#if defined(__cplusplus) && !defined(CINTERFACE)
3545   
3546    MIDL_INTERFACE("4968B601-9D00-4cde-8346-8E7F675819B6")
3547    ID3D10PixelShader : public ID3D10DeviceChild
3548    {
3549    public:
3550    };
3551   
3552#else    /* C style interface */
3553
3554    typedef struct ID3D10PixelShaderVtbl
3555    {
3556        BEGIN_INTERFACE
3557       
3558        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3559            ID3D10PixelShader * This,
3560            /* [in] */ REFIID riid,
3561            /* [annotation][iid_is][out] */
3562            __RPC__deref_out  void **ppvObject);
3563       
3564        ULONG ( STDMETHODCALLTYPE *AddRef )(
3565            ID3D10PixelShader * This);
3566       
3567        ULONG ( STDMETHODCALLTYPE *Release )(
3568            ID3D10PixelShader * This);
3569       
3570        void ( STDMETHODCALLTYPE *GetDevice )(
3571            ID3D10PixelShader * This,
3572            /* [annotation] */
3573            __out  ID3D10Device **ppDevice);
3574       
3575        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3576            ID3D10PixelShader * This,
3577            /* [annotation] */
3578            __in  REFGUID guid,
3579            /* [annotation] */
3580            __inout  UINT *pDataSize,
3581            /* [annotation] */
3582            __out_bcount_opt(*pDataSize)  void *pData);
3583       
3584        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3585            ID3D10PixelShader * This,
3586            /* [annotation] */
3587            __in  REFGUID guid,
3588            /* [annotation] */
3589            __in  UINT DataSize,
3590            /* [annotation] */
3591            __in_bcount_opt(DataSize)  const void *pData);
3592       
3593        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3594            ID3D10PixelShader * This,
3595            /* [annotation] */
3596            __in  REFGUID guid,
3597            /* [annotation] */
3598            __in_opt  const IUnknown *pData);
3599       
3600        END_INTERFACE
3601    } ID3D10PixelShaderVtbl;
3602
3603    interface ID3D10PixelShader
3604    {
3605        CONST_VTBL struct ID3D10PixelShaderVtbl *lpVtbl;
3606    };
3607
3608   
3609
3610#ifdef COBJMACROS
3611
3612
3613#define ID3D10PixelShader_QueryInterface(This,riid,ppvObject)   \
3614    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3615
3616#define ID3D10PixelShader_AddRef(This)   \
3617    ( (This)->lpVtbl -> AddRef(This) )
3618
3619#define ID3D10PixelShader_Release(This)   \
3620    ( (This)->lpVtbl -> Release(This) )
3621
3622
3623#define ID3D10PixelShader_GetDevice(This,ppDevice)   \
3624    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3625
3626#define ID3D10PixelShader_GetPrivateData(This,guid,pDataSize,pData)   \
3627    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3628
3629#define ID3D10PixelShader_SetPrivateData(This,guid,DataSize,pData)   \
3630    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3631
3632#define ID3D10PixelShader_SetPrivateDataInterface(This,guid,pData)   \
3633    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3634
3635
3636#endif /* COBJMACROS */
3637
3638
3639#endif    /* C style interface */
3640
3641
3642
3643
3644#endif    /* __ID3D10PixelShader_INTERFACE_DEFINED__ */
3645
3646
3647#ifndef __ID3D10InputLayout_INTERFACE_DEFINED__
3648#define __ID3D10InputLayout_INTERFACE_DEFINED__
3649
3650/* interface ID3D10InputLayout */
3651/* [unique][local][object][uuid] */
3652
3653
3654EXTERN_C const IID IID_ID3D10InputLayout;
3655
3656#if defined(__cplusplus) && !defined(CINTERFACE)
3657   
3658    MIDL_INTERFACE("9B7E4C0B-342C-4106-A19F-4F2704F689F0")
3659    ID3D10InputLayout : public ID3D10DeviceChild
3660    {
3661    public:
3662    };
3663   
3664#else    /* C style interface */
3665
3666    typedef struct ID3D10InputLayoutVtbl
3667    {
3668        BEGIN_INTERFACE
3669       
3670        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3671            ID3D10InputLayout * This,
3672            /* [in] */ REFIID riid,
3673            /* [annotation][iid_is][out] */
3674            __RPC__deref_out  void **ppvObject);
3675       
3676        ULONG ( STDMETHODCALLTYPE *AddRef )(
3677            ID3D10InputLayout * This);
3678       
3679        ULONG ( STDMETHODCALLTYPE *Release )(
3680            ID3D10InputLayout * This);
3681       
3682        void ( STDMETHODCALLTYPE *GetDevice )(
3683            ID3D10InputLayout * This,
3684            /* [annotation] */
3685            __out  ID3D10Device **ppDevice);
3686       
3687        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3688            ID3D10InputLayout * This,
3689            /* [annotation] */
3690            __in  REFGUID guid,
3691            /* [annotation] */
3692            __inout  UINT *pDataSize,
3693            /* [annotation] */
3694            __out_bcount_opt(*pDataSize)  void *pData);
3695       
3696        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3697            ID3D10InputLayout * This,
3698            /* [annotation] */
3699            __in  REFGUID guid,
3700            /* [annotation] */
3701            __in  UINT DataSize,
3702            /* [annotation] */
3703            __in_bcount_opt(DataSize)  const void *pData);
3704       
3705        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3706            ID3D10InputLayout * This,
3707            /* [annotation] */
3708            __in  REFGUID guid,
3709            /* [annotation] */
3710            __in_opt  const IUnknown *pData);
3711       
3712        END_INTERFACE
3713    } ID3D10InputLayoutVtbl;
3714
3715    interface ID3D10InputLayout
3716    {
3717        CONST_VTBL struct ID3D10InputLayoutVtbl *lpVtbl;
3718    };
3719
3720   
3721
3722#ifdef COBJMACROS
3723
3724
3725#define ID3D10InputLayout_QueryInterface(This,riid,ppvObject)   \
3726    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3727
3728#define ID3D10InputLayout_AddRef(This)   \
3729    ( (This)->lpVtbl -> AddRef(This) )
3730
3731#define ID3D10InputLayout_Release(This)   \
3732    ( (This)->lpVtbl -> Release(This) )
3733
3734
3735#define ID3D10InputLayout_GetDevice(This,ppDevice)   \
3736    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3737
3738#define ID3D10InputLayout_GetPrivateData(This,guid,pDataSize,pData)   \
3739    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3740
3741#define ID3D10InputLayout_SetPrivateData(This,guid,DataSize,pData)   \
3742    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3743
3744#define ID3D10InputLayout_SetPrivateDataInterface(This,guid,pData)   \
3745    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3746
3747
3748#endif /* COBJMACROS */
3749
3750
3751#endif    /* C style interface */
3752
3753
3754
3755
3756#endif    /* __ID3D10InputLayout_INTERFACE_DEFINED__ */
3757
3758
3759/* interface __MIDL_itf_d3d10_0000_0017 */
3760/* [local] */
3761
3762typedef
3763enum D3D10_FILTER
3764    {   D3D10_FILTER_MIN_MAG_MIP_POINT   = 0,
3765   D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR   = 0x1,
3766   D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT   = 0x4,
3767   D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR   = 0x5,
3768   D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT   = 0x10,
3769   D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR   = 0x11,
3770   D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT   = 0x14,
3771   D3D10_FILTER_MIN_MAG_MIP_LINEAR   = 0x15,
3772   D3D10_FILTER_ANISOTROPIC   = 0x55,
3773   D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT   = 0x80,
3774   D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR   = 0x81,
3775   D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT   = 0x84,
3776   D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR   = 0x85,
3777   D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT   = 0x90,
3778   D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR   = 0x91,
3779   D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT   = 0x94,
3780   D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR   = 0x95,
3781   D3D10_FILTER_COMPARISON_ANISOTROPIC   = 0xd5,
3782   D3D10_FILTER_TEXT_1BIT   = 0x80000000
3783    }    D3D10_FILTER;
3784
3785typedef
3786enum D3D10_FILTER_TYPE
3787    {   D3D10_FILTER_TYPE_POINT   = 0,
3788   D3D10_FILTER_TYPE_LINEAR   = 1
3789    }    D3D10_FILTER_TYPE;
3790
3791#define   D3D10_FILTER_TYPE_MASK   ( 0x3 )
3792
3793#define   D3D10_MIN_FILTER_SHIFT   ( 4 )
3794
3795#define   D3D10_MAG_FILTER_SHIFT   ( 2 )
3796
3797#define   D3D10_MIP_FILTER_SHIFT   ( 0 )
3798
3799#define   D3D10_COMPARISON_FILTERING_BIT   ( 0x80 )
3800
3801#define   D3D10_ANISOTROPIC_FILTERING_BIT   ( 0x40 )
3802
3803#define   D3D10_TEXT_1BIT_BIT   ( 0x80000000 )
3804
3805#define D3D10_ENCODE_BASIC_FILTER( min, mag, mip, bComparison )                                           \
3806                                   ( ( D3D10_FILTER ) (                                                   \
3807                                   ( ( bComparison ) ? D3D10_COMPARISON_FILTERING_BIT : 0 ) |             \
3808                                   ( ( ( min ) & D3D10_FILTER_TYPE_MASK ) << D3D10_MIN_FILTER_SHIFT ) |   \
3809                                   ( ( ( mag ) & D3D10_FILTER_TYPE_MASK ) << D3D10_MAG_FILTER_SHIFT ) |   \
3810                                   ( ( ( mip ) & D3D10_FILTER_TYPE_MASK ) << D3D10_MIP_FILTER_SHIFT ) ) )   
3811#define D3D10_ENCODE_ANISOTROPIC_FILTER( bComparison )                                                \
3812                                         ( ( D3D10_FILTER ) (                                         \
3813                                         D3D10_ANISOTROPIC_FILTERING_BIT |                            \
3814                                         D3D10_ENCODE_BASIC_FILTER( D3D10_FILTER_TYPE_LINEAR,         \
3815                                                                    D3D10_FILTER_TYPE_LINEAR,         \
3816                                                                    D3D10_FILTER_TYPE_LINEAR,         \
3817                                                                    bComparison ) ) )                   
3818#define D3D10_DECODE_MIN_FILTER( d3d10Filter )                                                              \
3819                                 ( ( D3D10_FILTER_TYPE )                                                    \
3820                                 ( ( ( d3d10Filter ) >> D3D10_MIN_FILTER_SHIFT ) & D3D10_FILTER_TYPE_MASK ) )
3821#define D3D10_DECODE_MAG_FILTER( d3d10Filter )                                                              \
3822                                 ( ( D3D10_FILTER_TYPE )                                                    \
3823                                 ( ( ( d3d10Filter ) >> D3D10_MAG_FILTER_SHIFT ) & D3D10_FILTER_TYPE_MASK ) )
3824#define D3D10_DECODE_MIP_FILTER( d3d10Filter )                                                              \
3825                                 ( ( D3D10_FILTER_TYPE )                                                    \
3826                                 ( ( ( d3d10Filter ) >> D3D10_MIP_FILTER_SHIFT ) & D3D10_FILTER_TYPE_MASK ) )
3827#define D3D10_DECODE_IS_COMPARISON_FILTER( d3d10Filter )                                                    \
3828                                 ( ( d3d10Filter ) & D3D10_COMPARISON_FILTERING_BIT )                         
3829#define D3D10_DECODE_IS_ANISOTROPIC_FILTER( d3d10Filter )                                               \
3830                            ( ( ( d3d10Filter ) & D3D10_ANISOTROPIC_FILTERING_BIT ) &&                  \
3831                            ( D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MIN_FILTER( d3d10Filter ) ) &&   \
3832                            ( D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MAG_FILTER( d3d10Filter ) ) &&   \
3833                            ( D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MIP_FILTER( d3d10Filter ) ) )     
3834#define D3D10_DECODE_IS_TEXT_1BIT_FILTER( d3d10Filter )                                             \
3835                                 ( ( d3d10Filter ) == D3D10_TEXT_1BIT_BIT )                           
3836typedef
3837enum D3D10_TEXTURE_ADDRESS_MODE
3838    {   D3D10_TEXTURE_ADDRESS_WRAP   = 1,
3839   D3D10_TEXTURE_ADDRESS_MIRROR   = 2,
3840   D3D10_TEXTURE_ADDRESS_CLAMP   = 3,
3841   D3D10_TEXTURE_ADDRESS_BORDER   = 4,
3842   D3D10_TEXTURE_ADDRESS_MIRROR_ONCE   = 5
3843    }    D3D10_TEXTURE_ADDRESS_MODE;
3844
3845typedef struct D3D10_SAMPLER_DESC
3846    {
3847    D3D10_FILTER Filter;
3848    D3D10_TEXTURE_ADDRESS_MODE AddressU;
3849    D3D10_TEXTURE_ADDRESS_MODE AddressV;
3850    D3D10_TEXTURE_ADDRESS_MODE AddressW;
3851    FLOAT MipLODBias;
3852    UINT MaxAnisotropy;
3853    D3D10_COMPARISON_FUNC ComparisonFunc;
3854    FLOAT BorderColor[ 4 ];
3855    FLOAT MinLOD;
3856    FLOAT MaxLOD;
3857    }    D3D10_SAMPLER_DESC;
3858
3859
3860
3861extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0017_v0_0_c_ifspec;
3862extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0017_v0_0_s_ifspec;
3863
3864#ifndef __ID3D10SamplerState_INTERFACE_DEFINED__
3865#define __ID3D10SamplerState_INTERFACE_DEFINED__
3866
3867/* interface ID3D10SamplerState */
3868/* [unique][local][object][uuid] */
3869
3870
3871EXTERN_C const IID IID_ID3D10SamplerState;
3872
3873#if defined(__cplusplus) && !defined(CINTERFACE)
3874   
3875    MIDL_INTERFACE("9B7E4C0C-342C-4106-A19F-4F2704F689F0")
3876    ID3D10SamplerState : public ID3D10DeviceChild
3877    {
3878    public:
3879        virtual void STDMETHODCALLTYPE GetDesc(
3880            /* [annotation] */
3881            __out  D3D10_SAMPLER_DESC *pDesc) = 0;
3882       
3883    };
3884   
3885#else    /* C style interface */
3886
3887    typedef struct ID3D10SamplerStateVtbl
3888    {
3889        BEGIN_INTERFACE
3890       
3891        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3892            ID3D10SamplerState * This,
3893            /* [in] */ REFIID riid,
3894            /* [annotation][iid_is][out] */
3895            __RPC__deref_out  void **ppvObject);
3896       
3897        ULONG ( STDMETHODCALLTYPE *AddRef )(
3898            ID3D10SamplerState * This);
3899       
3900        ULONG ( STDMETHODCALLTYPE *Release )(
3901            ID3D10SamplerState * This);
3902       
3903        void ( STDMETHODCALLTYPE *GetDevice )(
3904            ID3D10SamplerState * This,
3905            /* [annotation] */
3906            __out  ID3D10Device **ppDevice);
3907       
3908        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3909            ID3D10SamplerState * This,
3910            /* [annotation] */
3911            __in  REFGUID guid,
3912            /* [annotation] */
3913            __inout  UINT *pDataSize,
3914            /* [annotation] */
3915            __out_bcount_opt(*pDataSize)  void *pData);
3916       
3917        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3918            ID3D10SamplerState * This,
3919            /* [annotation] */
3920            __in  REFGUID guid,
3921            /* [annotation] */
3922            __in  UINT DataSize,
3923            /* [annotation] */
3924            __in_bcount_opt(DataSize)  const void *pData);
3925       
3926        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3927            ID3D10SamplerState * This,
3928            /* [annotation] */
3929            __in  REFGUID guid,
3930            /* [annotation] */
3931            __in_opt  const IUnknown *pData);
3932       
3933        void ( STDMETHODCALLTYPE *GetDesc )(
3934            ID3D10SamplerState * This,
3935            /* [annotation] */
3936            __out  D3D10_SAMPLER_DESC *pDesc);
3937       
3938        END_INTERFACE
3939    } ID3D10SamplerStateVtbl;
3940
3941    interface ID3D10SamplerState
3942    {
3943        CONST_VTBL struct ID3D10SamplerStateVtbl *lpVtbl;
3944    };
3945
3946   
3947
3948#ifdef COBJMACROS
3949
3950
3951#define ID3D10SamplerState_QueryInterface(This,riid,ppvObject)   \
3952    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3953
3954#define ID3D10SamplerState_AddRef(This)   \
3955    ( (This)->lpVtbl -> AddRef(This) )
3956
3957#define ID3D10SamplerState_Release(This)   \
3958    ( (This)->lpVtbl -> Release(This) )
3959
3960
3961#define ID3D10SamplerState_GetDevice(This,ppDevice)   \
3962    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3963
3964#define ID3D10SamplerState_GetPrivateData(This,guid,pDataSize,pData)   \
3965    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3966
3967#define ID3D10SamplerState_SetPrivateData(This,guid,DataSize,pData)   \
3968    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3969
3970#define ID3D10SamplerState_SetPrivateDataInterface(This,guid,pData)   \
3971    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3972
3973
3974#define ID3D10SamplerState_GetDesc(This,pDesc)   \
3975    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
3976
3977#endif /* COBJMACROS */
3978
3979
3980#endif    /* C style interface */
3981
3982
3983
3984
3985#endif    /* __ID3D10SamplerState_INTERFACE_DEFINED__ */
3986
3987
3988/* interface __MIDL_itf_d3d10_0000_0018 */
3989/* [local] */
3990
3991typedef
3992enum D3D10_FORMAT_SUPPORT
3993    {   D3D10_FORMAT_SUPPORT_BUFFER   = 0x1,
3994   D3D10_FORMAT_SUPPORT_IA_VERTEX_BUFFER   = 0x2,
3995   D3D10_FORMAT_SUPPORT_IA_INDEX_BUFFER   = 0x4,
3996   D3D10_FORMAT_SUPPORT_SO_BUFFER   = 0x8,
3997   D3D10_FORMAT_SUPPORT_TEXTURE1D   = 0x10,
3998   D3D10_FORMAT_SUPPORT_TEXTURE2D   = 0x20,
3999   D3D10_FORMAT_SUPPORT_TEXTURE3D   = 0x40,
4000   D3D10_FORMAT_SUPPORT_TEXTURECUBE   = 0x80,
4001   D3D10_FORMAT_SUPPORT_SHADER_LOAD   = 0x100,
4002   D3D10_FORMAT_SUPPORT_SHADER_SAMPLE   = 0x200,
4003   D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON   = 0x400,
4004   D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT   = 0x800,
4005   D3D10_FORMAT_SUPPORT_MIP   = 0x1000,
4006   D3D10_FORMAT_SUPPORT_MIP_AUTOGEN   = 0x2000,
4007   D3D10_FORMAT_SUPPORT_RENDER_TARGET   = 0x4000,
4008   D3D10_FORMAT_SUPPORT_BLENDABLE   = 0x8000,
4009   D3D10_FORMAT_SUPPORT_DEPTH_STENCIL   = 0x10000,
4010   D3D10_FORMAT_SUPPORT_CPU_LOCKABLE   = 0x20000,
4011   D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE   = 0x40000,
4012   D3D10_FORMAT_SUPPORT_DISPLAY   = 0x80000,
4013   D3D10_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT   = 0x100000,
4014   D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET   = 0x200000,
4015   D3D10_FORMAT_SUPPORT_MULTISAMPLE_LOAD   = 0x400000,
4016   D3D10_FORMAT_SUPPORT_SHADER_GATHER   = 0x800000,
4017   D3D10_FORMAT_SUPPORT_BACK_BUFFER_CAST   = 0x1000000
4018    }    D3D10_FORMAT_SUPPORT;
4019
4020
4021
4022extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0018_v0_0_c_ifspec;
4023extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0018_v0_0_s_ifspec;
4024
4025#ifndef __ID3D10Asynchronous_INTERFACE_DEFINED__
4026#define __ID3D10Asynchronous_INTERFACE_DEFINED__
4027
4028/* interface ID3D10Asynchronous */
4029/* [unique][local][object][uuid] */
4030
4031
4032EXTERN_C const IID IID_ID3D10Asynchronous;
4033
4034#if defined(__cplusplus) && !defined(CINTERFACE)
4035   
4036    MIDL_INTERFACE("9B7E4C0D-342C-4106-A19F-4F2704F689F0")
4037    ID3D10Asynchronous : public ID3D10DeviceChild
4038    {
4039    public:
4040        virtual void STDMETHODCALLTYPE Begin( void) = 0;
4041       
4042        virtual void STDMETHODCALLTYPE End( void) = 0;
4043       
4044        virtual HRESULT STDMETHODCALLTYPE GetData(
4045            /* [annotation] */
4046            __out_bcount_opt(DataSize)  void *pData,
4047            /* [annotation] */
4048            __in  UINT DataSize,
4049            /* [annotation] */
4050            __in  UINT GetDataFlags) = 0;
4051       
4052        virtual UINT STDMETHODCALLTYPE GetDataSize( void) = 0;
4053       
4054    };
4055   
4056#else    /* C style interface */
4057
4058    typedef struct ID3D10AsynchronousVtbl
4059    {
4060        BEGIN_INTERFACE
4061       
4062        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4063            ID3D10Asynchronous * This,
4064            /* [in] */ REFIID riid,
4065            /* [annotation][iid_is][out] */
4066            __RPC__deref_out  void **ppvObject);
4067       
4068        ULONG ( STDMETHODCALLTYPE *AddRef )(
4069            ID3D10Asynchronous * This);
4070       
4071        ULONG ( STDMETHODCALLTYPE *Release )(
4072            ID3D10Asynchronous * This);
4073       
4074        void ( STDMETHODCALLTYPE *GetDevice )(
4075            ID3D10Asynchronous * This,
4076            /* [annotation] */
4077            __out  ID3D10Device **ppDevice);
4078       
4079        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4080            ID3D10Asynchronous * This,
4081            /* [annotation] */
4082            __in  REFGUID guid,
4083            /* [annotation] */
4084            __inout  UINT *pDataSize,
4085            /* [annotation] */
4086            __out_bcount_opt(*pDataSize)  void *pData);
4087       
4088        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4089            ID3D10Asynchronous * This,
4090            /* [annotation] */
4091            __in  REFGUID guid,
4092            /* [annotation] */
4093            __in  UINT DataSize,
4094            /* [annotation] */
4095            __in_bcount_opt(DataSize)  const void *pData);
4096       
4097        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4098            ID3D10Asynchronous * This,
4099            /* [annotation] */
4100            __in  REFGUID guid,
4101            /* [annotation] */
4102            __in_opt  const IUnknown *pData);
4103       
4104        void ( STDMETHODCALLTYPE *Begin )(
4105            ID3D10Asynchronous * This);
4106       
4107        void ( STDMETHODCALLTYPE *End )(
4108            ID3D10Asynchronous * This);
4109       
4110        HRESULT ( STDMETHODCALLTYPE *GetData )(
4111            ID3D10Asynchronous * This,
4112            /* [annotation] */
4113            __out_bcount_opt(DataSize)  void *pData,
4114            /* [annotation] */
4115            __in  UINT DataSize,
4116            /* [annotation] */
4117            __in  UINT GetDataFlags);
4118       
4119        UINT ( STDMETHODCALLTYPE *GetDataSize )(
4120            ID3D10Asynchronous * This);
4121       
4122        END_INTERFACE
4123    } ID3D10AsynchronousVtbl;
4124
4125    interface ID3D10Asynchronous
4126    {
4127        CONST_VTBL struct ID3D10AsynchronousVtbl *lpVtbl;
4128    };
4129
4130   
4131
4132#ifdef COBJMACROS
4133
4134
4135#define ID3D10Asynchronous_QueryInterface(This,riid,ppvObject)   \
4136    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4137
4138#define ID3D10Asynchronous_AddRef(This)   \
4139    ( (This)->lpVtbl -> AddRef(This) )
4140
4141#define ID3D10Asynchronous_Release(This)   \
4142    ( (This)->lpVtbl -> Release(This) )
4143
4144
4145#define ID3D10Asynchronous_GetDevice(This,ppDevice)   \
4146    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4147
4148#define ID3D10Asynchronous_GetPrivateData(This,guid,pDataSize,pData)   \
4149    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4150
4151#define ID3D10Asynchronous_SetPrivateData(This,guid,DataSize,pData)   \
4152    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4153
4154#define ID3D10Asynchronous_SetPrivateDataInterface(This,guid,pData)   \
4155    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4156
4157
4158#define ID3D10Asynchronous_Begin(This)   \
4159    ( (This)->lpVtbl -> Begin(This) )
4160
4161#define ID3D10Asynchronous_End(This)   \
4162    ( (This)->lpVtbl -> End(This) )
4163
4164#define ID3D10Asynchronous_GetData(This,pData,DataSize,GetDataFlags)   \
4165    ( (This)->lpVtbl -> GetData(This,pData,DataSize,GetDataFlags) )
4166
4167#define ID3D10Asynchronous_GetDataSize(This)   \
4168    ( (This)->lpVtbl -> GetDataSize(This) )
4169
4170#endif /* COBJMACROS */
4171
4172
4173#endif    /* C style interface */
4174
4175
4176
4177
4178#endif    /* __ID3D10Asynchronous_INTERFACE_DEFINED__ */
4179
4180
4181/* interface __MIDL_itf_d3d10_0000_0019 */
4182/* [local] */
4183
4184typedef
4185enum D3D10_ASYNC_GETDATA_FLAG
4186    {   D3D10_ASYNC_GETDATA_DONOTFLUSH   = 0x1
4187    }    D3D10_ASYNC_GETDATA_FLAG;
4188
4189typedef
4190enum D3D10_QUERY
4191    {   D3D10_QUERY_EVENT   = 0,
4192   D3D10_QUERY_OCCLUSION   = ( D3D10_QUERY_EVENT + 1 ) ,
4193   D3D10_QUERY_TIMESTAMP   = ( D3D10_QUERY_OCCLUSION + 1 ) ,
4194   D3D10_QUERY_TIMESTAMP_DISJOINT   = ( D3D10_QUERY_TIMESTAMP + 1 ) ,
4195   D3D10_QUERY_PIPELINE_STATISTICS   = ( D3D10_QUERY_TIMESTAMP_DISJOINT + 1 ) ,
4196   D3D10_QUERY_OCCLUSION_PREDICATE   = ( D3D10_QUERY_PIPELINE_STATISTICS + 1 ) ,
4197   D3D10_QUERY_SO_STATISTICS   = ( D3D10_QUERY_OCCLUSION_PREDICATE + 1 ) ,
4198   D3D10_QUERY_SO_OVERFLOW_PREDICATE   = ( D3D10_QUERY_SO_STATISTICS + 1 )
4199    }    D3D10_QUERY;
4200
4201typedef
4202enum D3D10_QUERY_MISC_FLAG
4203    {   D3D10_QUERY_MISC_PREDICATEHINT   = 0x1
4204    }    D3D10_QUERY_MISC_FLAG;
4205
4206typedef struct D3D10_QUERY_DESC
4207    {
4208    D3D10_QUERY Query;
4209    UINT MiscFlags;
4210    }    D3D10_QUERY_DESC;
4211
4212
4213
4214extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0019_v0_0_c_ifspec;
4215extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0019_v0_0_s_ifspec;
4216
4217#ifndef __ID3D10Query_INTERFACE_DEFINED__
4218#define __ID3D10Query_INTERFACE_DEFINED__
4219
4220/* interface ID3D10Query */
4221/* [unique][local][object][uuid] */
4222
4223
4224EXTERN_C const IID IID_ID3D10Query;
4225
4226#if defined(__cplusplus) && !defined(CINTERFACE)
4227   
4228    MIDL_INTERFACE("9B7E4C0E-342C-4106-A19F-4F2704F689F0")
4229    ID3D10Query : public ID3D10Asynchronous
4230    {
4231    public:
4232        virtual void STDMETHODCALLTYPE GetDesc(
4233            /* [annotation] */
4234            __out  D3D10_QUERY_DESC *pDesc) = 0;
4235       
4236    };
4237   
4238#else    /* C style interface */
4239
4240    typedef struct ID3D10QueryVtbl
4241    {
4242        BEGIN_INTERFACE
4243       
4244        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4245            ID3D10Query * This,
4246            /* [in] */ REFIID riid,
4247            /* [annotation][iid_is][out] */
4248            __RPC__deref_out  void **ppvObject);
4249       
4250        ULONG ( STDMETHODCALLTYPE *AddRef )(
4251            ID3D10Query * This);
4252       
4253        ULONG ( STDMETHODCALLTYPE *Release )(
4254            ID3D10Query * This);
4255       
4256        void ( STDMETHODCALLTYPE *GetDevice )(
4257            ID3D10Query * This,
4258            /* [annotation] */
4259            __out  ID3D10Device **ppDevice);
4260       
4261        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4262            ID3D10Query * This,
4263            /* [annotation] */
4264            __in  REFGUID guid,
4265            /* [annotation] */
4266            __inout  UINT *pDataSize,
4267            /* [annotation] */
4268            __out_bcount_opt(*pDataSize)  void *pData);
4269       
4270        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4271            ID3D10Query * This,
4272            /* [annotation] */
4273            __in  REFGUID guid,
4274            /* [annotation] */
4275            __in  UINT DataSize,
4276            /* [annotation] */
4277            __in_bcount_opt(DataSize)  const void *pData);
4278       
4279        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4280            ID3D10Query * This,
4281            /* [annotation] */
4282            __in  REFGUID guid,
4283            /* [annotation] */
4284            __in_opt  const IUnknown *pData);
4285       
4286        void ( STDMETHODCALLTYPE *Begin )(
4287            ID3D10Query * This);
4288       
4289        void ( STDMETHODCALLTYPE *End )(
4290            ID3D10Query * This);
4291       
4292        HRESULT ( STDMETHODCALLTYPE *GetData )(
4293            ID3D10Query * This,
4294            /* [annotation] */
4295            __out_bcount_opt(DataSize)  void *pData,
4296            /* [annotation] */
4297            __in  UINT DataSize,
4298            /* [annotation] */
4299            __in  UINT GetDataFlags);
4300       
4301        UINT ( STDMETHODCALLTYPE *GetDataSize )(
4302            ID3D10Query * This);
4303       
4304        void ( STDMETHODCALLTYPE *GetDesc )(
4305            ID3D10Query * This,
4306            /* [annotation] */
4307            __out  D3D10_QUERY_DESC *pDesc);
4308       
4309        END_INTERFACE
4310    } ID3D10QueryVtbl;
4311
4312    interface ID3D10Query
4313    {
4314        CONST_VTBL struct ID3D10QueryVtbl *lpVtbl;
4315    };
4316
4317   
4318
4319#ifdef COBJMACROS
4320
4321
4322#define ID3D10Query_QueryInterface(This,riid,ppvObject)   \
4323    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4324
4325#define ID3D10Query_AddRef(This)   \
4326    ( (This)->lpVtbl -> AddRef(This) )
4327
4328#define ID3D10Query_Release(This)   \
4329    ( (This)->lpVtbl -> Release(This) )
4330
4331
4332#define ID3D10Query_GetDevice(This,ppDevice)   \
4333    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4334
4335#define ID3D10Query_GetPrivateData(This,guid,pDataSize,pData)   \
4336    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4337
4338#define ID3D10Query_SetPrivateData(This,guid,DataSize,pData)   \
4339    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4340
4341#define ID3D10Query_SetPrivateDataInterface(This,guid,pData)   \
4342    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4343
4344
4345#define ID3D10Query_Begin(This)   \
4346    ( (This)->lpVtbl -> Begin(This) )
4347
4348#define ID3D10Query_End(This)   \
4349    ( (This)->lpVtbl -> End(This) )
4350
4351#define ID3D10Query_GetData(This,pData,DataSize,GetDataFlags)   \
4352    ( (This)->lpVtbl -> GetData(This,pData,DataSize,GetDataFlags) )
4353
4354#define ID3D10Query_GetDataSize(This)   \
4355    ( (This)->lpVtbl -> GetDataSize(This) )
4356
4357
4358#define ID3D10Query_GetDesc(This,pDesc)   \
4359    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
4360
4361#endif /* COBJMACROS */
4362
4363
4364#endif    /* C style interface */
4365
4366
4367
4368
4369#endif    /* __ID3D10Query_INTERFACE_DEFINED__ */
4370
4371
4372#ifndef __ID3D10Predicate_INTERFACE_DEFINED__
4373#define __ID3D10Predicate_INTERFACE_DEFINED__
4374
4375/* interface ID3D10Predicate */
4376/* [unique][local][object][uuid] */
4377
4378
4379EXTERN_C const IID IID_ID3D10Predicate;
4380
4381#if defined(__cplusplus) && !defined(CINTERFACE)
4382   
4383    MIDL_INTERFACE("9B7E4C10-342C-4106-A19F-4F2704F689F0")
4384    ID3D10Predicate : public ID3D10Query
4385    {
4386    public:
4387    };
4388   
4389#else    /* C style interface */
4390
4391    typedef struct ID3D10PredicateVtbl
4392    {
4393        BEGIN_INTERFACE
4394       
4395        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4396            ID3D10Predicate * This,
4397            /* [in] */ REFIID riid,
4398            /* [annotation][iid_is][out] */
4399            __RPC__deref_out  void **ppvObject);
4400       
4401        ULONG ( STDMETHODCALLTYPE *AddRef )(
4402            ID3D10Predicate * This);
4403       
4404        ULONG ( STDMETHODCALLTYPE *Release )(
4405            ID3D10Predicate * This);
4406       
4407        void ( STDMETHODCALLTYPE *GetDevice )(
4408            ID3D10Predicate * This,
4409            /* [annotation] */
4410            __out  ID3D10Device **ppDevice);
4411       
4412        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4413            ID3D10Predicate * This,
4414            /* [annotation] */
4415            __in  REFGUID guid,
4416            /* [annotation] */
4417            __inout  UINT *pDataSize,
4418            /* [annotation] */
4419            __out_bcount_opt(*pDataSize)  void *pData);
4420       
4421        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4422            ID3D10Predicate * This,
4423            /* [annotation] */
4424            __in  REFGUID guid,
4425            /* [annotation] */
4426            __in  UINT DataSize,
4427            /* [annotation] */
4428            __in_bcount_opt(DataSize)  const void *pData);
4429       
4430        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4431            ID3D10Predicate * This,
4432            /* [annotation] */
4433            __in  REFGUID guid,
4434            /* [annotation] */
4435            __in_opt  const IUnknown *pData);
4436       
4437        void ( STDMETHODCALLTYPE *Begin )(
4438            ID3D10Predicate * This);
4439       
4440        void ( STDMETHODCALLTYPE *End )(
4441            ID3D10Predicate * This);
4442       
4443        HRESULT ( STDMETHODCALLTYPE *GetData )(
4444            ID3D10Predicate * This,
4445            /* [annotation] */
4446            __out_bcount_opt(DataSize)  void *pData,
4447            /* [annotation] */
4448            __in  UINT DataSize,
4449            /* [annotation] */
4450            __in  UINT GetDataFlags);
4451       
4452        UINT ( STDMETHODCALLTYPE *GetDataSize )(
4453            ID3D10Predicate * This);
4454       
4455        void ( STDMETHODCALLTYPE *GetDesc )(
4456            ID3D10Predicate * This,
4457            /* [annotation] */
4458            __out  D3D10_QUERY_DESC *pDesc);
4459       
4460        END_INTERFACE
4461    } ID3D10PredicateVtbl;
4462
4463    interface ID3D10Predicate
4464    {
4465        CONST_VTBL struct ID3D10PredicateVtbl *lpVtbl;
4466    };
4467
4468   
4469
4470#ifdef COBJMACROS
4471
4472
4473#define ID3D10Predicate_QueryInterface(This,riid,ppvObject)   \
4474    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4475
4476#define ID3D10Predicate_AddRef(This)   \
4477    ( (This)->lpVtbl -> AddRef(This) )
4478
4479#define ID3D10Predicate_Release(This)   \
4480    ( (This)->lpVtbl -> Release(This) )
4481
4482
4483#define ID3D10Predicate_GetDevice(This,ppDevice)   \
4484    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4485
4486#define ID3D10Predicate_GetPrivateData(This,guid,pDataSize,pData)   \
4487    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4488
4489#define ID3D10Predicate_SetPrivateData(This,guid,DataSize,pData)   \
4490    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4491
4492#define ID3D10Predicate_SetPrivateDataInterface(This,guid,pData)   \
4493    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4494
4495
4496#define ID3D10Predicate_Begin(This)   \
4497    ( (This)->lpVtbl -> Begin(This) )
4498
4499#define ID3D10Predicate_End(This)   \
4500    ( (This)->lpVtbl -> End(This) )
4501
4502#define ID3D10Predicate_GetData(This,pData,DataSize,GetDataFlags)   \
4503    ( (This)->lpVtbl -> GetData(This,pData,DataSize,GetDataFlags) )
4504
4505#define ID3D10Predicate_GetDataSize(This)   \
4506    ( (This)->lpVtbl -> GetDataSize(This) )
4507
4508
4509#define ID3D10Predicate_GetDesc(This,pDesc)   \
4510    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
4511
4512
4513#endif /* COBJMACROS */
4514
4515
4516#endif    /* C style interface */
4517
4518
4519
4520
4521#endif    /* __ID3D10Predicate_INTERFACE_DEFINED__ */
4522
4523
4524/* interface __MIDL_itf_d3d10_0000_0021 */
4525/* [local] */
4526
4527typedef struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT
4528    {
4529    UINT64 Frequency;
4530    BOOL Disjoint;
4531    }    D3D10_QUERY_DATA_TIMESTAMP_DISJOINT;
4532
4533typedef struct D3D10_QUERY_DATA_PIPELINE_STATISTICS
4534    {
4535    UINT64 IAVertices;
4536    UINT64 IAPrimitives;
4537    UINT64 VSInvocations;
4538    UINT64 GSInvocations;
4539    UINT64 GSPrimitives;
4540    UINT64 CInvocations;
4541    UINT64 CPrimitives;
4542    UINT64 PSInvocations;
4543    }    D3D10_QUERY_DATA_PIPELINE_STATISTICS;
4544
4545typedef struct D3D10_QUERY_DATA_SO_STATISTICS
4546    {
4547    UINT64 NumPrimitivesWritten;
4548    UINT64 PrimitivesStorageNeeded;
4549    }    D3D10_QUERY_DATA_SO_STATISTICS;
4550
4551typedef
4552enum D3D10_COUNTER
4553    {   D3D10_COUNTER_GPU_IDLE   = 0,
4554   D3D10_COUNTER_VERTEX_PROCESSING   = ( D3D10_COUNTER_GPU_IDLE + 1 ) ,
4555   D3D10_COUNTER_GEOMETRY_PROCESSING   = ( D3D10_COUNTER_VERTEX_PROCESSING + 1 ) ,
4556   D3D10_COUNTER_PIXEL_PROCESSING   = ( D3D10_COUNTER_GEOMETRY_PROCESSING + 1 ) ,
4557   D3D10_COUNTER_OTHER_GPU_PROCESSING   = ( D3D10_COUNTER_PIXEL_PROCESSING + 1 ) ,
4558   D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION   = ( D3D10_COUNTER_OTHER_GPU_PROCESSING + 1 ) ,
4559   D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION   = ( D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION + 1 ) ,
4560   D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION   = ( D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION + 1 ) ,
4561   D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION   = ( D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION + 1 ) ,
4562   D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION   = ( D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION + 1 ) ,
4563   D3D10_COUNTER_VS_MEMORY_LIMITED   = ( D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION + 1 ) ,
4564   D3D10_COUNTER_VS_COMPUTATION_LIMITED   = ( D3D10_COUNTER_VS_MEMORY_LIMITED + 1 ) ,
4565   D3D10_COUNTER_GS_MEMORY_LIMITED   = ( D3D10_COUNTER_VS_COMPUTATION_LIMITED + 1 ) ,
4566   D3D10_COUNTER_GS_COMPUTATION_LIMITED   = ( D3D10_COUNTER_GS_MEMORY_LIMITED + 1 ) ,
4567   D3D10_COUNTER_PS_MEMORY_LIMITED   = ( D3D10_COUNTER_GS_COMPUTATION_LIMITED + 1 ) ,
4568   D3D10_COUNTER_PS_COMPUTATION_LIMITED   = ( D3D10_COUNTER_PS_MEMORY_LIMITED + 1 ) ,
4569   D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE   = ( D3D10_COUNTER_PS_COMPUTATION_LIMITED + 1 ) ,
4570   D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE   = ( D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE + 1 ) ,
4571   D3D10_COUNTER_DEVICE_DEPENDENT_0   = 0x40000000
4572    }    D3D10_COUNTER;
4573
4574typedef
4575enum D3D10_COUNTER_TYPE
4576    {   D3D10_COUNTER_TYPE_FLOAT32   = 0,
4577   D3D10_COUNTER_TYPE_UINT16   = ( D3D10_COUNTER_TYPE_FLOAT32 + 1 ) ,
4578   D3D10_COUNTER_TYPE_UINT32   = ( D3D10_COUNTER_TYPE_UINT16 + 1 ) ,
4579   D3D10_COUNTER_TYPE_UINT64   = ( D3D10_COUNTER_TYPE_UINT32 + 1 )
4580    }    D3D10_COUNTER_TYPE;
4581
4582typedef struct D3D10_COUNTER_DESC
4583    {
4584    D3D10_COUNTER Counter;
4585    UINT MiscFlags;
4586    }    D3D10_COUNTER_DESC;
4587
4588typedef struct D3D10_COUNTER_INFO
4589    {
4590    D3D10_COUNTER LastDeviceDependentCounter;
4591    UINT NumSimultaneousCounters;
4592    UINT8 NumDetectableParallelUnits;
4593    }    D3D10_COUNTER_INFO;
4594
4595
4596
4597extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0021_v0_0_c_ifspec;
4598extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0021_v0_0_s_ifspec;
4599
4600#ifndef __ID3D10Counter_INTERFACE_DEFINED__
4601#define __ID3D10Counter_INTERFACE_DEFINED__
4602
4603/* interface ID3D10Counter */
4604/* [unique][local][object][uuid] */
4605
4606
4607EXTERN_C const IID IID_ID3D10Counter;
4608
4609#if defined(__cplusplus) && !defined(CINTERFACE)
4610   
4611    MIDL_INTERFACE("9B7E4C11-342C-4106-A19F-4F2704F689F0")
4612    ID3D10Counter : public ID3D10Asynchronous
4613    {
4614    public:
4615        virtual void STDMETHODCALLTYPE GetDesc(
4616            /* [annotation] */
4617            __out  D3D10_COUNTER_DESC *pDesc) = 0;
4618       
4619    };
4620   
4621#else    /* C style interface */
4622
4623    typedef struct ID3D10CounterVtbl
4624    {
4625        BEGIN_INTERFACE
4626       
4627        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4628            ID3D10Counter * This,
4629            /* [in] */ REFIID riid,
4630            /* [annotation][iid_is][out] */
4631            __RPC__deref_out  void **ppvObject);
4632       
4633        ULONG ( STDMETHODCALLTYPE *AddRef )(
4634            ID3D10Counter * This);
4635       
4636        ULONG ( STDMETHODCALLTYPE *Release )(
4637            ID3D10Counter * This);
4638       
4639        void ( STDMETHODCALLTYPE *GetDevice )(
4640            ID3D10Counter * This,
4641            /* [annotation] */
4642            __out  ID3D10Device **ppDevice);
4643       
4644        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4645            ID3D10Counter * This,
4646            /* [annotation] */
4647            __in  REFGUID guid,
4648            /* [annotation] */
4649            __inout  UINT *pDataSize,
4650            /* [annotation] */
4651            __out_bcount_opt(*pDataSize)  void *pData);
4652       
4653        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4654            ID3D10Counter * This,
4655            /* [annotation] */
4656            __in  REFGUID guid,
4657            /* [annotation] */
4658            __in  UINT DataSize,
4659            /* [annotation] */
4660            __in_bcount_opt(DataSize)  const void *pData);
4661       
4662        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4663            ID3D10Counter * This,
4664            /* [annotation] */
4665            __in  REFGUID guid,
4666            /* [annotation] */
4667            __in_opt  const IUnknown *pData);
4668       
4669        void ( STDMETHODCALLTYPE *Begin )(
4670            ID3D10Counter * This);
4671       
4672        void ( STDMETHODCALLTYPE *End )(
4673            ID3D10Counter * This);
4674       
4675        HRESULT ( STDMETHODCALLTYPE *GetData )(
4676            ID3D10Counter * This,
4677            /* [annotation] */
4678            __out_bcount_opt(DataSize)  void *pData,
4679            /* [annotation] */
4680            __in  UINT DataSize,
4681            /* [annotation] */
4682            __in  UINT GetDataFlags);
4683       
4684        UINT ( STDMETHODCALLTYPE *GetDataSize )(
4685            ID3D10Counter * This);
4686       
4687        void ( STDMETHODCALLTYPE *GetDesc )(
4688            ID3D10Counter * This,
4689            /* [annotation] */
4690            __out  D3D10_COUNTER_DESC *pDesc);
4691       
4692        END_INTERFACE
4693    } ID3D10CounterVtbl;
4694
4695    interface ID3D10Counter
4696    {
4697        CONST_VTBL struct ID3D10CounterVtbl *lpVtbl;
4698    };
4699
4700   
4701
4702#ifdef COBJMACROS
4703
4704
4705#define ID3D10Counter_QueryInterface(This,riid,ppvObject)   \
4706    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4707
4708#define ID3D10Counter_AddRef(This)   \
4709    ( (This)->lpVtbl -> AddRef(This) )
4710
4711#define ID3D10Counter_Release(This)   \
4712    ( (This)->lpVtbl -> Release(This) )
4713
4714
4715#define ID3D10Counter_GetDevice(This,ppDevice)   \
4716    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4717
4718#define ID3D10Counter_GetPrivateData(This,guid,pDataSize,pData)   \
4719    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4720
4721#define ID3D10Counter_SetPrivateData(This,guid,DataSize,pData)   \
4722    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4723
4724#define ID3D10Counter_SetPrivateDataInterface(This,guid,pData)   \
4725    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4726
4727
4728#define ID3D10Counter_Begin(This)   \
4729    ( (This)->lpVtbl -> Begin(This) )
4730
4731#define ID3D10Counter_End(This)   \
4732    ( (This)->lpVtbl -> End(This) )
4733
4734#define ID3D10Counter_GetData(This,pData,DataSize,GetDataFlags)   \
4735    ( (This)->lpVtbl -> GetData(This,pData,DataSize,GetDataFlags) )
4736
4737#define ID3D10Counter_GetDataSize(This)   \
4738    ( (This)->lpVtbl -> GetDataSize(This) )
4739
4740
4741#define ID3D10Counter_GetDesc(This,pDesc)   \
4742    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
4743
4744#endif /* COBJMACROS */
4745
4746
4747#endif    /* C style interface */
4748
4749
4750
4751
4752#endif    /* __ID3D10Counter_INTERFACE_DEFINED__ */
4753
4754
4755#ifndef __ID3D10Device_INTERFACE_DEFINED__
4756#define __ID3D10Device_INTERFACE_DEFINED__
4757
4758/* interface ID3D10Device */
4759/* [unique][local][object][uuid] */
4760
4761
4762EXTERN_C const IID IID_ID3D10Device;
4763
4764#if defined(__cplusplus) && !defined(CINTERFACE)
4765   
4766    MIDL_INTERFACE("9B7E4C0F-342C-4106-A19F-4F2704F689F0")
4767    ID3D10Device : public IUnknown
4768    {
4769    public:
4770        virtual void STDMETHODCALLTYPE VSSetConstantBuffers(
4771            /* [annotation] */
4772            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
4773            /* [annotation] */
4774            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
4775            /* [annotation] */
4776            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers) = 0;
4777       
4778        virtual void STDMETHODCALLTYPE PSSetShaderResources(
4779            /* [annotation] */
4780            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
4781            /* [annotation] */
4782            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
4783            /* [annotation] */
4784            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
4785       
4786        virtual void STDMETHODCALLTYPE PSSetShader(
4787            /* [annotation] */
4788            __in_opt  ID3D10PixelShader *pPixelShader) = 0;
4789       
4790        virtual void STDMETHODCALLTYPE PSSetSamplers(
4791            /* [annotation] */
4792            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
4793            /* [annotation] */
4794            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
4795            /* [annotation] */
4796            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers) = 0;
4797       
4798        virtual void STDMETHODCALLTYPE VSSetShader(
4799            /* [annotation] */
4800            __in_opt  ID3D10VertexShader *pVertexShader) = 0;
4801       
4802        virtual void STDMETHODCALLTYPE DrawIndexed(
4803            /* [annotation] */
4804            __in  UINT IndexCount,
4805            /* [annotation] */
4806            __in  UINT StartIndexLocation,
4807            /* [annotation] */
4808            __in  INT BaseVertexLocation) = 0;
4809       
4810        virtual void STDMETHODCALLTYPE Draw(
4811            /* [annotation] */
4812            __in  UINT VertexCount,
4813            /* [annotation] */
4814            __in  UINT StartVertexLocation) = 0;
4815       
4816        virtual void STDMETHODCALLTYPE PSSetConstantBuffers(
4817            /* [annotation] */
4818            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
4819            /* [annotation] */
4820            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
4821            /* [annotation] */
4822            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers) = 0;
4823       
4824        virtual void STDMETHODCALLTYPE IASetInputLayout(
4825            /* [annotation] */
4826            __in_opt  ID3D10InputLayout *pInputLayout) = 0;
4827       
4828        virtual void STDMETHODCALLTYPE IASetVertexBuffers(
4829            /* [annotation] */
4830            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
4831            /* [annotation] */
4832            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
4833            /* [annotation] */
4834            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppVertexBuffers,
4835            /* [annotation] */
4836            __in_ecount(NumBuffers)  const UINT *pStrides,
4837            /* [annotation] */
4838            __in_ecount(NumBuffers)  const UINT *pOffsets) = 0;
4839       
4840        virtual void STDMETHODCALLTYPE IASetIndexBuffer(
4841            /* [annotation] */
4842            __in_opt  ID3D10Buffer *pIndexBuffer,
4843            /* [annotation] */
4844            __in  DXGI_FORMAT Format,
4845            /* [annotation] */
4846            __in  UINT Offset) = 0;
4847       
4848        virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
4849            /* [annotation] */
4850            __in  UINT IndexCountPerInstance,
4851            /* [annotation] */
4852            __in  UINT InstanceCount,
4853            /* [annotation] */
4854            __in  UINT StartIndexLocation,
4855            /* [annotation] */
4856            __in  INT BaseVertexLocation,
4857            /* [annotation] */
4858            __in  UINT StartInstanceLocation) = 0;
4859       
4860        virtual void STDMETHODCALLTYPE DrawInstanced(
4861            /* [annotation] */
4862            __in  UINT VertexCountPerInstance,
4863            /* [annotation] */
4864            __in  UINT InstanceCount,
4865            /* [annotation] */
4866            __in  UINT StartVertexLocation,
4867            /* [annotation] */
4868            __in  UINT StartInstanceLocation) = 0;
4869       
4870        virtual void STDMETHODCALLTYPE GSSetConstantBuffers(
4871            /* [annotation] */
4872            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
4873            /* [annotation] */
4874            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
4875            /* [annotation] */
4876            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers) = 0;
4877       
4878        virtual void STDMETHODCALLTYPE GSSetShader(
4879            /* [annotation] */
4880            __in_opt  ID3D10GeometryShader *pShader) = 0;
4881       
4882        virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
4883            /* [annotation] */
4884            __in  D3D10_PRIMITIVE_TOPOLOGY Topology) = 0;
4885       
4886        virtual void STDMETHODCALLTYPE VSSetShaderResources(
4887            /* [annotation] */
4888            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
4889            /* [annotation] */
4890            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
4891            /* [annotation] */
4892            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
4893       
4894        virtual void STDMETHODCALLTYPE VSSetSamplers(
4895            /* [annotation] */
4896            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
4897            /* [annotation] */
4898            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
4899            /* [annotation] */
4900            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers) = 0;
4901       
4902        virtual void STDMETHODCALLTYPE SetPredication(
4903            /* [annotation] */
4904            __in_opt  ID3D10Predicate *pPredicate,
4905            /* [annotation] */
4906            __in  BOOL PredicateValue) = 0;
4907       
4908        virtual void STDMETHODCALLTYPE GSSetShaderResources(
4909            /* [annotation] */
4910            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
4911            /* [annotation] */
4912            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
4913            /* [annotation] */
4914            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
4915       
4916        virtual void STDMETHODCALLTYPE GSSetSamplers(
4917            /* [annotation] */
4918            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
4919            /* [annotation] */
4920            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
4921            /* [annotation] */
4922            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers) = 0;
4923       
4924        virtual void STDMETHODCALLTYPE OMSetRenderTargets(
4925            /* [annotation] */
4926            __in_range( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
4927            /* [annotation] */
4928            __in_ecount_opt(NumViews)  ID3D10RenderTargetView *const *ppRenderTargetViews,
4929            /* [annotation] */
4930            __in_opt  ID3D10DepthStencilView *pDepthStencilView) = 0;
4931       
4932        virtual void STDMETHODCALLTYPE OMSetBlendState(
4933            /* [annotation] */
4934            __in_opt  ID3D10BlendState *pBlendState,
4935            /* [annotation] */
4936            __in  const FLOAT BlendFactor[ 4 ],
4937            /* [annotation] */
4938            __in  UINT SampleMask) = 0;
4939       
4940        virtual void STDMETHODCALLTYPE OMSetDepthStencilState(
4941            /* [annotation] */
4942            __in_opt  ID3D10DepthStencilState *pDepthStencilState,
4943            /* [annotation] */
4944            __in  UINT StencilRef) = 0;
4945       
4946        virtual void STDMETHODCALLTYPE SOSetTargets(
4947            /* [annotation] */
4948            __in_range( 0, D3D10_SO_BUFFER_SLOT_COUNT)  UINT NumBuffers,
4949            /* [annotation] */
4950            __in_ecount_opt(NumBuffers)  ID3D10Buffer *const *ppSOTargets,
4951            /* [annotation] */
4952            __in_ecount_opt(NumBuffers)  const UINT *pOffsets) = 0;
4953       
4954        virtual void STDMETHODCALLTYPE DrawAuto( void) = 0;
4955       
4956        virtual void STDMETHODCALLTYPE RSSetState(
4957            /* [annotation] */
4958            __in_opt  ID3D10RasterizerState *pRasterizerState) = 0;
4959       
4960        virtual void STDMETHODCALLTYPE RSSetViewports(
4961            /* [annotation] */
4962            __in_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumViewports,
4963            /* [annotation] */
4964            __in_ecount_opt(NumViewports)  const D3D10_VIEWPORT *pViewports) = 0;
4965       
4966        virtual void STDMETHODCALLTYPE RSSetScissorRects(
4967            /* [annotation] */
4968            __in_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumRects,
4969            /* [annotation] */
4970            __in_ecount_opt(NumRects)  const D3D10_RECT *pRects) = 0;
4971       
4972        virtual void STDMETHODCALLTYPE CopySubresourceRegion(
4973            /* [annotation] */
4974            __in  ID3D10Resource *pDstResource,
4975            /* [annotation] */
4976            __in  UINT DstSubresource,
4977            /* [annotation] */
4978            __in  UINT DstX,
4979            /* [annotation] */
4980            __in  UINT DstY,
4981            /* [annotation] */
4982            __in  UINT DstZ,
4983            /* [annotation] */
4984            __in  ID3D10Resource *pSrcResource,
4985            /* [annotation] */
4986            __in  UINT SrcSubresource,
4987            /* [annotation] */
4988            __in_opt  const D3D10_BOX *pSrcBox) = 0;
4989       
4990        virtual void STDMETHODCALLTYPE CopyResource(
4991            /* [annotation] */
4992            __in  ID3D10Resource *pDstResource,
4993            /* [annotation] */
4994            __in  ID3D10Resource *pSrcResource) = 0;
4995       
4996        virtual void STDMETHODCALLTYPE UpdateSubresource(
4997            /* [annotation] */
4998            __in  ID3D10Resource *pDstResource,
4999            /* [annotation] */
5000            __in  UINT DstSubresource,
5001            /* [annotation] */
5002            __in_opt  const D3D10_BOX *pDstBox,
5003            /* [annotation] */
5004            __in  const void *pSrcData,
5005            /* [annotation] */
5006            __in  UINT SrcRowPitch,
5007            /* [annotation] */
5008            __in  UINT SrcDepthPitch) = 0;
5009       
5010        virtual void STDMETHODCALLTYPE ClearRenderTargetView(
5011            /* [annotation] */
5012            __in  ID3D10RenderTargetView *pRenderTargetView,
5013            /* [annotation] */
5014            __in  const FLOAT ColorRGBA[ 4 ]) = 0;
5015       
5016        virtual void STDMETHODCALLTYPE ClearDepthStencilView(
5017            /* [annotation] */
5018            __in  ID3D10DepthStencilView *pDepthStencilView,
5019            /* [annotation] */
5020            __in  UINT ClearFlags,
5021            /* [annotation] */
5022            __in  FLOAT Depth,
5023            /* [annotation] */
5024            __in  UINT8 Stencil) = 0;
5025       
5026        virtual void STDMETHODCALLTYPE GenerateMips(
5027            /* [annotation] */
5028            __in  ID3D10ShaderResourceView *pShaderResourceView) = 0;
5029       
5030        virtual void STDMETHODCALLTYPE ResolveSubresource(
5031            /* [annotation] */
5032            __in  ID3D10Resource *pDstResource,
5033            /* [annotation] */
5034            __in  UINT DstSubresource,
5035            /* [annotation] */
5036            __in  ID3D10Resource *pSrcResource,
5037            /* [annotation] */
5038            __in  UINT SrcSubresource,
5039            /* [annotation] */
5040            __in  DXGI_FORMAT Format) = 0;
5041       
5042        virtual void STDMETHODCALLTYPE VSGetConstantBuffers(
5043            /* [annotation] */
5044            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5045            /* [annotation] */
5046            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5047            /* [annotation] */
5048            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers) = 0;
5049       
5050        virtual void STDMETHODCALLTYPE PSGetShaderResources(
5051            /* [annotation] */
5052            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5053            /* [annotation] */
5054            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5055            /* [annotation] */
5056            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
5057       
5058        virtual void STDMETHODCALLTYPE PSGetShader(
5059            /* [annotation] */
5060            __out  ID3D10PixelShader **ppPixelShader) = 0;
5061       
5062        virtual void STDMETHODCALLTYPE PSGetSamplers(
5063            /* [annotation] */
5064            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5065            /* [annotation] */
5066            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5067            /* [annotation] */
5068            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers) = 0;
5069       
5070        virtual void STDMETHODCALLTYPE VSGetShader(
5071            /* [annotation] */
5072            __out  ID3D10VertexShader **ppVertexShader) = 0;
5073       
5074        virtual void STDMETHODCALLTYPE PSGetConstantBuffers(
5075            /* [annotation] */
5076            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5077            /* [annotation] */
5078            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5079            /* [annotation] */
5080            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers) = 0;
5081       
5082        virtual void STDMETHODCALLTYPE IAGetInputLayout(
5083            /* [annotation] */
5084            __out  ID3D10InputLayout **ppInputLayout) = 0;
5085       
5086        virtual void STDMETHODCALLTYPE IAGetVertexBuffers(
5087            /* [annotation] */
5088            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5089            /* [annotation] */
5090            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5091            /* [annotation] */
5092            __out_ecount_opt(NumBuffers)  ID3D10Buffer **ppVertexBuffers,
5093            /* [annotation] */
5094            __out_ecount_opt(NumBuffers)  UINT *pStrides,
5095            /* [annotation] */
5096            __out_ecount_opt(NumBuffers)  UINT *pOffsets) = 0;
5097       
5098        virtual void STDMETHODCALLTYPE IAGetIndexBuffer(
5099            /* [annotation] */
5100            __out_opt  ID3D10Buffer **pIndexBuffer,
5101            /* [annotation] */
5102            __out_opt  DXGI_FORMAT *Format,
5103            /* [annotation] */
5104            __out_opt  UINT *Offset) = 0;
5105       
5106        virtual void STDMETHODCALLTYPE GSGetConstantBuffers(
5107            /* [annotation] */
5108            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5109            /* [annotation] */
5110            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5111            /* [annotation] */
5112            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers) = 0;
5113       
5114        virtual void STDMETHODCALLTYPE GSGetShader(
5115            /* [annotation] */
5116            __out  ID3D10GeometryShader **ppGeometryShader) = 0;
5117       
5118        virtual void STDMETHODCALLTYPE IAGetPrimitiveTopology(
5119            /* [annotation] */
5120            __out  D3D10_PRIMITIVE_TOPOLOGY *pTopology) = 0;
5121       
5122        virtual void STDMETHODCALLTYPE VSGetShaderResources(
5123            /* [annotation] */
5124            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5125            /* [annotation] */
5126            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5127            /* [annotation] */
5128            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
5129       
5130        virtual void STDMETHODCALLTYPE VSGetSamplers(
5131            /* [annotation] */
5132            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5133            /* [annotation] */
5134            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5135            /* [annotation] */
5136            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers) = 0;
5137       
5138        virtual void STDMETHODCALLTYPE GetPredication(
5139            /* [annotation] */
5140            __out_opt  ID3D10Predicate **ppPredicate,
5141            /* [annotation] */
5142            __out_opt  BOOL *pPredicateValue) = 0;
5143       
5144        virtual void STDMETHODCALLTYPE GSGetShaderResources(
5145            /* [annotation] */
5146            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5147            /* [annotation] */
5148            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5149            /* [annotation] */
5150            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
5151       
5152        virtual void STDMETHODCALLTYPE GSGetSamplers(
5153            /* [annotation] */
5154            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5155            /* [annotation] */
5156            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5157            /* [annotation] */
5158            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers) = 0;
5159       
5160        virtual void STDMETHODCALLTYPE OMGetRenderTargets(
5161            /* [annotation] */
5162            __in_range( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
5163            /* [annotation] */
5164            __out_ecount_opt(NumViews)  ID3D10RenderTargetView **ppRenderTargetViews,
5165            /* [annotation] */
5166            __out_opt  ID3D10DepthStencilView **ppDepthStencilView) = 0;
5167       
5168        virtual void STDMETHODCALLTYPE OMGetBlendState(
5169            /* [annotation] */
5170            __out_opt  ID3D10BlendState **ppBlendState,
5171            /* [annotation] */
5172            __out_opt  FLOAT BlendFactor[ 4 ],
5173            /* [annotation] */
5174            __out_opt  UINT *pSampleMask) = 0;
5175       
5176        virtual void STDMETHODCALLTYPE OMGetDepthStencilState(
5177            /* [annotation] */
5178            __out_opt  ID3D10DepthStencilState **ppDepthStencilState,
5179            /* [annotation] */
5180            __out_opt  UINT *pStencilRef) = 0;
5181       
5182        virtual void STDMETHODCALLTYPE SOGetTargets(
5183            /* [annotation] */
5184            __in_range( 0, D3D10_SO_BUFFER_SLOT_COUNT )  UINT NumBuffers,
5185            /* [annotation] */
5186            __out_ecount_opt(NumBuffers)  ID3D10Buffer **ppSOTargets,
5187            /* [annotation] */
5188            __out_ecount_opt(NumBuffers)  UINT *pOffsets) = 0;
5189       
5190        virtual void STDMETHODCALLTYPE RSGetState(
5191            /* [annotation] */
5192            __out  ID3D10RasterizerState **ppRasterizerState) = 0;
5193       
5194        virtual void STDMETHODCALLTYPE RSGetViewports(
5195            /* [annotation] */
5196            __inout /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *NumViewports,
5197            /* [annotation] */
5198            __out_ecount_opt(*NumViewports)  D3D10_VIEWPORT *pViewports) = 0;
5199       
5200        virtual void STDMETHODCALLTYPE RSGetScissorRects(
5201            /* [annotation] */
5202            __inout /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *NumRects,
5203            /* [annotation] */
5204            __out_ecount_opt(*NumRects)  D3D10_RECT *pRects) = 0;
5205       
5206        virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0;
5207       
5208        virtual HRESULT STDMETHODCALLTYPE SetExceptionMode(
5209            UINT RaiseFlags) = 0;
5210       
5211        virtual UINT STDMETHODCALLTYPE GetExceptionMode( void) = 0;
5212       
5213        virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
5214            /* [annotation] */
5215            __in  REFGUID guid,
5216            /* [annotation] */
5217            __inout  UINT *pDataSize,
5218            /* [annotation] */
5219            __out_bcount_opt(*pDataSize)  void *pData) = 0;
5220       
5221        virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
5222            /* [annotation] */
5223            __in  REFGUID guid,
5224            /* [annotation] */
5225            __in  UINT DataSize,
5226            /* [annotation] */
5227            __in_bcount_opt(DataSize)  const void *pData) = 0;
5228       
5229        virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
5230            /* [annotation] */
5231            __in  REFGUID guid,
5232            /* [annotation] */
5233            __in_opt  const IUnknown *pData) = 0;
5234       
5235        virtual void STDMETHODCALLTYPE ClearState( void) = 0;
5236       
5237        virtual void STDMETHODCALLTYPE Flush( void) = 0;
5238       
5239        virtual HRESULT STDMETHODCALLTYPE CreateBuffer(
5240            /* [annotation] */
5241            __in  const D3D10_BUFFER_DESC *pDesc,
5242            /* [annotation] */
5243            __in_opt  const D3D10_SUBRESOURCE_DATA *pInitialData,
5244            /* [annotation] */
5245            __out_opt  ID3D10Buffer **ppBuffer) = 0;
5246       
5247        virtual HRESULT STDMETHODCALLTYPE CreateTexture1D(
5248            /* [annotation] */
5249            __in  const D3D10_TEXTURE1D_DESC *pDesc,
5250            /* [annotation] */
5251            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D10_SUBRESOURCE_DATA *pInitialData,
5252            /* [annotation] */
5253            __out  ID3D10Texture1D **ppTexture1D) = 0;
5254       
5255        virtual HRESULT STDMETHODCALLTYPE CreateTexture2D(
5256            /* [annotation] */
5257            __in  const D3D10_TEXTURE2D_DESC *pDesc,
5258            /* [annotation] */
5259            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D10_SUBRESOURCE_DATA *pInitialData,
5260            /* [annotation] */
5261            __out  ID3D10Texture2D **ppTexture2D) = 0;
5262       
5263        virtual HRESULT STDMETHODCALLTYPE CreateTexture3D(
5264            /* [annotation] */
5265            __in  const D3D10_TEXTURE3D_DESC *pDesc,
5266            /* [annotation] */
5267            __in_xcount_opt(pDesc->MipLevels)  const D3D10_SUBRESOURCE_DATA *pInitialData,
5268            /* [annotation] */
5269            __out  ID3D10Texture3D **ppTexture3D) = 0;
5270       
5271        virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView(
5272            /* [annotation] */
5273            __in  ID3D10Resource *pResource,
5274            /* [annotation] */
5275            __in_opt  const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
5276            /* [annotation] */
5277            __out_opt  ID3D10ShaderResourceView **ppSRView) = 0;
5278       
5279        virtual HRESULT STDMETHODCALLTYPE CreateRenderTargetView(
5280            /* [annotation] */
5281            __in  ID3D10Resource *pResource,
5282            /* [annotation] */
5283            __in_opt  const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
5284            /* [annotation] */
5285            __out_opt  ID3D10RenderTargetView **ppRTView) = 0;
5286       
5287        virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilView(
5288            /* [annotation] */
5289            __in  ID3D10Resource *pResource,
5290            /* [annotation] */
5291            __in_opt  const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
5292            /* [annotation] */
5293            __out_opt  ID3D10DepthStencilView **ppDepthStencilView) = 0;
5294       
5295        virtual HRESULT STDMETHODCALLTYPE CreateInputLayout(
5296            /* [annotation] */
5297            __in_ecount(NumElements)  const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
5298            /* [annotation] */
5299            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT )  UINT NumElements,
5300            /* [annotation] */
5301            __in  const void *pShaderBytecodeWithInputSignature,
5302            /* [annotation] */
5303            __in  SIZE_T BytecodeLength,
5304            /* [annotation] */
5305            __out_opt  ID3D10InputLayout **ppInputLayout) = 0;
5306       
5307        virtual HRESULT STDMETHODCALLTYPE CreateVertexShader(
5308            /* [annotation] */
5309            __in  const void *pShaderBytecode,
5310            /* [annotation] */
5311            __in  SIZE_T BytecodeLength,
5312            /* [annotation] */
5313            __out_opt  ID3D10VertexShader **ppVertexShader) = 0;
5314       
5315        virtual HRESULT STDMETHODCALLTYPE CreateGeometryShader(
5316            /* [annotation] */
5317            __in  const void *pShaderBytecode,
5318            /* [annotation] */
5319            __in  SIZE_T BytecodeLength,
5320            /* [annotation] */
5321            __out_opt  ID3D10GeometryShader **ppGeometryShader) = 0;
5322       
5323        virtual HRESULT STDMETHODCALLTYPE CreateGeometryShaderWithStreamOutput(
5324            /* [annotation] */
5325            __in  const void *pShaderBytecode,
5326            /* [annotation] */
5327            __in  SIZE_T BytecodeLength,
5328            /* [annotation] */
5329            __in_ecount_opt(NumEntries)  const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
5330            /* [annotation] */
5331            __in_range( 0, D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT )  UINT NumEntries,
5332            /* [annotation] */
5333            __in  UINT OutputStreamStride,
5334            /* [annotation] */
5335            __out_opt  ID3D10GeometryShader **ppGeometryShader) = 0;
5336       
5337        virtual HRESULT STDMETHODCALLTYPE CreatePixelShader(
5338            /* [annotation] */
5339            __in  const void *pShaderBytecode,
5340            /* [annotation] */
5341            __in  SIZE_T BytecodeLength,
5342            /* [annotation] */
5343            __out_opt  ID3D10PixelShader **ppPixelShader) = 0;
5344       
5345        virtual HRESULT STDMETHODCALLTYPE CreateBlendState(
5346            /* [annotation] */
5347            __in  const D3D10_BLEND_DESC *pBlendStateDesc,
5348            /* [annotation] */
5349            __out_opt  ID3D10BlendState **ppBlendState) = 0;
5350       
5351        virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilState(
5352            /* [annotation] */
5353            __in  const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
5354            /* [annotation] */
5355            __out_opt  ID3D10DepthStencilState **ppDepthStencilState) = 0;
5356       
5357        virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState(
5358            /* [annotation] */
5359            __in  const D3D10_RASTERIZER_DESC *pRasterizerDesc,
5360            /* [annotation] */
5361            __out_opt  ID3D10RasterizerState **ppRasterizerState) = 0;
5362       
5363        virtual HRESULT STDMETHODCALLTYPE CreateSamplerState(
5364            /* [annotation] */
5365            __in  const D3D10_SAMPLER_DESC *pSamplerDesc,
5366            /* [annotation] */
5367            __out_opt  ID3D10SamplerState **ppSamplerState) = 0;
5368       
5369        virtual HRESULT STDMETHODCALLTYPE CreateQuery(
5370            /* [annotation] */
5371            __in  const D3D10_QUERY_DESC *pQueryDesc,
5372            /* [annotation] */
5373            __out_opt  ID3D10Query **ppQuery) = 0;
5374       
5375        virtual HRESULT STDMETHODCALLTYPE CreatePredicate(
5376            /* [annotation] */
5377            __in  const D3D10_QUERY_DESC *pPredicateDesc,
5378            /* [annotation] */
5379            __out_opt  ID3D10Predicate **ppPredicate) = 0;
5380       
5381        virtual HRESULT STDMETHODCALLTYPE CreateCounter(
5382            /* [annotation] */
5383            __in  const D3D10_COUNTER_DESC *pCounterDesc,
5384            /* [annotation] */
5385            __out_opt  ID3D10Counter **ppCounter) = 0;
5386       
5387        virtual HRESULT STDMETHODCALLTYPE CheckFormatSupport(
5388            /* [annotation] */
5389            __in  DXGI_FORMAT Format,
5390            /* [annotation] */
5391            __out  UINT *pFormatSupport) = 0;
5392       
5393        virtual HRESULT STDMETHODCALLTYPE CheckMultisampleQualityLevels(
5394            /* [annotation] */
5395            __in  DXGI_FORMAT Format,
5396            /* [annotation] */
5397            __in  UINT SampleCount,
5398            /* [annotation] */
5399            __out  UINT *pNumQualityLevels) = 0;
5400       
5401        virtual void STDMETHODCALLTYPE CheckCounterInfo(
5402            /* [annotation] */
5403            __out  D3D10_COUNTER_INFO *pCounterInfo) = 0;
5404       
5405        virtual HRESULT STDMETHODCALLTYPE CheckCounter(
5406            /* [annotation] */
5407            __in  const D3D10_COUNTER_DESC *pDesc,
5408            /* [annotation] */
5409            __out  D3D10_COUNTER_TYPE *pType,
5410            /* [annotation] */
5411            __out  UINT *pActiveCounters,
5412            /* [annotation] */
5413            __out_ecount_opt(*pNameLength)  LPSTR szName,
5414            /* [annotation] */
5415            __inout_opt  UINT *pNameLength,
5416            /* [annotation] */
5417            __out_ecount_opt(*pUnitsLength)  LPSTR szUnits,
5418            /* [annotation] */
5419            __inout_opt  UINT *pUnitsLength,
5420            /* [annotation] */
5421            __out_ecount_opt(*pDescriptionLength)  LPSTR szDescription,
5422            /* [annotation] */
5423            __inout_opt  UINT *pDescriptionLength) = 0;
5424       
5425        virtual UINT STDMETHODCALLTYPE GetCreationFlags( void) = 0;
5426       
5427        virtual HRESULT STDMETHODCALLTYPE OpenSharedResource(
5428            /* [annotation] */
5429            __in  HANDLE hResource,
5430            /* [annotation] */
5431            __in  REFIID ReturnedInterface,
5432            /* [annotation] */
5433            __out_opt  void **ppResource) = 0;
5434       
5435        virtual void STDMETHODCALLTYPE SetTextFilterSize(
5436            /* [annotation] */
5437            __in  UINT Width,
5438            /* [annotation] */
5439            __in  UINT Height) = 0;
5440       
5441        virtual void STDMETHODCALLTYPE GetTextFilterSize(
5442            /* [annotation] */
5443            __out_opt  UINT *pWidth,
5444            /* [annotation] */
5445            __out_opt  UINT *pHeight) = 0;
5446       
5447    };
5448   
5449#else    /* C style interface */
5450
5451    typedef struct ID3D10DeviceVtbl
5452    {
5453        BEGIN_INTERFACE
5454       
5455        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5456            ID3D10Device * This,
5457            /* [in] */ REFIID riid,
5458            /* [annotation][iid_is][out] */
5459            __RPC__deref_out  void **ppvObject);
5460       
5461        ULONG ( STDMETHODCALLTYPE *AddRef )(
5462            ID3D10Device * This);
5463       
5464        ULONG ( STDMETHODCALLTYPE *Release )(
5465            ID3D10Device * This);
5466       
5467        void ( STDMETHODCALLTYPE *VSSetConstantBuffers )(
5468            ID3D10Device * This,
5469            /* [annotation] */
5470            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5471            /* [annotation] */
5472            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5473            /* [annotation] */
5474            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers);
5475       
5476        void ( STDMETHODCALLTYPE *PSSetShaderResources )(
5477            ID3D10Device * This,
5478            /* [annotation] */
5479            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5480            /* [annotation] */
5481            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5482            /* [annotation] */
5483            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews);
5484       
5485        void ( STDMETHODCALLTYPE *PSSetShader )(
5486            ID3D10Device * This,
5487            /* [annotation] */
5488            __in_opt  ID3D10PixelShader *pPixelShader);
5489       
5490        void ( STDMETHODCALLTYPE *PSSetSamplers )(
5491            ID3D10Device * This,
5492            /* [annotation] */
5493            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5494            /* [annotation] */
5495            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5496            /* [annotation] */
5497            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers);
5498       
5499        void ( STDMETHODCALLTYPE *VSSetShader )(
5500            ID3D10Device * This,
5501            /* [annotation] */
5502            __in_opt  ID3D10VertexShader *pVertexShader);
5503       
5504        void ( STDMETHODCALLTYPE *DrawIndexed )(
5505            ID3D10Device * This,
5506            /* [annotation] */
5507            __in  UINT IndexCount,
5508            /* [annotation] */
5509            __in  UINT StartIndexLocation,
5510            /* [annotation] */
5511            __in  INT BaseVertexLocation);
5512       
5513        void ( STDMETHODCALLTYPE *Draw )(
5514            ID3D10Device * This,
5515            /* [annotation] */
5516            __in  UINT VertexCount,
5517            /* [annotation] */
5518            __in  UINT StartVertexLocation);
5519       
5520        void ( STDMETHODCALLTYPE *PSSetConstantBuffers )(
5521            ID3D10Device * This,
5522            /* [annotation] */
5523            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5524            /* [annotation] */
5525            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5526            /* [annotation] */
5527            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers);
5528       
5529        void ( STDMETHODCALLTYPE *IASetInputLayout )(
5530            ID3D10Device * This,
5531            /* [annotation] */
5532            __in_opt  ID3D10InputLayout *pInputLayout);
5533       
5534        void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
5535            ID3D10Device * This,
5536            /* [annotation] */
5537            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5538            /* [annotation] */
5539            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5540            /* [annotation] */
5541            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppVertexBuffers,
5542            /* [annotation] */
5543            __in_ecount(NumBuffers)  const UINT *pStrides,
5544            /* [annotation] */
5545            __in_ecount(NumBuffers)  const UINT *pOffsets);
5546       
5547        void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
5548            ID3D10Device * This,
5549            /* [annotation] */
5550            __in_opt  ID3D10Buffer *pIndexBuffer,
5551            /* [annotation] */
5552            __in  DXGI_FORMAT Format,
5553            /* [annotation] */
5554            __in  UINT Offset);
5555       
5556        void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
5557            ID3D10Device * This,
5558            /* [annotation] */
5559            __in  UINT IndexCountPerInstance,
5560            /* [annotation] */
5561            __in  UINT InstanceCount,
5562            /* [annotation] */
5563            __in  UINT StartIndexLocation,
5564            /* [annotation] */
5565            __in  INT BaseVertexLocation,
5566            /* [annotation] */
5567            __in  UINT StartInstanceLocation);
5568       
5569        void ( STDMETHODCALLTYPE *DrawInstanced )(
5570            ID3D10Device * This,
5571            /* [annotation] */
5572            __in  UINT VertexCountPerInstance,
5573            /* [annotation] */
5574            __in  UINT InstanceCount,
5575            /* [annotation] */
5576            __in  UINT StartVertexLocation,
5577            /* [annotation] */
5578            __in  UINT StartInstanceLocation);
5579       
5580        void ( STDMETHODCALLTYPE *GSSetConstantBuffers )(
5581            ID3D10Device * This,
5582            /* [annotation] */
5583            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5584            /* [annotation] */
5585            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5586            /* [annotation] */
5587            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers);
5588       
5589        void ( STDMETHODCALLTYPE *GSSetShader )(
5590            ID3D10Device * This,
5591            /* [annotation] */
5592            __in_opt  ID3D10GeometryShader *pShader);
5593       
5594        void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
5595            ID3D10Device * This,
5596            /* [annotation] */
5597            __in  D3D10_PRIMITIVE_TOPOLOGY Topology);
5598       
5599        void ( STDMETHODCALLTYPE *VSSetShaderResources )(
5600            ID3D10Device * This,
5601            /* [annotation] */
5602            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5603            /* [annotation] */
5604            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5605            /* [annotation] */
5606            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews);
5607       
5608        void ( STDMETHODCALLTYPE *VSSetSamplers )(
5609            ID3D10Device * This,
5610            /* [annotation] */
5611            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5612            /* [annotation] */
5613            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5614            /* [annotation] */
5615            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers);
5616       
5617        void ( STDMETHODCALLTYPE *SetPredication )(
5618            ID3D10Device * This,
5619            /* [annotation] */
5620            __in_opt  ID3D10Predicate *pPredicate,
5621            /* [annotation] */
5622            __in  BOOL PredicateValue);
5623       
5624        void ( STDMETHODCALLTYPE *GSSetShaderResources )(
5625            ID3D10Device * This,
5626            /* [annotation] */
5627            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5628            /* [annotation] */
5629            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5630            /* [annotation] */
5631            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews);
5632       
5633        void ( STDMETHODCALLTYPE *GSSetSamplers )(
5634            ID3D10Device * This,
5635            /* [annotation] */
5636            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5637            /* [annotation] */
5638            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5639            /* [annotation] */
5640            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers);
5641       
5642        void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
5643            ID3D10Device * This,
5644            /* [annotation] */
5645            __in_range( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
5646            /* [annotation] */
5647            __in_ecount_opt(NumViews)  ID3D10RenderTargetView *const *ppRenderTargetViews,
5648            /* [annotation] */
5649            __in_opt  ID3D10DepthStencilView *pDepthStencilView);
5650       
5651        void ( STDMETHODCALLTYPE *OMSetBlendState )(
5652            ID3D10Device * This,
5653            /* [annotation] */
5654            __in_opt  ID3D10BlendState *pBlendState,
5655            /* [annotation] */
5656            __in  const FLOAT BlendFactor[ 4 ],
5657            /* [annotation] */
5658            __in  UINT SampleMask);
5659       
5660        void ( STDMETHODCALLTYPE *OMSetDepthStencilState )(
5661            ID3D10Device * This,
5662            /* [annotation] */
5663            __in_opt  ID3D10DepthStencilState *pDepthStencilState,
5664            /* [annotation] */
5665            __in  UINT StencilRef);
5666       
5667        void ( STDMETHODCALLTYPE *SOSetTargets )(
5668            ID3D10Device * This,
5669            /* [annotation] */
5670            __in_range( 0, D3D10_SO_BUFFER_SLOT_COUNT)  UINT NumBuffers,
5671            /* [annotation] */
5672            __in_ecount_opt(NumBuffers)  ID3D10Buffer *const *ppSOTargets,
5673            /* [annotation] */
5674            __in_ecount_opt(NumBuffers)  const UINT *pOffsets);
5675       
5676        void ( STDMETHODCALLTYPE *DrawAuto )(
5677            ID3D10Device * This);
5678       
5679        void ( STDMETHODCALLTYPE *RSSetState )(
5680            ID3D10Device * This,
5681            /* [annotation] */
5682            __in_opt  ID3D10RasterizerState *pRasterizerState);
5683       
5684        void ( STDMETHODCALLTYPE *RSSetViewports )(
5685            ID3D10Device * This,
5686            /* [annotation] */
5687            __in_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumViewports,
5688            /* [annotation] */
5689            __in_ecount_opt(NumViewports)  const D3D10_VIEWPORT *pViewports);
5690       
5691        void ( STDMETHODCALLTYPE *RSSetScissorRects )(
5692            ID3D10Device * This,
5693            /* [annotation] */
5694            __in_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumRects,
5695            /* [annotation] */
5696            __in_ecount_opt(NumRects)  const D3D10_RECT *pRects);
5697       
5698        void ( STDMETHODCALLTYPE *CopySubresourceRegion )(
5699            ID3D10Device * This,
5700            /* [annotation] */
5701            __in  ID3D10Resource *pDstResource,
5702            /* [annotation] */
5703            __in  UINT DstSubresource,
5704            /* [annotation] */
5705            __in  UINT DstX,
5706            /* [annotation] */
5707            __in  UINT DstY,
5708            /* [annotation] */
5709            __in  UINT DstZ,
5710            /* [annotation] */
5711            __in  ID3D10Resource *pSrcResource,
5712            /* [annotation] */
5713            __in  UINT SrcSubresource,
5714            /* [annotation] */
5715            __in_opt  const D3D10_BOX *pSrcBox);
5716       
5717        void ( STDMETHODCALLTYPE *CopyResource )(
5718            ID3D10Device * This,
5719            /* [annotation] */
5720            __in  ID3D10Resource *pDstResource,
5721            /* [annotation] */
5722            __in  ID3D10Resource *pSrcResource);
5723       
5724        void ( STDMETHODCALLTYPE *UpdateSubresource )(
5725            ID3D10Device * This,
5726            /* [annotation] */
5727            __in  ID3D10Resource *pDstResource,
5728            /* [annotation] */
5729            __in  UINT DstSubresource,
5730            /* [annotation] */
5731            __in_opt  const D3D10_BOX *pDstBox,
5732            /* [annotation] */
5733            __in  const void *pSrcData,
5734            /* [annotation] */
5735            __in  UINT SrcRowPitch,
5736            /* [annotation] */
5737            __in  UINT SrcDepthPitch);
5738       
5739        void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
5740            ID3D10Device * This,
5741            /* [annotation] */
5742            __in  ID3D10RenderTargetView *pRenderTargetView,
5743            /* [annotation] */
5744            __in  const FLOAT ColorRGBA[ 4 ]);
5745       
5746        void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
5747            ID3D10Device * This,
5748            /* [annotation] */
5749            __in  ID3D10DepthStencilView *pDepthStencilView,
5750            /* [annotation] */
5751            __in  UINT ClearFlags,
5752            /* [annotation] */
5753            __in  FLOAT Depth,
5754            /* [annotation] */
5755            __in  UINT8 Stencil);
5756       
5757        void ( STDMETHODCALLTYPE *GenerateMips )(
5758            ID3D10Device * This,
5759            /* [annotation] */
5760            __in  ID3D10ShaderResourceView *pShaderResourceView);
5761       
5762        void ( STDMETHODCALLTYPE *ResolveSubresource )(
5763            ID3D10Device * This,
5764            /* [annotation] */
5765            __in  ID3D10Resource *pDstResource,
5766            /* [annotation] */
5767            __in  UINT DstSubresource,
5768            /* [annotation] */
5769            __in  ID3D10Resource *pSrcResource,
5770            /* [annotation] */
5771            __in  UINT SrcSubresource,
5772            /* [annotation] */
5773            __in  DXGI_FORMAT Format);
5774       
5775        void ( STDMETHODCALLTYPE *VSGetConstantBuffers )(
5776            ID3D10Device * This,
5777            /* [annotation] */
5778            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5779            /* [annotation] */
5780            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5781            /* [annotation] */
5782            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers);
5783       
5784        void ( STDMETHODCALLTYPE *PSGetShaderResources )(
5785            ID3D10Device * This,
5786            /* [annotation] */
5787            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5788            /* [annotation] */
5789            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5790            /* [annotation] */
5791            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews);
5792       
5793        void ( STDMETHODCALLTYPE *PSGetShader )(
5794            ID3D10Device * This,
5795            /* [annotation] */
5796            __out  ID3D10PixelShader **ppPixelShader);
5797       
5798        void ( STDMETHODCALLTYPE *PSGetSamplers )(
5799            ID3D10Device * This,
5800            /* [annotation] */
5801            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5802            /* [annotation] */
5803            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5804            /* [annotation] */
5805            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers);
5806       
5807        void ( STDMETHODCALLTYPE *VSGetShader )(
5808            ID3D10Device * This,
5809            /* [annotation] */
5810            __out  ID3D10VertexShader **ppVertexShader);
5811       
5812        void ( STDMETHODCALLTYPE *PSGetConstantBuffers )(
5813            ID3D10Device * This,
5814            /* [annotation] */
5815            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5816            /* [annotation] */
5817            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5818            /* [annotation] */
5819            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers);
5820       
5821        void ( STDMETHODCALLTYPE *IAGetInputLayout )(
5822            ID3D10Device * This,
5823            /* [annotation] */
5824            __out  ID3D10InputLayout **ppInputLayout);
5825       
5826        void ( STDMETHODCALLTYPE *IAGetVertexBuffers )(
5827            ID3D10Device * This,
5828            /* [annotation] */
5829            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5830            /* [annotation] */
5831            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5832            /* [annotation] */
5833            __out_ecount_opt(NumBuffers)  ID3D10Buffer **ppVertexBuffers,
5834            /* [annotation] */
5835            __out_ecount_opt(NumBuffers)  UINT *pStrides,
5836            /* [annotation] */
5837            __out_ecount_opt(NumBuffers)  UINT *pOffsets);
5838       
5839        void ( STDMETHODCALLTYPE *IAGetIndexBuffer )(
5840            ID3D10Device * This,
5841            /* [annotation] */
5842            __out_opt  ID3D10Buffer **pIndexBuffer,
5843            /* [annotation] */
5844            __out_opt  DXGI_FORMAT *Format,
5845            /* [annotation] */
5846            __out_opt  UINT *Offset);
5847       
5848        void ( STDMETHODCALLTYPE *GSGetConstantBuffers )(
5849            ID3D10Device * This,
5850            /* [annotation] */
5851            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5852            /* [annotation] */
5853            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5854            /* [annotation] */
5855            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers);
5856       
5857        void ( STDMETHODCALLTYPE *GSGetShader )(
5858            ID3D10Device * This,
5859            /* [annotation] */
5860            __out  ID3D10GeometryShader **ppGeometryShader);
5861       
5862        void ( STDMETHODCALLTYPE *IAGetPrimitiveTopology )(
5863            ID3D10Device * This,
5864            /* [annotation] */
5865            __out  D3D10_PRIMITIVE_TOPOLOGY *pTopology);
5866       
5867        void ( STDMETHODCALLTYPE *VSGetShaderResources )(
5868            ID3D10Device * This,
5869            /* [annotation] */
5870            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5871            /* [annotation] */
5872            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5873            /* [annotation] */
5874            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews);
5875       
5876        void ( STDMETHODCALLTYPE *VSGetSamplers )(
5877            ID3D10Device * This,
5878            /* [annotation] */
5879            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5880            /* [annotation] */
5881            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5882            /* [annotation] */
5883            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers);
5884       
5885        void ( STDMETHODCALLTYPE *GetPredication )(
5886            ID3D10Device * This,
5887            /* [annotation] */
5888            __out_opt  ID3D10Predicate **ppPredicate,
5889            /* [annotation] */
5890            __out_opt  BOOL *pPredicateValue);
5891       
5892        void ( STDMETHODCALLTYPE *GSGetShaderResources )(
5893            ID3D10Device * This,
5894            /* [annotation] */
5895            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5896            /* [annotation] */
5897            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5898            /* [annotation] */
5899            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews);
5900       
5901        void ( STDMETHODCALLTYPE *GSGetSamplers )(
5902            ID3D10Device * This,
5903            /* [annotation] */
5904            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5905            /* [annotation] */
5906            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5907            /* [annotation] */
5908            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers);
5909       
5910        void ( STDMETHODCALLTYPE *OMGetRenderTargets )(
5911            ID3D10Device * This,
5912            /* [annotation] */
5913            __in_range( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
5914            /* [annotation] */
5915            __out_ecount_opt(NumViews)  ID3D10RenderTargetView **ppRenderTargetViews,
5916            /* [annotation] */
5917            __out_opt  ID3D10DepthStencilView **ppDepthStencilView);
5918       
5919        void ( STDMETHODCALLTYPE *OMGetBlendState )(
5920            ID3D10Device * This,
5921            /* [annotation] */
5922            __out_opt  ID3D10BlendState **ppBlendState,
5923            /* [annotation] */
5924            __out_opt  FLOAT BlendFactor[ 4 ],
5925            /* [annotation] */
5926            __out_opt  UINT *pSampleMask);
5927       
5928        void ( STDMETHODCALLTYPE *OMGetDepthStencilState )(
5929            ID3D10Device * This,
5930            /* [annotation] */
5931            __out_opt  ID3D10DepthStencilState **ppDepthStencilState,
5932            /* [annotation] */
5933            __out_opt  UINT *pStencilRef);
5934       
5935        void ( STDMETHODCALLTYPE *SOGetTargets )(
5936            ID3D10Device * This,
5937            /* [annotation] */
5938            __in_range( 0, D3D10_SO_BUFFER_SLOT_COUNT )  UINT NumBuffers,
5939            /* [annotation] */
5940            __out_ecount_opt(NumBuffers)  ID3D10Buffer **ppSOTargets,
5941            /* [annotation] */
5942            __out_ecount_opt(NumBuffers)  UINT *pOffsets);
5943       
5944        void ( STDMETHODCALLTYPE *RSGetState )(
5945            ID3D10Device * This,
5946            /* [annotation] */
5947            __out  ID3D10RasterizerState **ppRasterizerState);
5948       
5949        void ( STDMETHODCALLTYPE *RSGetViewports )(
5950            ID3D10Device * This,
5951            /* [annotation] */
5952            __inout /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *NumViewports,
5953            /* [annotation] */
5954            __out_ecount_opt(*NumViewports)  D3D10_VIEWPORT *pViewports);
5955       
5956        void ( STDMETHODCALLTYPE *RSGetScissorRects )(
5957            ID3D10Device * This,
5958            /* [annotation] */
5959            __inout /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *NumRects,
5960            /* [annotation] */
5961            __out_ecount_opt(*NumRects)  D3D10_RECT *pRects);
5962       
5963        HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
5964            ID3D10Device * This);
5965       
5966        HRESULT ( STDMETHODCALLTYPE *SetExceptionMode )(
5967            ID3D10Device * This,
5968            UINT RaiseFlags);
5969       
5970        UINT ( STDMETHODCALLTYPE *GetExceptionMode )(
5971            ID3D10Device * This);
5972       
5973        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5974            ID3D10Device * This,
5975            /* [annotation] */
5976            __in  REFGUID guid,
5977            /* [annotation] */
5978            __inout  UINT *pDataSize,
5979            /* [annotation] */
5980            __out_bcount_opt(*pDataSize)  void *pData);
5981       
5982        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5983            ID3D10Device * This,
5984            /* [annotation] */
5985            __in  REFGUID guid,
5986            /* [annotation] */
5987            __in  UINT DataSize,
5988            /* [annotation] */
5989            __in_bcount_opt(DataSize)  const void *pData);
5990       
5991        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5992            ID3D10Device * This,
5993            /* [annotation] */
5994            __in  REFGUID guid,
5995            /* [annotation] */
5996            __in_opt  const IUnknown *pData);
5997       
5998        void ( STDMETHODCALLTYPE *ClearState )(
5999            ID3D10Device * This);
6000       
6001        void ( STDMETHODCALLTYPE *Flush )(
6002            ID3D10Device * This);
6003       
6004        HRESULT ( STDMETHODCALLTYPE *CreateBuffer )(
6005            ID3D10Device * This,
6006            /* [annotation] */
6007            __in  const D3D10_BUFFER_DESC *pDesc,
6008            /* [annotation] */
6009            __in_opt  const D3D10_SUBRESOURCE_DATA *pInitialData,
6010            /* [annotation] */
6011            __out_opt  ID3D10Buffer **ppBuffer);
6012       
6013        HRESULT ( STDMETHODCALLTYPE *CreateTexture1D )(
6014            ID3D10Device * This,
6015            /* [annotation] */
6016            __in  const D3D10_TEXTURE1D_DESC *pDesc,
6017            /* [annotation] */
6018            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D10_SUBRESOURCE_DATA *pInitialData,
6019            /* [annotation] */
6020            __out  ID3D10Texture1D **ppTexture1D);
6021       
6022        HRESULT ( STDMETHODCALLTYPE *CreateTexture2D )(
6023            ID3D10Device * This,
6024            /* [annotation] */
6025            __in  const D3D10_TEXTURE2D_DESC *pDesc,
6026            /* [annotation] */
6027            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D10_SUBRESOURCE_DATA *pInitialData,
6028            /* [annotation] */
6029            __out  ID3D10Texture2D **ppTexture2D);
6030       
6031        HRESULT ( STDMETHODCALLTYPE *CreateTexture3D )(
6032            ID3D10Device * This,
6033            /* [annotation] */
6034            __in  const D3D10_TEXTURE3D_DESC *pDesc,
6035            /* [annotation] */
6036            __in_xcount_opt(pDesc->MipLevels)  const D3D10_SUBRESOURCE_DATA *pInitialData,
6037            /* [annotation] */
6038            __out  ID3D10Texture3D **ppTexture3D);
6039       
6040        HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView )(
6041            ID3D10Device * This,
6042            /* [annotation] */
6043            __in  ID3D10Resource *pResource,
6044            /* [annotation] */
6045            __in_opt  const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
6046            /* [annotation] */
6047            __out_opt  ID3D10ShaderResourceView **ppSRView);
6048       
6049        HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView )(
6050            ID3D10Device * This,
6051            /* [annotation] */
6052            __in  ID3D10Resource *pResource,
6053            /* [annotation] */
6054            __in_opt  const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
6055            /* [annotation] */
6056            __out_opt  ID3D10RenderTargetView **ppRTView);
6057       
6058        HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilView )(
6059            ID3D10Device * This,
6060            /* [annotation] */
6061            __in  ID3D10Resource *pResource,
6062            /* [annotation] */
6063            __in_opt  const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
6064            /* [annotation] */
6065            __out_opt  ID3D10DepthStencilView **ppDepthStencilView);
6066       
6067        HRESULT ( STDMETHODCALLTYPE *CreateInputLayout )(
6068            ID3D10Device * This,
6069            /* [annotation] */
6070            __in_ecount(NumElements)  const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
6071            /* [annotation] */
6072            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT )  UINT NumElements,
6073            /* [annotation] */
6074            __in  const void *pShaderBytecodeWithInputSignature,
6075            /* [annotation] */
6076            __in  SIZE_T BytecodeLength,
6077            /* [annotation] */
6078            __out_opt  ID3D10InputLayout **ppInputLayout);
6079       
6080        HRESULT ( STDMETHODCALLTYPE *CreateVertexShader )(
6081            ID3D10Device * This,
6082            /* [annotation] */
6083            __in  const void *pShaderBytecode,
6084            /* [annotation] */
6085            __in  SIZE_T BytecodeLength,
6086            /* [annotation] */
6087            __out_opt  ID3D10VertexShader **ppVertexShader);
6088       
6089        HRESULT ( STDMETHODCALLTYPE *CreateGeometryShader )(
6090            ID3D10Device * This,
6091            /* [annotation] */
6092            __in  const void *pShaderBytecode,
6093            /* [annotation] */
6094            __in  SIZE_T BytecodeLength,
6095            /* [annotation] */
6096            __out_opt  ID3D10GeometryShader **ppGeometryShader);
6097       
6098        HRESULT ( STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput )(
6099            ID3D10Device * This,
6100            /* [annotation] */
6101            __in  const void *pShaderBytecode,
6102            /* [annotation] */
6103            __in  SIZE_T BytecodeLength,
6104            /* [annotation] */
6105            __in_ecount_opt(NumEntries)  const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
6106            /* [annotation] */
6107            __in_range( 0, D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT )  UINT NumEntries,
6108            /* [annotation] */
6109            __in  UINT OutputStreamStride,
6110            /* [annotation] */
6111            __out_opt  ID3D10GeometryShader **ppGeometryShader);
6112       
6113        HRESULT ( STDMETHODCALLTYPE *CreatePixelShader )(
6114            ID3D10Device * This,
6115            /* [annotation] */
6116            __in  const void *pShaderBytecode,
6117            /* [annotation] */
6118            __in  SIZE_T BytecodeLength,
6119            /* [annotation] */
6120            __out_opt  ID3D10PixelShader **ppPixelShader);
6121       
6122        HRESULT ( STDMETHODCALLTYPE *CreateBlendState )(
6123            ID3D10Device * This,
6124            /* [annotation] */
6125            __in  const D3D10_BLEND_DESC *pBlendStateDesc,
6126            /* [annotation] */
6127            __out_opt  ID3D10BlendState **ppBlendState);
6128       
6129        HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilState )(
6130            ID3D10Device * This,
6131            /* [annotation] */
6132            __in  const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
6133            /* [annotation] */
6134            __out_opt  ID3D10DepthStencilState **ppDepthStencilState);
6135       
6136        HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState )(
6137            ID3D10Device * This,
6138            /* [annotation] */
6139            __in  const D3D10_RASTERIZER_DESC *pRasterizerDesc,
6140            /* [annotation] */
6141            __out_opt  ID3D10RasterizerState **ppRasterizerState);
6142       
6143        HRESULT ( STDMETHODCALLTYPE *CreateSamplerState )(
6144            ID3D10Device * This,
6145            /* [annotation] */
6146            __in  const D3D10_SAMPLER_DESC *pSamplerDesc,
6147            /* [annotation] */
6148            __out_opt  ID3D10SamplerState **ppSamplerState);
6149       
6150        HRESULT ( STDMETHODCALLTYPE *CreateQuery )(
6151            ID3D10Device * This,
6152            /* [annotation] */
6153            __in  const D3D10_QUERY_DESC *pQueryDesc,
6154            /* [annotation] */
6155            __out_opt  ID3D10Query **ppQuery);
6156       
6157        HRESULT ( STDMETHODCALLTYPE *CreatePredicate )(
6158            ID3D10Device * This,
6159            /* [annotation] */
6160            __in  const D3D10_QUERY_DESC *pPredicateDesc,
6161            /* [annotation] */
6162            __out_opt  ID3D10Predicate **ppPredicate);
6163       
6164        HRESULT ( STDMETHODCALLTYPE *CreateCounter )(
6165            ID3D10Device * This,
6166            /* [annotation] */
6167            __in  const D3D10_COUNTER_DESC *pCounterDesc,
6168            /* [annotation] */
6169            __out_opt  ID3D10Counter **ppCounter);
6170       
6171        HRESULT ( STDMETHODCALLTYPE *CheckFormatSupport )(
6172            ID3D10Device * This,
6173            /* [annotation] */
6174            __in  DXGI_FORMAT Format,
6175            /* [annotation] */
6176            __out  UINT *pFormatSupport);
6177       
6178        HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels )(
6179            ID3D10Device * This,
6180            /* [annotation] */
6181            __in  DXGI_FORMAT Format,
6182            /* [annotation] */
6183            __in  UINT SampleCount,
6184            /* [annotation] */
6185            __out  UINT *pNumQualityLevels);
6186       
6187        void ( STDMETHODCALLTYPE *CheckCounterInfo )(
6188            ID3D10Device * This,
6189            /* [annotation] */
6190            __out  D3D10_COUNTER_INFO *pCounterInfo);
6191       
6192        HRESULT ( STDMETHODCALLTYPE *CheckCounter )(
6193            ID3D10Device * This,
6194            /* [annotation] */
6195            __in  const D3D10_COUNTER_DESC *pDesc,
6196            /* [annotation] */
6197            __out  D3D10_COUNTER_TYPE *pType,
6198            /* [annotation] */
6199            __out  UINT *pActiveCounters,
6200            /* [annotation] */
6201            __out_ecount_opt(*pNameLength)  LPSTR szName,
6202            /* [annotation] */
6203            __inout_opt  UINT *pNameLength,
6204            /* [annotation] */
6205            __out_ecount_opt(*pUnitsLength)  LPSTR szUnits,
6206            /* [annotation] */
6207            __inout_opt  UINT *pUnitsLength,
6208            /* [annotation] */
6209            __out_ecount_opt(*pDescriptionLength)  LPSTR szDescription,
6210            /* [annotation] */
6211            __inout_opt  UINT *pDescriptionLength);
6212       
6213        UINT ( STDMETHODCALLTYPE *GetCreationFlags )(
6214            ID3D10Device * This);
6215       
6216        HRESULT ( STDMETHODCALLTYPE *OpenSharedResource )(
6217            ID3D10Device * This,
6218            /* [annotation] */
6219            __in  HANDLE hResource,
6220            /* [annotation] */
6221            __in  REFIID ReturnedInterface,
6222            /* [annotation] */
6223            __out_opt  void **ppResource);
6224       
6225        void ( STDMETHODCALLTYPE *SetTextFilterSize )(
6226            ID3D10Device * This,
6227            /* [annotation] */
6228            __in  UINT Width,
6229            /* [annotation] */
6230            __in  UINT Height);
6231       
6232        void ( STDMETHODCALLTYPE *GetTextFilterSize )(
6233            ID3D10Device * This,
6234            /* [annotation] */
6235            __out_opt  UINT *pWidth,
6236            /* [annotation] */
6237            __out_opt  UINT *pHeight);
6238       
6239        END_INTERFACE
6240    } ID3D10DeviceVtbl;
6241
6242    interface ID3D10Device
6243    {
6244        CONST_VTBL struct ID3D10DeviceVtbl *lpVtbl;
6245    };
6246
6247   
6248
6249#ifdef COBJMACROS
6250
6251
6252#define ID3D10Device_QueryInterface(This,riid,ppvObject)   \
6253    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6254
6255#define ID3D10Device_AddRef(This)   \
6256    ( (This)->lpVtbl -> AddRef(This) )
6257
6258#define ID3D10Device_Release(This)   \
6259    ( (This)->lpVtbl -> Release(This) )
6260
6261
6262#define ID3D10Device_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
6263    ( (This)->lpVtbl -> VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
6264
6265#define ID3D10Device_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
6266    ( (This)->lpVtbl -> PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
6267
6268#define ID3D10Device_PSSetShader(This,pPixelShader)   \
6269    ( (This)->lpVtbl -> PSSetShader(This,pPixelShader) )
6270
6271#define ID3D10Device_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
6272    ( (This)->lpVtbl -> PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
6273
6274#define ID3D10Device_VSSetShader(This,pVertexShader)   \
6275    ( (This)->lpVtbl -> VSSetShader(This,pVertexShader) )
6276
6277#define ID3D10Device_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)   \
6278    ( (This)->lpVtbl -> DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) )
6279
6280#define ID3D10Device_Draw(This,VertexCount,StartVertexLocation)   \
6281    ( (This)->lpVtbl -> Draw(This,VertexCount,StartVertexLocation) )
6282
6283#define ID3D10Device_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
6284    ( (This)->lpVtbl -> PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
6285
6286#define ID3D10Device_IASetInputLayout(This,pInputLayout)   \
6287    ( (This)->lpVtbl -> IASetInputLayout(This,pInputLayout) )
6288
6289#define ID3D10Device_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)   \
6290    ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) )
6291
6292#define ID3D10Device_IASetIndexBuffer(This,pIndexBuffer,Format,Offset)   \
6293    ( (This)->lpVtbl -> IASetIndexBuffer(This,pIndexBuffer,Format,Offset) )
6294
6295#define ID3D10Device_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)   \
6296    ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
6297
6298#define ID3D10Device_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)   \
6299    ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
6300
6301#define ID3D10Device_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
6302    ( (This)->lpVtbl -> GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
6303
6304#define ID3D10Device_GSSetShader(This,pShader)   \
6305    ( (This)->lpVtbl -> GSSetShader(This,pShader) )
6306
6307#define ID3D10Device_IASetPrimitiveTopology(This,Topology)   \
6308    ( (This)->lpVtbl -> IASetPrimitiveTopology(This,Topology) )
6309
6310#define ID3D10Device_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
6311    ( (This)->lpVtbl -> VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
6312
6313#define ID3D10Device_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
6314    ( (This)->lpVtbl -> VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
6315
6316#define ID3D10Device_SetPredication(This,pPredicate,PredicateValue)   \
6317    ( (This)->lpVtbl -> SetPredication(This,pPredicate,PredicateValue) )
6318
6319#define ID3D10Device_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
6320    ( (This)->lpVtbl -> GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
6321
6322#define ID3D10Device_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
6323    ( (This)->lpVtbl -> GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
6324
6325#define ID3D10Device_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)   \
6326    ( (This)->lpVtbl -> OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) )
6327
6328#define ID3D10Device_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)   \
6329    ( (This)->lpVtbl -> OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) )
6330
6331#define ID3D10Device_OMSetDepthStencilState(This,pDepthStencilState,StencilRef)   \
6332    ( (This)->lpVtbl -> OMSetDepthStencilState(This,pDepthStencilState,StencilRef) )
6333
6334#define ID3D10Device_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)   \
6335    ( (This)->lpVtbl -> SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) )
6336
6337#define ID3D10Device_DrawAuto(This)   \
6338    ( (This)->lpVtbl -> DrawAuto(This) )
6339
6340#define ID3D10Device_RSSetState(This,pRasterizerState)   \
6341    ( (This)->lpVtbl -> RSSetState(This,pRasterizerState) )
6342
6343#define ID3D10Device_RSSetViewports(This,NumViewports,pViewports)   \
6344    ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
6345
6346#define ID3D10Device_RSSetScissorRects(This,NumRects,pRects)   \
6347    ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
6348
6349#define ID3D10Device_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)   \
6350    ( (This)->lpVtbl -> CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) )
6351
6352#define ID3D10Device_CopyResource(This,pDstResource,pSrcResource)   \
6353    ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
6354
6355#define ID3D10Device_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)   \
6356    ( (This)->lpVtbl -> UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
6357
6358#define ID3D10Device_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)   \
6359    ( (This)->lpVtbl -> ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) )
6360
6361#define ID3D10Device_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)   \
6362    ( (This)->lpVtbl -> ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) )
6363
6364#define ID3D10Device_GenerateMips(This,pShaderResourceView)   \
6365    ( (This)->lpVtbl -> GenerateMips(This,pShaderResourceView) )
6366
6367#define ID3D10Device_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)   \
6368    ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
6369
6370#define ID3D10Device_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
6371    ( (This)->lpVtbl -> VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
6372
6373#define ID3D10Device_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
6374    ( (This)->lpVtbl -> PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
6375
6376#define ID3D10Device_PSGetShader(This,ppPixelShader)   \
6377    ( (This)->lpVtbl -> PSGetShader(This,ppPixelShader) )
6378
6379#define ID3D10Device_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
6380    ( (This)->lpVtbl -> PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
6381
6382#define ID3D10Device_VSGetShader(This,ppVertexShader)   \
6383    ( (This)->lpVtbl -> VSGetShader(This,ppVertexShader) )
6384
6385#define ID3D10Device_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
6386    ( (This)->lpVtbl -> PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
6387
6388#define ID3D10Device_IAGetInputLayout(This,ppInputLayout)   \
6389    ( (This)->lpVtbl -> IAGetInputLayout(This,ppInputLayout) )
6390
6391#define ID3D10Device_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)   \
6392    ( (This)->lpVtbl -> IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) )
6393
6394#define ID3D10Device_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)   \
6395    ( (This)->lpVtbl -> IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) )
6396
6397#define ID3D10Device_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
6398    ( (This)->lpVtbl -> GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
6399
6400#define ID3D10Device_GSGetShader(This,ppGeometryShader)   \
6401    ( (This)->lpVtbl -> GSGetShader(This,ppGeometryShader) )
6402
6403#define ID3D10Device_IAGetPrimitiveTopology(This,pTopology)   \
6404    ( (This)->lpVtbl -> IAGetPrimitiveTopology(This,pTopology) )
6405
6406#define ID3D10Device_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
6407    ( (This)->lpVtbl -> VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
6408
6409#define ID3D10Device_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
6410    ( (This)->lpVtbl -> VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
6411
6412#define ID3D10Device_GetPredication(This,ppPredicate,pPredicateValue)   \
6413    ( (This)->lpVtbl -> GetPredication(This,ppPredicate,pPredicateValue) )
6414
6415#define ID3D10Device_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
6416    ( (This)->lpVtbl -> GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
6417
6418#define ID3D10Device_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
6419    ( (This)->lpVtbl -> GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
6420
6421#define ID3D10Device_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)   \
6422    ( (This)->lpVtbl -> OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) )
6423
6424#define ID3D10Device_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)   \
6425    ( (This)->lpVtbl -> OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) )
6426
6427#define ID3D10Device_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)   \
6428    ( (This)->lpVtbl -> OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) )
6429
6430#define ID3D10Device_SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets)   \
6431    ( (This)->lpVtbl -> SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets) )
6432
6433#define ID3D10Device_RSGetState(This,ppRasterizerState)   \
6434    ( (This)->lpVtbl -> RSGetState(This,ppRasterizerState) )
6435
6436#define ID3D10Device_RSGetViewports(This,NumViewports,pViewports)   \
6437    ( (This)->lpVtbl -> RSGetViewports(This,NumViewports,pViewports) )
6438
6439#define ID3D10Device_RSGetScissorRects(This,NumRects,pRects)   \
6440    ( (This)->lpVtbl -> RSGetScissorRects(This,NumRects,pRects) )
6441
6442#define ID3D10Device_GetDeviceRemovedReason(This)   \
6443    ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
6444
6445#define ID3D10Device_SetExceptionMode(This,RaiseFlags)   \
6446    ( (This)->lpVtbl -> SetExceptionMode(This,RaiseFlags) )
6447
6448#define ID3D10Device_GetExceptionMode(This)   \
6449    ( (This)->lpVtbl -> GetExceptionMode(This) )
6450
6451#define ID3D10Device_GetPrivateData(This,guid,pDataSize,pData)   \
6452    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6453
6454#define ID3D10Device_SetPrivateData(This,guid,DataSize,pData)   \
6455    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6456
6457#define ID3D10Device_SetPrivateDataInterface(This,guid,pData)   \
6458    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6459
6460#define ID3D10Device_ClearState(This)   \
6461    ( (This)->lpVtbl -> ClearState(This) )
6462
6463#define ID3D10Device_Flush(This)   \
6464    ( (This)->lpVtbl -> Flush(This) )
6465
6466#define ID3D10Device_CreateBuffer(This,pDesc,pInitialData,ppBuffer)   \
6467    ( (This)->lpVtbl -> CreateBuffer(This,pDesc,pInitialData,ppBuffer) )
6468
6469#define ID3D10Device_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)   \
6470    ( (This)->lpVtbl -> CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) )
6471
6472#define ID3D10Device_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)   \
6473    ( (This)->lpVtbl -> CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) )
6474
6475#define ID3D10Device_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)   \
6476    ( (This)->lpVtbl -> CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) )
6477
6478#define ID3D10Device_CreateShaderResourceView(This,pResource,pDesc,ppSRView)   \
6479    ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,ppSRView) )
6480
6481#define ID3D10Device_CreateRenderTargetView(This,pResource,pDesc,ppRTView)   \
6482    ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,ppRTView) )
6483
6484#define ID3D10Device_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)   \
6485    ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) )
6486
6487#define ID3D10Device_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)   \
6488    ( (This)->lpVtbl -> CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) )
6489
6490#define ID3D10Device_CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader)   \
6491    ( (This)->lpVtbl -> CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader) )
6492
6493#define ID3D10Device_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader)   \
6494    ( (This)->lpVtbl -> CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader) )
6495
6496#define ID3D10Device_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader)   \
6497    ( (This)->lpVtbl -> CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader) )
6498
6499#define ID3D10Device_CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader)   \
6500    ( (This)->lpVtbl -> CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader) )
6501
6502#define ID3D10Device_CreateBlendState(This,pBlendStateDesc,ppBlendState)   \
6503    ( (This)->lpVtbl -> CreateBlendState(This,pBlendStateDesc,ppBlendState) )
6504
6505#define ID3D10Device_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)   \
6506    ( (This)->lpVtbl -> CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) )
6507
6508#define ID3D10Device_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)   \
6509    ( (This)->lpVtbl -> CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) )
6510
6511#define ID3D10Device_CreateSamplerState(This,pSamplerDesc,ppSamplerState)   \
6512    ( (This)->lpVtbl -> CreateSamplerState(This,pSamplerDesc,ppSamplerState) )
6513
6514#define ID3D10Device_CreateQuery(This,pQueryDesc,ppQuery)   \
6515    ( (This)->lpVtbl -> CreateQuery(This,pQueryDesc,ppQuery) )
6516
6517#define ID3D10Device_CreatePredicate(This,pPredicateDesc,ppPredicate)   \
6518    ( (This)->lpVtbl -> CreatePredicate(This,pPredicateDesc,ppPredicate) )
6519
6520#define ID3D10Device_CreateCounter(This,pCounterDesc,ppCounter)   \
6521    ( (This)->lpVtbl -> CreateCounter(This,pCounterDesc,ppCounter) )
6522
6523#define ID3D10Device_CheckFormatSupport(This,Format,pFormatSupport)   \
6524    ( (This)->lpVtbl -> CheckFormatSupport(This,Format,pFormatSupport) )
6525
6526#define ID3D10Device_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)   \
6527    ( (This)->lpVtbl -> CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) )
6528
6529#define ID3D10Device_CheckCounterInfo(This,pCounterInfo)   \
6530    ( (This)->lpVtbl -> CheckCounterInfo(This,pCounterInfo) )
6531
6532#define ID3D10Device_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)   \
6533    ( (This)->lpVtbl -> CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) )
6534
6535#define ID3D10Device_GetCreationFlags(This)   \
6536    ( (This)->lpVtbl -> GetCreationFlags(This) )
6537
6538#define ID3D10Device_OpenSharedResource(This,hResource,ReturnedInterface,ppResource)   \
6539    ( (This)->lpVtbl -> OpenSharedResource(This,hResource,ReturnedInterface,ppResource) )
6540
6541#define ID3D10Device_SetTextFilterSize(This,Width,Height)   \
6542    ( (This)->lpVtbl -> SetTextFilterSize(This,Width,Height) )
6543
6544#define ID3D10Device_GetTextFilterSize(This,pWidth,pHeight)   \
6545    ( (This)->lpVtbl -> GetTextFilterSize(This,pWidth,pHeight) )
6546
6547#endif /* COBJMACROS */
6548
6549
6550#endif    /* C style interface */
6551
6552
6553
6554
6555#endif    /* __ID3D10Device_INTERFACE_DEFINED__ */
6556
6557
6558#ifndef __ID3D10Multithread_INTERFACE_DEFINED__
6559#define __ID3D10Multithread_INTERFACE_DEFINED__
6560
6561/* interface ID3D10Multithread */
6562/* [unique][local][object][uuid] */
6563
6564
6565EXTERN_C const IID IID_ID3D10Multithread;
6566
6567#if defined(__cplusplus) && !defined(CINTERFACE)
6568   
6569    MIDL_INTERFACE("9B7E4E00-342C-4106-A19F-4F2704F689F0")
6570    ID3D10Multithread : public IUnknown
6571    {
6572    public:
6573        virtual void STDMETHODCALLTYPE Enter( void) = 0;
6574       
6575        virtual void STDMETHODCALLTYPE Leave( void) = 0;
6576       
6577        virtual BOOL STDMETHODCALLTYPE SetMultithreadProtected(
6578            /* [annotation] */
6579            __in  BOOL bMTProtect) = 0;
6580       
6581        virtual BOOL STDMETHODCALLTYPE GetMultithreadProtected( void) = 0;
6582       
6583    };
6584   
6585#else    /* C style interface */
6586
6587    typedef struct ID3D10MultithreadVtbl
6588    {
6589        BEGIN_INTERFACE
6590       
6591        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6592            ID3D10Multithread * This,
6593            /* [in] */ REFIID riid,
6594            /* [annotation][iid_is][out] */
6595            __RPC__deref_out  void **ppvObject);
6596       
6597        ULONG ( STDMETHODCALLTYPE *AddRef )(
6598            ID3D10Multithread * This);
6599       
6600        ULONG ( STDMETHODCALLTYPE *Release )(
6601            ID3D10Multithread * This);
6602       
6603        void ( STDMETHODCALLTYPE *Enter )(
6604            ID3D10Multithread * This);
6605       
6606        void ( STDMETHODCALLTYPE *Leave )(
6607            ID3D10Multithread * This);
6608       
6609        BOOL ( STDMETHODCALLTYPE *SetMultithreadProtected )(
6610            ID3D10Multithread * This,
6611            /* [annotation] */
6612            __in  BOOL bMTProtect);
6613       
6614        BOOL ( STDMETHODCALLTYPE *GetMultithreadProtected )(
6615            ID3D10Multithread * This);
6616       
6617        END_INTERFACE
6618    } ID3D10MultithreadVtbl;
6619
6620    interface ID3D10Multithread
6621    {
6622        CONST_VTBL struct ID3D10MultithreadVtbl *lpVtbl;
6623    };
6624
6625   
6626
6627#ifdef COBJMACROS
6628
6629
6630#define ID3D10Multithread_QueryInterface(This,riid,ppvObject)   \
6631    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6632
6633#define ID3D10Multithread_AddRef(This)   \
6634    ( (This)->lpVtbl -> AddRef(This) )
6635
6636#define ID3D10Multithread_Release(This)   \
6637    ( (This)->lpVtbl -> Release(This) )
6638
6639
6640#define ID3D10Multithread_Enter(This)   \
6641    ( (This)->lpVtbl -> Enter(This) )
6642
6643#define ID3D10Multithread_Leave(This)   \
6644    ( (This)->lpVtbl -> Leave(This) )
6645
6646#define ID3D10Multithread_SetMultithreadProtected(This,bMTProtect)   \
6647    ( (This)->lpVtbl -> SetMultithreadProtected(This,bMTProtect) )
6648
6649#define ID3D10Multithread_GetMultithreadProtected(This)   \
6650    ( (This)->lpVtbl -> GetMultithreadProtected(This) )
6651
6652#endif /* COBJMACROS */
6653
6654
6655#endif    /* C style interface */
6656
6657
6658
6659
6660#endif    /* __ID3D10Multithread_INTERFACE_DEFINED__ */
6661
6662
6663/* interface __MIDL_itf_d3d10_0000_0024 */
6664/* [local] */
6665
6666typedef
6667enum D3D10_CREATE_DEVICE_FLAG
6668    {   D3D10_CREATE_DEVICE_SINGLETHREADED   = 0x1,
6669   D3D10_CREATE_DEVICE_DEBUG   = 0x2,
6670   D3D10_CREATE_DEVICE_SWITCH_TO_REF   = 0x4,
6671   D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS   = 0x8,
6672   D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP   = 0x10,
6673   D3D10_CREATE_DEVICE_BGRA_SUPPORT   = 0x20,
6674   D3D10_CREATE_DEVICE_STRICT_VALIDATION   = 0x200
6675    }    D3D10_CREATE_DEVICE_FLAG;
6676
6677
6678#define   D3D10_SDK_VERSION   ( 29 )
6679
6680#if !defined( D3D10_IGNORE_SDK_LAYERS )
6681#include "d3d10sdklayers.h"
6682#endif
6683#include "d3d10misc.h"
6684#include "d3d10shader.h"
6685#include "d3d10effect.h"
6686DEFINE_GUID(IID_ID3D10DeviceChild,0x9B7E4C00,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6687DEFINE_GUID(IID_ID3D10DepthStencilState,0x2B4B1CC8,0xA4AD,0x41f8,0x83,0x22,0xCA,0x86,0xFC,0x3E,0xC6,0x75);
6688DEFINE_GUID(IID_ID3D10BlendState,0xEDAD8D19,0x8A35,0x4d6d,0x85,0x66,0x2E,0xA2,0x76,0xCD,0xE1,0x61);
6689DEFINE_GUID(IID_ID3D10RasterizerState,0xA2A07292,0x89AF,0x4345,0xBE,0x2E,0xC5,0x3D,0x9F,0xBB,0x6E,0x9F);
6690DEFINE_GUID(IID_ID3D10Resource,0x9B7E4C01,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6691DEFINE_GUID(IID_ID3D10Buffer,0x9B7E4C02,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6692DEFINE_GUID(IID_ID3D10Texture1D,0x9B7E4C03,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6693DEFINE_GUID(IID_ID3D10Texture2D,0x9B7E4C04,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6694DEFINE_GUID(IID_ID3D10Texture3D,0x9B7E4C05,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6695DEFINE_GUID(IID_ID3D10View,0xC902B03F,0x60A7,0x49BA,0x99,0x36,0x2A,0x3A,0xB3,0x7A,0x7E,0x33);
6696DEFINE_GUID(IID_ID3D10ShaderResourceView,0x9B7E4C07,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6697DEFINE_GUID(IID_ID3D10RenderTargetView,0x9B7E4C08,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6698DEFINE_GUID(IID_ID3D10DepthStencilView,0x9B7E4C09,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6699DEFINE_GUID(IID_ID3D10VertexShader,0x9B7E4C0A,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6700DEFINE_GUID(IID_ID3D10GeometryShader,0x6316BE88,0x54CD,0x4040,0xAB,0x44,0x20,0x46,0x1B,0xC8,0x1F,0x68);
6701DEFINE_GUID(IID_ID3D10PixelShader,0x4968B601,0x9D00,0x4cde,0x83,0x46,0x8E,0x7F,0x67,0x58,0x19,0xB6);
6702DEFINE_GUID(IID_ID3D10InputLayout,0x9B7E4C0B,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6703DEFINE_GUID(IID_ID3D10SamplerState,0x9B7E4C0C,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6704DEFINE_GUID(IID_ID3D10Asynchronous,0x9B7E4C0D,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6705DEFINE_GUID(IID_ID3D10Query,0x9B7E4C0E,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6706DEFINE_GUID(IID_ID3D10Predicate,0x9B7E4C10,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6707DEFINE_GUID(IID_ID3D10Counter,0x9B7E4C11,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6708DEFINE_GUID(IID_ID3D10Device,0x9B7E4C0F,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6709DEFINE_GUID(IID_ID3D10Multithread,0x9B7E4E00,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6710
6711
6712extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0024_v0_0_c_ifspec;
6713extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0024_v0_0_s_ifspec;
6714
6715/* Additional Prototypes for ALL interfaces */
6716
6717/* end of Additional Prototypes */
6718
6719#ifdef __cplusplus
6720}
6721#endif
6722
6723#endif
6724
6725
trunk/3rdparty/dxsdk/Include/D3D10_1.h
r243310r243311
1
2
3/* this ALWAYS GENERATED file contains the definitions for the interfaces */
4
5
6 /* File created by MIDL compiler version 7.00.0555 */
7/* @@MIDL_FILE_HEADING(  ) */
8
9#ifdef _MSC_VER
10#pragma warning( disable: 4049 )  /* more than 64k source lines */
11#endif // _MSC_VER
12
13
14/* verify that the <rpcndr.h> version is high enough to compile this file*/
15#ifndef __REQUIRED_RPCNDR_H_VERSION__
16#define __REQUIRED_RPCNDR_H_VERSION__ 475
17#endif
18
19/* verify that the <rpcsal.h> version is high enough to compile this file*/
20#ifndef __REQUIRED_RPCSAL_H_VERSION__
21#define __REQUIRED_RPCSAL_H_VERSION__ 100
22#endif
23
24#include "rpc.h"
25#include "rpcndr.h"
26
27#ifndef __RPCNDR_H_VERSION__
28#error this stub requires an updated version of <rpcndr.h>
29#endif // __RPCNDR_H_VERSION__
30
31#ifndef COM_NO_WINDOWS_H
32#include "windows.h"
33#include "ole2.h"
34#endif /*COM_NO_WINDOWS_H*/
35
36#ifndef __d3d10_1_h__
37#define __d3d10_1_h__
38
39#if defined(_MSC_VER) && (_MSC_VER >= 1020)
40#pragma once
41#endif
42
43/* Forward Declarations */
44
45#ifndef __ID3D10BlendState1_FWD_DEFINED__
46#define __ID3D10BlendState1_FWD_DEFINED__
47typedef interface ID3D10BlendState1 ID3D10BlendState1;
48#endif    /* __ID3D10BlendState1_FWD_DEFINED__ */
49
50
51#ifndef __ID3D10ShaderResourceView1_FWD_DEFINED__
52#define __ID3D10ShaderResourceView1_FWD_DEFINED__
53typedef interface ID3D10ShaderResourceView1 ID3D10ShaderResourceView1;
54#endif    /* __ID3D10ShaderResourceView1_FWD_DEFINED__ */
55
56
57#ifndef __ID3D10Device1_FWD_DEFINED__
58#define __ID3D10Device1_FWD_DEFINED__
59typedef interface ID3D10Device1 ID3D10Device1;
60#endif    /* __ID3D10Device1_FWD_DEFINED__ */
61
62
63/* header files for imported files */
64#include "oaidl.h"
65#include "ocidl.h"
66
67#ifdef __cplusplus
68extern "C"{
69#endif
70
71
72/* interface __MIDL_itf_d3d10_1_0000_0000 */
73/* [local] */
74
75#if defined( __d3d10_h__ ) && !defined( D3D10_ARBITRARY_HEADER_ORDERING )
76#error d3d10.h is included before d3d10_1.h, and it will confuse tools that honor SAL annotations. \
77If possibly targeting d3d10.1, include d3d10_1.h instead of d3d10.h, or ensure d3d10_1.h is included before d3d10.h
78#endif
79#ifndef _D3D10_1_CONSTANTS
80#define _D3D10_1_CONSTANTS
81#define   D3D10_1_DEFAULT_SAMPLE_MASK   ( 0xffffffff )
82
83#define D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP   ( 0.6 )
84#define D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP   ( 0.6f )
85#define   D3D10_1_GS_INPUT_REGISTER_COUNT   ( 32 )
86
87#define   D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT   ( 32 )
88
89#define   D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS   ( 128 )
90
91#define   D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT   ( 32 )
92
93#define   D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENTS   ( 1 )
94
95#define   D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
96
97#define   D3D10_1_PS_OUTPUT_MASK_REGISTER_COUNT   ( 1 )
98
99#define   D3D10_1_SHADER_MAJOR_VERSION   ( 4 )
100
101#define   D3D10_1_SHADER_MINOR_VERSION   ( 1 )
102
103#define   D3D10_1_SO_BUFFER_MAX_STRIDE_IN_BYTES   ( 2048 )
104
105#define   D3D10_1_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES   ( 256 )
106
107#define   D3D10_1_SO_BUFFER_SLOT_COUNT   ( 4 )
108
109#define   D3D10_1_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER   ( 1 )
110
111#define   D3D10_1_SO_SINGLE_BUFFER_COMPONENT_LIMIT   ( 64 )
112
113#define   D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT   ( 32 )
114
115#define   D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT   ( 8 )
116
117#define   D3D10_1_VS_INPUT_REGISTER_COUNT   ( 32 )
118
119#define   D3D10_1_VS_OUTPUT_REGISTER_COUNT   ( 32 )
120
121#endif
122#include "d3d10.h" //
123
124typedef
125enum D3D10_FEATURE_LEVEL1
126    {   D3D10_FEATURE_LEVEL_10_0   = 0xa000,
127   D3D10_FEATURE_LEVEL_10_1   = 0xa100,
128   D3D10_FEATURE_LEVEL_9_1   = 0x9100,
129   D3D10_FEATURE_LEVEL_9_2   = 0x9200,
130   D3D10_FEATURE_LEVEL_9_3   = 0x9300
131    }    D3D10_FEATURE_LEVEL1;
132
133typedef struct D3D10_RENDER_TARGET_BLEND_DESC1
134    {
135    BOOL BlendEnable;
136    D3D10_BLEND SrcBlend;
137    D3D10_BLEND DestBlend;
138    D3D10_BLEND_OP BlendOp;
139    D3D10_BLEND SrcBlendAlpha;
140    D3D10_BLEND DestBlendAlpha;
141    D3D10_BLEND_OP BlendOpAlpha;
142    UINT8 RenderTargetWriteMask;
143    }    D3D10_RENDER_TARGET_BLEND_DESC1;
144
145typedef struct D3D10_BLEND_DESC1
146    {
147    BOOL AlphaToCoverageEnable;
148    BOOL IndependentBlendEnable;
149    D3D10_RENDER_TARGET_BLEND_DESC1 RenderTarget[ 8 ];
150    }    D3D10_BLEND_DESC1;
151
152
153
154extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0000_v0_0_c_ifspec;
155extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0000_v0_0_s_ifspec;
156
157#ifndef __ID3D10BlendState1_INTERFACE_DEFINED__
158#define __ID3D10BlendState1_INTERFACE_DEFINED__
159
160/* interface ID3D10BlendState1 */
161/* [unique][local][object][uuid] */
162
163
164EXTERN_C const IID IID_ID3D10BlendState1;
165
166#if defined(__cplusplus) && !defined(CINTERFACE)
167   
168    MIDL_INTERFACE("EDAD8D99-8A35-4d6d-8566-2EA276CDE161")
169    ID3D10BlendState1 : public ID3D10BlendState
170    {
171    public:
172        virtual void STDMETHODCALLTYPE GetDesc1(
173            /* [annotation] */
174            __out  D3D10_BLEND_DESC1 *pDesc) = 0;
175       
176    };
177   
178#else    /* C style interface */
179
180    typedef struct ID3D10BlendState1Vtbl
181    {
182        BEGIN_INTERFACE
183       
184        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
185            ID3D10BlendState1 * This,
186            /* [in] */ REFIID riid,
187            /* [annotation][iid_is][out] */
188            __RPC__deref_out  void **ppvObject);
189       
190        ULONG ( STDMETHODCALLTYPE *AddRef )(
191            ID3D10BlendState1 * This);
192       
193        ULONG ( STDMETHODCALLTYPE *Release )(
194            ID3D10BlendState1 * This);
195       
196        void ( STDMETHODCALLTYPE *GetDevice )(
197            ID3D10BlendState1 * This,
198            /* [annotation] */
199            __out  ID3D10Device **ppDevice);
200       
201        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
202            ID3D10BlendState1 * This,
203            /* [annotation] */
204            __in  REFGUID guid,
205            /* [annotation] */
206            __inout  UINT *pDataSize,
207            /* [annotation] */
208            __out_bcount_opt(*pDataSize)  void *pData);
209       
210        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
211            ID3D10BlendState1 * This,
212            /* [annotation] */
213            __in  REFGUID guid,
214            /* [annotation] */
215            __in  UINT DataSize,
216            /* [annotation] */
217            __in_bcount_opt(DataSize)  const void *pData);
218       
219        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
220            ID3D10BlendState1 * This,
221            /* [annotation] */
222            __in  REFGUID guid,
223            /* [annotation] */
224            __in_opt  const IUnknown *pData);
225       
226        void ( STDMETHODCALLTYPE *GetDesc )(
227            ID3D10BlendState1 * This,
228            /* [annotation] */
229            __out  D3D10_BLEND_DESC *pDesc);
230       
231        void ( STDMETHODCALLTYPE *GetDesc1 )(
232            ID3D10BlendState1 * This,
233            /* [annotation] */
234            __out  D3D10_BLEND_DESC1 *pDesc);
235       
236        END_INTERFACE
237    } ID3D10BlendState1Vtbl;
238
239    interface ID3D10BlendState1
240    {
241        CONST_VTBL struct ID3D10BlendState1Vtbl *lpVtbl;
242    };
243
244   
245
246#ifdef COBJMACROS
247
248
249#define ID3D10BlendState1_QueryInterface(This,riid,ppvObject)   \
250    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
251
252#define ID3D10BlendState1_AddRef(This)   \
253    ( (This)->lpVtbl -> AddRef(This) )
254
255#define ID3D10BlendState1_Release(This)   \
256    ( (This)->lpVtbl -> Release(This) )
257
258
259#define ID3D10BlendState1_GetDevice(This,ppDevice)   \
260    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
261
262#define ID3D10BlendState1_GetPrivateData(This,guid,pDataSize,pData)   \
263    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
264
265#define ID3D10BlendState1_SetPrivateData(This,guid,DataSize,pData)   \
266    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
267
268#define ID3D10BlendState1_SetPrivateDataInterface(This,guid,pData)   \
269    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
270
271
272#define ID3D10BlendState1_GetDesc(This,pDesc)   \
273    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
274
275
276#define ID3D10BlendState1_GetDesc1(This,pDesc)   \
277    ( (This)->lpVtbl -> GetDesc1(This,pDesc) )
278
279#endif /* COBJMACROS */
280
281
282#endif    /* C style interface */
283
284
285
286
287#endif    /* __ID3D10BlendState1_INTERFACE_DEFINED__ */
288
289
290/* interface __MIDL_itf_d3d10_1_0000_0001 */
291/* [local] */
292
293typedef struct D3D10_TEXCUBE_ARRAY_SRV1
294    {
295    UINT MostDetailedMip;
296    UINT MipLevels;
297    UINT First2DArrayFace;
298    UINT NumCubes;
299    }    D3D10_TEXCUBE_ARRAY_SRV1;
300
301typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION1;
302
303typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC1
304    {
305    DXGI_FORMAT Format;
306    D3D10_SRV_DIMENSION1 ViewDimension;
307    union
308        {
309        D3D10_BUFFER_SRV Buffer;
310        D3D10_TEX1D_SRV Texture1D;
311        D3D10_TEX1D_ARRAY_SRV Texture1DArray;
312        D3D10_TEX2D_SRV Texture2D;
313        D3D10_TEX2D_ARRAY_SRV Texture2DArray;
314        D3D10_TEX2DMS_SRV Texture2DMS;
315        D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
316        D3D10_TEX3D_SRV Texture3D;
317        D3D10_TEXCUBE_SRV TextureCube;
318        D3D10_TEXCUBE_ARRAY_SRV1 TextureCubeArray;
319        }    ;
320    }    D3D10_SHADER_RESOURCE_VIEW_DESC1;
321
322
323
324extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0001_v0_0_c_ifspec;
325extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0001_v0_0_s_ifspec;
326
327#ifndef __ID3D10ShaderResourceView1_INTERFACE_DEFINED__
328#define __ID3D10ShaderResourceView1_INTERFACE_DEFINED__
329
330/* interface ID3D10ShaderResourceView1 */
331/* [unique][local][object][uuid] */
332
333
334EXTERN_C const IID IID_ID3D10ShaderResourceView1;
335
336#if defined(__cplusplus) && !defined(CINTERFACE)
337   
338    MIDL_INTERFACE("9B7E4C87-342C-4106-A19F-4F2704F689F0")
339    ID3D10ShaderResourceView1 : public ID3D10ShaderResourceView
340    {
341    public:
342        virtual void STDMETHODCALLTYPE GetDesc1(
343            /* [annotation] */
344            __out  D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc) = 0;
345       
346    };
347   
348#else    /* C style interface */
349
350    typedef struct ID3D10ShaderResourceView1Vtbl
351    {
352        BEGIN_INTERFACE
353       
354        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
355            ID3D10ShaderResourceView1 * This,
356            /* [in] */ REFIID riid,
357            /* [annotation][iid_is][out] */
358            __RPC__deref_out  void **ppvObject);
359       
360        ULONG ( STDMETHODCALLTYPE *AddRef )(
361            ID3D10ShaderResourceView1 * This);
362       
363        ULONG ( STDMETHODCALLTYPE *Release )(
364            ID3D10ShaderResourceView1 * This);
365       
366        void ( STDMETHODCALLTYPE *GetDevice )(
367            ID3D10ShaderResourceView1 * This,
368            /* [annotation] */
369            __out  ID3D10Device **ppDevice);
370       
371        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
372            ID3D10ShaderResourceView1 * This,
373            /* [annotation] */
374            __in  REFGUID guid,
375            /* [annotation] */
376            __inout  UINT *pDataSize,
377            /* [annotation] */
378            __out_bcount_opt(*pDataSize)  void *pData);
379       
380        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
381            ID3D10ShaderResourceView1 * This,
382            /* [annotation] */
383            __in  REFGUID guid,
384            /* [annotation] */
385            __in  UINT DataSize,
386            /* [annotation] */
387            __in_bcount_opt(DataSize)  const void *pData);
388       
389        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
390            ID3D10ShaderResourceView1 * This,
391            /* [annotation] */
392            __in  REFGUID guid,
393            /* [annotation] */
394            __in_opt  const IUnknown *pData);
395       
396        void ( STDMETHODCALLTYPE *GetResource )(
397            ID3D10ShaderResourceView1 * This,
398            /* [annotation] */
399            __out  ID3D10Resource **ppResource);
400       
401        void ( STDMETHODCALLTYPE *GetDesc )(
402            ID3D10ShaderResourceView1 * This,
403            /* [annotation] */
404            __out  D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
405       
406        void ( STDMETHODCALLTYPE *GetDesc1 )(
407            ID3D10ShaderResourceView1 * This,
408            /* [annotation] */
409            __out  D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc);
410       
411        END_INTERFACE
412    } ID3D10ShaderResourceView1Vtbl;
413
414    interface ID3D10ShaderResourceView1
415    {
416        CONST_VTBL struct ID3D10ShaderResourceView1Vtbl *lpVtbl;
417    };
418
419   
420
421#ifdef COBJMACROS
422
423
424#define ID3D10ShaderResourceView1_QueryInterface(This,riid,ppvObject)   \
425    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
426
427#define ID3D10ShaderResourceView1_AddRef(This)   \
428    ( (This)->lpVtbl -> AddRef(This) )
429
430#define ID3D10ShaderResourceView1_Release(This)   \
431    ( (This)->lpVtbl -> Release(This) )
432
433
434#define ID3D10ShaderResourceView1_GetDevice(This,ppDevice)   \
435    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
436
437#define ID3D10ShaderResourceView1_GetPrivateData(This,guid,pDataSize,pData)   \
438    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
439
440#define ID3D10ShaderResourceView1_SetPrivateData(This,guid,DataSize,pData)   \
441    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
442
443#define ID3D10ShaderResourceView1_SetPrivateDataInterface(This,guid,pData)   \
444    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
445
446
447#define ID3D10ShaderResourceView1_GetResource(This,ppResource)   \
448    ( (This)->lpVtbl -> GetResource(This,ppResource) )
449
450
451#define ID3D10ShaderResourceView1_GetDesc(This,pDesc)   \
452    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
453
454
455#define ID3D10ShaderResourceView1_GetDesc1(This,pDesc)   \
456    ( (This)->lpVtbl -> GetDesc1(This,pDesc) )
457
458#endif /* COBJMACROS */
459
460
461#endif    /* C style interface */
462
463
464
465
466#endif    /* __ID3D10ShaderResourceView1_INTERFACE_DEFINED__ */
467
468
469/* interface __MIDL_itf_d3d10_1_0000_0002 */
470/* [local] */
471
472typedef
473enum D3D10_STANDARD_MULTISAMPLE_QUALITY_LEVELS
474    {   D3D10_STANDARD_MULTISAMPLE_PATTERN   = 0xffffffff,
475   D3D10_CENTER_MULTISAMPLE_PATTERN   = 0xfffffffe
476    }    D3D10_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
477
478
479
480extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0002_v0_0_c_ifspec;
481extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0002_v0_0_s_ifspec;
482
483#ifndef __ID3D10Device1_INTERFACE_DEFINED__
484#define __ID3D10Device1_INTERFACE_DEFINED__
485
486/* interface ID3D10Device1 */
487/* [unique][local][object][uuid] */
488
489
490EXTERN_C const IID IID_ID3D10Device1;
491
492#if defined(__cplusplus) && !defined(CINTERFACE)
493   
494    MIDL_INTERFACE("9B7E4C8F-342C-4106-A19F-4F2704F689F0")
495    ID3D10Device1 : public ID3D10Device
496    {
497    public:
498        virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView1(
499            /* [annotation] */
500            __in  ID3D10Resource *pResource,
501            /* [annotation] */
502            __in_opt  const D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc,
503            /* [annotation] */
504            __out_opt  ID3D10ShaderResourceView1 **ppSRView) = 0;
505       
506        virtual HRESULT STDMETHODCALLTYPE CreateBlendState1(
507            /* [annotation] */
508            __in  const D3D10_BLEND_DESC1 *pBlendStateDesc,
509            /* [annotation] */
510            __out_opt  ID3D10BlendState1 **ppBlendState) = 0;
511       
512        virtual D3D10_FEATURE_LEVEL1 STDMETHODCALLTYPE GetFeatureLevel( void) = 0;
513       
514    };
515   
516#else    /* C style interface */
517
518    typedef struct ID3D10Device1Vtbl
519    {
520        BEGIN_INTERFACE
521       
522        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
523            ID3D10Device1 * This,
524            /* [in] */ REFIID riid,
525            /* [annotation][iid_is][out] */
526            __RPC__deref_out  void **ppvObject);
527       
528        ULONG ( STDMETHODCALLTYPE *AddRef )(
529            ID3D10Device1 * This);
530       
531        ULONG ( STDMETHODCALLTYPE *Release )(
532            ID3D10Device1 * This);
533       
534        void ( STDMETHODCALLTYPE *VSSetConstantBuffers )(
535            ID3D10Device1 * This,
536            /* [annotation] */
537            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
538            /* [annotation] */
539            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
540            /* [annotation] */
541            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers);
542       
543        void ( STDMETHODCALLTYPE *PSSetShaderResources )(
544            ID3D10Device1 * This,
545            /* [annotation] */
546            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
547            /* [annotation] */
548            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
549            /* [annotation] */
550            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews);
551       
552        void ( STDMETHODCALLTYPE *PSSetShader )(
553            ID3D10Device1 * This,
554            /* [annotation] */
555            __in_opt  ID3D10PixelShader *pPixelShader);
556       
557        void ( STDMETHODCALLTYPE *PSSetSamplers )(
558            ID3D10Device1 * This,
559            /* [annotation] */
560            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
561            /* [annotation] */
562            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
563            /* [annotation] */
564            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers);
565       
566        void ( STDMETHODCALLTYPE *VSSetShader )(
567            ID3D10Device1 * This,
568            /* [annotation] */
569            __in_opt  ID3D10VertexShader *pVertexShader);
570       
571        void ( STDMETHODCALLTYPE *DrawIndexed )(
572            ID3D10Device1 * This,
573            /* [annotation] */
574            __in  UINT IndexCount,
575            /* [annotation] */
576            __in  UINT StartIndexLocation,
577            /* [annotation] */
578            __in  INT BaseVertexLocation);
579       
580        void ( STDMETHODCALLTYPE *Draw )(
581            ID3D10Device1 * This,
582            /* [annotation] */
583            __in  UINT VertexCount,
584            /* [annotation] */
585            __in  UINT StartVertexLocation);
586       
587        void ( STDMETHODCALLTYPE *PSSetConstantBuffers )(
588            ID3D10Device1 * This,
589            /* [annotation] */
590            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
591            /* [annotation] */
592            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
593            /* [annotation] */
594            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers);
595       
596        void ( STDMETHODCALLTYPE *IASetInputLayout )(
597            ID3D10Device1 * This,
598            /* [annotation] */
599            __in_opt  ID3D10InputLayout *pInputLayout);
600       
601        void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
602            ID3D10Device1 * This,
603            /* [annotation] */
604            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
605            /* [annotation] */
606            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
607            /* [annotation] */
608            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppVertexBuffers,
609            /* [annotation] */
610            __in_ecount(NumBuffers)  const UINT *pStrides,
611            /* [annotation] */
612            __in_ecount(NumBuffers)  const UINT *pOffsets);
613       
614        void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
615            ID3D10Device1 * This,
616            /* [annotation] */
617            __in_opt  ID3D10Buffer *pIndexBuffer,
618            /* [annotation] */
619            __in  DXGI_FORMAT Format,
620            /* [annotation] */
621            __in  UINT Offset);
622       
623        void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
624            ID3D10Device1 * This,
625            /* [annotation] */
626            __in  UINT IndexCountPerInstance,
627            /* [annotation] */
628            __in  UINT InstanceCount,
629            /* [annotation] */
630            __in  UINT StartIndexLocation,
631            /* [annotation] */
632            __in  INT BaseVertexLocation,
633            /* [annotation] */
634            __in  UINT StartInstanceLocation);
635       
636        void ( STDMETHODCALLTYPE *DrawInstanced )(
637            ID3D10Device1 * This,
638            /* [annotation] */
639            __in  UINT VertexCountPerInstance,
640            /* [annotation] */
641            __in  UINT InstanceCount,
642            /* [annotation] */
643            __in  UINT StartVertexLocation,
644            /* [annotation] */
645            __in  UINT StartInstanceLocation);
646       
647        void ( STDMETHODCALLTYPE *GSSetConstantBuffers )(
648            ID3D10Device1 * This,
649            /* [annotation] */
650            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
651            /* [annotation] */
652            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
653            /* [annotation] */
654            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers);
655       
656        void ( STDMETHODCALLTYPE *GSSetShader )(
657            ID3D10Device1 * This,
658            /* [annotation] */
659            __in_opt  ID3D10GeometryShader *pShader);
660       
661        void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
662            ID3D10Device1 * This,
663            /* [annotation] */
664            __in  D3D10_PRIMITIVE_TOPOLOGY Topology);
665       
666        void ( STDMETHODCALLTYPE *VSSetShaderResources )(
667            ID3D10Device1 * This,
668            /* [annotation] */
669            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
670            /* [annotation] */
671            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
672            /* [annotation] */
673            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews);
674       
675        void ( STDMETHODCALLTYPE *VSSetSamplers )(
676            ID3D10Device1 * This,
677            /* [annotation] */
678            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
679            /* [annotation] */
680            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
681            /* [annotation] */
682            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers);
683       
684        void ( STDMETHODCALLTYPE *SetPredication )(
685            ID3D10Device1 * This,
686            /* [annotation] */
687            __in_opt  ID3D10Predicate *pPredicate,
688            /* [annotation] */
689            __in  BOOL PredicateValue);
690       
691        void ( STDMETHODCALLTYPE *GSSetShaderResources )(
692            ID3D10Device1 * This,
693            /* [annotation] */
694            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
695            /* [annotation] */
696            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
697            /* [annotation] */
698            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews);
699       
700        void ( STDMETHODCALLTYPE *GSSetSamplers )(
701            ID3D10Device1 * This,
702            /* [annotation] */
703            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
704            /* [annotation] */
705            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
706            /* [annotation] */
707            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers);
708       
709        void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
710            ID3D10Device1 * This,
711            /* [annotation] */
712            __in_range( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
713            /* [annotation] */
714            __in_ecount_opt(NumViews)  ID3D10RenderTargetView *const *ppRenderTargetViews,
715            /* [annotation] */
716            __in_opt  ID3D10DepthStencilView *pDepthStencilView);
717       
718        void ( STDMETHODCALLTYPE *OMSetBlendState )(
719            ID3D10Device1 * This,
720            /* [annotation] */
721            __in_opt  ID3D10BlendState *pBlendState,
722            /* [annotation] */
723            __in  const FLOAT BlendFactor[ 4 ],
724            /* [annotation] */
725            __in  UINT SampleMask);
726       
727        void ( STDMETHODCALLTYPE *OMSetDepthStencilState )(
728            ID3D10Device1 * This,
729            /* [annotation] */
730            __in_opt  ID3D10DepthStencilState *pDepthStencilState,
731            /* [annotation] */
732            __in  UINT StencilRef);
733       
734        void ( STDMETHODCALLTYPE *SOSetTargets )(
735            ID3D10Device1 * This,
736            /* [annotation] */
737            __in_range( 0, D3D10_SO_BUFFER_SLOT_COUNT)  UINT NumBuffers,
738            /* [annotation] */
739            __in_ecount_opt(NumBuffers)  ID3D10Buffer *const *ppSOTargets,
740            /* [annotation] */
741            __in_ecount_opt(NumBuffers)  const UINT *pOffsets);
742       
743        void ( STDMETHODCALLTYPE *DrawAuto )(
744            ID3D10Device1 * This);
745       
746        void ( STDMETHODCALLTYPE *RSSetState )(
747            ID3D10Device1 * This,
748            /* [annotation] */
749            __in_opt  ID3D10RasterizerState *pRasterizerState);
750       
751        void ( STDMETHODCALLTYPE *RSSetViewports )(
752            ID3D10Device1 * This,
753            /* [annotation] */
754            __in_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumViewports,
755            /* [annotation] */
756            __in_ecount_opt(NumViewports)  const D3D10_VIEWPORT *pViewports);
757       
758        void ( STDMETHODCALLTYPE *RSSetScissorRects )(
759            ID3D10Device1 * This,
760            /* [annotation] */
761            __in_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumRects,
762            /* [annotation] */
763            __in_ecount_opt(NumRects)  const D3D10_RECT *pRects);
764       
765        void ( STDMETHODCALLTYPE *CopySubresourceRegion )(
766            ID3D10Device1 * This,
767            /* [annotation] */
768            __in  ID3D10Resource *pDstResource,
769            /* [annotation] */
770            __in  UINT DstSubresource,
771            /* [annotation] */
772            __in  UINT DstX,
773            /* [annotation] */
774            __in  UINT DstY,
775            /* [annotation] */
776            __in  UINT DstZ,
777            /* [annotation] */
778            __in  ID3D10Resource *pSrcResource,
779            /* [annotation] */
780            __in  UINT SrcSubresource,
781            /* [annotation] */
782            __in_opt  const D3D10_BOX *pSrcBox);
783       
784        void ( STDMETHODCALLTYPE *CopyResource )(
785            ID3D10Device1 * This,
786            /* [annotation] */
787            __in  ID3D10Resource *pDstResource,
788            /* [annotation] */
789            __in  ID3D10Resource *pSrcResource);
790       
791        void ( STDMETHODCALLTYPE *UpdateSubresource )(
792            ID3D10Device1 * This,
793            /* [annotation] */
794            __in  ID3D10Resource *pDstResource,
795            /* [annotation] */
796            __in  UINT DstSubresource,
797            /* [annotation] */
798            __in_opt  const D3D10_BOX *pDstBox,
799            /* [annotation] */
800            __in  const void *pSrcData,
801            /* [annotation] */
802            __in  UINT SrcRowPitch,
803            /* [annotation] */
804            __in  UINT SrcDepthPitch);
805       
806        void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
807            ID3D10Device1 * This,
808            /* [annotation] */
809            __in  ID3D10RenderTargetView *pRenderTargetView,
810            /* [annotation] */
811            __in  const FLOAT ColorRGBA[ 4 ]);
812       
813        void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
814            ID3D10Device1 * This,
815            /* [annotation] */
816            __in  ID3D10DepthStencilView *pDepthStencilView,
817            /* [annotation] */
818            __in  UINT ClearFlags,
819            /* [annotation] */
820            __in  FLOAT Depth,
821            /* [annotation] */
822            __in  UINT8 Stencil);
823       
824        void ( STDMETHODCALLTYPE *GenerateMips )(
825            ID3D10Device1 * This,
826            /* [annotation] */
827            __in  ID3D10ShaderResourceView *pShaderResourceView);
828       
829        void ( STDMETHODCALLTYPE *ResolveSubresource )(
830            ID3D10Device1 * This,
831            /* [annotation] */
832            __in  ID3D10Resource *pDstResource,
833            /* [annotation] */
834            __in  UINT DstSubresource,
835            /* [annotation] */
836            __in  ID3D10Resource *pSrcResource,
837            /* [annotation] */
838            __in  UINT SrcSubresource,
839            /* [annotation] */
840            __in  DXGI_FORMAT Format);
841       
842        void ( STDMETHODCALLTYPE *VSGetConstantBuffers )(
843            ID3D10Device1 * This,
844            /* [annotation] */
845            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
846            /* [annotation] */
847            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
848            /* [annotation] */
849            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers);
850       
851        void ( STDMETHODCALLTYPE *PSGetShaderResources )(
852            ID3D10Device1 * This,
853            /* [annotation] */
854            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
855            /* [annotation] */
856            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
857            /* [annotation] */
858            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews);
859       
860        void ( STDMETHODCALLTYPE *PSGetShader )(
861            ID3D10Device1 * This,
862            /* [annotation] */
863            __out  ID3D10PixelShader **ppPixelShader);
864       
865        void ( STDMETHODCALLTYPE *PSGetSamplers )(
866            ID3D10Device1 * This,
867            /* [annotation] */
868            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
869            /* [annotation] */
870            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
871            /* [annotation] */
872            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers);
873       
874        void ( STDMETHODCALLTYPE *VSGetShader )(
875            ID3D10Device1 * This,
876            /* [annotation] */
877            __out  ID3D10VertexShader **ppVertexShader);
878       
879        void ( STDMETHODCALLTYPE *PSGetConstantBuffers )(
880            ID3D10Device1 * This,
881            /* [annotation] */
882            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
883            /* [annotation] */
884            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
885            /* [annotation] */
886            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers);
887       
888        void ( STDMETHODCALLTYPE *IAGetInputLayout )(
889            ID3D10Device1 * This,
890            /* [annotation] */
891            __out  ID3D10InputLayout **ppInputLayout);
892       
893        void ( STDMETHODCALLTYPE *IAGetVertexBuffers )(
894            ID3D10Device1 * This,
895            /* [annotation] */
896            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
897            /* [annotation] */
898            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
899            /* [annotation] */
900            __out_ecount_opt(NumBuffers)  ID3D10Buffer **ppVertexBuffers,
901            /* [annotation] */
902            __out_ecount_opt(NumBuffers)  UINT *pStrides,
903            /* [annotation] */
904            __out_ecount_opt(NumBuffers)  UINT *pOffsets);
905       
906        void ( STDMETHODCALLTYPE *IAGetIndexBuffer )(
907            ID3D10Device1 * This,
908            /* [annotation] */
909            __out_opt  ID3D10Buffer **pIndexBuffer,
910            /* [annotation] */
911            __out_opt  DXGI_FORMAT *Format,
912            /* [annotation] */
913            __out_opt  UINT *Offset);
914       
915        void ( STDMETHODCALLTYPE *GSGetConstantBuffers )(
916            ID3D10Device1 * This,
917            /* [annotation] */
918            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
919            /* [annotation] */
920            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
921            /* [annotation] */
922            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers);
923       
924        void ( STDMETHODCALLTYPE *GSGetShader )(
925            ID3D10Device1 * This,
926            /* [annotation] */
927            __out  ID3D10GeometryShader **ppGeometryShader);
928       
929        void ( STDMETHODCALLTYPE *IAGetPrimitiveTopology )(
930            ID3D10Device1 * This,
931            /* [annotation] */
932            __out  D3D10_PRIMITIVE_TOPOLOGY *pTopology);
933       
934        void ( STDMETHODCALLTYPE *VSGetShaderResources )(
935            ID3D10Device1 * This,
936            /* [annotation] */
937            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
938            /* [annotation] */
939            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
940            /* [annotation] */
941            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews);
942       
943        void ( STDMETHODCALLTYPE *VSGetSamplers )(
944            ID3D10Device1 * This,
945            /* [annotation] */
946            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
947            /* [annotation] */
948            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
949            /* [annotation] */
950            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers);
951       
952        void ( STDMETHODCALLTYPE *GetPredication )(
953            ID3D10Device1 * This,
954            /* [annotation] */
955            __out_opt  ID3D10Predicate **ppPredicate,
956            /* [annotation] */
957            __out_opt  BOOL *pPredicateValue);
958       
959        void ( STDMETHODCALLTYPE *GSGetShaderResources )(
960            ID3D10Device1 * This,
961            /* [annotation] */
962            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
963            /* [annotation] */
964            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
965            /* [annotation] */
966            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews);
967       
968        void ( STDMETHODCALLTYPE *GSGetSamplers )(
969            ID3D10Device1 * This,
970            /* [annotation] */
971            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
972            /* [annotation] */
973            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
974            /* [annotation] */
975            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers);
976       
977        void ( STDMETHODCALLTYPE *OMGetRenderTargets )(
978            ID3D10Device1 * This,
979            /* [annotation] */
980            __in_range( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
981            /* [annotation] */
982            __out_ecount_opt(NumViews)  ID3D10RenderTargetView **ppRenderTargetViews,
983            /* [annotation] */
984            __out_opt  ID3D10DepthStencilView **ppDepthStencilView);
985       
986        void ( STDMETHODCALLTYPE *OMGetBlendState )(
987            ID3D10Device1 * This,
988            /* [annotation] */
989            __out_opt  ID3D10BlendState **ppBlendState,
990            /* [annotation] */
991            __out_opt  FLOAT BlendFactor[ 4 ],
992            /* [annotation] */
993            __out_opt  UINT *pSampleMask);
994       
995        void ( STDMETHODCALLTYPE *OMGetDepthStencilState )(
996            ID3D10Device1 * This,
997            /* [annotation] */
998            __out_opt  ID3D10DepthStencilState **ppDepthStencilState,
999            /* [annotation] */
1000            __out_opt  UINT *pStencilRef);
1001       
1002        void ( STDMETHODCALLTYPE *SOGetTargets )(
1003            ID3D10Device1 * This,
1004            /* [annotation] */
1005            __in_range( 0, D3D10_SO_BUFFER_SLOT_COUNT )  UINT NumBuffers,
1006            /* [annotation] */
1007            __out_ecount_opt(NumBuffers)  ID3D10Buffer **ppSOTargets,
1008            /* [annotation] */
1009            __out_ecount_opt(NumBuffers)  UINT *pOffsets);
1010       
1011        void ( STDMETHODCALLTYPE *RSGetState )(
1012            ID3D10Device1 * This,
1013            /* [annotation] */
1014            __out  ID3D10RasterizerState **ppRasterizerState);
1015       
1016        void ( STDMETHODCALLTYPE *RSGetViewports )(
1017            ID3D10Device1 * This,
1018            /* [annotation] */
1019            __inout /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *NumViewports,
1020            /* [annotation] */
1021            __out_ecount_opt(*NumViewports)  D3D10_VIEWPORT *pViewports);
1022       
1023        void ( STDMETHODCALLTYPE *RSGetScissorRects )(
1024            ID3D10Device1 * This,
1025            /* [annotation] */
1026            __inout /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *NumRects,
1027            /* [annotation] */
1028            __out_ecount_opt(*NumRects)  D3D10_RECT *pRects);
1029       
1030        HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
1031            ID3D10Device1 * This);
1032       
1033        HRESULT ( STDMETHODCALLTYPE *SetExceptionMode )(
1034            ID3D10Device1 * This,
1035            UINT RaiseFlags);
1036       
1037        UINT ( STDMETHODCALLTYPE *GetExceptionMode )(
1038            ID3D10Device1 * This);
1039       
1040        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1041            ID3D10Device1 * This,
1042            /* [annotation] */
1043            __in  REFGUID guid,
1044            /* [annotation] */
1045            __inout  UINT *pDataSize,
1046            /* [annotation] */
1047            __out_bcount_opt(*pDataSize)  void *pData);
1048       
1049        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1050            ID3D10Device1 * This,
1051            /* [annotation] */
1052            __in  REFGUID guid,
1053            /* [annotation] */
1054            __in  UINT DataSize,
1055            /* [annotation] */
1056            __in_bcount_opt(DataSize)  const void *pData);
1057       
1058        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1059            ID3D10Device1 * This,
1060            /* [annotation] */
1061            __in  REFGUID guid,
1062            /* [annotation] */
1063            __in_opt  const IUnknown *pData);
1064       
1065        void ( STDMETHODCALLTYPE *ClearState )(
1066            ID3D10Device1 * This);
1067       
1068        void ( STDMETHODCALLTYPE *Flush )(
1069            ID3D10Device1 * This);
1070       
1071        HRESULT ( STDMETHODCALLTYPE *CreateBuffer )(
1072            ID3D10Device1 * This,
1073            /* [annotation] */
1074            __in  const D3D10_BUFFER_DESC *pDesc,
1075            /* [annotation] */
1076            __in_opt  const D3D10_SUBRESOURCE_DATA *pInitialData,
1077            /* [annotation] */
1078            __out_opt  ID3D10Buffer **ppBuffer);
1079       
1080        HRESULT ( STDMETHODCALLTYPE *CreateTexture1D )(
1081            ID3D10Device1 * This,
1082            /* [annotation] */
1083            __in  const D3D10_TEXTURE1D_DESC *pDesc,
1084            /* [annotation] */
1085            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D10_SUBRESOURCE_DATA *pInitialData,
1086            /* [annotation] */
1087            __out  ID3D10Texture1D **ppTexture1D);
1088       
1089        HRESULT ( STDMETHODCALLTYPE *CreateTexture2D )(
1090            ID3D10Device1 * This,
1091            /* [annotation] */
1092            __in  const D3D10_TEXTURE2D_DESC *pDesc,
1093            /* [annotation] */
1094            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D10_SUBRESOURCE_DATA *pInitialData,
1095            /* [annotation] */
1096            __out  ID3D10Texture2D **ppTexture2D);
1097       
1098        HRESULT ( STDMETHODCALLTYPE *CreateTexture3D )(
1099            ID3D10Device1 * This,
1100            /* [annotation] */
1101            __in  const D3D10_TEXTURE3D_DESC *pDesc,
1102            /* [annotation] */
1103            __in_xcount_opt(pDesc->MipLevels)  const D3D10_SUBRESOURCE_DATA *pInitialData,
1104            /* [annotation] */
1105            __out  ID3D10Texture3D **ppTexture3D);
1106       
1107        HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView )(
1108            ID3D10Device1 * This,
1109            /* [annotation] */
1110            __in  ID3D10Resource *pResource,
1111            /* [annotation] */
1112            __in_opt  const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
1113            /* [annotation] */
1114            __out_opt  ID3D10ShaderResourceView **ppSRView);
1115       
1116        HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView )(
1117            ID3D10Device1 * This,
1118            /* [annotation] */
1119            __in  ID3D10Resource *pResource,
1120            /* [annotation] */
1121            __in_opt  const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
1122            /* [annotation] */
1123            __out_opt  ID3D10RenderTargetView **ppRTView);
1124       
1125        HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilView )(
1126            ID3D10Device1 * This,
1127            /* [annotation] */
1128            __in  ID3D10Resource *pResource,
1129            /* [annotation] */
1130            __in_opt  const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
1131            /* [annotation] */
1132            __out_opt  ID3D10DepthStencilView **ppDepthStencilView);
1133       
1134        HRESULT ( STDMETHODCALLTYPE *CreateInputLayout )(
1135            ID3D10Device1 * This,
1136            /* [annotation] */
1137            __in_ecount(NumElements)  const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
1138            /* [annotation] */
1139            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT )  UINT NumElements,
1140            /* [annotation] */
1141            __in  const void *pShaderBytecodeWithInputSignature,
1142            /* [annotation] */
1143            __in  SIZE_T BytecodeLength,
1144            /* [annotation] */
1145            __out_opt  ID3D10InputLayout **ppInputLayout);
1146       
1147        HRESULT ( STDMETHODCALLTYPE *CreateVertexShader )(
1148            ID3D10Device1 * This,
1149            /* [annotation] */
1150            __in  const void *pShaderBytecode,
1151            /* [annotation] */
1152            __in  SIZE_T BytecodeLength,
1153            /* [annotation] */
1154            __out_opt  ID3D10VertexShader **ppVertexShader);
1155       
1156        HRESULT ( STDMETHODCALLTYPE *CreateGeometryShader )(
1157            ID3D10Device1 * This,
1158            /* [annotation] */
1159            __in  const void *pShaderBytecode,
1160            /* [annotation] */
1161            __in  SIZE_T BytecodeLength,
1162            /* [annotation] */
1163            __out_opt  ID3D10GeometryShader **ppGeometryShader);
1164       
1165        HRESULT ( STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput )(
1166            ID3D10Device1 * This,
1167            /* [annotation] */
1168            __in  const void *pShaderBytecode,
1169            /* [annotation] */
1170            __in  SIZE_T BytecodeLength,
1171            /* [annotation] */
1172            __in_ecount_opt(NumEntries)  const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
1173            /* [annotation] */
1174            __in_range( 0, D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT )  UINT NumEntries,
1175            /* [annotation] */
1176            __in  UINT OutputStreamStride,
1177            /* [annotation] */
1178            __out_opt  ID3D10GeometryShader **ppGeometryShader);
1179       
1180        HRESULT ( STDMETHODCALLTYPE *CreatePixelShader )(
1181            ID3D10Device1 * This,
1182            /* [annotation] */
1183            __in  const void *pShaderBytecode,
1184            /* [annotation] */
1185            __in  SIZE_T BytecodeLength,
1186            /* [annotation] */
1187            __out_opt  ID3D10PixelShader **ppPixelShader);
1188       
1189        HRESULT ( STDMETHODCALLTYPE *CreateBlendState )(
1190            ID3D10Device1 * This,
1191            /* [annotation] */
1192            __in  const D3D10_BLEND_DESC *pBlendStateDesc,
1193            /* [annotation] */
1194            __out_opt  ID3D10BlendState **ppBlendState);
1195       
1196        HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilState )(
1197            ID3D10Device1 * This,
1198            /* [annotation] */
1199            __in  const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
1200            /* [annotation] */
1201            __out_opt  ID3D10DepthStencilState **ppDepthStencilState);
1202       
1203        HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState )(
1204            ID3D10Device1 * This,
1205            /* [annotation] */
1206            __in  const D3D10_RASTERIZER_DESC *pRasterizerDesc,
1207            /* [annotation] */
1208            __out_opt  ID3D10RasterizerState **ppRasterizerState);
1209       
1210        HRESULT ( STDMETHODCALLTYPE *CreateSamplerState )(
1211            ID3D10Device1 * This,
1212            /* [annotation] */
1213            __in  const D3D10_SAMPLER_DESC *pSamplerDesc,
1214            /* [annotation] */
1215            __out_opt  ID3D10SamplerState **ppSamplerState);
1216       
1217        HRESULT ( STDMETHODCALLTYPE *CreateQuery )(
1218            ID3D10Device1 * This,
1219            /* [annotation] */
1220            __in  const D3D10_QUERY_DESC *pQueryDesc,
1221            /* [annotation] */
1222            __out_opt  ID3D10Query **ppQuery);
1223       
1224        HRESULT ( STDMETHODCALLTYPE *CreatePredicate )(
1225            ID3D10Device1 * This,
1226            /* [annotation] */
1227            __in  const D3D10_QUERY_DESC *pPredicateDesc,
1228            /* [annotation] */
1229            __out_opt  ID3D10Predicate **ppPredicate);
1230       
1231        HRESULT ( STDMETHODCALLTYPE *CreateCounter )(
1232            ID3D10Device1 * This,
1233            /* [annotation] */
1234            __in  const D3D10_COUNTER_DESC *pCounterDesc,
1235            /* [annotation] */
1236            __out_opt  ID3D10Counter **ppCounter);
1237       
1238        HRESULT ( STDMETHODCALLTYPE *CheckFormatSupport )(
1239            ID3D10Device1 * This,
1240            /* [annotation] */
1241            __in  DXGI_FORMAT Format,
1242            /* [annotation] */
1243            __out  UINT *pFormatSupport);
1244       
1245        HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels )(
1246            ID3D10Device1 * This,
1247            /* [annotation] */
1248            __in  DXGI_FORMAT Format,
1249            /* [annotation] */
1250            __in  UINT SampleCount,
1251            /* [annotation] */
1252            __out  UINT *pNumQualityLevels);
1253       
1254        void ( STDMETHODCALLTYPE *CheckCounterInfo )(
1255            ID3D10Device1 * This,
1256            /* [annotation] */
1257            __out  D3D10_COUNTER_INFO *pCounterInfo);
1258       
1259        HRESULT ( STDMETHODCALLTYPE *CheckCounter )(
1260            ID3D10Device1 * This,
1261            /* [annotation] */
1262            __in  const D3D10_COUNTER_DESC *pDesc,
1263            /* [annotation] */
1264            __out  D3D10_COUNTER_TYPE *pType,
1265            /* [annotation] */
1266            __out  UINT *pActiveCounters,
1267            /* [annotation] */
1268            __out_ecount_opt(*pNameLength)  LPSTR szName,
1269            /* [annotation] */
1270            __inout_opt  UINT *pNameLength,
1271            /* [annotation] */
1272            __out_ecount_opt(*pUnitsLength)  LPSTR szUnits,
1273            /* [annotation] */
1274            __inout_opt  UINT *pUnitsLength,
1275            /* [annotation] */
1276            __out_ecount_opt(*pDescriptionLength)  LPSTR szDescription,
1277            /* [annotation] */
1278            __inout_opt  UINT *pDescriptionLength);
1279       
1280        UINT ( STDMETHODCALLTYPE *GetCreationFlags )(
1281            ID3D10Device1 * This);
1282       
1283        HRESULT ( STDMETHODCALLTYPE *OpenSharedResource )(
1284            ID3D10Device1 * This,
1285            /* [annotation] */
1286            __in  HANDLE hResource,
1287            /* [annotation] */
1288            __in  REFIID ReturnedInterface,
1289            /* [annotation] */
1290            __out_opt  void **ppResource);
1291       
1292        void ( STDMETHODCALLTYPE *SetTextFilterSize )(
1293            ID3D10Device1 * This,
1294            /* [annotation] */
1295            __in  UINT Width,
1296            /* [annotation] */
1297            __in  UINT Height);
1298       
1299        void ( STDMETHODCALLTYPE *GetTextFilterSize )(
1300            ID3D10Device1 * This,
1301            /* [annotation] */
1302            __out_opt  UINT *pWidth,
1303            /* [annotation] */
1304            __out_opt  UINT *pHeight);
1305       
1306        HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView1 )(
1307            ID3D10Device1 * This,
1308            /* [annotation] */
1309            __in  ID3D10Resource *pResource,
1310            /* [annotation] */
1311            __in_opt  const D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc,
1312            /* [annotation] */
1313            __out_opt  ID3D10ShaderResourceView1 **ppSRView);
1314       
1315        HRESULT ( STDMETHODCALLTYPE *CreateBlendState1 )(
1316            ID3D10Device1 * This,
1317            /* [annotation] */
1318            __in  const D3D10_BLEND_DESC1 *pBlendStateDesc,
1319            /* [annotation] */
1320            __out_opt  ID3D10BlendState1 **ppBlendState);
1321       
1322        D3D10_FEATURE_LEVEL1 ( STDMETHODCALLTYPE *GetFeatureLevel )(
1323            ID3D10Device1 * This);
1324       
1325        END_INTERFACE
1326    } ID3D10Device1Vtbl;
1327
1328    interface ID3D10Device1
1329    {
1330        CONST_VTBL struct ID3D10Device1Vtbl *lpVtbl;
1331    };
1332
1333   
1334
1335#ifdef COBJMACROS
1336
1337
1338#define ID3D10Device1_QueryInterface(This,riid,ppvObject)   \
1339    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1340
1341#define ID3D10Device1_AddRef(This)   \
1342    ( (This)->lpVtbl -> AddRef(This) )
1343
1344#define ID3D10Device1_Release(This)   \
1345    ( (This)->lpVtbl -> Release(This) )
1346
1347
1348#define ID3D10Device1_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
1349    ( (This)->lpVtbl -> VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
1350
1351#define ID3D10Device1_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
1352    ( (This)->lpVtbl -> PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
1353
1354#define ID3D10Device1_PSSetShader(This,pPixelShader)   \
1355    ( (This)->lpVtbl -> PSSetShader(This,pPixelShader) )
1356
1357#define ID3D10Device1_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
1358    ( (This)->lpVtbl -> PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
1359
1360#define ID3D10Device1_VSSetShader(This,pVertexShader)   \
1361    ( (This)->lpVtbl -> VSSetShader(This,pVertexShader) )
1362
1363#define ID3D10Device1_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)   \
1364    ( (This)->lpVtbl -> DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) )
1365
1366#define ID3D10Device1_Draw(This,VertexCount,StartVertexLocation)   \
1367    ( (This)->lpVtbl -> Draw(This,VertexCount,StartVertexLocation) )
1368
1369#define ID3D10Device1_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
1370    ( (This)->lpVtbl -> PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
1371
1372#define ID3D10Device1_IASetInputLayout(This,pInputLayout)   \
1373    ( (This)->lpVtbl -> IASetInputLayout(This,pInputLayout) )
1374
1375#define ID3D10Device1_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)   \
1376    ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) )
1377
1378#define ID3D10Device1_IASetIndexBuffer(This,pIndexBuffer,Format,Offset)   \
1379    ( (This)->lpVtbl -> IASetIndexBuffer(This,pIndexBuffer,Format,Offset) )
1380
1381#define ID3D10Device1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)   \
1382    ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
1383
1384#define ID3D10Device1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)   \
1385    ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
1386
1387#define ID3D10Device1_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
1388    ( (This)->lpVtbl -> GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
1389
1390#define ID3D10Device1_GSSetShader(This,pShader)   \
1391    ( (This)->lpVtbl -> GSSetShader(This,pShader) )
1392
1393#define ID3D10Device1_IASetPrimitiveTopology(This,Topology)   \
1394    ( (This)->lpVtbl -> IASetPrimitiveTopology(This,Topology) )
1395
1396#define ID3D10Device1_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
1397    ( (This)->lpVtbl -> VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
1398
1399#define ID3D10Device1_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
1400    ( (This)->lpVtbl -> VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
1401
1402#define ID3D10Device1_SetPredication(This,pPredicate,PredicateValue)   \
1403    ( (This)->lpVtbl -> SetPredication(This,pPredicate,PredicateValue) )
1404
1405#define ID3D10Device1_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
1406    ( (This)->lpVtbl -> GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
1407
1408#define ID3D10Device1_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
1409    ( (This)->lpVtbl -> GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
1410
1411#define ID3D10Device1_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)   \
1412    ( (This)->lpVtbl -> OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) )
1413
1414#define ID3D10Device1_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)   \
1415    ( (This)->lpVtbl -> OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) )
1416
1417#define ID3D10Device1_OMSetDepthStencilState(This,pDepthStencilState,StencilRef)   \
1418    ( (This)->lpVtbl -> OMSetDepthStencilState(This,pDepthStencilState,StencilRef) )
1419
1420#define ID3D10Device1_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)   \
1421    ( (This)->lpVtbl -> SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) )
1422
1423#define ID3D10Device1_DrawAuto(This)   \
1424    ( (This)->lpVtbl -> DrawAuto(This) )
1425
1426#define ID3D10Device1_RSSetState(This,pRasterizerState)   \
1427    ( (This)->lpVtbl -> RSSetState(This,pRasterizerState) )
1428
1429#define ID3D10Device1_RSSetViewports(This,NumViewports,pViewports)   \
1430    ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
1431
1432#define ID3D10Device1_RSSetScissorRects(This,NumRects,pRects)   \
1433    ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
1434
1435#define ID3D10Device1_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)   \
1436    ( (This)->lpVtbl -> CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) )
1437
1438#define ID3D10Device1_CopyResource(This,pDstResource,pSrcResource)   \
1439    ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
1440
1441#define ID3D10Device1_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)   \
1442    ( (This)->lpVtbl -> UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
1443
1444#define ID3D10Device1_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)   \
1445    ( (This)->lpVtbl -> ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) )
1446
1447#define ID3D10Device1_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)   \
1448    ( (This)->lpVtbl -> ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) )
1449
1450#define ID3D10Device1_GenerateMips(This,pShaderResourceView)   \
1451    ( (This)->lpVtbl -> GenerateMips(This,pShaderResourceView) )
1452
1453#define ID3D10Device1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)   \
1454    ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
1455
1456#define ID3D10Device1_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
1457    ( (This)->lpVtbl -> VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
1458
1459#define ID3D10Device1_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
1460    ( (This)->lpVtbl -> PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
1461
1462#define ID3D10Device1_PSGetShader(This,ppPixelShader)   \
1463    ( (This)->lpVtbl -> PSGetShader(This,ppPixelShader) )
1464
1465#define ID3D10Device1_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
1466    ( (This)->lpVtbl -> PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
1467
1468#define ID3D10Device1_VSGetShader(This,ppVertexShader)   \
1469    ( (This)->lpVtbl -> VSGetShader(This,ppVertexShader) )
1470
1471#define ID3D10Device1_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
1472    ( (This)->lpVtbl -> PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
1473
1474#define ID3D10Device1_IAGetInputLayout(This,ppInputLayout)   \
1475    ( (This)->lpVtbl -> IAGetInputLayout(This,ppInputLayout) )
1476
1477#define ID3D10Device1_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)   \
1478    ( (This)->lpVtbl -> IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) )
1479
1480#define ID3D10Device1_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)   \
1481    ( (This)->lpVtbl -> IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) )
1482
1483#define ID3D10Device1_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
1484    ( (This)->lpVtbl -> GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
1485
1486#define ID3D10Device1_GSGetShader(This,ppGeometryShader)   \
1487    ( (This)->lpVtbl -> GSGetShader(This,ppGeometryShader) )
1488
1489#define ID3D10Device1_IAGetPrimitiveTopology(This,pTopology)   \
1490    ( (This)->lpVtbl -> IAGetPrimitiveTopology(This,pTopology) )
1491
1492#define ID3D10Device1_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
1493    ( (This)->lpVtbl -> VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
1494
1495#define ID3D10Device1_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
1496    ( (This)->lpVtbl -> VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
1497
1498#define ID3D10Device1_GetPredication(This,ppPredicate,pPredicateValue)   \
1499    ( (This)->lpVtbl -> GetPredication(This,ppPredicate,pPredicateValue) )
1500
1501#define ID3D10Device1_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
1502    ( (This)->lpVtbl -> GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
1503
1504#define ID3D10Device1_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
1505    ( (This)->lpVtbl -> GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
1506
1507#define ID3D10Device1_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)   \
1508    ( (This)->lpVtbl -> OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) )
1509
1510#define ID3D10Device1_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)   \
1511    ( (This)->lpVtbl -> OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) )
1512
1513#define ID3D10Device1_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)   \
1514    ( (This)->lpVtbl -> OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) )
1515
1516#define ID3D10Device1_SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets)   \
1517    ( (This)->lpVtbl -> SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets) )
1518
1519#define ID3D10Device1_RSGetState(This,ppRasterizerState)   \
1520    ( (This)->lpVtbl -> RSGetState(This,ppRasterizerState) )
1521
1522#define ID3D10Device1_RSGetViewports(This,NumViewports,pViewports)   \
1523    ( (This)->lpVtbl -> RSGetViewports(This,NumViewports,pViewports) )
1524
1525#define ID3D10Device1_RSGetScissorRects(This,NumRects,pRects)   \
1526    ( (This)->lpVtbl -> RSGetScissorRects(This,NumRects,pRects) )
1527
1528#define ID3D10Device1_GetDeviceRemovedReason(This)   \
1529    ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
1530
1531#define ID3D10Device1_SetExceptionMode(This,RaiseFlags)   \
1532    ( (This)->lpVtbl -> SetExceptionMode(This,RaiseFlags) )
1533
1534#define ID3D10Device1_GetExceptionMode(This)   \
1535    ( (This)->lpVtbl -> GetExceptionMode(This) )
1536
1537#define ID3D10Device1_GetPrivateData(This,guid,pDataSize,pData)   \
1538    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1539
1540#define ID3D10Device1_SetPrivateData(This,guid,DataSize,pData)   \
1541    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1542
1543#define ID3D10Device1_SetPrivateDataInterface(This,guid,pData)   \
1544    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1545
1546#define ID3D10Device1_ClearState(This)   \
1547    ( (This)->lpVtbl -> ClearState(This) )
1548
1549#define ID3D10Device1_Flush(This)   \
1550    ( (This)->lpVtbl -> Flush(This) )
1551
1552#define ID3D10Device1_CreateBuffer(This,pDesc,pInitialData,ppBuffer)   \
1553    ( (This)->lpVtbl -> CreateBuffer(This,pDesc,pInitialData,ppBuffer) )
1554
1555#define ID3D10Device1_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)   \
1556    ( (This)->lpVtbl -> CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) )
1557
1558#define ID3D10Device1_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)   \
1559    ( (This)->lpVtbl -> CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) )
1560
1561#define ID3D10Device1_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)   \
1562    ( (This)->lpVtbl -> CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) )
1563
1564#define ID3D10Device1_CreateShaderResourceView(This,pResource,pDesc,ppSRView)   \
1565    ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,ppSRView) )
1566
1567#define ID3D10Device1_CreateRenderTargetView(This,pResource,pDesc,ppRTView)   \
1568    ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,ppRTView) )
1569
1570#define ID3D10Device1_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)   \
1571    ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) )
1572
1573#define ID3D10Device1_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)   \
1574    ( (This)->lpVtbl -> CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) )
1575
1576#define ID3D10Device1_CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader)   \
1577    ( (This)->lpVtbl -> CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader) )
1578
1579#define ID3D10Device1_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader)   \
1580    ( (This)->lpVtbl -> CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader) )
1581
1582#define ID3D10Device1_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader)   \
1583    ( (This)->lpVtbl -> CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader) )
1584
1585#define ID3D10Device1_CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader)   \
1586    ( (This)->lpVtbl -> CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader) )
1587
1588#define ID3D10Device1_CreateBlendState(This,pBlendStateDesc,ppBlendState)   \
1589    ( (This)->lpVtbl -> CreateBlendState(This,pBlendStateDesc,ppBlendState) )
1590
1591#define ID3D10Device1_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)   \
1592    ( (This)->lpVtbl -> CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) )
1593
1594#define ID3D10Device1_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)   \
1595    ( (This)->lpVtbl -> CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) )
1596
1597#define ID3D10Device1_CreateSamplerState(This,pSamplerDesc,ppSamplerState)   \
1598    ( (This)->lpVtbl -> CreateSamplerState(This,pSamplerDesc,ppSamplerState) )
1599
1600#define ID3D10Device1_CreateQuery(This,pQueryDesc,ppQuery)   \
1601    ( (This)->lpVtbl -> CreateQuery(This,pQueryDesc,ppQuery) )
1602
1603#define ID3D10Device1_CreatePredicate(This,pPredicateDesc,ppPredicate)   \
1604    ( (This)->lpVtbl -> CreatePredicate(This,pPredicateDesc,ppPredicate) )
1605
1606#define ID3D10Device1_CreateCounter(This,pCounterDesc,ppCounter)   \
1607    ( (This)->lpVtbl -> CreateCounter(This,pCounterDesc,ppCounter) )
1608
1609#define ID3D10Device1_CheckFormatSupport(This,Format,pFormatSupport)   \
1610    ( (This)->lpVtbl -> CheckFormatSupport(This,Format,pFormatSupport) )
1611
1612#define ID3D10Device1_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)   \
1613    ( (This)->lpVtbl -> CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) )
1614
1615#define ID3D10Device1_CheckCounterInfo(This,pCounterInfo)   \
1616    ( (This)->lpVtbl -> CheckCounterInfo(This,pCounterInfo) )
1617
1618#define ID3D10Device1_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)   \
1619    ( (This)->lpVtbl -> CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) )
1620
1621#define ID3D10Device1_GetCreationFlags(This)   \
1622    ( (This)->lpVtbl -> GetCreationFlags(This) )
1623
1624#define ID3D10Device1_OpenSharedResource(This,hResource,ReturnedInterface,ppResource)   \
1625    ( (This)->lpVtbl -> OpenSharedResource(This,hResource,ReturnedInterface,ppResource) )
1626
1627#define ID3D10Device1_SetTextFilterSize(This,Width,Height)   \
1628    ( (This)->lpVtbl -> SetTextFilterSize(This,Width,Height) )
1629
1630#define ID3D10Device1_GetTextFilterSize(This,pWidth,pHeight)   \
1631    ( (This)->lpVtbl -> GetTextFilterSize(This,pWidth,pHeight) )
1632
1633
1634#define ID3D10Device1_CreateShaderResourceView1(This,pResource,pDesc,ppSRView)   \
1635    ( (This)->lpVtbl -> CreateShaderResourceView1(This,pResource,pDesc,ppSRView) )
1636
1637#define ID3D10Device1_CreateBlendState1(This,pBlendStateDesc,ppBlendState)   \
1638    ( (This)->lpVtbl -> CreateBlendState1(This,pBlendStateDesc,ppBlendState) )
1639
1640#define ID3D10Device1_GetFeatureLevel(This)   \
1641    ( (This)->lpVtbl -> GetFeatureLevel(This) )
1642
1643#endif /* COBJMACROS */
1644
1645
1646#endif    /* C style interface */
1647
1648
1649
1650
1651#endif    /* __ID3D10Device1_INTERFACE_DEFINED__ */
1652
1653
1654/* interface __MIDL_itf_d3d10_1_0000_0003 */
1655/* [local] */
1656
1657#define   D3D10_1_SDK_VERSION   ( ( 0 + 0x20 )  )
1658
1659#include "d3d10_1shader.h"
1660
1661///////////////////////////////////////////////////////////////////////////
1662// D3D10CreateDevice1
1663// ------------------
1664//
1665// pAdapter
1666//      If NULL, D3D10CreateDevice1 will choose the primary adapter and
1667//      create a new instance from a temporarily created IDXGIFactory.
1668//      If non-NULL, D3D10CreateDevice1 will register the appropriate
1669//      device, if necessary (via IDXGIAdapter::RegisterDrver), before
1670//      creating the device.
1671// DriverType
1672//      Specifies the driver type to be created: hardware, reference or
1673//      null.
1674// Software
1675//      HMODULE of a DLL implementing a software rasterizer. Must be NULL for
1676//      non-Software driver types.
1677// Flags
1678//      Any of those documented for D3D10CreateDeviceAndSwapChain1.
1679// HardwareLevel
1680//      Any of those documented for D3D10CreateDeviceAndSwapChain1.
1681// SDKVersion
1682//      SDK version. Use the D3D10_1_SDK_VERSION macro.
1683// ppDevice
1684//      Pointer to returned interface.
1685//
1686// Return Values
1687//  Any of those documented for
1688//          CreateDXGIFactory
1689//          IDXGIFactory::EnumAdapters
1690//          IDXGIAdapter::RegisterDriver
1691//          D3D10CreateDevice1
1692//
1693///////////////////////////////////////////////////////////////////////////
1694typedef HRESULT (WINAPI* PFN_D3D10_CREATE_DEVICE1)(IDXGIAdapter *,
1695    D3D10_DRIVER_TYPE, HMODULE, UINT, D3D10_FEATURE_LEVEL1, UINT, ID3D10Device1**);
1696
1697HRESULT WINAPI D3D10CreateDevice1(
1698    IDXGIAdapter *pAdapter,
1699    D3D10_DRIVER_TYPE DriverType,
1700    HMODULE Software,
1701    UINT Flags,
1702    D3D10_FEATURE_LEVEL1 HardwareLevel,
1703    UINT SDKVersion,
1704    ID3D10Device1 **ppDevice);
1705
1706///////////////////////////////////////////////////////////////////////////
1707// D3D10CreateDeviceAndSwapChain1
1708// ------------------------------
1709//
1710// ppAdapter
1711//      If NULL, D3D10CreateDevice1 will choose the primary adapter and
1712//      create a new instance from a temporarily created IDXGIFactory.
1713//      If non-NULL, D3D10CreateDevice1 will register the appropriate
1714//      device, if necessary (via IDXGIAdapter::RegisterDrver), before
1715//      creating the device.
1716// DriverType
1717//      Specifies the driver type to be created: hardware, reference or
1718//      null.
1719// Software
1720//      HMODULE of a DLL implementing a software rasterizer. Must be NULL for
1721//      non-Software driver types.
1722// Flags
1723//      Any of those documented for D3D10CreateDevice1.
1724// HardwareLevel
1725//      Any of:
1726//          D3D10_CREATE_LEVEL_10_0
1727//          D3D10_CREATE_LEVEL_10_1
1728// SDKVersion
1729//      SDK version. Use the D3D10_1_SDK_VERSION macro.
1730// pSwapChainDesc
1731//      Swap chain description, may be NULL.
1732// ppSwapChain
1733//      Pointer to returned interface. May be NULL.
1734// ppDevice
1735//      Pointer to returned interface.
1736//
1737// Return Values
1738//  Any of those documented for
1739//          CreateDXGIFactory
1740//          IDXGIFactory::EnumAdapters
1741//          IDXGIAdapter::RegisterDriver
1742//          D3D10CreateDevice1
1743//          IDXGIFactory::CreateSwapChain
1744//
1745///////////////////////////////////////////////////////////////////////////
1746typedef HRESULT (WINAPI* PFN_D3D10_CREATE_DEVICE_AND_SWAP_CHAIN1)(IDXGIAdapter *,
1747    D3D10_DRIVER_TYPE, HMODULE, UINT, D3D10_FEATURE_LEVEL1, UINT, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **, ID3D10Device1 **);
1748
1749HRESULT WINAPI D3D10CreateDeviceAndSwapChain1(
1750    IDXGIAdapter *pAdapter,
1751    D3D10_DRIVER_TYPE DriverType,
1752    HMODULE Software,
1753    UINT Flags,
1754    D3D10_FEATURE_LEVEL1 HardwareLevel,
1755    UINT SDKVersion,
1756    DXGI_SWAP_CHAIN_DESC *pSwapChainDesc,
1757    IDXGISwapChain **ppSwapChain,
1758    ID3D10Device1 **ppDevice);
1759DEFINE_GUID(IID_ID3D10BlendState1,0xEDAD8D99,0x8A35,0x4d6d,0x85,0x66,0x2E,0xA2,0x76,0xCD,0xE1,0x61);
1760DEFINE_GUID(IID_ID3D10ShaderResourceView1,0x9B7E4C87,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
1761DEFINE_GUID(IID_ID3D10Device1,0x9B7E4C8F,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
1762
1763
1764extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0003_v0_0_c_ifspec;
1765extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0003_v0_0_s_ifspec;
1766
1767/* Additional Prototypes for ALL interfaces */
1768
1769/* end of Additional Prototypes */
1770
1771#ifdef __cplusplus
1772}
1773#endif
1774
1775#endif
1776
1777
trunk/3rdparty/dxsdk/Include/D3D10_1shader.h
r243310r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (c) Microsoft Corporation.  All rights reserved.
4//
5//  File:       D3D10_1Shader.h
6//  Content:    D3D10.1 Shader Types and APIs
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#ifndef __D3D10_1SHADER_H__
11#define __D3D10_1SHADER_H__
12
13#include "d3d10shader.h"
14
15//----------------------------------------------------------------------------
16// Shader debugging structures
17//----------------------------------------------------------------------------
18
19typedef enum _D3D10_SHADER_DEBUG_REGTYPE
20{
21    D3D10_SHADER_DEBUG_REG_INPUT,
22    D3D10_SHADER_DEBUG_REG_OUTPUT,
23    D3D10_SHADER_DEBUG_REG_CBUFFER,
24    D3D10_SHADER_DEBUG_REG_TBUFFER,
25    D3D10_SHADER_DEBUG_REG_TEMP,
26    D3D10_SHADER_DEBUG_REG_TEMPARRAY,
27    D3D10_SHADER_DEBUG_REG_TEXTURE,
28    D3D10_SHADER_DEBUG_REG_SAMPLER,
29    D3D10_SHADER_DEBUG_REG_IMMEDIATECBUFFER,
30    D3D10_SHADER_DEBUG_REG_LITERAL,
31    D3D10_SHADER_DEBUG_REG_UNUSED,
32    D3D11_SHADER_DEBUG_REG_INTERFACE_POINTERS,
33    D3D11_SHADER_DEBUG_REG_UAV,
34    D3D10_SHADER_DEBUG_REG_FORCE_DWORD = 0x7fffffff,
35} D3D10_SHADER_DEBUG_REGTYPE;
36
37typedef enum _D3D10_SHADER_DEBUG_SCOPETYPE
38{
39    D3D10_SHADER_DEBUG_SCOPE_GLOBAL,
40    D3D10_SHADER_DEBUG_SCOPE_BLOCK,
41    D3D10_SHADER_DEBUG_SCOPE_FORLOOP,
42    D3D10_SHADER_DEBUG_SCOPE_STRUCT,
43    D3D10_SHADER_DEBUG_SCOPE_FUNC_PARAMS,
44    D3D10_SHADER_DEBUG_SCOPE_STATEBLOCK,
45    D3D10_SHADER_DEBUG_SCOPE_NAMESPACE,
46    D3D10_SHADER_DEBUG_SCOPE_ANNOTATION,
47    D3D10_SHADER_DEBUG_SCOPE_FORCE_DWORD = 0x7fffffff,
48} D3D10_SHADER_DEBUG_SCOPETYPE;
49
50typedef enum _D3D10_SHADER_DEBUG_VARTYPE
51{
52    D3D10_SHADER_DEBUG_VAR_VARIABLE,
53    D3D10_SHADER_DEBUG_VAR_FUNCTION,
54    D3D10_SHADER_DEBUG_VAR_FORCE_DWORD = 0x7fffffff,
55} D3D10_SHADER_DEBUG_VARTYPE;
56
57/////////////////////////////////////////////////////////////////////
58// These are the serialized structures that get written to the file
59/////////////////////////////////////////////////////////////////////
60
61typedef struct _D3D10_SHADER_DEBUG_TOKEN_INFO
62{
63    UINT File;    // offset into file list
64    UINT Line;    // line #
65    UINT Column;  // column #
66
67    UINT TokenLength;
68    UINT TokenId; // offset to LPCSTR of length TokenLength in string datastore
69} D3D10_SHADER_DEBUG_TOKEN_INFO;
70
71// Variable list
72typedef struct _D3D10_SHADER_DEBUG_VAR_INFO
73{
74    // Index into token list for declaring identifier
75    UINT TokenId;
76    D3D10_SHADER_VARIABLE_TYPE Type;
77    // register and component for this variable, only valid/necessary for arrays
78    UINT Register;
79    UINT Component;
80    // gives the original variable that declared this variable
81    UINT ScopeVar;
82    // this variable's offset in its ScopeVar
83    UINT ScopeVarOffset;
84} D3D10_SHADER_DEBUG_VAR_INFO;
85
86typedef struct _D3D10_SHADER_DEBUG_INPUT_INFO
87{
88    // index into array of variables of variable to initialize
89    UINT Var;
90    // input, cbuffer, tbuffer
91    D3D10_SHADER_DEBUG_REGTYPE InitialRegisterSet;
92    // set to cbuffer or tbuffer slot, geometry shader input primitive #,
93    // identifying register for indexable temp, or -1
94    UINT InitialBank;
95    // -1 if temp, otherwise gives register in register set
96    UINT InitialRegister;
97    // -1 if temp, otherwise gives component
98    UINT InitialComponent;
99    // initial value if literal
100    UINT InitialValue;
101} D3D10_SHADER_DEBUG_INPUT_INFO;
102
103typedef struct _D3D10_SHADER_DEBUG_SCOPEVAR_INFO
104{
105    // Index into variable token
106    UINT TokenId;
107
108    D3D10_SHADER_DEBUG_VARTYPE VarType; // variable or function (different namespaces)
109    D3D10_SHADER_VARIABLE_CLASS Class;
110    UINT Rows;          // number of rows (matrices)
111    UINT Columns;       // number of columns (vectors and matrices)
112
113    // In an array of structures, one struct member scope is provided, and
114    // you'll have to add the array stride times the index to the variable
115    // index you find, then find that variable in this structure's list of
116    // variables.
117
118    // gives a scope to look up struct members. -1 if not a struct
119    UINT StructMemberScope;
120
121    // number of array indices
122    UINT uArrayIndices;    // a[3][2][1] has 3 indices
123    // maximum array index for each index
124    // offset to UINT[uArrayIndices] in UINT datastore
125    UINT ArrayElements; // a[3][2][1] has {3, 2, 1}
126    // how many variables each array index moves
127    // offset to UINT[uArrayIndices] in UINT datastore
128    UINT ArrayStrides;  // a[3][2][1] has {2, 1, 1}
129
130    UINT uVariables;
131    // index of the first variable, later variables are offsets from this one
132    UINT uFirstVariable;
133} D3D10_SHADER_DEBUG_SCOPEVAR_INFO;
134
135// scope data, this maps variable names to debug variables (useful for the watch window)
136typedef struct _D3D10_SHADER_DEBUG_SCOPE_INFO
137{
138    D3D10_SHADER_DEBUG_SCOPETYPE ScopeType;
139    UINT Name;         // offset to name of scope in strings list
140    UINT uNameLen;     // length of name string
141    UINT uVariables;
142    UINT VariableData; // Offset to UINT[uVariables] indexing the Scope Variable list
143} D3D10_SHADER_DEBUG_SCOPE_INFO;
144
145// instruction outputs
146typedef struct _D3D10_SHADER_DEBUG_OUTPUTVAR
147{
148    // index variable being written to, if -1 it's not going to a variable
149    UINT Var;
150    // range data that the compiler expects to be true
151    UINT  uValueMin, uValueMax;
152    INT   iValueMin, iValueMax;
153    FLOAT fValueMin, fValueMax;
154
155    BOOL  bNaNPossible, bInfPossible;
156} D3D10_SHADER_DEBUG_OUTPUTVAR;
157
158typedef struct _D3D10_SHADER_DEBUG_OUTPUTREG_INFO
159{
160    // Only temp, indexable temp, and output are valid here
161    D3D10_SHADER_DEBUG_REGTYPE OutputRegisterSet;
162    // -1 means no output
163    UINT OutputReg;
164    // if a temp array, identifier for which one
165    UINT TempArrayReg;
166    // -1 means masked out
167    UINT OutputComponents[4];
168    D3D10_SHADER_DEBUG_OUTPUTVAR OutputVars[4];
169    // when indexing the output, get the value of this register, then add
170    // that to uOutputReg. If uIndexReg is -1, then there is no index.
171    // find the variable whose register is the sum (by looking in the ScopeVar)
172    // and component matches, then set it. This should only happen for indexable
173    // temps and outputs.
174    UINT IndexReg;
175    UINT IndexComp;
176} D3D10_SHADER_DEBUG_OUTPUTREG_INFO;
177
178// per instruction data
179typedef struct _D3D10_SHADER_DEBUG_INST_INFO
180{
181    UINT Id; // Which instruction this is in the bytecode
182    UINT Opcode; // instruction type
183
184    // 0, 1, or 2
185    UINT uOutputs;
186
187    // up to two outputs per instruction
188    D3D10_SHADER_DEBUG_OUTPUTREG_INFO pOutputs[2];
189   
190    // index into the list of tokens for this instruction's token
191    UINT TokenId;
192
193    // how many function calls deep this instruction is
194    UINT NestingLevel;
195
196    // list of scopes from outer-most to inner-most
197    // Number of scopes
198    UINT Scopes;
199    UINT ScopeInfo; // Offset to UINT[uScopes] specifying indices of the ScopeInfo Array
200
201    // list of variables accessed by this instruction
202    // Number of variables
203    UINT AccessedVars;
204    UINT AccessedVarsInfo; // Offset to UINT[AccessedVars] specifying indices of the ScopeVariableInfo Array
205} D3D10_SHADER_DEBUG_INST_INFO;
206
207typedef struct _D3D10_SHADER_DEBUG_FILE_INFO
208{
209    UINT FileName;    // Offset to LPCSTR for file name
210    UINT FileNameLen; // Length of file name
211    UINT FileData;    // Offset to LPCSTR of length FileLen
212    UINT FileLen;     // Length of file
213} D3D10_SHADER_DEBUG_FILE_INFO;
214
215typedef struct _D3D10_SHADER_DEBUG_INFO
216{
217    UINT Size;                             // sizeof(D3D10_SHADER_DEBUG_INFO)
218    UINT Creator;                          // Offset to LPCSTR for compiler version
219    UINT EntrypointName;                   // Offset to LPCSTR for Entry point name
220    UINT ShaderTarget;                     // Offset to LPCSTR for shader target
221    UINT CompileFlags;                     // flags used to compile
222    UINT Files;                            // number of included files
223    UINT FileInfo;                         // Offset to D3D10_SHADER_DEBUG_FILE_INFO[Files]
224    UINT Instructions;                     // number of instructions
225    UINT InstructionInfo;                  // Offset to D3D10_SHADER_DEBUG_INST_INFO[Instructions]
226    UINT Variables;                        // number of variables
227    UINT VariableInfo;                     // Offset to D3D10_SHADER_DEBUG_VAR_INFO[Variables]
228    UINT InputVariables;                   // number of variables to initialize before running
229    UINT InputVariableInfo;                // Offset to D3D10_SHADER_DEBUG_INPUT_INFO[InputVariables]
230    UINT Tokens;                           // number of tokens to initialize
231    UINT TokenInfo;                        // Offset to D3D10_SHADER_DEBUG_TOKEN_INFO[Tokens]
232    UINT Scopes;                           // number of scopes
233    UINT ScopeInfo;                        // Offset to D3D10_SHADER_DEBUG_SCOPE_INFO[Scopes]
234    UINT ScopeVariables;                   // number of variables declared
235    UINT ScopeVariableInfo;                // Offset to D3D10_SHADER_DEBUG_SCOPEVAR_INFO[Scopes]
236    UINT UintOffset;                       // Offset to the UINT datastore, all UINT offsets are from this offset
237    UINT StringOffset;                     // Offset to the string datastore, all string offsets are from this offset
238} D3D10_SHADER_DEBUG_INFO;
239
240//----------------------------------------------------------------------------
241// ID3D10ShaderReflection1:
242//----------------------------------------------------------------------------
243
244//
245// Interface definitions
246//
247
248typedef interface ID3D10ShaderReflection1 ID3D10ShaderReflection1;
249typedef interface ID3D10ShaderReflection1 *LPD3D10SHADERREFLECTION1;
250
251// {C3457783-A846-47CE-9520-CEA6F66E7447}
252DEFINE_GUID(IID_ID3D10ShaderReflection1,
2530xc3457783, 0xa846, 0x47ce, 0x95, 0x20, 0xce, 0xa6, 0xf6, 0x6e, 0x74, 0x47);
254
255#undef INTERFACE
256#define INTERFACE ID3D10ShaderReflection1
257
258DECLARE_INTERFACE_(ID3D10ShaderReflection1, IUnknown)
259{
260    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
261    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
262    STDMETHOD_(ULONG, Release)(THIS) PURE;
263
264    STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_DESC *pDesc) PURE;
265   
266    STDMETHOD_(ID3D10ShaderReflectionConstantBuffer*, GetConstantBufferByIndex)(THIS_ UINT Index) PURE;
267    STDMETHOD_(ID3D10ShaderReflectionConstantBuffer*, GetConstantBufferByName)(THIS_ LPCSTR Name) PURE;
268   
269    STDMETHOD(GetResourceBindingDesc)(THIS_ UINT ResourceIndex, D3D10_SHADER_INPUT_BIND_DESC *pDesc) PURE;
270   
271    STDMETHOD(GetInputParameterDesc)(THIS_ UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
272    STDMETHOD(GetOutputParameterDesc)(THIS_ UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
273
274    STDMETHOD_(ID3D10ShaderReflectionVariable*, GetVariableByName)(THIS_ LPCSTR Name) PURE;
275
276    STDMETHOD(GetResourceBindingDescByName)(THIS_ LPCSTR Name, D3D10_SHADER_INPUT_BIND_DESC *pDesc) PURE;
277
278    STDMETHOD(GetMovInstructionCount)(THIS_ UINT* pCount) PURE;
279    STDMETHOD(GetMovcInstructionCount)(THIS_ UINT* pCount) PURE;
280    STDMETHOD(GetConversionInstructionCount)(THIS_ UINT* pCount) PURE;
281    STDMETHOD(GetBitwiseInstructionCount)(THIS_ UINT* pCount) PURE;
282   
283    STDMETHOD(GetGSInputPrimitive)(THIS_ D3D10_PRIMITIVE* pPrim) PURE;
284    STDMETHOD(IsLevel9Shader)(THIS_ BOOL* pbLevel9Shader) PURE;
285    STDMETHOD(IsSampleFrequencyShader)(THIS_ BOOL* pbSampleFrequency) PURE;
286};
287
288//////////////////////////////////////////////////////////////////////////////
289// APIs //////////////////////////////////////////////////////////////////////
290//////////////////////////////////////////////////////////////////////////////
291
292#ifdef __cplusplus
293extern "C" {
294#endif //__cplusplus
295
296#ifdef __cplusplus
297}
298#endif //__cplusplus
299   
300#endif //__D3D10_1SHADER_H__
301
trunk/3rdparty/dxsdk/Include/D3D10effect.h
r243310r243311
1
2//////////////////////////////////////////////////////////////////////////////
3//
4//  Copyright (c) Microsoft Corporation.  All rights reserved.
5//
6//  File:       D3D10Effect.h
7//  Content:    D3D10 Stateblock/Effect Types & APIs
8//
9//////////////////////////////////////////////////////////////////////////////
10
11#ifndef __D3D10EFFECT_H__
12#define __D3D10EFFECT_H__
13
14#include "d3d10.h"
15
16//////////////////////////////////////////////////////////////////////////////
17// File contents:
18//
19// 1) Stateblock enums, structs, interfaces, flat APIs
20// 2) Effect enums, structs, interfaces, flat APIs
21//////////////////////////////////////////////////////////////////////////////
22
23//----------------------------------------------------------------------------
24// D3D10_DEVICE_STATE_TYPES:
25//
26// Used in ID3D10StateBlockMask function calls
27//
28//----------------------------------------------------------------------------
29
30typedef enum _D3D10_DEVICE_STATE_TYPES
31{
32   
33    D3D10_DST_SO_BUFFERS=1,             // Single-value state (atomical gets/sets)
34    D3D10_DST_OM_RENDER_TARGETS,        // Single-value state (atomical gets/sets)
35    D3D10_DST_OM_DEPTH_STENCIL_STATE,   // Single-value state
36    D3D10_DST_OM_BLEND_STATE,           // Single-value state
37
38    D3D10_DST_VS,                       // Single-value state
39    D3D10_DST_VS_SAMPLERS,              // Count: D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT
40    D3D10_DST_VS_SHADER_RESOURCES,      // Count: D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT
41    D3D10_DST_VS_CONSTANT_BUFFERS,      // Count:         
42
43    D3D10_DST_GS,                       // Single-value state
44    D3D10_DST_GS_SAMPLERS,              // Count: D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT
45    D3D10_DST_GS_SHADER_RESOURCES,      // Count: D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT
46    D3D10_DST_GS_CONSTANT_BUFFERS,      // Count: D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT
47
48    D3D10_DST_PS,                       // Single-value state
49    D3D10_DST_PS_SAMPLERS,              // Count: D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT
50    D3D10_DST_PS_SHADER_RESOURCES,      // Count: D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT
51    D3D10_DST_PS_CONSTANT_BUFFERS,      // Count: D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT
52   
53    D3D10_DST_IA_VERTEX_BUFFERS,        // Count: D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT
54    D3D10_DST_IA_INDEX_BUFFER,          // Single-value state
55    D3D10_DST_IA_INPUT_LAYOUT,          // Single-value state
56    D3D10_DST_IA_PRIMITIVE_TOPOLOGY,    // Single-value state
57
58    D3D10_DST_RS_VIEWPORTS,             // Single-value state (atomical gets/sets)
59    D3D10_DST_RS_SCISSOR_RECTS,         // Single-value state (atomical gets/sets)
60    D3D10_DST_RS_RASTERIZER_STATE,      // Single-value state
61
62    D3D10_DST_PREDICATION,              // Single-value state
63} D3D10_DEVICE_STATE_TYPES;
64
65//----------------------------------------------------------------------------
66// D3D10_DEVICE_STATE_TYPES:
67//
68// Used in ID3D10StateBlockMask function calls
69//
70//----------------------------------------------------------------------------
71
72#ifndef D3D10_BYTES_FROM_BITS
73#define D3D10_BYTES_FROM_BITS(x) (((x) + 7) / 8)
74#endif // D3D10_BYTES_FROM_BITS
75
76typedef struct _D3D10_STATE_BLOCK_MASK
77{
78    BYTE VS;
79    BYTE VSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
80    BYTE VSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
81    BYTE VSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
82   
83    BYTE GS;
84    BYTE GSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
85    BYTE GSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
86    BYTE GSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
87   
88    BYTE PS;
89    BYTE PSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
90    BYTE PSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
91    BYTE PSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
92   
93    BYTE IAVertexBuffers[D3D10_BYTES_FROM_BITS(D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT)];
94    BYTE IAIndexBuffer;
95    BYTE IAInputLayout;
96    BYTE IAPrimitiveTopology;
97   
98    BYTE OMRenderTargets;
99    BYTE OMDepthStencilState;
100    BYTE OMBlendState;
101   
102    BYTE RSViewports;
103    BYTE RSScissorRects;
104    BYTE RSRasterizerState;
105   
106    BYTE SOBuffers;
107   
108    BYTE Predication;
109} D3D10_STATE_BLOCK_MASK;
110
111//////////////////////////////////////////////////////////////////////////////
112// ID3D10StateBlock //////////////////////////////////////////////////////////
113//////////////////////////////////////////////////////////////////////////////
114
115typedef interface ID3D10StateBlock ID3D10StateBlock;
116typedef interface ID3D10StateBlock *LPD3D10STATEBLOCK;
117
118// {0803425A-57F5-4dd6-9465-A87570834A08}
119DEFINE_GUID(IID_ID3D10StateBlock,
1200x803425a, 0x57f5, 0x4dd6, 0x94, 0x65, 0xa8, 0x75, 0x70, 0x83, 0x4a, 0x8);
121
122#undef INTERFACE
123#define INTERFACE ID3D10StateBlock
124
125DECLARE_INTERFACE_(ID3D10StateBlock, IUnknown)
126{
127    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
128    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
129    STDMETHOD_(ULONG, Release)(THIS) PURE;
130   
131    STDMETHOD(Capture)(THIS) PURE;
132    STDMETHOD(Apply)(THIS) PURE;
133    STDMETHOD(ReleaseAllDeviceObjects)(THIS) PURE;
134    STDMETHOD(GetDevice)(THIS_ ID3D10Device **ppDevice) PURE;
135};
136
137#ifdef __cplusplus
138extern "C" {
139#endif //__cplusplus
140
141//----------------------------------------------------------------------------
142// D3D10_STATE_BLOCK_MASK and manipulation functions
143// -------------------------------------------------
144//
145// These functions exist to facilitate working with the D3D10_STATE_BLOCK_MASK
146// structure.
147//
148// D3D10_STATE_BLOCK_MASK *pResult or *pMask
149//   The state block mask to operate on
150//
151// D3D10_STATE_BLOCK_MASK *pA, *pB
152//   The source state block masks for the binary union/intersect/difference
153//   operations.
154//
155// D3D10_DEVICE_STATE_TYPES StateType
156//   The specific state type to enable/disable/query
157//
158// UINT RangeStart, RangeLength, Entry
159//   The specific bit or range of bits for a given state type to operate on.
160//   Consult the comments for D3D10_DEVICE_STATE_TYPES and
161//   D3D10_STATE_BLOCK_MASK for information on the valid bit ranges for
162//   each state.
163//
164//----------------------------------------------------------------------------
165
166HRESULT WINAPI D3D10StateBlockMaskUnion(D3D10_STATE_BLOCK_MASK *pA, D3D10_STATE_BLOCK_MASK *pB, D3D10_STATE_BLOCK_MASK *pResult);
167HRESULT WINAPI D3D10StateBlockMaskIntersect(D3D10_STATE_BLOCK_MASK *pA, D3D10_STATE_BLOCK_MASK *pB, D3D10_STATE_BLOCK_MASK *pResult);
168HRESULT WINAPI D3D10StateBlockMaskDifference(D3D10_STATE_BLOCK_MASK *pA, D3D10_STATE_BLOCK_MASK *pB, D3D10_STATE_BLOCK_MASK *pResult);
169HRESULT WINAPI D3D10StateBlockMaskEnableCapture(D3D10_STATE_BLOCK_MASK *pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength);
170HRESULT WINAPI D3D10StateBlockMaskDisableCapture(D3D10_STATE_BLOCK_MASK *pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength);
171HRESULT WINAPI D3D10StateBlockMaskEnableAll(D3D10_STATE_BLOCK_MASK *pMask);
172HRESULT WINAPI D3D10StateBlockMaskDisableAll(D3D10_STATE_BLOCK_MASK *pMask);
173BOOL    WINAPI D3D10StateBlockMaskGetSetting(D3D10_STATE_BLOCK_MASK *pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT Entry);
174
175//----------------------------------------------------------------------------
176// D3D10CreateStateBlock
177// ---------------------
178//
179// Creates a state block object based on the mask settings specified
180//   in a D3D10_STATE_BLOCK_MASK structure.
181//
182// ID3D10Device *pDevice
183//      The device interface to associate with this state block
184//
185// D3D10_STATE_BLOCK_MASK *pStateBlockMask
186//      A bit mask whose settings are used to generate a state block
187//      object.
188//
189// ID3D10StateBlock **ppStateBlock
190//      The resulting state block object.  This object will save/restore
191//      only those pieces of state that were set in the state block
192//      bit mask
193//----------------------------------------------------------------------------
194
195HRESULT WINAPI D3D10CreateStateBlock(ID3D10Device *pDevice, D3D10_STATE_BLOCK_MASK *pStateBlockMask, ID3D10StateBlock **ppStateBlock);
196
197#ifdef __cplusplus
198}
199#endif //__cplusplus
200
201//----------------------------------------------------------------------------
202// D3D10_COMPILE & D3D10_EFFECT flags:
203// -------------------------------------
204//
205// These flags are passed in when creating an effect, and affect
206// either compilation behavior or runtime effect behavior
207//
208// D3D10_EFFECT_COMPILE_CHILD_EFFECT
209//   Compile this .fx file to a child effect. Child effects have no initializers
210//   for any shared values as these are initialied in the master effect (pool).
211//
212// D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS
213//   By default, performance mode is enabled.  Performance mode disallows
214//   mutable state objects by preventing non-literal expressions from appearing in
215//   state object definitions.  Specifying this flag will disable the mode and allow
216//   for mutable state objects.
217//
218// D3D10_EFFECT_SINGLE_THREADED
219//   Do not attempt to synchronize with other threads loading effects into the
220//   same pool.
221//
222//----------------------------------------------------------------------------
223
224#define D3D10_EFFECT_COMPILE_CHILD_EFFECT              (1 << 0)
225#define D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS            (1 << 1)
226#define D3D10_EFFECT_SINGLE_THREADED                   (1 << 3)
227
228
229//----------------------------------------------------------------------------
230// D3D10_EFFECT_VARIABLE flags:
231// ----------------------------
232//
233// These flags describe an effect variable (global or annotation),
234// and are returned in D3D10_EFFECT_VARIABLE_DESC::Flags.
235//
236// D3D10_EFFECT_VARIABLE_POOLED
237//   Indicates that the this variable or constant buffer resides
238//   in an effect pool. If this flag is not set, then the variable resides
239//   in a standalone effect (if ID3D10Effect::GetPool returns NULL)
240//   or a child effect (if ID3D10Effect::GetPool returns non-NULL)
241//
242// D3D10_EFFECT_VARIABLE_ANNOTATION
243//   Indicates that this is an annotation on a technique, pass, or global
244//   variable. Otherwise, this is a global variable. Annotations cannot
245//   be shared.
246//
247// D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT
248//   Indicates that the variable has been explicitly bound using the
249//   register keyword.
250//----------------------------------------------------------------------------
251
252#define D3D10_EFFECT_VARIABLE_POOLED                  (1 << 0)
253#define D3D10_EFFECT_VARIABLE_ANNOTATION              (1 << 1)
254#define D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT     (1 << 2)
255
256//////////////////////////////////////////////////////////////////////////////
257// ID3D10EffectType //////////////////////////////////////////////////////////
258//////////////////////////////////////////////////////////////////////////////
259
260//----------------------------------------------------------------------------
261// D3D10_EFFECT_TYPE_DESC:
262//
263// Retrieved by ID3D10EffectType::GetDesc()
264//----------------------------------------------------------------------------
265
266typedef struct _D3D10_EFFECT_TYPE_DESC
267{
268    LPCSTR  TypeName;               // Name of the type
269                                    // (e.g. "float4" or "MyStruct")
270
271    D3D10_SHADER_VARIABLE_CLASS    Class;  // (e.g. scalar, vector, object, etc.)
272    D3D10_SHADER_VARIABLE_TYPE     Type;   // (e.g. float, texture, vertexshader, etc.)
273   
274    UINT    Elements;               // Number of elements in this type
275                                    // (0 if not an array)
276    UINT    Members;                // Number of members
277                                    // (0 if not a structure)
278    UINT    Rows;                   // Number of rows in this type
279                                    // (0 if not a numeric primitive)
280    UINT    Columns;                // Number of columns in this type
281                                    // (0 if not a numeric primitive)
282   
283    UINT    PackedSize;             // Number of bytes required to represent
284                                    // this data type, when tightly packed
285    UINT    UnpackedSize;           // Number of bytes occupied by this data
286                                    // type, when laid out in a constant buffer
287    UINT    Stride;                 // Number of bytes to seek between elements,
288                                    // when laid out in a constant buffer
289} D3D10_EFFECT_TYPE_DESC;
290
291typedef interface ID3D10EffectType ID3D10EffectType;
292typedef interface ID3D10EffectType *LPD3D10EFFECTTYPE;
293
294// {4E9E1DDC-CD9D-4772-A837-00180B9B88FD}
295DEFINE_GUID(IID_ID3D10EffectType,
2960x4e9e1ddc, 0xcd9d, 0x4772, 0xa8, 0x37, 0x0, 0x18, 0xb, 0x9b, 0x88, 0xfd);
297
298#undef INTERFACE
299#define INTERFACE ID3D10EffectType
300
301DECLARE_INTERFACE(ID3D10EffectType)
302{
303    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
304    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_TYPE_DESC *pDesc) PURE;
305    STDMETHOD_(ID3D10EffectType*, GetMemberTypeByIndex)(THIS_ UINT Index) PURE;
306    STDMETHOD_(ID3D10EffectType*, GetMemberTypeByName)(THIS_ LPCSTR Name) PURE;
307    STDMETHOD_(ID3D10EffectType*, GetMemberTypeBySemantic)(THIS_ LPCSTR Semantic) PURE;
308    STDMETHOD_(LPCSTR, GetMemberName)(THIS_ UINT Index) PURE;
309    STDMETHOD_(LPCSTR, GetMemberSemantic)(THIS_ UINT Index) PURE;
310};
311
312//////////////////////////////////////////////////////////////////////////////
313// ID3D10EffectVariable //////////////////////////////////////////////////////
314//////////////////////////////////////////////////////////////////////////////
315
316//----------------------------------------------------------------------------
317// D3D10_EFFECT_VARIABLE_DESC:
318//
319// Retrieved by ID3D10EffectVariable::GetDesc()
320//----------------------------------------------------------------------------
321
322typedef struct _D3D10_EFFECT_VARIABLE_DESC
323{
324    LPCSTR  Name;                   // Name of this variable, annotation,
325                                    // or structure member
326    LPCSTR  Semantic;               // Semantic string of this variable
327                                    // or structure member (NULL for
328                                    // annotations or if not present)
329   
330    UINT    Flags;                  // D3D10_EFFECT_VARIABLE_* flags
331    UINT    Annotations;            // Number of annotations on this variable
332                                    // (always 0 for annotations)
333
334    UINT    BufferOffset;           // Offset into containing cbuffer or tbuffer
335                                    // (always 0 for annotations or variables
336                                    // not in constant buffers)
337
338    UINT    ExplicitBindPoint;      // Used if the variable has been explicitly bound
339                                    // using the register keyword. Check Flags for
340                                    // D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT;
341} D3D10_EFFECT_VARIABLE_DESC;
342
343typedef interface ID3D10EffectVariable ID3D10EffectVariable;
344typedef interface ID3D10EffectVariable *LPD3D10EFFECTVARIABLE;
345
346// {AE897105-00E6-45bf-BB8E-281DD6DB8E1B}
347DEFINE_GUID(IID_ID3D10EffectVariable,
3480xae897105, 0xe6, 0x45bf, 0xbb, 0x8e, 0x28, 0x1d, 0xd6, 0xdb, 0x8e, 0x1b);
349
350#undef INTERFACE
351#define INTERFACE ID3D10EffectVariable
352
353// Forward defines
354typedef interface ID3D10EffectScalarVariable ID3D10EffectScalarVariable;
355typedef interface ID3D10EffectVectorVariable ID3D10EffectVectorVariable;
356typedef interface ID3D10EffectMatrixVariable ID3D10EffectMatrixVariable;
357typedef interface ID3D10EffectStringVariable ID3D10EffectStringVariable;
358typedef interface ID3D10EffectShaderResourceVariable ID3D10EffectShaderResourceVariable;
359typedef interface ID3D10EffectRenderTargetViewVariable ID3D10EffectRenderTargetViewVariable;
360typedef interface ID3D10EffectDepthStencilViewVariable ID3D10EffectDepthStencilViewVariable;
361typedef interface ID3D10EffectConstantBuffer ID3D10EffectConstantBuffer;
362typedef interface ID3D10EffectShaderVariable ID3D10EffectShaderVariable;
363typedef interface ID3D10EffectBlendVariable ID3D10EffectBlendVariable;
364typedef interface ID3D10EffectDepthStencilVariable ID3D10EffectDepthStencilVariable;
365typedef interface ID3D10EffectRasterizerVariable ID3D10EffectRasterizerVariable;
366typedef interface ID3D10EffectSamplerVariable ID3D10EffectSamplerVariable;
367
368DECLARE_INTERFACE(ID3D10EffectVariable)
369{
370    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
371    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
372    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
373   
374    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
375    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
376   
377    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
378    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
379    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
380   
381    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
382
383    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
384   
385    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
386    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
387    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
388    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
389    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
390    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
391    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
392    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
393    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
394    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
395    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
396    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
397    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
398   
399    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
400    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
401};
402
403//////////////////////////////////////////////////////////////////////////////
404// ID3D10EffectScalarVariable ////////////////////////////////////////////////
405//////////////////////////////////////////////////////////////////////////////
406
407typedef interface ID3D10EffectScalarVariable ID3D10EffectScalarVariable;
408typedef interface ID3D10EffectScalarVariable *LPD3D10EFFECTSCALARVARIABLE;
409
410// {00E48F7B-D2C8-49e8-A86C-022DEE53431F}
411DEFINE_GUID(IID_ID3D10EffectScalarVariable,
4120xe48f7b, 0xd2c8, 0x49e8, 0xa8, 0x6c, 0x2, 0x2d, 0xee, 0x53, 0x43, 0x1f);
413
414#undef INTERFACE
415#define INTERFACE ID3D10EffectScalarVariable
416
417DECLARE_INTERFACE_(ID3D10EffectScalarVariable, ID3D10EffectVariable)
418{
419    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
420    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
421    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
422   
423    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
424    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
425   
426    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
427    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
428    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
429   
430    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
431   
432    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
433   
434    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
435    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
436    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
437    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
438    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
439    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
440    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
441    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
442    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
443    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
444    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
445    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
446    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
447   
448    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
449    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
450   
451    STDMETHOD(SetFloat)(THIS_ float Value) PURE;
452    STDMETHOD(GetFloat)(THIS_ float *pValue) PURE;   
453   
454    STDMETHOD(SetFloatArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
455    STDMETHOD(GetFloatArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
456   
457    STDMETHOD(SetInt)(THIS_ int Value) PURE;
458    STDMETHOD(GetInt)(THIS_ int *pValue) PURE;
459   
460    STDMETHOD(SetIntArray)(THIS_ int *pData, UINT Offset, UINT Count) PURE;
461    STDMETHOD(GetIntArray)(THIS_ int *pData, UINT Offset, UINT Count) PURE;
462   
463    STDMETHOD(SetBool)(THIS_ BOOL Value) PURE;
464    STDMETHOD(GetBool)(THIS_ BOOL *pValue) PURE;
465   
466    STDMETHOD(SetBoolArray)(THIS_ BOOL *pData, UINT Offset, UINT Count) PURE;
467    STDMETHOD(GetBoolArray)(THIS_ BOOL *pData, UINT Offset, UINT Count) PURE;
468};
469
470//////////////////////////////////////////////////////////////////////////////
471// ID3D10EffectVectorVariable ////////////////////////////////////////////////
472//////////////////////////////////////////////////////////////////////////////
473
474typedef interface ID3D10EffectVectorVariable ID3D10EffectVectorVariable;
475typedef interface ID3D10EffectVectorVariable *LPD3D10EFFECTVECTORVARIABLE;
476
477// {62B98C44-1F82-4c67-BCD0-72CF8F217E81}
478DEFINE_GUID(IID_ID3D10EffectVectorVariable,
4790x62b98c44, 0x1f82, 0x4c67, 0xbc, 0xd0, 0x72, 0xcf, 0x8f, 0x21, 0x7e, 0x81);
480
481#undef INTERFACE
482#define INTERFACE ID3D10EffectVectorVariable
483
484DECLARE_INTERFACE_(ID3D10EffectVectorVariable, ID3D10EffectVariable)
485{
486    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
487    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
488    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
489   
490    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
491    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
492   
493    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
494    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
495    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
496   
497    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
498   
499    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
500   
501    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
502    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
503    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
504    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
505    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
506    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
507    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
508    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
509    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
510    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
511    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
512    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
513    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
514   
515    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
516    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
517   
518    STDMETHOD(SetBoolVector) (THIS_ BOOL *pData) PURE;
519    STDMETHOD(SetIntVector)  (THIS_ int *pData) PURE;
520    STDMETHOD(SetFloatVector)(THIS_ float *pData) PURE;
521
522    STDMETHOD(GetBoolVector) (THIS_ BOOL *pData) PURE;
523    STDMETHOD(GetIntVector)  (THIS_ int *pData) PURE;
524    STDMETHOD(GetFloatVector)(THIS_ float *pData) PURE;
525
526    STDMETHOD(SetBoolVectorArray) (THIS_ BOOL *pData, UINT Offset, UINT Count) PURE;
527    STDMETHOD(SetIntVectorArray)  (THIS_ int *pData, UINT Offset, UINT Count) PURE;
528    STDMETHOD(SetFloatVectorArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
529
530    STDMETHOD(GetBoolVectorArray) (THIS_ BOOL *pData, UINT Offset, UINT Count) PURE;
531    STDMETHOD(GetIntVectorArray)  (THIS_ int *pData, UINT Offset, UINT Count) PURE;
532    STDMETHOD(GetFloatVectorArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
533};
534
535//////////////////////////////////////////////////////////////////////////////
536// ID3D10EffectMatrixVariable ////////////////////////////////////////////////
537//////////////////////////////////////////////////////////////////////////////
538
539typedef interface ID3D10EffectMatrixVariable ID3D10EffectMatrixVariable;
540typedef interface ID3D10EffectMatrixVariable *LPD3D10EFFECTMATRIXVARIABLE;
541
542// {50666C24-B82F-4eed-A172-5B6E7E8522E0}
543DEFINE_GUID(IID_ID3D10EffectMatrixVariable,
5440x50666c24, 0xb82f, 0x4eed, 0xa1, 0x72, 0x5b, 0x6e, 0x7e, 0x85, 0x22, 0xe0);
545
546#undef INTERFACE
547#define INTERFACE ID3D10EffectMatrixVariable
548
549DECLARE_INTERFACE_(ID3D10EffectMatrixVariable, ID3D10EffectVariable)
550{
551    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
552    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
553    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
554   
555    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
556    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
557   
558    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
559    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
560    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
561   
562    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
563   
564    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
565   
566    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
567    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
568    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
569    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
570    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
571    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
572    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
573    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
574    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
575    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
576    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
577    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
578    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
579   
580    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
581    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
582   
583    STDMETHOD(SetMatrix)(THIS_ float *pData) PURE;
584    STDMETHOD(GetMatrix)(THIS_ float *pData) PURE;
585   
586    STDMETHOD(SetMatrixArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
587    STDMETHOD(GetMatrixArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
588   
589    STDMETHOD(SetMatrixTranspose)(THIS_ float *pData) PURE;
590    STDMETHOD(GetMatrixTranspose)(THIS_ float *pData) PURE;
591   
592    STDMETHOD(SetMatrixTransposeArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
593    STDMETHOD(GetMatrixTransposeArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
594};
595
596//////////////////////////////////////////////////////////////////////////////
597// ID3D10EffectStringVariable ////////////////////////////////////////////////
598//////////////////////////////////////////////////////////////////////////////
599
600typedef interface ID3D10EffectStringVariable ID3D10EffectStringVariable;
601typedef interface ID3D10EffectStringVariable *LPD3D10EFFECTSTRINGVARIABLE;
602
603// {71417501-8DF9-4e0a-A78A-255F9756BAFF}
604DEFINE_GUID(IID_ID3D10EffectStringVariable,
6050x71417501, 0x8df9, 0x4e0a, 0xa7, 0x8a, 0x25, 0x5f, 0x97, 0x56, 0xba, 0xff);
606
607#undef INTERFACE
608#define INTERFACE ID3D10EffectStringVariable
609
610DECLARE_INTERFACE_(ID3D10EffectStringVariable, ID3D10EffectVariable)
611{
612    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
613    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
614    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
615   
616    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
617    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
618   
619    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
620    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
621    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
622   
623    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
624   
625    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
626   
627    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
628    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
629    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
630    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
631    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
632    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
633    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
634    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
635    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
636    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
637    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
638    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
639    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
640   
641    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
642    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
643   
644    STDMETHOD(GetString)(THIS_ LPCSTR *ppString) PURE;
645    STDMETHOD(GetStringArray)(THIS_ LPCSTR *ppStrings, UINT Offset, UINT Count) PURE;
646};
647
648//////////////////////////////////////////////////////////////////////////////
649// ID3D10EffectShaderResourceVariable ////////////////////////////////////////
650//////////////////////////////////////////////////////////////////////////////
651
652typedef interface ID3D10EffectShaderResourceVariable ID3D10EffectShaderResourceVariable;
653typedef interface ID3D10EffectShaderResourceVariable *LPD3D10EFFECTSHADERRESOURCEVARIABLE;
654
655// {C0A7157B-D872-4b1d-8073-EFC2ACD4B1FC}
656DEFINE_GUID(IID_ID3D10EffectShaderResourceVariable,
6570xc0a7157b, 0xd872, 0x4b1d, 0x80, 0x73, 0xef, 0xc2, 0xac, 0xd4, 0xb1, 0xfc);
658
659
660#undef INTERFACE
661#define INTERFACE ID3D10EffectShaderResourceVariable
662
663DECLARE_INTERFACE_(ID3D10EffectShaderResourceVariable, ID3D10EffectVariable)
664{
665    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
666    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
667    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
668   
669    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
670    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
671   
672    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
673    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
674    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
675   
676    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
677   
678    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
679   
680    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
681    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
682    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
683    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
684    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
685    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
686    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
687    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
688    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
689    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
690    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
691    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
692    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
693   
694    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
695    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
696   
697    STDMETHOD(SetResource)(THIS_ ID3D10ShaderResourceView *pResource) PURE;
698    STDMETHOD(GetResource)(THIS_ ID3D10ShaderResourceView **ppResource) PURE;
699   
700    STDMETHOD(SetResourceArray)(THIS_ ID3D10ShaderResourceView **ppResources, UINT Offset, UINT Count) PURE;
701    STDMETHOD(GetResourceArray)(THIS_ ID3D10ShaderResourceView **ppResources, UINT Offset, UINT Count) PURE;
702};
703
704//////////////////////////////////////////////////////////////////////////////
705// ID3D10EffectRenderTargetViewVariable //////////////////////////////////////
706//////////////////////////////////////////////////////////////////////////////
707
708typedef interface ID3D10EffectRenderTargetViewVariable ID3D10EffectRenderTargetViewVariable;
709typedef interface ID3D10EffectRenderTargetViewVariable *LPD3D10EFFECTRENDERTARGETVIEWVARIABLE;
710
711// {28CA0CC3-C2C9-40bb-B57F-67B737122B17}
712DEFINE_GUID(IID_ID3D10EffectRenderTargetViewVariable,
7130x28ca0cc3, 0xc2c9, 0x40bb, 0xb5, 0x7f, 0x67, 0xb7, 0x37, 0x12, 0x2b, 0x17);
714
715#undef INTERFACE
716#define INTERFACE ID3D10EffectRenderTargetViewVariable
717
718DECLARE_INTERFACE_(ID3D10EffectRenderTargetViewVariable, ID3D10EffectVariable)
719{
720    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
721    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
722    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
723   
724    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
725    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
726   
727    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
728    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
729    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
730   
731    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
732   
733    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
734   
735    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
736    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
737    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
738    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
739    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
740    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
741    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
742    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
743    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
744    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
745    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
746    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
747    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
748   
749    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
750    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
751   
752    STDMETHOD(SetRenderTarget)(THIS_ ID3D10RenderTargetView *pResource) PURE;
753    STDMETHOD(GetRenderTarget)(THIS_ ID3D10RenderTargetView **ppResource) PURE;
754   
755    STDMETHOD(SetRenderTargetArray)(THIS_ ID3D10RenderTargetView **ppResources, UINT Offset, UINT Count) PURE;
756    STDMETHOD(GetRenderTargetArray)(THIS_ ID3D10RenderTargetView **ppResources, UINT Offset, UINT Count) PURE;
757};
758
759//////////////////////////////////////////////////////////////////////////////
760// ID3D10EffectDepthStencilViewVariable //////////////////////////////////////
761//////////////////////////////////////////////////////////////////////////////
762
763typedef interface ID3D10EffectDepthStencilViewVariable ID3D10EffectDepthStencilViewVariable;
764typedef interface ID3D10EffectDepthStencilViewVariable *LPD3D10EFFECTDEPTHSTENCILVIEWVARIABLE;
765
766// {3E02C918-CC79-4985-B622-2D92AD701623}
767DEFINE_GUID(IID_ID3D10EffectDepthStencilViewVariable,
7680x3e02c918, 0xcc79, 0x4985, 0xb6, 0x22, 0x2d, 0x92, 0xad, 0x70, 0x16, 0x23);
769
770#undef INTERFACE
771#define INTERFACE ID3D10EffectDepthStencilViewVariable
772
773DECLARE_INTERFACE_(ID3D10EffectDepthStencilViewVariable, ID3D10EffectVariable)
774{
775    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
776    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
777    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
778   
779    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
780    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
781   
782    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
783    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
784    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
785   
786    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
787   
788    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
789   
790    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
791    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
792    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
793    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
794    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
795    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
796    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
797    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
798    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
799    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
800    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
801    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
802    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
803   
804    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
805    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
806   
807    STDMETHOD(SetDepthStencil)(THIS_ ID3D10DepthStencilView *pResource) PURE;
808    STDMETHOD(GetDepthStencil)(THIS_ ID3D10DepthStencilView **ppResource) PURE;
809   
810    STDMETHOD(SetDepthStencilArray)(THIS_ ID3D10DepthStencilView **ppResources, UINT Offset, UINT Count) PURE;
811    STDMETHOD(GetDepthStencilArray)(THIS_ ID3D10DepthStencilView **ppResources, UINT Offset, UINT Count) PURE;
812};
813
814//////////////////////////////////////////////////////////////////////////////
815// ID3D10EffectConstantBuffer ////////////////////////////////////////////////
816//////////////////////////////////////////////////////////////////////////////
817
818typedef interface ID3D10EffectConstantBuffer ID3D10EffectConstantBuffer;
819typedef interface ID3D10EffectConstantBuffer *LPD3D10EFFECTCONSTANTBUFFER;
820
821// {56648F4D-CC8B-4444-A5AD-B5A3D76E91B3}
822DEFINE_GUID(IID_ID3D10EffectConstantBuffer,
8230x56648f4d, 0xcc8b, 0x4444, 0xa5, 0xad, 0xb5, 0xa3, 0xd7, 0x6e, 0x91, 0xb3);
824
825#undef INTERFACE
826#define INTERFACE ID3D10EffectConstantBuffer
827
828DECLARE_INTERFACE_(ID3D10EffectConstantBuffer, ID3D10EffectVariable)
829{
830    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
831    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
832   
833    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
834    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
835   
836    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
837    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
838    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
839   
840    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
841   
842    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
843   
844    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
845    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
846    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
847    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
848    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
849    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
850    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
851    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
852    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
853    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
854    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
855    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
856    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
857   
858    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
859    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
860   
861    STDMETHOD(SetConstantBuffer)(THIS_ ID3D10Buffer *pConstantBuffer) PURE;
862    STDMETHOD(GetConstantBuffer)(THIS_ ID3D10Buffer **ppConstantBuffer) PURE;
863   
864    STDMETHOD(SetTextureBuffer)(THIS_ ID3D10ShaderResourceView *pTextureBuffer) PURE;
865    STDMETHOD(GetTextureBuffer)(THIS_ ID3D10ShaderResourceView **ppTextureBuffer) PURE;
866};
867
868//////////////////////////////////////////////////////////////////////////////
869// ID3D10EffectShaderVariable ////////////////////////////////////////////////
870//////////////////////////////////////////////////////////////////////////////
871
872//----------------------------------------------------------------------------
873// D3D10_EFFECT_SHADER_DESC:
874//
875// Retrieved by ID3D10EffectShaderVariable::GetShaderDesc()
876//----------------------------------------------------------------------------
877
878typedef struct _D3D10_EFFECT_SHADER_DESC
879{
880    CONST BYTE *pInputSignature;    // Passed into CreateInputLayout,
881                                    // valid on VS and GS only
882   
883    BOOL IsInline;                  // Is this an anonymous shader variable
884                                    // resulting from an inline shader assignment?
885   
886   
887    // -- The following fields are not valid after Optimize() --
888    CONST BYTE *pBytecode;          // Shader bytecode
889    UINT BytecodeLength;
890   
891    LPCSTR SODecl;                  // Stream out declaration string (for GS with SO)
892   
893    UINT NumInputSignatureEntries;  // Number of entries in the input signature
894    UINT NumOutputSignatureEntries; // Number of entries in the output signature
895} D3D10_EFFECT_SHADER_DESC;
896
897
898typedef interface ID3D10EffectShaderVariable ID3D10EffectShaderVariable;
899typedef interface ID3D10EffectShaderVariable *LPD3D10EFFECTSHADERVARIABLE;
900
901// {80849279-C799-4797-8C33-0407A07D9E06}
902DEFINE_GUID(IID_ID3D10EffectShaderVariable,
9030x80849279, 0xc799, 0x4797, 0x8c, 0x33, 0x4, 0x7, 0xa0, 0x7d, 0x9e, 0x6);
904
905#undef INTERFACE
906#define INTERFACE ID3D10EffectShaderVariable
907
908DECLARE_INTERFACE_(ID3D10EffectShaderVariable, ID3D10EffectVariable)
909{
910    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
911    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
912   
913    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
914    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
915   
916    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
917    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
918    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
919   
920    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
921   
922    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
923   
924    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
925    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
926    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
927    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
928    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
929    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
930    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
931    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
932    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
933    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
934    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
935    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
936    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
937       
938    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
939    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
940   
941    STDMETHOD(GetShaderDesc)(THIS_ UINT ShaderIndex, D3D10_EFFECT_SHADER_DESC *pDesc) PURE;
942   
943    STDMETHOD(GetVertexShader)(THIS_ UINT ShaderIndex, ID3D10VertexShader **ppVS) PURE;
944    STDMETHOD(GetGeometryShader)(THIS_ UINT ShaderIndex, ID3D10GeometryShader **ppGS) PURE;
945    STDMETHOD(GetPixelShader)(THIS_ UINT ShaderIndex, ID3D10PixelShader **ppPS) PURE;
946   
947    STDMETHOD(GetInputSignatureElementDesc)(THIS_ UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
948    STDMETHOD(GetOutputSignatureElementDesc)(THIS_ UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
949};
950
951//////////////////////////////////////////////////////////////////////////////
952// ID3D10EffectBlendVariable /////////////////////////////////////////////////
953//////////////////////////////////////////////////////////////////////////////
954
955typedef interface ID3D10EffectBlendVariable ID3D10EffectBlendVariable;
956typedef interface ID3D10EffectBlendVariable *LPD3D10EFFECTBLENDVARIABLE;
957
958// {1FCD2294-DF6D-4eae-86B3-0E9160CFB07B}
959DEFINE_GUID(IID_ID3D10EffectBlendVariable,
9600x1fcd2294, 0xdf6d, 0x4eae, 0x86, 0xb3, 0xe, 0x91, 0x60, 0xcf, 0xb0, 0x7b);
961
962#undef INTERFACE
963#define INTERFACE ID3D10EffectBlendVariable
964
965DECLARE_INTERFACE_(ID3D10EffectBlendVariable, ID3D10EffectVariable)
966{
967    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
968    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
969   
970    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
971    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
972   
973    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
974    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
975    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
976   
977    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
978   
979    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
980   
981    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
982    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
983    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
984    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
985    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
986    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
987    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
988    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
989    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
990    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
991    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
992    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
993    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
994   
995    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
996    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
997   
998    STDMETHOD(GetBlendState)(THIS_ UINT Index, ID3D10BlendState **ppBlendState) PURE;
999    STDMETHOD(GetBackingStore)(THIS_ UINT Index, D3D10_BLEND_DESC *pBlendDesc) PURE;
1000};
1001
1002//////////////////////////////////////////////////////////////////////////////
1003// ID3D10EffectDepthStencilVariable //////////////////////////////////////////
1004//////////////////////////////////////////////////////////////////////////////
1005
1006typedef interface ID3D10EffectDepthStencilVariable ID3D10EffectDepthStencilVariable;
1007typedef interface ID3D10EffectDepthStencilVariable *LPD3D10EFFECTDEPTHSTENCILVARIABLE;
1008
1009// {AF482368-330A-46a5-9A5C-01C71AF24C8D}
1010DEFINE_GUID(IID_ID3D10EffectDepthStencilVariable,
10110xaf482368, 0x330a, 0x46a5, 0x9a, 0x5c, 0x1, 0xc7, 0x1a, 0xf2, 0x4c, 0x8d);
1012
1013#undef INTERFACE
1014#define INTERFACE ID3D10EffectDepthStencilVariable
1015
1016DECLARE_INTERFACE_(ID3D10EffectDepthStencilVariable, ID3D10EffectVariable)
1017{
1018    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
1019    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
1020   
1021    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1022    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1023   
1024    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
1025    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
1026    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
1027   
1028    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
1029   
1030    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
1031   
1032    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
1033    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
1034    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
1035    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
1036    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
1037    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
1038    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
1039    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
1040    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
1041    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
1042    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
1043    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
1044    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
1045   
1046    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1047    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1048   
1049    STDMETHOD(GetDepthStencilState)(THIS_ UINT Index, ID3D10DepthStencilState **ppDepthStencilState) PURE;
1050    STDMETHOD(GetBackingStore)(THIS_ UINT Index, D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc) PURE;
1051};
1052
1053//////////////////////////////////////////////////////////////////////////////
1054// ID3D10EffectRasterizerVariable ////////////////////////////////////////////
1055//////////////////////////////////////////////////////////////////////////////
1056
1057typedef interface ID3D10EffectRasterizerVariable ID3D10EffectRasterizerVariable;
1058typedef interface ID3D10EffectRasterizerVariable *LPD3D10EFFECTRASTERIZERVARIABLE;
1059
1060// {21AF9F0E-4D94-4ea9-9785-2CB76B8C0B34}
1061DEFINE_GUID(IID_ID3D10EffectRasterizerVariable,
10620x21af9f0e, 0x4d94, 0x4ea9, 0x97, 0x85, 0x2c, 0xb7, 0x6b, 0x8c, 0xb, 0x34);
1063
1064#undef INTERFACE
1065#define INTERFACE ID3D10EffectRasterizerVariable
1066
1067DECLARE_INTERFACE_(ID3D10EffectRasterizerVariable, ID3D10EffectVariable)
1068{
1069    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
1070    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
1071   
1072    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1073    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1074   
1075    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
1076    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
1077    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
1078   
1079    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
1080   
1081    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
1082   
1083    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
1084    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
1085    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
1086    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
1087    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
1088    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
1089    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
1090    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
1091    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
1092    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
1093    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
1094    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
1095    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
1096   
1097    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1098    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1099   
1100    STDMETHOD(GetRasterizerState)(THIS_ UINT Index, ID3D10RasterizerState **ppRasterizerState) PURE;
1101    STDMETHOD(GetBackingStore)(THIS_ UINT Index, D3D10_RASTERIZER_DESC *pRasterizerDesc) PURE;
1102};
1103
1104//////////////////////////////////////////////////////////////////////////////
1105// ID3D10EffectSamplerVariable ///////////////////////////////////////////////
1106//////////////////////////////////////////////////////////////////////////////
1107
1108typedef interface ID3D10EffectSamplerVariable ID3D10EffectSamplerVariable;
1109typedef interface ID3D10EffectSamplerVariable *LPD3D10EFFECTSAMPLERVARIABLE;
1110
1111// {6530D5C7-07E9-4271-A418-E7CE4BD1E480}
1112DEFINE_GUID(IID_ID3D10EffectSamplerVariable,
11130x6530d5c7, 0x7e9, 0x4271, 0xa4, 0x18, 0xe7, 0xce, 0x4b, 0xd1, 0xe4, 0x80);
1114
1115#undef INTERFACE
1116#define INTERFACE ID3D10EffectSamplerVariable
1117
1118DECLARE_INTERFACE_(ID3D10EffectSamplerVariable, ID3D10EffectVariable)
1119{
1120    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
1121    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
1122   
1123    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1124    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1125   
1126    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
1127    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
1128    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
1129   
1130    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
1131   
1132    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
1133   
1134    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
1135    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
1136    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
1137    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
1138    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
1139    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
1140    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
1141    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
1142    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
1143    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
1144    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
1145    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
1146    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
1147   
1148    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1149    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1150   
1151    STDMETHOD(GetSampler)(THIS_ UINT Index, ID3D10SamplerState **ppSampler) PURE;
1152    STDMETHOD(GetBackingStore)(THIS_ UINT Index, D3D10_SAMPLER_DESC *pSamplerDesc) PURE;
1153};
1154
1155//////////////////////////////////////////////////////////////////////////////
1156// ID3D10EffectPass //////////////////////////////////////////////////////////
1157//////////////////////////////////////////////////////////////////////////////
1158
1159//----------------------------------------------------------------------------
1160// D3D10_PASS_DESC:
1161//
1162// Retrieved by ID3D10EffectPass::GetDesc()
1163//----------------------------------------------------------------------------
1164
1165typedef struct _D3D10_PASS_DESC
1166{
1167    LPCSTR Name;                    // Name of this pass (NULL if not anonymous)   
1168    UINT Annotations;               // Number of annotations on this pass
1169   
1170    BYTE *pIAInputSignature;        // Signature from VS or GS (if there is no VS)
1171                                    // or NULL if neither exists
1172    SIZE_T IAInputSignatureSize;    // Singature size in bytes                               
1173                                   
1174    UINT StencilRef;                // Specified in SetDepthStencilState()
1175    UINT SampleMask;                // Specified in SetBlendState()
1176    FLOAT BlendFactor[4];           // Specified in SetBlendState()
1177} D3D10_PASS_DESC;
1178
1179//----------------------------------------------------------------------------
1180// D3D10_PASS_SHADER_DESC:
1181//
1182// Retrieved by ID3D10EffectPass::Get**ShaderDesc()
1183//----------------------------------------------------------------------------
1184
1185typedef struct _D3D10_PASS_SHADER_DESC
1186{
1187    ID3D10EffectShaderVariable *pShaderVariable;    // The variable that this shader came from.
1188                                                    // If this is an inline shader assignment,
1189                                                    //   the returned interface will be an
1190                                                    //   anonymous shader variable, which is
1191                                                    //   not retrievable any other way.  It's
1192                                                    //   name in the variable description will
1193                                                    //   be "$Anonymous".
1194                                                    // If there is no assignment of this type in
1195                                                    //   the pass block, pShaderVariable != NULL,
1196                                                    //   but pShaderVariable->IsValid() == FALSE.
1197   
1198    UINT                        ShaderIndex;        // The element of pShaderVariable (if an array)
1199                                                    // or 0 if not applicable
1200} D3D10_PASS_SHADER_DESC;
1201
1202typedef interface ID3D10EffectPass ID3D10EffectPass;
1203typedef interface ID3D10EffectPass *LPD3D10EFFECTPASS;
1204
1205// {5CFBEB89-1A06-46e0-B282-E3F9BFA36A54}
1206DEFINE_GUID(IID_ID3D10EffectPass,
12070x5cfbeb89, 0x1a06, 0x46e0, 0xb2, 0x82, 0xe3, 0xf9, 0xbf, 0xa3, 0x6a, 0x54);
1208
1209#undef INTERFACE
1210#define INTERFACE ID3D10EffectPass
1211
1212DECLARE_INTERFACE(ID3D10EffectPass)
1213{
1214    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
1215    STDMETHOD(GetDesc)(THIS_ D3D10_PASS_DESC *pDesc) PURE;
1216   
1217    STDMETHOD(GetVertexShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *pDesc) PURE;
1218    STDMETHOD(GetGeometryShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *pDesc) PURE;
1219    STDMETHOD(GetPixelShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *pDesc) PURE;
1220   
1221    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1222    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1223   
1224    STDMETHOD(Apply)(THIS_ UINT Flags) PURE;
1225   
1226    STDMETHOD(ComputeStateBlockMask)(THIS_ D3D10_STATE_BLOCK_MASK *pStateBlockMask) PURE;
1227};
1228
1229//////////////////////////////////////////////////////////////////////////////
1230// ID3D10EffectTechnique /////////////////////////////////////////////////////
1231//////////////////////////////////////////////////////////////////////////////
1232
1233//----------------------------------------------------------------------------
1234// D3D10_TECHNIQUE_DESC:
1235//
1236// Retrieved by ID3D10EffectTechnique::GetDesc()
1237//----------------------------------------------------------------------------
1238
1239typedef struct _D3D10_TECHNIQUE_DESC
1240{
1241    LPCSTR  Name;                   // Name of this technique (NULL if not anonymous)
1242    UINT    Passes;                 // Number of passes contained within
1243    UINT    Annotations;            // Number of annotations on this technique
1244} D3D10_TECHNIQUE_DESC;
1245
1246typedef interface ID3D10EffectTechnique ID3D10EffectTechnique;
1247typedef interface ID3D10EffectTechnique *LPD3D10EFFECTTECHNIQUE;
1248
1249// {DB122CE8-D1C9-4292-B237-24ED3DE8B175}
1250DEFINE_GUID(IID_ID3D10EffectTechnique,
12510xdb122ce8, 0xd1c9, 0x4292, 0xb2, 0x37, 0x24, 0xed, 0x3d, 0xe8, 0xb1, 0x75);
1252
1253#undef INTERFACE
1254#define INTERFACE ID3D10EffectTechnique
1255
1256DECLARE_INTERFACE(ID3D10EffectTechnique)
1257{
1258    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
1259    STDMETHOD(GetDesc)(THIS_ D3D10_TECHNIQUE_DESC *pDesc) PURE;
1260   
1261    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1262    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1263   
1264    STDMETHOD_(ID3D10EffectPass*, GetPassByIndex)(THIS_ UINT Index) PURE;
1265    STDMETHOD_(ID3D10EffectPass*, GetPassByName)(THIS_ LPCSTR Name) PURE;
1266   
1267    STDMETHOD(ComputeStateBlockMask)(THIS_ D3D10_STATE_BLOCK_MASK *pStateBlockMask) PURE;
1268};
1269
1270//////////////////////////////////////////////////////////////////////////////
1271// ID3D10Effect //////////////////////////////////////////////////////////////
1272//////////////////////////////////////////////////////////////////////////////
1273
1274//----------------------------------------------------------------------------
1275// D3D10_EFFECT_DESC:
1276//
1277// Retrieved by ID3D10Effect::GetDesc()
1278//----------------------------------------------------------------------------
1279
1280typedef struct _D3D10_EFFECT_DESC
1281{
1282   
1283    BOOL    IsChildEffect;          // TRUE if this is a child effect,
1284                                    // FALSE if this is standalone or an effect pool.
1285                                   
1286    UINT    ConstantBuffers;        // Number of constant buffers in this effect,
1287                                    // excluding the effect pool.
1288    UINT    SharedConstantBuffers;  // Number of constant buffers shared in this
1289                                    // effect's pool.
1290                                   
1291    UINT    GlobalVariables;        // Number of global variables in this effect,
1292                                    // excluding the effect pool.
1293    UINT    SharedGlobalVariables;  // Number of global variables shared in this
1294                                    // effect's pool.
1295                                   
1296    UINT    Techniques;             // Number of techniques in this effect,
1297                                    // excluding the effect pool.
1298} D3D10_EFFECT_DESC;
1299
1300typedef interface ID3D10Effect ID3D10Effect;
1301typedef interface ID3D10Effect *LPD3D10EFFECT;
1302
1303// {51B0CA8B-EC0B-4519-870D-8EE1CB5017C7}
1304DEFINE_GUID(IID_ID3D10Effect,
13050x51b0ca8b, 0xec0b, 0x4519, 0x87, 0xd, 0x8e, 0xe1, 0xcb, 0x50, 0x17, 0xc7);
1306
1307#undef INTERFACE
1308#define INTERFACE ID3D10Effect
1309
1310DECLARE_INTERFACE_(ID3D10Effect, IUnknown)
1311{
1312    // IUnknown
1313    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
1314    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1315    STDMETHOD_(ULONG, Release)(THIS) PURE;
1316   
1317    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
1318    STDMETHOD_(BOOL, IsPool)(THIS) PURE;
1319
1320    // Managing D3D Device
1321    STDMETHOD(GetDevice)(THIS_ ID3D10Device** ppDevice) PURE;
1322   
1323    // New Reflection APIs
1324    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_DESC *pDesc) PURE;
1325   
1326    STDMETHOD_(ID3D10EffectConstantBuffer*, GetConstantBufferByIndex)(THIS_ UINT Index) PURE;
1327    STDMETHOD_(ID3D10EffectConstantBuffer*, GetConstantBufferByName)(THIS_ LPCSTR Name) PURE;
1328   
1329    STDMETHOD_(ID3D10EffectVariable*, GetVariableByIndex)(THIS_ UINT Index) PURE;
1330    STDMETHOD_(ID3D10EffectVariable*, GetVariableByName)(THIS_ LPCSTR Name) PURE;
1331    STDMETHOD_(ID3D10EffectVariable*, GetVariableBySemantic)(THIS_ LPCSTR Semantic) PURE;
1332   
1333    STDMETHOD_(ID3D10EffectTechnique*, GetTechniqueByIndex)(THIS_ UINT Index) PURE;
1334    STDMETHOD_(ID3D10EffectTechnique*, GetTechniqueByName)(THIS_ LPCSTR Name) PURE;
1335   
1336    STDMETHOD(Optimize)(THIS) PURE;
1337    STDMETHOD_(BOOL, IsOptimized)(THIS) PURE;
1338
1339};
1340
1341//////////////////////////////////////////////////////////////////////////////
1342// ID3D10EffectPool //////////////////////////////////////////////////////////
1343//////////////////////////////////////////////////////////////////////////////
1344
1345typedef interface ID3D10EffectPool ID3D10EffectPool;
1346typedef interface ID3D10EffectPool *LPD3D10EFFECTPOOL;
1347
1348// {9537AB04-3250-412e-8213-FCD2F8677933}
1349DEFINE_GUID(IID_ID3D10EffectPool,
13500x9537ab04, 0x3250, 0x412e, 0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33);
1351
1352#undef INTERFACE
1353#define INTERFACE ID3D10EffectPool
1354
1355DECLARE_INTERFACE_(ID3D10EffectPool, IUnknown)
1356{
1357    // IUnknown
1358    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
1359    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1360    STDMETHOD_(ULONG, Release)(THIS) PURE;
1361   
1362    STDMETHOD_(ID3D10Effect*, AsEffect)(THIS) PURE;
1363   
1364    // No public methods
1365};
1366
1367//////////////////////////////////////////////////////////////////////////////
1368// APIs //////////////////////////////////////////////////////////////////////
1369//////////////////////////////////////////////////////////////////////////////
1370
1371#ifdef __cplusplus
1372extern "C" {
1373#endif //__cplusplus
1374
1375//----------------------------------------------------------------------------
1376// D3D10CreateEffectFromXXXX:
1377// --------------------------
1378// Creates an effect from a binary effect or file
1379//
1380// Parameters:
1381//
1382// [in]
1383//
1384//
1385//  pData
1386//      Blob of effect data, either ASCII (uncompiled, for D3D10CompileEffectFromMemory) or binary (compiled, for D3D10CreateEffect*)
1387//  DataLength
1388//      Length of the data blob
1389//
1390//  pSrcFileName
1391//      Name of the ASCII Effect file pData was obtained from
1392//
1393//  pDefines
1394//      Optional NULL-terminated array of preprocessor macro definitions.
1395//  pInclude
1396//      Optional interface pointer to use for handling #include directives.
1397//      If this parameter is NULL, #includes will be honored when compiling
1398//      from file, and will error when compiling from resource or memory.
1399//  HLSLFlags
1400//      Compilation flags pertaining to shaders and data types, honored by
1401//      the HLSL compiler
1402//  FXFlags
1403//      Compilation flags pertaining to Effect compilation, honored
1404//      by the Effect compiler
1405//  pDevice
1406//      Pointer to the D3D10 device on which to create Effect resources
1407//  pEffectPool
1408//      Pointer to an Effect pool to share variables with or NULL
1409//
1410// [out]
1411//
1412//  ppEffect
1413//      Address of the newly created Effect interface
1414//  ppEffectPool
1415//      Address of the newly created Effect pool interface
1416//  ppErrors
1417//      If non-NULL, address of a buffer with error messages that occurred
1418//      during parsing or compilation
1419//
1420//----------------------------------------------------------------------------
1421
1422HRESULT WINAPI D3D10CompileEffectFromMemory(void *pData, SIZE_T DataLength, LPCSTR pSrcFileName, CONST D3D10_SHADER_MACRO *pDefines,
1423    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags,
1424    ID3D10Blob **ppCompiledEffect, ID3D10Blob **ppErrors);
1425
1426HRESULT WINAPI D3D10CreateEffectFromMemory(void *pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device *pDevice,
1427    ID3D10EffectPool *pEffectPool, ID3D10Effect **ppEffect);
1428
1429HRESULT WINAPI D3D10CreateEffectPoolFromMemory(void *pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device *pDevice,
1430    ID3D10EffectPool **ppEffectPool);
1431
1432
1433//----------------------------------------------------------------------------
1434// D3D10DisassembleEffect:
1435// -----------------------
1436// Takes an effect interface, and returns a buffer containing text assembly.
1437//
1438// Parameters:
1439//  pEffect
1440//      Pointer to the runtime effect interface.
1441//  EnableColorCode
1442//      Emit HTML tags for color coding the output?
1443//  ppDisassembly
1444//      Returns a buffer containing the disassembled effect.
1445//----------------------------------------------------------------------------
1446
1447HRESULT WINAPI D3D10DisassembleEffect(ID3D10Effect *pEffect, BOOL EnableColorCode, ID3D10Blob **ppDisassembly);
1448
1449#ifdef __cplusplus
1450}
1451#endif //__cplusplus
1452
1453#endif //__D3D10EFFECT_H__
1454
1455
trunk/3rdparty/dxsdk/Include/D3D10shader.h
r243310r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (c) Microsoft Corporation.  All rights reserved.
4//
5//  File:       D3D10Shader.h
6//  Content:    D3D10 Shader Types and APIs
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#ifndef __D3D10SHADER_H__
11#define __D3D10SHADER_H__
12
13#include "d3d10.h"
14
15
16//---------------------------------------------------------------------------
17// D3D10_TX_VERSION:
18// --------------
19// Version token used to create a procedural texture filler in effects
20// Used by D3D10Fill[]TX functions
21//---------------------------------------------------------------------------
22#define D3D10_TX_VERSION(_Major,_Minor) (('T' << 24) | ('X' << 16) | ((_Major) << 8) | (_Minor))
23
24
25//----------------------------------------------------------------------------
26// D3D10SHADER flags:
27// -----------------
28// D3D10_SHADER_DEBUG
29//   Insert debug file/line/type/symbol information.
30//
31// D3D10_SHADER_SKIP_VALIDATION
32//   Do not validate the generated code against known capabilities and
33//   constraints.  This option is only recommended when compiling shaders
34//   you KNOW will work.  (ie. have compiled before without this option.)
35//   Shaders are always validated by D3D before they are set to the device.
36//
37// D3D10_SHADER_SKIP_OPTIMIZATION
38//   Instructs the compiler to skip optimization steps during code generation.
39//   Unless you are trying to isolate a problem in your code using this option
40//   is not recommended.
41//
42// D3D10_SHADER_PACK_MATRIX_ROW_MAJOR
43//   Unless explicitly specified, matrices will be packed in row-major order
44//   on input and output from the shader.
45//
46// D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR
47//   Unless explicitly specified, matrices will be packed in column-major
48//   order on input and output from the shader.  This is generally more
49//   efficient, since it allows vector-matrix multiplication to be performed
50//   using a series of dot-products.
51//
52// D3D10_SHADER_PARTIAL_PRECISION
53//   Force all computations in resulting shader to occur at partial precision.
54//   This may result in faster evaluation of shaders on some hardware.
55//
56// D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT
57//   Force compiler to compile against the next highest available software
58//   target for vertex shaders.  This flag also turns optimizations off,
59//   and debugging on. 
60//
61// D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT
62//   Force compiler to compile against the next highest available software
63//   target for pixel shaders.  This flag also turns optimizations off,
64//   and debugging on.
65//
66// D3D10_SHADER_NO_PRESHADER
67//   Disables Preshaders. Using this flag will cause the compiler to not
68//   pull out static expression for evaluation on the host cpu
69//
70// D3D10_SHADER_AVOID_FLOW_CONTROL
71//   Hint compiler to avoid flow-control constructs where possible.
72//
73// D3D10_SHADER_PREFER_FLOW_CONTROL
74//   Hint compiler to prefer flow-control constructs where possible.
75//
76// D3D10_SHADER_ENABLE_STRICTNESS
77//   By default, the HLSL/Effect compilers are not strict on deprecated syntax.
78//   Specifying this flag enables the strict mode. Deprecated syntax may be
79//   removed in a future release, and enabling syntax is a good way to make sure
80//   your shaders comply to the latest spec.
81//
82// D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY
83//   This enables older shaders to compile to 4_0 targets.
84//
85//----------------------------------------------------------------------------
86
87#define D3D10_SHADER_DEBUG                          (1 << 0)
88#define D3D10_SHADER_SKIP_VALIDATION                (1 << 1)
89#define D3D10_SHADER_SKIP_OPTIMIZATION              (1 << 2)
90#define D3D10_SHADER_PACK_MATRIX_ROW_MAJOR          (1 << 3)
91#define D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR       (1 << 4)
92#define D3D10_SHADER_PARTIAL_PRECISION              (1 << 5)
93#define D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT       (1 << 6)
94#define D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT       (1 << 7)
95#define D3D10_SHADER_NO_PRESHADER                   (1 << 8)
96#define D3D10_SHADER_AVOID_FLOW_CONTROL             (1 << 9)
97#define D3D10_SHADER_PREFER_FLOW_CONTROL            (1 << 10)
98#define D3D10_SHADER_ENABLE_STRICTNESS              (1 << 11)
99#define D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY (1 << 12)
100#define D3D10_SHADER_IEEE_STRICTNESS                (1 << 13)
101#define D3D10_SHADER_WARNINGS_ARE_ERRORS            (1 << 18)
102
103
104// optimization level flags
105#define D3D10_SHADER_OPTIMIZATION_LEVEL0            (1 << 14)
106#define D3D10_SHADER_OPTIMIZATION_LEVEL1            0
107#define D3D10_SHADER_OPTIMIZATION_LEVEL2            ((1 << 14) | (1 << 15))
108#define D3D10_SHADER_OPTIMIZATION_LEVEL3            (1 << 15)
109
110
111
112
113typedef D3D_SHADER_MACRO D3D10_SHADER_MACRO;
114typedef D3D10_SHADER_MACRO* LPD3D10_SHADER_MACRO;
115
116
117typedef D3D_SHADER_VARIABLE_CLASS D3D10_SHADER_VARIABLE_CLASS;
118typedef D3D10_SHADER_VARIABLE_CLASS* LPD3D10_SHADER_VARIABLE_CLASS;
119
120typedef D3D_SHADER_VARIABLE_FLAGS D3D10_SHADER_VARIABLE_FLAGS;
121typedef D3D10_SHADER_VARIABLE_FLAGS* LPD3D10_SHADER_VARIABLE_FLAGS;
122
123typedef D3D_SHADER_VARIABLE_TYPE D3D10_SHADER_VARIABLE_TYPE;
124typedef D3D10_SHADER_VARIABLE_TYPE* LPD3D10_SHADER_VARIABLE_TYPE;
125
126typedef D3D_SHADER_INPUT_FLAGS D3D10_SHADER_INPUT_FLAGS;
127typedef D3D10_SHADER_INPUT_FLAGS* LPD3D10_SHADER_INPUT_FLAGS;
128
129typedef D3D_SHADER_INPUT_TYPE D3D10_SHADER_INPUT_TYPE;
130typedef D3D10_SHADER_INPUT_TYPE* LPD3D10_SHADER_INPUT_TYPE;
131
132typedef D3D_SHADER_CBUFFER_FLAGS D3D10_SHADER_CBUFFER_FLAGS;
133typedef D3D10_SHADER_CBUFFER_FLAGS* LPD3D10_SHADER_CBUFFER_FLAGS;
134
135typedef D3D_CBUFFER_TYPE D3D10_CBUFFER_TYPE;
136typedef D3D10_CBUFFER_TYPE* LPD3D10_CBUFFER_TYPE;
137
138typedef D3D_NAME D3D10_NAME;
139
140typedef D3D_RESOURCE_RETURN_TYPE D3D10_RESOURCE_RETURN_TYPE;
141
142typedef D3D_REGISTER_COMPONENT_TYPE D3D10_REGISTER_COMPONENT_TYPE;
143
144typedef D3D_INCLUDE_TYPE D3D10_INCLUDE_TYPE;
145
146// ID3D10Include has been made version-neutral and moved to d3dcommon.h.
147typedef interface ID3DInclude ID3D10Include;
148typedef interface ID3DInclude* LPD3D10INCLUDE;
149#define IID_ID3D10Include IID_ID3DInclude
150
151
152//----------------------------------------------------------------------------
153// ID3D10ShaderReflection:
154//----------------------------------------------------------------------------
155
156//
157// Structure definitions
158//
159
160typedef struct _D3D10_SHADER_DESC
161{
162    UINT                    Version;                     // Shader version
163    LPCSTR                  Creator;                     // Creator string
164    UINT                    Flags;                       // Shader compilation/parse flags
165   
166    UINT                    ConstantBuffers;             // Number of constant buffers
167    UINT                    BoundResources;              // Number of bound resources
168    UINT                    InputParameters;             // Number of parameters in the input signature
169    UINT                    OutputParameters;            // Number of parameters in the output signature
170
171    UINT                    InstructionCount;            // Number of emitted instructions
172    UINT                    TempRegisterCount;           // Number of temporary registers used
173    UINT                    TempArrayCount;              // Number of temporary arrays used
174    UINT                    DefCount;                    // Number of constant defines
175    UINT                    DclCount;                    // Number of declarations (input + output)
176    UINT                    TextureNormalInstructions;   // Number of non-categorized texture instructions
177    UINT                    TextureLoadInstructions;     // Number of texture load instructions
178    UINT                    TextureCompInstructions;     // Number of texture comparison instructions
179    UINT                    TextureBiasInstructions;     // Number of texture bias instructions
180    UINT                    TextureGradientInstructions; // Number of texture gradient instructions
181    UINT                    FloatInstructionCount;       // Number of floating point arithmetic instructions used
182    UINT                    IntInstructionCount;         // Number of signed integer arithmetic instructions used
183    UINT                    UintInstructionCount;        // Number of unsigned integer arithmetic instructions used
184    UINT                    StaticFlowControlCount;      // Number of static flow control instructions used
185    UINT                    DynamicFlowControlCount;     // Number of dynamic flow control instructions used
186    UINT                    MacroInstructionCount;       // Number of macro instructions used
187    UINT                    ArrayInstructionCount;       // Number of array instructions used
188    UINT                    CutInstructionCount;         // Number of cut instructions used
189    UINT                    EmitInstructionCount;        // Number of emit instructions used
190    D3D10_PRIMITIVE_TOPOLOGY GSOutputTopology;           // Geometry shader output topology
191    UINT                    GSMaxOutputVertexCount;      // Geometry shader maximum output vertex count
192} D3D10_SHADER_DESC;
193
194typedef struct _D3D10_SHADER_BUFFER_DESC
195{
196    LPCSTR                  Name;           // Name of the constant buffer
197    D3D10_CBUFFER_TYPE      Type;           // Indicates that this is a CBuffer or TBuffer
198    UINT                    Variables;      // Number of member variables
199    UINT                    Size;           // Size of CB (in bytes)
200    UINT                    uFlags;         // Buffer description flags
201} D3D10_SHADER_BUFFER_DESC;
202
203typedef struct _D3D10_SHADER_VARIABLE_DESC
204{
205    LPCSTR                  Name;           // Name of the variable
206    UINT                    StartOffset;    // Offset in constant buffer's backing store
207    UINT                    Size;           // Size of variable (in bytes)
208    UINT                    uFlags;         // Variable flags
209    LPVOID                  DefaultValue;   // Raw pointer to default value
210} D3D10_SHADER_VARIABLE_DESC;
211
212typedef struct _D3D10_SHADER_TYPE_DESC
213{
214    D3D10_SHADER_VARIABLE_CLASS Class;          // Variable class (e.g. object, matrix, etc.)
215    D3D10_SHADER_VARIABLE_TYPE  Type;           // Variable type (e.g. float, sampler, etc.)
216    UINT                        Rows;           // Number of rows (for matrices, 1 for other numeric, 0 if not applicable)
217    UINT                        Columns;        // Number of columns (for vectors & matrices, 1 for other numeric, 0 if not applicable)
218    UINT                        Elements;       // Number of elements (0 if not an array)
219    UINT                        Members;        // Number of members (0 if not a structure)
220    UINT                        Offset;         // Offset from the start of structure (0 if not a structure member)
221} D3D10_SHADER_TYPE_DESC;
222
223typedef struct _D3D10_SHADER_INPUT_BIND_DESC
224{
225    LPCSTR                      Name;           // Name of the resource
226    D3D10_SHADER_INPUT_TYPE     Type;           // Type of resource (e.g. texture, cbuffer, etc.)
227    UINT                        BindPoint;      // Starting bind point
228    UINT                        BindCount;      // Number of contiguous bind points (for arrays)
229   
230    UINT                        uFlags;         // Input binding flags
231    D3D10_RESOURCE_RETURN_TYPE  ReturnType;     // Return type (if texture)
232    D3D10_SRV_DIMENSION         Dimension;      // Dimension (if texture)
233    UINT                        NumSamples;     // Number of samples (0 if not MS texture)
234} D3D10_SHADER_INPUT_BIND_DESC;
235
236typedef struct _D3D10_SIGNATURE_PARAMETER_DESC
237{
238    LPCSTR                      SemanticName;   // Name of the semantic
239    UINT                        SemanticIndex;  // Index of the semantic
240    UINT                        Register;       // Number of member variables
241    D3D10_NAME                  SystemValueType;// A predefined system value, or D3D10_NAME_UNDEFINED if not applicable
242    D3D10_REGISTER_COMPONENT_TYPE ComponentType;// Scalar type (e.g. uint, float, etc.)
243    BYTE                        Mask;           // Mask to indicate which components of the register
244                                                // are used (combination of D3D10_COMPONENT_MASK values)
245    BYTE                        ReadWriteMask;  // Mask to indicate whether a given component is
246                                                // never written (if this is an output signature) or
247                                                // always read (if this is an input signature).
248                                                // (combination of D3D10_COMPONENT_MASK values)
249   
250} D3D10_SIGNATURE_PARAMETER_DESC;
251
252
253//
254// Interface definitions
255//
256
257typedef interface ID3D10ShaderReflectionType ID3D10ShaderReflectionType;
258typedef interface ID3D10ShaderReflectionType *LPD3D10SHADERREFLECTIONTYPE;
259
260// {C530AD7D-9B16-4395-A979-BA2ECFF83ADD}
261DEFINE_GUID(IID_ID3D10ShaderReflectionType,
2620xc530ad7d, 0x9b16, 0x4395, 0xa9, 0x79, 0xba, 0x2e, 0xcf, 0xf8, 0x3a, 0xdd);
263
264#undef INTERFACE
265#define INTERFACE ID3D10ShaderReflectionType
266
267DECLARE_INTERFACE(ID3D10ShaderReflectionType)
268{
269    STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_TYPE_DESC *pDesc) PURE;
270   
271    STDMETHOD_(ID3D10ShaderReflectionType*, GetMemberTypeByIndex)(THIS_ UINT Index) PURE;
272    STDMETHOD_(ID3D10ShaderReflectionType*, GetMemberTypeByName)(THIS_ LPCSTR Name) PURE;
273    STDMETHOD_(LPCSTR, GetMemberTypeName)(THIS_ UINT Index) PURE;
274};
275
276typedef interface ID3D10ShaderReflectionVariable ID3D10ShaderReflectionVariable;
277typedef interface ID3D10ShaderReflectionVariable *LPD3D10SHADERREFLECTIONVARIABLE;
278
279// {1BF63C95-2650-405d-99C1-3636BD1DA0A1}
280DEFINE_GUID(IID_ID3D10ShaderReflectionVariable,
2810x1bf63c95, 0x2650, 0x405d, 0x99, 0xc1, 0x36, 0x36, 0xbd, 0x1d, 0xa0, 0xa1);
282
283#undef INTERFACE
284#define INTERFACE ID3D10ShaderReflectionVariable
285
286DECLARE_INTERFACE(ID3D10ShaderReflectionVariable)
287{
288    STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_VARIABLE_DESC *pDesc) PURE;
289   
290    STDMETHOD_(ID3D10ShaderReflectionType*, GetType)(THIS) PURE;
291};
292
293typedef interface ID3D10ShaderReflectionConstantBuffer ID3D10ShaderReflectionConstantBuffer;
294typedef interface ID3D10ShaderReflectionConstantBuffer *LPD3D10SHADERREFLECTIONCONSTANTBUFFER;
295
296// {66C66A94-DDDD-4b62-A66A-F0DA33C2B4D0}
297DEFINE_GUID(IID_ID3D10ShaderReflectionConstantBuffer,
2980x66c66a94, 0xdddd, 0x4b62, 0xa6, 0x6a, 0xf0, 0xda, 0x33, 0xc2, 0xb4, 0xd0);
299
300#undef INTERFACE
301#define INTERFACE ID3D10ShaderReflectionConstantBuffer
302
303DECLARE_INTERFACE(ID3D10ShaderReflectionConstantBuffer)
304{
305    STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_BUFFER_DESC *pDesc) PURE;
306   
307    STDMETHOD_(ID3D10ShaderReflectionVariable*, GetVariableByIndex)(THIS_ UINT Index) PURE;
308    STDMETHOD_(ID3D10ShaderReflectionVariable*, GetVariableByName)(THIS_ LPCSTR Name) PURE;
309};
310
311typedef interface ID3D10ShaderReflection ID3D10ShaderReflection;
312typedef interface ID3D10ShaderReflection *LPD3D10SHADERREFLECTION;
313
314// {D40E20B6-F8F7-42ad-AB20-4BAF8F15DFAA}
315DEFINE_GUID(IID_ID3D10ShaderReflection,
3160xd40e20b6, 0xf8f7, 0x42ad, 0xab, 0x20, 0x4b, 0xaf, 0x8f, 0x15, 0xdf, 0xaa);
317
318#undef INTERFACE
319#define INTERFACE ID3D10ShaderReflection
320
321DECLARE_INTERFACE_(ID3D10ShaderReflection, IUnknown)
322{
323    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
324    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
325    STDMETHOD_(ULONG, Release)(THIS) PURE;
326
327    STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_DESC *pDesc) PURE;
328   
329    STDMETHOD_(ID3D10ShaderReflectionConstantBuffer*, GetConstantBufferByIndex)(THIS_ UINT Index) PURE;
330    STDMETHOD_(ID3D10ShaderReflectionConstantBuffer*, GetConstantBufferByName)(THIS_ LPCSTR Name) PURE;
331   
332    STDMETHOD(GetResourceBindingDesc)(THIS_ UINT ResourceIndex, D3D10_SHADER_INPUT_BIND_DESC *pDesc) PURE;
333   
334    STDMETHOD(GetInputParameterDesc)(THIS_ UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
335    STDMETHOD(GetOutputParameterDesc)(THIS_ UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
336   
337};
338
339//////////////////////////////////////////////////////////////////////////////
340// APIs //////////////////////////////////////////////////////////////////////
341//////////////////////////////////////////////////////////////////////////////
342
343#ifdef __cplusplus
344extern "C" {
345#endif //__cplusplus
346
347
348//----------------------------------------------------------------------------
349// D3D10CompileShader:
350// ------------------
351// Compiles a shader.
352//
353// Parameters:
354//  pSrcFile
355//      Source file name.
356//  hSrcModule
357//      Module handle. if NULL, current module will be used.
358//  pSrcResource
359//      Resource name in module.
360//  pSrcData
361//      Pointer to source code.
362//  SrcDataLen
363//      Size of source code, in bytes.
364//  pDefines
365//      Optional NULL-terminated array of preprocessor macro definitions.
366//  pInclude
367//      Optional interface pointer to use for handling #include directives.
368//      If this parameter is NULL, #includes will be honored when compiling
369//      from file, and will error when compiling from resource or memory.
370//  pFunctionName
371//      Name of the entrypoint function where execution should begin.
372//  pProfile
373//      Instruction set to be used when generating code.  The D3D10 entry
374//      point currently supports only "vs_4_0", "ps_4_0", and "gs_4_0".
375//  Flags
376//      See D3D10_SHADER_xxx flags.
377//  ppShader
378//      Returns a buffer containing the created shader.  This buffer contains
379//      the compiled shader code, as well as any embedded debug and symbol
380//      table info.  (See D3D10GetShaderConstantTable)
381//  ppErrorMsgs
382//      Returns a buffer containing a listing of errors and warnings that were
383//      encountered during the compile.  If you are running in a debugger,
384//      these are the same messages you will see in your debug output.
385//----------------------------------------------------------------------------
386
387HRESULT WINAPI D3D10CompileShader(LPCSTR pSrcData, SIZE_T SrcDataLen, LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
388    LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs);
389
390//----------------------------------------------------------------------------
391// D3D10DisassembleShader:
392// ----------------------
393// Takes a binary shader, and returns a buffer containing text assembly.
394//
395// Parameters:
396//  pShader
397//      Pointer to the shader byte code.
398//  BytecodeLength
399//      Size of the shader byte code in bytes.
400//  EnableColorCode
401//      Emit HTML tags for color coding the output?
402//  pComments
403//      Pointer to a comment string to include at the top of the shader.
404//  ppDisassembly
405//      Returns a buffer containing the disassembled shader.
406//----------------------------------------------------------------------------
407
408HRESULT WINAPI D3D10DisassembleShader(CONST void *pShader, SIZE_T BytecodeLength, BOOL EnableColorCode, LPCSTR pComments, ID3D10Blob** ppDisassembly);
409
410
411//----------------------------------------------------------------------------
412// D3D10GetPixelShaderProfile/D3D10GetVertexShaderProfile/D3D10GetGeometryShaderProfile:
413// -----------------------------------------------------
414// Returns the name of the HLSL profile best suited to a given device.
415//
416// Parameters:
417//  pDevice
418//      Pointer to the device in question
419//----------------------------------------------------------------------------
420
421LPCSTR WINAPI D3D10GetPixelShaderProfile(ID3D10Device *pDevice);
422
423LPCSTR WINAPI D3D10GetVertexShaderProfile(ID3D10Device *pDevice);
424
425LPCSTR WINAPI D3D10GetGeometryShaderProfile(ID3D10Device *pDevice);
426
427//----------------------------------------------------------------------------
428// D3D10ReflectShader:
429// ------------------
430// Creates a shader reflection object that can be used to retrieve information
431// about a compiled shader
432//
433// Parameters:
434//  pShaderBytecode
435//      Pointer to a compiled shader (same pointer that is passed into
436//      ID3D10Device::CreateShader)
437//  BytecodeLength
438//      Length of the shader bytecode buffer
439//  ppReflector
440//      [out] Returns a ID3D10ShaderReflection object that can be used to
441//      retrieve shader resource and constant buffer information
442//
443//----------------------------------------------------------------------------
444
445HRESULT WINAPI D3D10ReflectShader(CONST void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10ShaderReflection **ppReflector);
446
447//----------------------------------------------------------------------------
448// D3D10PreprocessShader
449// ---------------------
450// Creates a shader reflection object that can be used to retrieve information
451// about a compiled shader
452//
453// Parameters:
454//  pSrcData
455//      Pointer to source code
456//  SrcDataLen
457//      Size of source code, in bytes
458//  pFileName
459//      Source file name (used for error output)
460//  pDefines
461//      Optional NULL-terminated array of preprocessor macro definitions.
462//  pInclude
463//      Optional interface pointer to use for handling #include directives.
464//      If this parameter is NULL, #includes will be honored when assembling
465//      from file, and will error when assembling from resource or memory.
466//  ppShaderText
467//      Returns a buffer containing a single large string that represents
468//      the resulting formatted token stream
469//  ppErrorMsgs
470//      Returns a buffer containing a listing of errors and warnings that were
471//      encountered during assembly.  If you are running in a debugger,
472//      these are the same messages you will see in your debug output.
473//----------------------------------------------------------------------------
474
475HRESULT WINAPI D3D10PreprocessShader(LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines,
476    LPD3D10INCLUDE pInclude, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs);
477
478//////////////////////////////////////////////////////////////////////////
479//
480// Shader blob manipulation routines
481// ---------------------------------
482//
483// void *pShaderBytecode - a buffer containing the result of an HLSL
484//  compilation.  Typically this opaque buffer contains several
485//  discrete sections including the shader executable code, the input
486//  signature, and the output signature.  This can typically be retrieved
487//  by calling ID3D10Blob::GetBufferPointer() on the returned blob
488//  from HLSL's compile APIs.
489//
490// UINT BytecodeLength - the length of pShaderBytecode.  This can
491//  typically be retrieved by calling ID3D10Blob::GetBufferSize()
492//  on the returned blob from HLSL's compile APIs.
493//
494// ID3D10Blob **ppSignatureBlob(s) - a newly created buffer that
495//  contains only the signature portions of the original bytecode.
496//  This is a copy; the original bytecode is not modified.  You may
497//  specify NULL for this parameter to have the bytecode validated
498//  for the presence of the corresponding signatures without actually
499//  copying them and creating a new blob.
500//
501// Returns E_INVALIDARG if any required parameters are NULL
502// Returns E_FAIL is the bytecode is corrupt or missing signatures
503// Returns S_OK on success
504//
505//////////////////////////////////////////////////////////////////////////
506
507HRESULT WINAPI D3D10GetInputSignatureBlob(CONST void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob);
508HRESULT WINAPI D3D10GetOutputSignatureBlob(CONST void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob);
509HRESULT WINAPI D3D10GetInputAndOutputSignatureBlob(CONST void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob);
510
511//----------------------------------------------------------------------------
512// D3D10GetShaderDebugInfo:
513// -----------------------
514// Gets shader debug info.  Debug info is generated by D3D10CompileShader and is
515// embedded in the body of the shader.
516//
517// Parameters:
518//  pShaderBytecode
519//      Pointer to the function bytecode
520//  BytecodeLength
521//      Length of the shader bytecode buffer
522//  ppDebugInfo
523//      Buffer used to return debug info.  For information about the layout
524//      of this buffer, see definition of D3D10_SHADER_DEBUG_INFO above.
525//----------------------------------------------------------------------------
526
527HRESULT WINAPI D3D10GetShaderDebugInfo(CONST void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob** ppDebugInfo);
528
529#ifdef __cplusplus
530}
531#endif //__cplusplus
532   
533#endif //__D3D10SHADER_H__
534
trunk/3rdparty/dxsdk/Include/D3D11.h
r243310r243311
1/*-------------------------------------------------------------------------------------
2 *
3 * Copyright (c) Microsoft Corporation
4 *
5 *-------------------------------------------------------------------------------------*/
6
7
8/* this ALWAYS GENERATED file contains the definitions for the interfaces */
9
10
11 /* File created by MIDL compiler version 7.00.0555 */
12/* @@MIDL_FILE_HEADING(  ) */
13#ifdef _MSC_VER
14#pragma warning( disable: 4049 )  /* more than 64k source lines */
15#endif
16
17/* verify that the <rpcndr.h> version is high enough to compile this file*/
18#ifndef __REQUIRED_RPCNDR_H_VERSION__
19#define __REQUIRED_RPCNDR_H_VERSION__ 475
20#endif
21
22/* verify that the <rpcsal.h> version is high enough to compile this file*/
23#ifndef __REQUIRED_RPCSAL_H_VERSION__
24#define __REQUIRED_RPCSAL_H_VERSION__ 100
25#endif
26
27#include "rpc.h"
28#include "rpcndr.h"
29
30#ifndef __RPCNDR_H_VERSION__
31#error this stub requires an updated version of <rpcndr.h>
32#endif // __RPCNDR_H_VERSION__
33
34#ifndef COM_NO_WINDOWS_H
35#include "windows.h"
36#include "ole2.h"
37#endif /*COM_NO_WINDOWS_H*/
38
39#ifndef __d3d11_h__
40#define __d3d11_h__
41
42#if defined(_MSC_VER) && (_MSC_VER >= 1020)
43#pragma once
44#endif
45
46/* Forward Declarations */
47
48#ifndef __ID3D11DeviceChild_FWD_DEFINED__
49#define __ID3D11DeviceChild_FWD_DEFINED__
50typedef interface ID3D11DeviceChild ID3D11DeviceChild;
51#endif    /* __ID3D11DeviceChild_FWD_DEFINED__ */
52
53
54#ifndef __ID3D11DepthStencilState_FWD_DEFINED__
55#define __ID3D11DepthStencilState_FWD_DEFINED__
56typedef interface ID3D11DepthStencilState ID3D11DepthStencilState;
57#endif    /* __ID3D11DepthStencilState_FWD_DEFINED__ */
58
59
60#ifndef __ID3D11BlendState_FWD_DEFINED__
61#define __ID3D11BlendState_FWD_DEFINED__
62typedef interface ID3D11BlendState ID3D11BlendState;
63#endif    /* __ID3D11BlendState_FWD_DEFINED__ */
64
65
66#ifndef __ID3D11RasterizerState_FWD_DEFINED__
67#define __ID3D11RasterizerState_FWD_DEFINED__
68typedef interface ID3D11RasterizerState ID3D11RasterizerState;
69#endif    /* __ID3D11RasterizerState_FWD_DEFINED__ */
70
71
72#ifndef __ID3D11Resource_FWD_DEFINED__
73#define __ID3D11Resource_FWD_DEFINED__
74typedef interface ID3D11Resource ID3D11Resource;
75#endif    /* __ID3D11Resource_FWD_DEFINED__ */
76
77
78#ifndef __ID3D11Buffer_FWD_DEFINED__
79#define __ID3D11Buffer_FWD_DEFINED__
80typedef interface ID3D11Buffer ID3D11Buffer;
81#endif    /* __ID3D11Buffer_FWD_DEFINED__ */
82
83
84#ifndef __ID3D11Texture1D_FWD_DEFINED__
85#define __ID3D11Texture1D_FWD_DEFINED__
86typedef interface ID3D11Texture1D ID3D11Texture1D;
87#endif    /* __ID3D11Texture1D_FWD_DEFINED__ */
88
89
90#ifndef __ID3D11Texture2D_FWD_DEFINED__
91#define __ID3D11Texture2D_FWD_DEFINED__
92typedef interface ID3D11Texture2D ID3D11Texture2D;
93#endif    /* __ID3D11Texture2D_FWD_DEFINED__ */
94
95
96#ifndef __ID3D11Texture3D_FWD_DEFINED__
97#define __ID3D11Texture3D_FWD_DEFINED__
98typedef interface ID3D11Texture3D ID3D11Texture3D;
99#endif    /* __ID3D11Texture3D_FWD_DEFINED__ */
100
101
102#ifndef __ID3D11View_FWD_DEFINED__
103#define __ID3D11View_FWD_DEFINED__
104typedef interface ID3D11View ID3D11View;
105#endif    /* __ID3D11View_FWD_DEFINED__ */
106
107
108#ifndef __ID3D11ShaderResourceView_FWD_DEFINED__
109#define __ID3D11ShaderResourceView_FWD_DEFINED__
110typedef interface ID3D11ShaderResourceView ID3D11ShaderResourceView;
111#endif    /* __ID3D11ShaderResourceView_FWD_DEFINED__ */
112
113
114#ifndef __ID3D11RenderTargetView_FWD_DEFINED__
115#define __ID3D11RenderTargetView_FWD_DEFINED__
116typedef interface ID3D11RenderTargetView ID3D11RenderTargetView;
117#endif    /* __ID3D11RenderTargetView_FWD_DEFINED__ */
118
119
120#ifndef __ID3D11DepthStencilView_FWD_DEFINED__
121#define __ID3D11DepthStencilView_FWD_DEFINED__
122typedef interface ID3D11DepthStencilView ID3D11DepthStencilView;
123#endif    /* __ID3D11DepthStencilView_FWD_DEFINED__ */
124
125
126#ifndef __ID3D11UnorderedAccessView_FWD_DEFINED__
127#define __ID3D11UnorderedAccessView_FWD_DEFINED__
128typedef interface ID3D11UnorderedAccessView ID3D11UnorderedAccessView;
129#endif    /* __ID3D11UnorderedAccessView_FWD_DEFINED__ */
130
131
132#ifndef __ID3D11VertexShader_FWD_DEFINED__
133#define __ID3D11VertexShader_FWD_DEFINED__
134typedef interface ID3D11VertexShader ID3D11VertexShader;
135#endif    /* __ID3D11VertexShader_FWD_DEFINED__ */
136
137
138#ifndef __ID3D11HullShader_FWD_DEFINED__
139#define __ID3D11HullShader_FWD_DEFINED__
140typedef interface ID3D11HullShader ID3D11HullShader;
141#endif    /* __ID3D11HullShader_FWD_DEFINED__ */
142
143
144#ifndef __ID3D11DomainShader_FWD_DEFINED__
145#define __ID3D11DomainShader_FWD_DEFINED__
146typedef interface ID3D11DomainShader ID3D11DomainShader;
147#endif    /* __ID3D11DomainShader_FWD_DEFINED__ */
148
149
150#ifndef __ID3D11GeometryShader_FWD_DEFINED__
151#define __ID3D11GeometryShader_FWD_DEFINED__
152typedef interface ID3D11GeometryShader ID3D11GeometryShader;
153#endif    /* __ID3D11GeometryShader_FWD_DEFINED__ */
154
155
156#ifndef __ID3D11PixelShader_FWD_DEFINED__
157#define __ID3D11PixelShader_FWD_DEFINED__
158typedef interface ID3D11PixelShader ID3D11PixelShader;
159#endif    /* __ID3D11PixelShader_FWD_DEFINED__ */
160
161
162#ifndef __ID3D11ComputeShader_FWD_DEFINED__
163#define __ID3D11ComputeShader_FWD_DEFINED__
164typedef interface ID3D11ComputeShader ID3D11ComputeShader;
165#endif    /* __ID3D11ComputeShader_FWD_DEFINED__ */
166
167
168#ifndef __ID3D11InputLayout_FWD_DEFINED__
169#define __ID3D11InputLayout_FWD_DEFINED__
170typedef interface ID3D11InputLayout ID3D11InputLayout;
171#endif    /* __ID3D11InputLayout_FWD_DEFINED__ */
172
173
174#ifndef __ID3D11SamplerState_FWD_DEFINED__
175#define __ID3D11SamplerState_FWD_DEFINED__
176typedef interface ID3D11SamplerState ID3D11SamplerState;
177#endif    /* __ID3D11SamplerState_FWD_DEFINED__ */
178
179
180#ifndef __ID3D11Asynchronous_FWD_DEFINED__
181#define __ID3D11Asynchronous_FWD_DEFINED__
182typedef interface ID3D11Asynchronous ID3D11Asynchronous;
183#endif    /* __ID3D11Asynchronous_FWD_DEFINED__ */
184
185
186#ifndef __ID3D11Query_FWD_DEFINED__
187#define __ID3D11Query_FWD_DEFINED__
188typedef interface ID3D11Query ID3D11Query;
189#endif    /* __ID3D11Query_FWD_DEFINED__ */
190
191
192#ifndef __ID3D11Predicate_FWD_DEFINED__
193#define __ID3D11Predicate_FWD_DEFINED__
194typedef interface ID3D11Predicate ID3D11Predicate;
195#endif    /* __ID3D11Predicate_FWD_DEFINED__ */
196
197
198#ifndef __ID3D11Counter_FWD_DEFINED__
199#define __ID3D11Counter_FWD_DEFINED__
200typedef interface ID3D11Counter ID3D11Counter;
201#endif    /* __ID3D11Counter_FWD_DEFINED__ */
202
203
204#ifndef __ID3D11ClassInstance_FWD_DEFINED__
205#define __ID3D11ClassInstance_FWD_DEFINED__
206typedef interface ID3D11ClassInstance ID3D11ClassInstance;
207#endif    /* __ID3D11ClassInstance_FWD_DEFINED__ */
208
209
210#ifndef __ID3D11ClassLinkage_FWD_DEFINED__
211#define __ID3D11ClassLinkage_FWD_DEFINED__
212typedef interface ID3D11ClassLinkage ID3D11ClassLinkage;
213#endif    /* __ID3D11ClassLinkage_FWD_DEFINED__ */
214
215
216#ifndef __ID3D11CommandList_FWD_DEFINED__
217#define __ID3D11CommandList_FWD_DEFINED__
218typedef interface ID3D11CommandList ID3D11CommandList;
219#endif    /* __ID3D11CommandList_FWD_DEFINED__ */
220
221
222#ifndef __ID3D11DeviceContext_FWD_DEFINED__
223#define __ID3D11DeviceContext_FWD_DEFINED__
224typedef interface ID3D11DeviceContext ID3D11DeviceContext;
225#endif    /* __ID3D11DeviceContext_FWD_DEFINED__ */
226
227
228#ifndef __ID3D11Device_FWD_DEFINED__
229#define __ID3D11Device_FWD_DEFINED__
230typedef interface ID3D11Device ID3D11Device;
231#endif    /* __ID3D11Device_FWD_DEFINED__ */
232
233
234/* header files for imported files */
235#include "oaidl.h"
236#include "ocidl.h"
237#include "dxgi.h"
238#include "d3dcommon.h"
239
240#ifdef __cplusplus
241extern "C"{
242#endif
243
244
245/* interface __MIDL_itf_d3d11_0000_0000 */
246/* [local] */
247
248#ifndef _D3D11_CONSTANTS
249#define _D3D11_CONSTANTS
250#define   D3D11_16BIT_INDEX_STRIP_CUT_VALUE   ( 0xffff )
251
252#define   D3D11_32BIT_INDEX_STRIP_CUT_VALUE   ( 0xffffffff )
253
254#define   D3D11_8BIT_INDEX_STRIP_CUT_VALUE   ( 0xff )
255
256#define   D3D11_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT   ( 9 )
257
258#define   D3D11_CLIP_OR_CULL_DISTANCE_COUNT   ( 8 )
259
260#define   D3D11_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT   ( 2 )
261
262#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT   ( 14 )
263
264#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS   ( 4 )
265
266#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT   ( 32 )
267
268#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT   ( 15 )
269
270#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS   ( 4 )
271
272#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT   ( 15 )
273
274#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST   ( 1 )
275
276#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS   ( 1 )
277
278#define   D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT   ( 64 )
279
280#define   D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS   ( 4 )
281
282#define   D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT   ( 1 )
283
284#define   D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST   ( 1 )
285
286#define   D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS   ( 1 )
287
288#define   D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT   ( 32 )
289
290#define   D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS   ( 1 )
291
292#define   D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT   ( 128 )
293
294#define   D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST   ( 1 )
295
296#define   D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS   ( 1 )
297
298#define   D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT   ( 128 )
299
300#define   D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS   ( 1 )
301
302#define   D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT   ( 16 )
303
304#define   D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST   ( 1 )
305
306#define   D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS   ( 1 )
307
308#define   D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT   ( 16 )
309
310#define   D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT   ( 32 )
311
312#define   D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS   ( 4 )
313
314#define   D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
315
316#define   D3D11_COMMONSHADER_TEMP_REGISTER_COUNT   ( 4096 )
317
318#define   D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST   ( 3 )
319
320#define   D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS   ( 3 )
321
322#define   D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX   ( 10 )
323
324#define   D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN   ( -10 )
325
326#define   D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE   ( -8 )
327
328#define   D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE   ( 7 )
329
330#define   D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 256 )
331
332#define   D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP   ( 64 )
333
334#define   D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 240 )
335
336#define   D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP   ( 68 )
337
338#define   D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 224 )
339
340#define   D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP   ( 72 )
341
342#define   D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 208 )
343
344#define   D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP   ( 76 )
345
346#define   D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 192 )
347
348#define   D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP   ( 84 )
349
350#define   D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 176 )
351
352#define   D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP   ( 92 )
353
354#define   D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 160 )
355
356#define   D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP   ( 100 )
357
358#define   D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 144 )
359
360#define   D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP   ( 112 )
361
362#define   D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 128 )
363
364#define   D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP   ( 128 )
365
366#define   D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 112 )
367
368#define   D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP   ( 144 )
369
370#define   D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 96 )
371
372#define   D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP   ( 168 )
373
374#define   D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 80 )
375
376#define   D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP   ( 204 )
377
378#define   D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 64 )
379
380#define   D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP   ( 256 )
381
382#define   D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 48 )
383
384#define   D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP   ( 340 )
385
386#define   D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 32 )
387
388#define   D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP   ( 512 )
389
390#define   D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 16 )
391
392#define   D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP   ( 768 )
393
394#define   D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION   ( 1 )
395
396#define   D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT   ( 256 )
397
398#define   D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP   ( 768 )
399
400#define   D3D11_CS_4_X_THREAD_GROUP_MAX_X   ( 768 )
401
402#define   D3D11_CS_4_X_THREAD_GROUP_MAX_Y   ( 768 )
403
404#define   D3D11_CS_4_X_UAV_REGISTER_COUNT   ( 1 )
405
406#define   D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION   ( 65535 )
407
408#define   D3D11_CS_TGSM_REGISTER_COUNT   ( 8192 )
409
410#define   D3D11_CS_TGSM_REGISTER_READS_PER_INST   ( 1 )
411
412#define   D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS   ( 1 )
413
414#define   D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS   ( 1 )
415
416#define   D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP   ( 1024 )
417
418#define   D3D11_CS_THREAD_GROUP_MAX_X   ( 1024 )
419
420#define   D3D11_CS_THREAD_GROUP_MAX_Y   ( 1024 )
421
422#define   D3D11_CS_THREAD_GROUP_MAX_Z   ( 64 )
423
424#define   D3D11_CS_THREAD_GROUP_MIN_X   ( 1 )
425
426#define   D3D11_CS_THREAD_GROUP_MIN_Y   ( 1 )
427
428#define   D3D11_CS_THREAD_GROUP_MIN_Z   ( 1 )
429
430#define   D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL   ( 16384 )
431
432#define D3D11_DEFAULT_BLEND_FACTOR_ALPHA   ( 1.0f )
433#define D3D11_DEFAULT_BLEND_FACTOR_BLUE   ( 1.0f )
434#define D3D11_DEFAULT_BLEND_FACTOR_GREEN   ( 1.0f )
435#define D3D11_DEFAULT_BLEND_FACTOR_RED   ( 1.0f )
436#define D3D11_DEFAULT_BORDER_COLOR_COMPONENT   ( 0.0f )
437#define   D3D11_DEFAULT_DEPTH_BIAS   ( 0 )
438
439#define D3D11_DEFAULT_DEPTH_BIAS_CLAMP   ( 0.0f )
440#define D3D11_DEFAULT_MAX_ANISOTROPY   ( 16 )
441#define D3D11_DEFAULT_MIP_LOD_BIAS   ( 0.0f )
442#define   D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX   ( 0 )
443
444#define   D3D11_DEFAULT_SAMPLE_MASK   ( 0xffffffff )
445
446#define   D3D11_DEFAULT_SCISSOR_ENDX   ( 0 )
447
448#define   D3D11_DEFAULT_SCISSOR_ENDY   ( 0 )
449
450#define   D3D11_DEFAULT_SCISSOR_STARTX   ( 0 )
451
452#define   D3D11_DEFAULT_SCISSOR_STARTY   ( 0 )
453
454#define D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS   ( 0.0f )
455#define   D3D11_DEFAULT_STENCIL_READ_MASK   ( 0xff )
456
457#define   D3D11_DEFAULT_STENCIL_REFERENCE   ( 0 )
458
459#define   D3D11_DEFAULT_STENCIL_WRITE_MASK   ( 0xff )
460
461#define   D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX   ( 0 )
462
463#define   D3D11_DEFAULT_VIEWPORT_HEIGHT   ( 0 )
464
465#define D3D11_DEFAULT_VIEWPORT_MAX_DEPTH   ( 0.0f )
466#define D3D11_DEFAULT_VIEWPORT_MIN_DEPTH   ( 0.0f )
467#define   D3D11_DEFAULT_VIEWPORT_TOPLEFTX   ( 0 )
468
469#define   D3D11_DEFAULT_VIEWPORT_TOPLEFTY   ( 0 )
470
471#define   D3D11_DEFAULT_VIEWPORT_WIDTH   ( 0 )
472
473#define   D3D11_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS   ( 3968 )
474
475#define   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS   ( 4 )
476
477#define   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
478
479#define   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT   ( 32 )
480
481#define   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST   ( 2 )
482
483#define   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS   ( 1 )
484
485#define   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS   ( 3 )
486
487#define   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
488
489#define   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT   ( 1 )
490
491#define   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST   ( 2 )
492
493#define   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS   ( 1 )
494
495#define   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS   ( 4 )
496
497#define   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
498
499#define   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT   ( 32 )
500
501#define   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST   ( 2 )
502
503#define   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS   ( 1 )
504
505#define   D3D11_DS_OUTPUT_REGISTER_COMPONENTS   ( 4 )
506
507#define   D3D11_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
508
509#define   D3D11_DS_OUTPUT_REGISTER_COUNT   ( 32 )
510
511#define D3D11_FLOAT16_FUSED_TOLERANCE_IN_ULP   ( 0.6 )
512#define D3D11_FLOAT32_MAX   ( 3.402823466e+38f )
513#define D3D11_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP   ( 0.6f )
514#define D3D11_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR   ( 2.4f )
515#define D3D11_FLOAT_TO_SRGB_EXPONENT_NUMERATOR   ( 1.0f )
516#define D3D11_FLOAT_TO_SRGB_OFFSET   ( 0.055f )
517#define D3D11_FLOAT_TO_SRGB_SCALE_1   ( 12.92f )
518#define D3D11_FLOAT_TO_SRGB_SCALE_2   ( 1.055f )
519#define D3D11_FLOAT_TO_SRGB_THRESHOLD   ( 0.0031308f )
520#define D3D11_FTOI_INSTRUCTION_MAX_INPUT   ( 2147483647.999f )
521#define D3D11_FTOI_INSTRUCTION_MIN_INPUT   ( -2147483648.999f )
522#define D3D11_FTOU_INSTRUCTION_MAX_INPUT   ( 4294967295.999f )
523#define D3D11_FTOU_INSTRUCTION_MIN_INPUT   ( 0.0f )
524#define   D3D11_GS_INPUT_INSTANCE_ID_READS_PER_INST   ( 2 )
525
526#define   D3D11_GS_INPUT_INSTANCE_ID_READ_PORTS   ( 1 )
527
528#define   D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS   ( 1 )
529
530#define   D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
531
532#define   D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COUNT   ( 1 )
533
534#define   D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS   ( 1 )
535
536#define   D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
537
538#define   D3D11_GS_INPUT_PRIM_CONST_REGISTER_COUNT   ( 1 )
539
540#define   D3D11_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST   ( 2 )
541
542#define   D3D11_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS   ( 1 )
543
544#define   D3D11_GS_INPUT_REGISTER_COMPONENTS   ( 4 )
545
546#define   D3D11_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
547
548#define   D3D11_GS_INPUT_REGISTER_COUNT   ( 32 )
549
550#define   D3D11_GS_INPUT_REGISTER_READS_PER_INST   ( 2 )
551
552#define   D3D11_GS_INPUT_REGISTER_READ_PORTS   ( 1 )
553
554#define   D3D11_GS_INPUT_REGISTER_VERTICES   ( 32 )
555
556#define   D3D11_GS_MAX_INSTANCE_COUNT   ( 32 )
557
558#define   D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES   ( 1024 )
559
560#define   D3D11_GS_OUTPUT_ELEMENTS   ( 32 )
561
562#define   D3D11_GS_OUTPUT_REGISTER_COMPONENTS   ( 4 )
563
564#define   D3D11_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
565
566#define   D3D11_GS_OUTPUT_REGISTER_COUNT   ( 32 )
567
568#define   D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT   ( 32 )
569
570#define   D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT   ( 32 )
571
572#define   D3D11_HS_CONTROL_POINT_REGISTER_COMPONENTS   ( 4 )
573
574#define   D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
575
576#define   D3D11_HS_CONTROL_POINT_REGISTER_READS_PER_INST   ( 2 )
577
578#define   D3D11_HS_CONTROL_POINT_REGISTER_READ_PORTS   ( 1 )
579
580#define   D3D11_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND   ( 0xffffffff )
581
582#define   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS   ( 1 )
583
584#define   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
585
586#define   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT   ( 1 )
587
588#define   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST   ( 2 )
589
590#define   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS   ( 1 )
591
592#define   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS   ( 1 )
593
594#define   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
595
596#define   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT   ( 1 )
597
598#define   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST   ( 2 )
599
600#define   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS   ( 1 )
601
602#define   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS   ( 1 )
603
604#define   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
605
606#define   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT   ( 1 )
607
608#define   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST   ( 2 )
609
610#define   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS   ( 1 )
611
612#define   D3D11_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND   ( 0xffffffff )
613
614#define D3D11_HS_MAXTESSFACTOR_LOWER_BOUND   ( 1.0f )
615#define D3D11_HS_MAXTESSFACTOR_UPPER_BOUND   ( 64.0f )
616#define   D3D11_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS   ( 3968 )
617
618#define   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS   ( 1 )
619
620#define   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
621
622#define   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT   ( 1 )
623
624#define   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST   ( 2 )
625
626#define   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS   ( 1 )
627
628#define   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS   ( 4 )
629
630#define   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
631
632#define   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT   ( 32 )
633
634#define   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST   ( 2 )
635
636#define   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS   ( 1 )
637
638#define   D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES   ( 0 )
639
640#define   D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY   ( 0 )
641
642#define   D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES   ( 0 )
643
644#define   D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT   ( 1 )
645
646#define   D3D11_IA_INSTANCE_ID_BIT_COUNT   ( 32 )
647
648#define   D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT   ( 32 )
649
650#define   D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT   ( 32 )
651
652#define   D3D11_IA_PRIMITIVE_ID_BIT_COUNT   ( 32 )
653
654#define   D3D11_IA_VERTEX_ID_BIT_COUNT   ( 32 )
655
656#define   D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT   ( 32 )
657
658#define   D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS   ( 128 )
659
660#define   D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT   ( 32 )
661
662#define   D3D11_INTEGER_DIVIDE_BY_ZERO_QUOTIENT   ( 0xffffffff )
663
664#define   D3D11_INTEGER_DIVIDE_BY_ZERO_REMAINDER   ( 0xffffffff )
665
666#define   D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL   ( 0xffffffff )
667
668#define   D3D11_KEEP_UNORDERED_ACCESS_VIEWS   ( 0xffffffff )
669
670#define D3D11_LINEAR_GAMMA   ( 1.0f )
671#define   D3D11_MAJOR_VERSION   ( 11 )
672
673#define D3D11_MAX_BORDER_COLOR_COMPONENT   ( 1.0f )
674#define D3D11_MAX_DEPTH   ( 1.0f )
675#define   D3D11_MAX_MAXANISOTROPY   ( 16 )
676
677#define   D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT   ( 32 )
678
679#define D3D11_MAX_POSITION_VALUE   ( 3.402823466e+34f )
680#define   D3D11_MAX_TEXTURE_DIMENSION_2_TO_EXP   ( 17 )
681
682#define   D3D11_MINOR_VERSION   ( 0 )
683
684#define D3D11_MIN_BORDER_COLOR_COMPONENT   ( 0.0f )
685#define D3D11_MIN_DEPTH   ( 0.0f )
686#define   D3D11_MIN_MAXANISOTROPY   ( 0 )
687
688#define D3D11_MIP_LOD_BIAS_MAX   ( 15.99f )
689#define D3D11_MIP_LOD_BIAS_MIN   ( -16.0f )
690#define   D3D11_MIP_LOD_FRACTIONAL_BIT_COUNT   ( 8 )
691
692#define   D3D11_MIP_LOD_RANGE_BIT_COUNT   ( 8 )
693
694#define D3D11_MULTISAMPLE_ANTIALIAS_LINE_WIDTH   ( 1.4f )
695#define   D3D11_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT   ( 0 )
696
697#define   D3D11_PIXEL_ADDRESS_RANGE_BIT_COUNT   ( 15 )
698
699#define   D3D11_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT   ( 16 )
700
701#define   D3D11_PS_CS_UAV_REGISTER_COMPONENTS   ( 1 )
702
703#define   D3D11_PS_CS_UAV_REGISTER_COUNT   ( 8 )
704
705#define   D3D11_PS_CS_UAV_REGISTER_READS_PER_INST   ( 1 )
706
707#define   D3D11_PS_CS_UAV_REGISTER_READ_PORTS   ( 1 )
708
709#define   D3D11_PS_FRONTFACING_DEFAULT_VALUE   ( 0xffffffff )
710
711#define   D3D11_PS_FRONTFACING_FALSE_VALUE   ( 0 )
712
713#define   D3D11_PS_FRONTFACING_TRUE_VALUE   ( 0xffffffff )
714
715#define   D3D11_PS_INPUT_REGISTER_COMPONENTS   ( 4 )
716
717#define   D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
718
719#define   D3D11_PS_INPUT_REGISTER_COUNT   ( 32 )
720
721#define   D3D11_PS_INPUT_REGISTER_READS_PER_INST   ( 2 )
722
723#define   D3D11_PS_INPUT_REGISTER_READ_PORTS   ( 1 )
724
725#define D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT   ( 0.0f )
726#define   D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS   ( 1 )
727
728#define   D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
729
730#define   D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT   ( 1 )
731
732#define   D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS   ( 1 )
733
734#define   D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
735
736#define   D3D11_PS_OUTPUT_MASK_REGISTER_COUNT   ( 1 )
737
738#define   D3D11_PS_OUTPUT_REGISTER_COMPONENTS   ( 4 )
739
740#define   D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
741
742#define   D3D11_PS_OUTPUT_REGISTER_COUNT   ( 8 )
743
744#define D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT   ( 0.5f )
745#define   D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT   ( 16 )
746
747#define   D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE   ( 4096 )
748
749#define   D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP   ( 27 )
750
751#define   D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT   ( 4096 )
752
753#define   D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE   ( 4096 )
754
755#define   D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP   ( 32 )
756
757#define   D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP   ( 32 )
758
759#define   D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION   ( 16384 )
760
761#define   D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT   ( 1024 )
762
763#define   D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT   ( 4096 )
764
765#define   D3D11_REQ_MAXANISOTROPY   ( 16 )
766
767#define   D3D11_REQ_MIP_LEVELS   ( 15 )
768
769#define   D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES   ( 2048 )
770
771#define   D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE   ( 4096 )
772
773#define   D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH   ( 16384 )
774
775#define   D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM   ( 128 )
776
777#define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM   ( 0.25f )
778#define   D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP   ( 20 )
779
780#define   D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE   ( 4096 )
781
782#define   D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION   ( 2048 )
783
784#define   D3D11_REQ_TEXTURE1D_U_DIMENSION   ( 16384 )
785
786#define   D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION   ( 2048 )
787
788#define   D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION   ( 16384 )
789
790#define   D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION   ( 2048 )
791
792#define   D3D11_REQ_TEXTURECUBE_DIMENSION   ( 16384 )
793
794#define   D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL   ( 0 )
795
796#define   D3D11_SHADER_MAJOR_VERSION   ( 5 )
797
798#define   D3D11_SHADER_MAX_INSTANCES   ( 65535 )
799
800#define   D3D11_SHADER_MAX_INTERFACES   ( 253 )
801
802#define   D3D11_SHADER_MAX_INTERFACE_CALL_SITES   ( 4096 )
803
804#define   D3D11_SHADER_MAX_TYPES   ( 65535 )
805
806#define   D3D11_SHADER_MINOR_VERSION   ( 0 )
807
808#define   D3D11_SHIFT_INSTRUCTION_PAD_VALUE   ( 0 )
809
810#define   D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT   ( 5 )
811
812#define   D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT   ( 8 )
813
814#define   D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES   ( 2048 )
815
816#define   D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES   ( 512 )
817
818#define   D3D11_SO_BUFFER_SLOT_COUNT   ( 4 )
819
820#define   D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP   ( 0xffffffff )
821
822#define   D3D11_SO_NO_RASTERIZED_STREAM   ( 0xffffffff )
823
824#define   D3D11_SO_OUTPUT_COMPONENT_COUNT   ( 128 )
825
826#define   D3D11_SO_STREAM_COUNT   ( 4 )
827
828#define   D3D11_SPEC_DATE_DAY   ( 04 )
829
830#define   D3D11_SPEC_DATE_MONTH   ( 06 )
831
832#define   D3D11_SPEC_DATE_YEAR   ( 2009 )
833
834#define D3D11_SPEC_VERSION   ( 1.0 )
835#define D3D11_SRGB_GAMMA   ( 2.2f )
836#define D3D11_SRGB_TO_FLOAT_DENOMINATOR_1   ( 12.92f )
837#define D3D11_SRGB_TO_FLOAT_DENOMINATOR_2   ( 1.055f )
838#define D3D11_SRGB_TO_FLOAT_EXPONENT   ( 2.4f )
839#define D3D11_SRGB_TO_FLOAT_OFFSET   ( 0.055f )
840#define D3D11_SRGB_TO_FLOAT_THRESHOLD   ( 0.04045f )
841#define D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP   ( 0.5f )
842#define   D3D11_STANDARD_COMPONENT_BIT_COUNT   ( 32 )
843
844#define   D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED   ( 64 )
845
846#define   D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE   ( 4 )
847
848#define   D3D11_STANDARD_PIXEL_COMPONENT_COUNT   ( 128 )
849
850#define   D3D11_STANDARD_PIXEL_ELEMENT_COUNT   ( 32 )
851
852#define   D3D11_STANDARD_VECTOR_SIZE   ( 4 )
853
854#define   D3D11_STANDARD_VERTEX_ELEMENT_COUNT   ( 32 )
855
856#define   D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT   ( 64 )
857
858#define   D3D11_SUBPIXEL_FRACTIONAL_BIT_COUNT   ( 8 )
859
860#define   D3D11_SUBTEXEL_FRACTIONAL_BIT_COUNT   ( 8 )
861
862#define   D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR   ( 64 )
863
864#define   D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR   ( 64 )
865
866#define   D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR   ( 63 )
867
868#define   D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR   ( 64 )
869
870#define   D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR   ( 2 )
871
872#define   D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR   ( 1 )
873
874#define   D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR   ( 1 )
875
876#define   D3D11_TEXEL_ADDRESS_RANGE_BIT_COUNT   ( 16 )
877
878#define   D3D11_UNBOUND_MEMORY_ACCESS_RESULT   ( 0 )
879
880#define   D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX   ( 15 )
881
882#define   D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE   ( 16 )
883
884#define   D3D11_VIEWPORT_BOUNDS_MAX   ( 32767 )
885
886#define   D3D11_VIEWPORT_BOUNDS_MIN   ( -32768 )
887
888#define   D3D11_VS_INPUT_REGISTER_COMPONENTS   ( 4 )
889
890#define   D3D11_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
891
892#define   D3D11_VS_INPUT_REGISTER_COUNT   ( 32 )
893
894#define   D3D11_VS_INPUT_REGISTER_READS_PER_INST   ( 2 )
895
896#define   D3D11_VS_INPUT_REGISTER_READ_PORTS   ( 1 )
897
898#define   D3D11_VS_OUTPUT_REGISTER_COMPONENTS   ( 4 )
899
900#define   D3D11_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
901
902#define   D3D11_VS_OUTPUT_REGISTER_COUNT   ( 32 )
903
904#define   D3D11_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT   ( 10 )
905
906#define   D3D11_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP   ( 25 )
907
908#define   D3D11_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP   ( 25 )
909
910#endif
911#define   _FACD3D11   ( 0x87c )
912
913#define   _FACD3D11DEBUG   ( ( _FACD3D11 + 1 )  )
914
915#define MAKE_D3D11_HRESULT( code )  MAKE_HRESULT( 1, _FACD3D11, code )
916#define MAKE_D3D11_STATUS( code )    MAKE_HRESULT( 0, _FACD3D11, code )
917#define D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS  MAKE_D3D11_HRESULT(1)
918#define D3D11_ERROR_FILE_NOT_FOUND  MAKE_D3D11_HRESULT(2)
919#define D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS  MAKE_D3D11_HRESULT(3)
920#define D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD  MAKE_D3D11_HRESULT(4)
921#if __SAL_H_FULL_VER < 140050727
922#undef __in_range
923#undef __in_xcount_opt
924#define __in_range(x, y)
925#define __in_xcount_opt(x)
926#endif
927#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
928}
929struct CD3D11_DEFAULT {};
930extern const DECLSPEC_SELECTANY CD3D11_DEFAULT D3D11_DEFAULT;
931extern "C"{
932#endif
933typedef
934enum D3D11_INPUT_CLASSIFICATION
935    {   D3D11_INPUT_PER_VERTEX_DATA   = 0,
936   D3D11_INPUT_PER_INSTANCE_DATA   = 1
937    }    D3D11_INPUT_CLASSIFICATION;
938
939#define   D3D11_APPEND_ALIGNED_ELEMENT   ( 0xffffffff )
940
941typedef struct D3D11_INPUT_ELEMENT_DESC
942    {
943    LPCSTR SemanticName;
944    UINT SemanticIndex;
945    DXGI_FORMAT Format;
946    UINT InputSlot;
947    UINT AlignedByteOffset;
948    D3D11_INPUT_CLASSIFICATION InputSlotClass;
949    UINT InstanceDataStepRate;
950    }    D3D11_INPUT_ELEMENT_DESC;
951
952typedef
953enum D3D11_FILL_MODE
954    {   D3D11_FILL_WIREFRAME   = 2,
955   D3D11_FILL_SOLID   = 3
956    }    D3D11_FILL_MODE;
957
958typedef D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY;
959
960typedef D3D_PRIMITIVE D3D11_PRIMITIVE;
961
962typedef
963enum D3D11_CULL_MODE
964    {   D3D11_CULL_NONE   = 1,
965   D3D11_CULL_FRONT   = 2,
966   D3D11_CULL_BACK   = 3
967    }    D3D11_CULL_MODE;
968
969typedef struct D3D11_SO_DECLARATION_ENTRY
970    {
971    UINT Stream;
972    LPCSTR SemanticName;
973    UINT SemanticIndex;
974    BYTE StartComponent;
975    BYTE ComponentCount;
976    BYTE OutputSlot;
977    }    D3D11_SO_DECLARATION_ENTRY;
978
979typedef struct D3D11_VIEWPORT
980    {
981    FLOAT TopLeftX;
982    FLOAT TopLeftY;
983    FLOAT Width;
984    FLOAT Height;
985    FLOAT MinDepth;
986    FLOAT MaxDepth;
987    }    D3D11_VIEWPORT;
988
989#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
990}
991inline bool operator==( const D3D11_VIEWPORT& l, const D3D11_VIEWPORT& r )
992{
993    return l.TopLeftX == r.TopLeftX && l.TopLeftY == r.TopLeftY && l.Width == r.Width &&
994        l.Height == r.Height && l.MinDepth == r.MinDepth && l.MaxDepth == r.MaxDepth;
995}
996inline bool operator!=( const D3D11_VIEWPORT& l, const D3D11_VIEWPORT& r )
997{ return !( l == r ); }
998extern "C"{
999#endif
1000typedef
1001enum D3D11_RESOURCE_DIMENSION
1002    {   D3D11_RESOURCE_DIMENSION_UNKNOWN   = 0,
1003   D3D11_RESOURCE_DIMENSION_BUFFER   = 1,
1004   D3D11_RESOURCE_DIMENSION_TEXTURE1D   = 2,
1005   D3D11_RESOURCE_DIMENSION_TEXTURE2D   = 3,
1006   D3D11_RESOURCE_DIMENSION_TEXTURE3D   = 4
1007    }    D3D11_RESOURCE_DIMENSION;
1008
1009typedef D3D_SRV_DIMENSION D3D11_SRV_DIMENSION;
1010
1011typedef
1012enum D3D11_DSV_DIMENSION
1013    {   D3D11_DSV_DIMENSION_UNKNOWN   = 0,
1014   D3D11_DSV_DIMENSION_TEXTURE1D   = 1,
1015   D3D11_DSV_DIMENSION_TEXTURE1DARRAY   = 2,
1016   D3D11_DSV_DIMENSION_TEXTURE2D   = 3,
1017   D3D11_DSV_DIMENSION_TEXTURE2DARRAY   = 4,
1018   D3D11_DSV_DIMENSION_TEXTURE2DMS   = 5,
1019   D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY   = 6
1020    }    D3D11_DSV_DIMENSION;
1021
1022typedef
1023enum D3D11_RTV_DIMENSION
1024    {   D3D11_RTV_DIMENSION_UNKNOWN   = 0,
1025   D3D11_RTV_DIMENSION_BUFFER   = 1,
1026   D3D11_RTV_DIMENSION_TEXTURE1D   = 2,
1027   D3D11_RTV_DIMENSION_TEXTURE1DARRAY   = 3,
1028   D3D11_RTV_DIMENSION_TEXTURE2D   = 4,
1029   D3D11_RTV_DIMENSION_TEXTURE2DARRAY   = 5,
1030   D3D11_RTV_DIMENSION_TEXTURE2DMS   = 6,
1031   D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY   = 7,
1032   D3D11_RTV_DIMENSION_TEXTURE3D   = 8
1033    }    D3D11_RTV_DIMENSION;
1034
1035typedef
1036enum D3D11_UAV_DIMENSION
1037    {   D3D11_UAV_DIMENSION_UNKNOWN   = 0,
1038   D3D11_UAV_DIMENSION_BUFFER   = 1,
1039   D3D11_UAV_DIMENSION_TEXTURE1D   = 2,
1040   D3D11_UAV_DIMENSION_TEXTURE1DARRAY   = 3,
1041   D3D11_UAV_DIMENSION_TEXTURE2D   = 4,
1042   D3D11_UAV_DIMENSION_TEXTURE2DARRAY   = 5,
1043   D3D11_UAV_DIMENSION_TEXTURE3D   = 8
1044    }    D3D11_UAV_DIMENSION;
1045
1046typedef
1047enum D3D11_USAGE
1048    {   D3D11_USAGE_DEFAULT   = 0,
1049   D3D11_USAGE_IMMUTABLE   = 1,
1050   D3D11_USAGE_DYNAMIC   = 2,
1051   D3D11_USAGE_STAGING   = 3
1052    }    D3D11_USAGE;
1053
1054typedef
1055enum D3D11_BIND_FLAG
1056    {   D3D11_BIND_VERTEX_BUFFER   = 0x1L,
1057   D3D11_BIND_INDEX_BUFFER   = 0x2L,
1058   D3D11_BIND_CONSTANT_BUFFER   = 0x4L,
1059   D3D11_BIND_SHADER_RESOURCE   = 0x8L,
1060   D3D11_BIND_STREAM_OUTPUT   = 0x10L,
1061   D3D11_BIND_RENDER_TARGET   = 0x20L,
1062   D3D11_BIND_DEPTH_STENCIL   = 0x40L,
1063   D3D11_BIND_UNORDERED_ACCESS   = 0x80L
1064    }    D3D11_BIND_FLAG;
1065
1066typedef
1067enum D3D11_CPU_ACCESS_FLAG
1068    {   D3D11_CPU_ACCESS_WRITE   = 0x10000L,
1069   D3D11_CPU_ACCESS_READ   = 0x20000L
1070    }    D3D11_CPU_ACCESS_FLAG;
1071
1072typedef
1073enum D3D11_RESOURCE_MISC_FLAG
1074    {   D3D11_RESOURCE_MISC_GENERATE_MIPS   = 0x1L,
1075   D3D11_RESOURCE_MISC_SHARED   = 0x2L,
1076   D3D11_RESOURCE_MISC_TEXTURECUBE   = 0x4L,
1077   D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS   = 0x10L,
1078   D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS   = 0x20L,
1079   D3D11_RESOURCE_MISC_BUFFER_STRUCTURED   = 0x40L,
1080   D3D11_RESOURCE_MISC_RESOURCE_CLAMP   = 0x80L,
1081   D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX   = 0x100L,
1082   D3D11_RESOURCE_MISC_GDI_COMPATIBLE   = 0x200L
1083    }    D3D11_RESOURCE_MISC_FLAG;
1084
1085typedef
1086enum D3D11_MAP
1087    {   D3D11_MAP_READ   = 1,
1088   D3D11_MAP_WRITE   = 2,
1089   D3D11_MAP_READ_WRITE   = 3,
1090   D3D11_MAP_WRITE_DISCARD   = 4,
1091   D3D11_MAP_WRITE_NO_OVERWRITE   = 5
1092    }    D3D11_MAP;
1093
1094typedef
1095enum D3D11_MAP_FLAG
1096    {   D3D11_MAP_FLAG_DO_NOT_WAIT   = 0x100000L
1097    }    D3D11_MAP_FLAG;
1098
1099typedef
1100enum D3D11_RAISE_FLAG
1101    {   D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR   = 0x1L
1102    }    D3D11_RAISE_FLAG;
1103
1104typedef
1105enum D3D11_CLEAR_FLAG
1106    {   D3D11_CLEAR_DEPTH   = 0x1L,
1107   D3D11_CLEAR_STENCIL   = 0x2L
1108    }    D3D11_CLEAR_FLAG;
1109
1110typedef RECT D3D11_RECT;
1111
1112#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
1113}
1114struct CD3D11_RECT : public D3D11_RECT
1115{
1116    CD3D11_RECT()
1117    {}
1118    explicit CD3D11_RECT( const D3D11_RECT& o ) :
1119        D3D11_RECT( o )
1120    {}
1121    explicit CD3D11_RECT(
1122        LONG Left,
1123        LONG Top,
1124        LONG Right,
1125        LONG Bottom )
1126    {
1127        left = Left;
1128        top = Top;
1129        right = Right;
1130        bottom = Bottom;
1131    }
1132    ~CD3D11_RECT() {}
1133    operator const D3D11_RECT&() const { return *this; }
1134};
1135inline bool operator==( const D3D11_RECT& l, const D3D11_RECT& r )
1136{
1137    return l.left == r.left && l.top == r.top &&
1138        l.right == r.right && l.bottom == r.bottom;
1139}
1140inline bool operator!=( const D3D11_RECT& l, const D3D11_RECT& r )
1141{ return !( l == r ); }
1142extern "C"{
1143#endif
1144typedef struct D3D11_BOX
1145    {
1146    UINT left;
1147    UINT top;
1148    UINT front;
1149    UINT right;
1150    UINT bottom;
1151    UINT back;
1152    }    D3D11_BOX;
1153
1154#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
1155}
1156struct CD3D11_BOX : public D3D11_BOX
1157{
1158    CD3D11_BOX()
1159    {}
1160    explicit CD3D11_BOX( const D3D11_BOX& o ) :
1161        D3D11_BOX( o )
1162    {}
1163    explicit CD3D11_BOX(
1164        LONG Left,
1165        LONG Top,
1166        LONG Front,
1167        LONG Right,
1168        LONG Bottom,
1169        LONG Back )
1170    {
1171        left = Left;
1172        top = Top;
1173        front = Front;
1174        right = Right;
1175        bottom = Bottom;
1176        back = Back;
1177    }
1178    ~CD3D11_BOX() {}
1179    operator const D3D11_BOX&() const { return *this; }
1180};
1181inline bool operator==( const D3D11_BOX& l, const D3D11_BOX& r )
1182{
1183    return l.left == r.left && l.top == r.top && l.front == r.front &&
1184        l.right == r.right && l.bottom == r.bottom && l.back == r.back;
1185}
1186inline bool operator!=( const D3D11_BOX& l, const D3D11_BOX& r )
1187{ return !( l == r ); }
1188extern "C"{
1189#endif
1190
1191
1192
1193
1194extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0000_v0_0_c_ifspec;
1195extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0000_v0_0_s_ifspec;
1196
1197#ifndef __ID3D11DeviceChild_INTERFACE_DEFINED__
1198#define __ID3D11DeviceChild_INTERFACE_DEFINED__
1199
1200/* interface ID3D11DeviceChild */
1201/* [unique][local][object][uuid] */
1202
1203
1204EXTERN_C const IID IID_ID3D11DeviceChild;
1205
1206#if defined(__cplusplus) && !defined(CINTERFACE)
1207   
1208    MIDL_INTERFACE("1841e5c8-16b0-489b-bcc8-44cfb0d5deae")
1209    ID3D11DeviceChild : public IUnknown
1210    {
1211    public:
1212        virtual void STDMETHODCALLTYPE GetDevice(
1213            /* [annotation] */
1214            __out  ID3D11Device **ppDevice) = 0;
1215       
1216        virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
1217            /* [annotation] */
1218            __in  REFGUID guid,
1219            /* [annotation] */
1220            __inout  UINT *pDataSize,
1221            /* [annotation] */
1222            __out_bcount_opt( *pDataSize )  void *pData) = 0;
1223       
1224        virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
1225            /* [annotation] */
1226            __in  REFGUID guid,
1227            /* [annotation] */
1228            __in  UINT DataSize,
1229            /* [annotation] */
1230            __in_bcount_opt( DataSize )  const void *pData) = 0;
1231       
1232        virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
1233            /* [annotation] */
1234            __in  REFGUID guid,
1235            /* [annotation] */
1236            __in_opt  const IUnknown *pData) = 0;
1237       
1238    };
1239   
1240#else    /* C style interface */
1241
1242    typedef struct ID3D11DeviceChildVtbl
1243    {
1244        BEGIN_INTERFACE
1245       
1246        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1247            ID3D11DeviceChild * This,
1248            /* [in] */ REFIID riid,
1249            /* [annotation][iid_is][out] */
1250            __RPC__deref_out  void **ppvObject);
1251       
1252        ULONG ( STDMETHODCALLTYPE *AddRef )(
1253            ID3D11DeviceChild * This);
1254       
1255        ULONG ( STDMETHODCALLTYPE *Release )(
1256            ID3D11DeviceChild * This);
1257       
1258        void ( STDMETHODCALLTYPE *GetDevice )(
1259            ID3D11DeviceChild * This,
1260            /* [annotation] */
1261            __out  ID3D11Device **ppDevice);
1262       
1263        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1264            ID3D11DeviceChild * This,
1265            /* [annotation] */
1266            __in  REFGUID guid,
1267            /* [annotation] */
1268            __inout  UINT *pDataSize,
1269            /* [annotation] */
1270            __out_bcount_opt( *pDataSize )  void *pData);
1271       
1272        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1273            ID3D11DeviceChild * This,
1274            /* [annotation] */
1275            __in  REFGUID guid,
1276            /* [annotation] */
1277            __in  UINT DataSize,
1278            /* [annotation] */
1279            __in_bcount_opt( DataSize )  const void *pData);
1280       
1281        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1282            ID3D11DeviceChild * This,
1283            /* [annotation] */
1284            __in  REFGUID guid,
1285            /* [annotation] */
1286            __in_opt  const IUnknown *pData);
1287       
1288        END_INTERFACE
1289    } ID3D11DeviceChildVtbl;
1290
1291    interface ID3D11DeviceChild
1292    {
1293        CONST_VTBL struct ID3D11DeviceChildVtbl *lpVtbl;
1294    };
1295
1296   
1297
1298#ifdef COBJMACROS
1299
1300
1301#define ID3D11DeviceChild_QueryInterface(This,riid,ppvObject)   \
1302    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1303
1304#define ID3D11DeviceChild_AddRef(This)   \
1305    ( (This)->lpVtbl -> AddRef(This) )
1306
1307#define ID3D11DeviceChild_Release(This)   \
1308    ( (This)->lpVtbl -> Release(This) )
1309
1310
1311#define ID3D11DeviceChild_GetDevice(This,ppDevice)   \
1312    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1313
1314#define ID3D11DeviceChild_GetPrivateData(This,guid,pDataSize,pData)   \
1315    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1316
1317#define ID3D11DeviceChild_SetPrivateData(This,guid,DataSize,pData)   \
1318    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1319
1320#define ID3D11DeviceChild_SetPrivateDataInterface(This,guid,pData)   \
1321    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1322
1323#endif /* COBJMACROS */
1324
1325
1326#endif    /* C style interface */
1327
1328
1329
1330
1331#endif    /* __ID3D11DeviceChild_INTERFACE_DEFINED__ */
1332
1333
1334/* interface __MIDL_itf_d3d11_0000_0001 */
1335/* [local] */
1336
1337typedef
1338enum D3D11_COMPARISON_FUNC
1339    {   D3D11_COMPARISON_NEVER   = 1,
1340   D3D11_COMPARISON_LESS   = 2,
1341   D3D11_COMPARISON_EQUAL   = 3,
1342   D3D11_COMPARISON_LESS_EQUAL   = 4,
1343   D3D11_COMPARISON_GREATER   = 5,
1344   D3D11_COMPARISON_NOT_EQUAL   = 6,
1345   D3D11_COMPARISON_GREATER_EQUAL   = 7,
1346   D3D11_COMPARISON_ALWAYS   = 8
1347    }    D3D11_COMPARISON_FUNC;
1348
1349typedef
1350enum D3D11_DEPTH_WRITE_MASK
1351    {   D3D11_DEPTH_WRITE_MASK_ZERO   = 0,
1352   D3D11_DEPTH_WRITE_MASK_ALL   = 1
1353    }    D3D11_DEPTH_WRITE_MASK;
1354
1355typedef
1356enum D3D11_STENCIL_OP
1357    {   D3D11_STENCIL_OP_KEEP   = 1,
1358   D3D11_STENCIL_OP_ZERO   = 2,
1359   D3D11_STENCIL_OP_REPLACE   = 3,
1360   D3D11_STENCIL_OP_INCR_SAT   = 4,
1361   D3D11_STENCIL_OP_DECR_SAT   = 5,
1362   D3D11_STENCIL_OP_INVERT   = 6,
1363   D3D11_STENCIL_OP_INCR   = 7,
1364   D3D11_STENCIL_OP_DECR   = 8
1365    }    D3D11_STENCIL_OP;
1366
1367typedef struct D3D11_DEPTH_STENCILOP_DESC
1368    {
1369    D3D11_STENCIL_OP StencilFailOp;
1370    D3D11_STENCIL_OP StencilDepthFailOp;
1371    D3D11_STENCIL_OP StencilPassOp;
1372    D3D11_COMPARISON_FUNC StencilFunc;
1373    }    D3D11_DEPTH_STENCILOP_DESC;
1374
1375typedef struct D3D11_DEPTH_STENCIL_DESC
1376    {
1377    BOOL DepthEnable;
1378    D3D11_DEPTH_WRITE_MASK DepthWriteMask;
1379    D3D11_COMPARISON_FUNC DepthFunc;
1380    BOOL StencilEnable;
1381    UINT8 StencilReadMask;
1382    UINT8 StencilWriteMask;
1383    D3D11_DEPTH_STENCILOP_DESC FrontFace;
1384    D3D11_DEPTH_STENCILOP_DESC BackFace;
1385    }    D3D11_DEPTH_STENCIL_DESC;
1386
1387#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
1388}
1389struct CD3D11_DEPTH_STENCIL_DESC : public D3D11_DEPTH_STENCIL_DESC
1390{
1391    CD3D11_DEPTH_STENCIL_DESC()
1392    {}
1393    explicit CD3D11_DEPTH_STENCIL_DESC( const D3D11_DEPTH_STENCIL_DESC& o ) :
1394        D3D11_DEPTH_STENCIL_DESC( o )
1395    {}
1396    explicit CD3D11_DEPTH_STENCIL_DESC( CD3D11_DEFAULT )
1397    {
1398        DepthEnable = TRUE;
1399        DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;
1400        DepthFunc = D3D11_COMPARISON_LESS;
1401        StencilEnable = FALSE;
1402        StencilReadMask = D3D11_DEFAULT_STENCIL_READ_MASK;
1403        StencilWriteMask = D3D11_DEFAULT_STENCIL_WRITE_MASK;
1404        const D3D11_DEPTH_STENCILOP_DESC defaultStencilOp =
1405        { D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_COMPARISON_ALWAYS };
1406        FrontFace = defaultStencilOp;
1407        BackFace = defaultStencilOp;
1408    }
1409    explicit CD3D11_DEPTH_STENCIL_DESC(
1410        BOOL depthEnable,
1411        D3D11_DEPTH_WRITE_MASK depthWriteMask,
1412        D3D11_COMPARISON_FUNC depthFunc,
1413        BOOL stencilEnable,
1414        UINT8 stencilReadMask,
1415        UINT8 stencilWriteMask,
1416        D3D11_STENCIL_OP frontStencilFailOp,
1417        D3D11_STENCIL_OP frontStencilDepthFailOp,
1418        D3D11_STENCIL_OP frontStencilPassOp,
1419        D3D11_COMPARISON_FUNC frontStencilFunc,
1420        D3D11_STENCIL_OP backStencilFailOp,
1421        D3D11_STENCIL_OP backStencilDepthFailOp,
1422        D3D11_STENCIL_OP backStencilPassOp,
1423        D3D11_COMPARISON_FUNC backStencilFunc )
1424    {
1425        DepthEnable = depthEnable;
1426        DepthWriteMask = depthWriteMask;
1427        DepthFunc = depthFunc;
1428        StencilEnable = stencilEnable;
1429        StencilReadMask = stencilReadMask;
1430        StencilWriteMask = stencilWriteMask;
1431        FrontFace.StencilFailOp = frontStencilFailOp;
1432        FrontFace.StencilDepthFailOp = frontStencilDepthFailOp;
1433        FrontFace.StencilPassOp = frontStencilPassOp;
1434        FrontFace.StencilFunc = frontStencilFunc;
1435        BackFace.StencilFailOp = backStencilFailOp;
1436        BackFace.StencilDepthFailOp = backStencilDepthFailOp;
1437        BackFace.StencilPassOp = backStencilPassOp;
1438        BackFace.StencilFunc = backStencilFunc;
1439    }
1440    ~CD3D11_DEPTH_STENCIL_DESC() {}
1441    operator const D3D11_DEPTH_STENCIL_DESC&() const { return *this; }
1442};
1443extern "C"{
1444#endif
1445
1446
1447extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0001_v0_0_c_ifspec;
1448extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0001_v0_0_s_ifspec;
1449
1450#ifndef __ID3D11DepthStencilState_INTERFACE_DEFINED__
1451#define __ID3D11DepthStencilState_INTERFACE_DEFINED__
1452
1453/* interface ID3D11DepthStencilState */
1454/* [unique][local][object][uuid] */
1455
1456
1457EXTERN_C const IID IID_ID3D11DepthStencilState;
1458
1459#if defined(__cplusplus) && !defined(CINTERFACE)
1460   
1461    MIDL_INTERFACE("03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1")
1462    ID3D11DepthStencilState : public ID3D11DeviceChild
1463    {
1464    public:
1465        virtual void STDMETHODCALLTYPE GetDesc(
1466            /* [annotation] */
1467            __out  D3D11_DEPTH_STENCIL_DESC *pDesc) = 0;
1468       
1469    };
1470   
1471#else    /* C style interface */
1472
1473    typedef struct ID3D11DepthStencilStateVtbl
1474    {
1475        BEGIN_INTERFACE
1476       
1477        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1478            ID3D11DepthStencilState * This,
1479            /* [in] */ REFIID riid,
1480            /* [annotation][iid_is][out] */
1481            __RPC__deref_out  void **ppvObject);
1482       
1483        ULONG ( STDMETHODCALLTYPE *AddRef )(
1484            ID3D11DepthStencilState * This);
1485       
1486        ULONG ( STDMETHODCALLTYPE *Release )(
1487            ID3D11DepthStencilState * This);
1488       
1489        void ( STDMETHODCALLTYPE *GetDevice )(
1490            ID3D11DepthStencilState * This,
1491            /* [annotation] */
1492            __out  ID3D11Device **ppDevice);
1493       
1494        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1495            ID3D11DepthStencilState * This,
1496            /* [annotation] */
1497            __in  REFGUID guid,
1498            /* [annotation] */
1499            __inout  UINT *pDataSize,
1500            /* [annotation] */
1501            __out_bcount_opt( *pDataSize )  void *pData);
1502       
1503        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1504            ID3D11DepthStencilState * This,
1505            /* [annotation] */
1506            __in  REFGUID guid,
1507            /* [annotation] */
1508            __in  UINT DataSize,
1509            /* [annotation] */
1510            __in_bcount_opt( DataSize )  const void *pData);
1511       
1512        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1513            ID3D11DepthStencilState * This,
1514            /* [annotation] */
1515            __in  REFGUID guid,
1516            /* [annotation] */
1517            __in_opt  const IUnknown *pData);
1518       
1519        void ( STDMETHODCALLTYPE *GetDesc )(
1520            ID3D11DepthStencilState * This,
1521            /* [annotation] */
1522            __out  D3D11_DEPTH_STENCIL_DESC *pDesc);
1523       
1524        END_INTERFACE
1525    } ID3D11DepthStencilStateVtbl;
1526
1527    interface ID3D11DepthStencilState
1528    {
1529        CONST_VTBL struct ID3D11DepthStencilStateVtbl *lpVtbl;
1530    };
1531
1532   
1533
1534#ifdef COBJMACROS
1535
1536
1537#define ID3D11DepthStencilState_QueryInterface(This,riid,ppvObject)   \
1538    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1539
1540#define ID3D11DepthStencilState_AddRef(This)   \
1541    ( (This)->lpVtbl -> AddRef(This) )
1542
1543#define ID3D11DepthStencilState_Release(This)   \
1544    ( (This)->lpVtbl -> Release(This) )
1545
1546
1547#define ID3D11DepthStencilState_GetDevice(This,ppDevice)   \
1548    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1549
1550#define ID3D11DepthStencilState_GetPrivateData(This,guid,pDataSize,pData)   \
1551    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1552
1553#define ID3D11DepthStencilState_SetPrivateData(This,guid,DataSize,pData)   \
1554    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1555
1556#define ID3D11DepthStencilState_SetPrivateDataInterface(This,guid,pData)   \
1557    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1558
1559
1560#define ID3D11DepthStencilState_GetDesc(This,pDesc)   \
1561    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1562
1563#endif /* COBJMACROS */
1564
1565
1566#endif    /* C style interface */
1567
1568
1569
1570
1571#endif    /* __ID3D11DepthStencilState_INTERFACE_DEFINED__ */
1572
1573
1574/* interface __MIDL_itf_d3d11_0000_0002 */
1575/* [local] */
1576
1577typedef
1578enum D3D11_BLEND
1579    {   D3D11_BLEND_ZERO   = 1,
1580   D3D11_BLEND_ONE   = 2,
1581   D3D11_BLEND_SRC_COLOR   = 3,
1582   D3D11_BLEND_INV_SRC_COLOR   = 4,
1583   D3D11_BLEND_SRC_ALPHA   = 5,
1584   D3D11_BLEND_INV_SRC_ALPHA   = 6,
1585   D3D11_BLEND_DEST_ALPHA   = 7,
1586   D3D11_BLEND_INV_DEST_ALPHA   = 8,
1587   D3D11_BLEND_DEST_COLOR   = 9,
1588   D3D11_BLEND_INV_DEST_COLOR   = 10,
1589   D3D11_BLEND_SRC_ALPHA_SAT   = 11,
1590   D3D11_BLEND_BLEND_FACTOR   = 14,
1591   D3D11_BLEND_INV_BLEND_FACTOR   = 15,
1592   D3D11_BLEND_SRC1_COLOR   = 16,
1593   D3D11_BLEND_INV_SRC1_COLOR   = 17,
1594   D3D11_BLEND_SRC1_ALPHA   = 18,
1595   D3D11_BLEND_INV_SRC1_ALPHA   = 19
1596    }    D3D11_BLEND;
1597
1598typedef
1599enum D3D11_BLEND_OP
1600    {   D3D11_BLEND_OP_ADD   = 1,
1601   D3D11_BLEND_OP_SUBTRACT   = 2,
1602   D3D11_BLEND_OP_REV_SUBTRACT   = 3,
1603   D3D11_BLEND_OP_MIN   = 4,
1604   D3D11_BLEND_OP_MAX   = 5
1605    }    D3D11_BLEND_OP;
1606
1607typedef
1608enum D3D11_COLOR_WRITE_ENABLE
1609    {   D3D11_COLOR_WRITE_ENABLE_RED   = 1,
1610   D3D11_COLOR_WRITE_ENABLE_GREEN   = 2,
1611   D3D11_COLOR_WRITE_ENABLE_BLUE   = 4,
1612   D3D11_COLOR_WRITE_ENABLE_ALPHA   = 8,
1613   D3D11_COLOR_WRITE_ENABLE_ALL   = ( ( ( D3D11_COLOR_WRITE_ENABLE_RED | D3D11_COLOR_WRITE_ENABLE_GREEN )  | D3D11_COLOR_WRITE_ENABLE_BLUE )  | D3D11_COLOR_WRITE_ENABLE_ALPHA )
1614    }    D3D11_COLOR_WRITE_ENABLE;
1615
1616typedef struct D3D11_RENDER_TARGET_BLEND_DESC
1617    {
1618    BOOL BlendEnable;
1619    D3D11_BLEND SrcBlend;
1620    D3D11_BLEND DestBlend;
1621    D3D11_BLEND_OP BlendOp;
1622    D3D11_BLEND SrcBlendAlpha;
1623    D3D11_BLEND DestBlendAlpha;
1624    D3D11_BLEND_OP BlendOpAlpha;
1625    UINT8 RenderTargetWriteMask;
1626    }    D3D11_RENDER_TARGET_BLEND_DESC;
1627
1628typedef struct D3D11_BLEND_DESC
1629    {
1630    BOOL AlphaToCoverageEnable;
1631    BOOL IndependentBlendEnable;
1632    D3D11_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ];
1633    }    D3D11_BLEND_DESC;
1634
1635/* Note, the array size for RenderTarget[] above is D3D11_SIMULTANEOUS_RENDERTARGET_COUNT.
1636   IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */
1637#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
1638}
1639struct CD3D11_BLEND_DESC : public D3D11_BLEND_DESC
1640{
1641    CD3D11_BLEND_DESC()
1642    {}
1643    explicit CD3D11_BLEND_DESC( const D3D11_BLEND_DESC& o ) :
1644        D3D11_BLEND_DESC( o )
1645    {}
1646    explicit CD3D11_BLEND_DESC( CD3D11_DEFAULT )
1647    {
1648        AlphaToCoverageEnable = FALSE;
1649        IndependentBlendEnable = FALSE;
1650        const D3D11_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc =
1651        {
1652            FALSE,
1653            D3D11_BLEND_ONE, D3D11_BLEND_ZERO, D3D11_BLEND_OP_ADD,
1654            D3D11_BLEND_ONE, D3D11_BLEND_ZERO, D3D11_BLEND_OP_ADD,
1655            D3D11_COLOR_WRITE_ENABLE_ALL,
1656        };
1657        for (UINT i = 0; i < D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i)
1658            RenderTarget[ i ] = defaultRenderTargetBlendDesc;
1659    }
1660    ~CD3D11_BLEND_DESC() {}
1661    operator const D3D11_BLEND_DESC&() const { return *this; }
1662};
1663extern "C"{
1664#endif
1665
1666
1667extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0002_v0_0_c_ifspec;
1668extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0002_v0_0_s_ifspec;
1669
1670#ifndef __ID3D11BlendState_INTERFACE_DEFINED__
1671#define __ID3D11BlendState_INTERFACE_DEFINED__
1672
1673/* interface ID3D11BlendState */
1674/* [unique][local][object][uuid] */
1675
1676
1677EXTERN_C const IID IID_ID3D11BlendState;
1678
1679#if defined(__cplusplus) && !defined(CINTERFACE)
1680   
1681    MIDL_INTERFACE("75b68faa-347d-4159-8f45-a0640f01cd9a")
1682    ID3D11BlendState : public ID3D11DeviceChild
1683    {
1684    public:
1685        virtual void STDMETHODCALLTYPE GetDesc(
1686            /* [annotation] */
1687            __out  D3D11_BLEND_DESC *pDesc) = 0;
1688       
1689    };
1690   
1691#else    /* C style interface */
1692
1693    typedef struct ID3D11BlendStateVtbl
1694    {
1695        BEGIN_INTERFACE
1696       
1697        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1698            ID3D11BlendState * This,
1699            /* [in] */ REFIID riid,
1700            /* [annotation][iid_is][out] */
1701            __RPC__deref_out  void **ppvObject);
1702       
1703        ULONG ( STDMETHODCALLTYPE *AddRef )(
1704            ID3D11BlendState * This);
1705       
1706        ULONG ( STDMETHODCALLTYPE *Release )(
1707            ID3D11BlendState * This);
1708       
1709        void ( STDMETHODCALLTYPE *GetDevice )(
1710            ID3D11BlendState * This,
1711            /* [annotation] */
1712            __out  ID3D11Device **ppDevice);
1713       
1714        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1715            ID3D11BlendState * This,
1716            /* [annotation] */
1717            __in  REFGUID guid,
1718            /* [annotation] */
1719            __inout  UINT *pDataSize,
1720            /* [annotation] */
1721            __out_bcount_opt( *pDataSize )  void *pData);
1722       
1723        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1724            ID3D11BlendState * This,
1725            /* [annotation] */
1726            __in  REFGUID guid,
1727            /* [annotation] */
1728            __in  UINT DataSize,
1729            /* [annotation] */
1730            __in_bcount_opt( DataSize )  const void *pData);
1731       
1732        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1733            ID3D11BlendState * This,
1734            /* [annotation] */
1735            __in  REFGUID guid,
1736            /* [annotation] */
1737            __in_opt  const IUnknown *pData);
1738       
1739        void ( STDMETHODCALLTYPE *GetDesc )(
1740            ID3D11BlendState * This,
1741            /* [annotation] */
1742            __out  D3D11_BLEND_DESC *pDesc);
1743       
1744        END_INTERFACE
1745    } ID3D11BlendStateVtbl;
1746
1747    interface ID3D11BlendState
1748    {
1749        CONST_VTBL struct ID3D11BlendStateVtbl *lpVtbl;
1750    };
1751
1752   
1753
1754#ifdef COBJMACROS
1755
1756
1757#define ID3D11BlendState_QueryInterface(This,riid,ppvObject)   \
1758    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1759
1760#define ID3D11BlendState_AddRef(This)   \
1761    ( (This)->lpVtbl -> AddRef(This) )
1762
1763#define ID3D11BlendState_Release(This)   \
1764    ( (This)->lpVtbl -> Release(This) )
1765
1766
1767#define ID3D11BlendState_GetDevice(This,ppDevice)   \
1768    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1769
1770#define ID3D11BlendState_GetPrivateData(This,guid,pDataSize,pData)   \
1771    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1772
1773#define ID3D11BlendState_SetPrivateData(This,guid,DataSize,pData)   \
1774    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1775
1776#define ID3D11BlendState_SetPrivateDataInterface(This,guid,pData)   \
1777    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1778
1779
1780#define ID3D11BlendState_GetDesc(This,pDesc)   \
1781    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1782
1783#endif /* COBJMACROS */
1784
1785
1786#endif    /* C style interface */
1787
1788
1789
1790
1791#endif    /* __ID3D11BlendState_INTERFACE_DEFINED__ */
1792
1793
1794/* interface __MIDL_itf_d3d11_0000_0003 */
1795/* [local] */
1796
1797typedef struct D3D11_RASTERIZER_DESC
1798    {
1799    D3D11_FILL_MODE FillMode;
1800    D3D11_CULL_MODE CullMode;
1801    BOOL FrontCounterClockwise;
1802    INT DepthBias;
1803    FLOAT DepthBiasClamp;
1804    FLOAT SlopeScaledDepthBias;
1805    BOOL DepthClipEnable;
1806    BOOL ScissorEnable;
1807    BOOL MultisampleEnable;
1808    BOOL AntialiasedLineEnable;
1809    }    D3D11_RASTERIZER_DESC;
1810
1811#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
1812}
1813struct CD3D11_RASTERIZER_DESC : public D3D11_RASTERIZER_DESC
1814{
1815    CD3D11_RASTERIZER_DESC()
1816    {}
1817    explicit CD3D11_RASTERIZER_DESC( const D3D11_RASTERIZER_DESC& o ) :
1818        D3D11_RASTERIZER_DESC( o )
1819    {}
1820    explicit CD3D11_RASTERIZER_DESC( CD3D11_DEFAULT )
1821    {
1822        FillMode = D3D11_FILL_SOLID;
1823        CullMode = D3D11_CULL_BACK;
1824        FrontCounterClockwise = FALSE;
1825        DepthBias = D3D11_DEFAULT_DEPTH_BIAS;
1826        DepthBiasClamp = D3D11_DEFAULT_DEPTH_BIAS_CLAMP;
1827        SlopeScaledDepthBias = D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS;
1828        DepthClipEnable = TRUE;
1829        ScissorEnable = FALSE;
1830        MultisampleEnable = FALSE;
1831        AntialiasedLineEnable = FALSE;
1832    }
1833    explicit CD3D11_RASTERIZER_DESC(
1834        D3D11_FILL_MODE fillMode,
1835        D3D11_CULL_MODE cullMode,
1836        BOOL frontCounterClockwise,
1837        INT depthBias,
1838        FLOAT depthBiasClamp,
1839        FLOAT slopeScaledDepthBias,
1840        BOOL depthClipEnable,
1841        BOOL scissorEnable,
1842        BOOL multisampleEnable,
1843        BOOL antialiasedLineEnable )
1844    {
1845        FillMode = fillMode;
1846        CullMode = cullMode;
1847        FrontCounterClockwise = frontCounterClockwise;
1848        DepthBias = depthBias;
1849        DepthBiasClamp = depthBiasClamp;
1850        SlopeScaledDepthBias = slopeScaledDepthBias;
1851        DepthClipEnable = depthClipEnable;
1852        ScissorEnable = scissorEnable;
1853        MultisampleEnable = multisampleEnable;
1854        AntialiasedLineEnable = antialiasedLineEnable;
1855    }
1856    ~CD3D11_RASTERIZER_DESC() {}
1857    operator const D3D11_RASTERIZER_DESC&() const { return *this; }
1858};
1859extern "C"{
1860#endif
1861
1862
1863extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0003_v0_0_c_ifspec;
1864extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0003_v0_0_s_ifspec;
1865
1866#ifndef __ID3D11RasterizerState_INTERFACE_DEFINED__
1867#define __ID3D11RasterizerState_INTERFACE_DEFINED__
1868
1869/* interface ID3D11RasterizerState */
1870/* [unique][local][object][uuid] */
1871
1872
1873EXTERN_C const IID IID_ID3D11RasterizerState;
1874
1875#if defined(__cplusplus) && !defined(CINTERFACE)
1876   
1877    MIDL_INTERFACE("9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7")
1878    ID3D11RasterizerState : public ID3D11DeviceChild
1879    {
1880    public:
1881        virtual void STDMETHODCALLTYPE GetDesc(
1882            /* [annotation] */
1883            __out  D3D11_RASTERIZER_DESC *pDesc) = 0;
1884       
1885    };
1886   
1887#else    /* C style interface */
1888
1889    typedef struct ID3D11RasterizerStateVtbl
1890    {
1891        BEGIN_INTERFACE
1892       
1893        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1894            ID3D11RasterizerState * This,
1895            /* [in] */ REFIID riid,
1896            /* [annotation][iid_is][out] */
1897            __RPC__deref_out  void **ppvObject);
1898       
1899        ULONG ( STDMETHODCALLTYPE *AddRef )(
1900            ID3D11RasterizerState * This);
1901       
1902        ULONG ( STDMETHODCALLTYPE *Release )(
1903            ID3D11RasterizerState * This);
1904       
1905        void ( STDMETHODCALLTYPE *GetDevice )(
1906            ID3D11RasterizerState * This,
1907            /* [annotation] */
1908            __out  ID3D11Device **ppDevice);
1909       
1910        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1911            ID3D11RasterizerState * This,
1912            /* [annotation] */
1913            __in  REFGUID guid,
1914            /* [annotation] */
1915            __inout  UINT *pDataSize,
1916            /* [annotation] */
1917            __out_bcount_opt( *pDataSize )  void *pData);
1918       
1919        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1920            ID3D11RasterizerState * This,
1921            /* [annotation] */
1922            __in  REFGUID guid,
1923            /* [annotation] */
1924            __in  UINT DataSize,
1925            /* [annotation] */
1926            __in_bcount_opt( DataSize )  const void *pData);
1927       
1928        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1929            ID3D11RasterizerState * This,
1930            /* [annotation] */
1931            __in  REFGUID guid,
1932            /* [annotation] */
1933            __in_opt  const IUnknown *pData);
1934       
1935        void ( STDMETHODCALLTYPE *GetDesc )(
1936            ID3D11RasterizerState * This,
1937            /* [annotation] */
1938            __out  D3D11_RASTERIZER_DESC *pDesc);
1939       
1940        END_INTERFACE
1941    } ID3D11RasterizerStateVtbl;
1942
1943    interface ID3D11RasterizerState
1944    {
1945        CONST_VTBL struct ID3D11RasterizerStateVtbl *lpVtbl;
1946    };
1947
1948   
1949
1950#ifdef COBJMACROS
1951
1952
1953#define ID3D11RasterizerState_QueryInterface(This,riid,ppvObject)   \
1954    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1955
1956#define ID3D11RasterizerState_AddRef(This)   \
1957    ( (This)->lpVtbl -> AddRef(This) )
1958
1959#define ID3D11RasterizerState_Release(This)   \
1960    ( (This)->lpVtbl -> Release(This) )
1961
1962
1963#define ID3D11RasterizerState_GetDevice(This,ppDevice)   \
1964    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1965
1966#define ID3D11RasterizerState_GetPrivateData(This,guid,pDataSize,pData)   \
1967    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1968
1969#define ID3D11RasterizerState_SetPrivateData(This,guid,DataSize,pData)   \
1970    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1971
1972#define ID3D11RasterizerState_SetPrivateDataInterface(This,guid,pData)   \
1973    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1974
1975
1976#define ID3D11RasterizerState_GetDesc(This,pDesc)   \
1977    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1978
1979#endif /* COBJMACROS */
1980
1981
1982#endif    /* C style interface */
1983
1984
1985
1986
1987#endif    /* __ID3D11RasterizerState_INTERFACE_DEFINED__ */
1988
1989
1990/* interface __MIDL_itf_d3d11_0000_0004 */
1991/* [local] */
1992
1993#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
1994}
1995inline UINT D3D11CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT MipLevels )
1996{ return MipSlice + ArraySlice * MipLevels; }
1997extern "C"{
1998#endif
1999typedef struct D3D11_SUBRESOURCE_DATA
2000    {
2001    const void *pSysMem;
2002    UINT SysMemPitch;
2003    UINT SysMemSlicePitch;
2004    }    D3D11_SUBRESOURCE_DATA;
2005
2006typedef struct D3D11_MAPPED_SUBRESOURCE
2007    {
2008    void *pData;
2009    UINT RowPitch;
2010    UINT DepthPitch;
2011    }    D3D11_MAPPED_SUBRESOURCE;
2012
2013
2014
2015extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0004_v0_0_c_ifspec;
2016extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0004_v0_0_s_ifspec;
2017
2018#ifndef __ID3D11Resource_INTERFACE_DEFINED__
2019#define __ID3D11Resource_INTERFACE_DEFINED__
2020
2021/* interface ID3D11Resource */
2022/* [unique][local][object][uuid] */
2023
2024
2025EXTERN_C const IID IID_ID3D11Resource;
2026
2027#if defined(__cplusplus) && !defined(CINTERFACE)
2028   
2029    MIDL_INTERFACE("dc8e63f3-d12b-4952-b47b-5e45026a862d")
2030    ID3D11Resource : public ID3D11DeviceChild
2031    {
2032    public:
2033        virtual void STDMETHODCALLTYPE GetType(
2034            /* [annotation] */
2035            __out  D3D11_RESOURCE_DIMENSION *pResourceDimension) = 0;
2036       
2037        virtual void STDMETHODCALLTYPE SetEvictionPriority(
2038            /* [annotation] */
2039            __in  UINT EvictionPriority) = 0;
2040       
2041        virtual UINT STDMETHODCALLTYPE GetEvictionPriority( void) = 0;
2042       
2043    };
2044   
2045#else    /* C style interface */
2046
2047    typedef struct ID3D11ResourceVtbl
2048    {
2049        BEGIN_INTERFACE
2050       
2051        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2052            ID3D11Resource * This,
2053            /* [in] */ REFIID riid,
2054            /* [annotation][iid_is][out] */
2055            __RPC__deref_out  void **ppvObject);
2056       
2057        ULONG ( STDMETHODCALLTYPE *AddRef )(
2058            ID3D11Resource * This);
2059       
2060        ULONG ( STDMETHODCALLTYPE *Release )(
2061            ID3D11Resource * This);
2062       
2063        void ( STDMETHODCALLTYPE *GetDevice )(
2064            ID3D11Resource * This,
2065            /* [annotation] */
2066            __out  ID3D11Device **ppDevice);
2067       
2068        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2069            ID3D11Resource * This,
2070            /* [annotation] */
2071            __in  REFGUID guid,
2072            /* [annotation] */
2073            __inout  UINT *pDataSize,
2074            /* [annotation] */
2075            __out_bcount_opt( *pDataSize )  void *pData);
2076       
2077        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2078            ID3D11Resource * This,
2079            /* [annotation] */
2080            __in  REFGUID guid,
2081            /* [annotation] */
2082            __in  UINT DataSize,
2083            /* [annotation] */
2084            __in_bcount_opt( DataSize )  const void *pData);
2085       
2086        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2087            ID3D11Resource * This,
2088            /* [annotation] */
2089            __in  REFGUID guid,
2090            /* [annotation] */
2091            __in_opt  const IUnknown *pData);
2092       
2093        void ( STDMETHODCALLTYPE *GetType )(
2094            ID3D11Resource * This,
2095            /* [annotation] */
2096            __out  D3D11_RESOURCE_DIMENSION *pResourceDimension);
2097       
2098        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
2099            ID3D11Resource * This,
2100            /* [annotation] */
2101            __in  UINT EvictionPriority);
2102       
2103        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
2104            ID3D11Resource * This);
2105       
2106        END_INTERFACE
2107    } ID3D11ResourceVtbl;
2108
2109    interface ID3D11Resource
2110    {
2111        CONST_VTBL struct ID3D11ResourceVtbl *lpVtbl;
2112    };
2113
2114   
2115
2116#ifdef COBJMACROS
2117
2118
2119#define ID3D11Resource_QueryInterface(This,riid,ppvObject)   \
2120    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2121
2122#define ID3D11Resource_AddRef(This)   \
2123    ( (This)->lpVtbl -> AddRef(This) )
2124
2125#define ID3D11Resource_Release(This)   \
2126    ( (This)->lpVtbl -> Release(This) )
2127
2128
2129#define ID3D11Resource_GetDevice(This,ppDevice)   \
2130    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2131
2132#define ID3D11Resource_GetPrivateData(This,guid,pDataSize,pData)   \
2133    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2134
2135#define ID3D11Resource_SetPrivateData(This,guid,DataSize,pData)   \
2136    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2137
2138#define ID3D11Resource_SetPrivateDataInterface(This,guid,pData)   \
2139    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2140
2141
2142#define ID3D11Resource_GetType(This,pResourceDimension)   \
2143    ( (This)->lpVtbl -> GetType(This,pResourceDimension) )
2144
2145#define ID3D11Resource_SetEvictionPriority(This,EvictionPriority)   \
2146    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2147
2148#define ID3D11Resource_GetEvictionPriority(This)   \
2149    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2150
2151#endif /* COBJMACROS */
2152
2153
2154#endif    /* C style interface */
2155
2156
2157
2158
2159#endif    /* __ID3D11Resource_INTERFACE_DEFINED__ */
2160
2161
2162/* interface __MIDL_itf_d3d11_0000_0005 */
2163/* [local] */
2164
2165typedef struct D3D11_BUFFER_DESC
2166    {
2167    UINT ByteWidth;
2168    D3D11_USAGE Usage;
2169    UINT BindFlags;
2170    UINT CPUAccessFlags;
2171    UINT MiscFlags;
2172    UINT StructureByteStride;
2173    }    D3D11_BUFFER_DESC;
2174
2175#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
2176}
2177struct CD3D11_BUFFER_DESC : public D3D11_BUFFER_DESC
2178{
2179    CD3D11_BUFFER_DESC()
2180    {}
2181    explicit CD3D11_BUFFER_DESC( const D3D11_BUFFER_DESC& o ) :
2182        D3D11_BUFFER_DESC( o )
2183    {}
2184    explicit CD3D11_BUFFER_DESC(
2185        UINT byteWidth,
2186        UINT bindFlags,
2187        D3D11_USAGE usage = D3D11_USAGE_DEFAULT,
2188        UINT cpuaccessFlags = 0,
2189        UINT miscFlags = 0,
2190        UINT structureByteStride = 0 )
2191    {
2192        ByteWidth = byteWidth;
2193        Usage = usage;
2194        BindFlags = bindFlags;
2195        CPUAccessFlags = cpuaccessFlags ;
2196        MiscFlags = miscFlags;
2197        StructureByteStride = structureByteStride;
2198    }
2199    ~CD3D11_BUFFER_DESC() {}
2200    operator const D3D11_BUFFER_DESC&() const { return *this; }
2201};
2202extern "C"{
2203#endif
2204
2205
2206extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0005_v0_0_c_ifspec;
2207extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0005_v0_0_s_ifspec;
2208
2209#ifndef __ID3D11Buffer_INTERFACE_DEFINED__
2210#define __ID3D11Buffer_INTERFACE_DEFINED__
2211
2212/* interface ID3D11Buffer */
2213/* [unique][local][object][uuid] */
2214
2215
2216EXTERN_C const IID IID_ID3D11Buffer;
2217
2218#if defined(__cplusplus) && !defined(CINTERFACE)
2219   
2220    MIDL_INTERFACE("48570b85-d1ee-4fcd-a250-eb350722b037")
2221    ID3D11Buffer : public ID3D11Resource
2222    {
2223    public:
2224        virtual void STDMETHODCALLTYPE GetDesc(
2225            /* [annotation] */
2226            __out  D3D11_BUFFER_DESC *pDesc) = 0;
2227       
2228    };
2229   
2230#else    /* C style interface */
2231
2232    typedef struct ID3D11BufferVtbl
2233    {
2234        BEGIN_INTERFACE
2235       
2236        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2237            ID3D11Buffer * This,
2238            /* [in] */ REFIID riid,
2239            /* [annotation][iid_is][out] */
2240            __RPC__deref_out  void **ppvObject);
2241       
2242        ULONG ( STDMETHODCALLTYPE *AddRef )(
2243            ID3D11Buffer * This);
2244       
2245        ULONG ( STDMETHODCALLTYPE *Release )(
2246            ID3D11Buffer * This);
2247       
2248        void ( STDMETHODCALLTYPE *GetDevice )(
2249            ID3D11Buffer * This,
2250            /* [annotation] */
2251            __out  ID3D11Device **ppDevice);
2252       
2253        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2254            ID3D11Buffer * This,
2255            /* [annotation] */
2256            __in  REFGUID guid,
2257            /* [annotation] */
2258            __inout  UINT *pDataSize,
2259            /* [annotation] */
2260            __out_bcount_opt( *pDataSize )  void *pData);
2261       
2262        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2263            ID3D11Buffer * This,
2264            /* [annotation] */
2265            __in  REFGUID guid,
2266            /* [annotation] */
2267            __in  UINT DataSize,
2268            /* [annotation] */
2269            __in_bcount_opt( DataSize )  const void *pData);
2270       
2271        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2272            ID3D11Buffer * This,
2273            /* [annotation] */
2274            __in  REFGUID guid,
2275            /* [annotation] */
2276            __in_opt  const IUnknown *pData);
2277       
2278        void ( STDMETHODCALLTYPE *GetType )(
2279            ID3D11Buffer * This,
2280            /* [annotation] */
2281            __out  D3D11_RESOURCE_DIMENSION *pResourceDimension);
2282       
2283        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
2284            ID3D11Buffer * This,
2285            /* [annotation] */
2286            __in  UINT EvictionPriority);
2287       
2288        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
2289            ID3D11Buffer * This);
2290       
2291        void ( STDMETHODCALLTYPE *GetDesc )(
2292            ID3D11Buffer * This,
2293            /* [annotation] */
2294            __out  D3D11_BUFFER_DESC *pDesc);
2295       
2296        END_INTERFACE
2297    } ID3D11BufferVtbl;
2298
2299    interface ID3D11Buffer
2300    {
2301        CONST_VTBL struct ID3D11BufferVtbl *lpVtbl;
2302    };
2303
2304   
2305
2306#ifdef COBJMACROS
2307
2308
2309#define ID3D11Buffer_QueryInterface(This,riid,ppvObject)   \
2310    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2311
2312#define ID3D11Buffer_AddRef(This)   \
2313    ( (This)->lpVtbl -> AddRef(This) )
2314
2315#define ID3D11Buffer_Release(This)   \
2316    ( (This)->lpVtbl -> Release(This) )
2317
2318
2319#define ID3D11Buffer_GetDevice(This,ppDevice)   \
2320    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2321
2322#define ID3D11Buffer_GetPrivateData(This,guid,pDataSize,pData)   \
2323    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2324
2325#define ID3D11Buffer_SetPrivateData(This,guid,DataSize,pData)   \
2326    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2327
2328#define ID3D11Buffer_SetPrivateDataInterface(This,guid,pData)   \
2329    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2330
2331
2332#define ID3D11Buffer_GetType(This,pResourceDimension)   \
2333    ( (This)->lpVtbl -> GetType(This,pResourceDimension) )
2334
2335#define ID3D11Buffer_SetEvictionPriority(This,EvictionPriority)   \
2336    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2337
2338#define ID3D11Buffer_GetEvictionPriority(This)   \
2339    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2340
2341
2342#define ID3D11Buffer_GetDesc(This,pDesc)   \
2343    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2344
2345#endif /* COBJMACROS */
2346
2347
2348#endif    /* C style interface */
2349
2350
2351
2352
2353#endif    /* __ID3D11Buffer_INTERFACE_DEFINED__ */
2354
2355
2356/* interface __MIDL_itf_d3d11_0000_0006 */
2357/* [local] */
2358
2359typedef struct D3D11_TEXTURE1D_DESC
2360    {
2361    UINT Width;
2362    UINT MipLevels;
2363    UINT ArraySize;
2364    DXGI_FORMAT Format;
2365    D3D11_USAGE Usage;
2366    UINT BindFlags;
2367    UINT CPUAccessFlags;
2368    UINT MiscFlags;
2369    }    D3D11_TEXTURE1D_DESC;
2370
2371#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
2372}
2373struct CD3D11_TEXTURE1D_DESC : public D3D11_TEXTURE1D_DESC
2374{
2375    CD3D11_TEXTURE1D_DESC()
2376    {}
2377    explicit CD3D11_TEXTURE1D_DESC( const D3D11_TEXTURE1D_DESC& o ) :
2378        D3D11_TEXTURE1D_DESC( o )
2379    {}
2380    explicit CD3D11_TEXTURE1D_DESC(
2381        DXGI_FORMAT format,
2382        UINT width,
2383        UINT arraySize = 1,
2384        UINT mipLevels = 0,
2385        UINT bindFlags = D3D11_BIND_SHADER_RESOURCE,
2386        D3D11_USAGE usage = D3D11_USAGE_DEFAULT,
2387        UINT cpuaccessFlags= 0,
2388        UINT miscFlags = 0 )
2389    {
2390        Width = width;
2391        MipLevels = mipLevels;
2392        ArraySize = arraySize;
2393        Format = format;
2394        Usage = usage;
2395        BindFlags = bindFlags;
2396        CPUAccessFlags = cpuaccessFlags;
2397        MiscFlags = miscFlags;
2398    }
2399    ~CD3D11_TEXTURE1D_DESC() {}
2400    operator const D3D11_TEXTURE1D_DESC&() const { return *this; }
2401};
2402extern "C"{
2403#endif
2404
2405
2406extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0006_v0_0_c_ifspec;
2407extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0006_v0_0_s_ifspec;
2408
2409#ifndef __ID3D11Texture1D_INTERFACE_DEFINED__
2410#define __ID3D11Texture1D_INTERFACE_DEFINED__
2411
2412/* interface ID3D11Texture1D */
2413/* [unique][local][object][uuid] */
2414
2415
2416EXTERN_C const IID IID_ID3D11Texture1D;
2417
2418#if defined(__cplusplus) && !defined(CINTERFACE)
2419   
2420    MIDL_INTERFACE("f8fb5c27-c6b3-4f75-a4c8-439af2ef564c")
2421    ID3D11Texture1D : public ID3D11Resource
2422    {
2423    public:
2424        virtual void STDMETHODCALLTYPE GetDesc(
2425            /* [annotation] */
2426            __out  D3D11_TEXTURE1D_DESC *pDesc) = 0;
2427       
2428    };
2429   
2430#else    /* C style interface */
2431
2432    typedef struct ID3D11Texture1DVtbl
2433    {
2434        BEGIN_INTERFACE
2435       
2436        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2437            ID3D11Texture1D * This,
2438            /* [in] */ REFIID riid,
2439            /* [annotation][iid_is][out] */
2440            __RPC__deref_out  void **ppvObject);
2441       
2442        ULONG ( STDMETHODCALLTYPE *AddRef )(
2443            ID3D11Texture1D * This);
2444       
2445        ULONG ( STDMETHODCALLTYPE *Release )(
2446            ID3D11Texture1D * This);
2447       
2448        void ( STDMETHODCALLTYPE *GetDevice )(
2449            ID3D11Texture1D * This,
2450            /* [annotation] */
2451            __out  ID3D11Device **ppDevice);
2452       
2453        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2454            ID3D11Texture1D * This,
2455            /* [annotation] */
2456            __in  REFGUID guid,
2457            /* [annotation] */
2458            __inout  UINT *pDataSize,
2459            /* [annotation] */
2460            __out_bcount_opt( *pDataSize )  void *pData);
2461       
2462        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2463            ID3D11Texture1D * This,
2464            /* [annotation] */
2465            __in  REFGUID guid,
2466            /* [annotation] */
2467            __in  UINT DataSize,
2468            /* [annotation] */
2469            __in_bcount_opt( DataSize )  const void *pData);
2470       
2471        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2472            ID3D11Texture1D * This,
2473            /* [annotation] */
2474            __in  REFGUID guid,
2475            /* [annotation] */
2476            __in_opt  const IUnknown *pData);
2477       
2478        void ( STDMETHODCALLTYPE *GetType )(
2479            ID3D11Texture1D * This,
2480            /* [annotation] */
2481            __out  D3D11_RESOURCE_DIMENSION *pResourceDimension);
2482       
2483        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
2484            ID3D11Texture1D * This,
2485            /* [annotation] */
2486            __in  UINT EvictionPriority);
2487       
2488        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
2489            ID3D11Texture1D * This);
2490       
2491        void ( STDMETHODCALLTYPE *GetDesc )(
2492            ID3D11Texture1D * This,
2493            /* [annotation] */
2494            __out  D3D11_TEXTURE1D_DESC *pDesc);
2495       
2496        END_INTERFACE
2497    } ID3D11Texture1DVtbl;
2498
2499    interface ID3D11Texture1D
2500    {
2501        CONST_VTBL struct ID3D11Texture1DVtbl *lpVtbl;
2502    };
2503
2504   
2505
2506#ifdef COBJMACROS
2507
2508
2509#define ID3D11Texture1D_QueryInterface(This,riid,ppvObject)   \
2510    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2511
2512#define ID3D11Texture1D_AddRef(This)   \
2513    ( (This)->lpVtbl -> AddRef(This) )
2514
2515#define ID3D11Texture1D_Release(This)   \
2516    ( (This)->lpVtbl -> Release(This) )
2517
2518
2519#define ID3D11Texture1D_GetDevice(This,ppDevice)   \
2520    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2521
2522#define ID3D11Texture1D_GetPrivateData(This,guid,pDataSize,pData)   \
2523    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2524
2525#define ID3D11Texture1D_SetPrivateData(This,guid,DataSize,pData)   \
2526    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2527
2528#define ID3D11Texture1D_SetPrivateDataInterface(This,guid,pData)   \
2529    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2530
2531
2532#define ID3D11Texture1D_GetType(This,pResourceDimension)   \
2533    ( (This)->lpVtbl -> GetType(This,pResourceDimension) )
2534
2535#define ID3D11Texture1D_SetEvictionPriority(This,EvictionPriority)   \
2536    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2537
2538#define ID3D11Texture1D_GetEvictionPriority(This)   \
2539    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2540
2541
2542#define ID3D11Texture1D_GetDesc(This,pDesc)   \
2543    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2544
2545#endif /* COBJMACROS */
2546
2547
2548#endif    /* C style interface */
2549
2550
2551
2552
2553#endif    /* __ID3D11Texture1D_INTERFACE_DEFINED__ */
2554
2555
2556/* interface __MIDL_itf_d3d11_0000_0007 */
2557/* [local] */
2558
2559typedef struct D3D11_TEXTURE2D_DESC
2560    {
2561    UINT Width;
2562    UINT Height;
2563    UINT MipLevels;
2564    UINT ArraySize;
2565    DXGI_FORMAT Format;
2566    DXGI_SAMPLE_DESC SampleDesc;
2567    D3D11_USAGE Usage;
2568    UINT BindFlags;
2569    UINT CPUAccessFlags;
2570    UINT MiscFlags;
2571    }    D3D11_TEXTURE2D_DESC;
2572
2573#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
2574}
2575struct CD3D11_TEXTURE2D_DESC : public D3D11_TEXTURE2D_DESC
2576{
2577    CD3D11_TEXTURE2D_DESC()
2578    {}
2579    explicit CD3D11_TEXTURE2D_DESC( const D3D11_TEXTURE2D_DESC& o ) :
2580        D3D11_TEXTURE2D_DESC( o )
2581    {}
2582    explicit CD3D11_TEXTURE2D_DESC(
2583        DXGI_FORMAT format,
2584        UINT width,
2585        UINT height,
2586        UINT arraySize = 1,
2587        UINT mipLevels = 0,
2588        UINT bindFlags = D3D11_BIND_SHADER_RESOURCE,
2589        D3D11_USAGE usage = D3D11_USAGE_DEFAULT,
2590        UINT cpuaccessFlags = 0,
2591        UINT sampleCount = 1,
2592        UINT sampleQuality = 0,
2593        UINT miscFlags = 0 )
2594    {
2595        Width = width;
2596        Height = height;
2597        MipLevels = mipLevels;
2598        ArraySize = arraySize;
2599        Format = format;
2600        SampleDesc.Count = sampleCount;
2601        SampleDesc.Quality = sampleQuality;
2602        Usage = usage;
2603        BindFlags = bindFlags;
2604        CPUAccessFlags = cpuaccessFlags;
2605        MiscFlags = miscFlags;
2606    }
2607    ~CD3D11_TEXTURE2D_DESC() {}
2608    operator const D3D11_TEXTURE2D_DESC&() const { return *this; }
2609};
2610extern "C"{
2611#endif
2612
2613
2614extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0007_v0_0_c_ifspec;
2615extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0007_v0_0_s_ifspec;
2616
2617#ifndef __ID3D11Texture2D_INTERFACE_DEFINED__
2618#define __ID3D11Texture2D_INTERFACE_DEFINED__
2619
2620/* interface ID3D11Texture2D */
2621/* [unique][local][object][uuid] */
2622
2623
2624EXTERN_C const IID IID_ID3D11Texture2D;
2625
2626#if defined(__cplusplus) && !defined(CINTERFACE)
2627   
2628    MIDL_INTERFACE("6f15aaf2-d208-4e89-9ab4-489535d34f9c")
2629    ID3D11Texture2D : public ID3D11Resource
2630    {
2631    public:
2632        virtual void STDMETHODCALLTYPE GetDesc(
2633            /* [annotation] */
2634            __out  D3D11_TEXTURE2D_DESC *pDesc) = 0;
2635       
2636    };
2637   
2638#else    /* C style interface */
2639
2640    typedef struct ID3D11Texture2DVtbl
2641    {
2642        BEGIN_INTERFACE
2643       
2644        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2645            ID3D11Texture2D * This,
2646            /* [in] */ REFIID riid,
2647            /* [annotation][iid_is][out] */
2648            __RPC__deref_out  void **ppvObject);
2649       
2650        ULONG ( STDMETHODCALLTYPE *AddRef )(
2651            ID3D11Texture2D * This);
2652       
2653        ULONG ( STDMETHODCALLTYPE *Release )(
2654            ID3D11Texture2D * This);
2655       
2656        void ( STDMETHODCALLTYPE *GetDevice )(
2657            ID3D11Texture2D * This,
2658            /* [annotation] */
2659            __out  ID3D11Device **ppDevice);
2660       
2661        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2662            ID3D11Texture2D * This,
2663            /* [annotation] */
2664            __in  REFGUID guid,
2665            /* [annotation] */
2666            __inout  UINT *pDataSize,
2667            /* [annotation] */
2668            __out_bcount_opt( *pDataSize )  void *pData);
2669       
2670        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2671            ID3D11Texture2D * This,
2672            /* [annotation] */
2673            __in  REFGUID guid,
2674            /* [annotation] */
2675            __in  UINT DataSize,
2676            /* [annotation] */
2677            __in_bcount_opt( DataSize )  const void *pData);
2678       
2679        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2680            ID3D11Texture2D * This,
2681            /* [annotation] */
2682            __in  REFGUID guid,
2683            /* [annotation] */
2684            __in_opt  const IUnknown *pData);
2685       
2686        void ( STDMETHODCALLTYPE *GetType )(
2687            ID3D11Texture2D * This,
2688            /* [annotation] */
2689            __out  D3D11_RESOURCE_DIMENSION *pResourceDimension);
2690       
2691        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
2692            ID3D11Texture2D * This,
2693            /* [annotation] */
2694            __in  UINT EvictionPriority);
2695       
2696        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
2697            ID3D11Texture2D * This);
2698       
2699        void ( STDMETHODCALLTYPE *GetDesc )(
2700            ID3D11Texture2D * This,
2701            /* [annotation] */
2702            __out  D3D11_TEXTURE2D_DESC *pDesc);
2703       
2704        END_INTERFACE
2705    } ID3D11Texture2DVtbl;
2706
2707    interface ID3D11Texture2D
2708    {
2709        CONST_VTBL struct ID3D11Texture2DVtbl *lpVtbl;
2710    };
2711
2712   
2713
2714#ifdef COBJMACROS
2715
2716
2717#define ID3D11Texture2D_QueryInterface(This,riid,ppvObject)   \
2718    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2719
2720#define ID3D11Texture2D_AddRef(This)   \
2721    ( (This)->lpVtbl -> AddRef(This) )
2722
2723#define ID3D11Texture2D_Release(This)   \
2724    ( (This)->lpVtbl -> Release(This) )
2725
2726
2727#define ID3D11Texture2D_GetDevice(This,ppDevice)   \
2728    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2729
2730#define ID3D11Texture2D_GetPrivateData(This,guid,pDataSize,pData)   \
2731    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2732
2733#define ID3D11Texture2D_SetPrivateData(This,guid,DataSize,pData)   \
2734    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2735
2736#define ID3D11Texture2D_SetPrivateDataInterface(This,guid,pData)   \
2737    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2738
2739
2740#define ID3D11Texture2D_GetType(This,pResourceDimension)   \
2741    ( (This)->lpVtbl -> GetType(This,pResourceDimension) )
2742
2743#define ID3D11Texture2D_SetEvictionPriority(This,EvictionPriority)   \
2744    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2745
2746#define ID3D11Texture2D_GetEvictionPriority(This)   \
2747    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2748
2749
2750#define ID3D11Texture2D_GetDesc(This,pDesc)   \
2751    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2752
2753#endif /* COBJMACROS */
2754
2755
2756#endif    /* C style interface */
2757
2758
2759
2760
2761#endif    /* __ID3D11Texture2D_INTERFACE_DEFINED__ */
2762
2763
2764/* interface __MIDL_itf_d3d11_0000_0008 */
2765/* [local] */
2766
2767typedef struct D3D11_TEXTURE3D_DESC
2768    {
2769    UINT Width;
2770    UINT Height;
2771    UINT Depth;
2772    UINT MipLevels;
2773    DXGI_FORMAT Format;
2774    D3D11_USAGE Usage;
2775    UINT BindFlags;
2776    UINT CPUAccessFlags;
2777    UINT MiscFlags;
2778    }    D3D11_TEXTURE3D_DESC;
2779
2780#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
2781}
2782struct CD3D11_TEXTURE3D_DESC : public D3D11_TEXTURE3D_DESC
2783{
2784    CD3D11_TEXTURE3D_DESC()
2785    {}
2786    explicit CD3D11_TEXTURE3D_DESC( const D3D11_TEXTURE3D_DESC& o ) :
2787        D3D11_TEXTURE3D_DESC( o )
2788    {}
2789    explicit CD3D11_TEXTURE3D_DESC(
2790        DXGI_FORMAT format,
2791        UINT width,
2792        UINT height,
2793        UINT depth,
2794        UINT mipLevels = 0,
2795        UINT bindFlags = D3D11_BIND_SHADER_RESOURCE,
2796        D3D11_USAGE usage = D3D11_USAGE_DEFAULT,
2797        UINT cpuaccessFlags = 0,
2798        UINT miscFlags = 0 )
2799    {
2800        Width = width;
2801        Height = height;
2802        Depth = depth;
2803        MipLevels = mipLevels;
2804        Format = format;
2805        Usage = usage;
2806        BindFlags = bindFlags;
2807        CPUAccessFlags = cpuaccessFlags;
2808        MiscFlags = miscFlags;
2809    }
2810    ~CD3D11_TEXTURE3D_DESC() {}
2811    operator const D3D11_TEXTURE3D_DESC&() const { return *this; }
2812};
2813extern "C"{
2814#endif
2815
2816
2817extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0008_v0_0_c_ifspec;
2818extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0008_v0_0_s_ifspec;
2819
2820#ifndef __ID3D11Texture3D_INTERFACE_DEFINED__
2821#define __ID3D11Texture3D_INTERFACE_DEFINED__
2822
2823/* interface ID3D11Texture3D */
2824/* [unique][local][object][uuid] */
2825
2826
2827EXTERN_C const IID IID_ID3D11Texture3D;
2828
2829#if defined(__cplusplus) && !defined(CINTERFACE)
2830   
2831    MIDL_INTERFACE("037e866e-f56d-4357-a8af-9dabbe6e250e")
2832    ID3D11Texture3D : public ID3D11Resource
2833    {
2834    public:
2835        virtual void STDMETHODCALLTYPE GetDesc(
2836            /* [annotation] */
2837            __out  D3D11_TEXTURE3D_DESC *pDesc) = 0;
2838       
2839    };
2840   
2841#else    /* C style interface */
2842
2843    typedef struct ID3D11Texture3DVtbl
2844    {
2845        BEGIN_INTERFACE
2846       
2847        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2848            ID3D11Texture3D * This,
2849            /* [in] */ REFIID riid,
2850            /* [annotation][iid_is][out] */
2851            __RPC__deref_out  void **ppvObject);
2852       
2853        ULONG ( STDMETHODCALLTYPE *AddRef )(
2854            ID3D11Texture3D * This);
2855       
2856        ULONG ( STDMETHODCALLTYPE *Release )(
2857            ID3D11Texture3D * This);
2858       
2859        void ( STDMETHODCALLTYPE *GetDevice )(
2860            ID3D11Texture3D * This,
2861            /* [annotation] */
2862            __out  ID3D11Device **ppDevice);
2863       
2864        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2865            ID3D11Texture3D * This,
2866            /* [annotation] */
2867            __in  REFGUID guid,
2868            /* [annotation] */
2869            __inout  UINT *pDataSize,
2870            /* [annotation] */
2871            __out_bcount_opt( *pDataSize )  void *pData);
2872       
2873        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2874            ID3D11Texture3D * This,
2875            /* [annotation] */
2876            __in  REFGUID guid,
2877            /* [annotation] */
2878            __in  UINT DataSize,
2879            /* [annotation] */
2880            __in_bcount_opt( DataSize )  const void *pData);
2881       
2882        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2883            ID3D11Texture3D * This,
2884            /* [annotation] */
2885            __in  REFGUID guid,
2886            /* [annotation] */
2887            __in_opt  const IUnknown *pData);
2888       
2889        void ( STDMETHODCALLTYPE *GetType )(
2890            ID3D11Texture3D * This,
2891            /* [annotation] */
2892            __out  D3D11_RESOURCE_DIMENSION *pResourceDimension);
2893       
2894        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
2895            ID3D11Texture3D * This,
2896            /* [annotation] */
2897            __in  UINT EvictionPriority);
2898       
2899        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
2900            ID3D11Texture3D * This);
2901       
2902        void ( STDMETHODCALLTYPE *GetDesc )(
2903            ID3D11Texture3D * This,
2904            /* [annotation] */
2905            __out  D3D11_TEXTURE3D_DESC *pDesc);
2906       
2907        END_INTERFACE
2908    } ID3D11Texture3DVtbl;
2909
2910    interface ID3D11Texture3D
2911    {
2912        CONST_VTBL struct ID3D11Texture3DVtbl *lpVtbl;
2913    };
2914
2915   
2916
2917#ifdef COBJMACROS
2918
2919
2920#define ID3D11Texture3D_QueryInterface(This,riid,ppvObject)   \
2921    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2922
2923#define ID3D11Texture3D_AddRef(This)   \
2924    ( (This)->lpVtbl -> AddRef(This) )
2925
2926#define ID3D11Texture3D_Release(This)   \
2927    ( (This)->lpVtbl -> Release(This) )
2928
2929
2930#define ID3D11Texture3D_GetDevice(This,ppDevice)   \
2931    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2932
2933#define ID3D11Texture3D_GetPrivateData(This,guid,pDataSize,pData)   \
2934    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2935
2936#define ID3D11Texture3D_SetPrivateData(This,guid,DataSize,pData)   \
2937    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2938
2939#define ID3D11Texture3D_SetPrivateDataInterface(This,guid,pData)   \
2940    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2941
2942
2943#define ID3D11Texture3D_GetType(This,pResourceDimension)   \
2944    ( (This)->lpVtbl -> GetType(This,pResourceDimension) )
2945
2946#define ID3D11Texture3D_SetEvictionPriority(This,EvictionPriority)   \
2947    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2948
2949#define ID3D11Texture3D_GetEvictionPriority(This)   \
2950    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2951
2952
2953#define ID3D11Texture3D_GetDesc(This,pDesc)   \
2954    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2955
2956#endif /* COBJMACROS */
2957
2958
2959#endif    /* C style interface */
2960
2961
2962
2963
2964#endif    /* __ID3D11Texture3D_INTERFACE_DEFINED__ */
2965
2966
2967/* interface __MIDL_itf_d3d11_0000_0009 */
2968/* [local] */
2969
2970typedef
2971enum D3D11_TEXTURECUBE_FACE
2972    {   D3D11_TEXTURECUBE_FACE_POSITIVE_X   = 0,
2973   D3D11_TEXTURECUBE_FACE_NEGATIVE_X   = 1,
2974   D3D11_TEXTURECUBE_FACE_POSITIVE_Y   = 2,
2975   D3D11_TEXTURECUBE_FACE_NEGATIVE_Y   = 3,
2976   D3D11_TEXTURECUBE_FACE_POSITIVE_Z   = 4,
2977   D3D11_TEXTURECUBE_FACE_NEGATIVE_Z   = 5
2978    }    D3D11_TEXTURECUBE_FACE;
2979
2980
2981
2982extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0009_v0_0_c_ifspec;
2983extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0009_v0_0_s_ifspec;
2984
2985#ifndef __ID3D11View_INTERFACE_DEFINED__
2986#define __ID3D11View_INTERFACE_DEFINED__
2987
2988/* interface ID3D11View */
2989/* [unique][local][object][uuid] */
2990
2991
2992EXTERN_C const IID IID_ID3D11View;
2993
2994#if defined(__cplusplus) && !defined(CINTERFACE)
2995   
2996    MIDL_INTERFACE("839d1216-bb2e-412b-b7f4-a9dbebe08ed1")
2997    ID3D11View : public ID3D11DeviceChild
2998    {
2999    public:
3000        virtual void STDMETHODCALLTYPE GetResource(
3001            /* [annotation] */
3002            __out  ID3D11Resource **ppResource) = 0;
3003       
3004    };
3005   
3006#else    /* C style interface */
3007
3008    typedef struct ID3D11ViewVtbl
3009    {
3010        BEGIN_INTERFACE
3011       
3012        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3013            ID3D11View * This,
3014            /* [in] */ REFIID riid,
3015            /* [annotation][iid_is][out] */
3016            __RPC__deref_out  void **ppvObject);
3017       
3018        ULONG ( STDMETHODCALLTYPE *AddRef )(
3019            ID3D11View * This);
3020       
3021        ULONG ( STDMETHODCALLTYPE *Release )(
3022            ID3D11View * This);
3023       
3024        void ( STDMETHODCALLTYPE *GetDevice )(
3025            ID3D11View * This,
3026            /* [annotation] */
3027            __out  ID3D11Device **ppDevice);
3028       
3029        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3030            ID3D11View * This,
3031            /* [annotation] */
3032            __in  REFGUID guid,
3033            /* [annotation] */
3034            __inout  UINT *pDataSize,
3035            /* [annotation] */
3036            __out_bcount_opt( *pDataSize )  void *pData);
3037       
3038        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3039            ID3D11View * This,
3040            /* [annotation] */
3041            __in  REFGUID guid,
3042            /* [annotation] */
3043            __in  UINT DataSize,
3044            /* [annotation] */
3045            __in_bcount_opt( DataSize )  const void *pData);
3046       
3047        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3048            ID3D11View * This,
3049            /* [annotation] */
3050            __in  REFGUID guid,
3051            /* [annotation] */
3052            __in_opt  const IUnknown *pData);
3053       
3054        void ( STDMETHODCALLTYPE *GetResource )(
3055            ID3D11View * This,
3056            /* [annotation] */
3057            __out  ID3D11Resource **ppResource);
3058       
3059        END_INTERFACE
3060    } ID3D11ViewVtbl;
3061
3062    interface ID3D11View
3063    {
3064        CONST_VTBL struct ID3D11ViewVtbl *lpVtbl;
3065    };
3066
3067   
3068
3069#ifdef COBJMACROS
3070
3071
3072#define ID3D11View_QueryInterface(This,riid,ppvObject)   \
3073    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3074
3075#define ID3D11View_AddRef(This)   \
3076    ( (This)->lpVtbl -> AddRef(This) )
3077
3078#define ID3D11View_Release(This)   \
3079    ( (This)->lpVtbl -> Release(This) )
3080
3081
3082#define ID3D11View_GetDevice(This,ppDevice)   \
3083    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3084
3085#define ID3D11View_GetPrivateData(This,guid,pDataSize,pData)   \
3086    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3087
3088#define ID3D11View_SetPrivateData(This,guid,DataSize,pData)   \
3089    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3090
3091#define ID3D11View_SetPrivateDataInterface(This,guid,pData)   \
3092    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3093
3094
3095#define ID3D11View_GetResource(This,ppResource)   \
3096    ( (This)->lpVtbl -> GetResource(This,ppResource) )
3097
3098#endif /* COBJMACROS */
3099
3100
3101#endif    /* C style interface */
3102
3103
3104
3105
3106#endif    /* __ID3D11View_INTERFACE_DEFINED__ */
3107
3108
3109/* interface __MIDL_itf_d3d11_0000_0010 */
3110/* [local] */
3111
3112typedef struct D3D11_BUFFER_SRV
3113    {
3114    union
3115        {
3116        UINT FirstElement;
3117        UINT ElementOffset;
3118        }    ;
3119    union
3120        {
3121        UINT NumElements;
3122        UINT ElementWidth;
3123        }    ;
3124    }    D3D11_BUFFER_SRV;
3125
3126typedef
3127enum D3D11_BUFFEREX_SRV_FLAG
3128    {   D3D11_BUFFEREX_SRV_FLAG_RAW   = 0x1
3129    }    D3D11_BUFFEREX_SRV_FLAG;
3130
3131typedef struct D3D11_BUFFEREX_SRV
3132    {
3133    UINT FirstElement;
3134    UINT NumElements;
3135    UINT Flags;
3136    }    D3D11_BUFFEREX_SRV;
3137
3138typedef struct D3D11_TEX1D_SRV
3139    {
3140    UINT MostDetailedMip;
3141    UINT MipLevels;
3142    }    D3D11_TEX1D_SRV;
3143
3144typedef struct D3D11_TEX1D_ARRAY_SRV
3145    {
3146    UINT MostDetailedMip;
3147    UINT MipLevels;
3148    UINT FirstArraySlice;
3149    UINT ArraySize;
3150    }    D3D11_TEX1D_ARRAY_SRV;
3151
3152typedef struct D3D11_TEX2D_SRV
3153    {
3154    UINT MostDetailedMip;
3155    UINT MipLevels;
3156    }    D3D11_TEX2D_SRV;
3157
3158typedef struct D3D11_TEX2D_ARRAY_SRV
3159    {
3160    UINT MostDetailedMip;
3161    UINT MipLevels;
3162    UINT FirstArraySlice;
3163    UINT ArraySize;
3164    }    D3D11_TEX2D_ARRAY_SRV;
3165
3166typedef struct D3D11_TEX3D_SRV
3167    {
3168    UINT MostDetailedMip;
3169    UINT MipLevels;
3170    }    D3D11_TEX3D_SRV;
3171
3172typedef struct D3D11_TEXCUBE_SRV
3173    {
3174    UINT MostDetailedMip;
3175    UINT MipLevels;
3176    }    D3D11_TEXCUBE_SRV;
3177
3178typedef struct D3D11_TEXCUBE_ARRAY_SRV
3179    {
3180    UINT MostDetailedMip;
3181    UINT MipLevels;
3182    UINT First2DArrayFace;
3183    UINT NumCubes;
3184    }    D3D11_TEXCUBE_ARRAY_SRV;
3185
3186typedef struct D3D11_TEX2DMS_SRV
3187    {
3188    UINT UnusedField_NothingToDefine;
3189    }    D3D11_TEX2DMS_SRV;
3190
3191typedef struct D3D11_TEX2DMS_ARRAY_SRV
3192    {
3193    UINT FirstArraySlice;
3194    UINT ArraySize;
3195    }    D3D11_TEX2DMS_ARRAY_SRV;
3196
3197typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC
3198    {
3199    DXGI_FORMAT Format;
3200    D3D11_SRV_DIMENSION ViewDimension;
3201    union
3202        {
3203        D3D11_BUFFER_SRV Buffer;
3204        D3D11_TEX1D_SRV Texture1D;
3205        D3D11_TEX1D_ARRAY_SRV Texture1DArray;
3206        D3D11_TEX2D_SRV Texture2D;
3207        D3D11_TEX2D_ARRAY_SRV Texture2DArray;
3208        D3D11_TEX2DMS_SRV Texture2DMS;
3209        D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray;
3210        D3D11_TEX3D_SRV Texture3D;
3211        D3D11_TEXCUBE_SRV TextureCube;
3212        D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray;
3213        D3D11_BUFFEREX_SRV BufferEx;
3214        }    ;
3215    }    D3D11_SHADER_RESOURCE_VIEW_DESC;
3216
3217#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
3218}
3219struct CD3D11_SHADER_RESOURCE_VIEW_DESC : public D3D11_SHADER_RESOURCE_VIEW_DESC
3220{
3221    CD3D11_SHADER_RESOURCE_VIEW_DESC()
3222    {}
3223    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( const D3D11_SHADER_RESOURCE_VIEW_DESC& o ) :
3224        D3D11_SHADER_RESOURCE_VIEW_DESC( o )
3225    {}
3226    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(
3227        D3D11_SRV_DIMENSION viewDimension,
3228        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3229        UINT mostDetailedMip = 0, // FirstElement for BUFFER
3230        UINT mipLevels = -1, // NumElements for BUFFER
3231        UINT firstArraySlice = 0, // First2DArrayFace for TEXTURECUBEARRAY
3232        UINT arraySize = -1, // NumCubes for TEXTURECUBEARRAY
3233        UINT flags = 0 ) // BUFFEREX only
3234    {
3235        Format = format;
3236        ViewDimension = viewDimension;
3237        switch (viewDimension)
3238        {
3239        case D3D11_SRV_DIMENSION_BUFFER:
3240            Buffer.FirstElement = mostDetailedMip;
3241            Buffer.NumElements = mipLevels;
3242            break;
3243        case D3D11_SRV_DIMENSION_TEXTURE1D:
3244            Texture1D.MostDetailedMip = mostDetailedMip;
3245            Texture1D.MipLevels = mipLevels;
3246            break;
3247        case D3D11_SRV_DIMENSION_TEXTURE1DARRAY:
3248            Texture1DArray.MostDetailedMip = mostDetailedMip;
3249            Texture1DArray.MipLevels = mipLevels;
3250            Texture1DArray.FirstArraySlice = firstArraySlice;
3251            Texture1DArray.ArraySize = arraySize;
3252            break;
3253        case D3D11_SRV_DIMENSION_TEXTURE2D:
3254            Texture2D.MostDetailedMip = mostDetailedMip;
3255            Texture2D.MipLevels = mipLevels;
3256            break;
3257        case D3D11_SRV_DIMENSION_TEXTURE2DARRAY:
3258            Texture2DArray.MostDetailedMip = mostDetailedMip;
3259            Texture2DArray.MipLevels = mipLevels;
3260            Texture2DArray.FirstArraySlice = firstArraySlice;
3261            Texture2DArray.ArraySize = arraySize;
3262            break;
3263        case D3D11_SRV_DIMENSION_TEXTURE2DMS:
3264            break;
3265        case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY:
3266            Texture2DMSArray.FirstArraySlice = firstArraySlice;
3267            Texture2DMSArray.ArraySize = arraySize;
3268            break;
3269        case D3D11_SRV_DIMENSION_TEXTURE3D:
3270            Texture3D.MostDetailedMip = mostDetailedMip;
3271            Texture3D.MipLevels = mipLevels;
3272            break;
3273        case D3D11_SRV_DIMENSION_TEXTURECUBE:
3274            TextureCube.MostDetailedMip = mostDetailedMip;
3275            TextureCube.MipLevels = mipLevels;
3276            break;
3277        case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY:
3278            TextureCubeArray.MostDetailedMip = mostDetailedMip;
3279            TextureCubeArray.MipLevels = mipLevels;
3280            TextureCubeArray.First2DArrayFace = firstArraySlice;
3281            TextureCubeArray.NumCubes = arraySize;
3282            break;
3283        case D3D11_SRV_DIMENSION_BUFFEREX:
3284            BufferEx.FirstElement = mostDetailedMip;
3285            BufferEx.NumElements = mipLevels;
3286            BufferEx.Flags = flags;
3287            break;
3288        default: break;
3289        }
3290    }
3291    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(
3292        __in ID3D11Buffer*,
3293        DXGI_FORMAT format,
3294        UINT firstElement,
3295        UINT numElements,
3296        UINT flags = 0 )
3297    {
3298        Format = format;
3299        ViewDimension = D3D11_SRV_DIMENSION_BUFFEREX;
3300        BufferEx.FirstElement = firstElement;
3301        BufferEx.NumElements = numElements;
3302        BufferEx.Flags = flags;
3303    }
3304    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(
3305        __in ID3D11Texture1D* pTex1D,
3306        D3D11_SRV_DIMENSION viewDimension,
3307        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3308        UINT mostDetailedMip = 0,
3309        UINT mipLevels = -1,
3310        UINT firstArraySlice = 0,
3311        UINT arraySize = -1 )
3312    {
3313        ViewDimension = viewDimension;
3314        if (DXGI_FORMAT_UNKNOWN == format || -1 == mipLevels ||
3315            (-1 == arraySize && D3D11_SRV_DIMENSION_TEXTURE1DARRAY == viewDimension))
3316        {
3317            D3D11_TEXTURE1D_DESC TexDesc;
3318            pTex1D->GetDesc( &TexDesc );
3319            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
3320            if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip;
3321            if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice;
3322        }
3323        Format = format;
3324        switch (viewDimension)
3325        {
3326        case D3D11_SRV_DIMENSION_TEXTURE1D:
3327            Texture1D.MostDetailedMip = mostDetailedMip;
3328            Texture1D.MipLevels = mipLevels;
3329            break;
3330        case D3D11_SRV_DIMENSION_TEXTURE1DARRAY:
3331            Texture1DArray.MostDetailedMip = mostDetailedMip;
3332            Texture1DArray.MipLevels = mipLevels;
3333            Texture1DArray.FirstArraySlice = firstArraySlice;
3334            Texture1DArray.ArraySize = arraySize;
3335            break;
3336        default: break;
3337        }
3338    }
3339    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(
3340        __in ID3D11Texture2D* pTex2D,
3341        D3D11_SRV_DIMENSION viewDimension,
3342        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3343        UINT mostDetailedMip = 0,
3344        UINT mipLevels = -1,
3345        UINT firstArraySlice = 0, // First2DArrayFace for TEXTURECUBEARRAY
3346        UINT arraySize = -1 ) // NumCubes for TEXTURECUBEARRAY
3347    {
3348        ViewDimension = viewDimension;
3349        if (DXGI_FORMAT_UNKNOWN == format ||
3350            (-1 == mipLevels &&
3351                D3D11_SRV_DIMENSION_TEXTURE2DMS != viewDimension &&
3352                D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY != viewDimension) ||
3353            (-1 == arraySize &&
3354                (D3D11_SRV_DIMENSION_TEXTURE2DARRAY == viewDimension ||
3355                D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY == viewDimension ||
3356                D3D11_SRV_DIMENSION_TEXTURECUBEARRAY == viewDimension)))
3357        {
3358            D3D11_TEXTURE2D_DESC TexDesc;
3359            pTex2D->GetDesc( &TexDesc );
3360            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
3361            if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip;
3362            if (-1 == arraySize)
3363            {
3364                arraySize = TexDesc.ArraySize - firstArraySlice;
3365                if (D3D11_SRV_DIMENSION_TEXTURECUBEARRAY == viewDimension) arraySize /= 6;
3366            }
3367        }
3368        Format = format;
3369        switch (viewDimension)
3370        {
3371        case D3D11_SRV_DIMENSION_TEXTURE2D:
3372            Texture2D.MostDetailedMip = mostDetailedMip;
3373            Texture2D.MipLevels = mipLevels;
3374            break;
3375        case D3D11_SRV_DIMENSION_TEXTURE2DARRAY:
3376            Texture2DArray.MostDetailedMip = mostDetailedMip;
3377            Texture2DArray.MipLevels = mipLevels;
3378            Texture2DArray.FirstArraySlice = firstArraySlice;
3379            Texture2DArray.ArraySize = arraySize;
3380            break;
3381        case D3D11_SRV_DIMENSION_TEXTURE2DMS:
3382            break;
3383        case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY:
3384            Texture2DMSArray.FirstArraySlice = firstArraySlice;
3385            Texture2DMSArray.ArraySize = arraySize;
3386            break;
3387        case D3D11_SRV_DIMENSION_TEXTURECUBE:
3388            TextureCube.MostDetailedMip = mostDetailedMip;
3389            TextureCube.MipLevels = mipLevels;
3390            break;
3391        case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY:
3392            TextureCubeArray.MostDetailedMip = mostDetailedMip;
3393            TextureCubeArray.MipLevels = mipLevels;
3394            TextureCubeArray.First2DArrayFace = firstArraySlice;
3395            TextureCubeArray.NumCubes = arraySize;
3396            break;
3397        default: break;
3398        }
3399    }
3400    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(
3401        __in ID3D11Texture3D* pTex3D,
3402        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3403        UINT mostDetailedMip = 0,
3404        UINT mipLevels = -1 )
3405    {
3406        ViewDimension = D3D11_SRV_DIMENSION_TEXTURE3D;
3407        if (DXGI_FORMAT_UNKNOWN == format || -1 == mipLevels)
3408        {
3409            D3D11_TEXTURE3D_DESC TexDesc;
3410            pTex3D->GetDesc( &TexDesc );
3411            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
3412            if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip;
3413        }
3414        Format = format;
3415        Texture3D.MostDetailedMip = mostDetailedMip;
3416        Texture3D.MipLevels = mipLevels;
3417    }
3418    ~CD3D11_SHADER_RESOURCE_VIEW_DESC() {}
3419    operator const D3D11_SHADER_RESOURCE_VIEW_DESC&() const { return *this; }
3420};
3421extern "C"{
3422#endif
3423
3424
3425extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0010_v0_0_c_ifspec;
3426extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0010_v0_0_s_ifspec;
3427
3428#ifndef __ID3D11ShaderResourceView_INTERFACE_DEFINED__
3429#define __ID3D11ShaderResourceView_INTERFACE_DEFINED__
3430
3431/* interface ID3D11ShaderResourceView */
3432/* [unique][local][object][uuid] */
3433
3434
3435EXTERN_C const IID IID_ID3D11ShaderResourceView;
3436
3437#if defined(__cplusplus) && !defined(CINTERFACE)
3438   
3439    MIDL_INTERFACE("b0e06fe0-8192-4e1a-b1ca-36d7414710b2")
3440    ID3D11ShaderResourceView : public ID3D11View
3441    {
3442    public:
3443        virtual void STDMETHODCALLTYPE GetDesc(
3444            /* [annotation] */
3445            __out  D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc) = 0;
3446       
3447    };
3448   
3449#else    /* C style interface */
3450
3451    typedef struct ID3D11ShaderResourceViewVtbl
3452    {
3453        BEGIN_INTERFACE
3454       
3455        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3456            ID3D11ShaderResourceView * This,
3457            /* [in] */ REFIID riid,
3458            /* [annotation][iid_is][out] */
3459            __RPC__deref_out  void **ppvObject);
3460       
3461        ULONG ( STDMETHODCALLTYPE *AddRef )(
3462            ID3D11ShaderResourceView * This);
3463       
3464        ULONG ( STDMETHODCALLTYPE *Release )(
3465            ID3D11ShaderResourceView * This);
3466       
3467        void ( STDMETHODCALLTYPE *GetDevice )(
3468            ID3D11ShaderResourceView * This,
3469            /* [annotation] */
3470            __out  ID3D11Device **ppDevice);
3471       
3472        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3473            ID3D11ShaderResourceView * This,
3474            /* [annotation] */
3475            __in  REFGUID guid,
3476            /* [annotation] */
3477            __inout  UINT *pDataSize,
3478            /* [annotation] */
3479            __out_bcount_opt( *pDataSize )  void *pData);
3480       
3481        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3482            ID3D11ShaderResourceView * This,
3483            /* [annotation] */
3484            __in  REFGUID guid,
3485            /* [annotation] */
3486            __in  UINT DataSize,
3487            /* [annotation] */
3488            __in_bcount_opt( DataSize )  const void *pData);
3489       
3490        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3491            ID3D11ShaderResourceView * This,
3492            /* [annotation] */
3493            __in  REFGUID guid,
3494            /* [annotation] */
3495            __in_opt  const IUnknown *pData);
3496       
3497        void ( STDMETHODCALLTYPE *GetResource )(
3498            ID3D11ShaderResourceView * This,
3499            /* [annotation] */
3500            __out  ID3D11Resource **ppResource);
3501       
3502        void ( STDMETHODCALLTYPE *GetDesc )(
3503            ID3D11ShaderResourceView * This,
3504            /* [annotation] */
3505            __out  D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc);
3506       
3507        END_INTERFACE
3508    } ID3D11ShaderResourceViewVtbl;
3509
3510    interface ID3D11ShaderResourceView
3511    {
3512        CONST_VTBL struct ID3D11ShaderResourceViewVtbl *lpVtbl;
3513    };
3514
3515   
3516
3517#ifdef COBJMACROS
3518
3519
3520#define ID3D11ShaderResourceView_QueryInterface(This,riid,ppvObject)   \
3521    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3522
3523#define ID3D11ShaderResourceView_AddRef(This)   \
3524    ( (This)->lpVtbl -> AddRef(This) )
3525
3526#define ID3D11ShaderResourceView_Release(This)   \
3527    ( (This)->lpVtbl -> Release(This) )
3528
3529
3530#define ID3D11ShaderResourceView_GetDevice(This,ppDevice)   \
3531    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3532
3533#define ID3D11ShaderResourceView_GetPrivateData(This,guid,pDataSize,pData)   \
3534    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3535
3536#define ID3D11ShaderResourceView_SetPrivateData(This,guid,DataSize,pData)   \
3537    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3538
3539#define ID3D11ShaderResourceView_SetPrivateDataInterface(This,guid,pData)   \
3540    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3541
3542
3543#define ID3D11ShaderResourceView_GetResource(This,ppResource)   \
3544    ( (This)->lpVtbl -> GetResource(This,ppResource) )
3545
3546
3547#define ID3D11ShaderResourceView_GetDesc(This,pDesc)   \
3548    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
3549
3550#endif /* COBJMACROS */
3551
3552
3553#endif    /* C style interface */
3554
3555
3556
3557
3558#endif    /* __ID3D11ShaderResourceView_INTERFACE_DEFINED__ */
3559
3560
3561/* interface __MIDL_itf_d3d11_0000_0011 */
3562/* [local] */
3563
3564typedef struct D3D11_BUFFER_RTV
3565    {
3566    union
3567        {
3568        UINT FirstElement;
3569        UINT ElementOffset;
3570        }    ;
3571    union
3572        {
3573        UINT NumElements;
3574        UINT ElementWidth;
3575        }    ;
3576    }    D3D11_BUFFER_RTV;
3577
3578typedef struct D3D11_TEX1D_RTV
3579    {
3580    UINT MipSlice;
3581    }    D3D11_TEX1D_RTV;
3582
3583typedef struct D3D11_TEX1D_ARRAY_RTV
3584    {
3585    UINT MipSlice;
3586    UINT FirstArraySlice;
3587    UINT ArraySize;
3588    }    D3D11_TEX1D_ARRAY_RTV;
3589
3590typedef struct D3D11_TEX2D_RTV
3591    {
3592    UINT MipSlice;
3593    }    D3D11_TEX2D_RTV;
3594
3595typedef struct D3D11_TEX2DMS_RTV
3596    {
3597    UINT UnusedField_NothingToDefine;
3598    }    D3D11_TEX2DMS_RTV;
3599
3600typedef struct D3D11_TEX2D_ARRAY_RTV
3601    {
3602    UINT MipSlice;
3603    UINT FirstArraySlice;
3604    UINT ArraySize;
3605    }    D3D11_TEX2D_ARRAY_RTV;
3606
3607typedef struct D3D11_TEX2DMS_ARRAY_RTV
3608    {
3609    UINT FirstArraySlice;
3610    UINT ArraySize;
3611    }    D3D11_TEX2DMS_ARRAY_RTV;
3612
3613typedef struct D3D11_TEX3D_RTV
3614    {
3615    UINT MipSlice;
3616    UINT FirstWSlice;
3617    UINT WSize;
3618    }    D3D11_TEX3D_RTV;
3619
3620typedef struct D3D11_RENDER_TARGET_VIEW_DESC
3621    {
3622    DXGI_FORMAT Format;
3623    D3D11_RTV_DIMENSION ViewDimension;
3624    union
3625        {
3626        D3D11_BUFFER_RTV Buffer;
3627        D3D11_TEX1D_RTV Texture1D;
3628        D3D11_TEX1D_ARRAY_RTV Texture1DArray;
3629        D3D11_TEX2D_RTV Texture2D;
3630        D3D11_TEX2D_ARRAY_RTV Texture2DArray;
3631        D3D11_TEX2DMS_RTV Texture2DMS;
3632        D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray;
3633        D3D11_TEX3D_RTV Texture3D;
3634        }    ;
3635    }    D3D11_RENDER_TARGET_VIEW_DESC;
3636
3637#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
3638}
3639struct CD3D11_RENDER_TARGET_VIEW_DESC : public D3D11_RENDER_TARGET_VIEW_DESC
3640{
3641    CD3D11_RENDER_TARGET_VIEW_DESC()
3642    {}
3643    explicit CD3D11_RENDER_TARGET_VIEW_DESC( const D3D11_RENDER_TARGET_VIEW_DESC& o ) :
3644        D3D11_RENDER_TARGET_VIEW_DESC( o )
3645    {}
3646    explicit CD3D11_RENDER_TARGET_VIEW_DESC(
3647        D3D11_RTV_DIMENSION viewDimension,
3648        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3649        UINT mipSlice = 0, // FirstElement for BUFFER
3650        UINT firstArraySlice = 0, // NumElements for BUFFER, FirstWSlice for TEXTURE3D
3651        UINT arraySize = -1 ) // WSize for TEXTURE3D
3652    {
3653        Format = format;
3654        ViewDimension = viewDimension;
3655        switch (viewDimension)
3656        {
3657        case D3D11_RTV_DIMENSION_BUFFER:
3658            Buffer.FirstElement = mipSlice;
3659            Buffer.NumElements = firstArraySlice;
3660            break;
3661        case D3D11_RTV_DIMENSION_TEXTURE1D:
3662            Texture1D.MipSlice = mipSlice;
3663            break;
3664        case D3D11_RTV_DIMENSION_TEXTURE1DARRAY:
3665            Texture1DArray.MipSlice = mipSlice;
3666            Texture1DArray.FirstArraySlice = firstArraySlice;
3667            Texture1DArray.ArraySize = arraySize;
3668            break;
3669        case D3D11_RTV_DIMENSION_TEXTURE2D:
3670            Texture2D.MipSlice = mipSlice;
3671            break;
3672        case D3D11_RTV_DIMENSION_TEXTURE2DARRAY:
3673            Texture2DArray.MipSlice = mipSlice;
3674            Texture2DArray.FirstArraySlice = firstArraySlice;
3675            Texture2DArray.ArraySize = arraySize;
3676            break;
3677        case D3D11_RTV_DIMENSION_TEXTURE2DMS:
3678            break;
3679        case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY:
3680            Texture2DMSArray.FirstArraySlice = firstArraySlice;
3681            Texture2DMSArray.ArraySize = arraySize;
3682            break;
3683        case D3D11_RTV_DIMENSION_TEXTURE3D:
3684            Texture3D.MipSlice = mipSlice;
3685            Texture3D.FirstWSlice = firstArraySlice;
3686            Texture3D.WSize = arraySize;
3687            break;
3688        default: break;
3689        }
3690    }
3691    explicit CD3D11_RENDER_TARGET_VIEW_DESC(
3692        __in ID3D11Buffer*,
3693        DXGI_FORMAT format,
3694        UINT firstElement,
3695        UINT numElements )
3696    {
3697        Format = format;
3698        ViewDimension = D3D11_RTV_DIMENSION_BUFFER;
3699        Buffer.FirstElement = firstElement;
3700        Buffer.NumElements = numElements;
3701    }
3702    explicit CD3D11_RENDER_TARGET_VIEW_DESC(
3703        __in ID3D11Texture1D* pTex1D,
3704        D3D11_RTV_DIMENSION viewDimension,
3705        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3706        UINT mipSlice = 0,
3707        UINT firstArraySlice = 0,
3708        UINT arraySize = -1 )
3709    {
3710        ViewDimension = viewDimension;
3711        if (DXGI_FORMAT_UNKNOWN == format ||
3712            (-1 == arraySize && D3D11_RTV_DIMENSION_TEXTURE1DARRAY == viewDimension))
3713        {
3714            D3D11_TEXTURE1D_DESC TexDesc;
3715            pTex1D->GetDesc( &TexDesc );
3716            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
3717            if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice;
3718        }
3719        Format = format;
3720        switch (viewDimension)
3721        {
3722        case D3D11_RTV_DIMENSION_TEXTURE1D:
3723            Texture1D.MipSlice = mipSlice;
3724            break;
3725        case D3D11_RTV_DIMENSION_TEXTURE1DARRAY:
3726            Texture1DArray.MipSlice = mipSlice;
3727            Texture1DArray.FirstArraySlice = firstArraySlice;
3728            Texture1DArray.ArraySize = arraySize;
3729            break;
3730        default: break;
3731        }
3732    }
3733    explicit CD3D11_RENDER_TARGET_VIEW_DESC(
3734        __in ID3D11Texture2D* pTex2D,
3735        D3D11_RTV_DIMENSION viewDimension,
3736        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3737        UINT mipSlice = 0,
3738        UINT firstArraySlice = 0,
3739        UINT arraySize = -1 )
3740    {
3741        ViewDimension = viewDimension;
3742        if (DXGI_FORMAT_UNKNOWN == format ||
3743            (-1 == arraySize &&
3744                (D3D11_RTV_DIMENSION_TEXTURE2DARRAY == viewDimension ||
3745                D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY == viewDimension)))
3746        {
3747            D3D11_TEXTURE2D_DESC TexDesc;
3748            pTex2D->GetDesc( &TexDesc );
3749            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
3750            if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice;
3751        }
3752        Format = format;
3753        switch (viewDimension)
3754        {
3755        case D3D11_RTV_DIMENSION_TEXTURE2D:
3756            Texture2D.MipSlice = mipSlice;
3757            break;
3758        case D3D11_RTV_DIMENSION_TEXTURE2DARRAY:
3759            Texture2DArray.MipSlice = mipSlice;
3760            Texture2DArray.FirstArraySlice = firstArraySlice;
3761            Texture2DArray.ArraySize = arraySize;
3762            break;
3763        case D3D11_RTV_DIMENSION_TEXTURE2DMS:
3764            break;
3765        case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY:
3766            Texture2DMSArray.FirstArraySlice = firstArraySlice;
3767            Texture2DMSArray.ArraySize = arraySize;
3768            break;
3769        default: break;
3770        }
3771    }
3772    explicit CD3D11_RENDER_TARGET_VIEW_DESC(
3773        __in ID3D11Texture3D* pTex3D,
3774        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3775        UINT mipSlice = 0,
3776        UINT firstWSlice = 0,
3777        UINT wSize = -1 )
3778    {
3779        ViewDimension = D3D11_RTV_DIMENSION_TEXTURE3D;
3780        if (DXGI_FORMAT_UNKNOWN == format || -1 == wSize)
3781        {
3782            D3D11_TEXTURE3D_DESC TexDesc;
3783            pTex3D->GetDesc( &TexDesc );
3784            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
3785            if (-1 == wSize) wSize = TexDesc.Depth - firstWSlice;
3786        }
3787        Format = format;
3788        Texture3D.MipSlice = mipSlice;
3789        Texture3D.FirstWSlice = firstWSlice;
3790        Texture3D.WSize = wSize;
3791    }
3792    ~CD3D11_RENDER_TARGET_VIEW_DESC() {}
3793    operator const D3D11_RENDER_TARGET_VIEW_DESC&() const { return *this; }
3794};
3795extern "C"{
3796#endif
3797
3798
3799extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0011_v0_0_c_ifspec;
3800extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0011_v0_0_s_ifspec;
3801
3802#ifndef __ID3D11RenderTargetView_INTERFACE_DEFINED__
3803#define __ID3D11RenderTargetView_INTERFACE_DEFINED__
3804
3805/* interface ID3D11RenderTargetView */
3806/* [unique][local][object][uuid] */
3807
3808
3809EXTERN_C const IID IID_ID3D11RenderTargetView;
3810
3811#if defined(__cplusplus) && !defined(CINTERFACE)
3812   
3813    MIDL_INTERFACE("dfdba067-0b8d-4865-875b-d7b4516cc164")
3814    ID3D11RenderTargetView : public ID3D11View
3815    {
3816    public:
3817        virtual void STDMETHODCALLTYPE GetDesc(
3818            /* [annotation] */
3819            __out  D3D11_RENDER_TARGET_VIEW_DESC *pDesc) = 0;
3820       
3821    };
3822   
3823#else    /* C style interface */
3824
3825    typedef struct ID3D11RenderTargetViewVtbl
3826    {
3827        BEGIN_INTERFACE
3828       
3829        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3830            ID3D11RenderTargetView * This,
3831            /* [in] */ REFIID riid,
3832            /* [annotation][iid_is][out] */
3833            __RPC__deref_out  void **ppvObject);
3834       
3835        ULONG ( STDMETHODCALLTYPE *AddRef )(
3836            ID3D11RenderTargetView * This);
3837       
3838        ULONG ( STDMETHODCALLTYPE *Release )(
3839            ID3D11RenderTargetView * This);
3840       
3841        void ( STDMETHODCALLTYPE *GetDevice )(
3842            ID3D11RenderTargetView * This,
3843            /* [annotation] */
3844            __out  ID3D11Device **ppDevice);
3845       
3846        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3847            ID3D11RenderTargetView * This,
3848            /* [annotation] */
3849            __in  REFGUID guid,
3850            /* [annotation] */
3851            __inout  UINT *pDataSize,
3852            /* [annotation] */
3853            __out_bcount_opt( *pDataSize )  void *pData);
3854       
3855        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3856            ID3D11RenderTargetView * This,
3857            /* [annotation] */
3858            __in  REFGUID guid,
3859            /* [annotation] */
3860            __in  UINT DataSize,
3861            /* [annotation] */
3862            __in_bcount_opt( DataSize )  const void *pData);
3863       
3864        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3865            ID3D11RenderTargetView * This,
3866            /* [annotation] */
3867            __in  REFGUID guid,
3868            /* [annotation] */
3869            __in_opt  const IUnknown *pData);
3870       
3871        void ( STDMETHODCALLTYPE *GetResource )(
3872            ID3D11RenderTargetView * This,
3873            /* [annotation] */
3874            __out  ID3D11Resource **ppResource);
3875       
3876        void ( STDMETHODCALLTYPE *GetDesc )(
3877            ID3D11RenderTargetView * This,
3878            /* [annotation] */
3879            __out  D3D11_RENDER_TARGET_VIEW_DESC *pDesc);
3880       
3881        END_INTERFACE
3882    } ID3D11RenderTargetViewVtbl;
3883
3884    interface ID3D11RenderTargetView
3885    {
3886        CONST_VTBL struct ID3D11RenderTargetViewVtbl *lpVtbl;
3887    };
3888
3889   
3890
3891#ifdef COBJMACROS
3892
3893
3894#define ID3D11RenderTargetView_QueryInterface(This,riid,ppvObject)   \
3895    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3896
3897#define ID3D11RenderTargetView_AddRef(This)   \
3898    ( (This)->lpVtbl -> AddRef(This) )
3899
3900#define ID3D11RenderTargetView_Release(This)   \
3901    ( (This)->lpVtbl -> Release(This) )
3902
3903
3904#define ID3D11RenderTargetView_GetDevice(This,ppDevice)   \
3905    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3906
3907#define ID3D11RenderTargetView_GetPrivateData(This,guid,pDataSize,pData)   \
3908    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3909
3910#define ID3D11RenderTargetView_SetPrivateData(This,guid,DataSize,pData)   \
3911    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3912
3913#define ID3D11RenderTargetView_SetPrivateDataInterface(This,guid,pData)   \
3914    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3915
3916
3917#define ID3D11RenderTargetView_GetResource(This,ppResource)   \
3918    ( (This)->lpVtbl -> GetResource(This,ppResource) )
3919
3920
3921#define ID3D11RenderTargetView_GetDesc(This,pDesc)   \
3922    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
3923
3924#endif /* COBJMACROS */
3925
3926
3927#endif    /* C style interface */
3928
3929
3930
3931
3932#endif    /* __ID3D11RenderTargetView_INTERFACE_DEFINED__ */
3933
3934
3935/* interface __MIDL_itf_d3d11_0000_0012 */
3936/* [local] */
3937
3938#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
3939}
3940struct CD3D11_VIEWPORT : public D3D11_VIEWPORT
3941{
3942    CD3D11_VIEWPORT()
3943    {}
3944    explicit CD3D11_VIEWPORT( const D3D11_VIEWPORT& o ) :
3945        D3D11_VIEWPORT( o )
3946    {}
3947    explicit CD3D11_VIEWPORT(
3948        FLOAT topLeftX,
3949        FLOAT topLeftY,
3950        FLOAT width,
3951        FLOAT height,
3952        FLOAT minDepth = D3D11_MIN_DEPTH,
3953        FLOAT maxDepth = D3D11_MAX_DEPTH )
3954    {
3955        TopLeftX = topLeftX;
3956        TopLeftY = topLeftY;
3957        Width = width;
3958        Height = height;
3959        MinDepth = minDepth;
3960        MaxDepth = maxDepth;
3961    }
3962    explicit CD3D11_VIEWPORT(
3963        __in ID3D11Buffer*,
3964        __in ID3D11RenderTargetView* pRTView,
3965        FLOAT topLeftX = 0.0f,
3966        FLOAT minDepth = D3D11_MIN_DEPTH,
3967        FLOAT maxDepth = D3D11_MAX_DEPTH )
3968    {
3969        D3D11_RENDER_TARGET_VIEW_DESC RTVDesc;
3970        pRTView->GetDesc( &RTVDesc );
3971        UINT NumElements = 0;
3972        switch (RTVDesc.ViewDimension)
3973        {
3974        case D3D11_RTV_DIMENSION_BUFFER:
3975            NumElements = RTVDesc.Buffer.NumElements;
3976            break;
3977        default: break;
3978        }
3979        TopLeftX = topLeftX;
3980        TopLeftY = 0.0f;
3981        Width = NumElements - topLeftX;
3982        Height = 1.0f;
3983        MinDepth = minDepth;
3984        MaxDepth = maxDepth;
3985    }
3986    explicit CD3D11_VIEWPORT(
3987        __in ID3D11Texture1D* pTex1D,
3988        __in ID3D11RenderTargetView* pRTView,
3989        FLOAT topLeftX = 0.0f,
3990        FLOAT minDepth = D3D11_MIN_DEPTH,
3991        FLOAT maxDepth = D3D11_MAX_DEPTH )
3992    {
3993        D3D11_TEXTURE1D_DESC TexDesc;
3994        pTex1D->GetDesc( &TexDesc );
3995        D3D11_RENDER_TARGET_VIEW_DESC RTVDesc;
3996        pRTView->GetDesc( &RTVDesc );
3997        UINT MipSlice = 0;
3998        switch (RTVDesc.ViewDimension)
3999        {
4000        case D3D11_RTV_DIMENSION_TEXTURE1D:
4001            MipSlice = RTVDesc.Texture1D.MipSlice;
4002            break;
4003        case D3D11_RTV_DIMENSION_TEXTURE1DARRAY:
4004            MipSlice = RTVDesc.Texture1DArray.MipSlice;
4005            break;
4006        default: break;
4007        }
4008        const UINT SubResourceWidth = TexDesc.Width / (UINT( 1 ) << MipSlice);
4009        TopLeftX = topLeftX;
4010        TopLeftY = 0.0f;
4011        Width = (SubResourceWidth ? SubResourceWidth : 1) - topLeftX;
4012        Height = 1.0f;
4013        MinDepth = minDepth;
4014        MaxDepth = maxDepth;
4015    }
4016    explicit CD3D11_VIEWPORT(
4017        __in ID3D11Texture2D* pTex2D,
4018        __in ID3D11RenderTargetView* pRTView,
4019        FLOAT topLeftX = 0.0f,
4020        FLOAT topLeftY = 0.0f,
4021        FLOAT minDepth = D3D11_MIN_DEPTH,
4022        FLOAT maxDepth = D3D11_MAX_DEPTH )
4023    {
4024        D3D11_TEXTURE2D_DESC TexDesc;
4025        pTex2D->GetDesc( &TexDesc );
4026        D3D11_RENDER_TARGET_VIEW_DESC RTVDesc;
4027        pRTView->GetDesc( &RTVDesc );
4028        UINT MipSlice = 0;
4029        switch (RTVDesc.ViewDimension)
4030        {
4031        case D3D11_RTV_DIMENSION_TEXTURE2D:
4032            MipSlice = RTVDesc.Texture2D.MipSlice;
4033            break;
4034        case D3D11_RTV_DIMENSION_TEXTURE2DARRAY:
4035            MipSlice = RTVDesc.Texture2DArray.MipSlice;
4036            break;
4037        case D3D11_RTV_DIMENSION_TEXTURE2DMS:
4038        case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY:
4039            break;
4040        default: break;
4041        }
4042        const UINT SubResourceWidth = TexDesc.Width / (UINT( 1 ) << MipSlice);
4043        const UINT SubResourceHeight = TexDesc.Height / (UINT( 1 ) << MipSlice);
4044        TopLeftX = topLeftX;
4045        TopLeftY = topLeftY;
4046        Width = (SubResourceWidth ? SubResourceWidth : 1) - topLeftX;
4047        Height = (SubResourceHeight ? SubResourceHeight : 1) - topLeftY;
4048        MinDepth = minDepth;
4049        MaxDepth = maxDepth;
4050    }
4051    explicit CD3D11_VIEWPORT(
4052        __in ID3D11Texture3D* pTex3D,
4053        __in ID3D11RenderTargetView* pRTView,
4054        FLOAT topLeftX = 0.0f,
4055        FLOAT topLeftY = 0.0f,
4056        FLOAT minDepth = D3D11_MIN_DEPTH,
4057        FLOAT maxDepth = D3D11_MAX_DEPTH )
4058    {
4059        D3D11_TEXTURE3D_DESC TexDesc;
4060        pTex3D->GetDesc( &TexDesc );
4061        D3D11_RENDER_TARGET_VIEW_DESC RTVDesc;
4062        pRTView->GetDesc( &RTVDesc );
4063        UINT MipSlice = 0;
4064        switch (RTVDesc.ViewDimension)
4065        {
4066        case D3D11_RTV_DIMENSION_TEXTURE3D:
4067            MipSlice = RTVDesc.Texture3D.MipSlice;
4068            break;
4069        default: break;
4070        }
4071        const UINT SubResourceWidth = TexDesc.Width / (UINT( 1 ) << MipSlice);
4072        const UINT SubResourceHeight = TexDesc.Height / (UINT( 1 ) << MipSlice);
4073        TopLeftX = topLeftX;
4074        TopLeftY = topLeftY;
4075        Width = (SubResourceWidth ? SubResourceWidth : 1) - topLeftX;
4076        Height = (SubResourceHeight ? SubResourceHeight : 1) - topLeftY;
4077        MinDepth = minDepth;
4078        MaxDepth = maxDepth;
4079    }
4080    ~CD3D11_VIEWPORT() {}
4081    operator const D3D11_VIEWPORT&() const { return *this; }
4082};
4083extern "C"{
4084#endif
4085typedef struct D3D11_TEX1D_DSV
4086    {
4087    UINT MipSlice;
4088    }    D3D11_TEX1D_DSV;
4089
4090typedef struct D3D11_TEX1D_ARRAY_DSV
4091    {
4092    UINT MipSlice;
4093    UINT FirstArraySlice;
4094    UINT ArraySize;
4095    }    D3D11_TEX1D_ARRAY_DSV;
4096
4097typedef struct D3D11_TEX2D_DSV
4098    {
4099    UINT MipSlice;
4100    }    D3D11_TEX2D_DSV;
4101
4102typedef struct D3D11_TEX2D_ARRAY_DSV
4103    {
4104    UINT MipSlice;
4105    UINT FirstArraySlice;
4106    UINT ArraySize;
4107    }    D3D11_TEX2D_ARRAY_DSV;
4108
4109typedef struct D3D11_TEX2DMS_DSV
4110    {
4111    UINT UnusedField_NothingToDefine;
4112    }    D3D11_TEX2DMS_DSV;
4113
4114typedef struct D3D11_TEX2DMS_ARRAY_DSV
4115    {
4116    UINT FirstArraySlice;
4117    UINT ArraySize;
4118    }    D3D11_TEX2DMS_ARRAY_DSV;
4119
4120typedef
4121enum D3D11_DSV_FLAG
4122    {   D3D11_DSV_READ_ONLY_DEPTH   = 0x1L,
4123   D3D11_DSV_READ_ONLY_STENCIL   = 0x2L
4124    }    D3D11_DSV_FLAG;
4125
4126typedef struct D3D11_DEPTH_STENCIL_VIEW_DESC
4127    {
4128    DXGI_FORMAT Format;
4129    D3D11_DSV_DIMENSION ViewDimension;
4130    UINT Flags;
4131    union
4132        {
4133        D3D11_TEX1D_DSV Texture1D;
4134        D3D11_TEX1D_ARRAY_DSV Texture1DArray;
4135        D3D11_TEX2D_DSV Texture2D;
4136        D3D11_TEX2D_ARRAY_DSV Texture2DArray;
4137        D3D11_TEX2DMS_DSV Texture2DMS;
4138        D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray;
4139        }    ;
4140    }    D3D11_DEPTH_STENCIL_VIEW_DESC;
4141
4142#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
4143}
4144struct CD3D11_DEPTH_STENCIL_VIEW_DESC : public D3D11_DEPTH_STENCIL_VIEW_DESC
4145{
4146    CD3D11_DEPTH_STENCIL_VIEW_DESC()
4147    {}
4148    explicit CD3D11_DEPTH_STENCIL_VIEW_DESC( const D3D11_DEPTH_STENCIL_VIEW_DESC& o ) :
4149        D3D11_DEPTH_STENCIL_VIEW_DESC( o )
4150    {}
4151    explicit CD3D11_DEPTH_STENCIL_VIEW_DESC(
4152        D3D11_DSV_DIMENSION viewDimension,
4153        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
4154        UINT mipSlice = 0,
4155        UINT firstArraySlice = 0,
4156        UINT arraySize = -1,
4157        UINT flags = 0 )
4158    {
4159        Format = format;
4160        ViewDimension = viewDimension;
4161        Flags = flags;
4162        switch (viewDimension)
4163        {
4164        case D3D11_DSV_DIMENSION_TEXTURE1D:
4165            Texture1D.MipSlice = mipSlice;
4166            break;
4167        case D3D11_DSV_DIMENSION_TEXTURE1DARRAY:
4168            Texture1DArray.MipSlice = mipSlice;
4169            Texture1DArray.FirstArraySlice = firstArraySlice;
4170            Texture1DArray.ArraySize = arraySize;
4171            break;
4172        case D3D11_DSV_DIMENSION_TEXTURE2D:
4173            Texture2D.MipSlice = mipSlice;
4174            break;
4175        case D3D11_DSV_DIMENSION_TEXTURE2DARRAY:
4176            Texture2DArray.MipSlice = mipSlice;
4177            Texture2DArray.FirstArraySlice = firstArraySlice;
4178            Texture2DArray.ArraySize = arraySize;
4179            break;
4180        case D3D11_DSV_DIMENSION_TEXTURE2DMS:
4181            break;
4182        case D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY:
4183            Texture2DMSArray.FirstArraySlice = firstArraySlice;
4184            Texture2DMSArray.ArraySize = arraySize;
4185            break;
4186        default: break;
4187        }
4188    }
4189    explicit CD3D11_DEPTH_STENCIL_VIEW_DESC(
4190        __in ID3D11Texture1D* pTex1D,
4191        D3D11_DSV_DIMENSION viewDimension,
4192        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
4193        UINT mipSlice = 0,
4194        UINT firstArraySlice = 0,
4195        UINT arraySize = -1,
4196        UINT flags = 0 )
4197    {
4198        ViewDimension = viewDimension;
4199        Flags = flags;
4200        if (DXGI_FORMAT_UNKNOWN == format ||
4201            (-1 == arraySize && D3D11_DSV_DIMENSION_TEXTURE1DARRAY == viewDimension))
4202        {
4203            D3D11_TEXTURE1D_DESC TexDesc;
4204            pTex1D->GetDesc( &TexDesc );
4205            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
4206            if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice;
4207        }
4208        Format = format;
4209        switch (viewDimension)
4210        {
4211        case D3D11_DSV_DIMENSION_TEXTURE1D:
4212            Texture1D.MipSlice = mipSlice;
4213            break;
4214        case D3D11_DSV_DIMENSION_TEXTURE1DARRAY:
4215            Texture1DArray.MipSlice = mipSlice;
4216            Texture1DArray.FirstArraySlice = firstArraySlice;
4217            Texture1DArray.ArraySize = arraySize;
4218            break;
4219        default: break;
4220        }
4221    }
4222    explicit CD3D11_DEPTH_STENCIL_VIEW_DESC(
4223        __in ID3D11Texture2D* pTex2D,
4224        D3D11_DSV_DIMENSION viewDimension,
4225        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
4226        UINT mipSlice = 0,
4227        UINT firstArraySlice = 0,
4228        UINT arraySize = -1,
4229        UINT flags = 0 )
4230    {
4231        ViewDimension = viewDimension;
4232        Flags = flags;
4233        if (DXGI_FORMAT_UNKNOWN == format ||
4234            (-1 == arraySize &&
4235                (D3D11_DSV_DIMENSION_TEXTURE2DARRAY == viewDimension ||
4236                D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY == viewDimension)))
4237        {
4238            D3D11_TEXTURE2D_DESC TexDesc;
4239            pTex2D->GetDesc( &TexDesc );
4240            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
4241            if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice;
4242        }
4243        Format = format;
4244        switch (viewDimension)
4245        {
4246        case D3D11_DSV_DIMENSION_TEXTURE2D:
4247            Texture2D.MipSlice = mipSlice;
4248            break;
4249        case D3D11_DSV_DIMENSION_TEXTURE2DARRAY:
4250            Texture2DArray.MipSlice = mipSlice;
4251            Texture2DArray.FirstArraySlice = firstArraySlice;
4252            Texture2DArray.ArraySize = arraySize;
4253            break;
4254        case D3D11_DSV_DIMENSION_TEXTURE2DMS:
4255            break;
4256        case D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY:
4257            Texture2DMSArray.FirstArraySlice = firstArraySlice;
4258            Texture2DMSArray.ArraySize = arraySize;
4259            break;
4260        default: break;
4261        }
4262    }
4263    ~CD3D11_DEPTH_STENCIL_VIEW_DESC() {}
4264    operator const D3D11_DEPTH_STENCIL_VIEW_DESC&() const { return *this; }
4265};
4266extern "C"{
4267#endif
4268
4269
4270extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0012_v0_0_c_ifspec;
4271extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0012_v0_0_s_ifspec;
4272
4273#ifndef __ID3D11DepthStencilView_INTERFACE_DEFINED__
4274#define __ID3D11DepthStencilView_INTERFACE_DEFINED__
4275
4276/* interface ID3D11DepthStencilView */
4277/* [unique][local][object][uuid] */
4278
4279
4280EXTERN_C const IID IID_ID3D11DepthStencilView;
4281
4282#if defined(__cplusplus) && !defined(CINTERFACE)
4283   
4284    MIDL_INTERFACE("9fdac92a-1876-48c3-afad-25b94f84a9b6")
4285    ID3D11DepthStencilView : public ID3D11View
4286    {
4287    public:
4288        virtual void STDMETHODCALLTYPE GetDesc(
4289            /* [annotation] */
4290            __out  D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc) = 0;
4291       
4292    };
4293   
4294#else    /* C style interface */
4295
4296    typedef struct ID3D11DepthStencilViewVtbl
4297    {
4298        BEGIN_INTERFACE
4299       
4300        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4301            ID3D11DepthStencilView * This,
4302            /* [in] */ REFIID riid,
4303            /* [annotation][iid_is][out] */
4304            __RPC__deref_out  void **ppvObject);
4305       
4306        ULONG ( STDMETHODCALLTYPE *AddRef )(
4307            ID3D11DepthStencilView * This);
4308       
4309        ULONG ( STDMETHODCALLTYPE *Release )(
4310            ID3D11DepthStencilView * This);
4311       
4312        void ( STDMETHODCALLTYPE *GetDevice )(
4313            ID3D11DepthStencilView * This,
4314            /* [annotation] */
4315            __out  ID3D11Device **ppDevice);
4316       
4317        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4318            ID3D11DepthStencilView * This,
4319            /* [annotation] */
4320            __in  REFGUID guid,
4321            /* [annotation] */
4322            __inout  UINT *pDataSize,
4323            /* [annotation] */
4324            __out_bcount_opt( *pDataSize )  void *pData);
4325       
4326        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4327            ID3D11DepthStencilView * This,
4328            /* [annotation] */
4329            __in  REFGUID guid,
4330            /* [annotation] */
4331            __in  UINT DataSize,
4332            /* [annotation] */
4333            __in_bcount_opt( DataSize )  const void *pData);
4334       
4335        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4336            ID3D11DepthStencilView * This,
4337            /* [annotation] */
4338            __in  REFGUID guid,
4339            /* [annotation] */
4340            __in_opt  const IUnknown *pData);
4341       
4342        void ( STDMETHODCALLTYPE *GetResource )(
4343            ID3D11DepthStencilView * This,
4344            /* [annotation] */
4345            __out  ID3D11Resource **ppResource);
4346       
4347        void ( STDMETHODCALLTYPE *GetDesc )(
4348            ID3D11DepthStencilView * This,
4349            /* [annotation] */
4350            __out  D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc);
4351       
4352        END_INTERFACE
4353    } ID3D11DepthStencilViewVtbl;
4354
4355    interface ID3D11DepthStencilView
4356    {
4357        CONST_VTBL struct ID3D11DepthStencilViewVtbl *lpVtbl;
4358    };
4359
4360   
4361
4362#ifdef COBJMACROS
4363
4364
4365#define ID3D11DepthStencilView_QueryInterface(This,riid,ppvObject)   \
4366    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4367
4368#define ID3D11DepthStencilView_AddRef(This)   \
4369    ( (This)->lpVtbl -> AddRef(This) )
4370
4371#define ID3D11DepthStencilView_Release(This)   \
4372    ( (This)->lpVtbl -> Release(This) )
4373
4374
4375#define ID3D11DepthStencilView_GetDevice(This,ppDevice)   \
4376    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4377
4378#define ID3D11DepthStencilView_GetPrivateData(This,guid,pDataSize,pData)   \
4379    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4380
4381#define ID3D11DepthStencilView_SetPrivateData(This,guid,DataSize,pData)   \
4382    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4383
4384#define ID3D11DepthStencilView_SetPrivateDataInterface(This,guid,pData)   \
4385    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4386
4387
4388#define ID3D11DepthStencilView_GetResource(This,ppResource)   \
4389    ( (This)->lpVtbl -> GetResource(This,ppResource) )
4390
4391
4392#define ID3D11DepthStencilView_GetDesc(This,pDesc)   \
4393    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
4394
4395#endif /* COBJMACROS */
4396
4397
4398#endif    /* C style interface */
4399
4400
4401
4402
4403#endif    /* __ID3D11DepthStencilView_INTERFACE_DEFINED__ */
4404
4405
4406/* interface __MIDL_itf_d3d11_0000_0013 */
4407/* [local] */
4408
4409typedef
4410enum D3D11_BUFFER_UAV_FLAG
4411    {   D3D11_BUFFER_UAV_FLAG_RAW   = 0x1,
4412   D3D11_BUFFER_UAV_FLAG_APPEND   = 0x2,
4413   D3D11_BUFFER_UAV_FLAG_COUNTER   = 0x4
4414    }    D3D11_BUFFER_UAV_FLAG;
4415
4416typedef struct D3D11_BUFFER_UAV
4417    {
4418    UINT FirstElement;
4419    UINT NumElements;
4420    UINT Flags;
4421    }    D3D11_BUFFER_UAV;
4422
4423typedef struct D3D11_TEX1D_UAV
4424    {
4425    UINT MipSlice;
4426    }    D3D11_TEX1D_UAV;
4427
4428typedef struct D3D11_TEX1D_ARRAY_UAV
4429    {
4430    UINT MipSlice;
4431    UINT FirstArraySlice;
4432    UINT ArraySize;
4433    }    D3D11_TEX1D_ARRAY_UAV;
4434
4435typedef struct D3D11_TEX2D_UAV
4436    {
4437    UINT MipSlice;
4438    }    D3D11_TEX2D_UAV;
4439
4440typedef struct D3D11_TEX2D_ARRAY_UAV
4441    {
4442    UINT MipSlice;
4443    UINT FirstArraySlice;
4444    UINT ArraySize;
4445    }    D3D11_TEX2D_ARRAY_UAV;
4446
4447typedef struct D3D11_TEX3D_UAV
4448    {
4449    UINT MipSlice;
4450    UINT FirstWSlice;
4451    UINT WSize;
4452    }    D3D11_TEX3D_UAV;
4453
4454typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC
4455    {
4456    DXGI_FORMAT Format;
4457    D3D11_UAV_DIMENSION ViewDimension;
4458    union
4459        {
4460        D3D11_BUFFER_UAV Buffer;
4461        D3D11_TEX1D_UAV Texture1D;
4462        D3D11_TEX1D_ARRAY_UAV Texture1DArray;
4463        D3D11_TEX2D_UAV Texture2D;
4464        D3D11_TEX2D_ARRAY_UAV Texture2DArray;
4465        D3D11_TEX3D_UAV Texture3D;
4466        }    ;
4467    }    D3D11_UNORDERED_ACCESS_VIEW_DESC;
4468
4469#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
4470}
4471struct CD3D11_UNORDERED_ACCESS_VIEW_DESC : public D3D11_UNORDERED_ACCESS_VIEW_DESC
4472{
4473    CD3D11_UNORDERED_ACCESS_VIEW_DESC()
4474    {}
4475    explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( const D3D11_UNORDERED_ACCESS_VIEW_DESC& o ) :
4476        D3D11_UNORDERED_ACCESS_VIEW_DESC( o )
4477    {}
4478    explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC(
4479        D3D11_UAV_DIMENSION viewDimension,
4480        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
4481        UINT mipSlice = 0, // FirstElement for BUFFER
4482        UINT firstArraySlice = 0, // NumElements for BUFFER, FirstWSlice for TEXTURE3D
4483        UINT arraySize = -1, // WSize for TEXTURE3D
4484        UINT flags = 0 ) // BUFFER only
4485    {
4486        Format = format;
4487        ViewDimension = viewDimension;
4488        switch (viewDimension)
4489        {
4490        case D3D11_UAV_DIMENSION_BUFFER:
4491            Buffer.FirstElement = mipSlice;
4492            Buffer.NumElements = firstArraySlice;
4493            Buffer.Flags = flags;
4494            break;
4495        case D3D11_UAV_DIMENSION_TEXTURE1D:
4496            Texture1D.MipSlice = mipSlice;
4497            break;
4498        case D3D11_UAV_DIMENSION_TEXTURE1DARRAY:
4499            Texture1DArray.MipSlice = mipSlice;
4500            Texture1DArray.FirstArraySlice = firstArraySlice;
4501            Texture1DArray.ArraySize = arraySize;
4502            break;
4503        case D3D11_UAV_DIMENSION_TEXTURE2D:
4504            Texture2D.MipSlice = mipSlice;
4505            break;
4506        case D3D11_UAV_DIMENSION_TEXTURE2DARRAY:
4507            Texture2DArray.MipSlice = mipSlice;
4508            Texture2DArray.FirstArraySlice = firstArraySlice;
4509            Texture2DArray.ArraySize = arraySize;
4510            break;
4511        case D3D11_UAV_DIMENSION_TEXTURE3D:
4512            Texture3D.MipSlice = mipSlice;
4513            Texture3D.FirstWSlice = firstArraySlice;
4514            Texture3D.WSize = arraySize;
4515            break;
4516        default: break;
4517        }
4518    }
4519    explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC(
4520        __in ID3D11Buffer*,
4521        DXGI_FORMAT format,
4522        UINT firstElement,
4523        UINT numElements,
4524        UINT flags = 0 )
4525    {
4526        Format = format;
4527        ViewDimension = D3D11_UAV_DIMENSION_BUFFER;
4528        Buffer.FirstElement = firstElement;
4529        Buffer.NumElements = numElements;
4530        Buffer.Flags = flags;
4531    }
4532    explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC(
4533        __in ID3D11Texture1D* pTex1D,
4534        D3D11_UAV_DIMENSION viewDimension,
4535        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
4536        UINT mipSlice = 0,
4537        UINT firstArraySlice = 0,
4538        UINT arraySize = -1 )
4539    {
4540        ViewDimension = viewDimension;
4541        if (DXGI_FORMAT_UNKNOWN == format ||
4542            (-1 == arraySize && D3D11_UAV_DIMENSION_TEXTURE1DARRAY == viewDimension))
4543        {
4544            D3D11_TEXTURE1D_DESC TexDesc;
4545            pTex1D->GetDesc( &TexDesc );
4546            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
4547            if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice;
4548        }
4549        Format = format;
4550        switch (viewDimension)
4551        {
4552        case D3D11_UAV_DIMENSION_TEXTURE1D:
4553            Texture1D.MipSlice = mipSlice;
4554            break;
4555        case D3D11_UAV_DIMENSION_TEXTURE1DARRAY:
4556            Texture1DArray.MipSlice = mipSlice;
4557            Texture1DArray.FirstArraySlice = firstArraySlice;
4558            Texture1DArray.ArraySize = arraySize;
4559            break;
4560        default: break;
4561        }
4562    }
4563    explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC(
4564        __in ID3D11Texture2D* pTex2D,
4565        D3D11_UAV_DIMENSION viewDimension,
4566        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
4567        UINT mipSlice = 0,
4568        UINT firstArraySlice = 0,
4569        UINT arraySize = -1 )
4570    {
4571        ViewDimension = viewDimension;
4572        if (DXGI_FORMAT_UNKNOWN == format ||
4573            (-1 == arraySize && D3D11_UAV_DIMENSION_TEXTURE2DARRAY == viewDimension))
4574        {
4575            D3D11_TEXTURE2D_DESC TexDesc;
4576            pTex2D->GetDesc( &TexDesc );
4577            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
4578            if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice;
4579        }
4580        Format = format;
4581        switch (viewDimension)
4582        {
4583        case D3D11_UAV_DIMENSION_TEXTURE2D:
4584            Texture2D.MipSlice = mipSlice;
4585            break;
4586        case D3D11_UAV_DIMENSION_TEXTURE2DARRAY:
4587            Texture2DArray.MipSlice = mipSlice;
4588            Texture2DArray.FirstArraySlice = firstArraySlice;
4589            Texture2DArray.ArraySize = arraySize;
4590            break;
4591        default: break;
4592        }
4593    }
4594    explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC(
4595        __in ID3D11Texture3D* pTex3D,
4596        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
4597        UINT mipSlice = 0,
4598        UINT firstWSlice = 0,
4599        UINT wSize = -1 )
4600    {
4601        ViewDimension = D3D11_UAV_DIMENSION_TEXTURE3D;
4602        if (DXGI_FORMAT_UNKNOWN == format || -1 == wSize)
4603        {
4604            D3D11_TEXTURE3D_DESC TexDesc;
4605            pTex3D->GetDesc( &TexDesc );
4606            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
4607            if (-1 == wSize) wSize = TexDesc.Depth - firstWSlice;
4608        }
4609        Format = format;
4610        Texture3D.MipSlice = mipSlice;
4611        Texture3D.FirstWSlice = firstWSlice;
4612        Texture3D.WSize = wSize;
4613    }
4614    ~CD3D11_UNORDERED_ACCESS_VIEW_DESC() {}
4615    operator const D3D11_UNORDERED_ACCESS_VIEW_DESC&() const { return *this; }
4616};
4617extern "C"{
4618#endif
4619
4620
4621extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0013_v0_0_c_ifspec;
4622extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0013_v0_0_s_ifspec;
4623
4624#ifndef __ID3D11UnorderedAccessView_INTERFACE_DEFINED__
4625#define __ID3D11UnorderedAccessView_INTERFACE_DEFINED__
4626
4627/* interface ID3D11UnorderedAccessView */
4628/* [unique][local][object][uuid] */
4629
4630
4631EXTERN_C const IID IID_ID3D11UnorderedAccessView;
4632
4633#if defined(__cplusplus) && !defined(CINTERFACE)
4634   
4635    MIDL_INTERFACE("28acf509-7f5c-48f6-8611-f316010a6380")
4636    ID3D11UnorderedAccessView : public ID3D11View
4637    {
4638    public:
4639        virtual void STDMETHODCALLTYPE GetDesc(
4640            /* [annotation] */
4641            __out  D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc) = 0;
4642       
4643    };
4644   
4645#else    /* C style interface */
4646
4647    typedef struct ID3D11UnorderedAccessViewVtbl
4648    {
4649        BEGIN_INTERFACE
4650       
4651        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4652            ID3D11UnorderedAccessView * This,
4653            /* [in] */ REFIID riid,
4654            /* [annotation][iid_is][out] */
4655            __RPC__deref_out  void **ppvObject);
4656       
4657        ULONG ( STDMETHODCALLTYPE *AddRef )(
4658            ID3D11UnorderedAccessView * This);
4659       
4660        ULONG ( STDMETHODCALLTYPE *Release )(
4661            ID3D11UnorderedAccessView * This);
4662       
4663        void ( STDMETHODCALLTYPE *GetDevice )(
4664            ID3D11UnorderedAccessView * This,
4665            /* [annotation] */
4666            __out  ID3D11Device **ppDevice);
4667       
4668        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4669            ID3D11UnorderedAccessView * This,
4670            /* [annotation] */
4671            __in  REFGUID guid,
4672            /* [annotation] */
4673            __inout  UINT *pDataSize,
4674            /* [annotation] */
4675            __out_bcount_opt( *pDataSize )  void *pData);
4676       
4677        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4678            ID3D11UnorderedAccessView * This,
4679            /* [annotation] */
4680            __in  REFGUID guid,
4681            /* [annotation] */
4682            __in  UINT DataSize,
4683            /* [annotation] */
4684            __in_bcount_opt( DataSize )  const void *pData);
4685       
4686        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4687            ID3D11UnorderedAccessView * This,
4688            /* [annotation] */
4689            __in  REFGUID guid,
4690            /* [annotation] */
4691            __in_opt  const IUnknown *pData);
4692       
4693        void ( STDMETHODCALLTYPE *GetResource )(
4694            ID3D11UnorderedAccessView * This,
4695            /* [annotation] */
4696            __out  ID3D11Resource **ppResource);
4697       
4698        void ( STDMETHODCALLTYPE *GetDesc )(
4699            ID3D11UnorderedAccessView * This,
4700            /* [annotation] */
4701            __out  D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc);
4702       
4703        END_INTERFACE
4704    } ID3D11UnorderedAccessViewVtbl;
4705
4706    interface ID3D11UnorderedAccessView
4707    {
4708        CONST_VTBL struct ID3D11UnorderedAccessViewVtbl *lpVtbl;
4709    };
4710
4711   
4712
4713#ifdef COBJMACROS
4714
4715
4716#define ID3D11UnorderedAccessView_QueryInterface(This,riid,ppvObject)   \
4717    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4718
4719#define ID3D11UnorderedAccessView_AddRef(This)   \
4720    ( (This)->lpVtbl -> AddRef(This) )
4721
4722#define ID3D11UnorderedAccessView_Release(This)   \
4723    ( (This)->lpVtbl -> Release(This) )
4724
4725
4726#define ID3D11UnorderedAccessView_GetDevice(This,ppDevice)   \
4727    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4728
4729#define ID3D11UnorderedAccessView_GetPrivateData(This,guid,pDataSize,pData)   \
4730    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4731
4732#define ID3D11UnorderedAccessView_SetPrivateData(This,guid,DataSize,pData)   \
4733    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4734
4735#define ID3D11UnorderedAccessView_SetPrivateDataInterface(This,guid,pData)   \
4736    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4737
4738
4739#define ID3D11UnorderedAccessView_GetResource(This,ppResource)   \
4740    ( (This)->lpVtbl -> GetResource(This,ppResource) )
4741
4742
4743#define ID3D11UnorderedAccessView_GetDesc(This,pDesc)   \
4744    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
4745
4746#endif /* COBJMACROS */
4747
4748
4749#endif    /* C style interface */
4750
4751
4752
4753
4754#endif    /* __ID3D11UnorderedAccessView_INTERFACE_DEFINED__ */
4755
4756
4757#ifndef __ID3D11VertexShader_INTERFACE_DEFINED__
4758#define __ID3D11VertexShader_INTERFACE_DEFINED__
4759
4760/* interface ID3D11VertexShader */
4761/* [unique][local][object][uuid] */
4762
4763
4764EXTERN_C const IID IID_ID3D11VertexShader;
4765
4766#if defined(__cplusplus) && !defined(CINTERFACE)
4767   
4768    MIDL_INTERFACE("3b301d64-d678-4289-8897-22f8928b72f3")
4769    ID3D11VertexShader : public ID3D11DeviceChild
4770    {
4771    public:
4772    };
4773   
4774#else    /* C style interface */
4775
4776    typedef struct ID3D11VertexShaderVtbl
4777    {
4778        BEGIN_INTERFACE
4779       
4780        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4781            ID3D11VertexShader * This,
4782            /* [in] */ REFIID riid,
4783            /* [annotation][iid_is][out] */
4784            __RPC__deref_out  void **ppvObject);
4785       
4786        ULONG ( STDMETHODCALLTYPE *AddRef )(
4787            ID3D11VertexShader * This);
4788       
4789        ULONG ( STDMETHODCALLTYPE *Release )(
4790            ID3D11VertexShader * This);
4791       
4792        void ( STDMETHODCALLTYPE *GetDevice )(
4793            ID3D11VertexShader * This,
4794            /* [annotation] */
4795            __out  ID3D11Device **ppDevice);
4796       
4797        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4798            ID3D11VertexShader * This,
4799            /* [annotation] */
4800            __in  REFGUID guid,
4801            /* [annotation] */
4802            __inout  UINT *pDataSize,
4803            /* [annotation] */
4804            __out_bcount_opt( *pDataSize )  void *pData);
4805       
4806        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4807            ID3D11VertexShader * This,
4808            /* [annotation] */
4809            __in  REFGUID guid,
4810            /* [annotation] */
4811            __in  UINT DataSize,
4812            /* [annotation] */
4813            __in_bcount_opt( DataSize )  const void *pData);
4814       
4815        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4816            ID3D11VertexShader * This,
4817            /* [annotation] */
4818            __in  REFGUID guid,
4819            /* [annotation] */
4820            __in_opt  const IUnknown *pData);
4821       
4822        END_INTERFACE
4823    } ID3D11VertexShaderVtbl;
4824
4825    interface ID3D11VertexShader
4826    {
4827        CONST_VTBL struct ID3D11VertexShaderVtbl *lpVtbl;
4828    };
4829
4830   
4831
4832#ifdef COBJMACROS
4833
4834
4835#define ID3D11VertexShader_QueryInterface(This,riid,ppvObject)   \
4836    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4837
4838#define ID3D11VertexShader_AddRef(This)   \
4839    ( (This)->lpVtbl -> AddRef(This) )
4840
4841#define ID3D11VertexShader_Release(This)   \
4842    ( (This)->lpVtbl -> Release(This) )
4843
4844
4845#define ID3D11VertexShader_GetDevice(This,ppDevice)   \
4846    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4847
4848#define ID3D11VertexShader_GetPrivateData(This,guid,pDataSize,pData)   \
4849    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4850
4851#define ID3D11VertexShader_SetPrivateData(This,guid,DataSize,pData)   \
4852    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4853
4854#define ID3D11VertexShader_SetPrivateDataInterface(This,guid,pData)   \
4855    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4856
4857
4858#endif /* COBJMACROS */
4859
4860
4861#endif    /* C style interface */
4862
4863
4864
4865
4866#endif    /* __ID3D11VertexShader_INTERFACE_DEFINED__ */
4867
4868
4869#ifndef __ID3D11HullShader_INTERFACE_DEFINED__
4870#define __ID3D11HullShader_INTERFACE_DEFINED__
4871
4872/* interface ID3D11HullShader */
4873/* [unique][local][object][uuid] */
4874
4875
4876EXTERN_C const IID IID_ID3D11HullShader;
4877
4878#if defined(__cplusplus) && !defined(CINTERFACE)
4879   
4880    MIDL_INTERFACE("8e5c6061-628a-4c8e-8264-bbe45cb3d5dd")
4881    ID3D11HullShader : public ID3D11DeviceChild
4882    {
4883    public:
4884    };
4885   
4886#else    /* C style interface */
4887
4888    typedef struct ID3D11HullShaderVtbl
4889    {
4890        BEGIN_INTERFACE
4891       
4892        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4893            ID3D11HullShader * This,
4894            /* [in] */ REFIID riid,
4895            /* [annotation][iid_is][out] */
4896            __RPC__deref_out  void **ppvObject);
4897       
4898        ULONG ( STDMETHODCALLTYPE *AddRef )(
4899            ID3D11HullShader * This);
4900       
4901        ULONG ( STDMETHODCALLTYPE *Release )(
4902            ID3D11HullShader * This);
4903       
4904        void ( STDMETHODCALLTYPE *GetDevice )(
4905            ID3D11HullShader * This,
4906            /* [annotation] */
4907            __out  ID3D11Device **ppDevice);
4908       
4909        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4910            ID3D11HullShader * This,
4911            /* [annotation] */
4912            __in  REFGUID guid,
4913            /* [annotation] */
4914            __inout  UINT *pDataSize,
4915            /* [annotation] */
4916            __out_bcount_opt( *pDataSize )  void *pData);
4917       
4918        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4919            ID3D11HullShader * This,
4920            /* [annotation] */
4921            __in  REFGUID guid,
4922            /* [annotation] */
4923            __in  UINT DataSize,
4924            /* [annotation] */
4925            __in_bcount_opt( DataSize )  const void *pData);
4926       
4927        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4928            ID3D11HullShader * This,
4929            /* [annotation] */
4930            __in  REFGUID guid,
4931            /* [annotation] */
4932            __in_opt  const IUnknown *pData);
4933       
4934        END_INTERFACE
4935    } ID3D11HullShaderVtbl;
4936
4937    interface ID3D11HullShader
4938    {
4939        CONST_VTBL struct ID3D11HullShaderVtbl *lpVtbl;
4940    };
4941
4942   
4943
4944#ifdef COBJMACROS
4945
4946
4947#define ID3D11HullShader_QueryInterface(This,riid,ppvObject)   \
4948    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4949
4950#define ID3D11HullShader_AddRef(This)   \
4951    ( (This)->lpVtbl -> AddRef(This) )
4952
4953#define ID3D11HullShader_Release(This)   \
4954    ( (This)->lpVtbl -> Release(This) )
4955
4956
4957#define ID3D11HullShader_GetDevice(This,ppDevice)   \
4958    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4959
4960#define ID3D11HullShader_GetPrivateData(This,guid,pDataSize,pData)   \
4961    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4962
4963#define ID3D11HullShader_SetPrivateData(This,guid,DataSize,pData)   \
4964    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4965
4966#define ID3D11HullShader_SetPrivateDataInterface(This,guid,pData)   \
4967    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4968
4969
4970#endif /* COBJMACROS */
4971
4972
4973#endif    /* C style interface */
4974
4975
4976
4977
4978#endif    /* __ID3D11HullShader_INTERFACE_DEFINED__ */
4979
4980
4981#ifndef __ID3D11DomainShader_INTERFACE_DEFINED__
4982#define __ID3D11DomainShader_INTERFACE_DEFINED__
4983
4984/* interface ID3D11DomainShader */
4985/* [unique][local][object][uuid] */
4986
4987
4988EXTERN_C const IID IID_ID3D11DomainShader;
4989
4990#if defined(__cplusplus) && !defined(CINTERFACE)
4991   
4992    MIDL_INTERFACE("f582c508-0f36-490c-9977-31eece268cfa")
4993    ID3D11DomainShader : public ID3D11DeviceChild
4994    {
4995    public:
4996    };
4997   
4998#else    /* C style interface */
4999
5000    typedef struct ID3D11DomainShaderVtbl
5001    {
5002        BEGIN_INTERFACE
5003       
5004        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5005            ID3D11DomainShader * This,
5006            /* [in] */ REFIID riid,
5007            /* [annotation][iid_is][out] */
5008            __RPC__deref_out  void **ppvObject);
5009       
5010        ULONG ( STDMETHODCALLTYPE *AddRef )(
5011            ID3D11DomainShader * This);
5012       
5013        ULONG ( STDMETHODCALLTYPE *Release )(
5014            ID3D11DomainShader * This);
5015       
5016        void ( STDMETHODCALLTYPE *GetDevice )(
5017            ID3D11DomainShader * This,
5018            /* [annotation] */
5019            __out  ID3D11Device **ppDevice);
5020       
5021        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5022            ID3D11DomainShader * This,
5023            /* [annotation] */
5024            __in  REFGUID guid,
5025            /* [annotation] */
5026            __inout  UINT *pDataSize,
5027            /* [annotation] */
5028            __out_bcount_opt( *pDataSize )  void *pData);
5029       
5030        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5031            ID3D11DomainShader * This,
5032            /* [annotation] */
5033            __in  REFGUID guid,
5034            /* [annotation] */
5035            __in  UINT DataSize,
5036            /* [annotation] */
5037            __in_bcount_opt( DataSize )  const void *pData);
5038       
5039        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5040            ID3D11DomainShader * This,
5041            /* [annotation] */
5042            __in  REFGUID guid,
5043            /* [annotation] */
5044            __in_opt  const IUnknown *pData);
5045       
5046        END_INTERFACE
5047    } ID3D11DomainShaderVtbl;
5048
5049    interface ID3D11DomainShader
5050    {
5051        CONST_VTBL struct ID3D11DomainShaderVtbl *lpVtbl;
5052    };
5053
5054   
5055
5056#ifdef COBJMACROS
5057
5058
5059#define ID3D11DomainShader_QueryInterface(This,riid,ppvObject)   \
5060    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5061
5062#define ID3D11DomainShader_AddRef(This)   \
5063    ( (This)->lpVtbl -> AddRef(This) )
5064
5065#define ID3D11DomainShader_Release(This)   \
5066    ( (This)->lpVtbl -> Release(This) )
5067
5068
5069#define ID3D11DomainShader_GetDevice(This,ppDevice)   \
5070    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
5071
5072#define ID3D11DomainShader_GetPrivateData(This,guid,pDataSize,pData)   \
5073    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5074
5075#define ID3D11DomainShader_SetPrivateData(This,guid,DataSize,pData)   \
5076    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5077
5078#define ID3D11DomainShader_SetPrivateDataInterface(This,guid,pData)   \
5079    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5080
5081
5082#endif /* COBJMACROS */
5083
5084
5085#endif    /* C style interface */
5086
5087
5088
5089
5090#endif    /* __ID3D11DomainShader_INTERFACE_DEFINED__ */
5091
5092
5093#ifndef __ID3D11GeometryShader_INTERFACE_DEFINED__
5094#define __ID3D11GeometryShader_INTERFACE_DEFINED__
5095
5096/* interface ID3D11GeometryShader */
5097/* [unique][local][object][uuid] */
5098
5099
5100EXTERN_C const IID IID_ID3D11GeometryShader;
5101
5102#if defined(__cplusplus) && !defined(CINTERFACE)
5103   
5104    MIDL_INTERFACE("38325b96-effb-4022-ba02-2e795b70275c")
5105    ID3D11GeometryShader : public ID3D11DeviceChild
5106    {
5107    public:
5108    };
5109   
5110#else    /* C style interface */
5111
5112    typedef struct ID3D11GeometryShaderVtbl
5113    {
5114        BEGIN_INTERFACE
5115       
5116        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5117            ID3D11GeometryShader * This,
5118            /* [in] */ REFIID riid,
5119            /* [annotation][iid_is][out] */
5120            __RPC__deref_out  void **ppvObject);
5121       
5122        ULONG ( STDMETHODCALLTYPE *AddRef )(
5123            ID3D11GeometryShader * This);
5124       
5125        ULONG ( STDMETHODCALLTYPE *Release )(
5126            ID3D11GeometryShader * This);
5127       
5128        void ( STDMETHODCALLTYPE *GetDevice )(
5129            ID3D11GeometryShader * This,
5130            /* [annotation] */
5131            __out  ID3D11Device **ppDevice);
5132       
5133        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5134            ID3D11GeometryShader * This,
5135            /* [annotation] */
5136            __in  REFGUID guid,
5137            /* [annotation] */
5138            __inout  UINT *pDataSize,
5139            /* [annotation] */
5140            __out_bcount_opt( *pDataSize )  void *pData);
5141       
5142        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5143            ID3D11GeometryShader * This,
5144            /* [annotation] */
5145            __in  REFGUID guid,
5146            /* [annotation] */
5147            __in  UINT DataSize,
5148            /* [annotation] */
5149            __in_bcount_opt( DataSize )  const void *pData);
5150       
5151        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5152            ID3D11GeometryShader * This,
5153            /* [annotation] */
5154            __in  REFGUID guid,
5155            /* [annotation] */
5156            __in_opt  const IUnknown *pData);
5157       
5158        END_INTERFACE
5159    } ID3D11GeometryShaderVtbl;
5160
5161    interface ID3D11GeometryShader
5162    {
5163        CONST_VTBL struct ID3D11GeometryShaderVtbl *lpVtbl;
5164    };
5165
5166   
5167
5168#ifdef COBJMACROS
5169
5170
5171#define ID3D11GeometryShader_QueryInterface(This,riid,ppvObject)   \
5172    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5173
5174#define ID3D11GeometryShader_AddRef(This)   \
5175    ( (This)->lpVtbl -> AddRef(This) )
5176
5177#define ID3D11GeometryShader_Release(This)   \
5178    ( (This)->lpVtbl -> Release(This) )
5179
5180
5181#define ID3D11GeometryShader_GetDevice(This,ppDevice)   \
5182    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
5183
5184#define ID3D11GeometryShader_GetPrivateData(This,guid,pDataSize,pData)   \
5185    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5186
5187#define ID3D11GeometryShader_SetPrivateData(This,guid,DataSize,pData)   \
5188    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5189
5190#define ID3D11GeometryShader_SetPrivateDataInterface(This,guid,pData)   \
5191    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5192
5193
5194#endif /* COBJMACROS */
5195
5196
5197#endif    /* C style interface */
5198
5199
5200
5201
5202#endif    /* __ID3D11GeometryShader_INTERFACE_DEFINED__ */
5203
5204
5205#ifndef __ID3D11PixelShader_INTERFACE_DEFINED__
5206#define __ID3D11PixelShader_INTERFACE_DEFINED__
5207
5208/* interface ID3D11PixelShader */
5209/* [unique][local][object][uuid] */
5210
5211
5212EXTERN_C const IID IID_ID3D11PixelShader;
5213
5214#if defined(__cplusplus) && !defined(CINTERFACE)
5215   
5216    MIDL_INTERFACE("ea82e40d-51dc-4f33-93d4-db7c9125ae8c")
5217    ID3D11PixelShader : public ID3D11DeviceChild
5218    {
5219    public:
5220    };
5221   
5222#else    /* C style interface */
5223
5224    typedef struct ID3D11PixelShaderVtbl
5225    {
5226        BEGIN_INTERFACE
5227       
5228        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5229            ID3D11PixelShader * This,
5230            /* [in] */ REFIID riid,
5231            /* [annotation][iid_is][out] */
5232            __RPC__deref_out  void **ppvObject);
5233       
5234        ULONG ( STDMETHODCALLTYPE *AddRef )(
5235            ID3D11PixelShader * This);
5236       
5237        ULONG ( STDMETHODCALLTYPE *Release )(
5238            ID3D11PixelShader * This);
5239       
5240        void ( STDMETHODCALLTYPE *GetDevice )(
5241            ID3D11PixelShader * This,
5242            /* [annotation] */
5243            __out  ID3D11Device **ppDevice);
5244       
5245        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5246            ID3D11PixelShader * This,
5247            /* [annotation] */
5248            __in  REFGUID guid,
5249            /* [annotation] */
5250            __inout  UINT *pDataSize,
5251            /* [annotation] */
5252            __out_bcount_opt( *pDataSize )  void *pData);
5253       
5254        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5255            ID3D11PixelShader * This,
5256            /* [annotation] */
5257            __in  REFGUID guid,
5258            /* [annotation] */
5259            __in  UINT DataSize,
5260            /* [annotation] */
5261            __in_bcount_opt( DataSize )  const void *pData);
5262       
5263        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5264            ID3D11PixelShader * This,
5265            /* [annotation] */
5266            __in  REFGUID guid,
5267            /* [annotation] */
5268            __in_opt  const IUnknown *pData);
5269       
5270        END_INTERFACE
5271    } ID3D11PixelShaderVtbl;
5272
5273    interface ID3D11PixelShader
5274    {
5275        CONST_VTBL struct ID3D11PixelShaderVtbl *lpVtbl;
5276    };
5277
5278   
5279
5280#ifdef COBJMACROS
5281
5282
5283#define ID3D11PixelShader_QueryInterface(This,riid,ppvObject)   \
5284    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5285
5286#define ID3D11PixelShader_AddRef(This)   \
5287    ( (This)->lpVtbl -> AddRef(This) )
5288
5289#define ID3D11PixelShader_Release(This)   \
5290    ( (This)->lpVtbl -> Release(This) )
5291
5292
5293#define ID3D11PixelShader_GetDevice(This,ppDevice)   \
5294    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
5295
5296#define ID3D11PixelShader_GetPrivateData(This,guid,pDataSize,pData)   \
5297    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5298
5299#define ID3D11PixelShader_SetPrivateData(This,guid,DataSize,pData)   \
5300    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5301
5302#define ID3D11PixelShader_SetPrivateDataInterface(This,guid,pData)   \
5303    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5304
5305
5306#endif /* COBJMACROS */
5307
5308
5309#endif    /* C style interface */
5310
5311
5312
5313
5314#endif    /* __ID3D11PixelShader_INTERFACE_DEFINED__ */
5315
5316
5317#ifndef __ID3D11ComputeShader_INTERFACE_DEFINED__
5318#define __ID3D11ComputeShader_INTERFACE_DEFINED__
5319
5320/* interface ID3D11ComputeShader */
5321/* [unique][local][object][uuid] */
5322
5323
5324EXTERN_C const IID IID_ID3D11ComputeShader;
5325
5326#if defined(__cplusplus) && !defined(CINTERFACE)
5327   
5328    MIDL_INTERFACE("4f5b196e-c2bd-495e-bd01-1fded38e4969")
5329    ID3D11ComputeShader : public ID3D11DeviceChild
5330    {
5331    public:
5332    };
5333   
5334#else    /* C style interface */
5335
5336    typedef struct ID3D11ComputeShaderVtbl
5337    {
5338        BEGIN_INTERFACE
5339       
5340        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5341            ID3D11ComputeShader * This,
5342            /* [in] */ REFIID riid,
5343            /* [annotation][iid_is][out] */
5344            __RPC__deref_out  void **ppvObject);
5345       
5346        ULONG ( STDMETHODCALLTYPE *AddRef )(
5347            ID3D11ComputeShader * This);
5348       
5349        ULONG ( STDMETHODCALLTYPE *Release )(
5350            ID3D11ComputeShader * This);
5351       
5352        void ( STDMETHODCALLTYPE *GetDevice )(
5353            ID3D11ComputeShader * This,
5354            /* [annotation] */
5355            __out  ID3D11Device **ppDevice);
5356       
5357        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5358            ID3D11ComputeShader * This,
5359            /* [annotation] */
5360            __in  REFGUID guid,
5361            /* [annotation] */
5362            __inout  UINT *pDataSize,
5363            /* [annotation] */
5364            __out_bcount_opt( *pDataSize )  void *pData);
5365       
5366        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5367            ID3D11ComputeShader * This,
5368            /* [annotation] */
5369            __in  REFGUID guid,
5370            /* [annotation] */
5371            __in  UINT DataSize,
5372            /* [annotation] */
5373            __in_bcount_opt( DataSize )  const void *pData);
5374       
5375        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5376            ID3D11ComputeShader * This,
5377            /* [annotation] */
5378            __in  REFGUID guid,
5379            /* [annotation] */
5380            __in_opt  const IUnknown *pData);
5381       
5382        END_INTERFACE
5383    } ID3D11ComputeShaderVtbl;
5384
5385    interface ID3D11ComputeShader
5386    {
5387        CONST_VTBL struct ID3D11ComputeShaderVtbl *lpVtbl;
5388    };
5389
5390   
5391
5392#ifdef COBJMACROS
5393
5394
5395#define ID3D11ComputeShader_QueryInterface(This,riid,ppvObject)   \
5396    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5397
5398#define ID3D11ComputeShader_AddRef(This)   \
5399    ( (This)->lpVtbl -> AddRef(This) )
5400
5401#define ID3D11ComputeShader_Release(This)   \
5402    ( (This)->lpVtbl -> Release(This) )
5403
5404
5405#define ID3D11ComputeShader_GetDevice(This,ppDevice)   \
5406    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
5407
5408#define ID3D11ComputeShader_GetPrivateData(This,guid,pDataSize,pData)   \
5409    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5410
5411#define ID3D11ComputeShader_SetPrivateData(This,guid,DataSize,pData)   \
5412    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5413
5414#define ID3D11ComputeShader_SetPrivateDataInterface(This,guid,pData)   \
5415    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5416
5417
5418#endif /* COBJMACROS */
5419
5420
5421#endif    /* C style interface */
5422
5423
5424
5425
5426#endif    /* __ID3D11ComputeShader_INTERFACE_DEFINED__ */
5427
5428
5429#ifndef __ID3D11InputLayout_INTERFACE_DEFINED__
5430#define __ID3D11InputLayout_INTERFACE_DEFINED__
5431
5432/* interface ID3D11InputLayout */
5433/* [unique][local][object][uuid] */
5434
5435
5436EXTERN_C const IID IID_ID3D11InputLayout;
5437
5438#if defined(__cplusplus) && !defined(CINTERFACE)
5439   
5440    MIDL_INTERFACE("e4819ddc-4cf0-4025-bd26-5de82a3e07b7")
5441    ID3D11InputLayout : public ID3D11DeviceChild
5442    {
5443    public:
5444    };
5445   
5446#else    /* C style interface */
5447
5448    typedef struct ID3D11InputLayoutVtbl
5449    {
5450        BEGIN_INTERFACE
5451       
5452        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5453            ID3D11InputLayout * This,
5454            /* [in] */ REFIID riid,
5455            /* [annotation][iid_is][out] */
5456            __RPC__deref_out  void **ppvObject);
5457       
5458        ULONG ( STDMETHODCALLTYPE *AddRef )(
5459            ID3D11InputLayout * This);
5460       
5461        ULONG ( STDMETHODCALLTYPE *Release )(
5462            ID3D11InputLayout * This);
5463       
5464        void ( STDMETHODCALLTYPE *GetDevice )(
5465            ID3D11InputLayout * This,
5466            /* [annotation] */
5467            __out  ID3D11Device **ppDevice);
5468       
5469        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5470            ID3D11InputLayout * This,
5471            /* [annotation] */
5472            __in  REFGUID guid,
5473            /* [annotation] */
5474            __inout  UINT *pDataSize,
5475            /* [annotation] */
5476            __out_bcount_opt( *pDataSize )  void *pData);
5477       
5478        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5479            ID3D11InputLayout * This,
5480            /* [annotation] */
5481            __in  REFGUID guid,
5482            /* [annotation] */
5483            __in  UINT DataSize,
5484            /* [annotation] */
5485            __in_bcount_opt( DataSize )  const void *pData);
5486       
5487        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5488            ID3D11InputLayout * This,
5489            /* [annotation] */
5490            __in  REFGUID guid,
5491            /* [annotation] */
5492            __in_opt  const IUnknown *pData);
5493       
5494        END_INTERFACE
5495    } ID3D11InputLayoutVtbl;
5496
5497    interface ID3D11InputLayout
5498    {
5499        CONST_VTBL struct ID3D11InputLayoutVtbl *lpVtbl;
5500    };
5501
5502   
5503
5504#ifdef COBJMACROS
5505
5506
5507#define ID3D11InputLayout_QueryInterface(This,riid,ppvObject)   \
5508    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5509
5510#define ID3D11InputLayout_AddRef(This)   \
5511    ( (This)->lpVtbl -> AddRef(This) )
5512
5513#define ID3D11InputLayout_Release(This)   \
5514    ( (This)->lpVtbl -> Release(This) )
5515
5516
5517#define ID3D11InputLayout_GetDevice(This,ppDevice)   \
5518    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
5519
5520#define ID3D11InputLayout_GetPrivateData(This,guid,pDataSize,pData)   \
5521    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5522
5523#define ID3D11InputLayout_SetPrivateData(This,guid,DataSize,pData)   \
5524    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5525
5526#define ID3D11InputLayout_SetPrivateDataInterface(This,guid,pData)   \
5527    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5528
5529
5530#endif /* COBJMACROS */
5531
5532
5533#endif    /* C style interface */
5534
5535
5536
5537
5538#endif    /* __ID3D11InputLayout_INTERFACE_DEFINED__ */
5539
5540
5541/* interface __MIDL_itf_d3d11_0000_0021 */
5542/* [local] */
5543
5544typedef
5545enum D3D11_FILTER
5546    {   D3D11_FILTER_MIN_MAG_MIP_POINT   = 0,
5547   D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR   = 0x1,
5548   D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT   = 0x4,
5549   D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR   = 0x5,
5550   D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT   = 0x10,
5551   D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR   = 0x11,
5552   D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT   = 0x14,
5553   D3D11_FILTER_MIN_MAG_MIP_LINEAR   = 0x15,
5554   D3D11_FILTER_ANISOTROPIC   = 0x55,
5555   D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT   = 0x80,
5556   D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR   = 0x81,
5557   D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT   = 0x84,
5558   D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR   = 0x85,
5559   D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT   = 0x90,
5560   D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR   = 0x91,
5561   D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT   = 0x94,
5562   D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR   = 0x95,
5563   D3D11_FILTER_COMPARISON_ANISOTROPIC   = 0xd5
5564    }    D3D11_FILTER;
5565
5566typedef
5567enum D3D11_FILTER_TYPE
5568    {   D3D11_FILTER_TYPE_POINT   = 0,
5569   D3D11_FILTER_TYPE_LINEAR   = 1
5570    }    D3D11_FILTER_TYPE;
5571
5572#define   D3D11_FILTER_TYPE_MASK   ( 0x3 )
5573
5574#define   D3D11_MIN_FILTER_SHIFT   ( 4 )
5575
5576#define   D3D11_MAG_FILTER_SHIFT   ( 2 )
5577
5578#define   D3D11_MIP_FILTER_SHIFT   ( 0 )
5579
5580#define   D3D11_COMPARISON_FILTERING_BIT   ( 0x80 )
5581
5582#define   D3D11_ANISOTROPIC_FILTERING_BIT   ( 0x40 )
5583
5584#define D3D11_ENCODE_BASIC_FILTER( min, mag, mip, bComparison )                                           \
5585                                   ( ( D3D11_FILTER ) (                                                   \
5586                                   ( ( bComparison ) ? D3D11_COMPARISON_FILTERING_BIT : 0 ) |             \
5587                                   ( ( ( min ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIN_FILTER_SHIFT ) |   \
5588                                   ( ( ( mag ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MAG_FILTER_SHIFT ) |   \
5589                                   ( ( ( mip ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIP_FILTER_SHIFT ) ) )   
5590#define D3D11_ENCODE_ANISOTROPIC_FILTER( bComparison )                                                \
5591                                         ( ( D3D11_FILTER ) (                                         \
5592                                         D3D11_ANISOTROPIC_FILTERING_BIT |                            \
5593                                         D3D11_ENCODE_BASIC_FILTER( D3D11_FILTER_TYPE_LINEAR,         \
5594                                                                    D3D11_FILTER_TYPE_LINEAR,         \
5595                                                                    D3D11_FILTER_TYPE_LINEAR,         \
5596                                                                    bComparison ) ) )                   
5597#define D3D11_DECODE_MIN_FILTER( d3d11Filter )                                                              \
5598                                 ( ( D3D11_FILTER_TYPE )                                                    \
5599                                 ( ( ( d3d11Filter ) >> D3D11_MIN_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) )
5600#define D3D11_DECODE_MAG_FILTER( d3d11Filter )                                                              \
5601                                 ( ( D3D11_FILTER_TYPE )                                                    \
5602                                 ( ( ( d3d11Filter ) >> D3D11_MAG_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) )
5603#define D3D11_DECODE_MIP_FILTER( d3d11Filter )                                                              \
5604                                 ( ( D3D11_FILTER_TYPE )                                                    \
5605                                 ( ( ( d3d11Filter ) >> D3D11_MIP_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) )
5606#define D3D11_DECODE_IS_COMPARISON_FILTER( d3d11Filter )                                                    \
5607                                 ( ( d3d11Filter ) & D3D11_COMPARISON_FILTERING_BIT )                         
5608#define D3D11_DECODE_IS_ANISOTROPIC_FILTER( d3d11Filter )                                               \
5609                            ( ( ( d3d11Filter ) & D3D11_ANISOTROPIC_FILTERING_BIT ) &&                  \
5610                            ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIN_FILTER( d3d11Filter ) ) &&   \
5611                            ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MAG_FILTER( d3d11Filter ) ) &&   \
5612                            ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIP_FILTER( d3d11Filter ) ) )     
5613typedef
5614enum D3D11_TEXTURE_ADDRESS_MODE
5615    {   D3D11_TEXTURE_ADDRESS_WRAP   = 1,
5616   D3D11_TEXTURE_ADDRESS_MIRROR   = 2,
5617   D3D11_TEXTURE_ADDRESS_CLAMP   = 3,
5618   D3D11_TEXTURE_ADDRESS_BORDER   = 4,
5619   D3D11_TEXTURE_ADDRESS_MIRROR_ONCE   = 5
5620    }    D3D11_TEXTURE_ADDRESS_MODE;
5621
5622typedef struct D3D11_SAMPLER_DESC
5623    {
5624    D3D11_FILTER Filter;
5625    D3D11_TEXTURE_ADDRESS_MODE AddressU;
5626    D3D11_TEXTURE_ADDRESS_MODE AddressV;
5627    D3D11_TEXTURE_ADDRESS_MODE AddressW;
5628    FLOAT MipLODBias;
5629    UINT MaxAnisotropy;
5630    D3D11_COMPARISON_FUNC ComparisonFunc;
5631    FLOAT BorderColor[ 4 ];
5632    FLOAT MinLOD;
5633    FLOAT MaxLOD;
5634    }    D3D11_SAMPLER_DESC;
5635
5636#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
5637}
5638struct CD3D11_SAMPLER_DESC : public D3D11_SAMPLER_DESC
5639{
5640    CD3D11_SAMPLER_DESC()
5641    {}
5642    explicit CD3D11_SAMPLER_DESC( const D3D11_SAMPLER_DESC& o ) :
5643        D3D11_SAMPLER_DESC( o )
5644    {}
5645    explicit CD3D11_SAMPLER_DESC( CD3D11_DEFAULT )
5646    {
5647        Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR;
5648        AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;
5649        AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;
5650        AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
5651        MipLODBias = 0;
5652        MaxAnisotropy = 1;
5653        ComparisonFunc = D3D11_COMPARISON_NEVER;
5654        BorderColor[ 0 ] = 1.0f;
5655        BorderColor[ 1 ] = 1.0f;
5656        BorderColor[ 2 ] = 1.0f;
5657        BorderColor[ 3 ] = 1.0f;
5658        MinLOD = -3.402823466e+38F; // -FLT_MAX
5659        MaxLOD = 3.402823466e+38F; // FLT_MAX
5660    }
5661    explicit CD3D11_SAMPLER_DESC(
5662        D3D11_FILTER filter,
5663        D3D11_TEXTURE_ADDRESS_MODE addressU,
5664        D3D11_TEXTURE_ADDRESS_MODE addressV,
5665        D3D11_TEXTURE_ADDRESS_MODE addressW,
5666        FLOAT mipLODBias,
5667        UINT maxAnisotropy,
5668        D3D11_COMPARISON_FUNC comparisonFunc,
5669        __in_ecount_opt( 4 ) const FLOAT* borderColor, // RGBA
5670        FLOAT minLOD,
5671        FLOAT maxLOD )
5672    {
5673        Filter = filter;
5674        AddressU = addressU;
5675        AddressV = addressV;
5676        AddressW = addressW;
5677        MipLODBias = mipLODBias;
5678        MaxAnisotropy = maxAnisotropy;
5679        ComparisonFunc = comparisonFunc;
5680        const float defaultColor[ 4 ] = { 1.0f, 1.0f, 1.0f, 1.0f };
5681        if (!borderColor) borderColor = defaultColor;
5682        BorderColor[ 0 ] = borderColor[ 0 ];
5683        BorderColor[ 1 ] = borderColor[ 1 ];
5684        BorderColor[ 2 ] = borderColor[ 2 ];
5685        BorderColor[ 3 ] = borderColor[ 3 ];
5686        MinLOD = minLOD;
5687        MaxLOD = maxLOD;
5688    }
5689    ~CD3D11_SAMPLER_DESC() {}
5690    operator const D3D11_SAMPLER_DESC&() const { return *this; }
5691};
5692extern "C"{
5693#endif
5694
5695
5696extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0021_v0_0_c_ifspec;
5697extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0021_v0_0_s_ifspec;
5698
5699#ifndef __ID3D11SamplerState_INTERFACE_DEFINED__
5700#define __ID3D11SamplerState_INTERFACE_DEFINED__
5701
5702/* interface ID3D11SamplerState */
5703/* [unique][local][object][uuid] */
5704
5705
5706EXTERN_C const IID IID_ID3D11SamplerState;
5707
5708#if defined(__cplusplus) && !defined(CINTERFACE)
5709   
5710    MIDL_INTERFACE("da6fea51-564c-4487-9810-f0d0f9b4e3a5")
5711    ID3D11SamplerState : public ID3D11DeviceChild
5712    {
5713    public:
5714        virtual void STDMETHODCALLTYPE GetDesc(
5715            /* [annotation] */
5716            __out  D3D11_SAMPLER_DESC *pDesc) = 0;
5717       
5718    };
5719   
5720#else    /* C style interface */
5721
5722    typedef struct ID3D11SamplerStateVtbl
5723    {
5724        BEGIN_INTERFACE
5725       
5726        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5727            ID3D11SamplerState * This,
5728            /* [in] */ REFIID riid,
5729            /* [annotation][iid_is][out] */
5730            __RPC__deref_out  void **ppvObject);
5731       
5732        ULONG ( STDMETHODCALLTYPE *AddRef )(
5733            ID3D11SamplerState * This);
5734       
5735        ULONG ( STDMETHODCALLTYPE *Release )(
5736            ID3D11SamplerState * This);
5737       
5738        void ( STDMETHODCALLTYPE *GetDevice )(
5739            ID3D11SamplerState * This,
5740            /* [annotation] */
5741            __out  ID3D11Device **ppDevice);
5742       
5743        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5744            ID3D11SamplerState * This,
5745            /* [annotation] */
5746            __in  REFGUID guid,
5747            /* [annotation] */
5748            __inout  UINT *pDataSize,
5749            /* [annotation] */
5750            __out_bcount_opt( *pDataSize )  void *pData);
5751       
5752        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5753            ID3D11SamplerState * This,
5754            /* [annotation] */
5755            __in  REFGUID guid,
5756            /* [annotation] */
5757            __in  UINT DataSize,
5758            /* [annotation] */
5759            __in_bcount_opt( DataSize )  const void *pData);
5760       
5761        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5762            ID3D11SamplerState * This,
5763            /* [annotation] */
5764            __in  REFGUID guid,
5765            /* [annotation] */
5766            __in_opt  const IUnknown *pData);
5767       
5768        void ( STDMETHODCALLTYPE *GetDesc )(
5769            ID3D11SamplerState * This,
5770            /* [annotation] */
5771            __out  D3D11_SAMPLER_DESC *pDesc);
5772       
5773        END_INTERFACE
5774    } ID3D11SamplerStateVtbl;
5775
5776    interface ID3D11SamplerState
5777    {
5778        CONST_VTBL struct ID3D11SamplerStateVtbl *lpVtbl;
5779    };
5780
5781   
5782
5783#ifdef COBJMACROS
5784
5785
5786#define ID3D11SamplerState_QueryInterface(This,riid,ppvObject)   \
5787    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5788
5789#define ID3D11SamplerState_AddRef(This)   \
5790    ( (This)->lpVtbl -> AddRef(This) )
5791
5792#define ID3D11SamplerState_Release(This)   \
5793    ( (This)->lpVtbl -> Release(This) )
5794
5795
5796#define ID3D11SamplerState_GetDevice(This,ppDevice)   \
5797    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
5798
5799#define ID3D11SamplerState_GetPrivateData(This,guid,pDataSize,pData)   \
5800    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5801
5802#define ID3D11SamplerState_SetPrivateData(This,guid,DataSize,pData)   \
5803    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5804
5805#define ID3D11SamplerState_SetPrivateDataInterface(This,guid,pData)   \
5806    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5807
5808
5809#define ID3D11SamplerState_GetDesc(This,pDesc)   \
5810    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
5811
5812#endif /* COBJMACROS */
5813
5814
5815#endif    /* C style interface */
5816
5817
5818
5819
5820#endif    /* __ID3D11SamplerState_INTERFACE_DEFINED__ */
5821
5822
5823/* interface __MIDL_itf_d3d11_0000_0022 */
5824/* [local] */
5825
5826typedef
5827enum D3D11_FORMAT_SUPPORT
5828    {   D3D11_FORMAT_SUPPORT_BUFFER   = 0x1,
5829   D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER   = 0x2,
5830   D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER   = 0x4,
5831   D3D11_FORMAT_SUPPORT_SO_BUFFER   = 0x8,
5832   D3D11_FORMAT_SUPPORT_TEXTURE1D   = 0x10,
5833   D3D11_FORMAT_SUPPORT_TEXTURE2D   = 0x20,
5834   D3D11_FORMAT_SUPPORT_TEXTURE3D   = 0x40,
5835   D3D11_FORMAT_SUPPORT_TEXTURECUBE   = 0x80,
5836   D3D11_FORMAT_SUPPORT_SHADER_LOAD   = 0x100,
5837   D3D11_FORMAT_SUPPORT_SHADER_SAMPLE   = 0x200,
5838   D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON   = 0x400,
5839   D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT   = 0x800,
5840   D3D11_FORMAT_SUPPORT_MIP   = 0x1000,
5841   D3D11_FORMAT_SUPPORT_MIP_AUTOGEN   = 0x2000,
5842   D3D11_FORMAT_SUPPORT_RENDER_TARGET   = 0x4000,
5843   D3D11_FORMAT_SUPPORT_BLENDABLE   = 0x8000,
5844   D3D11_FORMAT_SUPPORT_DEPTH_STENCIL   = 0x10000,
5845   D3D11_FORMAT_SUPPORT_CPU_LOCKABLE   = 0x20000,
5846   D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE   = 0x40000,
5847   D3D11_FORMAT_SUPPORT_DISPLAY   = 0x80000,
5848   D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT   = 0x100000,
5849   D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET   = 0x200000,
5850   D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD   = 0x400000,
5851   D3D11_FORMAT_SUPPORT_SHADER_GATHER   = 0x800000,
5852   D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST   = 0x1000000,
5853   D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW   = 0x2000000,
5854   D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON   = 0x4000000
5855    }    D3D11_FORMAT_SUPPORT;
5856
5857typedef
5858enum D3D11_FORMAT_SUPPORT2
5859    {   D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD   = 0x1,
5860   D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS   = 0x2,
5861   D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE   = 0x4,
5862   D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE   = 0x8,
5863   D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX   = 0x10,
5864   D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX   = 0x20,
5865   D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD   = 0x40,
5866   D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE   = 0x80
5867    }    D3D11_FORMAT_SUPPORT2;
5868
5869
5870
5871extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0022_v0_0_c_ifspec;
5872extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0022_v0_0_s_ifspec;
5873
5874#ifndef __ID3D11Asynchronous_INTERFACE_DEFINED__
5875#define __ID3D11Asynchronous_INTERFACE_DEFINED__
5876
5877/* interface ID3D11Asynchronous */
5878/* [unique][local][object][uuid] */
5879
5880
5881EXTERN_C const IID IID_ID3D11Asynchronous;
5882
5883#if defined(__cplusplus) && !defined(CINTERFACE)
5884   
5885    MIDL_INTERFACE("4b35d0cd-1e15-4258-9c98-1b1333f6dd3b")
5886    ID3D11Asynchronous : public ID3D11DeviceChild
5887    {
5888    public:
5889        virtual UINT STDMETHODCALLTYPE GetDataSize( void) = 0;
5890       
5891    };
5892   
5893#else    /* C style interface */
5894
5895    typedef struct ID3D11AsynchronousVtbl
5896    {
5897        BEGIN_INTERFACE
5898       
5899        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5900            ID3D11Asynchronous * This,
5901            /* [in] */ REFIID riid,
5902            /* [annotation][iid_is][out] */
5903            __RPC__deref_out  void **ppvObject);
5904       
5905        ULONG ( STDMETHODCALLTYPE *AddRef )(
5906            ID3D11Asynchronous * This);
5907       
5908        ULONG ( STDMETHODCALLTYPE *Release )(
5909            ID3D11Asynchronous * This);
5910       
5911        void ( STDMETHODCALLTYPE *GetDevice )(
5912            ID3D11Asynchronous * This,
5913            /* [annotation] */
5914            __out  ID3D11Device **ppDevice);
5915       
5916        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5917            ID3D11Asynchronous * This,
5918            /* [annotation] */
5919            __in  REFGUID guid,
5920            /* [annotation] */
5921            __inout  UINT *pDataSize,
5922            /* [annotation] */
5923            __out_bcount_opt( *pDataSize )  void *pData);
5924       
5925        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5926            ID3D11Asynchronous * This,
5927            /* [annotation] */
5928            __in  REFGUID guid,
5929            /* [annotation] */
5930            __in  UINT DataSize,
5931            /* [annotation] */
5932            __in_bcount_opt( DataSize )  const void *pData);
5933       
5934        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5935            ID3D11Asynchronous * This,
5936            /* [annotation] */
5937            __in  REFGUID guid,
5938            /* [annotation] */
5939            __in_opt  const IUnknown *pData);
5940       
5941        UINT ( STDMETHODCALLTYPE *GetDataSize )(
5942            ID3D11Asynchronous * This);
5943       
5944        END_INTERFACE
5945    } ID3D11AsynchronousVtbl;
5946
5947    interface ID3D11Asynchronous
5948    {
5949        CONST_VTBL struct ID3D11AsynchronousVtbl *lpVtbl;
5950    };
5951
5952   
5953
5954#ifdef COBJMACROS
5955
5956
5957#define ID3D11Asynchronous_QueryInterface(This,riid,ppvObject)   \
5958    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5959
5960#define ID3D11Asynchronous_AddRef(This)   \
5961    ( (This)->lpVtbl -> AddRef(This) )
5962
5963#define ID3D11Asynchronous_Release(This)   \
5964    ( (This)->lpVtbl -> Release(This) )
5965
5966
5967#define ID3D11Asynchronous_GetDevice(This,ppDevice)   \
5968    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
5969
5970#define ID3D11Asynchronous_GetPrivateData(This,guid,pDataSize,pData)   \
5971    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5972
5973#define ID3D11Asynchronous_SetPrivateData(This,guid,DataSize,pData)   \
5974    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5975
5976#define ID3D11Asynchronous_SetPrivateDataInterface(This,guid,pData)   \
5977    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5978
5979
5980#define ID3D11Asynchronous_GetDataSize(This)   \
5981    ( (This)->lpVtbl -> GetDataSize(This) )
5982
5983#endif /* COBJMACROS */
5984
5985
5986#endif    /* C style interface */
5987
5988
5989
5990
5991#endif    /* __ID3D11Asynchronous_INTERFACE_DEFINED__ */
5992
5993
5994/* interface __MIDL_itf_d3d11_0000_0023 */
5995/* [local] */
5996
5997typedef
5998enum D3D11_ASYNC_GETDATA_FLAG
5999    {   D3D11_ASYNC_GETDATA_DONOTFLUSH   = 0x1
6000    }    D3D11_ASYNC_GETDATA_FLAG;
6001
6002typedef
6003enum D3D11_QUERY
6004    {   D3D11_QUERY_EVENT   = 0,
6005   D3D11_QUERY_OCCLUSION   = ( D3D11_QUERY_EVENT + 1 ) ,
6006   D3D11_QUERY_TIMESTAMP   = ( D3D11_QUERY_OCCLUSION + 1 ) ,
6007   D3D11_QUERY_TIMESTAMP_DISJOINT   = ( D3D11_QUERY_TIMESTAMP + 1 ) ,
6008   D3D11_QUERY_PIPELINE_STATISTICS   = ( D3D11_QUERY_TIMESTAMP_DISJOINT + 1 ) ,
6009   D3D11_QUERY_OCCLUSION_PREDICATE   = ( D3D11_QUERY_PIPELINE_STATISTICS + 1 ) ,
6010   D3D11_QUERY_SO_STATISTICS   = ( D3D11_QUERY_OCCLUSION_PREDICATE + 1 ) ,
6011   D3D11_QUERY_SO_OVERFLOW_PREDICATE   = ( D3D11_QUERY_SO_STATISTICS + 1 ) ,
6012   D3D11_QUERY_SO_STATISTICS_STREAM0   = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE + 1 ) ,
6013   D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0   = ( D3D11_QUERY_SO_STATISTICS_STREAM0 + 1 ) ,
6014   D3D11_QUERY_SO_STATISTICS_STREAM1   = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 + 1 ) ,
6015   D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1   = ( D3D11_QUERY_SO_STATISTICS_STREAM1 + 1 ) ,
6016   D3D11_QUERY_SO_STATISTICS_STREAM2   = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 + 1 ) ,
6017   D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2   = ( D3D11_QUERY_SO_STATISTICS_STREAM2 + 1 ) ,
6018   D3D11_QUERY_SO_STATISTICS_STREAM3   = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 + 1 ) ,
6019   D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3   = ( D3D11_QUERY_SO_STATISTICS_STREAM3 + 1 )
6020    }    D3D11_QUERY;
6021
6022typedef
6023enum D3D11_QUERY_MISC_FLAG
6024    {   D3D11_QUERY_MISC_PREDICATEHINT   = 0x1
6025    }    D3D11_QUERY_MISC_FLAG;
6026
6027typedef struct D3D11_QUERY_DESC
6028    {
6029    D3D11_QUERY Query;
6030    UINT MiscFlags;
6031    }    D3D11_QUERY_DESC;
6032
6033#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
6034}
6035struct CD3D11_QUERY_DESC : public D3D11_QUERY_DESC
6036{
6037    CD3D11_QUERY_DESC()
6038    {}
6039    explicit CD3D11_QUERY_DESC( const D3D11_QUERY_DESC& o ) :
6040        D3D11_QUERY_DESC( o )
6041    {}
6042    explicit CD3D11_QUERY_DESC(
6043        D3D11_QUERY query,
6044        UINT miscFlags = 0 )
6045    {
6046        Query = query;
6047        MiscFlags = miscFlags;
6048    }
6049    ~CD3D11_QUERY_DESC() {}
6050    operator const D3D11_QUERY_DESC&() const { return *this; }
6051};
6052extern "C"{
6053#endif
6054
6055
6056extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0023_v0_0_c_ifspec;
6057extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0023_v0_0_s_ifspec;
6058
6059#ifndef __ID3D11Query_INTERFACE_DEFINED__
6060#define __ID3D11Query_INTERFACE_DEFINED__
6061
6062/* interface ID3D11Query */
6063/* [unique][local][object][uuid] */
6064
6065
6066EXTERN_C const IID IID_ID3D11Query;
6067
6068#if defined(__cplusplus) && !defined(CINTERFACE)
6069   
6070    MIDL_INTERFACE("d6c00747-87b7-425e-b84d-44d108560afd")
6071    ID3D11Query : public ID3D11Asynchronous
6072    {
6073    public:
6074        virtual void STDMETHODCALLTYPE GetDesc(
6075            /* [annotation] */
6076            __out  D3D11_QUERY_DESC *pDesc) = 0;
6077       
6078    };
6079   
6080#else    /* C style interface */
6081
6082    typedef struct ID3D11QueryVtbl
6083    {
6084        BEGIN_INTERFACE
6085       
6086        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6087            ID3D11Query * This,
6088            /* [in] */ REFIID riid,
6089            /* [annotation][iid_is][out] */
6090            __RPC__deref_out  void **ppvObject);
6091       
6092        ULONG ( STDMETHODCALLTYPE *AddRef )(
6093            ID3D11Query * This);
6094       
6095        ULONG ( STDMETHODCALLTYPE *Release )(
6096            ID3D11Query * This);
6097       
6098        void ( STDMETHODCALLTYPE *GetDevice )(
6099            ID3D11Query * This,
6100            /* [annotation] */
6101            __out  ID3D11Device **ppDevice);
6102       
6103        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6104            ID3D11Query * This,
6105            /* [annotation] */
6106            __in  REFGUID guid,
6107            /* [annotation] */
6108            __inout  UINT *pDataSize,
6109            /* [annotation] */
6110            __out_bcount_opt( *pDataSize )  void *pData);
6111       
6112        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6113            ID3D11Query * This,
6114            /* [annotation] */
6115            __in  REFGUID guid,
6116            /* [annotation] */
6117            __in  UINT DataSize,
6118            /* [annotation] */
6119            __in_bcount_opt( DataSize )  const void *pData);
6120       
6121        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6122            ID3D11Query * This,
6123            /* [annotation] */
6124            __in  REFGUID guid,
6125            /* [annotation] */
6126            __in_opt  const IUnknown *pData);
6127       
6128        UINT ( STDMETHODCALLTYPE *GetDataSize )(
6129            ID3D11Query * This);
6130       
6131        void ( STDMETHODCALLTYPE *GetDesc )(
6132            ID3D11Query * This,
6133            /* [annotation] */
6134            __out  D3D11_QUERY_DESC *pDesc);
6135       
6136        END_INTERFACE
6137    } ID3D11QueryVtbl;
6138
6139    interface ID3D11Query
6140    {
6141        CONST_VTBL struct ID3D11QueryVtbl *lpVtbl;
6142    };
6143
6144   
6145
6146#ifdef COBJMACROS
6147
6148
6149#define ID3D11Query_QueryInterface(This,riid,ppvObject)   \
6150    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6151
6152#define ID3D11Query_AddRef(This)   \
6153    ( (This)->lpVtbl -> AddRef(This) )
6154
6155#define ID3D11Query_Release(This)   \
6156    ( (This)->lpVtbl -> Release(This) )
6157
6158
6159#define ID3D11Query_GetDevice(This,ppDevice)   \
6160    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
6161
6162#define ID3D11Query_GetPrivateData(This,guid,pDataSize,pData)   \
6163    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6164
6165#define ID3D11Query_SetPrivateData(This,guid,DataSize,pData)   \
6166    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6167
6168#define ID3D11Query_SetPrivateDataInterface(This,guid,pData)   \
6169    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6170
6171
6172#define ID3D11Query_GetDataSize(This)   \
6173    ( (This)->lpVtbl -> GetDataSize(This) )
6174
6175
6176#define ID3D11Query_GetDesc(This,pDesc)   \
6177    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
6178
6179#endif /* COBJMACROS */
6180
6181
6182#endif    /* C style interface */
6183
6184
6185
6186
6187#endif    /* __ID3D11Query_INTERFACE_DEFINED__ */
6188
6189
6190#ifndef __ID3D11Predicate_INTERFACE_DEFINED__
6191#define __ID3D11Predicate_INTERFACE_DEFINED__
6192
6193/* interface ID3D11Predicate */
6194/* [unique][local][object][uuid] */
6195
6196
6197EXTERN_C const IID IID_ID3D11Predicate;
6198
6199#if defined(__cplusplus) && !defined(CINTERFACE)
6200   
6201    MIDL_INTERFACE("9eb576dd-9f77-4d86-81aa-8bab5fe490e2")
6202    ID3D11Predicate : public ID3D11Query
6203    {
6204    public:
6205    };
6206   
6207#else    /* C style interface */
6208
6209    typedef struct ID3D11PredicateVtbl
6210    {
6211        BEGIN_INTERFACE
6212       
6213        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6214            ID3D11Predicate * This,
6215            /* [in] */ REFIID riid,
6216            /* [annotation][iid_is][out] */
6217            __RPC__deref_out  void **ppvObject);
6218       
6219        ULONG ( STDMETHODCALLTYPE *AddRef )(
6220            ID3D11Predicate * This);
6221       
6222        ULONG ( STDMETHODCALLTYPE *Release )(
6223            ID3D11Predicate * This);
6224       
6225        void ( STDMETHODCALLTYPE *GetDevice )(
6226            ID3D11Predicate * This,
6227            /* [annotation] */
6228            __out  ID3D11Device **ppDevice);
6229       
6230        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6231            ID3D11Predicate * This,
6232            /* [annotation] */
6233            __in  REFGUID guid,
6234            /* [annotation] */
6235            __inout  UINT *pDataSize,
6236            /* [annotation] */
6237            __out_bcount_opt( *pDataSize )  void *pData);
6238       
6239        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6240            ID3D11Predicate * This,
6241            /* [annotation] */
6242            __in  REFGUID guid,
6243            /* [annotation] */
6244            __in  UINT DataSize,
6245            /* [annotation] */
6246            __in_bcount_opt( DataSize )  const void *pData);
6247       
6248        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6249            ID3D11Predicate * This,
6250            /* [annotation] */
6251            __in  REFGUID guid,
6252            /* [annotation] */
6253            __in_opt  const IUnknown *pData);
6254       
6255        UINT ( STDMETHODCALLTYPE *GetDataSize )(
6256            ID3D11Predicate * This);
6257       
6258        void ( STDMETHODCALLTYPE *GetDesc )(
6259            ID3D11Predicate * This,
6260            /* [annotation] */
6261            __out  D3D11_QUERY_DESC *pDesc);
6262       
6263        END_INTERFACE
6264    } ID3D11PredicateVtbl;
6265
6266    interface ID3D11Predicate
6267    {
6268        CONST_VTBL struct ID3D11PredicateVtbl *lpVtbl;
6269    };
6270
6271   
6272
6273#ifdef COBJMACROS
6274
6275
6276#define ID3D11Predicate_QueryInterface(This,riid,ppvObject)   \
6277    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6278
6279#define ID3D11Predicate_AddRef(This)   \
6280    ( (This)->lpVtbl -> AddRef(This) )
6281
6282#define ID3D11Predicate_Release(This)   \
6283    ( (This)->lpVtbl -> Release(This) )
6284
6285
6286#define ID3D11Predicate_GetDevice(This,ppDevice)   \
6287    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
6288
6289#define ID3D11Predicate_GetPrivateData(This,guid,pDataSize,pData)   \
6290    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6291
6292#define ID3D11Predicate_SetPrivateData(This,guid,DataSize,pData)   \
6293    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6294
6295#define ID3D11Predicate_SetPrivateDataInterface(This,guid,pData)   \
6296    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6297
6298
6299#define ID3D11Predicate_GetDataSize(This)   \
6300    ( (This)->lpVtbl -> GetDataSize(This) )
6301
6302
6303#define ID3D11Predicate_GetDesc(This,pDesc)   \
6304    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
6305
6306
6307#endif /* COBJMACROS */
6308
6309
6310#endif    /* C style interface */
6311
6312
6313
6314
6315#endif    /* __ID3D11Predicate_INTERFACE_DEFINED__ */
6316
6317
6318/* interface __MIDL_itf_d3d11_0000_0025 */
6319/* [local] */
6320
6321typedef struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT
6322    {
6323    UINT64 Frequency;
6324    BOOL Disjoint;
6325    }    D3D11_QUERY_DATA_TIMESTAMP_DISJOINT;
6326
6327typedef struct D3D11_QUERY_DATA_PIPELINE_STATISTICS
6328    {
6329    UINT64 IAVertices;
6330    UINT64 IAPrimitives;
6331    UINT64 VSInvocations;
6332    UINT64 GSInvocations;
6333    UINT64 GSPrimitives;
6334    UINT64 CInvocations;
6335    UINT64 CPrimitives;
6336    UINT64 PSInvocations;
6337    UINT64 HSInvocations;
6338    UINT64 DSInvocations;
6339    UINT64 CSInvocations;
6340    }    D3D11_QUERY_DATA_PIPELINE_STATISTICS;
6341
6342typedef struct D3D11_QUERY_DATA_SO_STATISTICS
6343    {
6344    UINT64 NumPrimitivesWritten;
6345    UINT64 PrimitivesStorageNeeded;
6346    }    D3D11_QUERY_DATA_SO_STATISTICS;
6347
6348typedef
6349enum D3D11_COUNTER
6350    {   D3D11_COUNTER_DEVICE_DEPENDENT_0   = 0x40000000
6351    }    D3D11_COUNTER;
6352
6353typedef
6354enum D3D11_COUNTER_TYPE
6355    {   D3D11_COUNTER_TYPE_FLOAT32   = 0,
6356   D3D11_COUNTER_TYPE_UINT16   = ( D3D11_COUNTER_TYPE_FLOAT32 + 1 ) ,
6357   D3D11_COUNTER_TYPE_UINT32   = ( D3D11_COUNTER_TYPE_UINT16 + 1 ) ,
6358   D3D11_COUNTER_TYPE_UINT64   = ( D3D11_COUNTER_TYPE_UINT32 + 1 )
6359    }    D3D11_COUNTER_TYPE;
6360
6361typedef struct D3D11_COUNTER_DESC
6362    {
6363    D3D11_COUNTER Counter;
6364    UINT MiscFlags;
6365    }    D3D11_COUNTER_DESC;
6366
6367#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
6368}
6369struct CD3D11_COUNTER_DESC : public D3D11_COUNTER_DESC
6370{
6371    CD3D11_COUNTER_DESC()
6372    {}
6373    explicit CD3D11_COUNTER_DESC( const D3D11_COUNTER_DESC& o ) :
6374        D3D11_COUNTER_DESC( o )
6375    {}
6376    explicit CD3D11_COUNTER_DESC(
6377        D3D11_COUNTER counter,
6378        UINT miscFlags = 0 )
6379    {
6380        Counter = counter;
6381        MiscFlags = miscFlags;
6382    }
6383    ~CD3D11_COUNTER_DESC() {}
6384    operator const D3D11_COUNTER_DESC&() const { return *this; }
6385};
6386extern "C"{
6387#endif
6388typedef struct D3D11_COUNTER_INFO
6389    {
6390    D3D11_COUNTER LastDeviceDependentCounter;
6391    UINT NumSimultaneousCounters;
6392    UINT8 NumDetectableParallelUnits;
6393    }    D3D11_COUNTER_INFO;
6394
6395
6396
6397extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0025_v0_0_c_ifspec;
6398extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0025_v0_0_s_ifspec;
6399
6400#ifndef __ID3D11Counter_INTERFACE_DEFINED__
6401#define __ID3D11Counter_INTERFACE_DEFINED__
6402
6403/* interface ID3D11Counter */
6404/* [unique][local][object][uuid] */
6405
6406
6407EXTERN_C const IID IID_ID3D11Counter;
6408
6409#if defined(__cplusplus) && !defined(CINTERFACE)
6410   
6411    MIDL_INTERFACE("6e8c49fb-a371-4770-b440-29086022b741")
6412    ID3D11Counter : public ID3D11Asynchronous
6413    {
6414    public:
6415        virtual void STDMETHODCALLTYPE GetDesc(
6416            /* [annotation] */
6417            __out  D3D11_COUNTER_DESC *pDesc) = 0;
6418       
6419    };
6420   
6421#else    /* C style interface */
6422
6423    typedef struct ID3D11CounterVtbl
6424    {
6425        BEGIN_INTERFACE
6426       
6427        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6428            ID3D11Counter * This,
6429            /* [in] */ REFIID riid,
6430            /* [annotation][iid_is][out] */
6431            __RPC__deref_out  void **ppvObject);
6432       
6433        ULONG ( STDMETHODCALLTYPE *AddRef )(
6434            ID3D11Counter * This);
6435       
6436        ULONG ( STDMETHODCALLTYPE *Release )(
6437            ID3D11Counter * This);
6438       
6439        void ( STDMETHODCALLTYPE *GetDevice )(
6440            ID3D11Counter * This,
6441            /* [annotation] */
6442            __out  ID3D11Device **ppDevice);
6443       
6444        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6445            ID3D11Counter * This,
6446            /* [annotation] */
6447            __in  REFGUID guid,
6448            /* [annotation] */
6449            __inout  UINT *pDataSize,
6450            /* [annotation] */
6451            __out_bcount_opt( *pDataSize )  void *pData);
6452       
6453        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6454            ID3D11Counter * This,
6455            /* [annotation] */
6456            __in  REFGUID guid,
6457            /* [annotation] */
6458            __in  UINT DataSize,
6459            /* [annotation] */
6460            __in_bcount_opt( DataSize )  const void *pData);
6461       
6462        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6463            ID3D11Counter * This,
6464            /* [annotation] */
6465            __in  REFGUID guid,
6466            /* [annotation] */
6467            __in_opt  const IUnknown *pData);
6468       
6469        UINT ( STDMETHODCALLTYPE *GetDataSize )(
6470            ID3D11Counter * This);
6471       
6472        void ( STDMETHODCALLTYPE *GetDesc )(
6473            ID3D11Counter * This,
6474            /* [annotation] */
6475            __out  D3D11_COUNTER_DESC *pDesc);
6476       
6477        END_INTERFACE
6478    } ID3D11CounterVtbl;
6479
6480    interface ID3D11Counter
6481    {
6482        CONST_VTBL struct ID3D11CounterVtbl *lpVtbl;
6483    };
6484
6485   
6486
6487#ifdef COBJMACROS
6488
6489
6490#define ID3D11Counter_QueryInterface(This,riid,ppvObject)   \
6491    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6492
6493#define ID3D11Counter_AddRef(This)   \
6494    ( (This)->lpVtbl -> AddRef(This) )
6495
6496#define ID3D11Counter_Release(This)   \
6497    ( (This)->lpVtbl -> Release(This) )
6498
6499
6500#define ID3D11Counter_GetDevice(This,ppDevice)   \
6501    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
6502
6503#define ID3D11Counter_GetPrivateData(This,guid,pDataSize,pData)   \
6504    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6505
6506#define ID3D11Counter_SetPrivateData(This,guid,DataSize,pData)   \
6507    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6508
6509#define ID3D11Counter_SetPrivateDataInterface(This,guid,pData)   \
6510    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6511
6512
6513#define ID3D11Counter_GetDataSize(This)   \
6514    ( (This)->lpVtbl -> GetDataSize(This) )
6515
6516
6517#define ID3D11Counter_GetDesc(This,pDesc)   \
6518    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
6519
6520#endif /* COBJMACROS */
6521
6522
6523#endif    /* C style interface */
6524
6525
6526
6527
6528#endif    /* __ID3D11Counter_INTERFACE_DEFINED__ */
6529
6530
6531/* interface __MIDL_itf_d3d11_0000_0026 */
6532/* [local] */
6533
6534typedef
6535enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS
6536    {   D3D11_STANDARD_MULTISAMPLE_PATTERN   = 0xffffffff,
6537   D3D11_CENTER_MULTISAMPLE_PATTERN   = 0xfffffffe
6538    }    D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
6539
6540typedef
6541enum D3D11_DEVICE_CONTEXT_TYPE
6542    {   D3D11_DEVICE_CONTEXT_IMMEDIATE   = 0,
6543   D3D11_DEVICE_CONTEXT_DEFERRED   = ( D3D11_DEVICE_CONTEXT_IMMEDIATE + 1 )
6544    }    D3D11_DEVICE_CONTEXT_TYPE;
6545
6546typedef struct D3D11_CLASS_INSTANCE_DESC
6547    {
6548    UINT InstanceId;
6549    UINT InstanceIndex;
6550    UINT TypeId;
6551    UINT ConstantBuffer;
6552    UINT BaseConstantBufferOffset;
6553    UINT BaseTexture;
6554    UINT BaseSampler;
6555    BOOL Created;
6556    }    D3D11_CLASS_INSTANCE_DESC;
6557
6558
6559
6560extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0026_v0_0_c_ifspec;
6561extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0026_v0_0_s_ifspec;
6562
6563#ifndef __ID3D11ClassInstance_INTERFACE_DEFINED__
6564#define __ID3D11ClassInstance_INTERFACE_DEFINED__
6565
6566/* interface ID3D11ClassInstance */
6567/* [unique][local][object][uuid] */
6568
6569
6570EXTERN_C const IID IID_ID3D11ClassInstance;
6571
6572#if defined(__cplusplus) && !defined(CINTERFACE)
6573   
6574    MIDL_INTERFACE("a6cd7faa-b0b7-4a2f-9436-8662a65797cb")
6575    ID3D11ClassInstance : public ID3D11DeviceChild
6576    {
6577    public:
6578        virtual void STDMETHODCALLTYPE GetClassLinkage(
6579            /* [annotation] */
6580            __out  ID3D11ClassLinkage **ppLinkage) = 0;
6581       
6582        virtual void STDMETHODCALLTYPE GetDesc(
6583            /* [annotation] */
6584            __out  D3D11_CLASS_INSTANCE_DESC *pDesc) = 0;
6585       
6586        virtual void STDMETHODCALLTYPE GetInstanceName(
6587            /* [annotation] */
6588            __out_ecount_opt(*pBufferLength)  LPSTR pInstanceName,
6589            /* [annotation] */
6590            __inout  SIZE_T *pBufferLength) = 0;
6591       
6592        virtual void STDMETHODCALLTYPE GetTypeName(
6593            /* [annotation] */
6594            __out_ecount_opt(*pBufferLength)  LPSTR pTypeName,
6595            /* [annotation] */
6596            __inout  SIZE_T *pBufferLength) = 0;
6597       
6598    };
6599   
6600#else    /* C style interface */
6601
6602    typedef struct ID3D11ClassInstanceVtbl
6603    {
6604        BEGIN_INTERFACE
6605       
6606        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6607            ID3D11ClassInstance * This,
6608            /* [in] */ REFIID riid,
6609            /* [annotation][iid_is][out] */
6610            __RPC__deref_out  void **ppvObject);
6611       
6612        ULONG ( STDMETHODCALLTYPE *AddRef )(
6613            ID3D11ClassInstance * This);
6614       
6615        ULONG ( STDMETHODCALLTYPE *Release )(
6616            ID3D11ClassInstance * This);
6617       
6618        void ( STDMETHODCALLTYPE *GetDevice )(
6619            ID3D11ClassInstance * This,
6620            /* [annotation] */
6621            __out  ID3D11Device **ppDevice);
6622       
6623        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6624            ID3D11ClassInstance * This,
6625            /* [annotation] */
6626            __in  REFGUID guid,
6627            /* [annotation] */
6628            __inout  UINT *pDataSize,
6629            /* [annotation] */
6630            __out_bcount_opt( *pDataSize )  void *pData);
6631       
6632        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6633            ID3D11ClassInstance * This,
6634            /* [annotation] */
6635            __in  REFGUID guid,
6636            /* [annotation] */
6637            __in  UINT DataSize,
6638            /* [annotation] */
6639            __in_bcount_opt( DataSize )  const void *pData);
6640       
6641        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6642            ID3D11ClassInstance * This,
6643            /* [annotation] */
6644            __in  REFGUID guid,
6645            /* [annotation] */
6646            __in_opt  const IUnknown *pData);
6647       
6648        void ( STDMETHODCALLTYPE *GetClassLinkage )(
6649            ID3D11ClassInstance * This,
6650            /* [annotation] */
6651            __out  ID3D11ClassLinkage **ppLinkage);
6652       
6653        void ( STDMETHODCALLTYPE *GetDesc )(
6654            ID3D11ClassInstance * This,
6655            /* [annotation] */
6656            __out  D3D11_CLASS_INSTANCE_DESC *pDesc);
6657       
6658        void ( STDMETHODCALLTYPE *GetInstanceName )(
6659            ID3D11ClassInstance * This,
6660            /* [annotation] */
6661            __out_ecount_opt(*pBufferLength)  LPSTR pInstanceName,
6662            /* [annotation] */
6663            __inout  SIZE_T *pBufferLength);
6664       
6665        void ( STDMETHODCALLTYPE *GetTypeName )(
6666            ID3D11ClassInstance * This,
6667            /* [annotation] */
6668            __out_ecount_opt(*pBufferLength)  LPSTR pTypeName,
6669            /* [annotation] */
6670            __inout  SIZE_T *pBufferLength);
6671       
6672        END_INTERFACE
6673    } ID3D11ClassInstanceVtbl;
6674
6675    interface ID3D11ClassInstance
6676    {
6677        CONST_VTBL struct ID3D11ClassInstanceVtbl *lpVtbl;
6678    };
6679
6680   
6681
6682#ifdef COBJMACROS
6683
6684
6685#define ID3D11ClassInstance_QueryInterface(This,riid,ppvObject)   \
6686    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6687
6688#define ID3D11ClassInstance_AddRef(This)   \
6689    ( (This)->lpVtbl -> AddRef(This) )
6690
6691#define ID3D11ClassInstance_Release(This)   \
6692    ( (This)->lpVtbl -> Release(This) )
6693
6694
6695#define ID3D11ClassInstance_GetDevice(This,ppDevice)   \
6696    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
6697
6698#define ID3D11ClassInstance_GetPrivateData(This,guid,pDataSize,pData)   \
6699    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6700
6701#define ID3D11ClassInstance_SetPrivateData(This,guid,DataSize,pData)   \
6702    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6703
6704#define ID3D11ClassInstance_SetPrivateDataInterface(This,guid,pData)   \
6705    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6706
6707
6708#define ID3D11ClassInstance_GetClassLinkage(This,ppLinkage)   \
6709    ( (This)->lpVtbl -> GetClassLinkage(This,ppLinkage) )
6710
6711#define ID3D11ClassInstance_GetDesc(This,pDesc)   \
6712    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
6713
6714#define ID3D11ClassInstance_GetInstanceName(This,pInstanceName,pBufferLength)   \
6715    ( (This)->lpVtbl -> GetInstanceName(This,pInstanceName,pBufferLength) )
6716
6717#define ID3D11ClassInstance_GetTypeName(This,pTypeName,pBufferLength)   \
6718    ( (This)->lpVtbl -> GetTypeName(This,pTypeName,pBufferLength) )
6719
6720#endif /* COBJMACROS */
6721
6722
6723#endif    /* C style interface */
6724
6725
6726
6727
6728#endif    /* __ID3D11ClassInstance_INTERFACE_DEFINED__ */
6729
6730
6731#ifndef __ID3D11ClassLinkage_INTERFACE_DEFINED__
6732#define __ID3D11ClassLinkage_INTERFACE_DEFINED__
6733
6734/* interface ID3D11ClassLinkage */
6735/* [unique][local][object][uuid] */
6736
6737
6738EXTERN_C const IID IID_ID3D11ClassLinkage;
6739
6740#if defined(__cplusplus) && !defined(CINTERFACE)
6741   
6742    MIDL_INTERFACE("ddf57cba-9543-46e4-a12b-f207a0fe7fed")
6743    ID3D11ClassLinkage : public ID3D11DeviceChild
6744    {
6745    public:
6746        virtual HRESULT STDMETHODCALLTYPE GetClassInstance(
6747            /* [annotation] */
6748            __in  LPCSTR pClassInstanceName,
6749            /* [annotation] */
6750            __in  UINT InstanceIndex,
6751            /* [annotation] */
6752            __out  ID3D11ClassInstance **ppInstance) = 0;
6753       
6754        virtual HRESULT STDMETHODCALLTYPE CreateClassInstance(
6755            /* [annotation] */
6756            __in  LPCSTR pClassTypeName,
6757            /* [annotation] */
6758            __in  UINT ConstantBufferOffset,
6759            /* [annotation] */
6760            __in  UINT ConstantVectorOffset,
6761            /* [annotation] */
6762            __in  UINT TextureOffset,
6763            /* [annotation] */
6764            __in  UINT SamplerOffset,
6765            /* [annotation] */
6766            __out  ID3D11ClassInstance **ppInstance) = 0;
6767       
6768    };
6769   
6770#else    /* C style interface */
6771
6772    typedef struct ID3D11ClassLinkageVtbl
6773    {
6774        BEGIN_INTERFACE
6775       
6776        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6777            ID3D11ClassLinkage * This,
6778            /* [in] */ REFIID riid,
6779            /* [annotation][iid_is][out] */
6780            __RPC__deref_out  void **ppvObject);
6781       
6782        ULONG ( STDMETHODCALLTYPE *AddRef )(
6783            ID3D11ClassLinkage * This);
6784       
6785        ULONG ( STDMETHODCALLTYPE *Release )(
6786            ID3D11ClassLinkage * This);
6787       
6788        void ( STDMETHODCALLTYPE *GetDevice )(
6789            ID3D11ClassLinkage * This,
6790            /* [annotation] */
6791            __out  ID3D11Device **ppDevice);
6792       
6793        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6794            ID3D11ClassLinkage * This,
6795            /* [annotation] */
6796            __in  REFGUID guid,
6797            /* [annotation] */
6798            __inout  UINT *pDataSize,
6799            /* [annotation] */
6800            __out_bcount_opt( *pDataSize )  void *pData);
6801       
6802        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6803            ID3D11ClassLinkage * This,
6804            /* [annotation] */
6805            __in  REFGUID guid,
6806            /* [annotation] */
6807            __in  UINT DataSize,
6808            /* [annotation] */
6809            __in_bcount_opt( DataSize )  const void *pData);
6810       
6811        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6812            ID3D11ClassLinkage * This,
6813            /* [annotation] */
6814            __in  REFGUID guid,
6815            /* [annotation] */
6816            __in_opt  const IUnknown *pData);
6817       
6818        HRESULT ( STDMETHODCALLTYPE *GetClassInstance )(
6819            ID3D11ClassLinkage * This,
6820            /* [annotation] */
6821            __in  LPCSTR pClassInstanceName,
6822            /* [annotation] */
6823            __in  UINT InstanceIndex,
6824            /* [annotation] */
6825            __out  ID3D11ClassInstance **ppInstance);
6826       
6827        HRESULT ( STDMETHODCALLTYPE *CreateClassInstance )(
6828            ID3D11ClassLinkage * This,
6829            /* [annotation] */
6830            __in  LPCSTR pClassTypeName,
6831            /* [annotation] */
6832            __in  UINT ConstantBufferOffset,
6833            /* [annotation] */
6834            __in  UINT ConstantVectorOffset,
6835            /* [annotation] */
6836            __in  UINT TextureOffset,
6837            /* [annotation] */
6838            __in  UINT SamplerOffset,
6839            /* [annotation] */
6840            __out  ID3D11ClassInstance **ppInstance);
6841       
6842        END_INTERFACE
6843    } ID3D11ClassLinkageVtbl;
6844
6845    interface ID3D11ClassLinkage
6846    {
6847        CONST_VTBL struct ID3D11ClassLinkageVtbl *lpVtbl;
6848    };
6849
6850   
6851
6852#ifdef COBJMACROS
6853
6854
6855#define ID3D11ClassLinkage_QueryInterface(This,riid,ppvObject)   \
6856    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6857
6858#define ID3D11ClassLinkage_AddRef(This)   \
6859    ( (This)->lpVtbl -> AddRef(This) )
6860
6861#define ID3D11ClassLinkage_Release(This)   \
6862    ( (This)->lpVtbl -> Release(This) )
6863
6864
6865#define ID3D11ClassLinkage_GetDevice(This,ppDevice)   \
6866    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
6867
6868#define ID3D11ClassLinkage_GetPrivateData(This,guid,pDataSize,pData)   \
6869    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6870
6871#define ID3D11ClassLinkage_SetPrivateData(This,guid,DataSize,pData)   \
6872    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6873
6874#define ID3D11ClassLinkage_SetPrivateDataInterface(This,guid,pData)   \
6875    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6876
6877
6878#define ID3D11ClassLinkage_GetClassInstance(This,pClassInstanceName,InstanceIndex,ppInstance)   \
6879    ( (This)->lpVtbl -> GetClassInstance(This,pClassInstanceName,InstanceIndex,ppInstance) )
6880
6881#define ID3D11ClassLinkage_CreateClassInstance(This,pClassTypeName,ConstantBufferOffset,ConstantVectorOffset,TextureOffset,SamplerOffset,ppInstance)   \
6882    ( (This)->lpVtbl -> CreateClassInstance(This,pClassTypeName,ConstantBufferOffset,ConstantVectorOffset,TextureOffset,SamplerOffset,ppInstance) )
6883
6884#endif /* COBJMACROS */
6885
6886
6887#endif    /* C style interface */
6888
6889
6890
6891
6892#endif    /* __ID3D11ClassLinkage_INTERFACE_DEFINED__ */
6893
6894
6895#ifndef __ID3D11CommandList_INTERFACE_DEFINED__
6896#define __ID3D11CommandList_INTERFACE_DEFINED__
6897
6898/* interface ID3D11CommandList */
6899/* [unique][local][object][uuid] */
6900
6901
6902EXTERN_C const IID IID_ID3D11CommandList;
6903
6904#if defined(__cplusplus) && !defined(CINTERFACE)
6905   
6906    MIDL_INTERFACE("a24bc4d1-769e-43f7-8013-98ff566c18e2")
6907    ID3D11CommandList : public ID3D11DeviceChild
6908    {
6909    public:
6910        virtual UINT STDMETHODCALLTYPE GetContextFlags( void) = 0;
6911       
6912    };
6913   
6914#else    /* C style interface */
6915
6916    typedef struct ID3D11CommandListVtbl
6917    {
6918        BEGIN_INTERFACE
6919       
6920        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6921            ID3D11CommandList * This,
6922            /* [in] */ REFIID riid,
6923            /* [annotation][iid_is][out] */
6924            __RPC__deref_out  void **ppvObject);
6925       
6926        ULONG ( STDMETHODCALLTYPE *AddRef )(
6927            ID3D11CommandList * This);
6928       
6929        ULONG ( STDMETHODCALLTYPE *Release )(
6930            ID3D11CommandList * This);
6931       
6932        void ( STDMETHODCALLTYPE *GetDevice )(
6933            ID3D11CommandList * This,
6934            /* [annotation] */
6935            __out  ID3D11Device **ppDevice);
6936       
6937        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6938            ID3D11CommandList * This,
6939            /* [annotation] */
6940            __in  REFGUID guid,
6941            /* [annotation] */
6942            __inout  UINT *pDataSize,
6943            /* [annotation] */
6944            __out_bcount_opt( *pDataSize )  void *pData);
6945       
6946        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6947            ID3D11CommandList * This,
6948            /* [annotation] */
6949            __in  REFGUID guid,
6950            /* [annotation] */
6951            __in  UINT DataSize,
6952            /* [annotation] */
6953            __in_bcount_opt( DataSize )  const void *pData);
6954       
6955        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6956            ID3D11CommandList * This,
6957            /* [annotation] */
6958            __in  REFGUID guid,
6959            /* [annotation] */
6960            __in_opt  const IUnknown *pData);
6961       
6962        UINT ( STDMETHODCALLTYPE *GetContextFlags )(
6963            ID3D11CommandList * This);
6964       
6965        END_INTERFACE
6966    } ID3D11CommandListVtbl;
6967
6968    interface ID3D11CommandList
6969    {
6970        CONST_VTBL struct ID3D11CommandListVtbl *lpVtbl;
6971    };
6972
6973   
6974
6975#ifdef COBJMACROS
6976
6977
6978#define ID3D11CommandList_QueryInterface(This,riid,ppvObject)   \
6979    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6980
6981#define ID3D11CommandList_AddRef(This)   \
6982    ( (This)->lpVtbl -> AddRef(This) )
6983
6984#define ID3D11CommandList_Release(This)   \
6985    ( (This)->lpVtbl -> Release(This) )
6986
6987
6988#define ID3D11CommandList_GetDevice(This,ppDevice)   \
6989    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
6990
6991#define ID3D11CommandList_GetPrivateData(This,guid,pDataSize,pData)   \
6992    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6993
6994#define ID3D11CommandList_SetPrivateData(This,guid,DataSize,pData)   \
6995    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6996
6997#define ID3D11CommandList_SetPrivateDataInterface(This,guid,pData)   \
6998    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6999
7000
7001#define ID3D11CommandList_GetContextFlags(This)   \
7002    ( (This)->lpVtbl -> GetContextFlags(This) )
7003
7004#endif /* COBJMACROS */
7005
7006
7007#endif    /* C style interface */
7008
7009
7010
7011
7012#endif    /* __ID3D11CommandList_INTERFACE_DEFINED__ */
7013
7014
7015/* interface __MIDL_itf_d3d11_0000_0029 */
7016/* [local] */
7017
7018typedef
7019enum D3D11_FEATURE
7020    {   D3D11_FEATURE_THREADING   = 0,
7021   D3D11_FEATURE_DOUBLES   = ( D3D11_FEATURE_THREADING + 1 ) ,
7022   D3D11_FEATURE_FORMAT_SUPPORT   = ( D3D11_FEATURE_DOUBLES + 1 ) ,
7023   D3D11_FEATURE_FORMAT_SUPPORT2   = ( D3D11_FEATURE_FORMAT_SUPPORT + 1 ) ,
7024   D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS   = ( D3D11_FEATURE_FORMAT_SUPPORT2 + 1 )
7025    }    D3D11_FEATURE;
7026
7027typedef struct D3D11_FEATURE_DATA_THREADING
7028    {
7029    BOOL DriverConcurrentCreates;
7030    BOOL DriverCommandLists;
7031    }    D3D11_FEATURE_DATA_THREADING;
7032
7033typedef struct D3D11_FEATURE_DATA_DOUBLES
7034    {
7035    BOOL DoublePrecisionFloatShaderOps;
7036    }    D3D11_FEATURE_DATA_DOUBLES;
7037
7038typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT
7039    {
7040    DXGI_FORMAT InFormat;
7041    UINT OutFormatSupport;
7042    }    D3D11_FEATURE_DATA_FORMAT_SUPPORT;
7043
7044typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2
7045    {
7046    DXGI_FORMAT InFormat;
7047    UINT OutFormatSupport2;
7048    }    D3D11_FEATURE_DATA_FORMAT_SUPPORT2;
7049
7050typedef struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS
7051    {
7052    BOOL ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x;
7053    }    D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS;
7054
7055
7056
7057extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0029_v0_0_c_ifspec;
7058extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0029_v0_0_s_ifspec;
7059
7060#ifndef __ID3D11DeviceContext_INTERFACE_DEFINED__
7061#define __ID3D11DeviceContext_INTERFACE_DEFINED__
7062
7063/* interface ID3D11DeviceContext */
7064/* [unique][local][object][uuid] */
7065
7066
7067EXTERN_C const IID IID_ID3D11DeviceContext;
7068
7069#if defined(__cplusplus) && !defined(CINTERFACE)
7070   
7071    MIDL_INTERFACE("c0bfa96c-e089-44fb-8eaf-26f8796190da")
7072    ID3D11DeviceContext : public ID3D11DeviceChild
7073    {
7074    public:
7075        virtual void STDMETHODCALLTYPE VSSetConstantBuffers(
7076            /* [annotation] */
7077            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7078            /* [annotation] */
7079            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7080            /* [annotation] */
7081            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers) = 0;
7082       
7083        virtual void STDMETHODCALLTYPE PSSetShaderResources(
7084            /* [annotation] */
7085            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7086            /* [annotation] */
7087            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7088            /* [annotation] */
7089            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
7090       
7091        virtual void STDMETHODCALLTYPE PSSetShader(
7092            /* [annotation] */
7093            __in_opt  ID3D11PixelShader *pPixelShader,
7094            /* [annotation] */
7095            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7096            UINT NumClassInstances) = 0;
7097       
7098        virtual void STDMETHODCALLTYPE PSSetSamplers(
7099            /* [annotation] */
7100            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7101            /* [annotation] */
7102            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7103            /* [annotation] */
7104            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers) = 0;
7105       
7106        virtual void STDMETHODCALLTYPE VSSetShader(
7107            /* [annotation] */
7108            __in_opt  ID3D11VertexShader *pVertexShader,
7109            /* [annotation] */
7110            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7111            UINT NumClassInstances) = 0;
7112       
7113        virtual void STDMETHODCALLTYPE DrawIndexed(
7114            /* [annotation] */
7115            __in  UINT IndexCount,
7116            /* [annotation] */
7117            __in  UINT StartIndexLocation,
7118            /* [annotation] */
7119            __in  INT BaseVertexLocation) = 0;
7120       
7121        virtual void STDMETHODCALLTYPE Draw(
7122            /* [annotation] */
7123            __in  UINT VertexCount,
7124            /* [annotation] */
7125            __in  UINT StartVertexLocation) = 0;
7126       
7127        virtual HRESULT STDMETHODCALLTYPE Map(
7128            /* [annotation] */
7129            __in  ID3D11Resource *pResource,
7130            /* [annotation] */
7131            __in  UINT Subresource,
7132            /* [annotation] */
7133            __in  D3D11_MAP MapType,
7134            /* [annotation] */
7135            __in  UINT MapFlags,
7136            /* [annotation] */
7137            __out  D3D11_MAPPED_SUBRESOURCE *pMappedResource) = 0;
7138       
7139        virtual void STDMETHODCALLTYPE Unmap(
7140            /* [annotation] */
7141            __in  ID3D11Resource *pResource,
7142            /* [annotation] */
7143            __in  UINT Subresource) = 0;
7144       
7145        virtual void STDMETHODCALLTYPE PSSetConstantBuffers(
7146            /* [annotation] */
7147            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7148            /* [annotation] */
7149            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7150            /* [annotation] */
7151            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers) = 0;
7152       
7153        virtual void STDMETHODCALLTYPE IASetInputLayout(
7154            /* [annotation] */
7155            __in_opt  ID3D11InputLayout *pInputLayout) = 0;
7156       
7157        virtual void STDMETHODCALLTYPE IASetVertexBuffers(
7158            /* [annotation] */
7159            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7160            /* [annotation] */
7161            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7162            /* [annotation] */
7163            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppVertexBuffers,
7164            /* [annotation] */
7165            __in_ecount(NumBuffers)  const UINT *pStrides,
7166            /* [annotation] */
7167            __in_ecount(NumBuffers)  const UINT *pOffsets) = 0;
7168       
7169        virtual void STDMETHODCALLTYPE IASetIndexBuffer(
7170            /* [annotation] */
7171            __in_opt  ID3D11Buffer *pIndexBuffer,
7172            /* [annotation] */
7173            __in  DXGI_FORMAT Format,
7174            /* [annotation] */
7175            __in  UINT Offset) = 0;
7176       
7177        virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
7178            /* [annotation] */
7179            __in  UINT IndexCountPerInstance,
7180            /* [annotation] */
7181            __in  UINT InstanceCount,
7182            /* [annotation] */
7183            __in  UINT StartIndexLocation,
7184            /* [annotation] */
7185            __in  INT BaseVertexLocation,
7186            /* [annotation] */
7187            __in  UINT StartInstanceLocation) = 0;
7188       
7189        virtual void STDMETHODCALLTYPE DrawInstanced(
7190            /* [annotation] */
7191            __in  UINT VertexCountPerInstance,
7192            /* [annotation] */
7193            __in  UINT InstanceCount,
7194            /* [annotation] */
7195            __in  UINT StartVertexLocation,
7196            /* [annotation] */
7197            __in  UINT StartInstanceLocation) = 0;
7198       
7199        virtual void STDMETHODCALLTYPE GSSetConstantBuffers(
7200            /* [annotation] */
7201            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7202            /* [annotation] */
7203            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7204            /* [annotation] */
7205            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers) = 0;
7206       
7207        virtual void STDMETHODCALLTYPE GSSetShader(
7208            /* [annotation] */
7209            __in_opt  ID3D11GeometryShader *pShader,
7210            /* [annotation] */
7211            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7212            UINT NumClassInstances) = 0;
7213       
7214        virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
7215            /* [annotation] */
7216            __in  D3D11_PRIMITIVE_TOPOLOGY Topology) = 0;
7217       
7218        virtual void STDMETHODCALLTYPE VSSetShaderResources(
7219            /* [annotation] */
7220            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7221            /* [annotation] */
7222            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7223            /* [annotation] */
7224            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
7225       
7226        virtual void STDMETHODCALLTYPE VSSetSamplers(
7227            /* [annotation] */
7228            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7229            /* [annotation] */
7230            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7231            /* [annotation] */
7232            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers) = 0;
7233       
7234        virtual void STDMETHODCALLTYPE Begin(
7235            /* [annotation] */
7236            __in  ID3D11Asynchronous *pAsync) = 0;
7237       
7238        virtual void STDMETHODCALLTYPE End(
7239            /* [annotation] */
7240            __in  ID3D11Asynchronous *pAsync) = 0;
7241       
7242        virtual HRESULT STDMETHODCALLTYPE GetData(
7243            /* [annotation] */
7244            __in  ID3D11Asynchronous *pAsync,
7245            /* [annotation] */
7246            __out_bcount_opt( DataSize )  void *pData,
7247            /* [annotation] */
7248            __in  UINT DataSize,
7249            /* [annotation] */
7250            __in  UINT GetDataFlags) = 0;
7251       
7252        virtual void STDMETHODCALLTYPE SetPredication(
7253            /* [annotation] */
7254            __in_opt  ID3D11Predicate *pPredicate,
7255            /* [annotation] */
7256            __in  BOOL PredicateValue) = 0;
7257       
7258        virtual void STDMETHODCALLTYPE GSSetShaderResources(
7259            /* [annotation] */
7260            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7261            /* [annotation] */
7262            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7263            /* [annotation] */
7264            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
7265       
7266        virtual void STDMETHODCALLTYPE GSSetSamplers(
7267            /* [annotation] */
7268            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7269            /* [annotation] */
7270            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7271            /* [annotation] */
7272            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers) = 0;
7273       
7274        virtual void STDMETHODCALLTYPE OMSetRenderTargets(
7275            /* [annotation] */
7276            __in_range( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
7277            /* [annotation] */
7278            __in_ecount_opt(NumViews)  ID3D11RenderTargetView *const *ppRenderTargetViews,
7279            /* [annotation] */
7280            __in_opt  ID3D11DepthStencilView *pDepthStencilView) = 0;
7281       
7282        virtual void STDMETHODCALLTYPE OMSetRenderTargetsAndUnorderedAccessViews(
7283            /* [annotation] */
7284            __in  UINT NumRTVs,
7285            /* [annotation] */
7286            __in_ecount_opt(NumRTVs)  ID3D11RenderTargetView *const *ppRenderTargetViews,
7287            /* [annotation] */
7288            __in_opt  ID3D11DepthStencilView *pDepthStencilView,
7289            /* [annotation] */
7290            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT UAVStartSlot,
7291            /* [annotation] */
7292            __in  UINT NumUAVs,
7293            /* [annotation] */
7294            __in_ecount_opt(NumUAVs)  ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
7295            /* [annotation] */
7296            __in_ecount_opt(NumUAVs)  const UINT *pUAVInitialCounts) = 0;
7297       
7298        virtual void STDMETHODCALLTYPE OMSetBlendState(
7299            /* [annotation] */
7300            __in_opt  ID3D11BlendState *pBlendState,
7301            /* [annotation] */
7302            __in_opt  const FLOAT BlendFactor[ 4 ],
7303            /* [annotation] */
7304            __in  UINT SampleMask) = 0;
7305       
7306        virtual void STDMETHODCALLTYPE OMSetDepthStencilState(
7307            /* [annotation] */
7308            __in_opt  ID3D11DepthStencilState *pDepthStencilState,
7309            /* [annotation] */
7310            __in  UINT StencilRef) = 0;
7311       
7312        virtual void STDMETHODCALLTYPE SOSetTargets(
7313            /* [annotation] */
7314            __in_range( 0, D3D11_SO_BUFFER_SLOT_COUNT)  UINT NumBuffers,
7315            /* [annotation] */
7316            __in_ecount_opt(NumBuffers)  ID3D11Buffer *const *ppSOTargets,
7317            /* [annotation] */
7318            __in_ecount_opt(NumBuffers)  const UINT *pOffsets) = 0;
7319       
7320        virtual void STDMETHODCALLTYPE DrawAuto( void) = 0;
7321       
7322        virtual void STDMETHODCALLTYPE DrawIndexedInstancedIndirect(
7323            /* [annotation] */
7324            __in  ID3D11Buffer *pBufferForArgs,
7325            /* [annotation] */
7326            __in  UINT AlignedByteOffsetForArgs) = 0;
7327       
7328        virtual void STDMETHODCALLTYPE DrawInstancedIndirect(
7329            /* [annotation] */
7330            __in  ID3D11Buffer *pBufferForArgs,
7331            /* [annotation] */
7332            __in  UINT AlignedByteOffsetForArgs) = 0;
7333       
7334        virtual void STDMETHODCALLTYPE Dispatch(
7335            /* [annotation] */
7336            __in  UINT ThreadGroupCountX,
7337            /* [annotation] */
7338            __in  UINT ThreadGroupCountY,
7339            /* [annotation] */
7340            __in  UINT ThreadGroupCountZ) = 0;
7341       
7342        virtual void STDMETHODCALLTYPE DispatchIndirect(
7343            /* [annotation] */
7344            __in  ID3D11Buffer *pBufferForArgs,
7345            /* [annotation] */
7346            __in  UINT AlignedByteOffsetForArgs) = 0;
7347       
7348        virtual void STDMETHODCALLTYPE RSSetState(
7349            /* [annotation] */
7350            __in_opt  ID3D11RasterizerState *pRasterizerState) = 0;
7351       
7352        virtual void STDMETHODCALLTYPE RSSetViewports(
7353            /* [annotation] */
7354            __in_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumViewports,
7355            /* [annotation] */
7356            __in_ecount_opt(NumViewports)  const D3D11_VIEWPORT *pViewports) = 0;
7357       
7358        virtual void STDMETHODCALLTYPE RSSetScissorRects(
7359            /* [annotation] */
7360            __in_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumRects,
7361            /* [annotation] */
7362            __in_ecount_opt(NumRects)  const D3D11_RECT *pRects) = 0;
7363       
7364        virtual void STDMETHODCALLTYPE CopySubresourceRegion(
7365            /* [annotation] */
7366            __in  ID3D11Resource *pDstResource,
7367            /* [annotation] */
7368            __in  UINT DstSubresource,
7369            /* [annotation] */
7370            __in  UINT DstX,
7371            /* [annotation] */
7372            __in  UINT DstY,
7373            /* [annotation] */
7374            __in  UINT DstZ,
7375            /* [annotation] */
7376            __in  ID3D11Resource *pSrcResource,
7377            /* [annotation] */
7378            __in  UINT SrcSubresource,
7379            /* [annotation] */
7380            __in_opt  const D3D11_BOX *pSrcBox) = 0;
7381       
7382        virtual void STDMETHODCALLTYPE CopyResource(
7383            /* [annotation] */
7384            __in  ID3D11Resource *pDstResource,
7385            /* [annotation] */
7386            __in  ID3D11Resource *pSrcResource) = 0;
7387       
7388        virtual void STDMETHODCALLTYPE UpdateSubresource(
7389            /* [annotation] */
7390            __in  ID3D11Resource *pDstResource,
7391            /* [annotation] */
7392            __in  UINT DstSubresource,
7393            /* [annotation] */
7394            __in_opt  const D3D11_BOX *pDstBox,
7395            /* [annotation] */
7396            __in  const void *pSrcData,
7397            /* [annotation] */
7398            __in  UINT SrcRowPitch,
7399            /* [annotation] */
7400            __in  UINT SrcDepthPitch) = 0;
7401       
7402        virtual void STDMETHODCALLTYPE CopyStructureCount(
7403            /* [annotation] */
7404            __in  ID3D11Buffer *pDstBuffer,
7405            /* [annotation] */
7406            __in  UINT DstAlignedByteOffset,
7407            /* [annotation] */
7408            __in  ID3D11UnorderedAccessView *pSrcView) = 0;
7409       
7410        virtual void STDMETHODCALLTYPE ClearRenderTargetView(
7411            /* [annotation] */
7412            __in  ID3D11RenderTargetView *pRenderTargetView,
7413            /* [annotation] */
7414            __in  const FLOAT ColorRGBA[ 4 ]) = 0;
7415       
7416        virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
7417            /* [annotation] */
7418            __in  ID3D11UnorderedAccessView *pUnorderedAccessView,
7419            /* [annotation] */
7420            __in  const UINT Values[ 4 ]) = 0;
7421       
7422        virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
7423            /* [annotation] */
7424            __in  ID3D11UnorderedAccessView *pUnorderedAccessView,
7425            /* [annotation] */
7426            __in  const FLOAT Values[ 4 ]) = 0;
7427       
7428        virtual void STDMETHODCALLTYPE ClearDepthStencilView(
7429            /* [annotation] */
7430            __in  ID3D11DepthStencilView *pDepthStencilView,
7431            /* [annotation] */
7432            __in  UINT ClearFlags,
7433            /* [annotation] */
7434            __in  FLOAT Depth,
7435            /* [annotation] */
7436            __in  UINT8 Stencil) = 0;
7437       
7438        virtual void STDMETHODCALLTYPE GenerateMips(
7439            /* [annotation] */
7440            __in  ID3D11ShaderResourceView *pShaderResourceView) = 0;
7441       
7442        virtual void STDMETHODCALLTYPE SetResourceMinLOD(
7443            /* [annotation] */
7444            __in  ID3D11Resource *pResource,
7445            FLOAT MinLOD) = 0;
7446       
7447        virtual FLOAT STDMETHODCALLTYPE GetResourceMinLOD(
7448            /* [annotation] */
7449            __in  ID3D11Resource *pResource) = 0;
7450       
7451        virtual void STDMETHODCALLTYPE ResolveSubresource(
7452            /* [annotation] */
7453            __in  ID3D11Resource *pDstResource,
7454            /* [annotation] */
7455            __in  UINT DstSubresource,
7456            /* [annotation] */
7457            __in  ID3D11Resource *pSrcResource,
7458            /* [annotation] */
7459            __in  UINT SrcSubresource,
7460            /* [annotation] */
7461            __in  DXGI_FORMAT Format) = 0;
7462       
7463        virtual void STDMETHODCALLTYPE ExecuteCommandList(
7464            /* [annotation] */
7465            __in  ID3D11CommandList *pCommandList,
7466            BOOL RestoreContextState) = 0;
7467       
7468        virtual void STDMETHODCALLTYPE HSSetShaderResources(
7469            /* [annotation] */
7470            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7471            /* [annotation] */
7472            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7473            /* [annotation] */
7474            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
7475       
7476        virtual void STDMETHODCALLTYPE HSSetShader(
7477            /* [annotation] */
7478            __in_opt  ID3D11HullShader *pHullShader,
7479            /* [annotation] */
7480            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7481            UINT NumClassInstances) = 0;
7482       
7483        virtual void STDMETHODCALLTYPE HSSetSamplers(
7484            /* [annotation] */
7485            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7486            /* [annotation] */
7487            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7488            /* [annotation] */
7489            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers) = 0;
7490       
7491        virtual void STDMETHODCALLTYPE HSSetConstantBuffers(
7492            /* [annotation] */
7493            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7494            /* [annotation] */
7495            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7496            /* [annotation] */
7497            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers) = 0;
7498       
7499        virtual void STDMETHODCALLTYPE DSSetShaderResources(
7500            /* [annotation] */
7501            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7502            /* [annotation] */
7503            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7504            /* [annotation] */
7505            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
7506       
7507        virtual void STDMETHODCALLTYPE DSSetShader(
7508            /* [annotation] */
7509            __in_opt  ID3D11DomainShader *pDomainShader,
7510            /* [annotation] */
7511            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7512            UINT NumClassInstances) = 0;
7513       
7514        virtual void STDMETHODCALLTYPE DSSetSamplers(
7515            /* [annotation] */
7516            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7517            /* [annotation] */
7518            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7519            /* [annotation] */
7520            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers) = 0;
7521       
7522        virtual void STDMETHODCALLTYPE DSSetConstantBuffers(
7523            /* [annotation] */
7524            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7525            /* [annotation] */
7526            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7527            /* [annotation] */
7528            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers) = 0;
7529       
7530        virtual void STDMETHODCALLTYPE CSSetShaderResources(
7531            /* [annotation] */
7532            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7533            /* [annotation] */
7534            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7535            /* [annotation] */
7536            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
7537       
7538        virtual void STDMETHODCALLTYPE CSSetUnorderedAccessViews(
7539            /* [annotation] */
7540            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT StartSlot,
7541            /* [annotation] */
7542            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - StartSlot )  UINT NumUAVs,
7543            /* [annotation] */
7544            __in_ecount(NumUAVs)  ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
7545            /* [annotation] */
7546            __in_ecount(NumUAVs)  const UINT *pUAVInitialCounts) = 0;
7547       
7548        virtual void STDMETHODCALLTYPE CSSetShader(
7549            /* [annotation] */
7550            __in_opt  ID3D11ComputeShader *pComputeShader,
7551            /* [annotation] */
7552            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7553            UINT NumClassInstances) = 0;
7554       
7555        virtual void STDMETHODCALLTYPE CSSetSamplers(
7556            /* [annotation] */
7557            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7558            /* [annotation] */
7559            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7560            /* [annotation] */
7561            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers) = 0;
7562       
7563        virtual void STDMETHODCALLTYPE CSSetConstantBuffers(
7564            /* [annotation] */
7565            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7566            /* [annotation] */
7567            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7568            /* [annotation] */
7569            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers) = 0;
7570       
7571        virtual void STDMETHODCALLTYPE VSGetConstantBuffers(
7572            /* [annotation] */
7573            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7574            /* [annotation] */
7575            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7576            /* [annotation] */
7577            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers) = 0;
7578       
7579        virtual void STDMETHODCALLTYPE PSGetShaderResources(
7580            /* [annotation] */
7581            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7582            /* [annotation] */
7583            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7584            /* [annotation] */
7585            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
7586       
7587        virtual void STDMETHODCALLTYPE PSGetShader(
7588            /* [annotation] */
7589            __out  ID3D11PixelShader **ppPixelShader,
7590            /* [annotation] */
7591            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
7592            /* [annotation] */
7593            __inout_opt  UINT *pNumClassInstances) = 0;
7594       
7595        virtual void STDMETHODCALLTYPE PSGetSamplers(
7596            /* [annotation] */
7597            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7598            /* [annotation] */
7599            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7600            /* [annotation] */
7601            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers) = 0;
7602       
7603        virtual void STDMETHODCALLTYPE VSGetShader(
7604            /* [annotation] */
7605            __out  ID3D11VertexShader **ppVertexShader,
7606            /* [annotation] */
7607            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
7608            /* [annotation] */
7609            __inout_opt  UINT *pNumClassInstances) = 0;
7610       
7611        virtual void STDMETHODCALLTYPE PSGetConstantBuffers(
7612            /* [annotation] */
7613            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7614            /* [annotation] */
7615            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7616            /* [annotation] */
7617            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers) = 0;
7618       
7619        virtual void STDMETHODCALLTYPE IAGetInputLayout(
7620            /* [annotation] */
7621            __out  ID3D11InputLayout **ppInputLayout) = 0;
7622       
7623        virtual void STDMETHODCALLTYPE IAGetVertexBuffers(
7624            /* [annotation] */
7625            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7626            /* [annotation] */
7627            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7628            /* [annotation] */
7629            __out_ecount_opt(NumBuffers)  ID3D11Buffer **ppVertexBuffers,
7630            /* [annotation] */
7631            __out_ecount_opt(NumBuffers)  UINT *pStrides,
7632            /* [annotation] */
7633            __out_ecount_opt(NumBuffers)  UINT *pOffsets) = 0;
7634       
7635        virtual void STDMETHODCALLTYPE IAGetIndexBuffer(
7636            /* [annotation] */
7637            __out_opt  ID3D11Buffer **pIndexBuffer,
7638            /* [annotation] */
7639            __out_opt  DXGI_FORMAT *Format,
7640            /* [annotation] */
7641            __out_opt  UINT *Offset) = 0;
7642       
7643        virtual void STDMETHODCALLTYPE GSGetConstantBuffers(
7644            /* [annotation] */
7645            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7646            /* [annotation] */
7647            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7648            /* [annotation] */
7649            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers) = 0;
7650       
7651        virtual void STDMETHODCALLTYPE GSGetShader(
7652            /* [annotation] */
7653            __out  ID3D11GeometryShader **ppGeometryShader,
7654            /* [annotation] */
7655            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
7656            /* [annotation] */
7657            __inout_opt  UINT *pNumClassInstances) = 0;
7658       
7659        virtual void STDMETHODCALLTYPE IAGetPrimitiveTopology(
7660            /* [annotation] */
7661            __out  D3D11_PRIMITIVE_TOPOLOGY *pTopology) = 0;
7662       
7663        virtual void STDMETHODCALLTYPE VSGetShaderResources(
7664            /* [annotation] */
7665            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7666            /* [annotation] */
7667            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7668            /* [annotation] */
7669            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
7670       
7671        virtual void STDMETHODCALLTYPE VSGetSamplers(
7672            /* [annotation] */
7673            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7674            /* [annotation] */
7675            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7676            /* [annotation] */
7677            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers) = 0;
7678       
7679        virtual void STDMETHODCALLTYPE GetPredication(
7680            /* [annotation] */
7681            __out_opt  ID3D11Predicate **ppPredicate,
7682            /* [annotation] */
7683            __out_opt  BOOL *pPredicateValue) = 0;
7684       
7685        virtual void STDMETHODCALLTYPE GSGetShaderResources(
7686            /* [annotation] */
7687            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7688            /* [annotation] */
7689            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7690            /* [annotation] */
7691            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
7692       
7693        virtual void STDMETHODCALLTYPE GSGetSamplers(
7694            /* [annotation] */
7695            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7696            /* [annotation] */
7697            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7698            /* [annotation] */
7699            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers) = 0;
7700       
7701        virtual void STDMETHODCALLTYPE OMGetRenderTargets(
7702            /* [annotation] */
7703            __in_range( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
7704            /* [annotation] */
7705            __out_ecount_opt(NumViews)  ID3D11RenderTargetView **ppRenderTargetViews,
7706            /* [annotation] */
7707            __out_opt  ID3D11DepthStencilView **ppDepthStencilView) = 0;
7708       
7709        virtual void STDMETHODCALLTYPE OMGetRenderTargetsAndUnorderedAccessViews(
7710            /* [annotation] */
7711            __in_range( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumRTVs,
7712            /* [annotation] */
7713            __out_ecount_opt(NumRTVs)  ID3D11RenderTargetView **ppRenderTargetViews,
7714            /* [annotation] */
7715            __out_opt  ID3D11DepthStencilView **ppDepthStencilView,
7716            /* [annotation] */
7717            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT UAVStartSlot,
7718            /* [annotation] */
7719            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - UAVStartSlot )  UINT NumUAVs,
7720            /* [annotation] */
7721            __out_ecount_opt(NumUAVs)  ID3D11UnorderedAccessView **ppUnorderedAccessViews) = 0;
7722       
7723        virtual void STDMETHODCALLTYPE OMGetBlendState(
7724            /* [annotation] */
7725            __out_opt  ID3D11BlendState **ppBlendState,
7726            /* [annotation] */
7727            __out_opt  FLOAT BlendFactor[ 4 ],
7728            /* [annotation] */
7729            __out_opt  UINT *pSampleMask) = 0;
7730       
7731        virtual void STDMETHODCALLTYPE OMGetDepthStencilState(
7732            /* [annotation] */
7733            __out_opt  ID3D11DepthStencilState **ppDepthStencilState,
7734            /* [annotation] */
7735            __out_opt  UINT *pStencilRef) = 0;
7736       
7737        virtual void STDMETHODCALLTYPE SOGetTargets(
7738            /* [annotation] */
7739            __in_range( 0, D3D11_SO_BUFFER_SLOT_COUNT )  UINT NumBuffers,
7740            /* [annotation] */
7741            __out_ecount(NumBuffers)  ID3D11Buffer **ppSOTargets) = 0;
7742       
7743        virtual void STDMETHODCALLTYPE RSGetState(
7744            /* [annotation] */
7745            __out  ID3D11RasterizerState **ppRasterizerState) = 0;
7746       
7747        virtual void STDMETHODCALLTYPE RSGetViewports(
7748            /* [annotation] */
7749            __inout /*_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *pNumViewports,
7750            /* [annotation] */
7751            __out_ecount_opt(*pNumViewports)  D3D11_VIEWPORT *pViewports) = 0;
7752       
7753        virtual void STDMETHODCALLTYPE RSGetScissorRects(
7754            /* [annotation] */
7755            __inout /*_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *pNumRects,
7756            /* [annotation] */
7757            __out_ecount_opt(*pNumRects)  D3D11_RECT *pRects) = 0;
7758       
7759        virtual void STDMETHODCALLTYPE HSGetShaderResources(
7760            /* [annotation] */
7761            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7762            /* [annotation] */
7763            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7764            /* [annotation] */
7765            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
7766       
7767        virtual void STDMETHODCALLTYPE HSGetShader(
7768            /* [annotation] */
7769            __out  ID3D11HullShader **ppHullShader,
7770            /* [annotation] */
7771            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
7772            /* [annotation] */
7773            __inout_opt  UINT *pNumClassInstances) = 0;
7774       
7775        virtual void STDMETHODCALLTYPE HSGetSamplers(
7776            /* [annotation] */
7777            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7778            /* [annotation] */
7779            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7780            /* [annotation] */
7781            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers) = 0;
7782       
7783        virtual void STDMETHODCALLTYPE HSGetConstantBuffers(
7784            /* [annotation] */
7785            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7786            /* [annotation] */
7787            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7788            /* [annotation] */
7789            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers) = 0;
7790       
7791        virtual void STDMETHODCALLTYPE DSGetShaderResources(
7792            /* [annotation] */
7793            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7794            /* [annotation] */
7795            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7796            /* [annotation] */
7797            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
7798       
7799        virtual void STDMETHODCALLTYPE DSGetShader(
7800            /* [annotation] */
7801            __out  ID3D11DomainShader **ppDomainShader,
7802            /* [annotation] */
7803            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
7804            /* [annotation] */
7805            __inout_opt  UINT *pNumClassInstances) = 0;
7806       
7807        virtual void STDMETHODCALLTYPE DSGetSamplers(
7808            /* [annotation] */
7809            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7810            /* [annotation] */
7811            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7812            /* [annotation] */
7813            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers) = 0;
7814       
7815        virtual void STDMETHODCALLTYPE DSGetConstantBuffers(
7816            /* [annotation] */
7817            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7818            /* [annotation] */
7819            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7820            /* [annotation] */
7821            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers) = 0;
7822       
7823        virtual void STDMETHODCALLTYPE CSGetShaderResources(
7824            /* [annotation] */
7825            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7826            /* [annotation] */
7827            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7828            /* [annotation] */
7829            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
7830       
7831        virtual void STDMETHODCALLTYPE CSGetUnorderedAccessViews(
7832            /* [annotation] */
7833            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT StartSlot,
7834            /* [annotation] */
7835            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - StartSlot )  UINT NumUAVs,
7836            /* [annotation] */
7837            __out_ecount(NumUAVs)  ID3D11UnorderedAccessView **ppUnorderedAccessViews) = 0;
7838       
7839        virtual void STDMETHODCALLTYPE CSGetShader(
7840            /* [annotation] */
7841            __out  ID3D11ComputeShader **ppComputeShader,
7842            /* [annotation] */
7843            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
7844            /* [annotation] */
7845            __inout_opt  UINT *pNumClassInstances) = 0;
7846       
7847        virtual void STDMETHODCALLTYPE CSGetSamplers(
7848            /* [annotation] */
7849            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7850            /* [annotation] */
7851            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7852            /* [annotation] */
7853            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers) = 0;
7854       
7855        virtual void STDMETHODCALLTYPE CSGetConstantBuffers(
7856            /* [annotation] */
7857            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7858            /* [annotation] */
7859            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7860            /* [annotation] */
7861            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers) = 0;
7862       
7863        virtual void STDMETHODCALLTYPE ClearState( void) = 0;
7864       
7865        virtual void STDMETHODCALLTYPE Flush( void) = 0;
7866       
7867        virtual D3D11_DEVICE_CONTEXT_TYPE STDMETHODCALLTYPE GetType( void) = 0;
7868       
7869        virtual UINT STDMETHODCALLTYPE GetContextFlags( void) = 0;
7870       
7871        virtual HRESULT STDMETHODCALLTYPE FinishCommandList(
7872            BOOL RestoreDeferredContextState,
7873            /* [annotation] */
7874            __out_opt  ID3D11CommandList **ppCommandList) = 0;
7875       
7876    };
7877   
7878#else    /* C style interface */
7879
7880    typedef struct ID3D11DeviceContextVtbl
7881    {
7882        BEGIN_INTERFACE
7883       
7884        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7885            ID3D11DeviceContext * This,
7886            /* [in] */ REFIID riid,
7887            /* [annotation][iid_is][out] */
7888            __RPC__deref_out  void **ppvObject);
7889       
7890        ULONG ( STDMETHODCALLTYPE *AddRef )(
7891            ID3D11DeviceContext * This);
7892       
7893        ULONG ( STDMETHODCALLTYPE *Release )(
7894            ID3D11DeviceContext * This);
7895       
7896        void ( STDMETHODCALLTYPE *GetDevice )(
7897            ID3D11DeviceContext * This,
7898            /* [annotation] */
7899            __out  ID3D11Device **ppDevice);
7900       
7901        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
7902            ID3D11DeviceContext * This,
7903            /* [annotation] */
7904            __in  REFGUID guid,
7905            /* [annotation] */
7906            __inout  UINT *pDataSize,
7907            /* [annotation] */
7908            __out_bcount_opt( *pDataSize )  void *pData);
7909       
7910        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
7911            ID3D11DeviceContext * This,
7912            /* [annotation] */
7913            __in  REFGUID guid,
7914            /* [annotation] */
7915            __in  UINT DataSize,
7916            /* [annotation] */
7917            __in_bcount_opt( DataSize )  const void *pData);
7918       
7919        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
7920            ID3D11DeviceContext * This,
7921            /* [annotation] */
7922            __in  REFGUID guid,
7923            /* [annotation] */
7924            __in_opt  const IUnknown *pData);
7925       
7926        void ( STDMETHODCALLTYPE *VSSetConstantBuffers )(
7927            ID3D11DeviceContext * This,
7928            /* [annotation] */
7929            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7930            /* [annotation] */
7931            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7932            /* [annotation] */
7933            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers);
7934       
7935        void ( STDMETHODCALLTYPE *PSSetShaderResources )(
7936            ID3D11DeviceContext * This,
7937            /* [annotation] */
7938            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7939            /* [annotation] */
7940            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7941            /* [annotation] */
7942            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews);
7943       
7944        void ( STDMETHODCALLTYPE *PSSetShader )(
7945            ID3D11DeviceContext * This,
7946            /* [annotation] */
7947            __in_opt  ID3D11PixelShader *pPixelShader,
7948            /* [annotation] */
7949            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7950            UINT NumClassInstances);
7951       
7952        void ( STDMETHODCALLTYPE *PSSetSamplers )(
7953            ID3D11DeviceContext * This,
7954            /* [annotation] */
7955            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7956            /* [annotation] */
7957            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7958            /* [annotation] */
7959            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers);
7960       
7961        void ( STDMETHODCALLTYPE *VSSetShader )(
7962            ID3D11DeviceContext * This,
7963            /* [annotation] */
7964            __in_opt  ID3D11VertexShader *pVertexShader,
7965            /* [annotation] */
7966            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7967            UINT NumClassInstances);
7968       
7969        void ( STDMETHODCALLTYPE *DrawIndexed )(
7970            ID3D11DeviceContext * This,
7971            /* [annotation] */
7972            __in  UINT IndexCount,
7973            /* [annotation] */
7974            __in  UINT StartIndexLocation,
7975            /* [annotation] */
7976            __in  INT BaseVertexLocation);
7977       
7978        void ( STDMETHODCALLTYPE *Draw )(
7979            ID3D11DeviceContext * This,
7980            /* [annotation] */
7981            __in  UINT VertexCount,
7982            /* [annotation] */
7983            __in  UINT StartVertexLocation);
7984       
7985        HRESULT ( STDMETHODCALLTYPE *Map )(
7986            ID3D11DeviceContext * This,
7987            /* [annotation] */
7988            __in  ID3D11Resource *pResource,
7989            /* [annotation] */
7990            __in  UINT Subresource,
7991            /* [annotation] */
7992            __in  D3D11_MAP MapType,
7993            /* [annotation] */
7994            __in  UINT MapFlags,
7995            /* [annotation] */
7996            __out  D3D11_MAPPED_SUBRESOURCE *pMappedResource);
7997       
7998        void ( STDMETHODCALLTYPE *Unmap )(
7999            ID3D11DeviceContext * This,
8000            /* [annotation] */
8001            __in  ID3D11Resource *pResource,
8002            /* [annotation] */
8003            __in  UINT Subresource);
8004       
8005        void ( STDMETHODCALLTYPE *PSSetConstantBuffers )(
8006            ID3D11DeviceContext * This,
8007            /* [annotation] */
8008            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8009            /* [annotation] */
8010            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8011            /* [annotation] */
8012            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers);
8013       
8014        void ( STDMETHODCALLTYPE *IASetInputLayout )(
8015            ID3D11DeviceContext * This,
8016            /* [annotation] */
8017            __in_opt  ID3D11InputLayout *pInputLayout);
8018       
8019        void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
8020            ID3D11DeviceContext * This,
8021            /* [annotation] */
8022            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8023            /* [annotation] */
8024            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8025            /* [annotation] */
8026            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppVertexBuffers,
8027            /* [annotation] */
8028            __in_ecount(NumBuffers)  const UINT *pStrides,
8029            /* [annotation] */
8030            __in_ecount(NumBuffers)  const UINT *pOffsets);
8031       
8032        void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
8033            ID3D11DeviceContext * This,
8034            /* [annotation] */
8035            __in_opt  ID3D11Buffer *pIndexBuffer,
8036            /* [annotation] */
8037            __in  DXGI_FORMAT Format,
8038            /* [annotation] */
8039            __in  UINT Offset);
8040       
8041        void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
8042            ID3D11DeviceContext * This,
8043            /* [annotation] */
8044            __in  UINT IndexCountPerInstance,
8045            /* [annotation] */
8046            __in  UINT InstanceCount,
8047            /* [annotation] */
8048            __in  UINT StartIndexLocation,
8049            /* [annotation] */
8050            __in  INT BaseVertexLocation,
8051            /* [annotation] */
8052            __in  UINT StartInstanceLocation);
8053       
8054        void ( STDMETHODCALLTYPE *DrawInstanced )(
8055            ID3D11DeviceContext * This,
8056            /* [annotation] */
8057            __in  UINT VertexCountPerInstance,
8058            /* [annotation] */
8059            __in  UINT InstanceCount,
8060            /* [annotation] */
8061            __in  UINT StartVertexLocation,
8062            /* [annotation] */
8063            __in  UINT StartInstanceLocation);
8064       
8065        void ( STDMETHODCALLTYPE *GSSetConstantBuffers )(
8066            ID3D11DeviceContext * This,
8067            /* [annotation] */
8068            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8069            /* [annotation] */
8070            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8071            /* [annotation] */
8072            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers);
8073       
8074        void ( STDMETHODCALLTYPE *GSSetShader )(
8075            ID3D11DeviceContext * This,
8076            /* [annotation] */
8077            __in_opt  ID3D11GeometryShader *pShader,
8078            /* [annotation] */
8079            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
8080            UINT NumClassInstances);
8081       
8082        void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
8083            ID3D11DeviceContext * This,
8084            /* [annotation] */
8085            __in  D3D11_PRIMITIVE_TOPOLOGY Topology);
8086       
8087        void ( STDMETHODCALLTYPE *VSSetShaderResources )(
8088            ID3D11DeviceContext * This,
8089            /* [annotation] */
8090            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8091            /* [annotation] */
8092            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8093            /* [annotation] */
8094            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews);
8095       
8096        void ( STDMETHODCALLTYPE *VSSetSamplers )(
8097            ID3D11DeviceContext * This,
8098            /* [annotation] */
8099            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8100            /* [annotation] */
8101            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8102            /* [annotation] */
8103            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers);
8104       
8105        void ( STDMETHODCALLTYPE *Begin )(
8106            ID3D11DeviceContext * This,
8107            /* [annotation] */
8108            __in  ID3D11Asynchronous *pAsync);
8109       
8110        void ( STDMETHODCALLTYPE *End )(
8111            ID3D11DeviceContext * This,
8112            /* [annotation] */
8113            __in  ID3D11Asynchronous *pAsync);
8114       
8115        HRESULT ( STDMETHODCALLTYPE *GetData )(
8116            ID3D11DeviceContext * This,
8117            /* [annotation] */
8118            __in  ID3D11Asynchronous *pAsync,
8119            /* [annotation] */
8120            __out_bcount_opt( DataSize )  void *pData,
8121            /* [annotation] */
8122            __in  UINT DataSize,
8123            /* [annotation] */
8124            __in  UINT GetDataFlags);
8125       
8126        void ( STDMETHODCALLTYPE *SetPredication )(
8127            ID3D11DeviceContext * This,
8128            /* [annotation] */
8129            __in_opt  ID3D11Predicate *pPredicate,
8130            /* [annotation] */
8131            __in  BOOL PredicateValue);
8132       
8133        void ( STDMETHODCALLTYPE *GSSetShaderResources )(
8134            ID3D11DeviceContext * This,
8135            /* [annotation] */
8136            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8137            /* [annotation] */
8138            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8139            /* [annotation] */
8140            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews);
8141       
8142        void ( STDMETHODCALLTYPE *GSSetSamplers )(
8143            ID3D11DeviceContext * This,
8144            /* [annotation] */
8145            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8146            /* [annotation] */
8147            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8148            /* [annotation] */
8149            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers);
8150       
8151        void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
8152            ID3D11DeviceContext * This,
8153            /* [annotation] */
8154            __in_range( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
8155            /* [annotation] */
8156            __in_ecount_opt(NumViews)  ID3D11RenderTargetView *const *ppRenderTargetViews,
8157            /* [annotation] */
8158            __in_opt  ID3D11DepthStencilView *pDepthStencilView);
8159       
8160        void ( STDMETHODCALLTYPE *OMSetRenderTargetsAndUnorderedAccessViews )(
8161            ID3D11DeviceContext * This,
8162            /* [annotation] */
8163            __in  UINT NumRTVs,
8164            /* [annotation] */
8165            __in_ecount_opt(NumRTVs)  ID3D11RenderTargetView *const *ppRenderTargetViews,
8166            /* [annotation] */
8167            __in_opt  ID3D11DepthStencilView *pDepthStencilView,
8168            /* [annotation] */
8169            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT UAVStartSlot,
8170            /* [annotation] */
8171            __in  UINT NumUAVs,
8172            /* [annotation] */
8173            __in_ecount_opt(NumUAVs)  ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
8174            /* [annotation] */
8175            __in_ecount_opt(NumUAVs)  const UINT *pUAVInitialCounts);
8176       
8177        void ( STDMETHODCALLTYPE *OMSetBlendState )(
8178            ID3D11DeviceContext * This,
8179            /* [annotation] */
8180            __in_opt  ID3D11BlendState *pBlendState,
8181            /* [annotation] */
8182            __in_opt  const FLOAT BlendFactor[ 4 ],
8183            /* [annotation] */
8184            __in  UINT SampleMask);
8185       
8186        void ( STDMETHODCALLTYPE *OMSetDepthStencilState )(
8187            ID3D11DeviceContext * This,
8188            /* [annotation] */
8189            __in_opt  ID3D11DepthStencilState *pDepthStencilState,
8190            /* [annotation] */
8191            __in  UINT StencilRef);
8192       
8193        void ( STDMETHODCALLTYPE *SOSetTargets )(
8194            ID3D11DeviceContext * This,
8195            /* [annotation] */
8196            __in_range( 0, D3D11_SO_BUFFER_SLOT_COUNT)  UINT NumBuffers,
8197            /* [annotation] */
8198            __in_ecount_opt(NumBuffers)  ID3D11Buffer *const *ppSOTargets,
8199            /* [annotation] */
8200            __in_ecount_opt(NumBuffers)  const UINT *pOffsets);
8201       
8202        void ( STDMETHODCALLTYPE *DrawAuto )(
8203            ID3D11DeviceContext * This);
8204       
8205        void ( STDMETHODCALLTYPE *DrawIndexedInstancedIndirect )(
8206            ID3D11DeviceContext * This,
8207            /* [annotation] */
8208            __in  ID3D11Buffer *pBufferForArgs,
8209            /* [annotation] */
8210            __in  UINT AlignedByteOffsetForArgs);
8211       
8212        void ( STDMETHODCALLTYPE *DrawInstancedIndirect )(
8213            ID3D11DeviceContext * This,
8214            /* [annotation] */
8215            __in  ID3D11Buffer *pBufferForArgs,
8216            /* [annotation] */
8217            __in  UINT AlignedByteOffsetForArgs);
8218       
8219        void ( STDMETHODCALLTYPE *Dispatch )(
8220            ID3D11DeviceContext * This,
8221            /* [annotation] */
8222            __in  UINT ThreadGroupCountX,
8223            /* [annotation] */
8224            __in  UINT ThreadGroupCountY,
8225            /* [annotation] */
8226            __in  UINT ThreadGroupCountZ);
8227       
8228        void ( STDMETHODCALLTYPE *DispatchIndirect )(
8229            ID3D11DeviceContext * This,
8230            /* [annotation] */
8231            __in  ID3D11Buffer *pBufferForArgs,
8232            /* [annotation] */
8233            __in  UINT AlignedByteOffsetForArgs);
8234       
8235        void ( STDMETHODCALLTYPE *RSSetState )(
8236            ID3D11DeviceContext * This,
8237            /* [annotation] */
8238            __in_opt  ID3D11RasterizerState *pRasterizerState);
8239       
8240        void ( STDMETHODCALLTYPE *RSSetViewports )(
8241            ID3D11DeviceContext * This,
8242            /* [annotation] */
8243            __in_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumViewports,
8244            /* [annotation] */
8245            __in_ecount_opt(NumViewports)  const D3D11_VIEWPORT *pViewports);
8246       
8247        void ( STDMETHODCALLTYPE *RSSetScissorRects )(
8248            ID3D11DeviceContext * This,
8249            /* [annotation] */
8250            __in_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumRects,
8251            /* [annotation] */
8252            __in_ecount_opt(NumRects)  const D3D11_RECT *pRects);
8253       
8254        void ( STDMETHODCALLTYPE *CopySubresourceRegion )(
8255            ID3D11DeviceContext * This,
8256            /* [annotation] */
8257            __in  ID3D11Resource *pDstResource,
8258            /* [annotation] */
8259            __in  UINT DstSubresource,
8260            /* [annotation] */
8261            __in  UINT DstX,
8262            /* [annotation] */
8263            __in  UINT DstY,
8264            /* [annotation] */
8265            __in  UINT DstZ,
8266            /* [annotation] */
8267            __in  ID3D11Resource *pSrcResource,
8268            /* [annotation] */
8269            __in  UINT SrcSubresource,
8270            /* [annotation] */
8271            __in_opt  const D3D11_BOX *pSrcBox);
8272       
8273        void ( STDMETHODCALLTYPE *CopyResource )(
8274            ID3D11DeviceContext * This,
8275            /* [annotation] */
8276            __in  ID3D11Resource *pDstResource,
8277            /* [annotation] */
8278            __in  ID3D11Resource *pSrcResource);
8279       
8280        void ( STDMETHODCALLTYPE *UpdateSubresource )(
8281            ID3D11DeviceContext * This,
8282            /* [annotation] */
8283            __in  ID3D11Resource *pDstResource,
8284            /* [annotation] */
8285            __in  UINT DstSubresource,
8286            /* [annotation] */
8287            __in_opt  const D3D11_BOX *pDstBox,
8288            /* [annotation] */
8289            __in  const void *pSrcData,
8290            /* [annotation] */
8291            __in  UINT SrcRowPitch,
8292            /* [annotation] */
8293            __in  UINT SrcDepthPitch);
8294       
8295        void ( STDMETHODCALLTYPE *CopyStructureCount )(
8296            ID3D11DeviceContext * This,
8297            /* [annotation] */
8298            __in  ID3D11Buffer *pDstBuffer,
8299            /* [annotation] */
8300            __in  UINT DstAlignedByteOffset,
8301            /* [annotation] */
8302            __in  ID3D11UnorderedAccessView *pSrcView);
8303       
8304        void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
8305            ID3D11DeviceContext * This,
8306            /* [annotation] */
8307            __in  ID3D11RenderTargetView *pRenderTargetView,
8308            /* [annotation] */
8309            __in  const FLOAT ColorRGBA[ 4 ]);
8310       
8311        void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
8312            ID3D11DeviceContext * This,
8313            /* [annotation] */
8314            __in  ID3D11UnorderedAccessView *pUnorderedAccessView,
8315            /* [annotation] */
8316            __in  const UINT Values[ 4 ]);
8317       
8318        void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
8319            ID3D11DeviceContext * This,
8320            /* [annotation] */
8321            __in  ID3D11UnorderedAccessView *pUnorderedAccessView,
8322            /* [annotation] */
8323            __in  const FLOAT Values[ 4 ]);
8324       
8325        void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
8326            ID3D11DeviceContext * This,
8327            /* [annotation] */
8328            __in  ID3D11DepthStencilView *pDepthStencilView,
8329            /* [annotation] */
8330            __in  UINT ClearFlags,
8331            /* [annotation] */
8332            __in  FLOAT Depth,
8333            /* [annotation] */
8334            __in  UINT8 Stencil);
8335       
8336        void ( STDMETHODCALLTYPE *GenerateMips )(
8337            ID3D11DeviceContext * This,
8338            /* [annotation] */
8339            __in  ID3D11ShaderResourceView *pShaderResourceView);
8340       
8341        void ( STDMETHODCALLTYPE *SetResourceMinLOD )(
8342            ID3D11DeviceContext * This,
8343            /* [annotation] */
8344            __in  ID3D11Resource *pResource,
8345            FLOAT MinLOD);
8346       
8347        FLOAT ( STDMETHODCALLTYPE *GetResourceMinLOD )(
8348            ID3D11DeviceContext * This,
8349            /* [annotation] */
8350            __in  ID3D11Resource *pResource);
8351       
8352        void ( STDMETHODCALLTYPE *ResolveSubresource )(
8353            ID3D11DeviceContext * This,
8354            /* [annotation] */
8355            __in  ID3D11Resource *pDstResource,
8356            /* [annotation] */
8357            __in  UINT DstSubresource,
8358            /* [annotation] */
8359            __in  ID3D11Resource *pSrcResource,
8360            /* [annotation] */
8361            __in  UINT SrcSubresource,
8362            /* [annotation] */
8363            __in  DXGI_FORMAT Format);
8364       
8365        void ( STDMETHODCALLTYPE *ExecuteCommandList )(
8366            ID3D11DeviceContext * This,
8367            /* [annotation] */
8368            __in  ID3D11CommandList *pCommandList,
8369            BOOL RestoreContextState);
8370       
8371        void ( STDMETHODCALLTYPE *HSSetShaderResources )(
8372            ID3D11DeviceContext * This,
8373            /* [annotation] */
8374            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8375            /* [annotation] */
8376            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8377            /* [annotation] */
8378            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews);
8379       
8380        void ( STDMETHODCALLTYPE *HSSetShader )(
8381            ID3D11DeviceContext * This,
8382            /* [annotation] */
8383            __in_opt  ID3D11HullShader *pHullShader,
8384            /* [annotation] */
8385            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
8386            UINT NumClassInstances);
8387       
8388        void ( STDMETHODCALLTYPE *HSSetSamplers )(
8389            ID3D11DeviceContext * This,
8390            /* [annotation] */
8391            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8392            /* [annotation] */
8393            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8394            /* [annotation] */
8395            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers);
8396       
8397        void ( STDMETHODCALLTYPE *HSSetConstantBuffers )(
8398            ID3D11DeviceContext * This,
8399            /* [annotation] */
8400            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8401            /* [annotation] */
8402            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8403            /* [annotation] */
8404            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers);
8405       
8406        void ( STDMETHODCALLTYPE *DSSetShaderResources )(
8407            ID3D11DeviceContext * This,
8408            /* [annotation] */
8409            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8410            /* [annotation] */
8411            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8412            /* [annotation] */
8413            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews);
8414       
8415        void ( STDMETHODCALLTYPE *DSSetShader )(
8416            ID3D11DeviceContext * This,
8417            /* [annotation] */
8418            __in_opt  ID3D11DomainShader *pDomainShader,
8419            /* [annotation] */
8420            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
8421            UINT NumClassInstances);
8422       
8423        void ( STDMETHODCALLTYPE *DSSetSamplers )(
8424            ID3D11DeviceContext * This,
8425            /* [annotation] */
8426            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8427            /* [annotation] */
8428            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8429            /* [annotation] */
8430            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers);
8431       
8432        void ( STDMETHODCALLTYPE *DSSetConstantBuffers )(
8433            ID3D11DeviceContext * This,
8434            /* [annotation] */
8435            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8436            /* [annotation] */
8437            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8438            /* [annotation] */
8439            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers);
8440       
8441        void ( STDMETHODCALLTYPE *CSSetShaderResources )(
8442            ID3D11DeviceContext * This,
8443            /* [annotation] */
8444            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8445            /* [annotation] */
8446            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8447            /* [annotation] */
8448            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews);
8449       
8450        void ( STDMETHODCALLTYPE *CSSetUnorderedAccessViews )(
8451            ID3D11DeviceContext * This,
8452            /* [annotation] */
8453            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT StartSlot,
8454            /* [annotation] */
8455            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - StartSlot )  UINT NumUAVs,
8456            /* [annotation] */
8457            __in_ecount(NumUAVs)  ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
8458            /* [annotation] */
8459            __in_ecount(NumUAVs)  const UINT *pUAVInitialCounts);
8460       
8461        void ( STDMETHODCALLTYPE *CSSetShader )(
8462            ID3D11DeviceContext * This,
8463            /* [annotation] */
8464            __in_opt  ID3D11ComputeShader *pComputeShader,
8465            /* [annotation] */
8466            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
8467            UINT NumClassInstances);
8468       
8469        void ( STDMETHODCALLTYPE *CSSetSamplers )(
8470            ID3D11DeviceContext * This,
8471            /* [annotation] */
8472            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8473            /* [annotation] */
8474            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8475            /* [annotation] */
8476            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers);
8477       
8478        void ( STDMETHODCALLTYPE *CSSetConstantBuffers )(
8479            ID3D11DeviceContext * This,
8480            /* [annotation] */
8481            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8482            /* [annotation] */
8483            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8484            /* [annotation] */
8485            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers);
8486       
8487        void ( STDMETHODCALLTYPE *VSGetConstantBuffers )(
8488            ID3D11DeviceContext * This,
8489            /* [annotation] */
8490            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8491            /* [annotation] */
8492            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8493            /* [annotation] */
8494            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers);
8495       
8496        void ( STDMETHODCALLTYPE *PSGetShaderResources )(
8497            ID3D11DeviceContext * This,
8498            /* [annotation] */
8499            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8500            /* [annotation] */
8501            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8502            /* [annotation] */
8503            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews);
8504       
8505        void ( STDMETHODCALLTYPE *PSGetShader )(
8506            ID3D11DeviceContext * This,
8507            /* [annotation] */
8508            __out  ID3D11PixelShader **ppPixelShader,
8509            /* [annotation] */
8510            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
8511            /* [annotation] */
8512            __inout_opt  UINT *pNumClassInstances);
8513       
8514        void ( STDMETHODCALLTYPE *PSGetSamplers )(
8515            ID3D11DeviceContext * This,
8516            /* [annotation] */
8517            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8518            /* [annotation] */
8519            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8520            /* [annotation] */
8521            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers);
8522       
8523        void ( STDMETHODCALLTYPE *VSGetShader )(
8524            ID3D11DeviceContext * This,
8525            /* [annotation] */
8526            __out  ID3D11VertexShader **ppVertexShader,
8527            /* [annotation] */
8528            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
8529            /* [annotation] */
8530            __inout_opt  UINT *pNumClassInstances);
8531       
8532        void ( STDMETHODCALLTYPE *PSGetConstantBuffers )(
8533            ID3D11DeviceContext * This,
8534            /* [annotation] */
8535            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8536            /* [annotation] */
8537            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8538            /* [annotation] */
8539            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers);
8540       
8541        void ( STDMETHODCALLTYPE *IAGetInputLayout )(
8542            ID3D11DeviceContext * This,
8543            /* [annotation] */
8544            __out  ID3D11InputLayout **ppInputLayout);
8545       
8546        void ( STDMETHODCALLTYPE *IAGetVertexBuffers )(
8547            ID3D11DeviceContext * This,
8548            /* [annotation] */
8549            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8550            /* [annotation] */
8551            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8552            /* [annotation] */
8553            __out_ecount_opt(NumBuffers)  ID3D11Buffer **ppVertexBuffers,
8554            /* [annotation] */
8555            __out_ecount_opt(NumBuffers)  UINT *pStrides,
8556            /* [annotation] */
8557            __out_ecount_opt(NumBuffers)  UINT *pOffsets);
8558       
8559        void ( STDMETHODCALLTYPE *IAGetIndexBuffer )(
8560            ID3D11DeviceContext * This,
8561            /* [annotation] */
8562            __out_opt  ID3D11Buffer **pIndexBuffer,
8563            /* [annotation] */
8564            __out_opt  DXGI_FORMAT *Format,
8565            /* [annotation] */
8566            __out_opt  UINT *Offset);
8567       
8568        void ( STDMETHODCALLTYPE *GSGetConstantBuffers )(
8569            ID3D11DeviceContext * This,
8570            /* [annotation] */
8571            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8572            /* [annotation] */
8573            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8574            /* [annotation] */
8575            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers);
8576       
8577        void ( STDMETHODCALLTYPE *GSGetShader )(
8578            ID3D11DeviceContext * This,
8579            /* [annotation] */
8580            __out  ID3D11GeometryShader **ppGeometryShader,
8581            /* [annotation] */
8582            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
8583            /* [annotation] */
8584            __inout_opt  UINT *pNumClassInstances);
8585       
8586        void ( STDMETHODCALLTYPE *IAGetPrimitiveTopology )(
8587            ID3D11DeviceContext * This,
8588            /* [annotation] */
8589            __out  D3D11_PRIMITIVE_TOPOLOGY *pTopology);
8590       
8591        void ( STDMETHODCALLTYPE *VSGetShaderResources )(
8592            ID3D11DeviceContext * This,
8593            /* [annotation] */
8594            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8595            /* [annotation] */
8596            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8597            /* [annotation] */
8598            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews);
8599       
8600        void ( STDMETHODCALLTYPE *VSGetSamplers )(
8601            ID3D11DeviceContext * This,
8602            /* [annotation] */
8603            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8604            /* [annotation] */
8605            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8606            /* [annotation] */
8607            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers);
8608       
8609        void ( STDMETHODCALLTYPE *GetPredication )(
8610            ID3D11DeviceContext * This,
8611            /* [annotation] */
8612            __out_opt  ID3D11Predicate **ppPredicate,
8613            /* [annotation] */
8614            __out_opt  BOOL *pPredicateValue);
8615       
8616        void ( STDMETHODCALLTYPE *GSGetShaderResources )(
8617            ID3D11DeviceContext * This,
8618            /* [annotation] */
8619            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8620            /* [annotation] */
8621            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8622            /* [annotation] */
8623            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews);
8624       
8625        void ( STDMETHODCALLTYPE *GSGetSamplers )(
8626            ID3D11DeviceContext * This,
8627            /* [annotation] */
8628            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8629            /* [annotation] */
8630            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8631            /* [annotation] */
8632            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers);
8633       
8634        void ( STDMETHODCALLTYPE *OMGetRenderTargets )(
8635            ID3D11DeviceContext * This,
8636            /* [annotation] */
8637            __in_range( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
8638            /* [annotation] */
8639            __out_ecount_opt(NumViews)  ID3D11RenderTargetView **ppRenderTargetViews,
8640            /* [annotation] */
8641            __out_opt  ID3D11DepthStencilView **ppDepthStencilView);
8642       
8643        void ( STDMETHODCALLTYPE *OMGetRenderTargetsAndUnorderedAccessViews )(
8644            ID3D11DeviceContext * This,
8645            /* [annotation] */
8646            __in_range( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumRTVs,
8647            /* [annotation] */
8648            __out_ecount_opt(NumRTVs)  ID3D11RenderTargetView **ppRenderTargetViews,
8649            /* [annotation] */
8650            __out_opt  ID3D11DepthStencilView **ppDepthStencilView,
8651            /* [annotation] */
8652            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT UAVStartSlot,
8653            /* [annotation] */
8654            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - UAVStartSlot )  UINT NumUAVs,
8655            /* [annotation] */
8656            __out_ecount_opt(NumUAVs)  ID3D11UnorderedAccessView **ppUnorderedAccessViews);
8657       
8658        void ( STDMETHODCALLTYPE *OMGetBlendState )(
8659            ID3D11DeviceContext * This,
8660            /* [annotation] */
8661            __out_opt  ID3D11BlendState **ppBlendState,
8662            /* [annotation] */
8663            __out_opt  FLOAT BlendFactor[ 4 ],
8664            /* [annotation] */
8665            __out_opt  UINT *pSampleMask);
8666       
8667        void ( STDMETHODCALLTYPE *OMGetDepthStencilState )(
8668            ID3D11DeviceContext * This,
8669            /* [annotation] */
8670            __out_opt  ID3D11DepthStencilState **ppDepthStencilState,
8671            /* [annotation] */
8672            __out_opt  UINT *pStencilRef);
8673       
8674        void ( STDMETHODCALLTYPE *SOGetTargets )(
8675            ID3D11DeviceContext * This,
8676            /* [annotation] */
8677            __in_range( 0, D3D11_SO_BUFFER_SLOT_COUNT )  UINT NumBuffers,
8678            /* [annotation] */
8679            __out_ecount(NumBuffers)  ID3D11Buffer **ppSOTargets);
8680       
8681        void ( STDMETHODCALLTYPE *RSGetState )(
8682            ID3D11DeviceContext * This,
8683            /* [annotation] */
8684            __out  ID3D11RasterizerState **ppRasterizerState);
8685       
8686        void ( STDMETHODCALLTYPE *RSGetViewports )(
8687            ID3D11DeviceContext * This,
8688            /* [annotation] */
8689            __inout /*_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *pNumViewports,
8690            /* [annotation] */
8691            __out_ecount_opt(*pNumViewports)  D3D11_VIEWPORT *pViewports);
8692       
8693        void ( STDMETHODCALLTYPE *RSGetScissorRects )(
8694            ID3D11DeviceContext * This,
8695            /* [annotation] */
8696            __inout /*_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *pNumRects,
8697            /* [annotation] */
8698            __out_ecount_opt(*pNumRects)  D3D11_RECT *pRects);
8699       
8700        void ( STDMETHODCALLTYPE *HSGetShaderResources )(
8701            ID3D11DeviceContext * This,
8702            /* [annotation] */
8703            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8704            /* [annotation] */
8705            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8706            /* [annotation] */
8707            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews);
8708       
8709        void ( STDMETHODCALLTYPE *HSGetShader )(
8710            ID3D11DeviceContext * This,
8711            /* [annotation] */
8712            __out  ID3D11HullShader **ppHullShader,
8713            /* [annotation] */
8714            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
8715            /* [annotation] */
8716            __inout_opt  UINT *pNumClassInstances);
8717       
8718        void ( STDMETHODCALLTYPE *HSGetSamplers )(
8719            ID3D11DeviceContext * This,
8720            /* [annotation] */
8721            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8722            /* [annotation] */
8723            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8724            /* [annotation] */
8725            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers);
8726       
8727        void ( STDMETHODCALLTYPE *HSGetConstantBuffers )(
8728            ID3D11DeviceContext * This,
8729            /* [annotation] */
8730            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8731            /* [annotation] */
8732            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8733            /* [annotation] */
8734            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers);
8735       
8736        void ( STDMETHODCALLTYPE *DSGetShaderResources )(
8737            ID3D11DeviceContext * This,
8738            /* [annotation] */
8739            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8740            /* [annotation] */
8741            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8742            /* [annotation] */
8743            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews);
8744       
8745        void ( STDMETHODCALLTYPE *DSGetShader )(
8746            ID3D11DeviceContext * This,
8747            /* [annotation] */
8748            __out  ID3D11DomainShader **ppDomainShader,
8749            /* [annotation] */
8750            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
8751            /* [annotation] */
8752            __inout_opt  UINT *pNumClassInstances);
8753       
8754        void ( STDMETHODCALLTYPE *DSGetSamplers )(
8755            ID3D11DeviceContext * This,
8756            /* [annotation] */
8757            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8758            /* [annotation] */
8759            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8760            /* [annotation] */
8761            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers);
8762       
8763        void ( STDMETHODCALLTYPE *DSGetConstantBuffers )(
8764            ID3D11DeviceContext * This,
8765            /* [annotation] */
8766            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8767            /* [annotation] */
8768            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8769            /* [annotation] */
8770            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers);
8771       
8772        void ( STDMETHODCALLTYPE *CSGetShaderResources )(
8773            ID3D11DeviceContext * This,
8774            /* [annotation] */
8775            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8776            /* [annotation] */
8777            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8778            /* [annotation] */
8779            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews);
8780       
8781        void ( STDMETHODCALLTYPE *CSGetUnorderedAccessViews )(
8782            ID3D11DeviceContext * This,
8783            /* [annotation] */
8784            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT StartSlot,
8785            /* [annotation] */
8786            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - StartSlot )  UINT NumUAVs,
8787            /* [annotation] */
8788            __out_ecount(NumUAVs)  ID3D11UnorderedAccessView **ppUnorderedAccessViews);
8789       
8790        void ( STDMETHODCALLTYPE *CSGetShader )(
8791            ID3D11DeviceContext * This,
8792            /* [annotation] */
8793            __out  ID3D11ComputeShader **ppComputeShader,
8794            /* [annotation] */
8795            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
8796            /* [annotation] */
8797            __inout_opt  UINT *pNumClassInstances);
8798       
8799        void ( STDMETHODCALLTYPE *CSGetSamplers )(
8800            ID3D11DeviceContext * This,
8801            /* [annotation] */
8802            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8803            /* [annotation] */
8804            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8805            /* [annotation] */
8806            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers);
8807       
8808        void ( STDMETHODCALLTYPE *CSGetConstantBuffers )(
8809            ID3D11DeviceContext * This,
8810            /* [annotation] */
8811            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8812            /* [annotation] */
8813            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8814            /* [annotation] */
8815            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers);
8816       
8817        void ( STDMETHODCALLTYPE *ClearState )(
8818            ID3D11DeviceContext * This);
8819       
8820        void ( STDMETHODCALLTYPE *Flush )(
8821            ID3D11DeviceContext * This);
8822       
8823        D3D11_DEVICE_CONTEXT_TYPE ( STDMETHODCALLTYPE *GetType )(
8824            ID3D11DeviceContext * This);
8825       
8826        UINT ( STDMETHODCALLTYPE *GetContextFlags )(
8827            ID3D11DeviceContext * This);
8828       
8829        HRESULT ( STDMETHODCALLTYPE *FinishCommandList )(
8830            ID3D11DeviceContext * This,
8831            BOOL RestoreDeferredContextState,
8832            /* [annotation] */
8833            __out_opt  ID3D11CommandList **ppCommandList);
8834       
8835        END_INTERFACE
8836    } ID3D11DeviceContextVtbl;
8837
8838    interface ID3D11DeviceContext
8839    {
8840        CONST_VTBL struct ID3D11DeviceContextVtbl *lpVtbl;
8841    };
8842
8843   
8844
8845#ifdef COBJMACROS
8846
8847
8848#define ID3D11DeviceContext_QueryInterface(This,riid,ppvObject)   \
8849    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8850
8851#define ID3D11DeviceContext_AddRef(This)   \
8852    ( (This)->lpVtbl -> AddRef(This) )
8853
8854#define ID3D11DeviceContext_Release(This)   \
8855    ( (This)->lpVtbl -> Release(This) )
8856
8857
8858#define ID3D11DeviceContext_GetDevice(This,ppDevice)   \
8859    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
8860
8861#define ID3D11DeviceContext_GetPrivateData(This,guid,pDataSize,pData)   \
8862    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
8863
8864#define ID3D11DeviceContext_SetPrivateData(This,guid,DataSize,pData)   \
8865    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
8866
8867#define ID3D11DeviceContext_SetPrivateDataInterface(This,guid,pData)   \
8868    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
8869
8870
8871#define ID3D11DeviceContext_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
8872    ( (This)->lpVtbl -> VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
8873
8874#define ID3D11DeviceContext_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
8875    ( (This)->lpVtbl -> PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
8876
8877#define ID3D11DeviceContext_PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances)   \
8878    ( (This)->lpVtbl -> PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) )
8879
8880#define ID3D11DeviceContext_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
8881    ( (This)->lpVtbl -> PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
8882
8883#define ID3D11DeviceContext_VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances)   \
8884    ( (This)->lpVtbl -> VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) )
8885
8886#define ID3D11DeviceContext_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)   \
8887    ( (This)->lpVtbl -> DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) )
8888
8889#define ID3D11DeviceContext_Draw(This,VertexCount,StartVertexLocation)   \
8890    ( (This)->lpVtbl -> Draw(This,VertexCount,StartVertexLocation) )
8891
8892#define ID3D11DeviceContext_Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource)   \
8893    ( (This)->lpVtbl -> Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) )
8894
8895#define ID3D11DeviceContext_Unmap(This,pResource,Subresource)   \
8896    ( (This)->lpVtbl -> Unmap(This,pResource,Subresource) )
8897
8898#define ID3D11DeviceContext_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
8899    ( (This)->lpVtbl -> PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
8900
8901#define ID3D11DeviceContext_IASetInputLayout(This,pInputLayout)   \
8902    ( (This)->lpVtbl -> IASetInputLayout(This,pInputLayout) )
8903
8904#define ID3D11DeviceContext_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)   \
8905    ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) )
8906
8907#define ID3D11DeviceContext_IASetIndexBuffer(This,pIndexBuffer,Format,Offset)   \
8908    ( (This)->lpVtbl -> IASetIndexBuffer(This,pIndexBuffer,Format,Offset) )
8909
8910#define ID3D11DeviceContext_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)   \
8911    ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
8912
8913#define ID3D11DeviceContext_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)   \
8914    ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
8915
8916#define ID3D11DeviceContext_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
8917    ( (This)->lpVtbl -> GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
8918
8919#define ID3D11DeviceContext_GSSetShader(This,pShader,ppClassInstances,NumClassInstances)   \
8920    ( (This)->lpVtbl -> GSSetShader(This,pShader,ppClassInstances,NumClassInstances) )
8921
8922#define ID3D11DeviceContext_IASetPrimitiveTopology(This,Topology)   \
8923    ( (This)->lpVtbl -> IASetPrimitiveTopology(This,Topology) )
8924
8925#define ID3D11DeviceContext_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
8926    ( (This)->lpVtbl -> VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
8927
8928#define ID3D11DeviceContext_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
8929    ( (This)->lpVtbl -> VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
8930
8931#define ID3D11DeviceContext_Begin(This,pAsync)   \
8932    ( (This)->lpVtbl -> Begin(This,pAsync) )
8933
8934#define ID3D11DeviceContext_End(This,pAsync)   \
8935    ( (This)->lpVtbl -> End(This,pAsync) )
8936
8937#define ID3D11DeviceContext_GetData(This,pAsync,pData,DataSize,GetDataFlags)   \
8938    ( (This)->lpVtbl -> GetData(This,pAsync,pData,DataSize,GetDataFlags) )
8939
8940#define ID3D11DeviceContext_SetPredication(This,pPredicate,PredicateValue)   \
8941    ( (This)->lpVtbl -> SetPredication(This,pPredicate,PredicateValue) )
8942
8943#define ID3D11DeviceContext_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
8944    ( (This)->lpVtbl -> GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
8945
8946#define ID3D11DeviceContext_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
8947    ( (This)->lpVtbl -> GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
8948
8949#define ID3D11DeviceContext_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)   \
8950    ( (This)->lpVtbl -> OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) )
8951
8952#define ID3D11DeviceContext_OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)   \
8953    ( (This)->lpVtbl -> OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) )
8954
8955#define ID3D11DeviceContext_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)   \
8956    ( (This)->lpVtbl -> OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) )
8957
8958#define ID3D11DeviceContext_OMSetDepthStencilState(This,pDepthStencilState,StencilRef)   \
8959    ( (This)->lpVtbl -> OMSetDepthStencilState(This,pDepthStencilState,StencilRef) )
8960
8961#define ID3D11DeviceContext_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)   \
8962    ( (This)->lpVtbl -> SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) )
8963
8964#define ID3D11DeviceContext_DrawAuto(This)   \
8965    ( (This)->lpVtbl -> DrawAuto(This) )
8966
8967#define ID3D11DeviceContext_DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)   \
8968    ( (This)->lpVtbl -> DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) )
8969
8970#define ID3D11DeviceContext_DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)   \
8971    ( (This)->lpVtbl -> DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) )
8972
8973#define ID3D11DeviceContext_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ)   \
8974    ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
8975
8976#define ID3D11DeviceContext_DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)   \
8977    ( (This)->lpVtbl -> DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) )
8978
8979#define ID3D11DeviceContext_RSSetState(This,pRasterizerState)   \
8980    ( (This)->lpVtbl -> RSSetState(This,pRasterizerState) )
8981
8982#define ID3D11DeviceContext_RSSetViewports(This,NumViewports,pViewports)   \
8983    ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
8984
8985#define ID3D11DeviceContext_RSSetScissorRects(This,NumRects,pRects)   \
8986    ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
8987
8988#define ID3D11DeviceContext_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)   \
8989    ( (This)->lpVtbl -> CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) )
8990
8991#define ID3D11DeviceContext_CopyResource(This,pDstResource,pSrcResource)   \
8992    ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
8993
8994#define ID3D11DeviceContext_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)   \
8995    ( (This)->lpVtbl -> UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
8996
8997#define ID3D11DeviceContext_CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView)   \
8998    ( (This)->lpVtbl -> CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) )
8999
9000#define ID3D11DeviceContext_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)   \
9001    ( (This)->lpVtbl -> ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) )
9002
9003#define ID3D11DeviceContext_ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values)   \
9004    ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) )
9005
9006#define ID3D11DeviceContext_ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values)   \
9007    ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) )
9008
9009#define ID3D11DeviceContext_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)   \
9010    ( (This)->lpVtbl -> ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) )
9011
9012#define ID3D11DeviceContext_GenerateMips(This,pShaderResourceView)   \
9013    ( (This)->lpVtbl -> GenerateMips(This,pShaderResourceView) )
9014
9015#define ID3D11DeviceContext_SetResourceMinLOD(This,pResource,MinLOD)   \
9016    ( (This)->lpVtbl -> SetResourceMinLOD(This,pResource,MinLOD) )
9017
9018#define ID3D11DeviceContext_GetResourceMinLOD(This,pResource)   \
9019    ( (This)->lpVtbl -> GetResourceMinLOD(This,pResource) )
9020
9021#define ID3D11DeviceContext_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)   \
9022    ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
9023
9024#define ID3D11DeviceContext_ExecuteCommandList(This,pCommandList,RestoreContextState)   \
9025    ( (This)->lpVtbl -> ExecuteCommandList(This,pCommandList,RestoreContextState) )
9026
9027#define ID3D11DeviceContext_HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9028    ( (This)->lpVtbl -> HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9029
9030#define ID3D11DeviceContext_HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances)   \
9031    ( (This)->lpVtbl -> HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) )
9032
9033#define ID3D11DeviceContext_HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9034    ( (This)->lpVtbl -> HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9035
9036#define ID3D11DeviceContext_HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9037    ( (This)->lpVtbl -> HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9038
9039#define ID3D11DeviceContext_DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9040    ( (This)->lpVtbl -> DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9041
9042#define ID3D11DeviceContext_DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances)   \
9043    ( (This)->lpVtbl -> DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) )
9044
9045#define ID3D11DeviceContext_DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9046    ( (This)->lpVtbl -> DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9047
9048#define ID3D11DeviceContext_DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9049    ( (This)->lpVtbl -> DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9050
9051#define ID3D11DeviceContext_CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9052    ( (This)->lpVtbl -> CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9053
9054#define ID3D11DeviceContext_CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)   \
9055    ( (This)->lpVtbl -> CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) )
9056
9057#define ID3D11DeviceContext_CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances)   \
9058    ( (This)->lpVtbl -> CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) )
9059
9060#define ID3D11DeviceContext_CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9061    ( (This)->lpVtbl -> CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9062
9063#define ID3D11DeviceContext_CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9064    ( (This)->lpVtbl -> CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9065
9066#define ID3D11DeviceContext_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9067    ( (This)->lpVtbl -> VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9068
9069#define ID3D11DeviceContext_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9070    ( (This)->lpVtbl -> PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9071
9072#define ID3D11DeviceContext_PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances)   \
9073    ( (This)->lpVtbl -> PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) )
9074
9075#define ID3D11DeviceContext_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9076    ( (This)->lpVtbl -> PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9077
9078#define ID3D11DeviceContext_VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances)   \
9079    ( (This)->lpVtbl -> VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) )
9080
9081#define ID3D11DeviceContext_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9082    ( (This)->lpVtbl -> PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9083
9084#define ID3D11DeviceContext_IAGetInputLayout(This,ppInputLayout)   \
9085    ( (This)->lpVtbl -> IAGetInputLayout(This,ppInputLayout) )
9086
9087#define ID3D11DeviceContext_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)   \
9088    ( (This)->lpVtbl -> IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) )
9089
9090#define ID3D11DeviceContext_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)   \
9091    ( (This)->lpVtbl -> IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) )
9092
9093#define ID3D11DeviceContext_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9094    ( (This)->lpVtbl -> GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9095
9096#define ID3D11DeviceContext_GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances)   \
9097    ( (This)->lpVtbl -> GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) )
9098
9099#define ID3D11DeviceContext_IAGetPrimitiveTopology(This,pTopology)   \
9100    ( (This)->lpVtbl -> IAGetPrimitiveTopology(This,pTopology) )
9101
9102#define ID3D11DeviceContext_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9103    ( (This)->lpVtbl -> VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9104
9105#define ID3D11DeviceContext_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9106    ( (This)->lpVtbl -> VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9107
9108#define ID3D11DeviceContext_GetPredication(This,ppPredicate,pPredicateValue)   \
9109    ( (This)->lpVtbl -> GetPredication(This,ppPredicate,pPredicateValue) )
9110
9111#define ID3D11DeviceContext_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9112    ( (This)->lpVtbl -> GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9113
9114#define ID3D11DeviceContext_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9115    ( (This)->lpVtbl -> GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9116
9117#define ID3D11DeviceContext_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)   \
9118    ( (This)->lpVtbl -> OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) )
9119
9120#define ID3D11DeviceContext_OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews)   \
9121    ( (This)->lpVtbl -> OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) )
9122
9123#define ID3D11DeviceContext_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)   \
9124    ( (This)->lpVtbl -> OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) )
9125
9126#define ID3D11DeviceContext_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)   \
9127    ( (This)->lpVtbl -> OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) )
9128
9129#define ID3D11DeviceContext_SOGetTargets(This,NumBuffers,ppSOTargets)   \
9130    ( (This)->lpVtbl -> SOGetTargets(This,NumBuffers,ppSOTargets) )
9131
9132#define ID3D11DeviceContext_RSGetState(This,ppRasterizerState)   \
9133    ( (This)->lpVtbl -> RSGetState(This,ppRasterizerState) )
9134
9135#define ID3D11DeviceContext_RSGetViewports(This,pNumViewports,pViewports)   \
9136    ( (This)->lpVtbl -> RSGetViewports(This,pNumViewports,pViewports) )
9137
9138#define ID3D11DeviceContext_RSGetScissorRects(This,pNumRects,pRects)   \
9139    ( (This)->lpVtbl -> RSGetScissorRects(This,pNumRects,pRects) )
9140
9141#define ID3D11DeviceContext_HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9142    ( (This)->lpVtbl -> HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9143
9144#define ID3D11DeviceContext_HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances)   \
9145    ( (This)->lpVtbl -> HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) )
9146
9147#define ID3D11DeviceContext_HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9148    ( (This)->lpVtbl -> HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9149
9150#define ID3D11DeviceContext_HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9151    ( (This)->lpVtbl -> HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9152
9153#define ID3D11DeviceContext_DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9154    ( (This)->lpVtbl -> DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9155
9156#define ID3D11DeviceContext_DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances)   \
9157    ( (This)->lpVtbl -> DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) )
9158
9159#define ID3D11DeviceContext_DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9160    ( (This)->lpVtbl -> DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9161
9162#define ID3D11DeviceContext_DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9163    ( (This)->lpVtbl -> DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9164
9165#define ID3D11DeviceContext_CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9166    ( (This)->lpVtbl -> CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9167
9168#define ID3D11DeviceContext_CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews)   \
9169    ( (This)->lpVtbl -> CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) )
9170
9171#define ID3D11DeviceContext_CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances)   \
9172    ( (This)->lpVtbl -> CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) )
9173
9174#define ID3D11DeviceContext_CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9175    ( (This)->lpVtbl -> CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9176
9177#define ID3D11DeviceContext_CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9178    ( (This)->lpVtbl -> CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9179
9180#define ID3D11DeviceContext_ClearState(This)   \
9181    ( (This)->lpVtbl -> ClearState(This) )
9182
9183#define ID3D11DeviceContext_Flush(This)   \
9184    ( (This)->lpVtbl -> Flush(This) )
9185
9186#define ID3D11DeviceContext_GetType(This)   \
9187    ( (This)->lpVtbl -> GetType(This) )
9188
9189#define ID3D11DeviceContext_GetContextFlags(This)   \
9190    ( (This)->lpVtbl -> GetContextFlags(This) )
9191
9192#define ID3D11DeviceContext_FinishCommandList(This,RestoreDeferredContextState,ppCommandList)   \
9193    ( (This)->lpVtbl -> FinishCommandList(This,RestoreDeferredContextState,ppCommandList) )
9194
9195#endif /* COBJMACROS */
9196
9197
9198#endif    /* C style interface */
9199
9200
9201
9202
9203#endif    /* __ID3D11DeviceContext_INTERFACE_DEFINED__ */
9204
9205
9206#ifndef __ID3D11Device_INTERFACE_DEFINED__
9207#define __ID3D11Device_INTERFACE_DEFINED__
9208
9209/* interface ID3D11Device */
9210/* [unique][local][object][uuid] */
9211
9212
9213EXTERN_C const IID IID_ID3D11Device;
9214
9215#if defined(__cplusplus) && !defined(CINTERFACE)
9216   
9217    MIDL_INTERFACE("db6f6ddb-ac77-4e88-8253-819df9bbf140")
9218    ID3D11Device : public IUnknown
9219    {
9220    public:
9221        virtual HRESULT STDMETHODCALLTYPE CreateBuffer(
9222            /* [annotation] */
9223            __in  const D3D11_BUFFER_DESC *pDesc,
9224            /* [annotation] */
9225            __in_opt  const D3D11_SUBRESOURCE_DATA *pInitialData,
9226            /* [annotation] */
9227            __out_opt  ID3D11Buffer **ppBuffer) = 0;
9228       
9229        virtual HRESULT STDMETHODCALLTYPE CreateTexture1D(
9230            /* [annotation] */
9231            __in  const D3D11_TEXTURE1D_DESC *pDesc,
9232            /* [annotation] */
9233            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D11_SUBRESOURCE_DATA *pInitialData,
9234            /* [annotation] */
9235            __out_opt  ID3D11Texture1D **ppTexture1D) = 0;
9236       
9237        virtual HRESULT STDMETHODCALLTYPE CreateTexture2D(
9238            /* [annotation] */
9239            __in  const D3D11_TEXTURE2D_DESC *pDesc,
9240            /* [annotation] */
9241            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D11_SUBRESOURCE_DATA *pInitialData,
9242            /* [annotation] */
9243            __out_opt  ID3D11Texture2D **ppTexture2D) = 0;
9244       
9245        virtual HRESULT STDMETHODCALLTYPE CreateTexture3D(
9246            /* [annotation] */
9247            __in  const D3D11_TEXTURE3D_DESC *pDesc,
9248            /* [annotation] */
9249            __in_xcount_opt(pDesc->MipLevels)  const D3D11_SUBRESOURCE_DATA *pInitialData,
9250            /* [annotation] */
9251            __out_opt  ID3D11Texture3D **ppTexture3D) = 0;
9252       
9253        virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView(
9254            /* [annotation] */
9255            __in  ID3D11Resource *pResource,
9256            /* [annotation] */
9257            __in_opt  const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
9258            /* [annotation] */
9259            __out_opt  ID3D11ShaderResourceView **ppSRView) = 0;
9260       
9261        virtual HRESULT STDMETHODCALLTYPE CreateUnorderedAccessView(
9262            /* [annotation] */
9263            __in  ID3D11Resource *pResource,
9264            /* [annotation] */
9265            __in_opt  const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
9266            /* [annotation] */
9267            __out_opt  ID3D11UnorderedAccessView **ppUAView) = 0;
9268       
9269        virtual HRESULT STDMETHODCALLTYPE CreateRenderTargetView(
9270            /* [annotation] */
9271            __in  ID3D11Resource *pResource,
9272            /* [annotation] */
9273            __in_opt  const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
9274            /* [annotation] */
9275            __out_opt  ID3D11RenderTargetView **ppRTView) = 0;
9276       
9277        virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilView(
9278            /* [annotation] */
9279            __in  ID3D11Resource *pResource,
9280            /* [annotation] */
9281            __in_opt  const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
9282            /* [annotation] */
9283            __out_opt  ID3D11DepthStencilView **ppDepthStencilView) = 0;
9284       
9285        virtual HRESULT STDMETHODCALLTYPE CreateInputLayout(
9286            /* [annotation] */
9287            __in_ecount(NumElements)  const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
9288            /* [annotation] */
9289            __in_range( 0, D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT )  UINT NumElements,
9290            /* [annotation] */
9291            __in  const void *pShaderBytecodeWithInputSignature,
9292            /* [annotation] */
9293            __in  SIZE_T BytecodeLength,
9294            /* [annotation] */
9295            __out_opt  ID3D11InputLayout **ppInputLayout) = 0;
9296       
9297        virtual HRESULT STDMETHODCALLTYPE CreateVertexShader(
9298            /* [annotation] */
9299            __in  const void *pShaderBytecode,
9300            /* [annotation] */
9301            __in  SIZE_T BytecodeLength,
9302            /* [annotation] */
9303            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9304            /* [annotation] */
9305            __out_opt  ID3D11VertexShader **ppVertexShader) = 0;
9306       
9307        virtual HRESULT STDMETHODCALLTYPE CreateGeometryShader(
9308            /* [annotation] */
9309            __in  const void *pShaderBytecode,
9310            /* [annotation] */
9311            __in  SIZE_T BytecodeLength,
9312            /* [annotation] */
9313            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9314            /* [annotation] */
9315            __out_opt  ID3D11GeometryShader **ppGeometryShader) = 0;
9316       
9317        virtual HRESULT STDMETHODCALLTYPE CreateGeometryShaderWithStreamOutput(
9318            /* [annotation] */
9319            __in  const void *pShaderBytecode,
9320            /* [annotation] */
9321            __in  SIZE_T BytecodeLength,
9322            /* [annotation] */
9323            __in_ecount_opt(NumEntries)  const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
9324            /* [annotation] */
9325            __in_range( 0, D3D11_SO_STREAM_COUNT * D3D11_SO_OUTPUT_COMPONENT_COUNT )  UINT NumEntries,
9326            /* [annotation] */
9327            __in_ecount_opt(NumStrides)  const UINT *pBufferStrides,
9328            /* [annotation] */
9329            __in_range( 0, D3D11_SO_BUFFER_SLOT_COUNT )  UINT NumStrides,
9330            /* [annotation] */
9331            __in  UINT RasterizedStream,
9332            /* [annotation] */
9333            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9334            /* [annotation] */
9335            __out_opt  ID3D11GeometryShader **ppGeometryShader) = 0;
9336       
9337        virtual HRESULT STDMETHODCALLTYPE CreatePixelShader(
9338            /* [annotation] */
9339            __in  const void *pShaderBytecode,
9340            /* [annotation] */
9341            __in  SIZE_T BytecodeLength,
9342            /* [annotation] */
9343            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9344            /* [annotation] */
9345            __out_opt  ID3D11PixelShader **ppPixelShader) = 0;
9346       
9347        virtual HRESULT STDMETHODCALLTYPE CreateHullShader(
9348            /* [annotation] */
9349            __in  const void *pShaderBytecode,
9350            /* [annotation] */
9351            __in  SIZE_T BytecodeLength,
9352            /* [annotation] */
9353            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9354            /* [annotation] */
9355            __out_opt  ID3D11HullShader **ppHullShader) = 0;
9356       
9357        virtual HRESULT STDMETHODCALLTYPE CreateDomainShader(
9358            /* [annotation] */
9359            __in  const void *pShaderBytecode,
9360            /* [annotation] */
9361            __in  SIZE_T BytecodeLength,
9362            /* [annotation] */
9363            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9364            /* [annotation] */
9365            __out_opt  ID3D11DomainShader **ppDomainShader) = 0;
9366       
9367        virtual HRESULT STDMETHODCALLTYPE CreateComputeShader(
9368            /* [annotation] */
9369            __in  const void *pShaderBytecode,
9370            /* [annotation] */
9371            __in  SIZE_T BytecodeLength,
9372            /* [annotation] */
9373            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9374            /* [annotation] */
9375            __out_opt  ID3D11ComputeShader **ppComputeShader) = 0;
9376       
9377        virtual HRESULT STDMETHODCALLTYPE CreateClassLinkage(
9378            /* [annotation] */
9379            __out  ID3D11ClassLinkage **ppLinkage) = 0;
9380       
9381        virtual HRESULT STDMETHODCALLTYPE CreateBlendState(
9382            /* [annotation] */
9383            __in  const D3D11_BLEND_DESC *pBlendStateDesc,
9384            /* [annotation] */
9385            __out_opt  ID3D11BlendState **ppBlendState) = 0;
9386       
9387        virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilState(
9388            /* [annotation] */
9389            __in  const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
9390            /* [annotation] */
9391            __out_opt  ID3D11DepthStencilState **ppDepthStencilState) = 0;
9392       
9393        virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState(
9394            /* [annotation] */
9395            __in  const D3D11_RASTERIZER_DESC *pRasterizerDesc,
9396            /* [annotation] */
9397            __out_opt  ID3D11RasterizerState **ppRasterizerState) = 0;
9398       
9399        virtual HRESULT STDMETHODCALLTYPE CreateSamplerState(
9400            /* [annotation] */
9401            __in  const D3D11_SAMPLER_DESC *pSamplerDesc,
9402            /* [annotation] */
9403            __out_opt  ID3D11SamplerState **ppSamplerState) = 0;
9404       
9405        virtual HRESULT STDMETHODCALLTYPE CreateQuery(
9406            /* [annotation] */
9407            __in  const D3D11_QUERY_DESC *pQueryDesc,
9408            /* [annotation] */
9409            __out_opt  ID3D11Query **ppQuery) = 0;
9410       
9411        virtual HRESULT STDMETHODCALLTYPE CreatePredicate(
9412            /* [annotation] */
9413            __in  const D3D11_QUERY_DESC *pPredicateDesc,
9414            /* [annotation] */
9415            __out_opt  ID3D11Predicate **ppPredicate) = 0;
9416       
9417        virtual HRESULT STDMETHODCALLTYPE CreateCounter(
9418            /* [annotation] */
9419            __in  const D3D11_COUNTER_DESC *pCounterDesc,
9420            /* [annotation] */
9421            __out_opt  ID3D11Counter **ppCounter) = 0;
9422       
9423        virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext(
9424            UINT ContextFlags,
9425            /* [annotation] */
9426            __out_opt  ID3D11DeviceContext **ppDeferredContext) = 0;
9427       
9428        virtual HRESULT STDMETHODCALLTYPE OpenSharedResource(
9429            /* [annotation] */
9430            __in  HANDLE hResource,
9431            /* [annotation] */
9432            __in  REFIID ReturnedInterface,
9433            /* [annotation] */
9434            __out_opt  void **ppResource) = 0;
9435       
9436        virtual HRESULT STDMETHODCALLTYPE CheckFormatSupport(
9437            /* [annotation] */
9438            __in  DXGI_FORMAT Format,
9439            /* [annotation] */
9440            __out  UINT *pFormatSupport) = 0;
9441       
9442        virtual HRESULT STDMETHODCALLTYPE CheckMultisampleQualityLevels(
9443            /* [annotation] */
9444            __in  DXGI_FORMAT Format,
9445            /* [annotation] */
9446            __in  UINT SampleCount,
9447            /* [annotation] */
9448            __out  UINT *pNumQualityLevels) = 0;
9449       
9450        virtual void STDMETHODCALLTYPE CheckCounterInfo(
9451            /* [annotation] */
9452            __out  D3D11_COUNTER_INFO *pCounterInfo) = 0;
9453       
9454        virtual HRESULT STDMETHODCALLTYPE CheckCounter(
9455            /* [annotation] */
9456            __in  const D3D11_COUNTER_DESC *pDesc,
9457            /* [annotation] */
9458            __out  D3D11_COUNTER_TYPE *pType,
9459            /* [annotation] */
9460            __out  UINT *pActiveCounters,
9461            /* [annotation] */
9462            __out_ecount_opt(*pNameLength)  LPSTR szName,
9463            /* [annotation] */
9464            __inout_opt  UINT *pNameLength,
9465            /* [annotation] */
9466            __out_ecount_opt(*pUnitsLength)  LPSTR szUnits,
9467            /* [annotation] */
9468            __inout_opt  UINT *pUnitsLength,
9469            /* [annotation] */
9470            __out_ecount_opt(*pDescriptionLength)  LPSTR szDescription,
9471            /* [annotation] */
9472            __inout_opt  UINT *pDescriptionLength) = 0;
9473       
9474        virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
9475            D3D11_FEATURE Feature,
9476            /* [annotation] */
9477            __out_bcount(FeatureSupportDataSize)  void *pFeatureSupportData,
9478            UINT FeatureSupportDataSize) = 0;
9479       
9480        virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
9481            /* [annotation] */
9482            __in  REFGUID guid,
9483            /* [annotation] */
9484            __inout  UINT *pDataSize,
9485            /* [annotation] */
9486            __out_bcount_opt(*pDataSize)  void *pData) = 0;
9487       
9488        virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
9489            /* [annotation] */
9490            __in  REFGUID guid,
9491            /* [annotation] */
9492            __in  UINT DataSize,
9493            /* [annotation] */
9494            __in_bcount_opt(DataSize)  const void *pData) = 0;
9495       
9496        virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
9497            /* [annotation] */
9498            __in  REFGUID guid,
9499            /* [annotation] */
9500            __in_opt  const IUnknown *pData) = 0;
9501       
9502        virtual D3D_FEATURE_LEVEL STDMETHODCALLTYPE GetFeatureLevel( void) = 0;
9503       
9504        virtual UINT STDMETHODCALLTYPE GetCreationFlags( void) = 0;
9505       
9506        virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0;
9507       
9508        virtual void STDMETHODCALLTYPE GetImmediateContext(
9509            /* [annotation] */
9510            __out  ID3D11DeviceContext **ppImmediateContext) = 0;
9511       
9512        virtual HRESULT STDMETHODCALLTYPE SetExceptionMode(
9513            UINT RaiseFlags) = 0;
9514       
9515        virtual UINT STDMETHODCALLTYPE GetExceptionMode( void) = 0;
9516       
9517    };
9518   
9519#else    /* C style interface */
9520
9521    typedef struct ID3D11DeviceVtbl
9522    {
9523        BEGIN_INTERFACE
9524       
9525        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9526            ID3D11Device * This,
9527            /* [in] */ REFIID riid,
9528            /* [annotation][iid_is][out] */
9529            __RPC__deref_out  void **ppvObject);
9530       
9531        ULONG ( STDMETHODCALLTYPE *AddRef )(
9532            ID3D11Device * This);
9533       
9534        ULONG ( STDMETHODCALLTYPE *Release )(
9535            ID3D11Device * This);
9536       
9537        HRESULT ( STDMETHODCALLTYPE *CreateBuffer )(
9538            ID3D11Device * This,
9539            /* [annotation] */
9540            __in  const D3D11_BUFFER_DESC *pDesc,
9541            /* [annotation] */
9542            __in_opt  const D3D11_SUBRESOURCE_DATA *pInitialData,
9543            /* [annotation] */
9544            __out_opt  ID3D11Buffer **ppBuffer);
9545       
9546        HRESULT ( STDMETHODCALLTYPE *CreateTexture1D )(
9547            ID3D11Device * This,
9548            /* [annotation] */
9549            __in  const D3D11_TEXTURE1D_DESC *pDesc,
9550            /* [annotation] */
9551            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D11_SUBRESOURCE_DATA *pInitialData,
9552            /* [annotation] */
9553            __out_opt  ID3D11Texture1D **ppTexture1D);
9554       
9555        HRESULT ( STDMETHODCALLTYPE *CreateTexture2D )(
9556            ID3D11Device * This,
9557            /* [annotation] */
9558            __in  const D3D11_TEXTURE2D_DESC *pDesc,
9559            /* [annotation] */
9560            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D11_SUBRESOURCE_DATA *pInitialData,
9561            /* [annotation] */
9562            __out_opt  ID3D11Texture2D **ppTexture2D);
9563       
9564        HRESULT ( STDMETHODCALLTYPE *CreateTexture3D )(
9565            ID3D11Device * This,
9566            /* [annotation] */
9567            __in  const D3D11_TEXTURE3D_DESC *pDesc,
9568            /* [annotation] */
9569            __in_xcount_opt(pDesc->MipLevels)  const D3D11_SUBRESOURCE_DATA *pInitialData,
9570            /* [annotation] */
9571            __out_opt  ID3D11Texture3D **ppTexture3D);
9572       
9573        HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView )(
9574            ID3D11Device * This,
9575            /* [annotation] */
9576            __in  ID3D11Resource *pResource,
9577            /* [annotation] */
9578            __in_opt  const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
9579            /* [annotation] */
9580            __out_opt  ID3D11ShaderResourceView **ppSRView);
9581       
9582        HRESULT ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
9583            ID3D11Device * This,
9584            /* [annotation] */
9585            __in  ID3D11Resource *pResource,
9586            /* [annotation] */
9587            __in_opt  const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
9588            /* [annotation] */
9589            __out_opt  ID3D11UnorderedAccessView **ppUAView);
9590       
9591        HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView )(
9592            ID3D11Device * This,
9593            /* [annotation] */
9594            __in  ID3D11Resource *pResource,
9595            /* [annotation] */
9596            __in_opt  const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
9597            /* [annotation] */
9598            __out_opt  ID3D11RenderTargetView **ppRTView);
9599       
9600        HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilView )(
9601            ID3D11Device * This,
9602            /* [annotation] */
9603            __in  ID3D11Resource *pResource,
9604            /* [annotation] */
9605            __in_opt  const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
9606            /* [annotation] */
9607            __out_opt  ID3D11DepthStencilView **ppDepthStencilView);
9608       
9609        HRESULT ( STDMETHODCALLTYPE *CreateInputLayout )(
9610            ID3D11Device * This,
9611            /* [annotation] */
9612            __in_ecount(NumElements)  const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
9613            /* [annotation] */
9614            __in_range( 0, D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT )  UINT NumElements,
9615            /* [annotation] */
9616            __in  const void *pShaderBytecodeWithInputSignature,
9617            /* [annotation] */
9618            __in  SIZE_T BytecodeLength,
9619            /* [annotation] */
9620            __out_opt  ID3D11InputLayout **ppInputLayout);
9621       
9622        HRESULT ( STDMETHODCALLTYPE *CreateVertexShader )(
9623            ID3D11Device * This,
9624            /* [annotation] */
9625            __in  const void *pShaderBytecode,
9626            /* [annotation] */
9627            __in  SIZE_T BytecodeLength,
9628            /* [annotation] */
9629            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9630            /* [annotation] */
9631            __out_opt  ID3D11VertexShader **ppVertexShader);
9632       
9633        HRESULT ( STDMETHODCALLTYPE *CreateGeometryShader )(
9634            ID3D11Device * This,
9635            /* [annotation] */
9636            __in  const void *pShaderBytecode,
9637            /* [annotation] */
9638            __in  SIZE_T BytecodeLength,
9639            /* [annotation] */
9640            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9641            /* [annotation] */
9642            __out_opt  ID3D11GeometryShader **ppGeometryShader);
9643       
9644        HRESULT ( STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput )(
9645            ID3D11Device * This,
9646            /* [annotation] */
9647            __in  const void *pShaderBytecode,
9648            /* [annotation] */
9649            __in  SIZE_T BytecodeLength,
9650            /* [annotation] */
9651            __in_ecount_opt(NumEntries)  const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
9652            /* [annotation] */
9653            __in_range( 0, D3D11_SO_STREAM_COUNT * D3D11_SO_OUTPUT_COMPONENT_COUNT )  UINT NumEntries,
9654            /* [annotation] */
9655            __in_ecount_opt(NumStrides)  const UINT *pBufferStrides,
9656            /* [annotation] */
9657            __in_range( 0, D3D11_SO_BUFFER_SLOT_COUNT )  UINT NumStrides,
9658            /* [annotation] */
9659            __in  UINT RasterizedStream,
9660            /* [annotation] */
9661            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9662            /* [annotation] */
9663            __out_opt  ID3D11GeometryShader **ppGeometryShader);
9664       
9665        HRESULT ( STDMETHODCALLTYPE *CreatePixelShader )(
9666            ID3D11Device * This,
9667            /* [annotation] */
9668            __in  const void *pShaderBytecode,
9669            /* [annotation] */
9670            __in  SIZE_T BytecodeLength,
9671            /* [annotation] */
9672            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9673            /* [annotation] */
9674            __out_opt  ID3D11PixelShader **ppPixelShader);
9675       
9676        HRESULT ( STDMETHODCALLTYPE *CreateHullShader )(
9677            ID3D11Device * This,
9678            /* [annotation] */
9679            __in  const void *pShaderBytecode,
9680            /* [annotation] */
9681            __in  SIZE_T BytecodeLength,
9682            /* [annotation] */
9683            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9684            /* [annotation] */
9685            __out_opt  ID3D11HullShader **ppHullShader);
9686       
9687        HRESULT ( STDMETHODCALLTYPE *CreateDomainShader )(
9688            ID3D11Device * This,
9689            /* [annotation] */
9690            __in  const void *pShaderBytecode,
9691            /* [annotation] */
9692            __in  SIZE_T BytecodeLength,
9693            /* [annotation] */
9694            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9695            /* [annotation] */
9696            __out_opt  ID3D11DomainShader **ppDomainShader);
9697       
9698        HRESULT ( STDMETHODCALLTYPE *CreateComputeShader )(
9699            ID3D11Device * This,
9700            /* [annotation] */
9701            __in  const void *pShaderBytecode,
9702            /* [annotation] */
9703            __in  SIZE_T BytecodeLength,
9704            /* [annotation] */
9705            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9706            /* [annotation] */
9707            __out_opt  ID3D11ComputeShader **ppComputeShader);
9708       
9709        HRESULT ( STDMETHODCALLTYPE *CreateClassLinkage )(
9710            ID3D11Device * This,
9711            /* [annotation] */
9712            __out  ID3D11ClassLinkage **ppLinkage);
9713       
9714        HRESULT ( STDMETHODCALLTYPE *CreateBlendState )(
9715            ID3D11Device * This,
9716            /* [annotation] */
9717            __in  const D3D11_BLEND_DESC *pBlendStateDesc,
9718            /* [annotation] */
9719            __out_opt  ID3D11BlendState **ppBlendState);
9720       
9721        HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilState )(
9722            ID3D11Device * This,
9723            /* [annotation] */
9724            __in  const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
9725            /* [annotation] */
9726            __out_opt  ID3D11DepthStencilState **ppDepthStencilState);
9727       
9728        HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState )(
9729            ID3D11Device * This,
9730            /* [annotation] */
9731            __in  const D3D11_RASTERIZER_DESC *pRasterizerDesc,
9732            /* [annotation] */
9733            __out_opt  ID3D11RasterizerState **ppRasterizerState);
9734       
9735        HRESULT ( STDMETHODCALLTYPE *CreateSamplerState )(
9736            ID3D11Device * This,
9737            /* [annotation] */
9738            __in  const D3D11_SAMPLER_DESC *pSamplerDesc,
9739            /* [annotation] */
9740            __out_opt  ID3D11SamplerState **ppSamplerState);
9741       
9742        HRESULT ( STDMETHODCALLTYPE *CreateQuery )(
9743            ID3D11Device * This,
9744            /* [annotation] */
9745            __in  const D3D11_QUERY_DESC *pQueryDesc,
9746            /* [annotation] */
9747            __out_opt  ID3D11Query **ppQuery);
9748       
9749        HRESULT ( STDMETHODCALLTYPE *CreatePredicate )(
9750            ID3D11Device * This,
9751            /* [annotation] */
9752            __in  const D3D11_QUERY_DESC *pPredicateDesc,
9753            /* [annotation] */
9754            __out_opt  ID3D11Predicate **ppPredicate);
9755       
9756        HRESULT ( STDMETHODCALLTYPE *CreateCounter )(
9757            ID3D11Device * This,
9758            /* [annotation] */
9759            __in  const D3D11_COUNTER_DESC *pCounterDesc,
9760            /* [annotation] */
9761            __out_opt  ID3D11Counter **ppCounter);
9762       
9763        HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext )(
9764            ID3D11Device * This,
9765            UINT ContextFlags,
9766            /* [annotation] */
9767            __out_opt  ID3D11DeviceContext **ppDeferredContext);
9768       
9769        HRESULT ( STDMETHODCALLTYPE *OpenSharedResource )(
9770            ID3D11Device * This,
9771            /* [annotation] */
9772            __in  HANDLE hResource,
9773            /* [annotation] */
9774            __in  REFIID ReturnedInterface,
9775            /* [annotation] */
9776            __out_opt  void **ppResource);
9777       
9778        HRESULT ( STDMETHODCALLTYPE *CheckFormatSupport )(
9779            ID3D11Device * This,
9780            /* [annotation] */
9781            __in  DXGI_FORMAT Format,
9782            /* [annotation] */
9783            __out  UINT *pFormatSupport);
9784       
9785        HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels )(
9786            ID3D11Device * This,
9787            /* [annotation] */
9788            __in  DXGI_FORMAT Format,
9789            /* [annotation] */
9790            __in  UINT SampleCount,
9791            /* [annotation] */
9792            __out  UINT *pNumQualityLevels);
9793       
9794        void ( STDMETHODCALLTYPE *CheckCounterInfo )(
9795            ID3D11Device * This,
9796            /* [annotation] */
9797            __out  D3D11_COUNTER_INFO *pCounterInfo);
9798       
9799        HRESULT ( STDMETHODCALLTYPE *CheckCounter )(
9800            ID3D11Device * This,
9801            /* [annotation] */
9802            __in  const D3D11_COUNTER_DESC *pDesc,
9803            /* [annotation] */
9804            __out  D3D11_COUNTER_TYPE *pType,
9805            /* [annotation] */
9806            __out  UINT *pActiveCounters,
9807            /* [annotation] */
9808            __out_ecount_opt(*pNameLength)  LPSTR szName,
9809            /* [annotation] */
9810            __inout_opt  UINT *pNameLength,
9811            /* [annotation] */
9812            __out_ecount_opt(*pUnitsLength)  LPSTR szUnits,
9813            /* [annotation] */
9814            __inout_opt  UINT *pUnitsLength,
9815            /* [annotation] */
9816            __out_ecount_opt(*pDescriptionLength)  LPSTR szDescription,
9817            /* [annotation] */
9818            __inout_opt  UINT *pDescriptionLength);
9819       
9820        HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
9821            ID3D11Device * This,
9822            D3D11_FEATURE Feature,
9823            /* [annotation] */
9824            __out_bcount(FeatureSupportDataSize)  void *pFeatureSupportData,
9825            UINT FeatureSupportDataSize);
9826       
9827        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
9828            ID3D11Device * This,
9829            /* [annotation] */
9830            __in  REFGUID guid,
9831            /* [annotation] */
9832            __inout  UINT *pDataSize,
9833            /* [annotation] */
9834            __out_bcount_opt(*pDataSize)  void *pData);
9835       
9836        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
9837            ID3D11Device * This,
9838            /* [annotation] */
9839            __in  REFGUID guid,
9840            /* [annotation] */
9841            __in  UINT DataSize,
9842            /* [annotation] */
9843            __in_bcount_opt(DataSize)  const void *pData);
9844       
9845        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
9846            ID3D11Device * This,
9847            /* [annotation] */
9848            __in  REFGUID guid,
9849            /* [annotation] */
9850            __in_opt  const IUnknown *pData);
9851       
9852        D3D_FEATURE_LEVEL ( STDMETHODCALLTYPE *GetFeatureLevel )(
9853            ID3D11Device * This);
9854       
9855        UINT ( STDMETHODCALLTYPE *GetCreationFlags )(
9856            ID3D11Device * This);
9857       
9858        HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
9859            ID3D11Device * This);
9860       
9861        void ( STDMETHODCALLTYPE *GetImmediateContext )(
9862            ID3D11Device * This,
9863            /* [annotation] */
9864            __out  ID3D11DeviceContext **ppImmediateContext);
9865       
9866        HRESULT ( STDMETHODCALLTYPE *SetExceptionMode )(
9867            ID3D11Device * This,
9868            UINT RaiseFlags);
9869       
9870        UINT ( STDMETHODCALLTYPE *GetExceptionMode )(
9871            ID3D11Device * This);
9872       
9873        END_INTERFACE
9874    } ID3D11DeviceVtbl;
9875
9876    interface ID3D11Device
9877    {
9878        CONST_VTBL struct ID3D11DeviceVtbl *lpVtbl;
9879    };
9880
9881   
9882
9883#ifdef COBJMACROS
9884
9885
9886#define ID3D11Device_QueryInterface(This,riid,ppvObject)   \
9887    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9888
9889#define ID3D11Device_AddRef(This)   \
9890    ( (This)->lpVtbl -> AddRef(This) )
9891
9892#define ID3D11Device_Release(This)   \
9893    ( (This)->lpVtbl -> Release(This) )
9894
9895
9896#define ID3D11Device_CreateBuffer(This,pDesc,pInitialData,ppBuffer)   \
9897    ( (This)->lpVtbl -> CreateBuffer(This,pDesc,pInitialData,ppBuffer) )
9898
9899#define ID3D11Device_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)   \
9900    ( (This)->lpVtbl -> CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) )
9901
9902#define ID3D11Device_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)   \
9903    ( (This)->lpVtbl -> CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) )
9904
9905#define ID3D11Device_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)   \
9906    ( (This)->lpVtbl -> CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) )
9907
9908#define ID3D11Device_CreateShaderResourceView(This,pResource,pDesc,ppSRView)   \
9909    ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,ppSRView) )
9910
9911#define ID3D11Device_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView)   \
9912    ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) )
9913
9914#define ID3D11Device_CreateRenderTargetView(This,pResource,pDesc,ppRTView)   \
9915    ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,ppRTView) )
9916
9917#define ID3D11Device_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)   \
9918    ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) )
9919
9920#define ID3D11Device_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)   \
9921    ( (This)->lpVtbl -> CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) )
9922
9923#define ID3D11Device_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader)   \
9924    ( (This)->lpVtbl -> CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) )
9925
9926#define ID3D11Device_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader)   \
9927    ( (This)->lpVtbl -> CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) )
9928
9929#define ID3D11Device_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader)   \
9930    ( (This)->lpVtbl -> CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) )
9931
9932#define ID3D11Device_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader)   \
9933    ( (This)->lpVtbl -> CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) )
9934
9935#define ID3D11Device_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader)   \
9936    ( (This)->lpVtbl -> CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) )
9937
9938#define ID3D11Device_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader)   \
9939    ( (This)->lpVtbl -> CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) )
9940
9941#define ID3D11Device_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader)   \
9942    ( (This)->lpVtbl -> CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) )
9943
9944#define ID3D11Device_CreateClassLinkage(This,ppLinkage)   \
9945    ( (This)->lpVtbl -> CreateClassLinkage(This,ppLinkage) )
9946
9947#define ID3D11Device_CreateBlendState(This,pBlendStateDesc,ppBlendState)   \
9948    ( (This)->lpVtbl -> CreateBlendState(This,pBlendStateDesc,ppBlendState) )
9949
9950#define ID3D11Device_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)   \
9951    ( (This)->lpVtbl -> CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) )
9952
9953#define ID3D11Device_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)   \
9954    ( (This)->lpVtbl -> CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) )
9955
9956#define ID3D11Device_CreateSamplerState(This,pSamplerDesc,ppSamplerState)   \
9957    ( (This)->lpVtbl -> CreateSamplerState(This,pSamplerDesc,ppSamplerState) )
9958
9959#define ID3D11Device_CreateQuery(This,pQueryDesc,ppQuery)   \
9960    ( (This)->lpVtbl -> CreateQuery(This,pQueryDesc,ppQuery) )
9961
9962#define ID3D11Device_CreatePredicate(This,pPredicateDesc,ppPredicate)   \
9963    ( (This)->lpVtbl -> CreatePredicate(This,pPredicateDesc,ppPredicate) )
9964
9965#define ID3D11Device_CreateCounter(This,pCounterDesc,ppCounter)   \
9966    ( (This)->lpVtbl -> CreateCounter(This,pCounterDesc,ppCounter) )
9967
9968#define ID3D11Device_CreateDeferredContext(This,ContextFlags,ppDeferredContext)   \
9969    ( (This)->lpVtbl -> CreateDeferredContext(This,ContextFlags,ppDeferredContext) )
9970
9971#define ID3D11Device_OpenSharedResource(This,hResource,ReturnedInterface,ppResource)   \
9972    ( (This)->lpVtbl -> OpenSharedResource(This,hResource,ReturnedInterface,ppResource) )
9973
9974#define ID3D11Device_CheckFormatSupport(This,Format,pFormatSupport)   \
9975    ( (This)->lpVtbl -> CheckFormatSupport(This,Format,pFormatSupport) )
9976
9977#define ID3D11Device_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)   \
9978    ( (This)->lpVtbl -> CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) )
9979
9980#define ID3D11Device_CheckCounterInfo(This,pCounterInfo)   \
9981    ( (This)->lpVtbl -> CheckCounterInfo(This,pCounterInfo) )
9982
9983#define ID3D11Device_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)   \
9984    ( (This)->lpVtbl -> CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) )
9985
9986#define ID3D11Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize)   \
9987    ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
9988
9989#define ID3D11Device_GetPrivateData(This,guid,pDataSize,pData)   \
9990    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
9991
9992#define ID3D11Device_SetPrivateData(This,guid,DataSize,pData)   \
9993    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
9994
9995#define ID3D11Device_SetPrivateDataInterface(This,guid,pData)   \
9996    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
9997
9998#define ID3D11Device_GetFeatureLevel(This)   \
9999    ( (This)->lpVtbl -> GetFeatureLevel(This) )
10000
10001#define ID3D11Device_GetCreationFlags(This)   \
10002    ( (This)->lpVtbl -> GetCreationFlags(This) )
10003
10004#define ID3D11Device_GetDeviceRemovedReason(This)   \
10005    ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
10006
10007#define ID3D11Device_GetImmediateContext(This,ppImmediateContext)   \
10008    ( (This)->lpVtbl -> GetImmediateContext(This,ppImmediateContext) )
10009
10010#define ID3D11Device_SetExceptionMode(This,RaiseFlags)   \
10011    ( (This)->lpVtbl -> SetExceptionMode(This,RaiseFlags) )
10012
10013#define ID3D11Device_GetExceptionMode(This)   \
10014    ( (This)->lpVtbl -> GetExceptionMode(This) )
10015
10016#endif /* COBJMACROS */
10017
10018
10019#endif    /* C style interface */
10020
10021
10022
10023
10024#endif    /* __ID3D11Device_INTERFACE_DEFINED__ */
10025
10026
10027/* interface __MIDL_itf_d3d11_0000_0031 */
10028/* [local] */
10029
10030typedef
10031enum D3D11_CREATE_DEVICE_FLAG
10032    {   D3D11_CREATE_DEVICE_SINGLETHREADED   = 0x1,
10033   D3D11_CREATE_DEVICE_DEBUG   = 0x2,
10034   D3D11_CREATE_DEVICE_SWITCH_TO_REF   = 0x4,
10035   D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS   = 0x8,
10036   D3D11_CREATE_DEVICE_BGRA_SUPPORT   = 0x20
10037    }    D3D11_CREATE_DEVICE_FLAG;
10038
10039#define   D3D11_SDK_VERSION   ( 7 )
10040
10041#include "d3d10_1.h"
10042#if !defined( D3D11_IGNORE_SDK_LAYERS )
10043#include "d3d11sdklayers.h"
10044#endif
10045#include "d3d10misc.h"
10046#include "d3d10shader.h"
10047#include "d3d10effect.h"
10048#include "d3d10_1shader.h"
10049
10050///////////////////////////////////////////////////////////////////////////
10051// D3D11CreateDevice
10052// ------------------
10053//
10054// pAdapter
10055//      If NULL, D3D11CreateDevice will choose the primary adapter and
10056//      create a new instance from a temporarily created IDXGIFactory.
10057//      If non-NULL, D3D11CreateDevice will register the appropriate
10058//      device, if necessary (via IDXGIAdapter::RegisterDrver), before
10059//      creating the device.
10060// DriverType
10061//      Specifies the driver type to be created: hardware, reference or
10062//      null.
10063// Software
10064//      HMODULE of a DLL implementing a software rasterizer. Must be NULL for
10065//      non-Software driver types.
10066// Flags
10067//      Any of those documented for D3D11CreateDeviceAndSwapChain.
10068// pFeatureLevels
10069//      Any of those documented for D3D11CreateDeviceAndSwapChain.
10070// FeatureLevels
10071//      Size of feature levels array.
10072// SDKVersion
10073//      SDK version. Use the D3D11_SDK_VERSION macro.
10074// ppDevice
10075//      Pointer to returned interface. May be NULL.
10076// pFeatureLevel
10077//      Pointer to returned feature level. May be NULL.
10078// ppImmediateContext
10079//      Pointer to returned interface. May be NULL.
10080//
10081// Return Values
10082//  Any of those documented for
10083//          CreateDXGIFactory1
10084//          IDXGIFactory::EnumAdapters
10085//          IDXGIAdapter::RegisterDriver
10086//          D3D11CreateDevice
10087//
10088///////////////////////////////////////////////////////////////////////////
10089typedef HRESULT (WINAPI* PFN_D3D11_CREATE_DEVICE)( __in_opt IDXGIAdapter*,
10090    D3D_DRIVER_TYPE, HMODULE, UINT,
10091    __in_ecount_opt( FeatureLevels ) CONST D3D_FEATURE_LEVEL*,
10092    UINT FeatureLevels, UINT, __out_opt ID3D11Device**,
10093    __out_opt D3D_FEATURE_LEVEL*, __out_opt ID3D11DeviceContext** );
10094
10095HRESULT WINAPI D3D11CreateDevice(
10096    __in_opt IDXGIAdapter* pAdapter,
10097    D3D_DRIVER_TYPE DriverType,
10098    HMODULE Software,
10099    UINT Flags,
10100    __in_ecount_opt( FeatureLevels ) CONST D3D_FEATURE_LEVEL* pFeatureLevels,
10101    UINT FeatureLevels,
10102    UINT SDKVersion,
10103    __out_opt ID3D11Device** ppDevice,
10104    __out_opt D3D_FEATURE_LEVEL* pFeatureLevel,
10105    __out_opt ID3D11DeviceContext** ppImmediateContext );
10106
10107///////////////////////////////////////////////////////////////////////////
10108// D3D11CreateDeviceAndSwapChain
10109// ------------------------------
10110//
10111// ppAdapter
10112//      If NULL, D3D11CreateDevice will choose the primary adapter and
10113//      create a new instance from a temporarily created IDXGIFactory.
10114//      If non-NULL, D3D11CreateDevice will register the appropriate
10115//      device, if necessary (via IDXGIAdapter::RegisterDrver), before
10116//      creating the device.
10117// DriverType
10118//      Specifies the driver type to be created: hardware, reference or
10119//      null.
10120// Software
10121//      HMODULE of a DLL implementing a software rasterizer. Must be NULL for
10122//      non-Software driver types.
10123// Flags
10124//      Any of those documented for D3D11CreateDevice.
10125// pFeatureLevels
10126//      Array of any of the following:
10127//          D3D_FEATURE_LEVEL_11_0
10128//          D3D_FEATURE_LEVEL_10_1
10129//          D3D_FEATURE_LEVEL_10_0
10130//          D3D_FEATURE_LEVEL_9_3
10131//          D3D_FEATURE_LEVEL_9_2
10132//          D3D_FEATURE_LEVEL_9_1
10133//      Order indicates sequence in which instantiation will be attempted. If
10134//      NULL, then the implied order is the same as previously listed (i.e.
10135//      prefer most features available).
10136// FeatureLevels
10137//      Size of feature levels array.
10138// SDKVersion
10139//      SDK version. Use the D3D11_SDK_VERSION macro.
10140// pSwapChainDesc
10141//      Swap chain description, may be NULL.
10142// ppSwapChain
10143//      Pointer to returned interface. May be NULL.
10144// ppDevice
10145//      Pointer to returned interface. May be NULL.
10146// pFeatureLevel
10147//      Pointer to returned feature level. May be NULL.
10148// ppImmediateContext
10149//      Pointer to returned interface. May be NULL.
10150//
10151// Return Values
10152//  Any of those documented for
10153//          CreateDXGIFactory1
10154//          IDXGIFactory::EnumAdapters
10155//          IDXGIAdapter::RegisterDriver
10156//          D3D11CreateDevice
10157//          IDXGIFactory::CreateSwapChain
10158//
10159///////////////////////////////////////////////////////////////////////////
10160typedef HRESULT (WINAPI* PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)( __in_opt IDXGIAdapter*,
10161    D3D_DRIVER_TYPE, HMODULE, UINT,
10162    __in_ecount_opt( FeatureLevels ) CONST D3D_FEATURE_LEVEL*,
10163    UINT FeatureLevels, UINT, __in_opt CONST DXGI_SWAP_CHAIN_DESC*,
10164    __out_opt IDXGISwapChain**, __out_opt ID3D11Device**,
10165    __out_opt D3D_FEATURE_LEVEL*, __out_opt ID3D11DeviceContext** );
10166
10167HRESULT WINAPI D3D11CreateDeviceAndSwapChain(
10168    __in_opt IDXGIAdapter* pAdapter,
10169    D3D_DRIVER_TYPE DriverType,
10170    HMODULE Software,
10171    UINT Flags,
10172    __in_ecount_opt( FeatureLevels ) CONST D3D_FEATURE_LEVEL* pFeatureLevels,
10173    UINT FeatureLevels,
10174    UINT SDKVersion,
10175    __in_opt CONST DXGI_SWAP_CHAIN_DESC* pSwapChainDesc,
10176    __out_opt IDXGISwapChain** ppSwapChain,
10177    __out_opt ID3D11Device** ppDevice,
10178    __out_opt D3D_FEATURE_LEVEL* pFeatureLevel,
10179    __out_opt ID3D11DeviceContext** ppImmediateContext );
10180
10181DEFINE_GUID(IID_ID3D11DeviceChild,0x1841e5c8,0x16b0,0x489b,0xbc,0xc8,0x44,0xcf,0xb0,0xd5,0xde,0xae);
10182DEFINE_GUID(IID_ID3D11DepthStencilState,0x03823efb,0x8d8f,0x4e1c,0x9a,0xa2,0xf6,0x4b,0xb2,0xcb,0xfd,0xf1);
10183DEFINE_GUID(IID_ID3D11BlendState,0x75b68faa,0x347d,0x4159,0x8f,0x45,0xa0,0x64,0x0f,0x01,0xcd,0x9a);
10184DEFINE_GUID(IID_ID3D11RasterizerState,0x9bb4ab81,0xab1a,0x4d8f,0xb5,0x06,0xfc,0x04,0x20,0x0b,0x6e,0xe7);
10185DEFINE_GUID(IID_ID3D11Resource,0xdc8e63f3,0xd12b,0x4952,0xb4,0x7b,0x5e,0x45,0x02,0x6a,0x86,0x2d);
10186DEFINE_GUID(IID_ID3D11Buffer,0x48570b85,0xd1ee,0x4fcd,0xa2,0x50,0xeb,0x35,0x07,0x22,0xb0,0x37);
10187DEFINE_GUID(IID_ID3D11Texture1D,0xf8fb5c27,0xc6b3,0x4f75,0xa4,0xc8,0x43,0x9a,0xf2,0xef,0x56,0x4c);
10188DEFINE_GUID(IID_ID3D11Texture2D,0x6f15aaf2,0xd208,0x4e89,0x9a,0xb4,0x48,0x95,0x35,0xd3,0x4f,0x9c);
10189DEFINE_GUID(IID_ID3D11Texture3D,0x037e866e,0xf56d,0x4357,0xa8,0xaf,0x9d,0xab,0xbe,0x6e,0x25,0x0e);
10190DEFINE_GUID(IID_ID3D11View,0x839d1216,0xbb2e,0x412b,0xb7,0xf4,0xa9,0xdb,0xeb,0xe0,0x8e,0xd1);
10191DEFINE_GUID(IID_ID3D11ShaderResourceView,0xb0e06fe0,0x8192,0x4e1a,0xb1,0xca,0x36,0xd7,0x41,0x47,0x10,0xb2);
10192DEFINE_GUID(IID_ID3D11RenderTargetView,0xdfdba067,0x0b8d,0x4865,0x87,0x5b,0xd7,0xb4,0x51,0x6c,0xc1,0x64);
10193DEFINE_GUID(IID_ID3D11DepthStencilView,0x9fdac92a,0x1876,0x48c3,0xaf,0xad,0x25,0xb9,0x4f,0x84,0xa9,0xb6);
10194DEFINE_GUID(IID_ID3D11UnorderedAccessView,0x28acf509,0x7f5c,0x48f6,0x86,0x11,0xf3,0x16,0x01,0x0a,0x63,0x80);
10195DEFINE_GUID(IID_ID3D11VertexShader,0x3b301d64,0xd678,0x4289,0x88,0x97,0x22,0xf8,0x92,0x8b,0x72,0xf3);
10196DEFINE_GUID(IID_ID3D11HullShader,0x8e5c6061,0x628a,0x4c8e,0x82,0x64,0xbb,0xe4,0x5c,0xb3,0xd5,0xdd);
10197DEFINE_GUID(IID_ID3D11DomainShader,0xf582c508,0x0f36,0x490c,0x99,0x77,0x31,0xee,0xce,0x26,0x8c,0xfa);
10198DEFINE_GUID(IID_ID3D11GeometryShader,0x38325b96,0xeffb,0x4022,0xba,0x02,0x2e,0x79,0x5b,0x70,0x27,0x5c);
10199DEFINE_GUID(IID_ID3D11PixelShader,0xea82e40d,0x51dc,0x4f33,0x93,0xd4,0xdb,0x7c,0x91,0x25,0xae,0x8c);
10200DEFINE_GUID(IID_ID3D11ComputeShader,0x4f5b196e,0xc2bd,0x495e,0xbd,0x01,0x1f,0xde,0xd3,0x8e,0x49,0x69);
10201DEFINE_GUID(IID_ID3D11InputLayout,0xe4819ddc,0x4cf0,0x4025,0xbd,0x26,0x5d,0xe8,0x2a,0x3e,0x07,0xb7);
10202DEFINE_GUID(IID_ID3D11SamplerState,0xda6fea51,0x564c,0x4487,0x98,0x10,0xf0,0xd0,0xf9,0xb4,0xe3,0xa5);
10203DEFINE_GUID(IID_ID3D11Asynchronous,0x4b35d0cd,0x1e15,0x4258,0x9c,0x98,0x1b,0x13,0x33,0xf6,0xdd,0x3b);
10204DEFINE_GUID(IID_ID3D11Query,0xd6c00747,0x87b7,0x425e,0xb8,0x4d,0x44,0xd1,0x08,0x56,0x0a,0xfd);
10205DEFINE_GUID(IID_ID3D11Predicate,0x9eb576dd,0x9f77,0x4d86,0x81,0xaa,0x8b,0xab,0x5f,0xe4,0x90,0xe2);
10206DEFINE_GUID(IID_ID3D11Counter,0x6e8c49fb,0xa371,0x4770,0xb4,0x40,0x29,0x08,0x60,0x22,0xb7,0x41);
10207DEFINE_GUID(IID_ID3D11ClassInstance,0xa6cd7faa,0xb0b7,0x4a2f,0x94,0x36,0x86,0x62,0xa6,0x57,0x97,0xcb);
10208DEFINE_GUID(IID_ID3D11ClassLinkage,0xddf57cba,0x9543,0x46e4,0xa1,0x2b,0xf2,0x07,0xa0,0xfe,0x7f,0xed);
10209DEFINE_GUID(IID_ID3D11CommandList,0xa24bc4d1,0x769e,0x43f7,0x80,0x13,0x98,0xff,0x56,0x6c,0x18,0xe2);
10210DEFINE_GUID(IID_ID3D11DeviceContext,0xc0bfa96c,0xe089,0x44fb,0x8e,0xaf,0x26,0xf8,0x79,0x61,0x90,0xda);
10211DEFINE_GUID(IID_ID3D11Device,0xdb6f6ddb,0xac77,0x4e88,0x82,0x53,0x81,0x9d,0xf9,0xbb,0xf1,0x40);
10212
10213
10214extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0031_v0_0_c_ifspec;
10215extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0031_v0_0_s_ifspec;
10216
10217/* Additional Prototypes for ALL interfaces */
10218
10219/* end of Additional Prototypes */
10220
10221#ifdef __cplusplus
10222}
10223#endif
10224
10225#endif
10226
10227
trunk/3rdparty/dxsdk/Include/D3D11SDKLayers.h
r243310r243311
1
2
3/* this ALWAYS GENERATED file contains the definitions for the interfaces */
4
5
6 /* File created by MIDL compiler version 7.00.0555 */
7/* Compiler settings for d3d11sdklayers.idl:
8    Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
9    protocol : all , ms_ext, c_ext, robust
10    error checks: allocation ref bounds_check enum stub_data
11    VC __declspec() decoration level:
12         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
13         DECLSPEC_UUID(), MIDL_INTERFACE()
14*/
15/* @@MIDL_FILE_HEADING(  ) */
16
17#ifdef _MSC_VER
18#pragma warning( disable: 4049 )  /* more than 64k source lines */
19#endif // _MSC_VER
20
21
22/* verify that the <rpcndr.h> version is high enough to compile this file*/
23#ifndef __REQUIRED_RPCNDR_H_VERSION__
24#define __REQUIRED_RPCNDR_H_VERSION__ 475
25#endif
26
27/* verify that the <rpcsal.h> version is high enough to compile this file*/
28#ifndef __REQUIRED_RPCSAL_H_VERSION__
29#define __REQUIRED_RPCSAL_H_VERSION__ 100
30#endif
31
32#include "rpc.h"
33#include "rpcndr.h"
34
35#ifndef __RPCNDR_H_VERSION__
36#error this stub requires an updated version of <rpcndr.h>
37#endif // __RPCNDR_H_VERSION__
38
39#ifndef COM_NO_WINDOWS_H
40#include "windows.h"
41#include "ole2.h"
42#endif /*COM_NO_WINDOWS_H*/
43
44#ifndef __d3d11sdklayers_h__
45#define __d3d11sdklayers_h__
46
47#if defined(_MSC_VER) && (_MSC_VER >= 1020)
48#pragma once
49#endif
50
51/* Forward Declarations */
52
53#ifndef __ID3D11Debug_FWD_DEFINED__
54#define __ID3D11Debug_FWD_DEFINED__
55typedef interface ID3D11Debug ID3D11Debug;
56#endif    /* __ID3D11Debug_FWD_DEFINED__ */
57
58
59#ifndef __ID3D11SwitchToRef_FWD_DEFINED__
60#define __ID3D11SwitchToRef_FWD_DEFINED__
61typedef interface ID3D11SwitchToRef ID3D11SwitchToRef;
62#endif    /* __ID3D11SwitchToRef_FWD_DEFINED__ */
63
64
65#ifndef __ID3D11InfoQueue_FWD_DEFINED__
66#define __ID3D11InfoQueue_FWD_DEFINED__
67typedef interface ID3D11InfoQueue ID3D11InfoQueue;
68#endif    /* __ID3D11InfoQueue_FWD_DEFINED__ */
69
70
71/* header files for imported files */
72#include "oaidl.h"
73#include "ocidl.h"
74#include "d3d11.h"
75
76#ifdef __cplusplus
77extern "C"{
78#endif
79
80
81/* interface __MIDL_itf_d3d11sdklayers_0000_0000 */
82/* [local] */
83
84#define   D3D11_SDK_LAYERS_VERSION   ( 1 )
85
86#define   D3D11_DEBUG_FEATURE_FLUSH_PER_RENDER_OP   ( 0x1 )
87
88#define   D3D11_DEBUG_FEATURE_FINISH_PER_RENDER_OP   ( 0x2 )
89
90#define   D3D11_DEBUG_FEATURE_PRESENT_PER_RENDER_OP   ( 0x4 )
91
92typedef
93enum D3D11_RLDO_FLAGS
94    {   D3D11_RLDO_SUMMARY   = 0x1,
95   D3D11_RLDO_DETAIL   = 0x2
96    }    D3D11_RLDO_FLAGS;
97
98#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
99}
100inline D3D11_RLDO_FLAGS operator~( D3D11_RLDO_FLAGS a )
101{ return D3D11_RLDO_FLAGS( ~UINT( a ) ); }
102inline D3D11_RLDO_FLAGS operator&( D3D11_RLDO_FLAGS a, D3D11_RLDO_FLAGS b )
103{ return D3D11_RLDO_FLAGS( UINT( a ) & UINT( b ) ); }
104inline D3D11_RLDO_FLAGS operator|( D3D11_RLDO_FLAGS a, D3D11_RLDO_FLAGS b )
105{ return D3D11_RLDO_FLAGS( UINT( a ) | UINT( b ) ); }
106inline D3D11_RLDO_FLAGS operator^( D3D11_RLDO_FLAGS a, D3D11_RLDO_FLAGS b )
107{ return D3D11_RLDO_FLAGS( UINT( a ) ^ UINT( b ) ); }
108inline D3D11_RLDO_FLAGS& operator&=( D3D11_RLDO_FLAGS& a, D3D11_RLDO_FLAGS b )
109{ a = a & b; return a; }
110inline D3D11_RLDO_FLAGS& operator|=( D3D11_RLDO_FLAGS& a, D3D11_RLDO_FLAGS b )
111{ a = a | b; return a; }
112inline D3D11_RLDO_FLAGS& operator^=( D3D11_RLDO_FLAGS& a, D3D11_RLDO_FLAGS b )
113{ a = a ^ b; return a; }
114extern "C"{
115#endif
116
117
118extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0000_v0_0_c_ifspec;
119extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0000_v0_0_s_ifspec;
120
121#ifndef __ID3D11Debug_INTERFACE_DEFINED__
122#define __ID3D11Debug_INTERFACE_DEFINED__
123
124/* interface ID3D11Debug */
125/* [unique][local][object][uuid] */
126
127
128EXTERN_C const IID IID_ID3D11Debug;
129
130#if defined(__cplusplus) && !defined(CINTERFACE)
131   
132    MIDL_INTERFACE("79cf2233-7536-4948-9d36-1e4692dc5760")
133    ID3D11Debug : public IUnknown
134    {
135    public:
136        virtual HRESULT STDMETHODCALLTYPE SetFeatureMask(
137            UINT Mask) = 0;
138       
139        virtual UINT STDMETHODCALLTYPE GetFeatureMask( void) = 0;
140       
141        virtual HRESULT STDMETHODCALLTYPE SetPresentPerRenderOpDelay(
142            UINT Milliseconds) = 0;
143       
144        virtual UINT STDMETHODCALLTYPE GetPresentPerRenderOpDelay( void) = 0;
145       
146        virtual HRESULT STDMETHODCALLTYPE SetSwapChain(
147            /* [annotation] */
148            __in_opt  IDXGISwapChain *pSwapChain) = 0;
149       
150        virtual HRESULT STDMETHODCALLTYPE GetSwapChain(
151            /* [annotation] */
152            __out  IDXGISwapChain **ppSwapChain) = 0;
153       
154        virtual HRESULT STDMETHODCALLTYPE ValidateContext(
155            /* [annotation] */
156            __in  ID3D11DeviceContext *pContext) = 0;
157       
158        virtual HRESULT STDMETHODCALLTYPE ReportLiveDeviceObjects(
159            D3D11_RLDO_FLAGS Flags) = 0;
160       
161        virtual HRESULT STDMETHODCALLTYPE ValidateContextForDispatch(
162            /* [annotation] */
163            __in  ID3D11DeviceContext *pContext) = 0;
164       
165    };
166   
167#else    /* C style interface */
168
169    typedef struct ID3D11DebugVtbl
170    {
171        BEGIN_INTERFACE
172       
173        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
174            ID3D11Debug * This,
175            /* [in] */ REFIID riid,
176            /* [annotation][iid_is][out] */
177            __RPC__deref_out  void **ppvObject);
178       
179        ULONG ( STDMETHODCALLTYPE *AddRef )(
180            ID3D11Debug * This);
181       
182        ULONG ( STDMETHODCALLTYPE *Release )(
183            ID3D11Debug * This);
184       
185        HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )(
186            ID3D11Debug * This,
187            UINT Mask);
188       
189        UINT ( STDMETHODCALLTYPE *GetFeatureMask )(
190            ID3D11Debug * This);
191       
192        HRESULT ( STDMETHODCALLTYPE *SetPresentPerRenderOpDelay )(
193            ID3D11Debug * This,
194            UINT Milliseconds);
195       
196        UINT ( STDMETHODCALLTYPE *GetPresentPerRenderOpDelay )(
197            ID3D11Debug * This);
198       
199        HRESULT ( STDMETHODCALLTYPE *SetSwapChain )(
200            ID3D11Debug * This,
201            /* [annotation] */
202            __in_opt  IDXGISwapChain *pSwapChain);
203       
204        HRESULT ( STDMETHODCALLTYPE *GetSwapChain )(
205            ID3D11Debug * This,
206            /* [annotation] */
207            __out  IDXGISwapChain **ppSwapChain);
208       
209        HRESULT ( STDMETHODCALLTYPE *ValidateContext )(
210            ID3D11Debug * This,
211            /* [annotation] */
212            __in  ID3D11DeviceContext *pContext);
213       
214        HRESULT ( STDMETHODCALLTYPE *ReportLiveDeviceObjects )(
215            ID3D11Debug * This,
216            D3D11_RLDO_FLAGS Flags);
217       
218        HRESULT ( STDMETHODCALLTYPE *ValidateContextForDispatch )(
219            ID3D11Debug * This,
220            /* [annotation] */
221            __in  ID3D11DeviceContext *pContext);
222       
223        END_INTERFACE
224    } ID3D11DebugVtbl;
225
226    interface ID3D11Debug
227    {
228        CONST_VTBL struct ID3D11DebugVtbl *lpVtbl;
229    };
230
231   
232
233#ifdef COBJMACROS
234
235
236#define ID3D11Debug_QueryInterface(This,riid,ppvObject)   \
237    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
238
239#define ID3D11Debug_AddRef(This)   \
240    ( (This)->lpVtbl -> AddRef(This) )
241
242#define ID3D11Debug_Release(This)   \
243    ( (This)->lpVtbl -> Release(This) )
244
245
246#define ID3D11Debug_SetFeatureMask(This,Mask)   \
247    ( (This)->lpVtbl -> SetFeatureMask(This,Mask) )
248
249#define ID3D11Debug_GetFeatureMask(This)   \
250    ( (This)->lpVtbl -> GetFeatureMask(This) )
251
252#define ID3D11Debug_SetPresentPerRenderOpDelay(This,Milliseconds)   \
253    ( (This)->lpVtbl -> SetPresentPerRenderOpDelay(This,Milliseconds) )
254
255#define ID3D11Debug_GetPresentPerRenderOpDelay(This)   \
256    ( (This)->lpVtbl -> GetPresentPerRenderOpDelay(This) )
257
258#define ID3D11Debug_SetSwapChain(This,pSwapChain)   \
259    ( (This)->lpVtbl -> SetSwapChain(This,pSwapChain) )
260
261#define ID3D11Debug_GetSwapChain(This,ppSwapChain)   \
262    ( (This)->lpVtbl -> GetSwapChain(This,ppSwapChain) )
263
264#define ID3D11Debug_ValidateContext(This,pContext)   \
265    ( (This)->lpVtbl -> ValidateContext(This,pContext) )
266
267#define ID3D11Debug_ReportLiveDeviceObjects(This,Flags)   \
268    ( (This)->lpVtbl -> ReportLiveDeviceObjects(This,Flags) )
269
270#define ID3D11Debug_ValidateContextForDispatch(This,pContext)   \
271    ( (This)->lpVtbl -> ValidateContextForDispatch(This,pContext) )
272
273#endif /* COBJMACROS */
274
275
276#endif    /* C style interface */
277
278
279
280
281#endif    /* __ID3D11Debug_INTERFACE_DEFINED__ */
282
283
284#ifndef __ID3D11SwitchToRef_INTERFACE_DEFINED__
285#define __ID3D11SwitchToRef_INTERFACE_DEFINED__
286
287/* interface ID3D11SwitchToRef */
288/* [unique][local][object][uuid] */
289
290
291EXTERN_C const IID IID_ID3D11SwitchToRef;
292
293#if defined(__cplusplus) && !defined(CINTERFACE)
294   
295    MIDL_INTERFACE("1ef337e3-58e7-4f83-a692-db221f5ed47e")
296    ID3D11SwitchToRef : public IUnknown
297    {
298    public:
299        virtual BOOL STDMETHODCALLTYPE SetUseRef(
300            BOOL UseRef) = 0;
301       
302        virtual BOOL STDMETHODCALLTYPE GetUseRef( void) = 0;
303       
304    };
305   
306#else    /* C style interface */
307
308    typedef struct ID3D11SwitchToRefVtbl
309    {
310        BEGIN_INTERFACE
311       
312        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
313            ID3D11SwitchToRef * This,
314            /* [in] */ REFIID riid,
315            /* [annotation][iid_is][out] */
316            __RPC__deref_out  void **ppvObject);
317       
318        ULONG ( STDMETHODCALLTYPE *AddRef )(
319            ID3D11SwitchToRef * This);
320       
321        ULONG ( STDMETHODCALLTYPE *Release )(
322            ID3D11SwitchToRef * This);
323       
324        BOOL ( STDMETHODCALLTYPE *SetUseRef )(
325            ID3D11SwitchToRef * This,
326            BOOL UseRef);
327       
328        BOOL ( STDMETHODCALLTYPE *GetUseRef )(
329            ID3D11SwitchToRef * This);
330       
331        END_INTERFACE
332    } ID3D11SwitchToRefVtbl;
333
334    interface ID3D11SwitchToRef
335    {
336        CONST_VTBL struct ID3D11SwitchToRefVtbl *lpVtbl;
337    };
338
339   
340
341#ifdef COBJMACROS
342
343
344#define ID3D11SwitchToRef_QueryInterface(This,riid,ppvObject)   \
345    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
346
347#define ID3D11SwitchToRef_AddRef(This)   \
348    ( (This)->lpVtbl -> AddRef(This) )
349
350#define ID3D11SwitchToRef_Release(This)   \
351    ( (This)->lpVtbl -> Release(This) )
352
353
354#define ID3D11SwitchToRef_SetUseRef(This,UseRef)   \
355    ( (This)->lpVtbl -> SetUseRef(This,UseRef) )
356
357#define ID3D11SwitchToRef_GetUseRef(This)   \
358    ( (This)->lpVtbl -> GetUseRef(This) )
359
360#endif /* COBJMACROS */
361
362
363#endif    /* C style interface */
364
365
366
367
368#endif    /* __ID3D11SwitchToRef_INTERFACE_DEFINED__ */
369
370
371/* interface __MIDL_itf_d3d11sdklayers_0000_0002 */
372/* [local] */
373
374typedef
375enum D3D11_MESSAGE_CATEGORY
376    {   D3D11_MESSAGE_CATEGORY_APPLICATION_DEFINED   = 0,
377   D3D11_MESSAGE_CATEGORY_MISCELLANEOUS   = ( D3D11_MESSAGE_CATEGORY_APPLICATION_DEFINED + 1 ) ,
378   D3D11_MESSAGE_CATEGORY_INITIALIZATION   = ( D3D11_MESSAGE_CATEGORY_MISCELLANEOUS + 1 ) ,
379   D3D11_MESSAGE_CATEGORY_CLEANUP   = ( D3D11_MESSAGE_CATEGORY_INITIALIZATION + 1 ) ,
380   D3D11_MESSAGE_CATEGORY_COMPILATION   = ( D3D11_MESSAGE_CATEGORY_CLEANUP + 1 ) ,
381   D3D11_MESSAGE_CATEGORY_STATE_CREATION   = ( D3D11_MESSAGE_CATEGORY_COMPILATION + 1 ) ,
382   D3D11_MESSAGE_CATEGORY_STATE_SETTING   = ( D3D11_MESSAGE_CATEGORY_STATE_CREATION + 1 ) ,
383   D3D11_MESSAGE_CATEGORY_STATE_GETTING   = ( D3D11_MESSAGE_CATEGORY_STATE_SETTING + 1 ) ,
384   D3D11_MESSAGE_CATEGORY_RESOURCE_MANIPULATION   = ( D3D11_MESSAGE_CATEGORY_STATE_GETTING + 1 ) ,
385   D3D11_MESSAGE_CATEGORY_EXECUTION   = ( D3D11_MESSAGE_CATEGORY_RESOURCE_MANIPULATION + 1 )
386    }    D3D11_MESSAGE_CATEGORY;
387
388typedef
389enum D3D11_MESSAGE_SEVERITY
390    {   D3D11_MESSAGE_SEVERITY_CORRUPTION   = 0,
391   D3D11_MESSAGE_SEVERITY_ERROR   = ( D3D11_MESSAGE_SEVERITY_CORRUPTION + 1 ) ,
392   D3D11_MESSAGE_SEVERITY_WARNING   = ( D3D11_MESSAGE_SEVERITY_ERROR + 1 ) ,
393   D3D11_MESSAGE_SEVERITY_INFO   = ( D3D11_MESSAGE_SEVERITY_WARNING + 1 )
394    }    D3D11_MESSAGE_SEVERITY;
395
396typedef
397enum D3D11_MESSAGE_ID
398    {   D3D11_MESSAGE_ID_UNKNOWN   = 0,
399   D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_HAZARD   = ( D3D11_MESSAGE_ID_UNKNOWN + 1 ) ,
400   D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_HAZARD + 1 ) ,
401   D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_HAZARD + 1 ) ,
402   D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_HAZARD + 1 ) ,
403   D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_HAZARD + 1 ) ,
404   D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_HAZARD + 1 ) ,
405   D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_HAZARD + 1 ) ,
406   D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_HAZARD + 1 ) ,
407   D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_HAZARD + 1 ) ,
408   D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETS_HAZARD + 1 ) ,
409   D3D11_MESSAGE_ID_STRING_FROM_APPLICATION   = ( D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_HAZARD + 1 ) ,
410   D3D11_MESSAGE_ID_CORRUPTED_THIS   = ( D3D11_MESSAGE_ID_STRING_FROM_APPLICATION + 1 ) ,
411   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER1   = ( D3D11_MESSAGE_ID_CORRUPTED_THIS + 1 ) ,
412   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER2   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER1 + 1 ) ,
413   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER3   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER2 + 1 ) ,
414   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER4   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER3 + 1 ) ,
415   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER5   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER4 + 1 ) ,
416   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER6   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER5 + 1 ) ,
417   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER7   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER6 + 1 ) ,
418   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER8   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER7 + 1 ) ,
419   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER9   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER8 + 1 ) ,
420   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER10   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER9 + 1 ) ,
421   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER11   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER10 + 1 ) ,
422   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER12   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER11 + 1 ) ,
423   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER13   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER12 + 1 ) ,
424   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER14   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER13 + 1 ) ,
425   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER15   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER14 + 1 ) ,
426   D3D11_MESSAGE_ID_CORRUPTED_MULTITHREADING   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER15 + 1 ) ,
427   D3D11_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CORRUPTED_MULTITHREADING + 1 ) ,
428   D3D11_MESSAGE_ID_IASETINPUTLAYOUT_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY + 1 ) ,
429   D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_IASETINPUTLAYOUT_UNBINDDELETINGOBJECT + 1 ) ,
430   D3D11_MESSAGE_ID_IASETINDEXBUFFER_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_UNBINDDELETINGOBJECT + 1 ) ,
431   D3D11_MESSAGE_ID_VSSETSHADER_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_IASETINDEXBUFFER_UNBINDDELETINGOBJECT + 1 ) ,
432   D3D11_MESSAGE_ID_VSSETSHADERRESOURCES_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_VSSETSHADER_UNBINDDELETINGOBJECT + 1 ) ,
433   D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_VSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) ,
434   D3D11_MESSAGE_ID_VSSETSAMPLERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) ,
435   D3D11_MESSAGE_ID_GSSETSHADER_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_VSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) ,
436   D3D11_MESSAGE_ID_GSSETSHADERRESOURCES_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_GSSETSHADER_UNBINDDELETINGOBJECT + 1 ) ,
437   D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_GSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) ,
438   D3D11_MESSAGE_ID_GSSETSAMPLERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) ,
439   D3D11_MESSAGE_ID_SOSETTARGETS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_GSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) ,
440   D3D11_MESSAGE_ID_PSSETSHADER_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_SOSETTARGETS_UNBINDDELETINGOBJECT + 1 ) ,
441   D3D11_MESSAGE_ID_PSSETSHADERRESOURCES_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_PSSETSHADER_UNBINDDELETINGOBJECT + 1 ) ,
442   D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_PSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) ,
443   D3D11_MESSAGE_ID_PSSETSAMPLERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) ,
444   D3D11_MESSAGE_ID_RSSETSTATE_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_PSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) ,
445   D3D11_MESSAGE_ID_OMSETBLENDSTATE_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_RSSETSTATE_UNBINDDELETINGOBJECT + 1 ) ,
446   D3D11_MESSAGE_ID_OMSETDEPTHSTENCILSTATE_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_OMSETBLENDSTATE_UNBINDDELETINGOBJECT + 1 ) ,
447   D3D11_MESSAGE_ID_OMSETRENDERTARGETS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_OMSETDEPTHSTENCILSTATE_UNBINDDELETINGOBJECT + 1 ) ,
448   D3D11_MESSAGE_ID_SETPREDICATION_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_UNBINDDELETINGOBJECT + 1 ) ,
449   D3D11_MESSAGE_ID_GETPRIVATEDATA_MOREDATA   = ( D3D11_MESSAGE_ID_SETPREDICATION_UNBINDDELETINGOBJECT + 1 ) ,
450   D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA   = ( D3D11_MESSAGE_ID_GETPRIVATEDATA_MOREDATA + 1 ) ,
451   D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN   = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA + 1 ) ,
452   D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN + 1 ) ,
453   D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS   = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS + 1 ) ,
454   D3D11_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS + 1 ) ,
455   D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY + 1 ) ,
456   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSAMPLES   = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDFORMAT + 1 ) ,
457   D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDUSAGE   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSAMPLES + 1 ) ,
458   D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDUSAGE + 1 ) ,
459   D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDBINDFLAGS + 1 ) ,
460   D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) ,
461   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDMISCFLAGS + 1 ) ,
462   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCPUACCESSFLAGS + 1 ) ,
463   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDINITIALDATA   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDBINDFLAGS + 1 ) ,
464   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDINITIALDATA + 1 ) ,
465   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMIPLEVELS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDDIMENSIONS + 1 ) ,
466   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMIPLEVELS + 1 ) ,
467   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMISCFLAGS + 1 ) ,
468   D3D11_MESSAGE_ID_CREATEBUFFER_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDARG_RETURN + 1 ) ,
469   D3D11_MESSAGE_ID_CREATEBUFFER_NULLDESC   = ( D3D11_MESSAGE_ID_CREATEBUFFER_OUTOFMEMORY_RETURN + 1 ) ,
470   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCONSTANTBUFFERBINDINGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_NULLDESC + 1 ) ,
471   D3D11_MESSAGE_ID_CREATEBUFFER_LARGEALLOCATION   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCONSTANTBUFFERBINDINGS + 1 ) ,
472   D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_CREATEBUFFER_LARGEALLOCATION + 1 ) ,
473   D3D11_MESSAGE_ID_CREATETEXTURE1D_UNSUPPORTEDFORMAT   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDFORMAT + 1 ) ,
474   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDSAMPLES   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNSUPPORTEDFORMAT + 1 ) ,
475   D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDUSAGE   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDSAMPLES + 1 ) ,
476   D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDUSAGE + 1 ) ,
477   D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDBINDFLAGS + 1 ) ,
478   D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) ,
479   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDMISCFLAGS + 1 ) ,
480   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDCPUACCESSFLAGS + 1 ) ,
481   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDINITIALDATA   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDBINDFLAGS + 1 ) ,
482   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDINITIALDATA + 1 ) ,
483   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMIPLEVELS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDDIMENSIONS + 1 ) ,
484   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMIPLEVELS + 1 ) ,
485   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMISCFLAGS + 1 ) ,
486   D3D11_MESSAGE_ID_CREATETEXTURE1D_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDARG_RETURN + 1 ) ,
487   D3D11_MESSAGE_ID_CREATETEXTURE1D_NULLDESC   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_OUTOFMEMORY_RETURN + 1 ) ,
488   D3D11_MESSAGE_ID_CREATETEXTURE1D_LARGEALLOCATION   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_NULLDESC + 1 ) ,
489   D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_LARGEALLOCATION + 1 ) ,
490   D3D11_MESSAGE_ID_CREATETEXTURE2D_UNSUPPORTEDFORMAT   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDFORMAT + 1 ) ,
491   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDSAMPLES   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNSUPPORTEDFORMAT + 1 ) ,
492   D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDUSAGE   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDSAMPLES + 1 ) ,
493   D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDUSAGE + 1 ) ,
494   D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDBINDFLAGS + 1 ) ,
495   D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) ,
496   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDMISCFLAGS + 1 ) ,
497   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDCPUACCESSFLAGS + 1 ) ,
498   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDINITIALDATA   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDBINDFLAGS + 1 ) ,
499   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDINITIALDATA + 1 ) ,
500   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMIPLEVELS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDDIMENSIONS + 1 ) ,
501   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMIPLEVELS + 1 ) ,
502   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMISCFLAGS + 1 ) ,
503   D3D11_MESSAGE_ID_CREATETEXTURE2D_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDARG_RETURN + 1 ) ,
504   D3D11_MESSAGE_ID_CREATETEXTURE2D_NULLDESC   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_OUTOFMEMORY_RETURN + 1 ) ,
505   D3D11_MESSAGE_ID_CREATETEXTURE2D_LARGEALLOCATION   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_NULLDESC + 1 ) ,
506   D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_LARGEALLOCATION + 1 ) ,
507   D3D11_MESSAGE_ID_CREATETEXTURE3D_UNSUPPORTEDFORMAT   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDFORMAT + 1 ) ,
508   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDSAMPLES   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNSUPPORTEDFORMAT + 1 ) ,
509   D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDUSAGE   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDSAMPLES + 1 ) ,
510   D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDUSAGE + 1 ) ,
511   D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDBINDFLAGS + 1 ) ,
512   D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) ,
513   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDMISCFLAGS + 1 ) ,
514   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDCPUACCESSFLAGS + 1 ) ,
515   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDINITIALDATA   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDBINDFLAGS + 1 ) ,
516   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDINITIALDATA + 1 ) ,
517   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMIPLEVELS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDDIMENSIONS + 1 ) ,
518   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMIPLEVELS + 1 ) ,
519   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMISCFLAGS + 1 ) ,
520   D3D11_MESSAGE_ID_CREATETEXTURE3D_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDARG_RETURN + 1 ) ,
521   D3D11_MESSAGE_ID_CREATETEXTURE3D_NULLDESC   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_OUTOFMEMORY_RETURN + 1 ) ,
522   D3D11_MESSAGE_ID_CREATETEXTURE3D_LARGEALLOCATION   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_NULLDESC + 1 ) ,
523   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_LARGEALLOCATION + 1 ) ,
524   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT + 1 ) ,
525   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC + 1 ) ,
526   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT + 1 ) ,
527   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS + 1 ) ,
528   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE + 1 ) ,
529   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_TOOMANYOBJECTS + 1 ) ,
530   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN + 1 ) ,
531   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN + 1 ) ,
532   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT + 1 ) ,
533   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT + 1 ) ,
534   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC + 1 ) ,
535   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT + 1 ) ,
536   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS + 1 ) ,
537   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE + 1 ) ,
538   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_TOOMANYOBJECTS + 1 ) ,
539   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN + 1 ) ,
540   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN + 1 ) ,
541   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT + 1 ) ,
542   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC + 1 ) ,
543   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT + 1 ) ,
544   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS + 1 ) ,
545   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE + 1 ) ,
546   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_TOOMANYOBJECTS + 1 ) ,
547   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN + 1 ) ,
548   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN + 1 ) ,
549   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY + 1 ) ,
550   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS + 1 ) ,
551   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT + 1 ) ,
552   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT + 1 ) ,
553   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT + 1 ) ,
554   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS + 1 ) ,
555   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH + 1 ) ,
556   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE + 1 ) ,
557   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE + 1 ) ,
558   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT + 1 ) ,
559   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC + 1 ) ,
560   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE + 1 ) ,
561   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC + 1 ) ,
562   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLDESC   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT + 1 ) ,
563   D3D11_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLDESC + 1 ) ,
564   D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE   = ( D3D11_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY + 1 ) ,
565   D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE   = ( D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE + 1 ) ,
566   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE + 1 ) ,
567   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY + 1 ) ,
568   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE + 1 ) ,
569   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE + 1 ) ,
570   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY + 1 ) ,
571   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE + 1 ) ,
572   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE + 1 ) ,
573   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES + 1 ) ,
574   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED + 1 ) ,
575   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL + 1 ) ,
576   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL + 1 ) ,
577   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED + 1 ) ,
578   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT + 1 ) ,
579   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT + 1 ) ,
580   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT + 1 ) ,
581   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT + 1 ) ,
582   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION + 1 ) ,
583   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT + 1 ) ,
584   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE + 1 ) ,
585   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC + 1 ) ,
586   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH + 1 ) ,
587   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS + 1 ) ,
588   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX + 1 ) ,
589   D3D11_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE + 1 ) ,
590   D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE   = ( D3D11_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY + 1 ) ,
591   D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE   = ( D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE + 1 ) ,
592   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE   = ( D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE + 1 ) ,
593   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE + 1 ) ,
594   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE + 1 ) ,
595   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP + 1 ) ,
596   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS + 1 ) ,
597   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_TOOMANYOBJECTS + 1 ) ,
598   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC + 1 ) ,
599   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK + 1 ) ,
600   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC + 1 ) ,
601   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP + 1 ) ,
602   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP + 1 ) ,
603   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP + 1 ) ,
604   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC + 1 ) ,
605   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP + 1 ) ,
606   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP + 1 ) ,
607   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP + 1 ) ,
608   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC + 1 ) ,
609   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_TOOMANYOBJECTS + 1 ) ,
610   D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC + 1 ) ,
611   D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND + 1 ) ,
612   D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND + 1 ) ,
613   D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP + 1 ) ,
614   D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA + 1 ) ,
615   D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA + 1 ) ,
616   D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA + 1 ) ,
617   D3D11_MESSAGE_ID_CREATEBLENDSTATE_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK + 1 ) ,
618   D3D11_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_TOOMANYOBJECTS + 1 ) ,
619   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC + 1 ) ,
620   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER + 1 ) ,
621   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU + 1 ) ,
622   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV + 1 ) ,
623   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW + 1 ) ,
624   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS + 1 ) ,
625   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY + 1 ) ,
626   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC + 1 ) ,
627   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD + 1 ) ,
628   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD + 1 ) ,
629   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_TOOMANYOBJECTS + 1 ) ,
630   D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDQUERY   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC + 1 ) ,
631   D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDQUERY + 1 ) ,
632   D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_UNEXPECTEDMISCFLAG   = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDMISCFLAGS + 1 ) ,
633   D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_NULLDESC   = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_UNEXPECTEDMISCFLAG + 1 ) ,
634   D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED   = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_NULLDESC + 1 ) ,
635   D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED   = ( D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED + 1 ) ,
636   D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED + 1 ) ,
637   D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_OFFSET_TOO_LARGE   = ( D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_INVALIDBUFFER + 1 ) ,
638   D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_OFFSET_TOO_LARGE + 1 ) ,
639   D3D11_MESSAGE_ID_IASETINDEXBUFFER_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_BUFFERS_EMPTY + 1 ) ,
640   D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_FORMAT_INVALID   = ( D3D11_MESSAGE_ID_IASETINDEXBUFFER_INVALIDBUFFER + 1 ) ,
641   D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_TOO_LARGE   = ( D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_FORMAT_INVALID + 1 ) ,
642   D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_UNALIGNED   = ( D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_TOO_LARGE + 1 ) ,
643   D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_UNALIGNED + 1 ) ,
644   D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
645   D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) ,
646   D3D11_MESSAGE_ID_DEVICE_VSSETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
647   D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_VSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
648   D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
649   D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) ,
650   D3D11_MESSAGE_ID_DEVICE_GSSETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
651   D3D11_MESSAGE_ID_SOSETTARGETS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_GSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
652   D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_OFFSET_UNALIGNED   = ( D3D11_MESSAGE_ID_SOSETTARGETS_INVALIDBUFFER + 1 ) ,
653   D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_OFFSET_UNALIGNED + 1 ) ,
654   D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
655   D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) ,
656   D3D11_MESSAGE_ID_DEVICE_PSSETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
657   D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT   = ( D3D11_MESSAGE_ID_DEVICE_PSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
658   D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR   = ( D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT + 1 ) ,
659   D3D11_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH   = ( D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR + 1 ) ,
660   D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH   = ( D3D11_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH + 1 ) ,
661   D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID   = ( D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH + 1 ) ,
662   D3D11_MESSAGE_ID_DEVICE_IAGETVERTEXBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID + 1 ) ,
663   D3D11_MESSAGE_ID_DEVICE_VSGETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_IAGETVERTEXBUFFERS_BUFFERS_EMPTY + 1 ) ,
664   D3D11_MESSAGE_ID_DEVICE_VSGETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_VSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
665   D3D11_MESSAGE_ID_DEVICE_VSGETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_VSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
666   D3D11_MESSAGE_ID_DEVICE_GSGETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_VSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
667   D3D11_MESSAGE_ID_DEVICE_GSGETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_GSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
668   D3D11_MESSAGE_ID_DEVICE_GSGETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_GSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
669   D3D11_MESSAGE_ID_DEVICE_SOGETTARGETS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_GSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
670   D3D11_MESSAGE_ID_DEVICE_PSGETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_SOGETTARGETS_BUFFERS_EMPTY + 1 ) ,
671   D3D11_MESSAGE_ID_DEVICE_PSGETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_PSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
672   D3D11_MESSAGE_ID_DEVICE_PSGETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_PSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
673   D3D11_MESSAGE_ID_DEVICE_RSGETVIEWPORTS_VIEWPORTS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_PSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
674   D3D11_MESSAGE_ID_DEVICE_RSGETSCISSORRECTS_RECTS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_RSGETVIEWPORTS_VIEWPORTS_EMPTY + 1 ) ,
675   D3D11_MESSAGE_ID_DEVICE_GENERATEMIPS_RESOURCE_INVALID   = ( D3D11_MESSAGE_ID_DEVICE_RSGETSCISSORRECTS_RECTS_EMPTY + 1 ) ,
676   D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSUBRESOURCE   = ( D3D11_MESSAGE_ID_DEVICE_GENERATEMIPS_RESOURCE_INVALID + 1 ) ,
677   D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESUBRESOURCE   = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSUBRESOURCE + 1 ) ,
678   D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCEBOX   = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESUBRESOURCE + 1 ) ,
679   D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCE   = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCEBOX + 1 ) ,
680   D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSTATE   = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCE + 1 ) ,
681   D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESTATE   = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSTATE + 1 ) ,
682   D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE   = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESTATE + 1 ) ,
683   D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE   = ( D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE + 1 ) ,
684   D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE   = ( D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE + 1 ) ,
685   D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE   = ( D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE + 1 ) ,
686   D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX   = ( D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE + 1 ) ,
687   D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE   = ( D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX + 1 ) ,
688   D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID   = ( D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE + 1 ) ,
689   D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID   = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID + 1 ) ,
690   D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID   = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID + 1 ) ,
691   D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID   = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID + 1 ) ,
692   D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID   = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID + 1 ) ,
693   D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE   = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID + 1 ) ,
694   D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE + 1 ) ,
695   D3D11_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED   = ( D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS + 1 ) ,
696   D3D11_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN   = ( D3D11_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED + 1 ) ,
697   D3D11_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED   = ( D3D11_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN + 1 ) ,
698   D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE   = ( D3D11_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED + 1 ) ,
699   D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE + 1 ) ,
700   D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE + 1 ) ,
701   D3D11_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED   = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS + 1 ) ,
702   D3D11_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN   = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED + 1 ) ,
703   D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN + 1 ) ,
704   D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED   = ( D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE + 1 ) ,
705   D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE   = ( D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED + 1 ) ,
706   D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE + 1 ) ,
707   D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE + 1 ) ,
708   D3D11_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED   = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS + 1 ) ,
709   D3D11_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN   = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED + 1 ) ,
710   D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN + 1 ) ,
711   D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED   = ( D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE + 1 ) ,
712   D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE   = ( D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED + 1 ) ,
713   D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE + 1 ) ,
714   D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE + 1 ) ,
715   D3D11_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED   = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS + 1 ) ,
716   D3D11_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN   = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED + 1 ) ,
717   D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN + 1 ) ,
718   D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED   = ( D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE + 1 ) ,
719   D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED   = ( D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED + 1 ) ,
720   D3D11_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED   = ( D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED + 1 ) ,
721   D3D11_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS   = ( D3D11_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED + 1 ) ,
722   D3D11_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS + 1 ) ,
723   D3D11_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN   = ( D3D11_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN + 1 ) ,
724   D3D11_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE   = ( D3D11_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN + 1 ) ,
725   D3D11_MESSAGE_ID_REF_THREADING_MODE   = ( D3D11_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE + 1 ) ,
726   D3D11_MESSAGE_ID_REF_UMDRIVER_EXCEPTION   = ( D3D11_MESSAGE_ID_REF_THREADING_MODE + 1 ) ,
727   D3D11_MESSAGE_ID_REF_KMDRIVER_EXCEPTION   = ( D3D11_MESSAGE_ID_REF_UMDRIVER_EXCEPTION + 1 ) ,
728   D3D11_MESSAGE_ID_REF_HARDWARE_EXCEPTION   = ( D3D11_MESSAGE_ID_REF_KMDRIVER_EXCEPTION + 1 ) ,
729   D3D11_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE   = ( D3D11_MESSAGE_ID_REF_HARDWARE_EXCEPTION + 1 ) ,
730   D3D11_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER   = ( D3D11_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE + 1 ) ,
731   D3D11_MESSAGE_ID_REF_OUT_OF_MEMORY   = ( D3D11_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER + 1 ) ,
732   D3D11_MESSAGE_ID_REF_INFO   = ( D3D11_MESSAGE_ID_REF_OUT_OF_MEMORY + 1 ) ,
733   D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW   = ( D3D11_MESSAGE_ID_REF_INFO + 1 ) ,
734   D3D11_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW + 1 ) ,
735   D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW + 1 ) ,
736   D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW + 1 ) ,
737   D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW + 1 ) ,
738   D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW + 1 ) ,
739   D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW + 1 ) ,
740   D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET + 1 ) ,
741   D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX   = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND + 1 ) ,
742   D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE   = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX + 1 ) ,
743   D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK   = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE + 1 ) ,
744   D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE   = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK + 1 ) ,
745   D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS   = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE + 1 ) ,
746   D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS + 1 ) ,
747   D3D11_MESSAGE_ID_DEVICE_DRAW_INPUTLAYOUT_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_NOT_SET + 1 ) ,
748   D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INPUTLAYOUT_NOT_SET + 1 ) ,
749   D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_TOO_SMALL   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_NOT_SET + 1 ) ,
750   D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_TOO_SMALL + 1 ) ,
751   D3D11_MESSAGE_ID_DEVICE_DRAW_SHADERRESOURCEVIEW_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_NOT_SET + 1 ) ,
752   D3D11_MESSAGE_ID_DEVICE_DRAW_VIEW_DIMENSION_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SHADERRESOURCEVIEW_NOT_SET + 1 ) ,
753   D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VIEW_DIMENSION_MISMATCH + 1 ) ,
754   D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL + 1 ) ,
755   D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL + 1 ) ,
756   D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_NOT_SET + 1 ) ,
757   D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID + 1 ) ,
758   D3D11_MESSAGE_ID_DEVICE_DRAW_GS_INPUT_PRIMITIVE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL + 1 ) ,
759   D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_RETURN_TYPE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_GS_INPUT_PRIMITIVE_MISMATCH + 1 ) ,
760   D3D11_MESSAGE_ID_DEVICE_DRAW_POSITION_NOT_PRESENT   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_RETURN_TYPE_MISMATCH + 1 ) ,
761   D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_POSITION_NOT_PRESENT + 1 ) ,
762   D3D11_MESSAGE_ID_DEVICE_DRAW_BOUND_RESOURCE_MAPPED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_NOT_SET + 1 ) ,
763   D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_PRIMITIVETOPOLOGY   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_BOUND_RESOURCE_MAPPED + 1 ) ,
764   D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_OFFSET_UNALIGNED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_PRIMITIVETOPOLOGY + 1 ) ,
765   D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_STRIDE_UNALIGNED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_OFFSET_UNALIGNED + 1 ) ,
766   D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_OFFSET_UNALIGNED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_STRIDE_UNALIGNED + 1 ) ,
767   D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_OFFSET_UNALIGNED + 1 ) ,
768   D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED + 1 ) ,
769   D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED + 1 ) ,
770   D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED + 1 ) ,
771   D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED + 1 ) ,
772   D3D11_MESSAGE_ID_DEVICE_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED + 1 ) ,
773   D3D11_MESSAGE_ID_DEVICE_DRAW_SO_STRIDE_LARGER_THAN_BUFFER   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE + 1 ) ,
774   D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SO_STRIDE_LARGER_THAN_BUFFER + 1 ) ,
775   D3D11_MESSAGE_ID_DEVICE_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING + 1 ) ,
776   D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 + 1 ) ,
777   D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT   = ( D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT + 1 ) ,
778   D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT   = ( D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT + 1 ) ,
779   D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT + 1 ) ,
780   D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN + 1 ) ,
781   D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN   = ( D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN + 1 ) ,
782   D3D11_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN + 1 ) ,
783   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET + 1 ) ,
784   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC + 1 ) ,
785   D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC + 1 ) ,
786   D3D11_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW   = ( D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH + 1 ) ,
787   D3D11_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW + 1 ) ,
788   D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS + 1 ) ,
789   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH + 1 ) ,
790   D3D11_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH + 1 ) ,
791   D3D11_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY   = ( D3D11_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY + 1 ) ,
792   D3D11_MESSAGE_ID_CREATEQUERY_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY + 1 ) ,
793   D3D11_MESSAGE_ID_CREATEPREDICATE_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATEQUERY_OUTOFMEMORY_RETURN + 1 ) ,
794   D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFRANGE_COUNTER   = ( D3D11_MESSAGE_ID_CREATEPREDICATE_OUTOFMEMORY_RETURN + 1 ) ,
795   D3D11_MESSAGE_ID_CREATECOUNTER_SIMULTANEOUS_ACTIVE_COUNTERS_EXHAUSTED   = ( D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFRANGE_COUNTER + 1 ) ,
796   D3D11_MESSAGE_ID_CREATECOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER   = ( D3D11_MESSAGE_ID_CREATECOUNTER_SIMULTANEOUS_ACTIVE_COUNTERS_EXHAUSTED + 1 ) ,
797   D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATECOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER + 1 ) ,
798   D3D11_MESSAGE_ID_CREATECOUNTER_NONEXCLUSIVE_RETURN   = ( D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFMEMORY_RETURN + 1 ) ,
799   D3D11_MESSAGE_ID_CREATECOUNTER_NULLDESC   = ( D3D11_MESSAGE_ID_CREATECOUNTER_NONEXCLUSIVE_RETURN + 1 ) ,
800   D3D11_MESSAGE_ID_CHECKCOUNTER_OUTOFRANGE_COUNTER   = ( D3D11_MESSAGE_ID_CREATECOUNTER_NULLDESC + 1 ) ,
801   D3D11_MESSAGE_ID_CHECKCOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER   = ( D3D11_MESSAGE_ID_CHECKCOUNTER_OUTOFRANGE_COUNTER + 1 ) ,
802   D3D11_MESSAGE_ID_SETPREDICATION_INVALID_PREDICATE_STATE   = ( D3D11_MESSAGE_ID_CHECKCOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER + 1 ) ,
803   D3D11_MESSAGE_ID_QUERY_BEGIN_UNSUPPORTED   = ( D3D11_MESSAGE_ID_SETPREDICATION_INVALID_PREDICATE_STATE + 1 ) ,
804   D3D11_MESSAGE_ID_PREDICATE_BEGIN_DURING_PREDICATION   = ( D3D11_MESSAGE_ID_QUERY_BEGIN_UNSUPPORTED + 1 ) ,
805   D3D11_MESSAGE_ID_QUERY_BEGIN_DUPLICATE   = ( D3D11_MESSAGE_ID_PREDICATE_BEGIN_DURING_PREDICATION + 1 ) ,
806   D3D11_MESSAGE_ID_QUERY_BEGIN_ABANDONING_PREVIOUS_RESULTS   = ( D3D11_MESSAGE_ID_QUERY_BEGIN_DUPLICATE + 1 ) ,
807   D3D11_MESSAGE_ID_PREDICATE_END_DURING_PREDICATION   = ( D3D11_MESSAGE_ID_QUERY_BEGIN_ABANDONING_PREVIOUS_RESULTS + 1 ) ,
808   D3D11_MESSAGE_ID_QUERY_END_ABANDONING_PREVIOUS_RESULTS   = ( D3D11_MESSAGE_ID_PREDICATE_END_DURING_PREDICATION + 1 ) ,
809   D3D11_MESSAGE_ID_QUERY_END_WITHOUT_BEGIN   = ( D3D11_MESSAGE_ID_QUERY_END_ABANDONING_PREVIOUS_RESULTS + 1 ) ,
810   D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_DATASIZE   = ( D3D11_MESSAGE_ID_QUERY_END_WITHOUT_BEGIN + 1 ) ,
811   D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_FLAGS   = ( D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_DATASIZE + 1 ) ,
812   D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_CALL   = ( D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_FLAGS + 1 ) ,
813   D3D11_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH   = ( D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_CALL + 1 ) ,
814   D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH + 1 ) ,
815   D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED + 1 ) ,
816   D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN + 1 ) ,
817   D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE   = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE + 1 ) ,
818   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT   = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE + 1 ) ,
819   D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT + 1 ) ,
820   D3D11_MESSAGE_ID_D3D10_MESSAGES_END   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH + 1 ) ,
821   D3D11_MESSAGE_ID_D3D10L9_MESSAGES_START   = 0x100000,
822   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_STENCIL_NO_TWO_SIDED   = ( D3D11_MESSAGE_ID_D3D10L9_MESSAGES_START + 1 ) ,
823   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthBiasClamp_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_STENCIL_NO_TWO_SIDED + 1 ) ,
824   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_COMPARISON_SUPPORT   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthBiasClamp_NOT_SUPPORTED + 1 ) ,
825   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_EXCESSIVE_ANISOTROPY   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_COMPARISON_SUPPORT + 1 ) ,
826   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_OUT_OF_RANGE   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_EXCESSIVE_ANISOTROPY + 1 ) ,
827   D3D11_MESSAGE_ID_VSSETSAMPLERS_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_OUT_OF_RANGE + 1 ) ,
828   D3D11_MESSAGE_ID_VSSETSAMPLERS_TOO_MANY_SAMPLERS   = ( D3D11_MESSAGE_ID_VSSETSAMPLERS_NOT_SUPPORTED + 1 ) ,
829   D3D11_MESSAGE_ID_PSSETSAMPLERS_TOO_MANY_SAMPLERS   = ( D3D11_MESSAGE_ID_VSSETSAMPLERS_TOO_MANY_SAMPLERS + 1 ) ,
830   D3D11_MESSAGE_ID_CREATERESOURCE_NO_ARRAYS   = ( D3D11_MESSAGE_ID_PSSETSAMPLERS_TOO_MANY_SAMPLERS + 1 ) ,
831   D3D11_MESSAGE_ID_CREATERESOURCE_NO_VB_AND_IB_BIND   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_ARRAYS + 1 ) ,
832   D3D11_MESSAGE_ID_CREATERESOURCE_NO_TEXTURE_1D   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_VB_AND_IB_BIND + 1 ) ,
833   D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_OUT_OF_RANGE   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_TEXTURE_1D + 1 ) ,
834   D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_SHADER_RESOURCE   = ( D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_OUT_OF_RANGE + 1 ) ,
835   D3D11_MESSAGE_ID_OMSETRENDERTARGETS_TOO_MANY_RENDER_TARGETS   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_SHADER_RESOURCE + 1 ) ,
836   D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_DIFFERING_BIT_DEPTHS   = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_TOO_MANY_RENDER_TARGETS + 1 ) ,
837   D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_BAD_BUFFER_INDEX   = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_DIFFERING_BIT_DEPTHS + 1 ) ,
838   D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_TOO_MANY_VIEWPORTS   = ( D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_BAD_BUFFER_INDEX + 1 ) ,
839   D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_ADJACENCY_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_TOO_MANY_VIEWPORTS + 1 ) ,
840   D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_TOO_MANY_SCISSORS   = ( D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_ADJACENCY_UNSUPPORTED + 1 ) ,
841   D3D11_MESSAGE_ID_COPYRESOURCE_ONLY_TEXTURE_2D_WITHIN_GPU_MEMORY   = ( D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_TOO_MANY_SCISSORS + 1 ) ,
842   D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_3D_READBACK   = ( D3D11_MESSAGE_ID_COPYRESOURCE_ONLY_TEXTURE_2D_WITHIN_GPU_MEMORY + 1 ) ,
843   D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_ONLY_READBACK   = ( D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_3D_READBACK + 1 ) ,
844   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNSUPPORTED_FORMAT   = ( D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_ONLY_READBACK + 1 ) ,
845   D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_ALPHA_TO_COVERAGE   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNSUPPORTED_FORMAT + 1 ) ,
846   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthClipEnable_MUST_BE_TRUE   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_ALPHA_TO_COVERAGE + 1 ) ,
847   D3D11_MESSAGE_ID_DRAWINDEXED_STARTINDEXLOCATION_MUST_BE_POSITIVE   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthClipEnable_MUST_BE_TRUE + 1 ) ,
848   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_MUST_USE_LOWEST_LOD   = ( D3D11_MESSAGE_ID_DRAWINDEXED_STARTINDEXLOCATION_MUST_BE_POSITIVE + 1 ) ,
849   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MINLOD_MUST_NOT_BE_FRACTIONAL   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_MUST_USE_LOWEST_LOD + 1 ) ,
850   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MAXLOD_MUST_BE_FLT_MAX   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MINLOD_MUST_NOT_BE_FRACTIONAL + 1 ) ,
851   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_FIRSTARRAYSLICE_MUST_BE_ZERO   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MAXLOD_MUST_BE_FLT_MAX + 1 ) ,
852   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_CUBES_MUST_HAVE_6_SIDES   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_FIRSTARRAYSLICE_MUST_BE_ZERO + 1 ) ,
853   D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_RENDER_TARGET   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_CUBES_MUST_HAVE_6_SIDES + 1 ) ,
854   D3D11_MESSAGE_ID_CREATERESOURCE_NO_DWORD_INDEX_BUFFER   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_RENDER_TARGET + 1 ) ,
855   D3D11_MESSAGE_ID_CREATERESOURCE_MSAA_PRECLUDES_SHADER_RESOURCE   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_DWORD_INDEX_BUFFER + 1 ) ,
856   D3D11_MESSAGE_ID_CREATERESOURCE_PRESENTATION_PRECLUDES_SHADER_RESOURCE   = ( D3D11_MESSAGE_ID_CREATERESOURCE_MSAA_PRECLUDES_SHADER_RESOURCE + 1 ) ,
857   D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_BLEND_ENABLE   = ( D3D11_MESSAGE_ID_CREATERESOURCE_PRESENTATION_PRECLUDES_SHADER_RESOURCE + 1 ) ,
858   D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_WRITE_MASKS   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_BLEND_ENABLE + 1 ) ,
859   D3D11_MESSAGE_ID_CREATERESOURCE_NO_STREAM_OUT   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_WRITE_MASKS + 1 ) ,
860   D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_VB_IB_FOR_BUFFERS   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_STREAM_OUT + 1 ) ,
861   D3D11_MESSAGE_ID_CREATERESOURCE_NO_AUTOGEN_FOR_VOLUMES   = ( D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_VB_IB_FOR_BUFFERS + 1 ) ,
862   D3D11_MESSAGE_ID_CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_AUTOGEN_FOR_VOLUMES + 1 ) ,
863   D3D11_MESSAGE_ID_VSSHADERRESOURCES_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED + 1 ) ,
864   D3D11_MESSAGE_ID_GEOMETRY_SHADER_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_VSSHADERRESOURCES_NOT_SUPPORTED + 1 ) ,
865   D3D11_MESSAGE_ID_STREAM_OUT_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_GEOMETRY_SHADER_NOT_SUPPORTED + 1 ) ,
866   D3D11_MESSAGE_ID_TEXT_FILTER_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_STREAM_OUT_NOT_SUPPORTED + 1 ) ,
867   D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_SEPARATE_ALPHA_BLEND   = ( D3D11_MESSAGE_ID_TEXT_FILTER_NOT_SUPPORTED + 1 ) ,
868   D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_MRT_BLEND   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_SEPARATE_ALPHA_BLEND + 1 ) ,
869   D3D11_MESSAGE_ID_CREATEBLENDSTATE_OPERATION_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_MRT_BLEND + 1 ) ,
870   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_MIRRORONCE   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_OPERATION_NOT_SUPPORTED + 1 ) ,
871   D3D11_MESSAGE_ID_DRAWINSTANCED_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_MIRRORONCE + 1 ) ,
872   D3D11_MESSAGE_ID_DRAWINDEXEDINSTANCED_NOT_SUPPORTED_BELOW_9_3   = ( D3D11_MESSAGE_ID_DRAWINSTANCED_NOT_SUPPORTED + 1 ) ,
873   D3D11_MESSAGE_ID_DRAWINDEXED_POINTLIST_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DRAWINDEXEDINSTANCED_NOT_SUPPORTED_BELOW_9_3 + 1 ) ,
874   D3D11_MESSAGE_ID_SETBLENDSTATE_SAMPLE_MASK_CANNOT_BE_ZERO   = ( D3D11_MESSAGE_ID_DRAWINDEXED_POINTLIST_UNSUPPORTED + 1 ) ,
875   D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_EXCEEDS_FEATURE_LEVEL_DEFINITION   = ( D3D11_MESSAGE_ID_SETBLENDSTATE_SAMPLE_MASK_CANNOT_BE_ZERO + 1 ) ,
876   D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_SINGLE_MIP_LEVEL_DEPTH_STENCIL_SUPPORTED   = ( D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_EXCEEDS_FEATURE_LEVEL_DEFINITION + 1 ) ,
877   D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_NEGATIVESCISSOR   = ( D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_SINGLE_MIP_LEVEL_DEPTH_STENCIL_SUPPORTED + 1 ) ,
878   D3D11_MESSAGE_ID_SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA   = ( D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_NEGATIVESCISSOR + 1 ) ,
879   D3D11_MESSAGE_ID_CREATERESOURCE_NON_POW_2_MIPMAP   = ( D3D11_MESSAGE_ID_SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA + 1 ) ,
880   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NON_POW_2_MIPMAP + 1 ) ,
881   D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_SRGB_MRT   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_NOT_SUPPORTED + 1 ) ,
882   D3D11_MESSAGE_ID_D3D10L9_MESSAGES_END   = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_SRGB_MRT + 1 ) ,
883   D3D11_MESSAGE_ID_D3D11_MESSAGES_START   = 0x200000,
884   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_D3D11_MESSAGES_START + 1 ) ,
885   D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS + 1 ) ,
886   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE + 1 ) ,
887   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE + 1 ) ,
888   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS + 1 ) ,
889   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER + 1 ) ,
890   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS + 1 ) ,
891   D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE + 1 ) ,
892   D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_COMMANDLISTFLAGS   = ( D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE + 1 ) ,
893   D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_SINGLETHREADED   = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_COMMANDLISTFLAGS + 1 ) ,
894   D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_SINGLETHREADED + 1 ) ,
895   D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_CALL_RETURN   = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALIDARG_RETURN + 1 ) ,
896   D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_CALL_RETURN + 1 ) ,
897   D3D11_MESSAGE_ID_FINISHDISPLAYLIST_ONIMMEDIATECONTEXT   = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_OUTOFMEMORY_RETURN + 1 ) ,
898   D3D11_MESSAGE_ID_FINISHDISPLAYLIST_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_FINISHDISPLAYLIST_ONIMMEDIATECONTEXT + 1 ) ,
899   D3D11_MESSAGE_ID_FINISHDISPLAYLIST_INVALID_CALL_RETURN   = ( D3D11_MESSAGE_ID_FINISHDISPLAYLIST_OUTOFMEMORY_RETURN + 1 ) ,
900   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM   = ( D3D11_MESSAGE_ID_FINISHDISPLAYLIST_INVALID_CALL_RETURN + 1 ) ,
901   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM + 1 ) ,
902   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES + 1 ) ,
903   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES + 1 ) ,
904   D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_HAZARD   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES + 1 ) ,
905   D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_HAZARD + 1 ) ,
906   D3D11_MESSAGE_ID_HSSETSHADERRESOURCES_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_HAZARD + 1 ) ,
907   D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_HSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) ,
908   D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL   = ( D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) ,
909   D3D11_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL + 1 ) ,
910   D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE   = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY + 1 ) ,
911   D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE   = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE + 1 ) ,
912   D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE + 1 ) ,
913   D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE + 1 ) ,
914   D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
915   D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) ,
916   D3D11_MESSAGE_ID_DEVICE_HSSETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
917   D3D11_MESSAGE_ID_DEVICE_HSGETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_HSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
918   D3D11_MESSAGE_ID_DEVICE_HSGETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_HSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
919   D3D11_MESSAGE_ID_DEVICE_HSGETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_HSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
920   D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_HSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
921   D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_HAZARD + 1 ) ,
922   D3D11_MESSAGE_ID_DSSETSHADERRESOURCES_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_HAZARD + 1 ) ,
923   D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_DSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) ,
924   D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL   = ( D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) ,
925   D3D11_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL + 1 ) ,
926   D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE   = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY + 1 ) ,
927   D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE   = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE + 1 ) ,
928   D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE + 1 ) ,
929   D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE + 1 ) ,
930   D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
931   D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) ,
932   D3D11_MESSAGE_ID_DEVICE_DSSETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
933   D3D11_MESSAGE_ID_DEVICE_DSGETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_DSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
934   D3D11_MESSAGE_ID_DEVICE_DSGETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_DSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
935   D3D11_MESSAGE_ID_DEVICE_DSGETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_DSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
936   D3D11_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
937   D3D11_MESSAGE_ID_DEFERRED_CONTEXT_REMOVAL_PROCESS_AT_FAULT   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH + 1 ) ,
938   D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER   = ( D3D11_MESSAGE_ID_DEFERRED_CONTEXT_REMOVAL_PROCESS_AT_FAULT + 1 ) ,
939   D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER + 1 ) ,
940   D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED + 1 ) ,
941   D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW + 1 ) ,
942   D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE + 1 ) ,
943   D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE + 1 ) ,
944   D3D11_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED   = ( D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS + 1 ) ,
945   D3D11_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN   = ( D3D11_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED + 1 ) ,
946   D3D11_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN + 1 ) ,
947   D3D11_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD   = ( D3D11_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN + 1 ) ,
948   D3D11_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD + 1 ) ,
949   D3D11_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED   = ( D3D11_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE + 1 ) ,
950   D3D11_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS   = ( D3D11_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED + 1 ) ,
951   D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS + 1 ) ,
952   D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED + 1 ) ,
953   D3D11_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH + 1 ) ,
954   D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH + 1 ) ,
955   D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH + 1 ) ,
956   D3D11_MESSAGE_ID_CREATE_CONTEXT   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH + 1 ) ,
957   D3D11_MESSAGE_ID_LIVE_CONTEXT   = ( D3D11_MESSAGE_ID_CREATE_CONTEXT + 1 ) ,
958   D3D11_MESSAGE_ID_DESTROY_CONTEXT   = ( D3D11_MESSAGE_ID_LIVE_CONTEXT + 1 ) ,
959   D3D11_MESSAGE_ID_CREATE_BUFFER   = ( D3D11_MESSAGE_ID_DESTROY_CONTEXT + 1 ) ,
960   D3D11_MESSAGE_ID_LIVE_BUFFER   = ( D3D11_MESSAGE_ID_CREATE_BUFFER + 1 ) ,
961   D3D11_MESSAGE_ID_DESTROY_BUFFER   = ( D3D11_MESSAGE_ID_LIVE_BUFFER + 1 ) ,
962   D3D11_MESSAGE_ID_CREATE_TEXTURE1D   = ( D3D11_MESSAGE_ID_DESTROY_BUFFER + 1 ) ,
963   D3D11_MESSAGE_ID_LIVE_TEXTURE1D   = ( D3D11_MESSAGE_ID_CREATE_TEXTURE1D + 1 ) ,
964   D3D11_MESSAGE_ID_DESTROY_TEXTURE1D   = ( D3D11_MESSAGE_ID_LIVE_TEXTURE1D + 1 ) ,
965   D3D11_MESSAGE_ID_CREATE_TEXTURE2D   = ( D3D11_MESSAGE_ID_DESTROY_TEXTURE1D + 1 ) ,
966   D3D11_MESSAGE_ID_LIVE_TEXTURE2D   = ( D3D11_MESSAGE_ID_CREATE_TEXTURE2D + 1 ) ,
967   D3D11_MESSAGE_ID_DESTROY_TEXTURE2D   = ( D3D11_MESSAGE_ID_LIVE_TEXTURE2D + 1 ) ,
968   D3D11_MESSAGE_ID_CREATE_TEXTURE3D   = ( D3D11_MESSAGE_ID_DESTROY_TEXTURE2D + 1 ) ,
969   D3D11_MESSAGE_ID_LIVE_TEXTURE3D   = ( D3D11_MESSAGE_ID_CREATE_TEXTURE3D + 1 ) ,
970   D3D11_MESSAGE_ID_DESTROY_TEXTURE3D   = ( D3D11_MESSAGE_ID_LIVE_TEXTURE3D + 1 ) ,
971   D3D11_MESSAGE_ID_CREATE_SHADERRESOURCEVIEW   = ( D3D11_MESSAGE_ID_DESTROY_TEXTURE3D + 1 ) ,
972   D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW   = ( D3D11_MESSAGE_ID_CREATE_SHADERRESOURCEVIEW + 1 ) ,
973   D3D11_MESSAGE_ID_DESTROY_SHADERRESOURCEVIEW   = ( D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW + 1 ) ,
974   D3D11_MESSAGE_ID_CREATE_RENDERTARGETVIEW   = ( D3D11_MESSAGE_ID_DESTROY_SHADERRESOURCEVIEW + 1 ) ,
975   D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW   = ( D3D11_MESSAGE_ID_CREATE_RENDERTARGETVIEW + 1 ) ,
976   D3D11_MESSAGE_ID_DESTROY_RENDERTARGETVIEW   = ( D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW + 1 ) ,
977   D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILVIEW   = ( D3D11_MESSAGE_ID_DESTROY_RENDERTARGETVIEW + 1 ) ,
978   D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW   = ( D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILVIEW + 1 ) ,
979   D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILVIEW   = ( D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW + 1 ) ,
980   D3D11_MESSAGE_ID_CREATE_VERTEXSHADER   = ( D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILVIEW + 1 ) ,
981   D3D11_MESSAGE_ID_LIVE_VERTEXSHADER   = ( D3D11_MESSAGE_ID_CREATE_VERTEXSHADER + 1 ) ,
982   D3D11_MESSAGE_ID_DESTROY_VERTEXSHADER   = ( D3D11_MESSAGE_ID_LIVE_VERTEXSHADER + 1 ) ,
983   D3D11_MESSAGE_ID_CREATE_HULLSHADER   = ( D3D11_MESSAGE_ID_DESTROY_VERTEXSHADER + 1 ) ,
984   D3D11_MESSAGE_ID_LIVE_HULLSHADER   = ( D3D11_MESSAGE_ID_CREATE_HULLSHADER + 1 ) ,
985   D3D11_MESSAGE_ID_DESTROY_HULLSHADER   = ( D3D11_MESSAGE_ID_LIVE_HULLSHADER + 1 ) ,
986   D3D11_MESSAGE_ID_CREATE_DOMAINSHADER   = ( D3D11_MESSAGE_ID_DESTROY_HULLSHADER + 1 ) ,
987   D3D11_MESSAGE_ID_LIVE_DOMAINSHADER   = ( D3D11_MESSAGE_ID_CREATE_DOMAINSHADER + 1 ) ,
988   D3D11_MESSAGE_ID_DESTROY_DOMAINSHADER   = ( D3D11_MESSAGE_ID_LIVE_DOMAINSHADER + 1 ) ,
989   D3D11_MESSAGE_ID_CREATE_GEOMETRYSHADER   = ( D3D11_MESSAGE_ID_DESTROY_DOMAINSHADER + 1 ) ,
990   D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER   = ( D3D11_MESSAGE_ID_CREATE_GEOMETRYSHADER + 1 ) ,
991   D3D11_MESSAGE_ID_DESTROY_GEOMETRYSHADER   = ( D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER + 1 ) ,
992   D3D11_MESSAGE_ID_CREATE_PIXELSHADER   = ( D3D11_MESSAGE_ID_DESTROY_GEOMETRYSHADER + 1 ) ,
993   D3D11_MESSAGE_ID_LIVE_PIXELSHADER   = ( D3D11_MESSAGE_ID_CREATE_PIXELSHADER + 1 ) ,
994   D3D11_MESSAGE_ID_DESTROY_PIXELSHADER   = ( D3D11_MESSAGE_ID_LIVE_PIXELSHADER + 1 ) ,
995   D3D11_MESSAGE_ID_CREATE_INPUTLAYOUT   = ( D3D11_MESSAGE_ID_DESTROY_PIXELSHADER + 1 ) ,
996   D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT   = ( D3D11_MESSAGE_ID_CREATE_INPUTLAYOUT + 1 ) ,
997   D3D11_MESSAGE_ID_DESTROY_INPUTLAYOUT   = ( D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT + 1 ) ,
998   D3D11_MESSAGE_ID_CREATE_SAMPLER   = ( D3D11_MESSAGE_ID_DESTROY_INPUTLAYOUT + 1 ) ,
999   D3D11_MESSAGE_ID_LIVE_SAMPLER   = ( D3D11_MESSAGE_ID_CREATE_SAMPLER + 1 ) ,
1000   D3D11_MESSAGE_ID_DESTROY_SAMPLER   = ( D3D11_MESSAGE_ID_LIVE_SAMPLER + 1 ) ,
1001   D3D11_MESSAGE_ID_CREATE_BLENDSTATE   = ( D3D11_MESSAGE_ID_DESTROY_SAMPLER + 1 ) ,
1002   D3D11_MESSAGE_ID_LIVE_BLENDSTATE   = ( D3D11_MESSAGE_ID_CREATE_BLENDSTATE + 1 ) ,
1003   D3D11_MESSAGE_ID_DESTROY_BLENDSTATE   = ( D3D11_MESSAGE_ID_LIVE_BLENDSTATE + 1 ) ,
1004   D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILSTATE   = ( D3D11_MESSAGE_ID_DESTROY_BLENDSTATE + 1 ) ,
1005   D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE   = ( D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILSTATE + 1 ) ,
1006   D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILSTATE   = ( D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE + 1 ) ,
1007   D3D11_MESSAGE_ID_CREATE_RASTERIZERSTATE   = ( D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILSTATE + 1 ) ,
1008   D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE   = ( D3D11_MESSAGE_ID_CREATE_RASTERIZERSTATE + 1 ) ,
1009   D3D11_MESSAGE_ID_DESTROY_RASTERIZERSTATE   = ( D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE + 1 ) ,
1010   D3D11_MESSAGE_ID_CREATE_QUERY   = ( D3D11_MESSAGE_ID_DESTROY_RASTERIZERSTATE + 1 ) ,
1011   D3D11_MESSAGE_ID_LIVE_QUERY   = ( D3D11_MESSAGE_ID_CREATE_QUERY + 1 ) ,
1012   D3D11_MESSAGE_ID_DESTROY_QUERY   = ( D3D11_MESSAGE_ID_LIVE_QUERY + 1 ) ,
1013   D3D11_MESSAGE_ID_CREATE_PREDICATE   = ( D3D11_MESSAGE_ID_DESTROY_QUERY + 1 ) ,
1014   D3D11_MESSAGE_ID_LIVE_PREDICATE   = ( D3D11_MESSAGE_ID_CREATE_PREDICATE + 1 ) ,
1015   D3D11_MESSAGE_ID_DESTROY_PREDICATE   = ( D3D11_MESSAGE_ID_LIVE_PREDICATE + 1 ) ,
1016   D3D11_MESSAGE_ID_CREATE_COUNTER   = ( D3D11_MESSAGE_ID_DESTROY_PREDICATE + 1 ) ,
1017   D3D11_MESSAGE_ID_LIVE_COUNTER   = ( D3D11_MESSAGE_ID_CREATE_COUNTER + 1 ) ,
1018   D3D11_MESSAGE_ID_DESTROY_COUNTER   = ( D3D11_MESSAGE_ID_LIVE_COUNTER + 1 ) ,
1019   D3D11_MESSAGE_ID_CREATE_COMMANDLIST   = ( D3D11_MESSAGE_ID_DESTROY_COUNTER + 1 ) ,
1020   D3D11_MESSAGE_ID_LIVE_COMMANDLIST   = ( D3D11_MESSAGE_ID_CREATE_COMMANDLIST + 1 ) ,
1021   D3D11_MESSAGE_ID_DESTROY_COMMANDLIST   = ( D3D11_MESSAGE_ID_LIVE_COMMANDLIST + 1 ) ,
1022   D3D11_MESSAGE_ID_CREATE_CLASSINSTANCE   = ( D3D11_MESSAGE_ID_DESTROY_COMMANDLIST + 1 ) ,
1023   D3D11_MESSAGE_ID_LIVE_CLASSINSTANCE   = ( D3D11_MESSAGE_ID_CREATE_CLASSINSTANCE + 1 ) ,
1024   D3D11_MESSAGE_ID_DESTROY_CLASSINSTANCE   = ( D3D11_MESSAGE_ID_LIVE_CLASSINSTANCE + 1 ) ,
1025   D3D11_MESSAGE_ID_CREATE_CLASSLINKAGE   = ( D3D11_MESSAGE_ID_DESTROY_CLASSINSTANCE + 1 ) ,
1026   D3D11_MESSAGE_ID_LIVE_CLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATE_CLASSLINKAGE + 1 ) ,
1027   D3D11_MESSAGE_ID_DESTROY_CLASSLINKAGE   = ( D3D11_MESSAGE_ID_LIVE_CLASSLINKAGE + 1 ) ,
1028   D3D11_MESSAGE_ID_LIVE_DEVICE   = ( D3D11_MESSAGE_ID_DESTROY_CLASSLINKAGE + 1 ) ,
1029   D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY   = ( D3D11_MESSAGE_ID_LIVE_DEVICE + 1 ) ,
1030   D3D11_MESSAGE_ID_CREATE_COMPUTESHADER   = ( D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY + 1 ) ,
1031   D3D11_MESSAGE_ID_LIVE_COMPUTESHADER   = ( D3D11_MESSAGE_ID_CREATE_COMPUTESHADER + 1 ) ,
1032   D3D11_MESSAGE_ID_DESTROY_COMPUTESHADER   = ( D3D11_MESSAGE_ID_LIVE_COMPUTESHADER + 1 ) ,
1033   D3D11_MESSAGE_ID_CREATE_UNORDEREDACCESSVIEW   = ( D3D11_MESSAGE_ID_DESTROY_COMPUTESHADER + 1 ) ,
1034   D3D11_MESSAGE_ID_LIVE_UNORDEREDACCESSVIEW   = ( D3D11_MESSAGE_ID_CREATE_UNORDEREDACCESSVIEW + 1 ) ,
1035   D3D11_MESSAGE_ID_DESTROY_UNORDEREDACCESSVIEW   = ( D3D11_MESSAGE_ID_LIVE_UNORDEREDACCESSVIEW + 1 ) ,
1036   D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACES_FEATURELEVEL   = ( D3D11_MESSAGE_ID_DESTROY_UNORDEREDACCESSVIEW + 1 ) ,
1037   D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACE_COUNT_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACES_FEATURELEVEL + 1 ) ,
1038   D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACE_COUNT_MISMATCH + 1 ) ,
1039   D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_INDEX   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE + 1 ) ,
1040   D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_TYPE   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_INDEX + 1 ) ,
1041   D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_DATA   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_TYPE + 1 ) ,
1042   D3D11_MESSAGE_ID_DEVICE_SETSHADER_UNBOUND_INSTANCE_DATA   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_DATA + 1 ) ,
1043   D3D11_MESSAGE_ID_DEVICE_SETSHADER_INSTANCE_DATA_BINDINGS   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_UNBOUND_INSTANCE_DATA + 1 ) ,
1044   D3D11_MESSAGE_ID_DEVICE_CREATESHADER_CLASSLINKAGE_FULL   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INSTANCE_DATA_BINDINGS + 1 ) ,
1045   D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE   = ( D3D11_MESSAGE_ID_DEVICE_CREATESHADER_CLASSLINKAGE_FULL + 1 ) ,
1046   D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE   = ( D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE + 1 ) ,
1047   D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE + 1 ) ,
1048   D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN + 1 ) ,
1049   D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_HAZARD + 1 ) ,
1050   D3D11_MESSAGE_ID_CSSETSHADERRESOURCES_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_HAZARD + 1 ) ,
1051   D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_CSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) ,
1052   D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL   = ( D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) ,
1053   D3D11_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL + 1 ) ,
1054   D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE   = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY + 1 ) ,
1055   D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERTYPE   = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE + 1 ) ,
1056   D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERTYPE + 1 ) ,
1057   D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE + 1 ) ,
1058   D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
1059   D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) ,
1060   D3D11_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
1061   D3D11_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
1062   D3D11_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
1063   D3D11_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
1064   D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
1065   D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) ,
1066   D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) ,
1067   D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) ,
1068   D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) ,
1069   D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) ,
1070   D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) ,
1071   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE   = ( D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) ,
1072   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE + 1 ) ,
1073   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS + 1 ) ,
1074   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE + 1 ) ,
1075   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC + 1 ) ,
1076   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT + 1 ) ,
1077   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS + 1 ) ,
1078   D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_HAZARD   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT + 1 ) ,
1079   D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS   = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_HAZARD + 1 ) ,
1080   D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP   = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS + 1 ) ,
1081   D3D11_MESSAGE_ID_CSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP + 1 ) ,
1082   D3D11_MESSAGE_ID_PSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_CSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT + 1 ) ,
1083   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_PSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT + 1 ) ,
1084   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN + 1 ) ,
1085   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN + 1 ) ,
1086   D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_HAZARD   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_TOOMANYOBJECTS + 1 ) ,
1087   D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH   = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_HAZARD + 1 ) ,
1088   D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH + 1 ) ,
1089   D3D11_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY + 1 ) ,
1090   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY + 1 ) ,
1091   D3D11_MESSAGE_ID_CREATESHADERRESESOURCEVIEW_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS + 1 ) ,
1092   D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER   = ( D3D11_MESSAGE_ID_CREATESHADERRESESOURCEVIEW_TOOMANYOBJECTS + 1 ) ,
1093   D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER + 1 ) ,
1094   D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED + 1 ) ,
1095   D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDCONTEXT   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW + 1 ) ,
1096   D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDRESOURCE   = ( D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDCONTEXT + 1 ) ,
1097   D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDMINLOD   = ( D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDRESOURCE + 1 ) ,
1098   D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDCONTEXT   = ( D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDMINLOD + 1 ) ,
1099   D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDRESOURCE   = ( D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDCONTEXT + 1 ) ,
1100   D3D11_MESSAGE_ID_OMSETDEPTHSTENCIL_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDRESOURCE + 1 ) ,
1101   D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY   = ( D3D11_MESSAGE_ID_OMSETDEPTHSTENCIL_UNBINDDELETINGOBJECT + 1 ) ,
1102   D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY   = ( D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY + 1 ) ,
1103   D3D11_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED   = ( D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY + 1 ) ,
1104   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH   = ( D3D11_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED + 1 ) ,
1105   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH + 1 ) ,
1106   D3D11_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET + 1 ) ,
1107   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP + 1 ) ,
1108   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH + 1 ) ,
1109   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED + 1 ) ,
1110   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED + 1 ) ,
1111   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH + 1 ) ,
1112   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH + 1 ) ,
1113   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED + 1 ) ,
1114   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED + 1 ) ,
1115   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED + 1 ) ,
1116   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED + 1 ) ,
1117   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED + 1 ) ,
1118   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED + 1 ) ,
1119   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED + 1 ) ,
1120   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED + 1 ) ,
1121   D3D11_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED + 1 ) ,
1122   D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED + 1 ) ,
1123   D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW + 1 ) ,
1124   D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO + 1 ) ,
1125   D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH + 1 ) ,
1126   D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH + 1 ) ,
1127   D3D11_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED + 1 ) ,
1128   D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED + 1 ) ,
1129   D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED + 1 ) ,
1130   D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET   = ( D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET + 1 ) ,
1131   D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE   = ( D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET + 1 ) ,
1132   D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE   = ( D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE + 1 ) ,
1133   D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE + 1 ) ,
1134   D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDVIEW   = ( D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED + 1 ) ,
1135   D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDOFFSET   = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDVIEW + 1 ) ,
1136   D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_TOOMANYVIEWS   = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDOFFSET + 1 ) ,
1137   D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT   = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_TOOMANYVIEWS + 1 ) ,
1138   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED   = ( D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT + 1 ) ,
1139   D3D11_MESSAGE_ID_REF_WARNING   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED + 1 ) ,
1140   D3D11_MESSAGE_ID_D3D11_MESSAGES_END   = ( D3D11_MESSAGE_ID_REF_WARNING + 1 )
1141    }    D3D11_MESSAGE_ID;
1142
1143typedef struct D3D11_MESSAGE
1144    {
1145    D3D11_MESSAGE_CATEGORY Category;
1146    D3D11_MESSAGE_SEVERITY Severity;
1147    D3D11_MESSAGE_ID ID;
1148    const char *pDescription;
1149    SIZE_T DescriptionByteLength;
1150    }    D3D11_MESSAGE;
1151
1152typedef struct D3D11_INFO_QUEUE_FILTER_DESC
1153    {
1154    UINT NumCategories;
1155    D3D11_MESSAGE_CATEGORY *pCategoryList;
1156    UINT NumSeverities;
1157    D3D11_MESSAGE_SEVERITY *pSeverityList;
1158    UINT NumIDs;
1159    D3D11_MESSAGE_ID *pIDList;
1160    }    D3D11_INFO_QUEUE_FILTER_DESC;
1161
1162typedef struct D3D11_INFO_QUEUE_FILTER
1163    {
1164    D3D11_INFO_QUEUE_FILTER_DESC AllowList;
1165    D3D11_INFO_QUEUE_FILTER_DESC DenyList;
1166    }    D3D11_INFO_QUEUE_FILTER;
1167
1168#define D3D11_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024
1169
1170
1171extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0002_v0_0_c_ifspec;
1172extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0002_v0_0_s_ifspec;
1173
1174#ifndef __ID3D11InfoQueue_INTERFACE_DEFINED__
1175#define __ID3D11InfoQueue_INTERFACE_DEFINED__
1176
1177/* interface ID3D11InfoQueue */
1178/* [unique][local][object][uuid] */
1179
1180
1181EXTERN_C const IID IID_ID3D11InfoQueue;
1182
1183#if defined(__cplusplus) && !defined(CINTERFACE)
1184   
1185    MIDL_INTERFACE("6543dbb6-1b48-42f5-ab82-e97ec74326f6")
1186    ID3D11InfoQueue : public IUnknown
1187    {
1188    public:
1189        virtual HRESULT STDMETHODCALLTYPE SetMessageCountLimit(
1190            /* [annotation] */
1191            __in  UINT64 MessageCountLimit) = 0;
1192       
1193        virtual void STDMETHODCALLTYPE ClearStoredMessages( void) = 0;
1194       
1195        virtual HRESULT STDMETHODCALLTYPE GetMessage(
1196            /* [annotation] */
1197            __in  UINT64 MessageIndex,
1198            /* [annotation] */
1199            __out_bcount_opt(*pMessageByteLength)  D3D11_MESSAGE *pMessage,
1200            /* [annotation] */
1201            __inout  SIZE_T *pMessageByteLength) = 0;
1202       
1203        virtual UINT64 STDMETHODCALLTYPE GetNumMessagesAllowedByStorageFilter( void) = 0;
1204       
1205        virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDeniedByStorageFilter( void) = 0;
1206       
1207        virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessages( void) = 0;
1208       
1209        virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessagesAllowedByRetrievalFilter( void) = 0;
1210       
1211        virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDiscardedByMessageCountLimit( void) = 0;
1212       
1213        virtual UINT64 STDMETHODCALLTYPE GetMessageCountLimit( void) = 0;
1214       
1215        virtual HRESULT STDMETHODCALLTYPE AddStorageFilterEntries(
1216            /* [annotation] */
1217            __in  D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
1218       
1219        virtual HRESULT STDMETHODCALLTYPE GetStorageFilter(
1220            /* [annotation] */
1221            __out_bcount_opt(*pFilterByteLength)  D3D11_INFO_QUEUE_FILTER *pFilter,
1222            /* [annotation] */
1223            __inout  SIZE_T *pFilterByteLength) = 0;
1224       
1225        virtual void STDMETHODCALLTYPE ClearStorageFilter( void) = 0;
1226       
1227        virtual HRESULT STDMETHODCALLTYPE PushEmptyStorageFilter( void) = 0;
1228       
1229        virtual HRESULT STDMETHODCALLTYPE PushCopyOfStorageFilter( void) = 0;
1230       
1231        virtual HRESULT STDMETHODCALLTYPE PushStorageFilter(
1232            /* [annotation] */
1233            __in  D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
1234       
1235        virtual void STDMETHODCALLTYPE PopStorageFilter( void) = 0;
1236       
1237        virtual UINT STDMETHODCALLTYPE GetStorageFilterStackSize( void) = 0;
1238       
1239        virtual HRESULT STDMETHODCALLTYPE AddRetrievalFilterEntries(
1240            /* [annotation] */
1241            __in  D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
1242       
1243        virtual HRESULT STDMETHODCALLTYPE GetRetrievalFilter(
1244            /* [annotation] */
1245            __out_bcount_opt(*pFilterByteLength)  D3D11_INFO_QUEUE_FILTER *pFilter,
1246            /* [annotation] */
1247            __inout  SIZE_T *pFilterByteLength) = 0;
1248       
1249        virtual void STDMETHODCALLTYPE ClearRetrievalFilter( void) = 0;
1250       
1251        virtual HRESULT STDMETHODCALLTYPE PushEmptyRetrievalFilter( void) = 0;
1252       
1253        virtual HRESULT STDMETHODCALLTYPE PushCopyOfRetrievalFilter( void) = 0;
1254       
1255        virtual HRESULT STDMETHODCALLTYPE PushRetrievalFilter(
1256            /* [annotation] */
1257            __in  D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
1258       
1259        virtual void STDMETHODCALLTYPE PopRetrievalFilter( void) = 0;
1260       
1261        virtual UINT STDMETHODCALLTYPE GetRetrievalFilterStackSize( void) = 0;
1262       
1263        virtual HRESULT STDMETHODCALLTYPE AddMessage(
1264            /* [annotation] */
1265            __in  D3D11_MESSAGE_CATEGORY Category,
1266            /* [annotation] */
1267            __in  D3D11_MESSAGE_SEVERITY Severity,
1268            /* [annotation] */
1269            __in  D3D11_MESSAGE_ID ID,
1270            /* [annotation] */
1271            __in  LPCSTR pDescription) = 0;
1272       
1273        virtual HRESULT STDMETHODCALLTYPE AddApplicationMessage(
1274            /* [annotation] */
1275            __in  D3D11_MESSAGE_SEVERITY Severity,
1276            /* [annotation] */
1277            __in  LPCSTR pDescription) = 0;
1278       
1279        virtual HRESULT STDMETHODCALLTYPE SetBreakOnCategory(
1280            /* [annotation] */
1281            __in  D3D11_MESSAGE_CATEGORY Category,
1282            /* [annotation] */
1283            __in  BOOL bEnable) = 0;
1284       
1285        virtual HRESULT STDMETHODCALLTYPE SetBreakOnSeverity(
1286            /* [annotation] */
1287            __in  D3D11_MESSAGE_SEVERITY Severity,
1288            /* [annotation] */
1289            __in  BOOL bEnable) = 0;
1290       
1291        virtual HRESULT STDMETHODCALLTYPE SetBreakOnID(
1292            /* [annotation] */
1293            __in  D3D11_MESSAGE_ID ID,
1294            /* [annotation] */
1295            __in  BOOL bEnable) = 0;
1296       
1297        virtual BOOL STDMETHODCALLTYPE GetBreakOnCategory(
1298            /* [annotation] */
1299            __in  D3D11_MESSAGE_CATEGORY Category) = 0;
1300       
1301        virtual BOOL STDMETHODCALLTYPE GetBreakOnSeverity(
1302            /* [annotation] */
1303            __in  D3D11_MESSAGE_SEVERITY Severity) = 0;
1304       
1305        virtual BOOL STDMETHODCALLTYPE GetBreakOnID(
1306            /* [annotation] */
1307            __in  D3D11_MESSAGE_ID ID) = 0;
1308       
1309        virtual void STDMETHODCALLTYPE SetMuteDebugOutput(
1310            /* [annotation] */
1311            __in  BOOL bMute) = 0;
1312       
1313        virtual BOOL STDMETHODCALLTYPE GetMuteDebugOutput( void) = 0;
1314       
1315    };
1316   
1317#else    /* C style interface */
1318
1319    typedef struct ID3D11InfoQueueVtbl
1320    {
1321        BEGIN_INTERFACE
1322       
1323        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1324            ID3D11InfoQueue * This,
1325            /* [in] */ REFIID riid,
1326            /* [annotation][iid_is][out] */
1327            __RPC__deref_out  void **ppvObject);
1328       
1329        ULONG ( STDMETHODCALLTYPE *AddRef )(
1330            ID3D11InfoQueue * This);
1331       
1332        ULONG ( STDMETHODCALLTYPE *Release )(
1333            ID3D11InfoQueue * This);
1334       
1335        HRESULT ( STDMETHODCALLTYPE *SetMessageCountLimit )(
1336            ID3D11InfoQueue * This,
1337            /* [annotation] */
1338            __in  UINT64 MessageCountLimit);
1339       
1340        void ( STDMETHODCALLTYPE *ClearStoredMessages )(
1341            ID3D11InfoQueue * This);
1342       
1343        HRESULT ( STDMETHODCALLTYPE *GetMessage )(
1344            ID3D11InfoQueue * This,
1345            /* [annotation] */
1346            __in  UINT64 MessageIndex,
1347            /* [annotation] */
1348            __out_bcount_opt(*pMessageByteLength)  D3D11_MESSAGE *pMessage,
1349            /* [annotation] */
1350            __inout  SIZE_T *pMessageByteLength);
1351       
1352        UINT64 ( STDMETHODCALLTYPE *GetNumMessagesAllowedByStorageFilter )(
1353            ID3D11InfoQueue * This);
1354       
1355        UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDeniedByStorageFilter )(
1356            ID3D11InfoQueue * This);
1357       
1358        UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessages )(
1359            ID3D11InfoQueue * This);
1360       
1361        UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessagesAllowedByRetrievalFilter )(
1362            ID3D11InfoQueue * This);
1363       
1364        UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDiscardedByMessageCountLimit )(
1365            ID3D11InfoQueue * This);
1366       
1367        UINT64 ( STDMETHODCALLTYPE *GetMessageCountLimit )(
1368            ID3D11InfoQueue * This);
1369       
1370        HRESULT ( STDMETHODCALLTYPE *AddStorageFilterEntries )(
1371            ID3D11InfoQueue * This,
1372            /* [annotation] */
1373            __in  D3D11_INFO_QUEUE_FILTER *pFilter);
1374       
1375        HRESULT ( STDMETHODCALLTYPE *GetStorageFilter )(
1376            ID3D11InfoQueue * This,
1377            /* [annotation] */
1378            __out_bcount_opt(*pFilterByteLength)  D3D11_INFO_QUEUE_FILTER *pFilter,
1379            /* [annotation] */
1380            __inout  SIZE_T *pFilterByteLength);
1381       
1382        void ( STDMETHODCALLTYPE *ClearStorageFilter )(
1383            ID3D11InfoQueue * This);
1384       
1385        HRESULT ( STDMETHODCALLTYPE *PushEmptyStorageFilter )(
1386            ID3D11InfoQueue * This);
1387       
1388        HRESULT ( STDMETHODCALLTYPE *PushCopyOfStorageFilter )(
1389            ID3D11InfoQueue * This);
1390       
1391        HRESULT ( STDMETHODCALLTYPE *PushStorageFilter )(
1392            ID3D11InfoQueue * This,
1393            /* [annotation] */
1394            __in  D3D11_INFO_QUEUE_FILTER *pFilter);
1395       
1396        void ( STDMETHODCALLTYPE *PopStorageFilter )(
1397            ID3D11InfoQueue * This);
1398       
1399        UINT ( STDMETHODCALLTYPE *GetStorageFilterStackSize )(
1400            ID3D11InfoQueue * This);
1401       
1402        HRESULT ( STDMETHODCALLTYPE *AddRetrievalFilterEntries )(
1403            ID3D11InfoQueue * This,
1404            /* [annotation] */
1405            __in  D3D11_INFO_QUEUE_FILTER *pFilter);
1406       
1407        HRESULT ( STDMETHODCALLTYPE *GetRetrievalFilter )(
1408            ID3D11InfoQueue * This,
1409            /* [annotation] */
1410            __out_bcount_opt(*pFilterByteLength)  D3D11_INFO_QUEUE_FILTER *pFilter,
1411            /* [annotation] */
1412            __inout  SIZE_T *pFilterByteLength);
1413       
1414        void ( STDMETHODCALLTYPE *ClearRetrievalFilter )(
1415            ID3D11InfoQueue * This);
1416       
1417        HRESULT ( STDMETHODCALLTYPE *PushEmptyRetrievalFilter )(
1418            ID3D11InfoQueue * This);
1419       
1420        HRESULT ( STDMETHODCALLTYPE *PushCopyOfRetrievalFilter )(
1421            ID3D11InfoQueue * This);
1422       
1423        HRESULT ( STDMETHODCALLTYPE *PushRetrievalFilter )(
1424            ID3D11InfoQueue * This,
1425            /* [annotation] */
1426            __in  D3D11_INFO_QUEUE_FILTER *pFilter);
1427       
1428        void ( STDMETHODCALLTYPE *PopRetrievalFilter )(
1429            ID3D11InfoQueue * This);
1430       
1431        UINT ( STDMETHODCALLTYPE *GetRetrievalFilterStackSize )(
1432            ID3D11InfoQueue * This);
1433       
1434        HRESULT ( STDMETHODCALLTYPE *AddMessage )(
1435            ID3D11InfoQueue * This,
1436            /* [annotation] */
1437            __in  D3D11_MESSAGE_CATEGORY Category,
1438            /* [annotation] */
1439            __in  D3D11_MESSAGE_SEVERITY Severity,
1440            /* [annotation] */
1441            __in  D3D11_MESSAGE_ID ID,
1442            /* [annotation] */
1443            __in  LPCSTR pDescription);
1444       
1445        HRESULT ( STDMETHODCALLTYPE *AddApplicationMessage )(
1446            ID3D11InfoQueue * This,
1447            /* [annotation] */
1448            __in  D3D11_MESSAGE_SEVERITY Severity,
1449            /* [annotation] */
1450            __in  LPCSTR pDescription);
1451       
1452        HRESULT ( STDMETHODCALLTYPE *SetBreakOnCategory )(
1453            ID3D11InfoQueue * This,
1454            /* [annotation] */
1455            __in  D3D11_MESSAGE_CATEGORY Category,
1456            /* [annotation] */
1457            __in  BOOL bEnable);
1458       
1459        HRESULT ( STDMETHODCALLTYPE *SetBreakOnSeverity )(
1460            ID3D11InfoQueue * This,
1461            /* [annotation] */
1462            __in  D3D11_MESSAGE_SEVERITY Severity,
1463            /* [annotation] */
1464            __in  BOOL bEnable);
1465       
1466        HRESULT ( STDMETHODCALLTYPE *SetBreakOnID )(
1467            ID3D11InfoQueue * This,
1468            /* [annotation] */
1469            __in  D3D11_MESSAGE_ID ID,
1470            /* [annotation] */
1471            __in  BOOL bEnable);
1472       
1473        BOOL ( STDMETHODCALLTYPE *GetBreakOnCategory )(
1474            ID3D11InfoQueue * This,
1475            /* [annotation] */
1476            __in  D3D11_MESSAGE_CATEGORY Category);
1477       
1478        BOOL ( STDMETHODCALLTYPE *GetBreakOnSeverity )(
1479            ID3D11InfoQueue * This,
1480            /* [annotation] */
1481            __in  D3D11_MESSAGE_SEVERITY Severity);
1482       
1483        BOOL ( STDMETHODCALLTYPE *GetBreakOnID )(
1484            ID3D11InfoQueue * This,
1485            /* [annotation] */
1486            __in  D3D11_MESSAGE_ID ID);
1487       
1488        void ( STDMETHODCALLTYPE *SetMuteDebugOutput )(
1489            ID3D11InfoQueue * This,
1490            /* [annotation] */
1491            __in  BOOL bMute);
1492       
1493        BOOL ( STDMETHODCALLTYPE *GetMuteDebugOutput )(
1494            ID3D11InfoQueue * This);
1495       
1496        END_INTERFACE
1497    } ID3D11InfoQueueVtbl;
1498
1499    interface ID3D11InfoQueue
1500    {
1501        CONST_VTBL struct ID3D11InfoQueueVtbl *lpVtbl;
1502    };
1503
1504   
1505
1506#ifdef COBJMACROS
1507
1508
1509#define ID3D11InfoQueue_QueryInterface(This,riid,ppvObject)   \
1510    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1511
1512#define ID3D11InfoQueue_AddRef(This)   \
1513    ( (This)->lpVtbl -> AddRef(This) )
1514
1515#define ID3D11InfoQueue_Release(This)   \
1516    ( (This)->lpVtbl -> Release(This) )
1517
1518
1519#define ID3D11InfoQueue_SetMessageCountLimit(This,MessageCountLimit)   \
1520    ( (This)->lpVtbl -> SetMessageCountLimit(This,MessageCountLimit) )
1521
1522#define ID3D11InfoQueue_ClearStoredMessages(This)   \
1523    ( (This)->lpVtbl -> ClearStoredMessages(This) )
1524
1525#define ID3D11InfoQueue_GetMessage(This,MessageIndex,pMessage,pMessageByteLength)   \
1526    ( (This)->lpVtbl -> GetMessage(This,MessageIndex,pMessage,pMessageByteLength) )
1527
1528#define ID3D11InfoQueue_GetNumMessagesAllowedByStorageFilter(This)   \
1529    ( (This)->lpVtbl -> GetNumMessagesAllowedByStorageFilter(This) )
1530
1531#define ID3D11InfoQueue_GetNumMessagesDeniedByStorageFilter(This)   \
1532    ( (This)->lpVtbl -> GetNumMessagesDeniedByStorageFilter(This) )
1533
1534#define ID3D11InfoQueue_GetNumStoredMessages(This)   \
1535    ( (This)->lpVtbl -> GetNumStoredMessages(This) )
1536
1537#define ID3D11InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(This)   \
1538    ( (This)->lpVtbl -> GetNumStoredMessagesAllowedByRetrievalFilter(This) )
1539
1540#define ID3D11InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(This)   \
1541    ( (This)->lpVtbl -> GetNumMessagesDiscardedByMessageCountLimit(This) )
1542
1543#define ID3D11InfoQueue_GetMessageCountLimit(This)   \
1544    ( (This)->lpVtbl -> GetMessageCountLimit(This) )
1545
1546#define ID3D11InfoQueue_AddStorageFilterEntries(This,pFilter)   \
1547    ( (This)->lpVtbl -> AddStorageFilterEntries(This,pFilter) )
1548
1549#define ID3D11InfoQueue_GetStorageFilter(This,pFilter,pFilterByteLength)   \
1550    ( (This)->lpVtbl -> GetStorageFilter(This,pFilter,pFilterByteLength) )
1551
1552#define ID3D11InfoQueue_ClearStorageFilter(This)   \
1553    ( (This)->lpVtbl -> ClearStorageFilter(This) )
1554
1555#define ID3D11InfoQueue_PushEmptyStorageFilter(This)   \
1556    ( (This)->lpVtbl -> PushEmptyStorageFilter(This) )
1557
1558#define ID3D11InfoQueue_PushCopyOfStorageFilter(This)   \
1559    ( (This)->lpVtbl -> PushCopyOfStorageFilter(This) )
1560
1561#define ID3D11InfoQueue_PushStorageFilter(This,pFilter)   \
1562    ( (This)->lpVtbl -> PushStorageFilter(This,pFilter) )
1563
1564#define ID3D11InfoQueue_PopStorageFilter(This)   \
1565    ( (This)->lpVtbl -> PopStorageFilter(This) )
1566
1567#define ID3D11InfoQueue_GetStorageFilterStackSize(This)   \
1568    ( (This)->lpVtbl -> GetStorageFilterStackSize(This) )
1569
1570#define ID3D11InfoQueue_AddRetrievalFilterEntries(This,pFilter)   \
1571    ( (This)->lpVtbl -> AddRetrievalFilterEntries(This,pFilter) )
1572
1573#define ID3D11InfoQueue_GetRetrievalFilter(This,pFilter,pFilterByteLength)   \
1574    ( (This)->lpVtbl -> GetRetrievalFilter(This,pFilter,pFilterByteLength) )
1575
1576#define ID3D11InfoQueue_ClearRetrievalFilter(This)   \
1577    ( (This)->lpVtbl -> ClearRetrievalFilter(This) )
1578
1579#define ID3D11InfoQueue_PushEmptyRetrievalFilter(This)   \
1580    ( (This)->lpVtbl -> PushEmptyRetrievalFilter(This) )
1581
1582#define ID3D11InfoQueue_PushCopyOfRetrievalFilter(This)   \
1583    ( (This)->lpVtbl -> PushCopyOfRetrievalFilter(This) )
1584
1585#define ID3D11InfoQueue_PushRetrievalFilter(This,pFilter)   \
1586    ( (This)->lpVtbl -> PushRetrievalFilter(This,pFilter) )
1587
1588#define ID3D11InfoQueue_PopRetrievalFilter(This)   \
1589    ( (This)->lpVtbl -> PopRetrievalFilter(This) )
1590
1591#define ID3D11InfoQueue_GetRetrievalFilterStackSize(This)   \
1592    ( (This)->lpVtbl -> GetRetrievalFilterStackSize(This) )
1593
1594#define ID3D11InfoQueue_AddMessage(This,Category,Severity,ID,pDescription)   \
1595    ( (This)->lpVtbl -> AddMessage(This,Category,Severity,ID,pDescription) )
1596
1597#define ID3D11InfoQueue_AddApplicationMessage(This,Severity,pDescription)   \
1598    ( (This)->lpVtbl -> AddApplicationMessage(This,Severity,pDescription) )
1599
1600#define ID3D11InfoQueue_SetBreakOnCategory(This,Category,bEnable)   \
1601    ( (This)->lpVtbl -> SetBreakOnCategory(This,Category,bEnable) )
1602
1603#define ID3D11InfoQueue_SetBreakOnSeverity(This,Severity,bEnable)   \
1604    ( (This)->lpVtbl -> SetBreakOnSeverity(This,Severity,bEnable) )
1605
1606#define ID3D11InfoQueue_SetBreakOnID(This,ID,bEnable)   \
1607    ( (This)->lpVtbl -> SetBreakOnID(This,ID,bEnable) )
1608
1609#define ID3D11InfoQueue_GetBreakOnCategory(This,Category)   \
1610    ( (This)->lpVtbl -> GetBreakOnCategory(This,Category) )
1611
1612#define ID3D11InfoQueue_GetBreakOnSeverity(This,Severity)   \
1613    ( (This)->lpVtbl -> GetBreakOnSeverity(This,Severity) )
1614
1615#define ID3D11InfoQueue_GetBreakOnID(This,ID)   \
1616    ( (This)->lpVtbl -> GetBreakOnID(This,ID) )
1617
1618#define ID3D11InfoQueue_SetMuteDebugOutput(This,bMute)   \
1619    ( (This)->lpVtbl -> SetMuteDebugOutput(This,bMute) )
1620
1621#define ID3D11InfoQueue_GetMuteDebugOutput(This)   \
1622    ( (This)->lpVtbl -> GetMuteDebugOutput(This) )
1623
1624#endif /* COBJMACROS */
1625
1626
1627#endif    /* C style interface */
1628
1629
1630
1631
1632#endif    /* __ID3D11InfoQueue_INTERFACE_DEFINED__ */
1633
1634
1635/* interface __MIDL_itf_d3d11sdklayers_0000_0003 */
1636/* [local] */
1637
1638#define D3D11_REGKEY_PATH __TEXT("Software\\Microsoft\\Direct3D")
1639#define D3D11_MUTE_DEBUG_OUTPUT __TEXT("MuteDebugOutput")
1640#define D3D11_ENABLE_BREAK_ON_MESSAGE __TEXT("EnableBreakOnMessage")
1641#define D3D11_INFOQUEUE_STORAGE_FILTER_OVERRIDE __TEXT("InfoQueueStorageFilterOverride")
1642#define D3D11_MUTE_CATEGORY __TEXT("Mute_CATEGORY_%s")
1643#define D3D11_MUTE_SEVERITY __TEXT("Mute_SEVERITY_%s")
1644#define D3D11_MUTE_ID_STRING __TEXT("Mute_ID_%s")
1645#define D3D11_MUTE_ID_DECIMAL __TEXT("Mute_ID_%d")
1646#define D3D11_UNMUTE_SEVERITY_INFO __TEXT("Unmute_SEVERITY_INFO")
1647#define D3D11_BREAKON_CATEGORY __TEXT("BreakOn_CATEGORY_%s")
1648#define D3D11_BREAKON_SEVERITY __TEXT("BreakOn_SEVERITY_%s")
1649#define D3D11_BREAKON_ID_STRING __TEXT("BreakOn_ID_%s")
1650#define D3D11_BREAKON_ID_DECIMAL __TEXT("BreakOn_ID_%d")
1651#define D3D11_APPSIZE_STRING __TEXT("Size")
1652#define D3D11_APPNAME_STRING __TEXT("Name")
1653DEFINE_GUID(IID_ID3D11Debug,0x79cf2233,0x7536,0x4948,0x9d,0x36,0x1e,0x46,0x92,0xdc,0x57,0x60);
1654DEFINE_GUID(IID_ID3D11SwitchToRef,0x1ef337e3,0x58e7,0x4f83,0xa6,0x92,0xdb,0x22,0x1f,0x5e,0xd4,0x7e);
1655DEFINE_GUID(IID_ID3D11InfoQueue,0x6543dbb6,0x1b48,0x42f5,0xab,0x82,0xe9,0x7e,0xc7,0x43,0x26,0xf6);
1656
1657
1658extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0003_v0_0_c_ifspec;
1659extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0003_v0_0_s_ifspec;
1660
1661/* Additional Prototypes for ALL interfaces */
1662
1663/* end of Additional Prototypes */
1664
1665#ifdef __cplusplus
1666}
1667#endif
1668
1669#endif
1670
1671
trunk/3rdparty/dxsdk/Include/D3D11Shader.h
r243310r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (c) Microsoft Corporation.  All rights reserved.
4//
5//  File:       D3D11Shader.h
6//  Content:    D3D11 Shader Types and APIs
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#ifndef __D3D11SHADER_H__
11#define __D3D11SHADER_H__
12
13#include "d3dcommon.h"
14
15
16typedef enum D3D11_SHADER_VERSION_TYPE
17{
18    D3D11_SHVER_PIXEL_SHADER    = 0,
19    D3D11_SHVER_VERTEX_SHADER   = 1,
20    D3D11_SHVER_GEOMETRY_SHADER = 2,
21   
22    // D3D11 Shaders
23    D3D11_SHVER_HULL_SHADER     = 3,
24    D3D11_SHVER_DOMAIN_SHADER   = 4,
25    D3D11_SHVER_COMPUTE_SHADER  = 5,
26} D3D11_SHADER_VERSION_TYPE;
27
28#define D3D11_SHVER_GET_TYPE(_Version) \
29    (((_Version) >> 16) & 0xffff)
30#define D3D11_SHVER_GET_MAJOR(_Version) \
31    (((_Version) >> 4) & 0xf)
32#define D3D11_SHVER_GET_MINOR(_Version) \
33    (((_Version) >> 0) & 0xf)
34
35typedef D3D_RESOURCE_RETURN_TYPE D3D11_RESOURCE_RETURN_TYPE;
36
37typedef D3D_CBUFFER_TYPE D3D11_CBUFFER_TYPE;
38
39
40typedef struct _D3D11_SIGNATURE_PARAMETER_DESC
41{
42    LPCSTR                      SemanticName;   // Name of the semantic
43    UINT                        SemanticIndex;  // Index of the semantic
44    UINT                        Register;       // Number of member variables
45    D3D_NAME                    SystemValueType;// A predefined system value, or D3D_NAME_UNDEFINED if not applicable
46    D3D_REGISTER_COMPONENT_TYPE ComponentType;// Scalar type (e.g. uint, float, etc.)
47    BYTE                        Mask;           // Mask to indicate which components of the register
48                                                // are used (combination of D3D10_COMPONENT_MASK values)
49    BYTE                        ReadWriteMask;  // Mask to indicate whether a given component is
50                                                // never written (if this is an output signature) or
51                                                // always read (if this is an input signature).
52                                                // (combination of D3D10_COMPONENT_MASK values)
53    UINT Stream;                                // Stream index
54} D3D11_SIGNATURE_PARAMETER_DESC;
55
56typedef struct _D3D11_SHADER_BUFFER_DESC
57{
58    LPCSTR                  Name;           // Name of the constant buffer
59    D3D_CBUFFER_TYPE        Type;           // Indicates type of buffer content
60    UINT                    Variables;      // Number of member variables
61    UINT                    Size;           // Size of CB (in bytes)
62    UINT                    uFlags;         // Buffer description flags
63} D3D11_SHADER_BUFFER_DESC;
64
65typedef struct _D3D11_SHADER_VARIABLE_DESC
66{
67    LPCSTR                  Name;           // Name of the variable
68    UINT                    StartOffset;    // Offset in constant buffer's backing store
69    UINT                    Size;           // Size of variable (in bytes)
70    UINT                    uFlags;         // Variable flags
71    LPVOID                  DefaultValue;   // Raw pointer to default value
72    UINT                    StartTexture;   // First texture index (or -1 if no textures used)
73    UINT                    TextureSize;    // Number of texture slots possibly used.
74    UINT                    StartSampler;   // First sampler index (or -1 if no textures used)
75    UINT                    SamplerSize;    // Number of sampler slots possibly used.
76} D3D11_SHADER_VARIABLE_DESC;
77
78typedef struct _D3D11_SHADER_TYPE_DESC
79{
80    D3D_SHADER_VARIABLE_CLASS   Class;          // Variable class (e.g. object, matrix, etc.)
81    D3D_SHADER_VARIABLE_TYPE    Type;           // Variable type (e.g. float, sampler, etc.)
82    UINT                        Rows;           // Number of rows (for matrices, 1 for other numeric, 0 if not applicable)
83    UINT                        Columns;        // Number of columns (for vectors & matrices, 1 for other numeric, 0 if not applicable)
84    UINT                        Elements;       // Number of elements (0 if not an array)
85    UINT                        Members;        // Number of members (0 if not a structure)
86    UINT                        Offset;         // Offset from the start of structure (0 if not a structure member)
87    LPCSTR                      Name;           // Name of type, can be NULL
88} D3D11_SHADER_TYPE_DESC;
89
90typedef D3D_TESSELLATOR_DOMAIN D3D11_TESSELLATOR_DOMAIN;
91
92typedef D3D_TESSELLATOR_PARTITIONING D3D11_TESSELLATOR_PARTITIONING;
93
94typedef D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D11_TESSELLATOR_OUTPUT_PRIMITIVE;
95
96typedef struct _D3D11_SHADER_DESC
97{
98    UINT                    Version;                     // Shader version
99    LPCSTR                  Creator;                     // Creator string
100    UINT                    Flags;                       // Shader compilation/parse flags
101   
102    UINT                    ConstantBuffers;             // Number of constant buffers
103    UINT                    BoundResources;              // Number of bound resources
104    UINT                    InputParameters;             // Number of parameters in the input signature
105    UINT                    OutputParameters;            // Number of parameters in the output signature
106
107    UINT                    InstructionCount;            // Number of emitted instructions
108    UINT                    TempRegisterCount;           // Number of temporary registers used
109    UINT                    TempArrayCount;              // Number of temporary arrays used
110    UINT                    DefCount;                    // Number of constant defines
111    UINT                    DclCount;                    // Number of declarations (input + output)
112    UINT                    TextureNormalInstructions;   // Number of non-categorized texture instructions
113    UINT                    TextureLoadInstructions;     // Number of texture load instructions
114    UINT                    TextureCompInstructions;     // Number of texture comparison instructions
115    UINT                    TextureBiasInstructions;     // Number of texture bias instructions
116    UINT                    TextureGradientInstructions; // Number of texture gradient instructions
117    UINT                    FloatInstructionCount;       // Number of floating point arithmetic instructions used
118    UINT                    IntInstructionCount;         // Number of signed integer arithmetic instructions used
119    UINT                    UintInstructionCount;        // Number of unsigned integer arithmetic instructions used
120    UINT                    StaticFlowControlCount;      // Number of static flow control instructions used
121    UINT                    DynamicFlowControlCount;     // Number of dynamic flow control instructions used
122    UINT                    MacroInstructionCount;       // Number of macro instructions used
123    UINT                    ArrayInstructionCount;       // Number of array instructions used
124    UINT                    CutInstructionCount;         // Number of cut instructions used
125    UINT                    EmitInstructionCount;        // Number of emit instructions used
126    D3D_PRIMITIVE_TOPOLOGY   GSOutputTopology;           // Geometry shader output topology
127    UINT                    GSMaxOutputVertexCount;      // Geometry shader maximum output vertex count
128    D3D_PRIMITIVE           InputPrimitive;              // GS/HS input primitive
129    UINT                    PatchConstantParameters;     // Number of parameters in the patch constant signature
130    UINT                    cGSInstanceCount;            // Number of Geometry shader instances
131    UINT                    cControlPoints;              // Number of control points in the HS->DS stage
132    D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;  // Primitive output by the tessellator
133    D3D_TESSELLATOR_PARTITIONING HSPartitioning;         // Partitioning mode of the tessellator
134    D3D_TESSELLATOR_DOMAIN  TessellatorDomain;           // Domain of the tessellator (quad, tri, isoline)
135    // instruction counts
136    UINT cBarrierInstructions;                           // Number of barrier instructions in a compute shader
137    UINT cInterlockedInstructions;                       // Number of interlocked instructions
138    UINT cTextureStoreInstructions;                      // Number of texture writes
139} D3D11_SHADER_DESC;
140
141typedef struct _D3D11_SHADER_INPUT_BIND_DESC
142{
143    LPCSTR                      Name;           // Name of the resource
144    D3D_SHADER_INPUT_TYPE       Type;           // Type of resource (e.g. texture, cbuffer, etc.)
145    UINT                        BindPoint;      // Starting bind point
146    UINT                        BindCount;      // Number of contiguous bind points (for arrays)
147   
148    UINT                        uFlags;         // Input binding flags
149    D3D_RESOURCE_RETURN_TYPE    ReturnType;     // Return type (if texture)
150    D3D_SRV_DIMENSION           Dimension;      // Dimension (if texture)
151    UINT                        NumSamples;     // Number of samples (0 if not MS texture)
152} D3D11_SHADER_INPUT_BIND_DESC;
153
154
155//////////////////////////////////////////////////////////////////////////////
156// Interfaces ////////////////////////////////////////////////////////////////
157//////////////////////////////////////////////////////////////////////////////
158
159typedef interface ID3D11ShaderReflectionType ID3D11ShaderReflectionType;
160typedef interface ID3D11ShaderReflectionType *LPD3D11SHADERREFLECTIONTYPE;
161
162typedef interface ID3D11ShaderReflectionVariable ID3D11ShaderReflectionVariable;
163typedef interface ID3D11ShaderReflectionVariable *LPD3D11SHADERREFLECTIONVARIABLE;
164
165typedef interface ID3D11ShaderReflectionConstantBuffer ID3D11ShaderReflectionConstantBuffer;
166typedef interface ID3D11ShaderReflectionConstantBuffer *LPD3D11SHADERREFLECTIONCONSTANTBUFFER;
167
168typedef interface ID3D11ShaderReflection ID3D11ShaderReflection;
169typedef interface ID3D11ShaderReflection *LPD3D11SHADERREFLECTION;
170
171// {6E6FFA6A-9BAE-4613-A51E-91652D508C21}
172DEFINE_GUID(IID_ID3D11ShaderReflectionType,
1730x6e6ffa6a, 0x9bae, 0x4613, 0xa5, 0x1e, 0x91, 0x65, 0x2d, 0x50, 0x8c, 0x21);
174
175#undef INTERFACE
176#define INTERFACE ID3D11ShaderReflectionType
177
178DECLARE_INTERFACE(ID3D11ShaderReflectionType)
179{
180    STDMETHOD(GetDesc)(THIS_ __out D3D11_SHADER_TYPE_DESC *pDesc) PURE;
181   
182    STDMETHOD_(ID3D11ShaderReflectionType*, GetMemberTypeByIndex)(THIS_ __in UINT Index) PURE;
183    STDMETHOD_(ID3D11ShaderReflectionType*, GetMemberTypeByName)(THIS_ __in LPCSTR Name) PURE;
184    STDMETHOD_(LPCSTR, GetMemberTypeName)(THIS_ __in UINT Index) PURE;
185
186    STDMETHOD(IsEqual)(THIS_ __in ID3D11ShaderReflectionType* pType) PURE;
187    STDMETHOD_(ID3D11ShaderReflectionType*, GetSubType)(THIS) PURE;
188    STDMETHOD_(ID3D11ShaderReflectionType*, GetBaseClass)(THIS) PURE;
189    STDMETHOD_(UINT, GetNumInterfaces)(THIS) PURE;
190    STDMETHOD_(ID3D11ShaderReflectionType*, GetInterfaceByIndex)(THIS_ __in UINT uIndex) PURE;
191    STDMETHOD(IsOfType)(THIS_ __in ID3D11ShaderReflectionType* pType) PURE;
192    STDMETHOD(ImplementsInterface)(THIS_ __in ID3D11ShaderReflectionType* pBase) PURE;
193};
194
195// {51F23923-F3E5-4BD1-91CB-606177D8DB4C}
196DEFINE_GUID(IID_ID3D11ShaderReflectionVariable,
1970x51f23923, 0xf3e5, 0x4bd1, 0x91, 0xcb, 0x60, 0x61, 0x77, 0xd8, 0xdb, 0x4c);
198
199#undef INTERFACE
200#define INTERFACE ID3D11ShaderReflectionVariable
201
202DECLARE_INTERFACE(ID3D11ShaderReflectionVariable)
203{
204    STDMETHOD(GetDesc)(THIS_ __out D3D11_SHADER_VARIABLE_DESC *pDesc) PURE;
205   
206    STDMETHOD_(ID3D11ShaderReflectionType*, GetType)(THIS) PURE;
207    STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetBuffer)(THIS) PURE;
208
209    STDMETHOD_(UINT, GetInterfaceSlot)(THIS_ __in UINT uArrayIndex) PURE;
210};
211
212// {EB62D63D-93DD-4318-8AE8-C6F83AD371B8}
213DEFINE_GUID(IID_ID3D11ShaderReflectionConstantBuffer,
2140xeb62d63d, 0x93dd, 0x4318, 0x8a, 0xe8, 0xc6, 0xf8, 0x3a, 0xd3, 0x71, 0xb8);
215
216#undef INTERFACE
217#define INTERFACE ID3D11ShaderReflectionConstantBuffer
218
219DECLARE_INTERFACE(ID3D11ShaderReflectionConstantBuffer)
220{
221    STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_BUFFER_DESC *pDesc) PURE;
222   
223    STDMETHOD_(ID3D11ShaderReflectionVariable*, GetVariableByIndex)(THIS_ __in UINT Index) PURE;
224    STDMETHOD_(ID3D11ShaderReflectionVariable*, GetVariableByName)(THIS_ __in LPCSTR Name) PURE;
225};
226
227// The ID3D11ShaderReflection IID may change from SDK version to SDK version
228// if the reflection API changes.  This prevents new code with the new API
229// from working with an old binary.  Recompiling with the new header
230// will pick up the new IID.
231
232// 0a233719-3960-4578-9d7c-203b8b1d9cc1
233DEFINE_GUID(IID_ID3D11ShaderReflection,
2340x0a233719, 0x3960, 0x4578, 0x9d, 0x7c, 0x20, 0x3b, 0x8b, 0x1d, 0x9c, 0xc1);
235
236#undef INTERFACE
237#define INTERFACE ID3D11ShaderReflection
238
239DECLARE_INTERFACE_(ID3D11ShaderReflection, IUnknown)
240{
241    STDMETHOD(QueryInterface)(THIS_ __in REFIID iid,
242                              __out LPVOID *ppv) PURE;
243    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
244    STDMETHOD_(ULONG, Release)(THIS) PURE;
245
246    STDMETHOD(GetDesc)(THIS_ __out D3D11_SHADER_DESC *pDesc) PURE;
247   
248    STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetConstantBufferByIndex)(THIS_ __in UINT Index) PURE;
249    STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetConstantBufferByName)(THIS_ __in LPCSTR Name) PURE;
250   
251    STDMETHOD(GetResourceBindingDesc)(THIS_ __in UINT ResourceIndex,
252                                      __out D3D11_SHADER_INPUT_BIND_DESC *pDesc) PURE;
253   
254    STDMETHOD(GetInputParameterDesc)(THIS_ __in UINT ParameterIndex,
255                                     __out D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
256    STDMETHOD(GetOutputParameterDesc)(THIS_ __in UINT ParameterIndex,
257                                      __out D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
258    STDMETHOD(GetPatchConstantParameterDesc)(THIS_ __in UINT ParameterIndex,
259                                             __out D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
260
261    STDMETHOD_(ID3D11ShaderReflectionVariable*, GetVariableByName)(THIS_ __in LPCSTR Name) PURE;
262
263    STDMETHOD(GetResourceBindingDescByName)(THIS_ __in LPCSTR Name,
264                                            __out D3D11_SHADER_INPUT_BIND_DESC *pDesc) PURE;
265
266    STDMETHOD_(UINT, GetMovInstructionCount)(THIS) PURE;
267    STDMETHOD_(UINT, GetMovcInstructionCount)(THIS) PURE;
268    STDMETHOD_(UINT, GetConversionInstructionCount)(THIS) PURE;
269    STDMETHOD_(UINT, GetBitwiseInstructionCount)(THIS) PURE;
270   
271    STDMETHOD_(D3D_PRIMITIVE, GetGSInputPrimitive)(THIS) PURE;
272    STDMETHOD_(BOOL, IsSampleFrequencyShader)(THIS) PURE;
273
274    STDMETHOD_(UINT, GetNumInterfaceSlots)(THIS) PURE;
275    STDMETHOD(GetMinFeatureLevel)(THIS_ __out enum D3D_FEATURE_LEVEL* pLevel) PURE;
276
277    STDMETHOD_(UINT, GetThreadGroupSize)(THIS_
278                                         __out_opt UINT* pSizeX,
279                                         __out_opt UINT* pSizeY,
280                                         __out_opt UINT* pSizeZ) PURE;
281};
282
283//////////////////////////////////////////////////////////////////////////////
284// APIs //////////////////////////////////////////////////////////////////////
285//////////////////////////////////////////////////////////////////////////////
286
287#ifdef __cplusplus
288extern "C" {
289#endif //__cplusplus
290
291#ifdef __cplusplus
292}
293#endif //__cplusplus
294   
295#endif //__D3D11SHADER_H__
296
trunk/3rdparty/dxsdk/Include/D3DCSX.h
r243310r243311
1
2//////////////////////////////////////////////////////////////////////////////
3//
4//  Copyright (c) Microsoft Corporation.  All rights reserved.
5//
6//  File:       D3DX11GPGPU.h
7//  Content:    D3DX11 General Purpose GPU computing algorithms
8//
9//////////////////////////////////////////////////////////////////////////////
10
11#include "d3dx11.h"
12
13#ifndef __D3DX11GPGPU_H__
14#define __D3DX11GPGPU_H__
15
16// Current name of the DLL shipped in the same SDK as this header.
17
18
19#define D3DCSX_DLL_W L"d3dcsx_43.dll"
20#define D3DCSX_DLL_A "d3dcsx_43.dll"
21
22#ifdef UNICODE
23    #define D3DCSX_DLL D3DCSX_DLL_W
24#else
25    #define D3DCSX_DLL D3DCSX_DLL_A
26#endif
27
28
29#ifdef __cplusplus
30extern "C" {
31#endif //__cplusplus
32
33
34
35
36
37
38//////////////////////////////////////////////////////////////////////////////
39
40typedef enum D3DX11_SCAN_DATA_TYPE
41{
42    D3DX11_SCAN_DATA_TYPE_FLOAT = 1,
43    D3DX11_SCAN_DATA_TYPE_INT,
44    D3DX11_SCAN_DATA_TYPE_UINT,
45} D3DX11_SCAN_DATA_TYPE;
46
47typedef enum D3DX11_SCAN_OPCODE
48{
49    D3DX11_SCAN_OPCODE_ADD = 1,
50    D3DX11_SCAN_OPCODE_MIN,
51    D3DX11_SCAN_OPCODE_MAX,
52    D3DX11_SCAN_OPCODE_MUL,
53    D3DX11_SCAN_OPCODE_AND,
54    D3DX11_SCAN_OPCODE_OR,
55    D3DX11_SCAN_OPCODE_XOR,
56} D3DX11_SCAN_OPCODE;
57
58typedef enum D3DX11_SCAN_DIRECTION
59{
60    D3DX11_SCAN_DIRECTION_FORWARD = 1,
61    D3DX11_SCAN_DIRECTION_BACKWARD,
62} D3DX11_SCAN_DIRECTION;
63
64
65//////////////////////////////////////////////////////////////////////////////
66// ID3DX11Scan:
67//////////////////////////////////////////////////////////////////////////////
68
69// {5089b68f-e71d-4d38-be8e-f363b95a9405}
70DEFINE_GUID(IID_ID3DX11Scan, 0x5089b68f, 0xe71d, 0x4d38, 0xbe, 0x8e, 0xf3, 0x63, 0xb9, 0x5a, 0x94, 0x05);
71
72#undef INTERFACE
73#define INTERFACE ID3DX11Scan
74
75DECLARE_INTERFACE_(ID3DX11Scan, IUnknown)
76{
77    // IUnknown
78    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
79    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
80    STDMETHOD_(ULONG, Release)(THIS) PURE;
81
82    // ID3DX11Scan
83
84    STDMETHOD(SetScanDirection)(THIS_ D3DX11_SCAN_DIRECTION Direction) PURE;
85
86    //=============================================================================
87    // Performs an unsegmented scan of a sequence in-place or out-of-place
88    //  ElementType         element type
89    //  OpCode              binary operation
90    //  Direction           scan direction
91    //  ElementScanSize     size of scan, in elements
92    //  pSrc                input sequence on the device. pSrc==pDst for in-place scans
93    //  pDst                output sequence on the device
94    //=============================================================================
95    STDMETHOD(Scan)( THIS_
96        D3DX11_SCAN_DATA_TYPE               ElementType,
97        D3DX11_SCAN_OPCODE                  OpCode,
98        UINT                                ElementScanSize,
99        __in ID3D11UnorderedAccessView*     pSrc,
100        __in ID3D11UnorderedAccessView*     pDst
101    ) PURE;
102
103    //=============================================================================
104    // Performs a multiscan of a sequence in-place or out-of-place
105    //  ElementType         element type
106    //  OpCode              binary operation
107    //  Direction           scan direction
108    //  ElementScanSize     size of scan, in elements
109    //  ElementScanPitch    pitch of the next scan, in elements
110    //  ScanCount           number of scans in a multiscan
111    //  pSrc                input sequence on the device. pSrc==pDst for in-place scans
112    //  pDst                output sequence on the device
113    //=============================================================================
114    STDMETHOD(Multiscan)( THIS_
115        D3DX11_SCAN_DATA_TYPE               ElementType,
116        D3DX11_SCAN_OPCODE                  OpCode,
117        UINT                                ElementScanSize,
118        UINT                                ElementScanPitch,
119        UINT                                ScanCount,
120        __in ID3D11UnorderedAccessView*     pSrc,
121        __in ID3D11UnorderedAccessView*     pDst
122    ) PURE;
123};
124
125
126//=============================================================================
127// Creates a scan context
128//  pDevice             the device context
129//  MaxElementScanSize  maximum single scan size, in elements (FLOAT, UINT, or INT)
130//  MaxScanCount        maximum number of scans in multiscan
131//  ppScanContext       new scan context
132//=============================================================================
133HRESULT WINAPI D3DX11CreateScan(
134    __in ID3D11DeviceContext* pDeviceContext,
135    UINT MaxElementScanSize,
136    UINT MaxScanCount,
137    __out ID3DX11Scan** ppScan );
138
139
140
141//////////////////////////////////////////////////////////////////////////////
142// ID3DX11SegmentedScan:
143//////////////////////////////////////////////////////////////////////////////
144
145// {a915128c-d954-4c79-bfe1-64db923194d6}
146DEFINE_GUID(IID_ID3DX11SegmentedScan, 0xa915128c, 0xd954, 0x4c79, 0xbf, 0xe1, 0x64, 0xdb, 0x92, 0x31, 0x94, 0xd6);
147
148#undef INTERFACE
149#define INTERFACE ID3DX11SegmentedScan
150
151DECLARE_INTERFACE_(ID3DX11SegmentedScan, IUnknown)
152{
153    // IUnknown
154    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
155    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
156    STDMETHOD_(ULONG, Release)(THIS) PURE;
157
158    // ID3DX11SegmentedScan
159
160    STDMETHOD(SetScanDirection)(THIS_ D3DX11_SCAN_DIRECTION Direction) PURE;
161
162    //=============================================================================
163    // Performs a segscan of a sequence in-place or out-of-place
164    //  ElementType         element type
165    //  OpCode              binary operation
166    //  Direction           scan direction
167    //  pSrcElementFlags    compact array of bits, one per element of pSrc.  A set value
168    //                      indicates the start of a new segment.
169    //  ElementScanSize     size of scan, in elements
170    //  pSrc                input sequence on the device. pSrc==pDst for in-place scans
171    //  pDst                output sequence on the device
172    //=============================================================================
173    STDMETHOD(SegScan)( THIS_
174        D3DX11_SCAN_DATA_TYPE               ElementType,
175        D3DX11_SCAN_OPCODE                  OpCode,
176        UINT                                ElementScanSize,
177        __in_opt ID3D11UnorderedAccessView* pSrc,
178        __in ID3D11UnorderedAccessView*     pSrcElementFlags,
179        __in ID3D11UnorderedAccessView*     pDst
180    ) PURE;
181};
182
183
184//=============================================================================
185// Creates a segmented scan context
186//  pDevice             the device context
187//  MaxElementScanSize  maximum single scan size, in elements (FLOAT, UINT, or INT)
188//  ppScanContext       new scan context
189//=============================================================================
190HRESULT WINAPI D3DX11CreateSegmentedScan(
191    __in ID3D11DeviceContext* pDeviceContext,
192    UINT MaxElementScanSize,
193    __out ID3DX11SegmentedScan** ppScan );
194
195
196
197//////////////////////////////////////////////////////////////////////////////
198
199#define D3DX11_FFT_MAX_PRECOMPUTE_BUFFERS 4
200#define D3DX11_FFT_MAX_TEMP_BUFFERS 4
201#define D3DX11_FFT_MAX_DIMENSIONS 32
202
203
204
205//////////////////////////////////////////////////////////////////////////////
206// ID3DX11FFT:
207//////////////////////////////////////////////////////////////////////////////
208
209// {b3f7a938-4c93-4310-a675-b30d6de50553}
210DEFINE_GUID(IID_ID3DX11FFT, 0xb3f7a938, 0x4c93, 0x4310, 0xa6, 0x75, 0xb3, 0x0d, 0x6d, 0xe5, 0x05, 0x53);
211
212#undef INTERFACE
213#define INTERFACE ID3DX11FFT
214
215DECLARE_INTERFACE_(ID3DX11FFT, IUnknown)
216{
217    // IUnknown
218    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
219    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
220    STDMETHOD_(ULONG, Release)(THIS) PURE;
221
222    // ID3DX11FFT
223
224    // scale for forward transform (defaults to 1 if set to 0)
225    STDMETHOD(SetForwardScale)(THIS_ FLOAT ForwardScale) PURE;
226    STDMETHOD_(FLOAT, GetForwardScale)(THIS) PURE;
227
228    // scale for inverse transform (defaults to 1/N if set to 0, where N is
229    // the product of the transformed dimension lengths
230    STDMETHOD(SetInverseScale)(THIS_ FLOAT InverseScale) PURE;
231    STDMETHOD_(FLOAT, GetInverseScale)(THIS) PURE;
232
233    //------------------------------------------------------------------------------
234    // Attaches buffers to the context and performs any required precomputation.
235    // The buffers must be no smaller than the corresponding buffer sizes returned
236    // by D3DX11CreateFFT*(). Temp buffers may beshared between multiple contexts,
237    // though care should be taken to concurrently execute multiple FFTs which share
238    // temp buffers.
239    //
240    // NumTempBuffers               number of buffers in ppTempBuffers
241    // ppTempBuffers                temp buffers to attach
242    // NumPrecomputeBuffers         number of buffers in ppPrecomputeBufferSizes
243    // ppPrecomputeBufferSizes      buffers to hold precomputed data
244    STDMETHOD(AttachBuffersAndPrecompute)(  THIS_
245        __in_range(0,D3DX11_FFT_MAX_TEMP_BUFFERS) UINT NumTempBuffers,
246        __in_ecount(NumTempBuffers) ID3D11UnorderedAccessView*const* ppTempBuffers,   
247        __in_range(0,D3DX11_FFT_MAX_PRECOMPUTE_BUFFERS) UINT NumPrecomputeBuffers,
248        __in_ecount(NumPrecomputeBuffers) ID3D11UnorderedAccessView*const* ppPrecomputeBufferSizes ) PURE;
249
250    //------------------------------------------------------------------------------
251    // Call after buffers have been attached to the context, pInput and *ppOuput can
252    // be one of the temp buffers.  If *ppOutput == NULL, then the computation will ping-pong
253    // between temp buffers and the last buffer written to is stored at *ppOutput.
254    // Otherwise, *ppOutput is used as the output buffer (which may incur an extra copy).
255    //
256    // The format of complex data is interleaved components, e.g. (Real0, Imag0),
257    // (Real1, Imag1) ... etc. Data is stored in row major order
258    //
259    // pInputBuffer         view onto input buffer
260    // ppOutpuBuffert       pointer to view of output buffer
261    STDMETHOD(ForwardTransform)( THIS_
262        __in const ID3D11UnorderedAccessView* pInputBuffer,
263        __inout ID3D11UnorderedAccessView** ppOutputBuffer ) PURE;
264
265    STDMETHOD(InverseTransform)( THIS_
266        __in const ID3D11UnorderedAccessView* pInputBuffer,
267        __inout ID3D11UnorderedAccessView** ppOutputBuffer ) PURE;
268};
269
270
271//////////////////////////////////////////////////////////////////////////////
272// ID3DX11FFT Creation Routines
273//////////////////////////////////////////////////////////////////////////////
274
275typedef enum D3DX11_FFT_DATA_TYPE
276{
277    D3DX11_FFT_DATA_TYPE_REAL,
278    D3DX11_FFT_DATA_TYPE_COMPLEX,
279} D3DX11_FFT_DATA_TYPE;
280
281typedef enum D3DX11_FFT_DIM_MASK
282{
283    D3DX11_FFT_DIM_MASK_1D   = 0x1,
284    D3DX11_FFT_DIM_MASK_2D   = 0x3,
285    D3DX11_FFT_DIM_MASK_3D   = 0x7,
286} D3DX11_FFT_DIM_MASK;
287
288typedef struct D3DX11_FFT_DESC
289{
290    UINT NumDimensions;                             // number of dimensions
291    UINT ElementLengths[D3DX11_FFT_MAX_DIMENSIONS]; // length of each dimension
292    UINT DimensionMask;                             // a bit set for each dimensions to transform
293                                                    //     (see D3DX11_FFT_DIM_MASK for common masks)
294    D3DX11_FFT_DATA_TYPE Type;                      // type of the elements in spatial domain
295} D3DX11_FFT_DESC;
296
297
298//------------------------------------------------------------------------------
299// NumTempBufferSizes           Number of temporary buffers needed
300// pTempBufferSizes             Minimum sizes (in FLOATs) of temporary buffers
301// NumPrecomputeBufferSizes     Number of precompute buffers needed
302// pPrecomputeBufferSizes       minimum sizes (in FLOATs) for precompute buffers
303//------------------------------------------------------------------------------
304
305typedef struct D3DX11_FFT_BUFFER_INFO
306{
307    __range(0,D3DX11_FFT_MAX_TEMP_BUFFERS) UINT NumTempBufferSizes;
308    UINT TempBufferFloatSizes[D3DX11_FFT_MAX_TEMP_BUFFERS];
309    __range(0,D3DX11_FFT_MAX_PRECOMPUTE_BUFFERS) UINT NumPrecomputeBufferSizes;
310    UINT PrecomputeBufferFloatSizes[D3DX11_FFT_MAX_PRECOMPUTE_BUFFERS];   
311} D3DX11_FFT_BUFFER_INFO;
312
313
314typedef enum D3DX11_FFT_CREATE_FLAG
315{
316    D3DX11_FFT_CREATE_FLAG_NO_PRECOMPUTE_BUFFERS = 0x01L,   // do not precompute values and store into buffers
317} D3DX11_FFT_CREATE_FLAG;
318
319
320//------------------------------------------------------------------------------
321// Creates an ID3DX11FFT COM interface object and returns a pointer to it at *ppFFT.
322// The descriptor describes the shape of the data as well as the scaling factors
323// that should be used for forward and inverse transforms.
324// The FFT computation may require temporaries that act as ping-pong buffers
325// and for other purposes. aTempSizes is a list of the sizes required for
326// temporaries. Likewise, some data may need to be precomputed and the sizes
327// of those sizes are returned in aPrecomputedBufferSizes.
328//
329// To perform a computation, follow these steps:
330// 1) Create the FFT context object
331// 2) Precompute (and Attach temp working buffers of at least the required size)
332// 3) Call Compute() on some input data
333//
334// Compute() may be called repeatedly with different inputs and transform
335// directions. When finished with the FFT work, release the FFT interface()
336//
337// Device                     Direct3DDeviceContext to use                      in
338// pDesc                      Descriptor for FFT transform                      in
339// Count                      the number of 1D FFTs to perform                  in
340// Flags                      See D3DX11_FFT_CREATE_FLAG                        in
341// pBufferInfo                Pointer to BUFFER_INFO struct, filled by funciton out
342// ppFFT                      Pointer to returned context pointer               out
343//------------------------------------------------------------------------------
344
345HRESULT WINAPI D3DX11CreateFFT(
346   ID3D11DeviceContext* pDeviceContext,
347   __in const D3DX11_FFT_DESC* pDesc,
348   UINT Flags,
349   __out D3DX11_FFT_BUFFER_INFO* pBufferInfo,
350   __out ID3DX11FFT** ppFFT
351 );
352
353HRESULT WINAPI D3DX11CreateFFT1DReal(
354   ID3D11DeviceContext* pDeviceContext,
355   UINT X,
356   UINT Flags,
357   __out D3DX11_FFT_BUFFER_INFO* pBufferInfo,
358   __out ID3DX11FFT** ppFFT
359 );
360HRESULT WINAPI D3DX11CreateFFT1DComplex(
361   ID3D11DeviceContext* pDeviceContext,
362   UINT X,
363   UINT Flags,
364   __out D3DX11_FFT_BUFFER_INFO* pBufferInfo,
365   __out ID3DX11FFT** ppFFT
366 );
367HRESULT WINAPI D3DX11CreateFFT2DReal(
368   ID3D11DeviceContext* pDeviceContext,
369   UINT X,
370   UINT Y,
371   UINT Flags,
372   __out D3DX11_FFT_BUFFER_INFO* pBufferInfo,
373   __out ID3DX11FFT** ppFFT
374 );
375HRESULT WINAPI D3DX11CreateFFT2DComplex(
376   ID3D11DeviceContext* pDeviceContext,
377   UINT X,
378   UINT Y,
379   UINT Flags,
380   __out D3DX11_FFT_BUFFER_INFO* pBufferInfo,
381   __out ID3DX11FFT** ppFFT
382 );
383HRESULT WINAPI D3DX11CreateFFT3DReal(
384   ID3D11DeviceContext* pDeviceContext,
385   UINT X,
386   UINT Y,
387   UINT Z,
388   UINT Flags,
389   __out D3DX11_FFT_BUFFER_INFO* pBufferInfo,
390   __out ID3DX11FFT** ppFFT
391 );
392HRESULT WINAPI D3DX11CreateFFT3DComplex(
393   ID3D11DeviceContext* pDeviceContext,
394   UINT X,
395   UINT Y,
396   UINT Z,
397   UINT Flags,
398   __out D3DX11_FFT_BUFFER_INFO* pBufferInfo,
399   __out ID3DX11FFT** ppFFT
400 );
401
402
403#ifdef __cplusplus
404}
405#endif //__cplusplus
406
407#endif //__D3DX11GPGPU_H__
408
409
trunk/3rdparty/dxsdk/Include/D3DX10.h
r243310r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       d3dx10.h
6//  Content:    D3DX10 utility library
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#ifdef  __D3DX10_INTERNAL__
11#error Incorrect D3DX10 header used
12#endif
13
14#ifndef __D3DX10_H__
15#define __D3DX10_H__
16
17
18// Defines
19#include <limits.h>
20#include <float.h>
21
22#define D3DX10_DEFAULT            ((UINT) -1)
23#define D3DX10_FROM_FILE          ((UINT) -3)
24#define DXGI_FORMAT_FROM_FILE     ((DXGI_FORMAT) -3)
25
26#ifndef D3DX10INLINE
27#ifdef _MSC_VER
28  #if (_MSC_VER >= 1200)
29  #define D3DX10INLINE __forceinline
30  #else
31  #define D3DX10INLINE __inline
32  #endif
33#else
34  #ifdef __cplusplus
35  #define D3DX10INLINE inline
36  #else
37  #define D3DX10INLINE
38  #endif
39#endif
40#endif
41
42
43
44// Includes
45#include "d3d10.h"
46#include "d3dx10.h"
47#include "d3dx10math.h"
48#include "d3dx10core.h"
49#include "d3dx10tex.h"
50#include "d3dx10mesh.h"
51#include "d3dx10async.h"
52
53
54// Errors
55#define _FACDD  0x876
56#define MAKE_DDHRESULT( code )  MAKE_HRESULT( 1, _FACDD, code )
57
58enum _D3DX10_ERR {
59    D3DX10_ERR_CANNOT_MODIFY_INDEX_BUFFER       = MAKE_DDHRESULT(2900),
60    D3DX10_ERR_INVALID_MESH                     = MAKE_DDHRESULT(2901),
61    D3DX10_ERR_CANNOT_ATTR_SORT                 = MAKE_DDHRESULT(2902),
62    D3DX10_ERR_SKINNING_NOT_SUPPORTED           = MAKE_DDHRESULT(2903),
63    D3DX10_ERR_TOO_MANY_INFLUENCES              = MAKE_DDHRESULT(2904),
64    D3DX10_ERR_INVALID_DATA                     = MAKE_DDHRESULT(2905),
65    D3DX10_ERR_LOADED_MESH_HAS_NO_DATA          = MAKE_DDHRESULT(2906),
66    D3DX10_ERR_DUPLICATE_NAMED_FRAGMENT         = MAKE_DDHRESULT(2907),
67    D3DX10_ERR_CANNOT_REMOVE_LAST_ITEM          = MAKE_DDHRESULT(2908),
68};
69
70
71#endif //__D3DX10_H__
72
trunk/3rdparty/dxsdk/Include/D3DX10core.h
r243310r243311
1///////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       d3dx10core.h
6//  Content:    D3DX10 core types and functions
7//
8///////////////////////////////////////////////////////////////////////////
9
10#include "d3dx10.h"
11
12#ifndef __D3DX10CORE_H__
13#define __D3DX10CORE_H__
14
15// Current name of the DLL shipped in the same SDK as this header.
16
17
18#define D3DX10_DLL_W L"d3dx10_43.dll"
19#define D3DX10_DLL_A "d3dx10_43.dll"
20
21#ifdef UNICODE
22    #define D3DX10_DLL D3DX10_DLL_W
23#else
24    #define D3DX10_DLL D3DX10_DLL_A
25#endif
26
27#ifdef __cplusplus
28extern "C" {
29#endif //__cplusplus
30
31///////////////////////////////////////////////////////////////////////////
32// D3DX10_SDK_VERSION:
33// -----------------
34// This identifier is passed to D3DX10CheckVersion in order to ensure that an
35// application was built against the correct header files and lib files.
36// This number is incremented whenever a header (or other) change would
37// require applications to be rebuilt. If the version doesn't match,
38// D3DX10CreateVersion will return FALSE. (The number itself has no meaning.)
39///////////////////////////////////////////////////////////////////////////
40
41
42#define D3DX10_SDK_VERSION 43
43
44
45///////////////////////////////////////////////////////////////////////////
46// D3DX10CreateDevice
47// D3DX10CreateDeviceAndSwapChain
48// D3DX10GetFeatureLevel1
49///////////////////////////////////////////////////////////////////////////
50HRESULT WINAPI D3DX10CreateDevice(IDXGIAdapter *pAdapter,
51                                  D3D10_DRIVER_TYPE DriverType,
52                                  HMODULE Software,
53                                  UINT Flags,
54                                  ID3D10Device **ppDevice);
55
56HRESULT WINAPI D3DX10CreateDeviceAndSwapChain(IDXGIAdapter *pAdapter,
57                                              D3D10_DRIVER_TYPE DriverType,
58                                              HMODULE Software,
59                                              UINT Flags,
60                                              DXGI_SWAP_CHAIN_DESC *pSwapChainDesc,
61                                              IDXGISwapChain **ppSwapChain,   
62                                              ID3D10Device **ppDevice);
63
64typedef interface ID3D10Device1 ID3D10Device1;
65HRESULT WINAPI D3DX10GetFeatureLevel1(ID3D10Device *pDevice, ID3D10Device1 **ppDevice1);
66
67
68#ifdef D3D_DIAG_DLL
69BOOL WINAPI D3DX10DebugMute(BOOL Mute); 
70#endif
71HRESULT WINAPI D3DX10CheckVersion(UINT D3DSdkVersion, UINT D3DX10SdkVersion);
72
73#ifdef __cplusplus
74}
75#endif //__cplusplus
76
77
78//////////////////////////////////////////////////////////////////////////////
79// D3DX10_SPRITE flags:
80// -----------------
81// D3DX10_SPRITE_SAVE_STATE
82//   Specifies device state should be saved and restored in Begin/End.
83// D3DX10SPRITE_SORT_TEXTURE
84//   Sprites are sorted by texture prior to drawing.  This is recommended when
85//   drawing non-overlapping sprites of uniform depth.  For example, drawing
86//   screen-aligned text with ID3DX10Font.
87// D3DX10SPRITE_SORT_DEPTH_FRONT_TO_BACK
88//   Sprites are sorted by depth front-to-back prior to drawing.  This is
89//   recommended when drawing opaque sprites of varying depths.
90// D3DX10SPRITE_SORT_DEPTH_BACK_TO_FRONT
91//   Sprites are sorted by depth back-to-front prior to drawing.  This is
92//   recommended when drawing transparent sprites of varying depths.
93// D3DX10SPRITE_ADDREF_TEXTURES
94//   AddRef/Release all textures passed in to DrawSpritesBuffered
95//////////////////////////////////////////////////////////////////////////////
96
97typedef enum _D3DX10_SPRITE_FLAG
98{
99    D3DX10_SPRITE_SORT_TEXTURE              = 0x01,
100    D3DX10_SPRITE_SORT_DEPTH_BACK_TO_FRONT  = 0x02,
101    D3DX10_SPRITE_SORT_DEPTH_FRONT_TO_BACK  = 0x04,
102    D3DX10_SPRITE_SAVE_STATE                = 0x08,
103    D3DX10_SPRITE_ADDREF_TEXTURES           = 0x10,
104} D3DX10_SPRITE_FLAG;
105
106typedef struct _D3DX10_SPRITE
107{
108    D3DXMATRIX  matWorld;
109
110    D3DXVECTOR2 TexCoord;
111    D3DXVECTOR2 TexSize;
112
113    D3DXCOLOR   ColorModulate;
114
115    ID3D10ShaderResourceView *pTexture;
116    UINT        TextureIndex;
117} D3DX10_SPRITE;
118
119
120//////////////////////////////////////////////////////////////////////////////
121// ID3DX10Sprite:
122// ------------
123// This object intends to provide an easy way to drawing sprites using D3D.
124//
125// Begin -
126//    Prepares device for drawing sprites.
127//
128// Draw -
129//    Draws a sprite
130//
131// Flush -
132//    Forces all batched sprites to submitted to the device.
133//
134// End -
135//    Restores device state to how it was when Begin was called.
136//
137//////////////////////////////////////////////////////////////////////////////
138
139typedef interface ID3DX10Sprite ID3DX10Sprite;
140typedef interface ID3DX10Sprite *LPD3DX10SPRITE;
141
142
143// {BA0B762D-8D28-43ec-B9DC-2F84443B0614}
144DEFINE_GUID(IID_ID3DX10Sprite,
1450xba0b762d, 0x8d28, 0x43ec, 0xb9, 0xdc, 0x2f, 0x84, 0x44, 0x3b, 0x6, 0x14);
146
147
148#undef INTERFACE
149#define INTERFACE ID3DX10Sprite
150
151DECLARE_INTERFACE_(ID3DX10Sprite, IUnknown)
152{
153    // IUnknown
154    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
155    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
156    STDMETHOD_(ULONG, Release)(THIS) PURE;
157
158    // ID3DX10Sprite
159    STDMETHOD(Begin)(THIS_ UINT flags) PURE;
160   
161    STDMETHOD(DrawSpritesBuffered)(THIS_ D3DX10_SPRITE *pSprites, UINT cSprites) PURE;
162    STDMETHOD(Flush)(THIS) PURE;
163
164    STDMETHOD(DrawSpritesImmediate)(THIS_ D3DX10_SPRITE *pSprites, UINT cSprites, UINT cbSprite, UINT flags) PURE;
165    STDMETHOD(End)(THIS) PURE;
166
167    STDMETHOD(GetViewTransform)(THIS_ D3DXMATRIX *pViewTransform) PURE;
168    STDMETHOD(SetViewTransform)(THIS_ D3DXMATRIX *pViewTransform) PURE;
169    STDMETHOD(GetProjectionTransform)(THIS_ D3DXMATRIX *pProjectionTransform) PURE;
170    STDMETHOD(SetProjectionTransform)(THIS_ D3DXMATRIX *pProjectionTransform) PURE;
171
172    STDMETHOD(GetDevice)(THIS_ ID3D10Device** ppDevice) PURE;
173};
174
175
176#ifdef __cplusplus
177extern "C" {
178#endif //__cplusplus
179
180HRESULT WINAPI
181    D3DX10CreateSprite(
182        ID3D10Device*         pDevice,
183        UINT                  cDeviceBufferSize,
184        LPD3DX10SPRITE*       ppSprite);
185
186#ifdef __cplusplus
187}
188#endif //__cplusplus
189
190
191//////////////////////////////////////////////////////////////////////////////
192// ID3DX10ThreadPump:
193//////////////////////////////////////////////////////////////////////////////
194
195#undef INTERFACE
196#define INTERFACE ID3DX10DataLoader
197
198DECLARE_INTERFACE(ID3DX10DataLoader)
199{
200   STDMETHOD(Load)(THIS) PURE;
201   STDMETHOD(Decompress)(THIS_ void **ppData, SIZE_T *pcBytes) PURE;
202   STDMETHOD(Destroy)(THIS) PURE;
203};
204
205#undef INTERFACE
206#define INTERFACE ID3DX10DataProcessor
207
208DECLARE_INTERFACE(ID3DX10DataProcessor)
209{
210   STDMETHOD(Process)(THIS_ void *pData, SIZE_T cBytes) PURE;
211   STDMETHOD(CreateDeviceObject)(THIS_ void **ppDataObject) PURE;
212   STDMETHOD(Destroy)(THIS) PURE;
213};
214
215// {C93FECFA-6967-478a-ABBC-402D90621FCB}
216DEFINE_GUID(IID_ID3DX10ThreadPump,
2170xc93fecfa, 0x6967, 0x478a, 0xab, 0xbc, 0x40, 0x2d, 0x90, 0x62, 0x1f, 0xcb);
218
219#undef INTERFACE
220#define INTERFACE ID3DX10ThreadPump
221
222DECLARE_INTERFACE_(ID3DX10ThreadPump, IUnknown)
223{
224    // IUnknown
225    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
226    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
227    STDMETHOD_(ULONG, Release)(THIS) PURE;
228
229    // ID3DX10ThreadPump
230    STDMETHOD(AddWorkItem)(THIS_ ID3DX10DataLoader *pDataLoader, ID3DX10DataProcessor *pDataProcessor, HRESULT *pHResult, void **ppDeviceObject) PURE;
231    STDMETHOD_(UINT, GetWorkItemCount)(THIS) PURE;
232     
233    STDMETHOD(WaitForAllItems)(THIS) PURE;
234    STDMETHOD(ProcessDeviceWorkItems)(THIS_ UINT iWorkItemCount);
235
236    STDMETHOD(PurgeAllItems)(THIS) PURE;
237    STDMETHOD(GetQueueStatus)(THIS_ UINT *pIoQueue, UINT *pProcessQueue, UINT *pDeviceQueue) PURE;
238   
239};
240
241HRESULT WINAPI D3DX10CreateThreadPump(UINT cIoThreads, UINT cProcThreads, ID3DX10ThreadPump **ppThreadPump);
242
243
244//////////////////////////////////////////////////////////////////////////////
245// ID3DX10Font:
246// ----------
247// Font objects contain the textures and resources needed to render a specific
248// font on a specific device.
249//
250// GetGlyphData -
251//    Returns glyph cache data, for a given glyph.
252//
253// PreloadCharacters/PreloadGlyphs/PreloadText -
254//    Preloads glyphs into the glyph cache textures.
255//
256// DrawText -
257//    Draws formatted text on a D3D device.  Some parameters are
258//    surprisingly similar to those of GDI's DrawText function.  See GDI
259//    documentation for a detailed description of these parameters.
260//    If pSprite is NULL, an internal sprite object will be used.
261//
262//////////////////////////////////////////////////////////////////////////////
263
264typedef struct _D3DX10_FONT_DESCA
265{
266    INT Height;
267    UINT Width;
268    UINT Weight;
269    UINT MipLevels;
270    BOOL Italic;
271    BYTE CharSet;
272    BYTE OutputPrecision;
273    BYTE Quality;
274    BYTE PitchAndFamily;
275    CHAR FaceName[LF_FACESIZE];
276
277} D3DX10_FONT_DESCA, *LPD3DX10_FONT_DESCA;
278
279typedef struct _D3DX10_FONT_DESCW
280{
281    INT Height;
282    UINT Width;
283    UINT Weight;
284    UINT MipLevels;
285    BOOL Italic;
286    BYTE CharSet;
287    BYTE OutputPrecision;
288    BYTE Quality;
289    BYTE PitchAndFamily;
290    WCHAR FaceName[LF_FACESIZE];
291
292} D3DX10_FONT_DESCW, *LPD3DX10_FONT_DESCW;
293
294#ifdef UNICODE
295typedef D3DX10_FONT_DESCW D3DX10_FONT_DESC;
296typedef LPD3DX10_FONT_DESCW LPD3DX10_FONT_DESC;
297#else
298typedef D3DX10_FONT_DESCA D3DX10_FONT_DESC;
299typedef LPD3DX10_FONT_DESCA LPD3DX10_FONT_DESC;
300#endif
301
302
303typedef interface ID3DX10Font ID3DX10Font;
304typedef interface ID3DX10Font *LPD3DX10FONT;
305
306
307// {D79DBB70-5F21-4d36-BBC2-FF525C213CDC}
308DEFINE_GUID(IID_ID3DX10Font,
3090xd79dbb70, 0x5f21, 0x4d36, 0xbb, 0xc2, 0xff, 0x52, 0x5c, 0x21, 0x3c, 0xdc);
310
311
312#undef INTERFACE
313#define INTERFACE ID3DX10Font
314
315DECLARE_INTERFACE_(ID3DX10Font, IUnknown)
316{
317    // IUnknown
318    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
319    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
320    STDMETHOD_(ULONG, Release)(THIS) PURE;
321
322    // ID3DX10Font
323    STDMETHOD(GetDevice)(THIS_ ID3D10Device** ppDevice) PURE;
324    STDMETHOD(GetDescA)(THIS_ D3DX10_FONT_DESCA *pDesc) PURE;
325    STDMETHOD(GetDescW)(THIS_ D3DX10_FONT_DESCW *pDesc) PURE;
326    STDMETHOD_(BOOL, GetTextMetricsA)(THIS_ TEXTMETRICA *pTextMetrics) PURE;
327    STDMETHOD_(BOOL, GetTextMetricsW)(THIS_ TEXTMETRICW *pTextMetrics) PURE;
328
329    STDMETHOD_(HDC, GetDC)(THIS) PURE;
330    STDMETHOD(GetGlyphData)(THIS_ UINT Glyph, ID3D10ShaderResourceView** ppTexture, RECT *pBlackBox, POINT *pCellInc) PURE;
331
332    STDMETHOD(PreloadCharacters)(THIS_ UINT First, UINT Last) PURE;
333    STDMETHOD(PreloadGlyphs)(THIS_ UINT First, UINT Last) PURE;
334    STDMETHOD(PreloadTextA)(THIS_ LPCSTR pString, INT Count) PURE;
335    STDMETHOD(PreloadTextW)(THIS_ LPCWSTR pString, INT Count) PURE;
336
337    STDMETHOD_(INT, DrawTextA)(THIS_ LPD3DX10SPRITE pSprite, LPCSTR pString, INT Count, LPRECT pRect, UINT Format, D3DXCOLOR Color) PURE;
338    STDMETHOD_(INT, DrawTextW)(THIS_ LPD3DX10SPRITE pSprite, LPCWSTR pString, INT Count, LPRECT pRect, UINT Format, D3DXCOLOR Color) PURE;
339
340#ifdef __cplusplus
341#ifdef UNICODE
342    HRESULT WINAPI_INLINE GetDesc(D3DX10_FONT_DESCW *pDesc) { return GetDescW(pDesc); }
343    HRESULT WINAPI_INLINE PreloadText(LPCWSTR pString, INT Count) { return PreloadTextW(pString, Count); }
344#else
345    HRESULT WINAPI_INLINE GetDesc(D3DX10_FONT_DESCA *pDesc) { return GetDescA(pDesc); }
346    HRESULT WINAPI_INLINE PreloadText(LPCSTR pString, INT Count) { return PreloadTextA(pString, Count); }
347#endif
348#endif //__cplusplus
349};
350
351#ifndef GetTextMetrics
352#ifdef UNICODE
353#define GetTextMetrics GetTextMetricsW
354#else
355#define GetTextMetrics GetTextMetricsA
356#endif
357#endif
358
359#ifndef DrawText
360#ifdef UNICODE
361#define DrawText DrawTextW
362#else
363#define DrawText DrawTextA
364#endif
365#endif
366
367
368#ifdef __cplusplus
369extern "C" {
370#endif //__cplusplus
371
372
373HRESULT WINAPI
374    D3DX10CreateFontA(
375        ID3D10Device*           pDevice, 
376        INT                     Height,
377        UINT                    Width,
378        UINT                    Weight,
379        UINT                    MipLevels,
380        BOOL                    Italic,
381        UINT                    CharSet,
382        UINT                    OutputPrecision,
383        UINT                    Quality,
384        UINT                    PitchAndFamily,
385        LPCSTR                  pFaceName,
386        LPD3DX10FONT*           ppFont);
387
388HRESULT WINAPI
389    D3DX10CreateFontW(
390        ID3D10Device*           pDevice, 
391        INT                     Height,
392        UINT                    Width,
393        UINT                    Weight,
394        UINT                    MipLevels,
395        BOOL                    Italic,
396        UINT                    CharSet,
397        UINT                    OutputPrecision,
398        UINT                    Quality,
399        UINT                    PitchAndFamily,
400        LPCWSTR                 pFaceName,
401        LPD3DX10FONT*           ppFont);
402
403#ifdef UNICODE
404#define D3DX10CreateFont D3DX10CreateFontW
405#else
406#define D3DX10CreateFont D3DX10CreateFontA
407#endif
408
409
410HRESULT WINAPI
411    D3DX10CreateFontIndirectA(
412        ID3D10Device*             pDevice, 
413        CONST D3DX10_FONT_DESCA*   pDesc,
414        LPD3DX10FONT*             ppFont);
415
416HRESULT WINAPI
417    D3DX10CreateFontIndirectW(
418        ID3D10Device*             pDevice, 
419        CONST D3DX10_FONT_DESCW*   pDesc,
420        LPD3DX10FONT*             ppFont);
421
422#ifdef UNICODE
423#define D3DX10CreateFontIndirect D3DX10CreateFontIndirectW
424#else
425#define D3DX10CreateFontIndirect D3DX10CreateFontIndirectA
426#endif
427
428HRESULT WINAPI D3DX10UnsetAllDeviceObjects(ID3D10Device *pDevice);
429
430#ifdef __cplusplus
431}
432#endif //__cplusplus
433
434///////////////////////////////////////////////////////////////////////////
435
436#define _FACD3D  0x876
437#define MAKE_D3DHRESULT( code )  MAKE_HRESULT( 1, _FACD3D, code )
438#define MAKE_D3DSTATUS( code )  MAKE_HRESULT( 0, _FACD3D, code )
439
440#define D3DERR_INVALIDCALL                      MAKE_D3DHRESULT(2156)
441#define D3DERR_WASSTILLDRAWING                  MAKE_D3DHRESULT(540)
442
443#endif //__D3DX10CORE_H__
444
trunk/3rdparty/dxsdk/Include/D3DX10math.h
r243310r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       D3DX10math.h
6//  Content:    D3DX10 math types and functions
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#include "D3DX10.h"
11
12// D3DX10 and D3DX9 math look the same. You can include either one into your project.
13// We are intentionally using the header define from D3DX9 math to prevent double-inclusion.
14#ifndef __D3DX9MATH_H__
15#define __D3DX9MATH_H__
16
17#include <math.h>
18#if _MSC_VER >= 1200
19#pragma warning(push)
20#endif
21#pragma warning(disable:4201) // anonymous unions warning
22
23//===========================================================================
24//
25// Type definitions from D3D9
26//
27//===========================================================================
28
29#ifndef D3DVECTOR_DEFINED
30typedef struct _D3DVECTOR {
31    float x;
32    float y;
33    float z;
34} D3DVECTOR;
35#define D3DVECTOR_DEFINED
36#endif
37
38#ifndef D3DMATRIX_DEFINED
39typedef struct _D3DMATRIX {
40    union {
41        struct {
42            float        _11, _12, _13, _14;
43            float        _21, _22, _23, _24;
44            float        _31, _32, _33, _34;
45            float        _41, _42, _43, _44;
46
47        };
48        float m[4][4];
49    };
50} D3DMATRIX;
51#define D3DMATRIX_DEFINED
52#endif
53
54//===========================================================================
55//
56// General purpose utilities
57//
58//===========================================================================
59#define D3DX_PI    (3.14159265358979323846)
60#define D3DX_1BYPI ( 1.0 / D3DX_PI )
61
62#define D3DXToRadian( degree ) ((degree) * (D3DX_PI / 180.0))
63#define D3DXToDegree( radian ) ((radian) * (180.0 / D3DX_PI))
64
65
66
67//===========================================================================
68//
69// 16 bit floating point numbers
70//
71//===========================================================================
72
73#define D3DX_16F_DIG          3                // # of decimal digits of precision
74#define D3DX_16F_EPSILON      4.8875809e-4f    // smallest such that 1.0 + epsilon != 1.0
75#define D3DX_16F_MANT_DIG     11               // # of bits in mantissa
76#define D3DX_16F_MAX          6.550400e+004    // max value
77#define D3DX_16F_MAX_10_EXP   4                // max decimal exponent
78#define D3DX_16F_MAX_EXP      15               // max binary exponent
79#define D3DX_16F_MIN          6.1035156e-5f    // min positive value
80#define D3DX_16F_MIN_10_EXP   (-4)             // min decimal exponent
81#define D3DX_16F_MIN_EXP      (-14)            // min binary exponent
82#define D3DX_16F_RADIX        2                // exponent radix
83#define D3DX_16F_ROUNDS       1                // addition rounding: near
84#define D3DX_16F_SIGN_MASK    0x8000
85#define D3DX_16F_EXP_MASK     0x7C00
86#define D3DX_16F_FRAC_MASK    0x03FF
87
88typedef struct D3DXFLOAT16
89{
90#ifdef __cplusplus
91public:
92    D3DXFLOAT16() {};
93    D3DXFLOAT16( FLOAT );
94    D3DXFLOAT16( CONST D3DXFLOAT16& );
95
96    // casting
97    operator FLOAT ();
98
99    // binary operators
100    BOOL operator == ( CONST D3DXFLOAT16& ) const;
101    BOOL operator != ( CONST D3DXFLOAT16& ) const;
102
103protected:
104#endif //__cplusplus
105    WORD value;
106} D3DXFLOAT16, *LPD3DXFLOAT16;
107
108
109
110//===========================================================================
111//
112// Vectors
113//
114//===========================================================================
115
116
117//--------------------------
118// 2D Vector
119//--------------------------
120typedef struct D3DXVECTOR2
121{
122#ifdef __cplusplus
123public:
124    D3DXVECTOR2() {};
125    D3DXVECTOR2( CONST FLOAT * );
126    D3DXVECTOR2( CONST D3DXFLOAT16 * );
127    D3DXVECTOR2( FLOAT x, FLOAT y );
128
129    // casting
130    operator FLOAT* ();
131    operator CONST FLOAT* () const;
132
133    // assignment operators
134    D3DXVECTOR2& operator += ( CONST D3DXVECTOR2& );
135    D3DXVECTOR2& operator -= ( CONST D3DXVECTOR2& );
136    D3DXVECTOR2& operator *= ( FLOAT );
137    D3DXVECTOR2& operator /= ( FLOAT );
138
139    // unary operators
140    D3DXVECTOR2 operator + () const;
141    D3DXVECTOR2 operator - () const;
142
143    // binary operators
144    D3DXVECTOR2 operator + ( CONST D3DXVECTOR2& ) const;
145    D3DXVECTOR2 operator - ( CONST D3DXVECTOR2& ) const;
146    D3DXVECTOR2 operator * ( FLOAT ) const;
147    D3DXVECTOR2 operator / ( FLOAT ) const;
148
149    friend D3DXVECTOR2 operator * ( FLOAT, CONST D3DXVECTOR2& );
150
151    BOOL operator == ( CONST D3DXVECTOR2& ) const;
152    BOOL operator != ( CONST D3DXVECTOR2& ) const;
153
154
155public:
156#endif //__cplusplus
157    FLOAT x, y;
158} D3DXVECTOR2, *LPD3DXVECTOR2;
159
160
161
162//--------------------------
163// 2D Vector (16 bit)
164//--------------------------
165
166typedef struct D3DXVECTOR2_16F
167{
168#ifdef __cplusplus
169public:
170    D3DXVECTOR2_16F() {};
171    D3DXVECTOR2_16F( CONST FLOAT * );
172    D3DXVECTOR2_16F( CONST D3DXFLOAT16 * );
173    D3DXVECTOR2_16F( CONST D3DXFLOAT16 &x, CONST D3DXFLOAT16 &y );
174
175    // casting
176    operator D3DXFLOAT16* ();
177    operator CONST D3DXFLOAT16* () const;
178
179    // binary operators
180    BOOL operator == ( CONST D3DXVECTOR2_16F& ) const;
181    BOOL operator != ( CONST D3DXVECTOR2_16F& ) const;
182
183public:
184#endif //__cplusplus
185    D3DXFLOAT16 x, y;
186
187} D3DXVECTOR2_16F, *LPD3DXVECTOR2_16F;
188
189
190
191//--------------------------
192// 3D Vector
193//--------------------------
194#ifdef __cplusplus
195typedef struct D3DXVECTOR3 : public D3DVECTOR
196{
197public:
198    D3DXVECTOR3() {};
199    D3DXVECTOR3( CONST FLOAT * );
200    D3DXVECTOR3( CONST D3DVECTOR& );
201    D3DXVECTOR3( CONST D3DXFLOAT16 * );
202    D3DXVECTOR3( FLOAT x, FLOAT y, FLOAT z );
203
204    // casting
205    operator FLOAT* ();
206    operator CONST FLOAT* () const;
207
208    // assignment operators
209    D3DXVECTOR3& operator += ( CONST D3DXVECTOR3& );
210    D3DXVECTOR3& operator -= ( CONST D3DXVECTOR3& );
211    D3DXVECTOR3& operator *= ( FLOAT );
212    D3DXVECTOR3& operator /= ( FLOAT );
213
214    // unary operators
215    D3DXVECTOR3 operator + () const;
216    D3DXVECTOR3 operator - () const;
217
218    // binary operators
219    D3DXVECTOR3 operator + ( CONST D3DXVECTOR3& ) const;
220    D3DXVECTOR3 operator - ( CONST D3DXVECTOR3& ) const;
221    D3DXVECTOR3 operator * ( FLOAT ) const;
222    D3DXVECTOR3 operator / ( FLOAT ) const;
223
224    friend D3DXVECTOR3 operator * ( FLOAT, CONST struct D3DXVECTOR3& );
225
226    BOOL operator == ( CONST D3DXVECTOR3& ) const;
227    BOOL operator != ( CONST D3DXVECTOR3& ) const;
228
229} D3DXVECTOR3, *LPD3DXVECTOR3;
230
231#else //!__cplusplus
232typedef struct _D3DVECTOR D3DXVECTOR3, *LPD3DXVECTOR3;
233#endif //!__cplusplus
234
235
236
237//--------------------------
238// 3D Vector (16 bit)
239//--------------------------
240typedef struct D3DXVECTOR3_16F
241{
242#ifdef __cplusplus
243public:
244    D3DXVECTOR3_16F() {};
245    D3DXVECTOR3_16F( CONST FLOAT * );
246    D3DXVECTOR3_16F( CONST D3DVECTOR& );
247    D3DXVECTOR3_16F( CONST D3DXFLOAT16 * );
248    D3DXVECTOR3_16F( CONST D3DXFLOAT16 &x, CONST D3DXFLOAT16 &y, CONST D3DXFLOAT16 &z );
249
250    // casting
251    operator D3DXFLOAT16* ();
252    operator CONST D3DXFLOAT16* () const;
253
254    // binary operators
255    BOOL operator == ( CONST D3DXVECTOR3_16F& ) const;
256    BOOL operator != ( CONST D3DXVECTOR3_16F& ) const;
257
258public:
259#endif //__cplusplus
260    D3DXFLOAT16 x, y, z;
261
262} D3DXVECTOR3_16F, *LPD3DXVECTOR3_16F;
263
264
265
266//--------------------------
267// 4D Vector
268//--------------------------
269typedef struct D3DXVECTOR4
270{
271#ifdef __cplusplus
272public:
273    D3DXVECTOR4() {};
274    D3DXVECTOR4( CONST FLOAT* );
275    D3DXVECTOR4( CONST D3DXFLOAT16* );
276    D3DXVECTOR4( CONST D3DVECTOR& xyz, FLOAT w );
277    D3DXVECTOR4( FLOAT x, FLOAT y, FLOAT z, FLOAT w );
278
279    // casting
280    operator FLOAT* ();
281    operator CONST FLOAT* () const;
282
283    // assignment operators
284    D3DXVECTOR4& operator += ( CONST D3DXVECTOR4& );
285    D3DXVECTOR4& operator -= ( CONST D3DXVECTOR4& );
286    D3DXVECTOR4& operator *= ( FLOAT );
287    D3DXVECTOR4& operator /= ( FLOAT );
288
289    // unary operators
290    D3DXVECTOR4 operator + () const;
291    D3DXVECTOR4 operator - () const;
292
293    // binary operators
294    D3DXVECTOR4 operator + ( CONST D3DXVECTOR4& ) const;
295    D3DXVECTOR4 operator - ( CONST D3DXVECTOR4& ) const;
296    D3DXVECTOR4 operator * ( FLOAT ) const;
297    D3DXVECTOR4 operator / ( FLOAT ) const;
298
299    friend D3DXVECTOR4 operator * ( FLOAT, CONST D3DXVECTOR4& );
300
301    BOOL operator == ( CONST D3DXVECTOR4& ) const;
302    BOOL operator != ( CONST D3DXVECTOR4& ) const;
303
304public:
305#endif //__cplusplus
306    FLOAT x, y, z, w;
307} D3DXVECTOR4, *LPD3DXVECTOR4;
308
309
310//--------------------------
311// 4D Vector (16 bit)
312//--------------------------
313typedef struct D3DXVECTOR4_16F
314{
315#ifdef __cplusplus
316public:
317    D3DXVECTOR4_16F() {};
318    D3DXVECTOR4_16F( CONST FLOAT * );
319    D3DXVECTOR4_16F( CONST D3DXFLOAT16* );
320    D3DXVECTOR4_16F( CONST D3DXVECTOR3_16F& xyz, CONST D3DXFLOAT16& w );
321    D3DXVECTOR4_16F( CONST D3DXFLOAT16& x, CONST D3DXFLOAT16& y, CONST D3DXFLOAT16& z, CONST D3DXFLOAT16& w );
322
323    // casting
324    operator D3DXFLOAT16* ();
325    operator CONST D3DXFLOAT16* () const;
326
327    // binary operators
328    BOOL operator == ( CONST D3DXVECTOR4_16F& ) const;
329    BOOL operator != ( CONST D3DXVECTOR4_16F& ) const;
330
331public:
332#endif //__cplusplus
333    D3DXFLOAT16 x, y, z, w;
334
335} D3DXVECTOR4_16F, *LPD3DXVECTOR4_16F;
336
337
338
339//===========================================================================
340//
341// Matrices
342//
343//===========================================================================
344#ifdef __cplusplus
345typedef struct D3DXMATRIX : public D3DMATRIX
346{
347public:
348    D3DXMATRIX() {};
349    D3DXMATRIX( CONST FLOAT * );
350    D3DXMATRIX( CONST D3DMATRIX& );
351    D3DXMATRIX( CONST D3DXFLOAT16 * );
352    D3DXMATRIX( FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14,
353                FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24,
354                FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34,
355                FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44 );
356
357
358    // access grants
359    FLOAT& operator () ( UINT Row, UINT Col );
360    FLOAT  operator () ( UINT Row, UINT Col ) const;
361
362    // casting operators
363    operator FLOAT* ();
364    operator CONST FLOAT* () const;
365
366    // assignment operators
367    D3DXMATRIX& operator *= ( CONST D3DXMATRIX& );
368    D3DXMATRIX& operator += ( CONST D3DXMATRIX& );
369    D3DXMATRIX& operator -= ( CONST D3DXMATRIX& );
370    D3DXMATRIX& operator *= ( FLOAT );
371    D3DXMATRIX& operator /= ( FLOAT );
372
373    // unary operators
374    D3DXMATRIX operator + () const;
375    D3DXMATRIX operator - () const;
376
377    // binary operators
378    D3DXMATRIX operator * ( CONST D3DXMATRIX& ) const;
379    D3DXMATRIX operator + ( CONST D3DXMATRIX& ) const;
380    D3DXMATRIX operator - ( CONST D3DXMATRIX& ) const;
381    D3DXMATRIX operator * ( FLOAT ) const;
382    D3DXMATRIX operator / ( FLOAT ) const;
383
384    friend D3DXMATRIX operator * ( FLOAT, CONST D3DXMATRIX& );
385
386    BOOL operator == ( CONST D3DXMATRIX& ) const;
387    BOOL operator != ( CONST D3DXMATRIX& ) const;
388
389} D3DXMATRIX, *LPD3DXMATRIX;
390
391#else //!__cplusplus
392typedef struct _D3DMATRIX D3DXMATRIX, *LPD3DXMATRIX;
393#endif //!__cplusplus
394
395
396//---------------------------------------------------------------------------
397// Aligned Matrices
398//
399// This class helps keep matrices 16-byte aligned as preferred by P4 cpus.
400// It aligns matrices on the stack and on the heap or in global scope.
401// It does this using __declspec(align(16)) which works on VC7 and on VC 6
402// with the processor pack. Unfortunately there is no way to detect the
403// latter so this is turned on only on VC7. On other compilers this is the
404// the same as D3DXMATRIX.
405//
406// Using this class on a compiler that does not actually do the alignment
407// can be dangerous since it will not expose bugs that ignore alignment.
408// E.g if an object of this class in inside a struct or class, and some code
409// memcopys data in it assuming tight packing. This could break on a compiler
410// that eventually start aligning the matrix.
411//---------------------------------------------------------------------------
412#ifdef __cplusplus
413typedef struct _D3DXMATRIXA16 : public D3DXMATRIX
414{
415    _D3DXMATRIXA16() {};
416    _D3DXMATRIXA16( CONST FLOAT * );
417    _D3DXMATRIXA16( CONST D3DMATRIX& );
418    _D3DXMATRIXA16( CONST D3DXFLOAT16 * );
419    _D3DXMATRIXA16( FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14,
420                    FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24,
421                    FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34,
422                    FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44 );
423
424    // new operators
425    void* operator new   ( size_t );
426    void* operator new[] ( size_t );
427
428    // delete operators
429    void operator delete   ( void* );   // These are NOT virtual; Do not
430    void operator delete[] ( void* );   // cast to D3DXMATRIX and delete.
431   
432    // assignment operators
433    _D3DXMATRIXA16& operator = ( CONST D3DXMATRIX& );
434
435} _D3DXMATRIXA16;
436
437#else //!__cplusplus
438typedef D3DXMATRIX  _D3DXMATRIXA16;
439#endif //!__cplusplus
440
441
442
443#if _MSC_VER >= 1300  // VC7
444#define D3DX_ALIGN16 __declspec(align(16))
445#else
446#define D3DX_ALIGN16  // Earlier compiler may not understand this, do nothing.
447#endif
448
449typedef D3DX_ALIGN16 _D3DXMATRIXA16 D3DXMATRIXA16, *LPD3DXMATRIXA16;
450
451
452
453//===========================================================================
454//
455//    Quaternions
456//
457//===========================================================================
458typedef struct D3DXQUATERNION
459{
460#ifdef __cplusplus
461public:
462    D3DXQUATERNION() {};
463    D3DXQUATERNION( CONST FLOAT * );
464    D3DXQUATERNION( CONST D3DXFLOAT16 * );
465    D3DXQUATERNION( FLOAT x, FLOAT y, FLOAT z, FLOAT w );
466
467    // casting
468    operator FLOAT* ();
469    operator CONST FLOAT* () const;
470
471    // assignment operators
472    D3DXQUATERNION& operator += ( CONST D3DXQUATERNION& );
473    D3DXQUATERNION& operator -= ( CONST D3DXQUATERNION& );
474    D3DXQUATERNION& operator *= ( CONST D3DXQUATERNION& );
475    D3DXQUATERNION& operator *= ( FLOAT );
476    D3DXQUATERNION& operator /= ( FLOAT );
477
478    // unary operators
479    D3DXQUATERNION  operator + () const;
480    D3DXQUATERNION  operator - () const;
481
482    // binary operators
483    D3DXQUATERNION operator + ( CONST D3DXQUATERNION& ) const;
484    D3DXQUATERNION operator - ( CONST D3DXQUATERNION& ) const;
485    D3DXQUATERNION operator * ( CONST D3DXQUATERNION& ) const;
486    D3DXQUATERNION operator * ( FLOAT ) const;
487    D3DXQUATERNION operator / ( FLOAT ) const;
488
489    friend D3DXQUATERNION operator * (FLOAT, CONST D3DXQUATERNION& );
490
491    BOOL operator == ( CONST D3DXQUATERNION& ) const;
492    BOOL operator != ( CONST D3DXQUATERNION& ) const;
493
494#endif //__cplusplus
495    FLOAT x, y, z, w;
496} D3DXQUATERNION, *LPD3DXQUATERNION;
497
498
499//===========================================================================
500//
501// Planes
502//
503//===========================================================================
504typedef struct D3DXPLANE
505{
506#ifdef __cplusplus
507public:
508    D3DXPLANE() {};
509    D3DXPLANE( CONST FLOAT* );
510    D3DXPLANE( CONST D3DXFLOAT16* );
511    D3DXPLANE( FLOAT a, FLOAT b, FLOAT c, FLOAT d );
512
513    // casting
514    operator FLOAT* ();
515    operator CONST FLOAT* () const;
516
517    // assignment operators
518    D3DXPLANE& operator *= ( FLOAT );
519    D3DXPLANE& operator /= ( FLOAT );
520
521    // unary operators
522    D3DXPLANE operator + () const;
523    D3DXPLANE operator - () const;
524
525    // binary operators
526    D3DXPLANE operator * ( FLOAT ) const;
527    D3DXPLANE operator / ( FLOAT ) const;
528
529    friend D3DXPLANE operator * ( FLOAT, CONST D3DXPLANE& );
530
531    BOOL operator == ( CONST D3DXPLANE& ) const;
532    BOOL operator != ( CONST D3DXPLANE& ) const;
533
534#endif //__cplusplus
535    FLOAT a, b, c, d;
536} D3DXPLANE, *LPD3DXPLANE;
537
538
539//===========================================================================
540//
541// Colors
542//
543//===========================================================================
544
545typedef struct D3DXCOLOR
546{
547#ifdef __cplusplus
548public:
549    D3DXCOLOR() {};
550    D3DXCOLOR( UINT  argb );
551    D3DXCOLOR( CONST FLOAT * );
552    D3DXCOLOR( CONST D3DXFLOAT16 * );
553    D3DXCOLOR( FLOAT r, FLOAT g, FLOAT b, FLOAT a );
554
555    // casting
556    operator UINT  () const;
557
558    operator FLOAT* ();
559    operator CONST FLOAT* () const;
560
561    // assignment operators
562    D3DXCOLOR& operator += ( CONST D3DXCOLOR& );
563    D3DXCOLOR& operator -= ( CONST D3DXCOLOR& );
564    D3DXCOLOR& operator *= ( FLOAT );
565    D3DXCOLOR& operator /= ( FLOAT );
566
567    // unary operators
568    D3DXCOLOR operator + () const;
569    D3DXCOLOR operator - () const;
570
571    // binary operators
572    D3DXCOLOR operator + ( CONST D3DXCOLOR& ) const;
573    D3DXCOLOR operator - ( CONST D3DXCOLOR& ) const;
574    D3DXCOLOR operator * ( FLOAT ) const;
575    D3DXCOLOR operator / ( FLOAT ) const;
576
577    friend D3DXCOLOR operator * ( FLOAT, CONST D3DXCOLOR& );
578
579    BOOL operator == ( CONST D3DXCOLOR& ) const;
580    BOOL operator != ( CONST D3DXCOLOR& ) const;
581
582#endif //__cplusplus
583    FLOAT r, g, b, a;
584} D3DXCOLOR, *LPD3DXCOLOR;
585
586
587
588//===========================================================================
589//
590// D3DX math functions:
591//
592// NOTE:
593//  * All these functions can take the same object as in and out parameters.
594//
595//  * Out parameters are typically also returned as return values, so that
596//    the output of one function may be used as a parameter to another.
597//
598//===========================================================================
599
600//--------------------------
601// Float16
602//--------------------------
603
604// non-inline
605#ifdef __cplusplus
606extern "C" {
607#endif
608
609// Converts an array 32-bit floats to 16-bit floats
610D3DXFLOAT16* WINAPI D3DXFloat32To16Array
611    ( D3DXFLOAT16 *pOut, CONST FLOAT *pIn, UINT n );
612
613// Converts an array 16-bit floats to 32-bit floats
614FLOAT* WINAPI D3DXFloat16To32Array
615    ( __out_ecount(n) FLOAT *pOut, __in_ecount(n) CONST D3DXFLOAT16 *pIn, UINT n );
616
617#ifdef __cplusplus
618}
619#endif
620
621
622//--------------------------
623// 2D Vector
624//--------------------------
625
626// inline
627
628FLOAT D3DXVec2Length
629    ( CONST D3DXVECTOR2 *pV );
630
631FLOAT D3DXVec2LengthSq
632    ( CONST D3DXVECTOR2 *pV );
633
634FLOAT D3DXVec2Dot
635    ( CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2 );
636
637// Z component of ((x1,y1,0) cross (x2,y2,0))
638FLOAT D3DXVec2CCW
639    ( CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2 );
640
641D3DXVECTOR2* D3DXVec2Add
642    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2 );
643
644D3DXVECTOR2* D3DXVec2Subtract
645    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2 );
646
647// Minimize each component.  x = min(x1, x2), y = min(y1, y2)
648D3DXVECTOR2* D3DXVec2Minimize
649    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2 );
650
651// Maximize each component.  x = max(x1, x2), y = max(y1, y2)
652D3DXVECTOR2* D3DXVec2Maximize
653    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2 );
654
655D3DXVECTOR2* D3DXVec2Scale
656    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV, FLOAT s );
657
658// Linear interpolation. V1 + s(V2-V1)
659D3DXVECTOR2* D3DXVec2Lerp
660    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2,
661      FLOAT s );
662
663// non-inline
664#ifdef __cplusplus
665extern "C" {
666#endif
667
668D3DXVECTOR2* WINAPI D3DXVec2Normalize
669    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV );
670
671// Hermite interpolation between position V1, tangent T1 (when s == 0)
672// and position V2, tangent T2 (when s == 1).
673D3DXVECTOR2* WINAPI D3DXVec2Hermite
674    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pT1,
675      CONST D3DXVECTOR2 *pV2, CONST D3DXVECTOR2 *pT2, FLOAT s );
676
677// CatmullRom interpolation between V1 (when s == 0) and V2 (when s == 1)
678D3DXVECTOR2* WINAPI D3DXVec2CatmullRom
679    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV0, CONST D3DXVECTOR2 *pV1,
680      CONST D3DXVECTOR2 *pV2, CONST D3DXVECTOR2 *pV3, FLOAT s );
681
682// Barycentric coordinates.  V1 + f(V2-V1) + g(V3-V1)
683D3DXVECTOR2* WINAPI D3DXVec2BaryCentric
684    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2,
685      CONST D3DXVECTOR2 *pV3, FLOAT f, FLOAT g);
686
687// Transform (x, y, 0, 1) by matrix.
688D3DXVECTOR4* WINAPI D3DXVec2Transform
689    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR2 *pV, CONST D3DXMATRIX *pM );
690
691// Transform (x, y, 0, 1) by matrix, project result back into w=1.
692D3DXVECTOR2* WINAPI D3DXVec2TransformCoord
693    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV, CONST D3DXMATRIX *pM );
694
695// Transform (x, y, 0, 0) by matrix.
696D3DXVECTOR2* WINAPI D3DXVec2TransformNormal
697    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV, CONST D3DXMATRIX *pM );
698     
699// Transform Array (x, y, 0, 1) by matrix.
700D3DXVECTOR4* WINAPI D3DXVec2TransformArray
701    ( D3DXVECTOR4 *pOut, UINT OutStride, CONST D3DXVECTOR2 *pV, UINT VStride, CONST D3DXMATRIX *pM, UINT n);
702
703// Transform Array (x, y, 0, 1) by matrix, project result back into w=1.
704D3DXVECTOR2* WINAPI D3DXVec2TransformCoordArray
705    ( D3DXVECTOR2 *pOut, UINT OutStride, CONST D3DXVECTOR2 *pV, UINT VStride, CONST D3DXMATRIX *pM, UINT n );
706
707// Transform Array (x, y, 0, 0) by matrix.
708D3DXVECTOR2* WINAPI D3DXVec2TransformNormalArray
709    ( D3DXVECTOR2 *pOut, UINT OutStride, CONST D3DXVECTOR2 *pV, UINT VStride, CONST D3DXMATRIX *pM, UINT n );
710   
711   
712
713#ifdef __cplusplus
714}
715#endif
716
717
718//--------------------------
719// 3D Vector
720//--------------------------
721
722// inline
723
724FLOAT D3DXVec3Length
725    ( CONST D3DXVECTOR3 *pV );
726
727FLOAT D3DXVec3LengthSq
728    ( CONST D3DXVECTOR3 *pV );
729
730FLOAT D3DXVec3Dot
731    ( CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2 );
732
733D3DXVECTOR3* D3DXVec3Cross
734    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2 );
735
736D3DXVECTOR3* D3DXVec3Add
737    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2 );
738
739D3DXVECTOR3* D3DXVec3Subtract
740    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2 );
741
742// Minimize each component.  x = min(x1, x2), y = min(y1, y2), ...
743D3DXVECTOR3* D3DXVec3Minimize
744    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2 );
745
746// Maximize each component.  x = max(x1, x2), y = max(y1, y2), ...
747D3DXVECTOR3* D3DXVec3Maximize
748    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2 );
749
750D3DXVECTOR3* D3DXVec3Scale
751    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV, FLOAT s);
752
753// Linear interpolation. V1 + s(V2-V1)
754D3DXVECTOR3* D3DXVec3Lerp
755    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2,
756      FLOAT s );
757
758// non-inline
759#ifdef __cplusplus
760extern "C" {
761#endif
762
763D3DXVECTOR3* WINAPI D3DXVec3Normalize
764    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV );
765
766// Hermite interpolation between position V1, tangent T1 (when s == 0)
767// and position V2, tangent T2 (when s == 1).
768D3DXVECTOR3* WINAPI D3DXVec3Hermite
769    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pT1,
770      CONST D3DXVECTOR3 *pV2, CONST D3DXVECTOR3 *pT2, FLOAT s );
771
772// CatmullRom interpolation between V1 (when s == 0) and V2 (when s == 1)
773D3DXVECTOR3* WINAPI D3DXVec3CatmullRom
774    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV0, CONST D3DXVECTOR3 *pV1,
775      CONST D3DXVECTOR3 *pV2, CONST D3DXVECTOR3 *pV3, FLOAT s );
776
777// Barycentric coordinates.  V1 + f(V2-V1) + g(V3-V1)
778D3DXVECTOR3* WINAPI D3DXVec3BaryCentric
779    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2,
780      CONST D3DXVECTOR3 *pV3, FLOAT f, FLOAT g);
781
782// Transform (x, y, z, 1) by matrix.
783D3DXVECTOR4* WINAPI D3DXVec3Transform
784    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR3 *pV, CONST D3DXMATRIX *pM );
785
786// Transform (x, y, z, 1) by matrix, project result back into w=1.
787D3DXVECTOR3* WINAPI D3DXVec3TransformCoord
788    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV, CONST D3DXMATRIX *pM );
789
790// Transform (x, y, z, 0) by matrix.  If you transforming a normal by a
791// non-affine matrix, the matrix you pass to this function should be the
792// transpose of the inverse of the matrix you would use to transform a coord.
793D3DXVECTOR3* WINAPI D3DXVec3TransformNormal
794    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV, CONST D3DXMATRIX *pM );
795   
796   
797// Transform Array (x, y, z, 1) by matrix.
798D3DXVECTOR4* WINAPI D3DXVec3TransformArray
799    ( D3DXVECTOR4 *pOut, UINT OutStride, CONST D3DXVECTOR3 *pV, UINT VStride, CONST D3DXMATRIX *pM, UINT n );
800
801// Transform Array (x, y, z, 1) by matrix, project result back into w=1.
802D3DXVECTOR3* WINAPI D3DXVec3TransformCoordArray
803    ( D3DXVECTOR3 *pOut, UINT OutStride, CONST D3DXVECTOR3 *pV, UINT VStride, CONST D3DXMATRIX *pM, UINT n );
804
805// Transform (x, y, z, 0) by matrix.  If you transforming a normal by a
806// non-affine matrix, the matrix you pass to this function should be the
807// transpose of the inverse of the matrix you would use to transform a coord.
808D3DXVECTOR3* WINAPI D3DXVec3TransformNormalArray
809    ( D3DXVECTOR3 *pOut, UINT OutStride, CONST D3DXVECTOR3 *pV, UINT VStride, CONST D3DXMATRIX *pM, UINT n );
810
811// Project vector from object space into screen space
812D3DXVECTOR3* WINAPI D3DXVec3Project
813    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV, CONST D3D10_VIEWPORT *pViewport,
814      CONST D3DXMATRIX *pProjection, CONST D3DXMATRIX *pView, CONST D3DXMATRIX *pWorld);
815
816// Project vector from screen space into object space
817D3DXVECTOR3* WINAPI D3DXVec3Unproject
818    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV, CONST D3D10_VIEWPORT *pViewport,
819      CONST D3DXMATRIX *pProjection, CONST D3DXMATRIX *pView, CONST D3DXMATRIX *pWorld);
820     
821// Project vector Array from object space into screen space
822D3DXVECTOR3* WINAPI D3DXVec3ProjectArray
823    ( D3DXVECTOR3 *pOut, UINT OutStride,CONST D3DXVECTOR3 *pV, UINT VStride,CONST D3D10_VIEWPORT *pViewport,
824      CONST D3DXMATRIX *pProjection, CONST D3DXMATRIX *pView, CONST D3DXMATRIX *pWorld, UINT n);
825
826// Project vector Array from screen space into object space
827D3DXVECTOR3* WINAPI D3DXVec3UnprojectArray
828    ( D3DXVECTOR3 *pOut, UINT OutStride, CONST D3DXVECTOR3 *pV, UINT VStride, CONST D3D10_VIEWPORT *pViewport,
829      CONST D3DXMATRIX *pProjection, CONST D3DXMATRIX *pView, CONST D3DXMATRIX *pWorld, UINT n);
830
831
832#ifdef __cplusplus
833}
834#endif
835
836
837
838//--------------------------
839// 4D Vector
840//--------------------------
841
842// inline
843
844FLOAT D3DXVec4Length
845    ( CONST D3DXVECTOR4 *pV );
846
847FLOAT D3DXVec4LengthSq
848    ( CONST D3DXVECTOR4 *pV );
849
850FLOAT D3DXVec4Dot
851    ( CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2 );
852
853D3DXVECTOR4* D3DXVec4Add
854    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2);
855
856D3DXVECTOR4* D3DXVec4Subtract
857    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2);
858
859// Minimize each component.  x = min(x1, x2), y = min(y1, y2), ...
860D3DXVECTOR4* D3DXVec4Minimize
861    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2);
862
863// Maximize each component.  x = max(x1, x2), y = max(y1, y2), ...
864D3DXVECTOR4* D3DXVec4Maximize
865    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2);
866
867D3DXVECTOR4* D3DXVec4Scale
868    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV, FLOAT s);
869
870// Linear interpolation. V1 + s(V2-V1)
871D3DXVECTOR4* D3DXVec4Lerp
872    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2,
873      FLOAT s );
874
875// non-inline
876#ifdef __cplusplus
877extern "C" {
878#endif
879
880// Cross-product in 4 dimensions.
881D3DXVECTOR4* WINAPI D3DXVec4Cross
882    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2,
883      CONST D3DXVECTOR4 *pV3);
884
885D3DXVECTOR4* WINAPI D3DXVec4Normalize
886    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV );
887
888// Hermite interpolation between position V1, tangent T1 (when s == 0)
889// and position V2, tangent T2 (when s == 1).
890D3DXVECTOR4* WINAPI D3DXVec4Hermite
891    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pT1,
892      CONST D3DXVECTOR4 *pV2, CONST D3DXVECTOR4 *pT2, FLOAT s );
893
894// CatmullRom interpolation between V1 (when s == 0) and V2 (when s == 1)
895D3DXVECTOR4* WINAPI D3DXVec4CatmullRom
896    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV0, CONST D3DXVECTOR4 *pV1,
897      CONST D3DXVECTOR4 *pV2, CONST D3DXVECTOR4 *pV3, FLOAT s );
898
899// Barycentric coordinates.  V1 + f(V2-V1) + g(V3-V1)
900D3DXVECTOR4* WINAPI D3DXVec4BaryCentric
901    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2,
902      CONST D3DXVECTOR4 *pV3, FLOAT f, FLOAT g);
903
904// Transform vector by matrix.
905D3DXVECTOR4* WINAPI D3DXVec4Transform
906    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV, CONST D3DXMATRIX *pM );
907   
908// Transform vector array by matrix.
909D3DXVECTOR4* WINAPI D3DXVec4TransformArray
910    ( D3DXVECTOR4 *pOut, UINT OutStride, CONST D3DXVECTOR4 *pV, UINT VStride, CONST D3DXMATRIX *pM, UINT n );
911
912#ifdef __cplusplus
913}
914#endif
915
916
917//--------------------------
918// 4D Matrix
919//--------------------------
920
921// inline
922
923D3DXMATRIX* D3DXMatrixIdentity
924    ( D3DXMATRIX *pOut );
925
926BOOL D3DXMatrixIsIdentity
927    ( CONST D3DXMATRIX *pM );
928
929
930// non-inline
931#ifdef __cplusplus
932extern "C" {
933#endif
934
935FLOAT WINAPI D3DXMatrixDeterminant
936    ( CONST D3DXMATRIX *pM );
937
938HRESULT WINAPI D3DXMatrixDecompose
939    ( D3DXVECTOR3 *pOutScale, D3DXQUATERNION *pOutRotation,
940     D3DXVECTOR3 *pOutTranslation, CONST D3DXMATRIX *pM );
941
942D3DXMATRIX* WINAPI D3DXMatrixTranspose
943    ( D3DXMATRIX *pOut, CONST D3DXMATRIX *pM );
944
945// Matrix multiplication.  The result represents the transformation M2
946// followed by the transformation M1.  (Out = M1 * M2)
947D3DXMATRIX* WINAPI D3DXMatrixMultiply
948    ( D3DXMATRIX *pOut, CONST D3DXMATRIX *pM1, CONST D3DXMATRIX *pM2 );
949
950// Matrix multiplication, followed by a transpose. (Out = T(M1 * M2))
951D3DXMATRIX* WINAPI D3DXMatrixMultiplyTranspose
952    ( D3DXMATRIX *pOut, CONST D3DXMATRIX *pM1, CONST D3DXMATRIX *pM2 );
953
954// Calculate inverse of matrix.  Inversion my fail, in which case NULL will
955// be returned.  The determinant of pM is also returned it pfDeterminant
956// is non-NULL.
957D3DXMATRIX* WINAPI D3DXMatrixInverse
958    ( D3DXMATRIX *pOut, FLOAT *pDeterminant, CONST D3DXMATRIX *pM );
959
960// Build a matrix which scales by (sx, sy, sz)
961D3DXMATRIX* WINAPI D3DXMatrixScaling
962    ( D3DXMATRIX *pOut, FLOAT sx, FLOAT sy, FLOAT sz );
963
964// Build a matrix which translates by (x, y, z)
965D3DXMATRIX* WINAPI D3DXMatrixTranslation
966    ( D3DXMATRIX *pOut, FLOAT x, FLOAT y, FLOAT z );
967
968// Build a matrix which rotates around the X axis
969D3DXMATRIX* WINAPI D3DXMatrixRotationX
970    ( D3DXMATRIX *pOut, FLOAT Angle );
971
972// Build a matrix which rotates around the Y axis
973D3DXMATRIX* WINAPI D3DXMatrixRotationY
974    ( D3DXMATRIX *pOut, FLOAT Angle );
975
976// Build a matrix which rotates around the Z axis
977D3DXMATRIX* WINAPI D3DXMatrixRotationZ
978    ( D3DXMATRIX *pOut, FLOAT Angle );
979
980// Build a matrix which rotates around an arbitrary axis
981D3DXMATRIX* WINAPI D3DXMatrixRotationAxis
982    ( D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pV, FLOAT Angle );
983
984// Build a matrix from a quaternion
985D3DXMATRIX* WINAPI D3DXMatrixRotationQuaternion
986    ( D3DXMATRIX *pOut, CONST D3DXQUATERNION *pQ);
987
988// Yaw around the Y axis, a pitch around the X axis,
989// and a roll around the Z axis.
990D3DXMATRIX* WINAPI D3DXMatrixRotationYawPitchRoll
991    ( D3DXMATRIX *pOut, FLOAT Yaw, FLOAT Pitch, FLOAT Roll );
992
993// Build transformation matrix.  NULL arguments are treated as identity.
994// Mout = Msc-1 * Msr-1 * Ms * Msr * Msc * Mrc-1 * Mr * Mrc * Mt
995D3DXMATRIX* WINAPI D3DXMatrixTransformation
996    ( D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pScalingCenter,
997      CONST D3DXQUATERNION *pScalingRotation, CONST D3DXVECTOR3 *pScaling,
998      CONST D3DXVECTOR3 *pRotationCenter, CONST D3DXQUATERNION *pRotation,
999      CONST D3DXVECTOR3 *pTranslation);
1000
1001// Build 2D transformation matrix in XY plane.  NULL arguments are treated as identity.
1002// Mout = Msc-1 * Msr-1 * Ms * Msr * Msc * Mrc-1 * Mr * Mrc * Mt
1003D3DXMATRIX* WINAPI D3DXMatrixTransformation2D
1004    ( D3DXMATRIX *pOut, CONST D3DXVECTOR2* pScalingCenter,
1005      FLOAT ScalingRotation, CONST D3DXVECTOR2* pScaling,
1006      CONST D3DXVECTOR2* pRotationCenter, FLOAT Rotation,
1007      CONST D3DXVECTOR2* pTranslation);
1008
1009// Build affine transformation matrix.  NULL arguments are treated as identity.
1010// Mout = Ms * Mrc-1 * Mr * Mrc * Mt
1011D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation
1012    ( D3DXMATRIX *pOut, FLOAT Scaling, CONST D3DXVECTOR3 *pRotationCenter,
1013      CONST D3DXQUATERNION *pRotation, CONST D3DXVECTOR3 *pTranslation);
1014
1015// Build 2D affine transformation matrix in XY plane.  NULL arguments are treated as identity.
1016// Mout = Ms * Mrc-1 * Mr * Mrc * Mt
1017D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation2D
1018    ( D3DXMATRIX *pOut, FLOAT Scaling, CONST D3DXVECTOR2* pRotationCenter,
1019      FLOAT Rotation, CONST D3DXVECTOR2* pTranslation);
1020
1021// Build a lookat matrix. (right-handed)
1022D3DXMATRIX* WINAPI D3DXMatrixLookAtRH
1023    ( D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pEye, CONST D3DXVECTOR3 *pAt,
1024      CONST D3DXVECTOR3 *pUp );
1025
1026// Build a lookat matrix. (left-handed)
1027D3DXMATRIX* WINAPI D3DXMatrixLookAtLH
1028    ( D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pEye, CONST D3DXVECTOR3 *pAt,
1029      CONST D3DXVECTOR3 *pUp );
1030
1031// Build a perspective projection matrix. (right-handed)
1032D3DXMATRIX* WINAPI D3DXMatrixPerspectiveRH
1033    ( D3DXMATRIX *pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf );
1034
1035// Build a perspective projection matrix. (left-handed)
1036D3DXMATRIX* WINAPI D3DXMatrixPerspectiveLH
1037    ( D3DXMATRIX *pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf );
1038
1039// Build a perspective projection matrix. (right-handed)
1040D3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovRH
1041    ( D3DXMATRIX *pOut, FLOAT fovy, FLOAT Aspect, FLOAT zn, FLOAT zf );
1042
1043// Build a perspective projection matrix. (left-handed)
1044D3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovLH
1045    ( D3DXMATRIX *pOut, FLOAT fovy, FLOAT Aspect, FLOAT zn, FLOAT zf );
1046
1047// Build a perspective projection matrix. (right-handed)
1048D3DXMATRIX* WINAPI D3DXMatrixPerspectiveOffCenterRH
1049    ( D3DXMATRIX *pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn,
1050      FLOAT zf );
1051
1052// Build a perspective projection matrix. (left-handed)
1053D3DXMATRIX* WINAPI D3DXMatrixPerspectiveOffCenterLH
1054    ( D3DXMATRIX *pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn,
1055      FLOAT zf );
1056
1057// Build an ortho projection matrix. (right-handed)
1058D3DXMATRIX* WINAPI D3DXMatrixOrthoRH
1059    ( D3DXMATRIX *pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf );
1060
1061// Build an ortho projection matrix. (left-handed)
1062D3DXMATRIX* WINAPI D3DXMatrixOrthoLH
1063    ( D3DXMATRIX *pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf );
1064
1065// Build an ortho projection matrix. (right-handed)
1066D3DXMATRIX* WINAPI D3DXMatrixOrthoOffCenterRH
1067    ( D3DXMATRIX *pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn,
1068      FLOAT zf );
1069
1070// Build an ortho projection matrix. (left-handed)
1071D3DXMATRIX* WINAPI D3DXMatrixOrthoOffCenterLH
1072    ( D3DXMATRIX *pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn,
1073      FLOAT zf );
1074
1075// Build a matrix which flattens geometry into a plane, as if casting
1076// a shadow from a light.
1077D3DXMATRIX* WINAPI D3DXMatrixShadow
1078    ( D3DXMATRIX *pOut, CONST D3DXVECTOR4 *pLight,
1079      CONST D3DXPLANE *pPlane );
1080
1081// Build a matrix which reflects the coordinate system about a plane
1082D3DXMATRIX* WINAPI D3DXMatrixReflect
1083    ( D3DXMATRIX *pOut, CONST D3DXPLANE *pPlane );
1084
1085#ifdef __cplusplus
1086}
1087#endif
1088
1089
1090//--------------------------
1091// Quaternion
1092//--------------------------
1093
1094// inline
1095
1096FLOAT D3DXQuaternionLength
1097    ( CONST D3DXQUATERNION *pQ );
1098
1099// Length squared, or "norm"
1100FLOAT D3DXQuaternionLengthSq
1101    ( CONST D3DXQUATERNION *pQ );
1102
1103FLOAT D3DXQuaternionDot
1104    ( CONST D3DXQUATERNION *pQ1, CONST D3DXQUATERNION *pQ2 );
1105
1106// (0, 0, 0, 1)
1107D3DXQUATERNION* D3DXQuaternionIdentity
1108    ( D3DXQUATERNION *pOut );
1109
1110BOOL D3DXQuaternionIsIdentity
1111    ( CONST D3DXQUATERNION *pQ );
1112
1113// (-x, -y, -z, w)
1114D3DXQUATERNION* D3DXQuaternionConjugate
1115    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ );
1116
1117
1118// non-inline
1119#ifdef __cplusplus
1120extern "C" {
1121#endif
1122
1123// Compute a quaternin's axis and angle of rotation. Expects unit quaternions.
1124void WINAPI D3DXQuaternionToAxisAngle
1125    ( CONST D3DXQUATERNION *pQ, D3DXVECTOR3 *pAxis, FLOAT *pAngle );
1126
1127// Build a quaternion from a rotation matrix.
1128D3DXQUATERNION* WINAPI D3DXQuaternionRotationMatrix
1129    ( D3DXQUATERNION *pOut, CONST D3DXMATRIX *pM);
1130
1131// Rotation about arbitrary axis.
1132D3DXQUATERNION* WINAPI D3DXQuaternionRotationAxis
1133    ( D3DXQUATERNION *pOut, CONST D3DXVECTOR3 *pV, FLOAT Angle );
1134
1135// Yaw around the Y axis, a pitch around the X axis,
1136// and a roll around the Z axis.
1137D3DXQUATERNION* WINAPI D3DXQuaternionRotationYawPitchRoll
1138    ( D3DXQUATERNION *pOut, FLOAT Yaw, FLOAT Pitch, FLOAT Roll );
1139
1140// Quaternion multiplication.  The result represents the rotation Q2
1141// followed by the rotation Q1.  (Out = Q2 * Q1)
1142D3DXQUATERNION* WINAPI D3DXQuaternionMultiply
1143    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ1,
1144      CONST D3DXQUATERNION *pQ2 );
1145
1146D3DXQUATERNION* WINAPI D3DXQuaternionNormalize
1147    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ );
1148
1149// Conjugate and re-norm
1150D3DXQUATERNION* WINAPI D3DXQuaternionInverse
1151    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ );
1152
1153// Expects unit quaternions.
1154// if q = (cos(theta), sin(theta) * v); ln(q) = (0, theta * v)
1155D3DXQUATERNION* WINAPI D3DXQuaternionLn
1156    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ );
1157
1158// Expects pure quaternions. (w == 0)  w is ignored in calculation.
1159// if q = (0, theta * v); exp(q) = (cos(theta), sin(theta) * v)
1160D3DXQUATERNION* WINAPI D3DXQuaternionExp
1161    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ );
1162     
1163// Spherical linear interpolation between Q1 (t == 0) and Q2 (t == 1).
1164// Expects unit quaternions.
1165D3DXQUATERNION* WINAPI D3DXQuaternionSlerp
1166    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ1,
1167      CONST D3DXQUATERNION *pQ2, FLOAT t );
1168
1169// Spherical quadrangle interpolation.
1170// Slerp(Slerp(Q1, C, t), Slerp(A, B, t), 2t(1-t))
1171D3DXQUATERNION* WINAPI D3DXQuaternionSquad
1172    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ1,
1173      CONST D3DXQUATERNION *pA, CONST D3DXQUATERNION *pB,
1174      CONST D3DXQUATERNION *pC, FLOAT t );
1175
1176// Setup control points for spherical quadrangle interpolation
1177// from Q1 to Q2.  The control points are chosen in such a way
1178// to ensure the continuity of tangents with adjacent segments.
1179void WINAPI D3DXQuaternionSquadSetup
1180    ( D3DXQUATERNION *pAOut, D3DXQUATERNION *pBOut, D3DXQUATERNION *pCOut,
1181      CONST D3DXQUATERNION *pQ0, CONST D3DXQUATERNION *pQ1,
1182      CONST D3DXQUATERNION *pQ2, CONST D3DXQUATERNION *pQ3 );
1183
1184// Barycentric interpolation.
1185// Slerp(Slerp(Q1, Q2, f+g), Slerp(Q1, Q3, f+g), g/(f+g))
1186D3DXQUATERNION* WINAPI D3DXQuaternionBaryCentric
1187    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ1,
1188      CONST D3DXQUATERNION *pQ2, CONST D3DXQUATERNION *pQ3,
1189      FLOAT f, FLOAT g );
1190
1191#ifdef __cplusplus
1192}
1193#endif
1194
1195
1196//--------------------------
1197// Plane
1198//--------------------------
1199
1200// inline
1201
1202// ax + by + cz + dw
1203FLOAT D3DXPlaneDot
1204    ( CONST D3DXPLANE *pP, CONST D3DXVECTOR4 *pV);
1205
1206// ax + by + cz + d
1207FLOAT D3DXPlaneDotCoord
1208    ( CONST D3DXPLANE *pP, CONST D3DXVECTOR3 *pV);
1209
1210// ax + by + cz
1211FLOAT D3DXPlaneDotNormal
1212    ( CONST D3DXPLANE *pP, CONST D3DXVECTOR3 *pV);
1213
1214D3DXPLANE* D3DXPlaneScale
1215    (D3DXPLANE *pOut, CONST D3DXPLANE *pP, FLOAT s);
1216
1217// non-inline
1218#ifdef __cplusplus
1219extern "C" {
1220#endif
1221
1222// Normalize plane (so that |a,b,c| == 1)
1223D3DXPLANE* WINAPI D3DXPlaneNormalize
1224    ( D3DXPLANE *pOut, CONST D3DXPLANE *pP);
1225
1226// Find the intersection between a plane and a line.  If the line is
1227// parallel to the plane, NULL is returned.
1228D3DXVECTOR3* WINAPI D3DXPlaneIntersectLine
1229    ( D3DXVECTOR3 *pOut, CONST D3DXPLANE *pP, CONST D3DXVECTOR3 *pV1,
1230      CONST D3DXVECTOR3 *pV2);
1231
1232// Construct a plane from a point and a normal
1233D3DXPLANE* WINAPI D3DXPlaneFromPointNormal
1234    ( D3DXPLANE *pOut, CONST D3DXVECTOR3 *pPoint, CONST D3DXVECTOR3 *pNormal);
1235
1236// Construct a plane from 3 points
1237D3DXPLANE* WINAPI D3DXPlaneFromPoints
1238    ( D3DXPLANE *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2,
1239      CONST D3DXVECTOR3 *pV3);
1240
1241// Transform a plane by a matrix.  The vector (a,b,c) must be normal.
1242// M should be the inverse transpose of the transformation desired.
1243D3DXPLANE* WINAPI D3DXPlaneTransform
1244    ( D3DXPLANE *pOut, CONST D3DXPLANE *pP, CONST D3DXMATRIX *pM );
1245   
1246// Transform an array of planes by a matrix.  The vectors (a,b,c) must be normal.
1247// M should be the inverse transpose of the transformation desired.
1248D3DXPLANE* WINAPI D3DXPlaneTransformArray
1249    ( D3DXPLANE *pOut, UINT OutStride, CONST D3DXPLANE *pP, UINT PStride, CONST D3DXMATRIX *pM, UINT n );
1250
1251#ifdef __cplusplus
1252}
1253#endif
1254
1255
1256//--------------------------
1257// Color
1258//--------------------------
1259
1260// inline
1261
1262// (1-r, 1-g, 1-b, a)
1263D3DXCOLOR* D3DXColorNegative
1264    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC);
1265
1266D3DXCOLOR* D3DXColorAdd
1267    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC1, CONST D3DXCOLOR *pC2);
1268
1269D3DXCOLOR* D3DXColorSubtract
1270    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC1, CONST D3DXCOLOR *pC2);
1271
1272D3DXCOLOR* D3DXColorScale
1273    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC, FLOAT s);
1274
1275// (r1*r2, g1*g2, b1*b2, a1*a2)
1276D3DXCOLOR* D3DXColorModulate
1277    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC1, CONST D3DXCOLOR *pC2);
1278
1279// Linear interpolation of r,g,b, and a. C1 + s(C2-C1)
1280D3DXCOLOR* D3DXColorLerp
1281    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC1, CONST D3DXCOLOR *pC2, FLOAT s);
1282
1283// non-inline
1284#ifdef __cplusplus
1285extern "C" {
1286#endif
1287
1288// Interpolate r,g,b between desaturated color and color.
1289// DesaturatedColor + s(Color - DesaturatedColor)
1290D3DXCOLOR* WINAPI D3DXColorAdjustSaturation
1291    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC, FLOAT s);
1292
1293// Interpolate r,g,b between 50% grey and color.  Grey + s(Color - Grey)
1294D3DXCOLOR* WINAPI D3DXColorAdjustContrast
1295    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC, FLOAT c);
1296
1297#ifdef __cplusplus
1298}
1299#endif
1300
1301
1302
1303
1304//--------------------------
1305// Misc
1306//--------------------------
1307
1308#ifdef __cplusplus
1309extern "C" {
1310#endif
1311
1312// Calculate Fresnel term given the cosine of theta (likely obtained by
1313// taking the dot of two normals), and the refraction index of the material.
1314FLOAT WINAPI D3DXFresnelTerm
1315    (FLOAT CosTheta, FLOAT RefractionIndex);     
1316
1317#ifdef __cplusplus
1318}
1319#endif
1320
1321
1322
1323//===========================================================================
1324//
1325//    Matrix Stack
1326//
1327//===========================================================================
1328
1329typedef interface ID3DXMatrixStack ID3DXMatrixStack;
1330typedef interface ID3DXMatrixStack *LPD3DXMATRIXSTACK;
1331
1332// {C7885BA7-F990-4fe7-922D-8515E477DD85}
1333DEFINE_GUID(IID_ID3DXMatrixStack,
13340xc7885ba7, 0xf990, 0x4fe7, 0x92, 0x2d, 0x85, 0x15, 0xe4, 0x77, 0xdd, 0x85);
1335
1336
1337#undef INTERFACE
1338#define INTERFACE ID3DXMatrixStack
1339
1340DECLARE_INTERFACE_(ID3DXMatrixStack, IUnknown)
1341{
1342    //
1343    // IUnknown methods
1344    //
1345    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
1346    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1347    STDMETHOD_(ULONG,Release)(THIS) PURE;
1348
1349    //
1350    // ID3DXMatrixStack methods
1351    //
1352
1353    // Pops the top of the stack, returns the current top
1354    // *after* popping the top.
1355    STDMETHOD(Pop)(THIS) PURE;
1356
1357    // Pushes the stack by one, duplicating the current matrix.
1358    STDMETHOD(Push)(THIS) PURE;
1359
1360    // Loads identity in the current matrix.
1361    STDMETHOD(LoadIdentity)(THIS) PURE;
1362
1363    // Loads the given matrix into the current matrix
1364    STDMETHOD(LoadMatrix)(THIS_ CONST D3DXMATRIX* pM ) PURE;
1365
1366    // Right-Multiplies the given matrix to the current matrix.
1367    // (transformation is about the current world origin)
1368    STDMETHOD(MultMatrix)(THIS_ CONST D3DXMATRIX* pM ) PURE;
1369
1370    // Left-Multiplies the given matrix to the current matrix
1371    // (transformation is about the local origin of the object)
1372    STDMETHOD(MultMatrixLocal)(THIS_ CONST D3DXMATRIX* pM ) PURE;
1373
1374    // Right multiply the current matrix with the computed rotation
1375    // matrix, counterclockwise about the given axis with the given angle.
1376    // (rotation is about the current world origin)
1377    STDMETHOD(RotateAxis)
1378        (THIS_ CONST D3DXVECTOR3* pV, FLOAT Angle) PURE;
1379
1380    // Left multiply the current matrix with the computed rotation
1381    // matrix, counterclockwise about the given axis with the given angle.
1382    // (rotation is about the local origin of the object)
1383    STDMETHOD(RotateAxisLocal)
1384        (THIS_ CONST D3DXVECTOR3* pV, FLOAT Angle) PURE;
1385
1386    // Right multiply the current matrix with the computed rotation
1387    // matrix. All angles are counterclockwise. (rotation is about the
1388    // current world origin)
1389
1390    // The rotation is composed of a yaw around the Y axis, a pitch around
1391    // the X axis, and a roll around the Z axis.
1392    STDMETHOD(RotateYawPitchRoll)
1393        (THIS_ FLOAT Yaw, FLOAT Pitch, FLOAT Roll) PURE;
1394
1395    // Left multiply the current matrix with the computed rotation
1396    // matrix. All angles are counterclockwise. (rotation is about the
1397    // local origin of the object)
1398
1399    // The rotation is composed of a yaw around the Y axis, a pitch around
1400    // the X axis, and a roll around the Z axis.
1401    STDMETHOD(RotateYawPitchRollLocal)
1402        (THIS_ FLOAT Yaw, FLOAT Pitch, FLOAT Roll) PURE;
1403
1404    // Right multiply the current matrix with the computed scale
1405    // matrix. (transformation is about the current world origin)
1406    STDMETHOD(Scale)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
1407
1408    // Left multiply the current matrix with the computed scale
1409    // matrix. (transformation is about the local origin of the object)
1410    STDMETHOD(ScaleLocal)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
1411
1412    // Right multiply the current matrix with the computed translation
1413    // matrix. (transformation is about the current world origin)
1414    STDMETHOD(Translate)(THIS_ FLOAT x, FLOAT y, FLOAT z ) PURE;
1415
1416    // Left multiply the current matrix with the computed translation
1417    // matrix. (transformation is about the local origin of the object)
1418    STDMETHOD(TranslateLocal)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
1419
1420    // Obtain the current matrix at the top of the stack
1421    STDMETHOD_(D3DXMATRIX*, GetTop)(THIS) PURE;
1422};
1423
1424#ifdef __cplusplus
1425extern "C" {
1426#endif
1427
1428HRESULT WINAPI
1429    D3DXCreateMatrixStack(
1430        UINT                Flags,
1431        LPD3DXMATRIXSTACK*  ppStack);
1432
1433#ifdef __cplusplus
1434}
1435#endif
1436
1437// non-inline
1438#ifdef __cplusplus
1439extern "C" {
1440#endif
1441
1442//============================================================================
1443//
1444//  Basic Spherical Harmonic math routines
1445//
1446//============================================================================
1447
1448#define D3DXSH_MINORDER 2
1449#define D3DXSH_MAXORDER 6
1450
1451//============================================================================
1452//
1453//  D3DXSHEvalDirection:
1454//  --------------------
1455//  Evaluates the Spherical Harmonic basis functions
1456//
1457//  Parameters:
1458//   pOut
1459//      Output SH coefficients - basis function Ylm is stored at l*l + m+l
1460//      This is the pointer that is returned.
1461//   Order
1462//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1463//   pDir
1464//      Direction to evaluate in - assumed to be normalized
1465//
1466//============================================================================
1467
1468FLOAT* WINAPI D3DXSHEvalDirection
1469    (  FLOAT *pOut, UINT Order, CONST D3DXVECTOR3 *pDir );
1470   
1471//============================================================================
1472//
1473//  D3DXSHRotate:
1474//  --------------------
1475//  Rotates SH vector by a rotation matrix
1476//
1477//  Parameters:
1478//   pOut
1479//      Output SH coefficients - basis function Ylm is stored at l*l + m+l
1480//      This is the pointer that is returned (should not alias with pIn.)
1481//   Order
1482//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1483//   pMatrix
1484//      Matrix used for rotation - rotation sub matrix should be orthogonal
1485//      and have a unit determinant.
1486//   pIn
1487//      Input SH coeffs (rotated), incorect results if this is also output.
1488//
1489//============================================================================
1490
1491FLOAT* WINAPI D3DXSHRotate
1492    ( __out_ecount(Order*Order) FLOAT *pOut, UINT Order, CONST D3DXMATRIX *pMatrix, CONST FLOAT *pIn );
1493   
1494//============================================================================
1495//
1496//  D3DXSHRotateZ:
1497//  --------------------
1498//  Rotates the SH vector in the Z axis by an angle
1499//
1500//  Parameters:
1501//   pOut
1502//      Output SH coefficients - basis function Ylm is stored at l*l + m+l
1503//      This is the pointer that is returned (should not alias with pIn.)
1504//   Order
1505//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1506//   Angle
1507//      Angle in radians to rotate around the Z axis.
1508//   pIn
1509//      Input SH coeffs (rotated), incorect results if this is also output.
1510//
1511//============================================================================
1512
1513
1514FLOAT* WINAPI D3DXSHRotateZ
1515    ( FLOAT *pOut, UINT Order, FLOAT Angle, CONST FLOAT *pIn );
1516   
1517//============================================================================
1518//
1519//  D3DXSHAdd:
1520//  --------------------
1521//  Adds two SH vectors, pOut[i] = pA[i] + pB[i];
1522//
1523//  Parameters:
1524//   pOut
1525//      Output SH coefficients - basis function Ylm is stored at l*l + m+l
1526//      This is the pointer that is returned.
1527//   Order
1528//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1529//   pA
1530//      Input SH coeffs.
1531//   pB
1532//      Input SH coeffs (second vector.)
1533//
1534//============================================================================
1535
1536FLOAT* WINAPI D3DXSHAdd
1537    ( __out_ecount(Order*Order) FLOAT *pOut, UINT Order, CONST FLOAT *pA, CONST FLOAT *pB );
1538
1539//============================================================================
1540//
1541//  D3DXSHScale:
1542//  --------------------
1543//  Adds two SH vectors, pOut[i] = pA[i]*Scale;
1544//
1545//  Parameters:
1546//   pOut
1547//      Output SH coefficients - basis function Ylm is stored at l*l + m+l
1548//      This is the pointer that is returned.
1549//   Order
1550//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1551//   pIn
1552//      Input SH coeffs.
1553//   Scale
1554//      Scale factor.
1555//
1556//============================================================================
1557
1558FLOAT* WINAPI D3DXSHScale
1559    ( __out_ecount(Order*Order) FLOAT *pOut, UINT Order, CONST FLOAT *pIn, CONST FLOAT Scale );
1560   
1561//============================================================================
1562//
1563//  D3DXSHDot:
1564//  --------------------
1565//  Computes the dot product of two SH vectors
1566//
1567//  Parameters:
1568//   Order
1569//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1570//   pA
1571//      Input SH coeffs.
1572//   pB
1573//      Second set of input SH coeffs.
1574//
1575//============================================================================
1576
1577FLOAT WINAPI D3DXSHDot
1578    ( UINT Order, CONST FLOAT *pA, CONST FLOAT *pB );
1579
1580//============================================================================
1581//
1582//  D3DXSHMultiply[O]:
1583//  --------------------
1584//  Computes the product of two functions represented using SH (f and g), where:
1585//  pOut[i] = int(y_i(s) * f(s) * g(s)), where y_i(s) is the ith SH basis
1586//  function, f(s) and g(s) are SH functions (sum_i(y_i(s)*c_i)).  The order O
1587//  determines the lengths of the arrays, where there should always be O^2
1588//  coefficients.  In general the product of two SH functions of order O generates
1589//  and SH function of order 2*O - 1, but we truncate the result.  This means
1590//  that the product commutes (f*g == g*f) but doesn't associate
1591//  (f*(g*h) != (f*g)*h.
1592//
1593//  Parameters:
1594//   pOut
1595//      Output SH coefficients - basis function Ylm is stored at l*l + m+l
1596//      This is the pointer that is returned.
1597//   pF
1598//      Input SH coeffs for first function.
1599//   pG
1600//      Second set of input SH coeffs.
1601//
1602//============================================================================
1603
1604__out_ecount(4)  FLOAT* WINAPI D3DXSHMultiply2(__out_ecount(4)  FLOAT *pOut,__in_ecount(4)  CONST FLOAT *pF,__in_ecount(4)  CONST FLOAT *pG);
1605__out_ecount(9)  FLOAT* WINAPI D3DXSHMultiply3(__out_ecount(9)  FLOAT *pOut,__in_ecount(9)  CONST FLOAT *pF,__in_ecount(9)  CONST FLOAT *pG);
1606__out_ecount(16) FLOAT* WINAPI D3DXSHMultiply4(__out_ecount(16) FLOAT *pOut,__in_ecount(16) CONST FLOAT *pF,__in_ecount(16) CONST FLOAT *pG);
1607__out_ecount(25) FLOAT* WINAPI D3DXSHMultiply5(__out_ecount(25) FLOAT *pOut,__in_ecount(25) CONST FLOAT *pF,__in_ecount(25) CONST FLOAT *pG);
1608__out_ecount(36) FLOAT* WINAPI D3DXSHMultiply6(__out_ecount(36) FLOAT *pOut,__in_ecount(36) CONST FLOAT *pF,__in_ecount(36) CONST FLOAT *pG);
1609
1610
1611//============================================================================
1612//
1613//  Basic Spherical Harmonic lighting routines
1614//
1615//============================================================================
1616
1617//============================================================================
1618//
1619//  D3DXSHEvalDirectionalLight:
1620//  --------------------
1621//  Evaluates a directional light and returns spectral SH data.  The output
1622//  vector is computed so that if the intensity of R/G/B is unit the resulting
1623//  exit radiance of a point directly under the light on a diffuse object with
1624//  an albedo of 1 would be 1.0.  This will compute 3 spectral samples, pROut
1625//  has to be specified, while pGout and pBout are optional.
1626//
1627//  Parameters:
1628//   Order
1629//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1630//   pDir
1631//      Direction light is coming from (assumed to be normalized.)
1632//   RIntensity
1633//      Red intensity of light.
1634//   GIntensity
1635//      Green intensity of light.
1636//   BIntensity
1637//      Blue intensity of light.
1638//   pROut
1639//      Output SH vector for Red.
1640//   pGOut
1641//      Output SH vector for Green (optional.)
1642//   pBOut
1643//      Output SH vector for Blue (optional.)       
1644//
1645//============================================================================
1646
1647HRESULT WINAPI D3DXSHEvalDirectionalLight
1648    ( UINT Order, CONST D3DXVECTOR3 *pDir,
1649      FLOAT RIntensity, FLOAT GIntensity, FLOAT BIntensity,
1650      __out_ecount_opt(Order*Order) FLOAT *pROut,
1651      __out_ecount_opt(Order*Order) FLOAT *pGOut,
1652      __out_ecount_opt(Order*Order) FLOAT *pBOut );
1653
1654//============================================================================
1655//
1656//  D3DXSHEvalSphericalLight:
1657//  --------------------
1658//  Evaluates a spherical light and returns spectral SH data.  There is no
1659//  normalization of the intensity of the light like there is for directional
1660//  lights, care has to be taken when specifiying the intensities.  This will
1661//  compute 3 spectral samples, pROut has to be specified, while pGout and
1662//  pBout are optional.
1663//
1664//  Parameters:
1665//   Order
1666//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1667//   pPos
1668//      Position of light - reciever is assumed to be at the origin.
1669//   Radius
1670//      Radius of the spherical light source.
1671//   RIntensity
1672//      Red intensity of light.
1673//   GIntensity
1674//      Green intensity of light.
1675//   BIntensity
1676//      Blue intensity of light.
1677//   pROut
1678//      Output SH vector for Red.
1679//   pGOut
1680//      Output SH vector for Green (optional.)
1681//   pBOut
1682//      Output SH vector for Blue (optional.)       
1683//
1684//============================================================================
1685
1686HRESULT WINAPI D3DXSHEvalSphericalLight
1687    ( UINT Order, CONST D3DXVECTOR3 *pPos, FLOAT Radius,
1688      FLOAT RIntensity, FLOAT GIntensity, FLOAT BIntensity,
1689      __out_ecount_opt(Order*Order) FLOAT *pROut,
1690      __out_ecount_opt(Order*Order) FLOAT *pGOut,
1691      __out_ecount_opt(Order*Order) FLOAT *pBOut );
1692
1693//============================================================================
1694//
1695//  D3DXSHEvalConeLight:
1696//  --------------------
1697//  Evaluates a light that is a cone of constant intensity and returns spectral
1698//  SH data.  The output vector is computed so that if the intensity of R/G/B is
1699//  unit the resulting exit radiance of a point directly under the light oriented
1700//  in the cone direction on a diffuse object with an albedo of 1 would be 1.0.
1701//  This will compute 3 spectral samples, pROut has to be specified, while pGout
1702//  and pBout are optional.
1703//
1704//  Parameters:
1705//   Order
1706//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1707//   pDir
1708//      Direction light is coming from (assumed to be normalized.)
1709//   Radius
1710//      Radius of cone in radians.
1711//   RIntensity
1712//      Red intensity of light.
1713//   GIntensity
1714//      Green intensity of light.
1715//   BIntensity
1716//      Blue intensity of light.
1717//   pROut
1718//      Output SH vector for Red.
1719//   pGOut
1720//      Output SH vector for Green (optional.)
1721//   pBOut
1722//      Output SH vector for Blue (optional.)       
1723//
1724//============================================================================
1725
1726HRESULT WINAPI D3DXSHEvalConeLight
1727    ( UINT Order, CONST D3DXVECTOR3 *pDir, FLOAT Radius,
1728      FLOAT RIntensity, FLOAT GIntensity, FLOAT BIntensity,
1729      __out_ecount_opt(Order*Order) FLOAT *pROut,
1730      __out_ecount_opt(Order*Order) FLOAT *pGOut,
1731      __out_ecount_opt(Order*Order) FLOAT *pBOut );
1732     
1733//============================================================================
1734//
1735//  D3DXSHEvalHemisphereLight:
1736//  --------------------
1737//  Evaluates a light that is a linear interpolant between two colors over the
1738//  sphere.  The interpolant is linear along the axis of the two points, not
1739//  over the surface of the sphere (ie: if the axis was (0,0,1) it is linear in
1740//  Z, not in the azimuthal angle.)  The resulting spherical lighting function
1741//  is normalized so that a point on a perfectly diffuse surface with no
1742//  shadowing and a normal pointed in the direction pDir would result in exit
1743//  radiance with a value of 1 if the top color was white and the bottom color
1744//  was black.  This is a very simple model where Top represents the intensity
1745//  of the "sky" and Bottom represents the intensity of the "ground".
1746//
1747//  Parameters:
1748//   Order
1749//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1750//   pDir
1751//      Axis of the hemisphere.
1752//   Top
1753//      Color of the upper hemisphere.
1754//   Bottom
1755//      Color of the lower hemisphere.
1756//   pROut
1757//      Output SH vector for Red.
1758//   pGOut
1759//      Output SH vector for Green
1760//   pBOut
1761//      Output SH vector for Blue       
1762//
1763//============================================================================
1764
1765HRESULT WINAPI D3DXSHEvalHemisphereLight
1766    ( UINT Order, CONST D3DXVECTOR3 *pDir, D3DXCOLOR Top, D3DXCOLOR Bottom,
1767      __out_ecount_opt(Order*Order) FLOAT *pROut,
1768      __out_ecount_opt(Order*Order) FLOAT *pGOut,
1769      __out_ecount_opt(Order*Order) FLOAT *pBOut );
1770
1771// Math intersection functions
1772
1773BOOL WINAPI D3DXIntersectTri
1774(
1775    CONST D3DXVECTOR3 *p0,           // Triangle vertex 0 position
1776    CONST D3DXVECTOR3 *p1,           // Triangle vertex 1 position
1777    CONST D3DXVECTOR3 *p2,           // Triangle vertex 2 position
1778    CONST D3DXVECTOR3 *pRayPos,      // Ray origin
1779    CONST D3DXVECTOR3 *pRayDir,      // Ray direction
1780    FLOAT *pU,                         // Barycentric Hit Coordinates
1781    FLOAT *pV,                         // Barycentric Hit Coordinates
1782    FLOAT *pDist);                     // Ray-Intersection Parameter Distance
1783
1784BOOL WINAPI
1785    D3DXSphereBoundProbe(
1786        CONST D3DXVECTOR3 *pCenter,
1787        FLOAT Radius,
1788        CONST D3DXVECTOR3 *pRayPosition,
1789        CONST D3DXVECTOR3 *pRayDirection);
1790
1791BOOL WINAPI
1792    D3DXBoxBoundProbe(
1793        CONST D3DXVECTOR3 *pMin,
1794        CONST D3DXVECTOR3 *pMax,
1795        CONST D3DXVECTOR3 *pRayPosition,
1796        CONST D3DXVECTOR3 *pRayDirection);
1797
1798HRESULT WINAPI
1799    D3DXComputeBoundingSphere(
1800        CONST D3DXVECTOR3 *pFirstPosition,   // pointer to first position
1801        DWORD NumVertices,
1802        DWORD dwStride,                     // count in bytes to subsequent position vectors
1803        D3DXVECTOR3 *pCenter,
1804        FLOAT *pRadius);
1805
1806HRESULT WINAPI
1807    D3DXComputeBoundingBox(
1808        CONST D3DXVECTOR3 *pFirstPosition,   // pointer to first position
1809        DWORD NumVertices,
1810        DWORD dwStride,                     // count in bytes to subsequent position vectors
1811        D3DXVECTOR3 *pMin,
1812        D3DXVECTOR3 *pMax);
1813
1814
1815///////////////////////////////////////////////////////////////////////////
1816// CPU Optimization:
1817///////////////////////////////////////////////////////////////////////////
1818
1819//-------------------------------------------------------------------------
1820// D3DX_CPU_OPTIMIZATION flags:
1821// ----------------------------
1822// D3DX_NOT_OPTIMIZED       Use Intel Pentium optimizations
1823// D3DX_3DNOW_OPTIMIZED     Use AMD 3DNow optimizations
1824// D3DX_SSE_OPTIMIZED       Use Intel Pentium III SSE optimizations
1825// D3DX_SSE2_OPTIMIZED      Use Intel Pentium IV SSE2 optimizations
1826//-------------------------------------------------------------------------
1827
1828
1829typedef enum _D3DX_CPU_OPTIMIZATION
1830{
1831    D3DX_NOT_OPTIMIZED = 0,
1832    D3DX_3DNOW_OPTIMIZED,
1833    D3DX_SSE2_OPTIMIZED,
1834    D3DX_SSE_OPTIMIZED
1835} D3DX_CPU_OPTIMIZATION;
1836
1837
1838//-------------------------------------------------------------------------
1839// D3DXCpuOptimizations:
1840// ---------------------
1841// Enables or disables CPU optimizations. Returns the type of CPU, which
1842// was detected, and for which optimizations exist.
1843//
1844// Parameters:
1845//  Enable
1846//      TRUE to enable CPU optimizations. FALSE to disable.
1847//-------------------------------------------------------------------------
1848
1849D3DX_CPU_OPTIMIZATION WINAPI
1850    D3DXCpuOptimizations(BOOL Enable);
1851
1852#ifdef __cplusplus
1853}
1854#endif
1855
1856
1857#include "D3DX10math.inl"
1858
1859#if _MSC_VER >= 1200
1860#pragma warning(pop)
1861#else
1862#pragma warning(default:4201)
1863#endif
1864
1865#endif // __D3DX9MATH_H__
1866
trunk/3rdparty/dxsdk/Include/D3DX10mesh.h
r243310r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       d3dx10mesh.h
6//  Content:    D3DX10 mesh types and functions
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#include "d3dx10.h"
11
12#ifndef __D3DX10MESH_H__
13#define __D3DX10MESH_H__
14
15// {7ED943DD-52E8-40b5-A8D8-76685C406330}
16DEFINE_GUID(IID_ID3DX10BaseMesh,
170x7ed943dd, 0x52e8, 0x40b5, 0xa8, 0xd8, 0x76, 0x68, 0x5c, 0x40, 0x63, 0x30);
18
19// {04B0D117-1041-46b1-AA8A-3952848BA22E}
20DEFINE_GUID(IID_ID3DX10MeshBuffer,
210x4b0d117, 0x1041, 0x46b1, 0xaa, 0x8a, 0x39, 0x52, 0x84, 0x8b, 0xa2, 0x2e);
22
23// {4020E5C2-1403-4929-883F-E2E849FAC195}
24DEFINE_GUID(IID_ID3DX10Mesh,
250x4020e5c2, 0x1403, 0x4929, 0x88, 0x3f, 0xe2, 0xe8, 0x49, 0xfa, 0xc1, 0x95);
26
27// {8875769A-D579-4088-AAEB-534D1AD84E96}
28DEFINE_GUID(IID_ID3DX10PMesh,
290x8875769a, 0xd579, 0x4088, 0xaa, 0xeb, 0x53, 0x4d, 0x1a, 0xd8, 0x4e, 0x96);
30
31// {667EA4C7-F1CD-4386-B523-7C0290B83CC5}
32DEFINE_GUID(IID_ID3DX10SPMesh,
330x667ea4c7, 0xf1cd, 0x4386, 0xb5, 0x23, 0x7c, 0x2, 0x90, 0xb8, 0x3c, 0xc5);
34
35// {3CE6CC22-DBF2-44f4-894D-F9C34A337139}
36DEFINE_GUID(IID_ID3DX10PatchMesh,
370x3ce6cc22, 0xdbf2, 0x44f4, 0x89, 0x4d, 0xf9, 0xc3, 0x4a, 0x33, 0x71, 0x39);
38
39
40// Mesh options - lower 3 bytes only, upper byte used by _D3DX10MESHOPT option flags
41enum _D3DX10_MESH {
42    D3DX10_MESH_32_BIT                  = 0x001, // If set, then use 32 bit indices, if not set use 16 bit indices.
43    D3DX10_MESH_GS_ADJACENCY         = 0x004, // If set, mesh contains GS adjacency info. Not valid on input.
44
45};
46
47typedef struct _D3DX10_ATTRIBUTE_RANGE
48{
49    UINT  AttribId;
50    UINT  FaceStart;
51    UINT  FaceCount;
52    UINT  VertexStart;
53    UINT  VertexCount;
54} D3DX10_ATTRIBUTE_RANGE;
55
56typedef D3DX10_ATTRIBUTE_RANGE* LPD3DX10_ATTRIBUTE_RANGE;
57
58typedef enum _D3DX10_MESH_DISCARD_FLAGS
59{
60    D3DX10_MESH_DISCARD_ATTRIBUTE_BUFFER = 0x01,
61    D3DX10_MESH_DISCARD_ATTRIBUTE_TABLE = 0x02,
62    D3DX10_MESH_DISCARD_POINTREPS = 0x04,
63    D3DX10_MESH_DISCARD_ADJACENCY = 0x08,
64    D3DX10_MESH_DISCARD_DEVICE_BUFFERS = 0x10,
65
66} D3DX10_MESH_DISCARD_FLAGS;
67
68typedef struct _D3DX10_WELD_EPSILONS
69{
70    FLOAT Position;                 // NOTE: This does NOT replace the epsilon in GenerateAdjacency
71                                            // in general, it should be the same value or greater than the one passed to GeneratedAdjacency
72    FLOAT BlendWeights;
73    FLOAT Normal;
74    FLOAT PSize;
75    FLOAT Specular;
76    FLOAT Diffuse;
77    FLOAT Texcoord[8];
78    FLOAT Tangent;
79    FLOAT Binormal;
80    FLOAT TessFactor;
81} D3DX10_WELD_EPSILONS;
82
83typedef D3DX10_WELD_EPSILONS* LPD3DX10_WELD_EPSILONS;
84
85typedef struct _D3DX10_INTERSECT_INFO
86{
87    UINT  FaceIndex;                // index of face intersected
88    FLOAT U;                        // Barycentric Hit Coordinates   
89    FLOAT V;                        // Barycentric Hit Coordinates
90    FLOAT Dist;                     // Ray-Intersection Parameter Distance
91} D3DX10_INTERSECT_INFO, *LPD3DX10_INTERSECT_INFO;
92
93// ID3DX10MeshBuffer is used by D3DX10Mesh vertex and index buffers
94#undef INTERFACE
95#define INTERFACE ID3DX10MeshBuffer
96
97DECLARE_INTERFACE_(ID3DX10MeshBuffer, IUnknown)
98{
99    // IUnknown
100    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
101    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
102    STDMETHOD_(ULONG, Release)(THIS) PURE;
103   
104    // ID3DX10MeshBuffer
105    STDMETHOD(Map)(THIS_ void **ppData, SIZE_T *pSize) PURE;
106    STDMETHOD(Unmap)(THIS) PURE;
107    STDMETHOD_(SIZE_T, GetSize)(THIS) PURE;
108};
109
110// D3DX10 Mesh interfaces
111#undef INTERFACE
112#define INTERFACE ID3DX10Mesh
113
114DECLARE_INTERFACE_(ID3DX10Mesh, IUnknown)
115{
116    // IUnknown
117    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
118    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
119    STDMETHOD_(ULONG, Release)(THIS) PURE;
120
121    // ID3DX10Mesh
122    STDMETHOD_(UINT, GetFaceCount)(THIS) PURE;
123    STDMETHOD_(UINT, GetVertexCount)(THIS) PURE;
124    STDMETHOD_(UINT, GetVertexBufferCount)(THIS) PURE;
125    STDMETHOD_(UINT, GetFlags)(THIS) PURE;
126    STDMETHOD(GetVertexDescription)(THIS_ CONST D3D10_INPUT_ELEMENT_DESC **ppDesc, UINT *pDeclCount) PURE;
127
128    STDMETHOD(SetVertexData)(THIS_ UINT iBuffer, CONST void *pData) PURE;
129    STDMETHOD(GetVertexBuffer)(THIS_ UINT iBuffer, ID3DX10MeshBuffer **ppVertexBuffer) PURE;
130
131    STDMETHOD(SetIndexData)(THIS_ CONST void *pData, UINT cIndices) PURE;
132    STDMETHOD(GetIndexBuffer)(THIS_ ID3DX10MeshBuffer **ppIndexBuffer) PURE;
133
134    STDMETHOD(SetAttributeData)(THIS_ CONST UINT *pData) PURE;
135    STDMETHOD(GetAttributeBuffer)(THIS_ ID3DX10MeshBuffer **ppAttributeBuffer) PURE;
136
137    STDMETHOD(SetAttributeTable)(THIS_ CONST D3DX10_ATTRIBUTE_RANGE *pAttribTable, UINT  cAttribTableSize) PURE;
138    STDMETHOD(GetAttributeTable)(THIS_ D3DX10_ATTRIBUTE_RANGE *pAttribTable, UINT  *pAttribTableSize) PURE;
139
140    STDMETHOD(GenerateAdjacencyAndPointReps)(THIS_ FLOAT Epsilon) PURE;
141    STDMETHOD(GenerateGSAdjacency)(THIS) PURE;
142
143    STDMETHOD(SetAdjacencyData)(THIS_ CONST UINT *pAdjacency) PURE;
144    STDMETHOD(GetAdjacencyBuffer)(THIS_ ID3DX10MeshBuffer **ppAdjacency) PURE;
145
146    STDMETHOD(SetPointRepData)(THIS_ CONST UINT *pPointReps) PURE;
147    STDMETHOD(GetPointRepBuffer)(THIS_ ID3DX10MeshBuffer **ppPointReps) PURE;
148   
149    STDMETHOD(Discard)(THIS_ D3DX10_MESH_DISCARD_FLAGS dwDiscard) PURE;
150    STDMETHOD(CloneMesh)(THIS_ UINT Flags, LPCSTR pPosSemantic, CONST D3D10_INPUT_ELEMENT_DESC *pDesc, UINT  DeclCount, ID3DX10Mesh** ppCloneMesh) PURE;
151
152    STDMETHOD(Optimize)(THIS_ UINT Flags, UINT * pFaceRemap, LPD3D10BLOB *ppVertexRemap) PURE;
153    STDMETHOD(GenerateAttributeBufferFromTable)(THIS) PURE;
154   
155   STDMETHOD(Intersect)(THIS_ D3DXVECTOR3 *pRayPos, D3DXVECTOR3 *pRayDir,
156                                        UINT *pHitCount, UINT *pFaceIndex, float *pU, float *pV, float *pDist, ID3D10Blob **ppAllHits);
157    STDMETHOD(IntersectSubset)(THIS_ UINT AttribId, D3DXVECTOR3 *pRayPos, D3DXVECTOR3 *pRayDir,
158                                        UINT *pHitCount, UINT *pFaceIndex, float *pU, float *pV, float *pDist, ID3D10Blob **ppAllHits);
159   
160    // ID3DX10Mesh - Device functions
161    STDMETHOD(CommitToDevice)(THIS) PURE;
162    STDMETHOD(DrawSubset)(THIS_ UINT AttribId) PURE;
163    STDMETHOD(DrawSubsetInstanced)(THIS_ UINT AttribId, UINT InstanceCount, UINT StartInstanceLocation) PURE;
164
165    STDMETHOD(GetDeviceVertexBuffer)(THIS_ UINT iBuffer, ID3D10Buffer **ppVertexBuffer) PURE;
166    STDMETHOD(GetDeviceIndexBuffer)(THIS_ ID3D10Buffer **ppIndexBuffer) PURE;
167};
168
169
170// Flat API
171#ifdef __cplusplus
172extern "C" {
173#endif //__cplusplus
174
175HRESULT WINAPI
176    D3DX10CreateMesh(
177        ID3D10Device *pDevice,
178        CONST D3D10_INPUT_ELEMENT_DESC *pDeclaration,
179        UINT  DeclCount,
180        LPCSTR pPositionSemantic,
181        UINT  VertexCount,
182        UINT  FaceCount,
183        UINT  Options,
184        ID3DX10Mesh **ppMesh);
185
186#ifdef __cplusplus
187}
188#endif //__cplusplus
189
190
191// ID3DX10Mesh::Optimize options - upper byte only, lower 3 bytes used from _D3DX10MESH option flags
192enum _D3DX10_MESHOPT {
193    D3DX10_MESHOPT_COMPACT       = 0x01000000,
194    D3DX10_MESHOPT_ATTR_SORT     = 0x02000000,
195    D3DX10_MESHOPT_VERTEX_CACHE   = 0x04000000,
196    D3DX10_MESHOPT_STRIP_REORDER  = 0x08000000,
197    D3DX10_MESHOPT_IGNORE_VERTS   = 0x10000000,  // optimize faces only, don't touch vertices
198    D3DX10_MESHOPT_DO_NOT_SPLIT    = 0x20000000,  // do not split vertices shared between attribute groups when attribute sorting
199    D3DX10_MESHOPT_DEVICE_INDEPENDENT = 0x00400000,  // Only affects VCache.  uses a static known good cache size for all cards
200                           
201    // D3DX10_MESHOPT_SHAREVB has been removed, please use D3DX10MESH_VB_SHARE instead
202
203};
204
205
206//////////////////////////////////////////////////////////////////////////
207// ID3DXSkinInfo
208//////////////////////////////////////////////////////////////////////////
209
210// {420BD604-1C76-4a34-A466-E45D0658A32C}
211DEFINE_GUID(IID_ID3DX10SkinInfo,
2120x420bd604, 0x1c76, 0x4a34, 0xa4, 0x66, 0xe4, 0x5d, 0x6, 0x58, 0xa3, 0x2c);
213
214// scaling modes for ID3DX10SkinInfo::Compact() & ID3DX10SkinInfo::UpdateMesh()
215#define D3DX10_SKININFO_NO_SCALING 0
216#define D3DX10_SKININFO_SCALE_TO_1 1
217#define D3DX10_SKININFO_SCALE_TO_TOTAL 2
218
219typedef struct _D3DX10_SKINNING_CHANNEL
220{
221    UINT            SrcOffset;
222    UINT            DestOffset;
223    BOOL            IsNormal;
224} D3DX10_SKINNING_CHANNEL;
225
226#undef INTERFACE
227#define INTERFACE ID3DX10SkinInfo
228
229typedef struct ID3DX10SkinInfo *LPD3DX10SKININFO;
230
231DECLARE_INTERFACE_(ID3DX10SkinInfo, IUnknown)
232{
233    // IUnknown
234    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
235    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
236    STDMETHOD_(ULONG, Release)(THIS) PURE;
237
238    STDMETHOD_(UINT , GetNumVertices)(THIS) PURE;
239    STDMETHOD_(UINT , GetNumBones)(THIS) PURE;
240    STDMETHOD_(UINT , GetMaxBoneInfluences)(THIS) PURE;
241
242    STDMETHOD(AddVertices)(THIS_ UINT  Count) PURE;
243    STDMETHOD(RemapVertices)(THIS_ UINT  NewVertexCount, UINT  *pVertexRemap) PURE;
244
245    STDMETHOD(AddBones)(THIS_ UINT  Count) PURE;
246    STDMETHOD(RemoveBone)(THIS_ UINT  Index) PURE;
247    STDMETHOD(RemapBones)(THIS_ UINT  NewBoneCount, UINT  *pBoneRemap) PURE;
248
249    STDMETHOD(AddBoneInfluences)(THIS_ UINT  BoneIndex, UINT  InfluenceCount, UINT  *pIndices, float *pWeights) PURE;
250    STDMETHOD(ClearBoneInfluences)(THIS_ UINT  BoneIndex) PURE;
251    STDMETHOD_(UINT , GetBoneInfluenceCount)(THIS_ UINT  BoneIndex) PURE;
252    STDMETHOD(GetBoneInfluences)(THIS_ UINT  BoneIndex, UINT  Offset, UINT  Count, UINT  *pDestIndices, float *pDestWeights) PURE;
253    STDMETHOD(FindBoneInfluenceIndex)(THIS_ UINT  BoneIndex, UINT  VertexIndex, UINT  *pInfluenceIndex) PURE;
254    STDMETHOD(SetBoneInfluence)(THIS_ UINT  BoneIndex, UINT  InfluenceIndex, float Weight) PURE;
255    STDMETHOD(GetBoneInfluence)(THIS_ UINT  BoneIndex, UINT  InfluenceIndex, float *pWeight) PURE;
256
257    STDMETHOD(Compact)(THIS_ UINT  MaxPerVertexInfluences, UINT  ScaleMode, float MinWeight) PURE;
258    STDMETHOD(DoSoftwareSkinning)(UINT  StartVertex, UINT  VertexCount, void *pSrcVertices, UINT  SrcStride, void *pDestVertices, UINT  DestStride, D3DXMATRIX *pBoneMatrices, D3DXMATRIX *pInverseTransposeBoneMatrices, D3DX10_SKINNING_CHANNEL *pChannelDescs, UINT  NumChannels) PURE;
259};
260
261#ifdef __cplusplus
262extern "C" {
263#endif //__cplusplus
264
265HRESULT WINAPI
266    D3DX10CreateSkinInfo(LPD3DX10SKININFO* ppSkinInfo);
267       
268#ifdef __cplusplus
269}
270#endif //__cplusplus
271
272typedef struct _D3DX10_ATTRIBUTE_WEIGHTS
273{
274    FLOAT Position;
275    FLOAT Boundary;
276    FLOAT Normal;
277    FLOAT Diffuse;
278    FLOAT Specular;
279    FLOAT Texcoord[8];
280    FLOAT Tangent;
281    FLOAT Binormal;
282} D3DX10_ATTRIBUTE_WEIGHTS, *LPD3DX10_ATTRIBUTE_WEIGHTS;
283
284#endif //__D3DX10MESH_H__
285
286
trunk/3rdparty/dxsdk/Include/D3DX10tex.h
r243310r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       d3dx10tex.h
6//  Content:    D3DX10 texturing APIs
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#include "d3dx10.h"
11
12#ifndef __D3DX10TEX_H__
13#define __D3DX10TEX_H__
14
15
16//----------------------------------------------------------------------------
17// D3DX10_FILTER flags:
18// ------------------
19//
20// A valid filter must contain one of these values:
21//
22//  D3DX10_FILTER_NONE
23//      No scaling or filtering will take place.  Pixels outside the bounds
24//      of the source image are assumed to be transparent black.
25//  D3DX10_FILTER_POINT
26//      Each destination pixel is computed by sampling the nearest pixel
27//      from the source image.
28//  D3DX10_FILTER_LINEAR
29//      Each destination pixel is computed by linearly interpolating between
30//      the nearest pixels in the source image.  This filter works best
31//      when the scale on each axis is less than 2.
32//  D3DX10_FILTER_TRIANGLE
33//      Every pixel in the source image contributes equally to the
34//      destination image.  This is the slowest of all the filters.
35//  D3DX10_FILTER_BOX
36//      Each pixel is computed by averaging a 2x2(x2) box pixels from
37//      the source image. Only works when the dimensions of the
38//      destination are half those of the source. (as with mip maps)
39//
40// And can be OR'd with any of these optional flags:
41//
42//  D3DX10_FILTER_MIRROR_U
43//      Indicates that pixels off the edge of the texture on the U-axis
44//      should be mirrored, not wraped.
45//  D3DX10_FILTER_MIRROR_V
46//      Indicates that pixels off the edge of the texture on the V-axis
47//      should be mirrored, not wraped.
48//  D3DX10_FILTER_MIRROR_W
49//      Indicates that pixels off the edge of the texture on the W-axis
50//      should be mirrored, not wraped.
51//  D3DX10_FILTER_MIRROR
52//      Same as specifying D3DX10_FILTER_MIRROR_U | D3DX10_FILTER_MIRROR_V |
53//      D3DX10_FILTER_MIRROR_V
54//  D3DX10_FILTER_DITHER
55//      Dithers the resulting image using a 4x4 order dither pattern.
56//  D3DX10_FILTER_SRGB_IN
57//      Denotes that the input data is in sRGB (gamma 2.2) colorspace.
58//  D3DX10_FILTER_SRGB_OUT
59//      Denotes that the output data is in sRGB (gamma 2.2) colorspace.
60//  D3DX10_FILTER_SRGB
61//      Same as specifying D3DX10_FILTER_SRGB_IN | D3DX10_FILTER_SRGB_OUT
62//
63//----------------------------------------------------------------------------
64
65typedef enum D3DX10_FILTER_FLAG
66{
67    D3DX10_FILTER_NONE            =   (1 << 0),
68    D3DX10_FILTER_POINT           =   (2 << 0),
69    D3DX10_FILTER_LINEAR          =   (3 << 0),
70    D3DX10_FILTER_TRIANGLE        =   (4 << 0),
71    D3DX10_FILTER_BOX             =   (5 << 0),
72
73    D3DX10_FILTER_MIRROR_U        =   (1 << 16),
74    D3DX10_FILTER_MIRROR_V        =   (2 << 16),
75    D3DX10_FILTER_MIRROR_W        =   (4 << 16),
76    D3DX10_FILTER_MIRROR          =   (7 << 16),
77
78    D3DX10_FILTER_DITHER          =   (1 << 19),
79    D3DX10_FILTER_DITHER_DIFFUSION=   (2 << 19),
80
81    D3DX10_FILTER_SRGB_IN         =   (1 << 21),
82    D3DX10_FILTER_SRGB_OUT        =   (2 << 21),
83    D3DX10_FILTER_SRGB            =   (3 << 21),
84} D3DX10_FILTER_FLAG;
85
86//----------------------------------------------------------------------------
87// D3DX10_NORMALMAP flags:
88// ---------------------
89// These flags are used to control how D3DX10ComputeNormalMap generates normal
90// maps.  Any number of these flags may be OR'd together in any combination.
91//
92//  D3DX10_NORMALMAP_MIRROR_U
93//      Indicates that pixels off the edge of the texture on the U-axis
94//      should be mirrored, not wraped.
95//  D3DX10_NORMALMAP_MIRROR_V
96//      Indicates that pixels off the edge of the texture on the V-axis
97//      should be mirrored, not wraped.
98//  D3DX10_NORMALMAP_MIRROR
99//      Same as specifying D3DX10_NORMALMAP_MIRROR_U | D3DX10_NORMALMAP_MIRROR_V
100//  D3DX10_NORMALMAP_INVERTSIGN
101//      Inverts the direction of each normal
102//  D3DX10_NORMALMAP_COMPUTE_OCCLUSION
103//      Compute the per pixel Occlusion term and encodes it into the alpha.
104//      An Alpha of 1 means that the pixel is not obscured in anyway, and
105//      an alpha of 0 would mean that the pixel is completly obscured.
106//
107//----------------------------------------------------------------------------
108
109typedef enum D3DX10_NORMALMAP_FLAG
110{
111    D3DX10_NORMALMAP_MIRROR_U          =   (1 << 16),
112    D3DX10_NORMALMAP_MIRROR_V          =   (2 << 16),
113    D3DX10_NORMALMAP_MIRROR            =   (3 << 16),
114    D3DX10_NORMALMAP_INVERTSIGN        =   (8 << 16),
115    D3DX10_NORMALMAP_COMPUTE_OCCLUSION =   (16 << 16),
116} D3DX10_NORMALMAP_FLAG;
117
118//----------------------------------------------------------------------------
119// D3DX10_CHANNEL flags:
120// -------------------
121// These flags are used by functions which operate on or more channels
122// in a texture.
123//
124// D3DX10_CHANNEL_RED
125//     Indicates the red channel should be used
126// D3DX10_CHANNEL_BLUE
127//     Indicates the blue channel should be used
128// D3DX10_CHANNEL_GREEN
129//     Indicates the green channel should be used
130// D3DX10_CHANNEL_ALPHA
131//     Indicates the alpha channel should be used
132// D3DX10_CHANNEL_LUMINANCE
133//     Indicates the luminaces of the red green and blue channels should be
134//     used.
135//
136//----------------------------------------------------------------------------
137
138typedef enum D3DX10_CHANNEL_FLAG
139{
140    D3DX10_CHANNEL_RED           =    (1 << 0),
141    D3DX10_CHANNEL_BLUE          =    (1 << 1),
142    D3DX10_CHANNEL_GREEN         =    (1 << 2),
143    D3DX10_CHANNEL_ALPHA         =    (1 << 3),
144    D3DX10_CHANNEL_LUMINANCE     =    (1 << 4),
145} D3DX10_CHANNEL_FLAG;
146
147
148
149//----------------------------------------------------------------------------
150// D3DX10_IMAGE_FILE_FORMAT:
151// ---------------------
152// This enum is used to describe supported image file formats.
153//
154//----------------------------------------------------------------------------
155
156typedef enum D3DX10_IMAGE_FILE_FORMAT
157{
158    D3DX10_IFF_BMP         = 0,
159    D3DX10_IFF_JPG         = 1,
160    D3DX10_IFF_PNG         = 3,
161    D3DX10_IFF_DDS         = 4,
162    D3DX10_IFF_TIFF        = 10,
163    D3DX10_IFF_GIF        = 11,
164    D3DX10_IFF_WMP        = 12,
165    D3DX10_IFF_FORCE_DWORD = 0x7fffffff
166
167} D3DX10_IMAGE_FILE_FORMAT;
168
169
170//----------------------------------------------------------------------------
171// D3DX10_SAVE_TEXTURE_FLAG:
172// ---------------------
173// This enum is used to support texture saving options.
174//
175//----------------------------------------------------------------------------
176
177typedef enum D3DX10_SAVE_TEXTURE_FLAG
178{
179    D3DX10_STF_USEINPUTBLOB      = 0x0001,
180} D3DX10_SAVE_TEXTURE_FLAG;
181
182
183
184//----------------------------------------------------------------------------
185// D3DX10_IMAGE_INFO:
186// ---------------
187// This structure is used to return a rough description of what the
188// the original contents of an image file looked like.
189//
190//  Width
191//      Width of original image in pixels
192//  Height
193//      Height of original image in pixels
194//  Depth
195//      Depth of original image in pixels
196//  ArraySize
197//      Array size in textures
198//  MipLevels
199//      Number of mip levels in original image
200//  MiscFlags
201//      Miscellaneous flags
202//  Format
203//      D3D format which most closely describes the data in original image
204//  ResourceDimension
205//      D3D10_RESOURCE_DIMENSION representing the dimension of texture stored in the file.
206//      D3D10_RESOURCE_DIMENSION_TEXTURE1D, 2D, 3D
207//  ImageFileFormat
208//      D3DX10_IMAGE_FILE_FORMAT representing the format of the image file.
209//----------------------------------------------------------------------------
210
211typedef struct D3DX10_IMAGE_INFO
212{
213    UINT                        Width;
214    UINT                        Height;
215    UINT                        Depth;
216    UINT                        ArraySize;
217    UINT                        MipLevels;
218    UINT                        MiscFlags;
219    DXGI_FORMAT                 Format;
220    D3D10_RESOURCE_DIMENSION    ResourceDimension;
221    D3DX10_IMAGE_FILE_FORMAT    ImageFileFormat;
222} D3DX10_IMAGE_INFO;
223
224
225
226
227
228#ifdef __cplusplus
229extern "C" {
230#endif //__cplusplus
231
232
233
234//////////////////////////////////////////////////////////////////////////////
235// Image File APIs ///////////////////////////////////////////////////////////
236//////////////////////////////////////////////////////////////////////////////
237
238//----------------------------------------------------------------------------
239// D3DX10_IMAGE_LOAD_INFO:
240// ---------------
241// This structure can be optionally passed in to texture loader APIs to
242// control how textures get loaded. Pass in D3DX10_DEFAULT for any of these
243// to have D3DX automatically pick defaults based on the source file.
244//
245//  Width
246//      Rescale texture to Width texels wide
247//  Height
248//      Rescale texture to Height texels high
249//  Depth
250//      Rescale texture to Depth texels deep
251//  FirstMipLevel
252//      First mip level to load
253//  MipLevels
254//      Number of mip levels to load after the first level
255//  Usage
256//      D3D10_USAGE flag for the new texture
257//  BindFlags
258//      D3D10 Bind flags for the new texture
259//  CpuAccessFlags
260//      D3D10 CPU Access flags for the new texture
261//  MiscFlags
262//      Reserved. Must be 0
263//  Format
264//      Resample texture to the specified format
265//  Filter
266//      Filter the texture using the specified filter (only when resampling)
267//  MipFilter
268//      Filter the texture mip levels using the specified filter (only if
269//      generating mips)
270//  pSrcInfo
271//      (optional) pointer to a D3DX10_IMAGE_INFO structure that will get
272//      populated with source image information
273//----------------------------------------------------------------------------
274
275
276typedef struct D3DX10_IMAGE_LOAD_INFO
277{
278    UINT                       Width;
279    UINT                       Height;
280    UINT                       Depth;
281    UINT                       FirstMipLevel;
282    UINT                       MipLevels;
283    D3D10_USAGE                Usage;
284    UINT                       BindFlags;
285    UINT                       CpuAccessFlags;
286    UINT                       MiscFlags;
287    DXGI_FORMAT                Format;
288    UINT                       Filter;
289    UINT                       MipFilter;
290    D3DX10_IMAGE_INFO*         pSrcInfo;
291   
292#ifdef __cplusplus
293    D3DX10_IMAGE_LOAD_INFO()
294    {
295        Width = D3DX10_DEFAULT;
296        Height = D3DX10_DEFAULT;
297        Depth = D3DX10_DEFAULT;
298        FirstMipLevel = D3DX10_DEFAULT;
299        MipLevels = D3DX10_DEFAULT;
300        Usage = (D3D10_USAGE) D3DX10_DEFAULT;
301        BindFlags = D3DX10_DEFAULT;
302        CpuAccessFlags = D3DX10_DEFAULT;
303        MiscFlags = D3DX10_DEFAULT;
304        Format = DXGI_FORMAT_FROM_FILE;
305        Filter = D3DX10_DEFAULT;
306        MipFilter = D3DX10_DEFAULT;
307        pSrcInfo = NULL;
308    } 
309#endif
310
311} D3DX10_IMAGE_LOAD_INFO;
312
313//-------------------------------------------------------------------------------
314// GetImageInfoFromFile/Resource/Memory:
315// ------------------------------
316// Fills in a D3DX10_IMAGE_INFO struct with information about an image file.
317//
318// Parameters:
319//  pSrcFile
320//      File name of the source image.
321//  pSrcModule
322//      Module where resource is located, or NULL for module associated
323//      with image the os used to create the current process.
324//  pSrcResource
325//      Resource name.
326//  pSrcData
327//      Pointer to file in memory.
328//  SrcDataSize
329//      Size in bytes of file in memory.
330//  pPump
331//      Optional pointer to a thread pump object to use.
332//  pSrcInfo
333//      Pointer to a D3DX10_IMAGE_INFO structure to be filled in with the
334//      description of the data in the source image file.
335//  pHResult
336//      Pointer to a memory location to receive the return value upon completion.
337//      Maybe NULL if not needed.
338//      If pPump != NULL, pHResult must be a valid memory location until the
339//      the asynchronous execution completes.
340//-------------------------------------------------------------------------------
341
342HRESULT WINAPI
343    D3DX10GetImageInfoFromFileA(
344        LPCSTR                    pSrcFile,
345        ID3DX10ThreadPump*        pPump,
346        D3DX10_IMAGE_INFO*        pSrcInfo,
347        HRESULT*                  pHResult);
348
349HRESULT WINAPI
350    D3DX10GetImageInfoFromFileW(
351        LPCWSTR                   pSrcFile,
352        ID3DX10ThreadPump*        pPump,
353        D3DX10_IMAGE_INFO*        pSrcInfo,
354        HRESULT*                  pHResult);
355
356#ifdef UNICODE
357#define D3DX10GetImageInfoFromFile D3DX10GetImageInfoFromFileW
358#else
359#define D3DX10GetImageInfoFromFile D3DX10GetImageInfoFromFileA
360#endif
361
362
363HRESULT WINAPI
364    D3DX10GetImageInfoFromResourceA(
365        HMODULE                   hSrcModule,
366        LPCSTR                    pSrcResource,
367        ID3DX10ThreadPump*        pPump,
368        D3DX10_IMAGE_INFO*        pSrcInfo,
369        HRESULT*                  pHResult);
370
371HRESULT WINAPI
372    D3DX10GetImageInfoFromResourceW(
373        HMODULE                   hSrcModule,
374        LPCWSTR                   pSrcResource,
375        ID3DX10ThreadPump*        pPump,
376        D3DX10_IMAGE_INFO*        pSrcInfo,
377        HRESULT*                  pHResult);
378
379#ifdef UNICODE
380#define D3DX10GetImageInfoFromResource D3DX10GetImageInfoFromResourceW
381#else
382#define D3DX10GetImageInfoFromResource D3DX10GetImageInfoFromResourceA
383#endif
384
385
386HRESULT WINAPI
387    D3DX10GetImageInfoFromMemory(
388        LPCVOID                   pSrcData,
389        SIZE_T                    SrcDataSize,
390        ID3DX10ThreadPump*        pPump,
391        D3DX10_IMAGE_INFO*        pSrcInfo,
392        HRESULT*                  pHResult);
393
394
395//////////////////////////////////////////////////////////////////////////////
396// Create/Save Texture APIs //////////////////////////////////////////////////
397//////////////////////////////////////////////////////////////////////////////
398
399//----------------------------------------------------------------------------
400// D3DX10CreateTextureFromFile/Resource/Memory:
401// D3DX10CreateShaderResourceViewFromFile/Resource/Memory:
402// -----------------------------------
403// Create a texture object from a file or resource.
404//
405// Parameters:
406//
407//  pDevice
408//      The D3D device with which the texture is going to be used.
409//  pSrcFile
410//      File name.
411//  hSrcModule
412//      Module handle. if NULL, current module will be used.
413//  pSrcResource
414//      Resource name in module
415//  pvSrcData
416//      Pointer to file in memory.
417//  SrcDataSize
418//      Size in bytes of file in memory.
419//  pLoadInfo
420//      Optional pointer to a D3DX10_IMAGE_LOAD_INFO structure that
421//      contains additional loader parameters.
422//  pPump
423//      Optional pointer to a thread pump object to use.
424//  ppTexture
425//      [out] Created texture object.
426//  ppShaderResourceView
427//      [out] Shader resource view object created.
428//  pHResult
429//      Pointer to a memory location to receive the return value upon completion.
430//      Maybe NULL if not needed.
431//      If pPump != NULL, pHResult must be a valid memory location until the
432//      the asynchronous execution completes.
433//
434//----------------------------------------------------------------------------
435
436
437// FromFile
438
439HRESULT WINAPI
440    D3DX10CreateShaderResourceViewFromFileA(
441        ID3D10Device*               pDevice,
442        LPCSTR                      pSrcFile,
443        D3DX10_IMAGE_LOAD_INFO      *pLoadInfo,
444        ID3DX10ThreadPump*          pPump,
445        ID3D10ShaderResourceView**  ppShaderResourceView,
446        HRESULT*                    pHResult);
447
448HRESULT WINAPI
449    D3DX10CreateShaderResourceViewFromFileW(
450        ID3D10Device*               pDevice,
451        LPCWSTR                     pSrcFile,
452        D3DX10_IMAGE_LOAD_INFO      *pLoadInfo,
453        ID3DX10ThreadPump*          pPump,
454        ID3D10ShaderResourceView**  ppShaderResourceView,
455        HRESULT*                    pHResult);
456
457#ifdef UNICODE
458#define D3DX10CreateShaderResourceViewFromFile D3DX10CreateShaderResourceViewFromFileW
459#else
460#define D3DX10CreateShaderResourceViewFromFile D3DX10CreateShaderResourceViewFromFileA
461#endif
462
463HRESULT WINAPI
464    D3DX10CreateTextureFromFileA(
465        ID3D10Device*               pDevice,
466        LPCSTR                      pSrcFile,
467        D3DX10_IMAGE_LOAD_INFO      *pLoadInfo,
468        ID3DX10ThreadPump*          pPump,
469        ID3D10Resource**            ppTexture,
470        HRESULT*                    pHResult);
471
472HRESULT WINAPI
473    D3DX10CreateTextureFromFileW(
474        ID3D10Device*               pDevice,
475        LPCWSTR                     pSrcFile,
476        D3DX10_IMAGE_LOAD_INFO      *pLoadInfo,
477        ID3DX10ThreadPump*          pPump,
478        ID3D10Resource**            ppTexture,
479        HRESULT*                    pHResult);
480
481#ifdef UNICODE
482#define D3DX10CreateTextureFromFile D3DX10CreateTextureFromFileW
483#else
484#define D3DX10CreateTextureFromFile D3DX10CreateTextureFromFileA
485#endif
486
487
488// FromResource (resources in dll/exes)
489
490HRESULT WINAPI
491    D3DX10CreateShaderResourceViewFromResourceA(
492        ID3D10Device*              pDevice,
493        HMODULE                    hSrcModule,
494        LPCSTR                     pSrcResource,
495        D3DX10_IMAGE_LOAD_INFO*    pLoadInfo,
496        ID3DX10ThreadPump*         pPump,
497        ID3D10ShaderResourceView** ppShaderResourceView,
498        HRESULT*                   pHResult);
499
500HRESULT WINAPI
501    D3DX10CreateShaderResourceViewFromResourceW(
502        ID3D10Device*              pDevice,
503        HMODULE                    hSrcModule,
504        LPCWSTR                    pSrcResource,
505        D3DX10_IMAGE_LOAD_INFO*    pLoadInfo,
506        ID3DX10ThreadPump*         pPump,
507        ID3D10ShaderResourceView** ppShaderResourceView,
508        HRESULT*                   pHResult);
509
510#ifdef UNICODE
511#define D3DX10CreateShaderResourceViewFromResource D3DX10CreateShaderResourceViewFromResourceW
512#else
513#define D3DX10CreateShaderResourceViewFromResource D3DX10CreateShaderResourceViewFromResourceA
514#endif
515
516HRESULT WINAPI
517    D3DX10CreateTextureFromResourceA(
518        ID3D10Device*            pDevice,
519        HMODULE                  hSrcModule,
520        LPCSTR                   pSrcResource,
521        D3DX10_IMAGE_LOAD_INFO   *pLoadInfo, 
522        ID3DX10ThreadPump*       pPump,   
523        ID3D10Resource**         ppTexture,
524        HRESULT*                 pHResult);
525
526HRESULT WINAPI
527    D3DX10CreateTextureFromResourceW(
528        ID3D10Device*           pDevice,
529        HMODULE                 hSrcModule,
530        LPCWSTR                 pSrcResource,
531        D3DX10_IMAGE_LOAD_INFO* pLoadInfo,
532        ID3DX10ThreadPump*      pPump,
533        ID3D10Resource**        ppTexture,
534        HRESULT*                pHResult);
535
536#ifdef UNICODE
537#define D3DX10CreateTextureFromResource D3DX10CreateTextureFromResourceW
538#else
539#define D3DX10CreateTextureFromResource D3DX10CreateTextureFromResourceA
540#endif
541
542
543// FromFileInMemory
544
545HRESULT WINAPI
546    D3DX10CreateShaderResourceViewFromMemory(
547        ID3D10Device*              pDevice,
548        LPCVOID                    pSrcData,
549        SIZE_T                     SrcDataSize,
550        D3DX10_IMAGE_LOAD_INFO*    pLoadInfo,
551        ID3DX10ThreadPump*         pPump,       
552        ID3D10ShaderResourceView** ppShaderResourceView,
553        HRESULT*                   pHResult);
554
555HRESULT WINAPI
556    D3DX10CreateTextureFromMemory(
557        ID3D10Device*             pDevice,
558        LPCVOID                   pSrcData,
559        SIZE_T                    SrcDataSize,
560        D3DX10_IMAGE_LOAD_INFO*   pLoadInfo,   
561        ID3DX10ThreadPump*        pPump,   
562        ID3D10Resource**          ppTexture,
563        HRESULT*                  pHResult);
564
565
566//////////////////////////////////////////////////////////////////////////////
567// Misc Texture APIs /////////////////////////////////////////////////////////
568//////////////////////////////////////////////////////////////////////////////
569
570//----------------------------------------------------------------------------
571// D3DX10_TEXTURE_LOAD_INFO:
572// ------------------------
573//
574//----------------------------------------------------------------------------
575
576typedef struct _D3DX10_TEXTURE_LOAD_INFO
577{
578    D3D10_BOX       *pSrcBox;
579    D3D10_BOX       *pDstBox;
580    UINT            SrcFirstMip;
581    UINT            DstFirstMip;
582    UINT            NumMips;
583    UINT            SrcFirstElement;
584    UINT            DstFirstElement;
585    UINT            NumElements;
586    UINT            Filter;
587    UINT            MipFilter;
588   
589#ifdef __cplusplus
590    _D3DX10_TEXTURE_LOAD_INFO()
591    {
592        pSrcBox = NULL;
593        pDstBox = NULL;
594        SrcFirstMip = 0;
595        DstFirstMip = 0;
596        NumMips = D3DX10_DEFAULT;
597        SrcFirstElement = 0;
598        DstFirstElement = 0;
599        NumElements = D3DX10_DEFAULT;
600        Filter = D3DX10_DEFAULT;
601        MipFilter = D3DX10_DEFAULT;
602    } 
603#endif
604
605} D3DX10_TEXTURE_LOAD_INFO;
606
607
608//----------------------------------------------------------------------------
609// D3DX10LoadTextureFromTexture:
610// ----------------------------
611// Load a texture from a texture.
612//
613// Parameters:
614//
615//----------------------------------------------------------------------------
616
617
618HRESULT WINAPI
619    D3DX10LoadTextureFromTexture(
620        ID3D10Resource            *pSrcTexture,
621        D3DX10_TEXTURE_LOAD_INFO  *pLoadInfo,
622        ID3D10Resource            *pDstTexture);
623
624
625//----------------------------------------------------------------------------
626// D3DX10FilterTexture:
627// ------------------
628// Filters mipmaps levels of a texture.
629//
630// Parameters:
631//  pBaseTexture
632//      The texture object to be filtered
633//  SrcLevel
634//      The level whose image is used to generate the subsequent levels.
635//  MipFilter
636//      D3DX10_FILTER flags controlling how each miplevel is filtered.
637//      Or D3DX10_DEFAULT for D3DX10_FILTER_BOX,
638//
639//----------------------------------------------------------------------------
640
641HRESULT WINAPI
642    D3DX10FilterTexture(
643        ID3D10Resource            *pTexture,
644        UINT                      SrcLevel,
645        UINT                      MipFilter);
646
647
648//----------------------------------------------------------------------------
649// D3DX10SaveTextureToFile:
650// ----------------------
651// Save a texture to a file.
652//
653// Parameters:
654//  pDestFile
655//      File name of the destination file
656//  DestFormat
657//      D3DX10_IMAGE_FILE_FORMAT specifying file format to use when saving.
658//  pSrcTexture
659//      Source texture, containing the image to be saved
660//
661//----------------------------------------------------------------------------
662
663HRESULT WINAPI
664    D3DX10SaveTextureToFileA(
665        ID3D10Resource            *pSrcTexture,
666        D3DX10_IMAGE_FILE_FORMAT    DestFormat,
667        LPCSTR                    pDestFile);
668
669HRESULT WINAPI
670    D3DX10SaveTextureToFileW(
671        ID3D10Resource            *pSrcTexture,
672        D3DX10_IMAGE_FILE_FORMAT    DestFormat,
673        LPCWSTR                   pDestFile);
674
675#ifdef UNICODE
676#define D3DX10SaveTextureToFile D3DX10SaveTextureToFileW
677#else
678#define D3DX10SaveTextureToFile D3DX10SaveTextureToFileA
679#endif
680
681
682//----------------------------------------------------------------------------
683// D3DX10SaveTextureToMemory:
684// ----------------------
685// Save a texture to a blob.
686//
687// Parameters:
688//  pSrcTexture
689//      Source texture, containing the image to be saved
690//  DestFormat
691//      D3DX10_IMAGE_FILE_FORMAT specifying file format to use when saving.
692//  ppDestBuf
693//      address of a d3dxbuffer pointer to return the image data
694//  Flags
695//      optional flags
696//----------------------------------------------------------------------------
697
698HRESULT WINAPI
699    D3DX10SaveTextureToMemory(
700        ID3D10Resource*            pSrcTexture,
701        D3DX10_IMAGE_FILE_FORMAT   DestFormat,
702        LPD3D10BLOB*               ppDestBuf,
703        UINT                       Flags);
704
705
706//----------------------------------------------------------------------------
707// D3DX10ComputeNormalMap:
708// ---------------------
709// Converts a height map into a normal map.  The (x,y,z) components of each
710// normal are mapped to the (r,g,b) channels of the output texture.
711//
712// Parameters
713//  pSrcTexture
714//      Pointer to the source heightmap texture
715//  Flags
716//      D3DX10_NORMALMAP flags
717//  Channel
718//      D3DX10_CHANNEL specifying source of height information
719//  Amplitude
720//      The constant value which the height information is multiplied by.
721//  pDestTexture
722//      Pointer to the destination texture
723//---------------------------------------------------------------------------
724
725HRESULT WINAPI
726    D3DX10ComputeNormalMap(
727        ID3D10Texture2D           *pSrcTexture,
728        UINT                      Flags,
729        UINT                      Channel,
730        FLOAT                     Amplitude,
731        ID3D10Texture2D           *pDestTexture);
732
733
734//----------------------------------------------------------------------------
735// D3DX10SHProjectCubeMap:
736// ----------------------
737//  Projects a function represented in a cube map into spherical harmonics.
738//
739//  Parameters:
740//   Order
741//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
742//   pCubeMap
743//      CubeMap that is going to be projected into spherical harmonics
744//   pROut
745//      Output SH vector for Red.
746//   pGOut
747//      Output SH vector for Green
748//   pBOut
749//      Output SH vector for Blue       
750//
751//---------------------------------------------------------------------------
752
753HRESULT WINAPI
754    D3DX10SHProjectCubeMap(
755        __in_range(2,6) UINT                                Order,
756        ID3D10Texture2D                                    *pCubeMap,
757        __out_ecount(Order*Order) FLOAT                    *pROut,
758        __out_ecount_opt(Order*Order) FLOAT                *pGOut,
759        __out_ecount_opt(Order*Order) FLOAT                *pBOut);
760
761#ifdef __cplusplus
762}
763#endif //__cplusplus
764
765#endif //__D3DX10TEX_H__
766
trunk/3rdparty/dxsdk/Include/D3DX11.h
r243310r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       d3dx11.h
6//  Content:    D3DX11 utility library
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#ifdef  __D3DX11_INTERNAL__
11#error Incorrect D3DX11 header used
12#endif
13
14#ifndef __D3DX11_H__
15#define __D3DX11_H__
16
17
18// Defines
19#include <limits.h>
20#include <float.h>
21
22#ifdef ALLOW_THROWING_NEW
23#include <new>
24#endif
25
26#define D3DX11_DEFAULT            ((UINT) -1)
27#define D3DX11_FROM_FILE          ((UINT) -3)
28#define DXGI_FORMAT_FROM_FILE     ((DXGI_FORMAT) -3)
29
30#ifndef D3DX11INLINE
31#ifdef _MSC_VER
32  #if (_MSC_VER >= 1200)
33  #define D3DX11INLINE __forceinline
34  #else
35  #define D3DX11INLINE __inline
36  #endif
37#else
38  #ifdef __cplusplus
39  #define D3DX11INLINE inline
40  #else
41  #define D3DX11INLINE
42  #endif
43#endif
44#endif
45
46
47
48// Includes
49#include "d3d11.h"
50#include "d3dx11.h"
51#include "d3dx11core.h"
52#include "d3dx11tex.h"
53#include "d3dx11async.h"
54
55
56// Errors
57#define _FACDD  0x876
58#define MAKE_DDHRESULT( code )  MAKE_HRESULT( 1, _FACDD, code )
59
60enum _D3DX11_ERR {
61    D3DX11_ERR_CANNOT_MODIFY_INDEX_BUFFER       = MAKE_DDHRESULT(2900),
62    D3DX11_ERR_INVALID_MESH                     = MAKE_DDHRESULT(2901),
63    D3DX11_ERR_CANNOT_ATTR_SORT                 = MAKE_DDHRESULT(2902),
64    D3DX11_ERR_SKINNING_NOT_SUPPORTED           = MAKE_DDHRESULT(2903),
65    D3DX11_ERR_TOO_MANY_INFLUENCES              = MAKE_DDHRESULT(2904),
66    D3DX11_ERR_INVALID_DATA                     = MAKE_DDHRESULT(2905),
67    D3DX11_ERR_LOADED_MESH_HAS_NO_DATA          = MAKE_DDHRESULT(2906),
68    D3DX11_ERR_DUPLICATE_NAMED_FRAGMENT         = MAKE_DDHRESULT(2907),
69    D3DX11_ERR_CANNOT_REMOVE_LAST_ITEM          = MAKE_DDHRESULT(2908),
70};
71
72
73#endif //__D3DX11_H__
74
trunk/3rdparty/dxsdk/Include/D3DX11async.h
r243310r243311
1
2//////////////////////////////////////////////////////////////////////////////
3//
4//  Copyright (c) Microsoft Corporation.  All rights reserved.
5//
6//  File:       D3DX11Async.h
7//  Content:    D3DX11 Asynchronous Shader loaders / compilers
8//
9//////////////////////////////////////////////////////////////////////////////
10
11#ifndef __D3DX11ASYNC_H__
12#define __D3DX11ASYNC_H__
13
14#include "d3dx11.h"
15
16#ifdef __cplusplus
17extern "C" {
18#endif //__cplusplus
19
20
21//----------------------------------------------------------------------------
22// D3DX11Compile:
23// ------------------
24// Compiles an effect or shader.
25//
26// Parameters:
27//  pSrcFile
28//      Source file name.
29//  hSrcModule
30//      Module handle. if NULL, current module will be used.
31//  pSrcResource
32//      Resource name in module.
33//  pSrcData
34//      Pointer to source code.
35//  SrcDataLen
36//      Size of source code, in bytes.
37//  pDefines
38//      Optional NULL-terminated array of preprocessor macro definitions.
39//  pInclude
40//      Optional interface pointer to use for handling #include directives.
41//      If this parameter is NULL, #includes will be honored when compiling
42//      from file, and will error when compiling from resource or memory.
43//  pFunctionName
44//      Name of the entrypoint function where execution should begin.
45//  pProfile
46//      Instruction set to be used when generating code.  Currently supported
47//      profiles are "vs_1_1",  "vs_2_0", "vs_2_a", "vs_2_sw", "vs_3_0",
48//                   "vs_3_sw", "vs_4_0", "vs_4_1",
49//                   "ps_2_0",  "ps_2_a", "ps_2_b", "ps_2_sw", "ps_3_0",
50//                   "ps_3_sw", "ps_4_0", "ps_4_1",
51//                   "gs_4_0",  "gs_4_1",
52//                   "tx_1_0",
53//                   "fx_4_0",  "fx_4_1"
54//      Note that this entrypoint does not compile fx_2_0 targets, for that
55//      you need to use the D3DX9 function.
56//  Flags1
57//      See D3D10_SHADER_xxx flags.
58//  Flags2
59//      See D3D10_EFFECT_xxx flags.
60//  ppShader
61//      Returns a buffer containing the created shader.  This buffer contains
62//      the compiled shader code, as well as any embedded debug and symbol
63//      table info.  (See D3D10GetShaderConstantTable)
64//  ppErrorMsgs
65//      Returns a buffer containing a listing of errors and warnings that were
66//      encountered during the compile.  If you are running in a debugger,
67//      these are the same messages you will see in your debug output.
68//  pHResult
69//      Pointer to a memory location to receive the return value upon completion.
70//      Maybe NULL if not needed.
71//      If pPump != NULL, pHResult must be a valid memory location until the
72//      the asynchronous execution completes.
73//----------------------------------------------------------------------------
74
75HRESULT WINAPI D3DX11CompileFromFileA(LPCSTR pSrcFile,CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
76        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
77
78HRESULT WINAPI D3DX11CompileFromFileW(LPCWSTR pSrcFile, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
79        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
80
81#ifdef UNICODE
82#define D3DX11CompileFromFile D3DX11CompileFromFileW
83#else
84#define D3DX11CompileFromFile D3DX11CompileFromFileA
85#endif
86
87HRESULT WINAPI D3DX11CompileFromResourceA(HMODULE hSrcModule, LPCSTR pSrcResource, LPCSTR pSrcFileName, CONST D3D10_SHADER_MACRO* pDefines,
88    LPD3D10INCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
89
90HRESULT WINAPI D3DX11CompileFromResourceW(HMODULE hSrcModule, LPCWSTR pSrcResource, LPCWSTR pSrcFileName, CONST D3D10_SHADER_MACRO* pDefines,
91    LPD3D10INCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
92
93#ifdef UNICODE
94#define D3DX11CompileFromResource D3DX11CompileFromResourceW
95#else
96#define D3DX11CompileFromResource D3DX11CompileFromResourceA
97#endif
98
99HRESULT WINAPI D3DX11CompileFromMemory(LPCSTR pSrcData, SIZE_T SrcDataLen, LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
100    LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
101
102HRESULT WINAPI D3DX11PreprocessShaderFromFileA(LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines,
103    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
104
105HRESULT WINAPI D3DX11PreprocessShaderFromFileW(LPCWSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines,
106    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
107
108HRESULT WINAPI D3DX11PreprocessShaderFromMemory(LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines,
109    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
110
111HRESULT WINAPI D3DX11PreprocessShaderFromResourceA(HMODULE hModule, LPCSTR pResourceName, LPCSTR pSrcFileName, CONST D3D10_SHADER_MACRO* pDefines,
112    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
113
114HRESULT WINAPI D3DX11PreprocessShaderFromResourceW(HMODULE hModule, LPCWSTR pResourceName, LPCWSTR pSrcFileName, CONST D3D10_SHADER_MACRO* pDefines,
115    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
116
117#ifdef UNICODE
118#define D3DX11PreprocessShaderFromFile      D3DX11PreprocessShaderFromFileW
119#define D3DX11PreprocessShaderFromResource  D3DX11PreprocessShaderFromResourceW
120#else
121#define D3DX11PreprocessShaderFromFile      D3DX11PreprocessShaderFromFileA
122#define D3DX11PreprocessShaderFromResource  D3DX11PreprocessShaderFromResourceA
123#endif
124
125//----------------------------------------------------------------------------
126// Async processors
127//----------------------------------------------------------------------------
128
129HRESULT WINAPI D3DX11CreateAsyncCompilerProcessor(LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
130        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2,
131        ID3D10Blob **ppCompiledShader, ID3D10Blob **ppErrorBuffer, ID3DX11DataProcessor **ppProcessor);
132
133HRESULT WINAPI D3DX11CreateAsyncShaderPreprocessProcessor(LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
134        ID3D10Blob** ppShaderText, ID3D10Blob **ppErrorBuffer, ID3DX11DataProcessor **ppProcessor);
135
136//----------------------------------------------------------------------------
137// D3DX11 Asynchronous texture I/O (advanced mode)
138//----------------------------------------------------------------------------
139
140HRESULT WINAPI D3DX11CreateAsyncFileLoaderW(LPCWSTR pFileName, ID3DX11DataLoader **ppDataLoader);
141HRESULT WINAPI D3DX11CreateAsyncFileLoaderA(LPCSTR pFileName, ID3DX11DataLoader **ppDataLoader);
142HRESULT WINAPI D3DX11CreateAsyncMemoryLoader(LPCVOID pData, SIZE_T cbData, ID3DX11DataLoader **ppDataLoader);
143HRESULT WINAPI D3DX11CreateAsyncResourceLoaderW(HMODULE hSrcModule, LPCWSTR pSrcResource, ID3DX11DataLoader **ppDataLoader);
144HRESULT WINAPI D3DX11CreateAsyncResourceLoaderA(HMODULE hSrcModule, LPCSTR pSrcResource, ID3DX11DataLoader **ppDataLoader);
145
146#ifdef UNICODE
147#define D3DX11CreateAsyncFileLoader D3DX11CreateAsyncFileLoaderW
148#define D3DX11CreateAsyncResourceLoader D3DX11CreateAsyncResourceLoaderW
149#else
150#define D3DX11CreateAsyncFileLoader D3DX11CreateAsyncFileLoaderA
151#define D3DX11CreateAsyncResourceLoader D3DX11CreateAsyncResourceLoaderA
152#endif
153
154HRESULT WINAPI D3DX11CreateAsyncTextureProcessor(ID3D11Device *pDevice, D3DX11_IMAGE_LOAD_INFO *pLoadInfo, ID3DX11DataProcessor **ppDataProcessor);
155HRESULT WINAPI D3DX11CreateAsyncTextureInfoProcessor(D3DX11_IMAGE_INFO *pImageInfo, ID3DX11DataProcessor **ppDataProcessor);
156HRESULT WINAPI D3DX11CreateAsyncShaderResourceViewProcessor(ID3D11Device *pDevice, D3DX11_IMAGE_LOAD_INFO *pLoadInfo, ID3DX11DataProcessor **ppDataProcessor);
157
158#ifdef __cplusplus
159}
160#endif //__cplusplus
161
162#endif //__D3DX11ASYNC_H__
163
164
trunk/3rdparty/dxsdk/Include/D3DX11core.h
r243310r243311
1///////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       d3dx11core.h
6//  Content:    D3DX11 core types and functions
7//
8///////////////////////////////////////////////////////////////////////////
9
10#include "d3dx11.h"
11
12#ifndef __D3DX11CORE_H__
13#define __D3DX11CORE_H__
14
15// Current name of the DLL shipped in the same SDK as this header.
16
17
18#define D3DX11_DLL_W L"d3dx11_43.dll"
19#define D3DX11_DLL_A "d3dx11_43.dll"
20
21#ifdef UNICODE
22    #define D3DX11_DLL D3DX11_DLL_W
23#else
24    #define D3DX11_DLL D3DX11_DLL_A
25#endif
26
27#ifdef __cplusplus
28extern "C" {
29#endif //__cplusplus
30
31///////////////////////////////////////////////////////////////////////////
32// D3DX11_SDK_VERSION:
33// -----------------
34// This identifier is passed to D3DX11CheckVersion in order to ensure that an
35// application was built against the correct header files and lib files.
36// This number is incremented whenever a header (or other) change would
37// require applications to be rebuilt. If the version doesn't match,
38// D3DX11CreateVersion will return FALSE. (The number itself has no meaning.)
39///////////////////////////////////////////////////////////////////////////
40
41
42#define D3DX11_SDK_VERSION 43
43
44
45#ifdef D3D_DIAG_DLL
46BOOL WINAPI D3DX11DebugMute(BOOL Mute); 
47#endif
48HRESULT WINAPI D3DX11CheckVersion(UINT D3DSdkVersion, UINT D3DX11SdkVersion);
49
50#ifdef __cplusplus
51}
52#endif //__cplusplus
53
54
55
56//////////////////////////////////////////////////////////////////////////////
57// ID3DX11ThreadPump:
58//////////////////////////////////////////////////////////////////////////////
59
60#undef INTERFACE
61#define INTERFACE ID3DX11DataLoader
62
63DECLARE_INTERFACE(ID3DX11DataLoader)
64{
65   STDMETHOD(Load)(THIS) PURE;
66   STDMETHOD(Decompress)(THIS_ void **ppData, SIZE_T *pcBytes) PURE;
67   STDMETHOD(Destroy)(THIS) PURE;
68};
69
70#undef INTERFACE
71#define INTERFACE ID3DX11DataProcessor
72
73DECLARE_INTERFACE(ID3DX11DataProcessor)
74{
75   STDMETHOD(Process)(THIS_ void *pData, SIZE_T cBytes) PURE;
76   STDMETHOD(CreateDeviceObject)(THIS_ void **ppDataObject) PURE;
77   STDMETHOD(Destroy)(THIS) PURE;
78};
79
80// {C93FECFA-6967-478a-ABBC-402D90621FCB}
81DEFINE_GUID(IID_ID3DX11ThreadPump,
820xc93fecfa, 0x6967, 0x478a, 0xab, 0xbc, 0x40, 0x2d, 0x90, 0x62, 0x1f, 0xcb);
83
84#undef INTERFACE
85#define INTERFACE ID3DX11ThreadPump
86
87DECLARE_INTERFACE_(ID3DX11ThreadPump, IUnknown)
88{
89    // IUnknown
90    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
91    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
92    STDMETHOD_(ULONG, Release)(THIS) PURE;
93
94    // ID3DX11ThreadPump
95    STDMETHOD(AddWorkItem)(THIS_ ID3DX11DataLoader *pDataLoader, ID3DX11DataProcessor *pDataProcessor, HRESULT *pHResult, void **ppDeviceObject) PURE;
96    STDMETHOD_(UINT, GetWorkItemCount)(THIS) PURE;
97     
98    STDMETHOD(WaitForAllItems)(THIS) PURE;
99    STDMETHOD(ProcessDeviceWorkItems)(THIS_ UINT iWorkItemCount);
100
101    STDMETHOD(PurgeAllItems)(THIS) PURE;
102    STDMETHOD(GetQueueStatus)(THIS_ UINT *pIoQueue, UINT *pProcessQueue, UINT *pDeviceQueue) PURE;
103   
104};
105
106#ifdef __cplusplus
107extern "C" {
108#endif //__cplusplus
109
110HRESULT WINAPI D3DX11CreateThreadPump(UINT cIoThreads, UINT cProcThreads, ID3DX11ThreadPump **ppThreadPump);
111
112HRESULT WINAPI D3DX11UnsetAllDeviceObjects(ID3D11DeviceContext *pContext);
113
114#ifdef __cplusplus
115}
116#endif //__cplusplus
117
118///////////////////////////////////////////////////////////////////////////
119
120#define _FACD3D  0x876
121#define MAKE_D3DHRESULT( code )  MAKE_HRESULT( 1, _FACD3D, code )
122#define MAKE_D3DSTATUS( code )  MAKE_HRESULT( 0, _FACD3D, code )
123
124#define D3DERR_INVALIDCALL                      MAKE_D3DHRESULT(2156)
125#define D3DERR_WASSTILLDRAWING                  MAKE_D3DHRESULT(540)
126
127#endif //__D3DX11CORE_H__
128
trunk/3rdparty/dxsdk/Include/D3DX11tex.h
r243310r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       d3dx11tex.h
6//  Content:    D3DX11 texturing APIs
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#include "d3dx11.h"
11
12#ifndef __D3DX11TEX_H__
13#define __D3DX11TEX_H__
14
15
16//----------------------------------------------------------------------------
17// D3DX11_FILTER flags:
18// ------------------
19//
20// A valid filter must contain one of these values:
21//
22//  D3DX11_FILTER_NONE
23//      No scaling or filtering will take place.  Pixels outside the bounds
24//      of the source image are assumed to be transparent black.
25//  D3DX11_FILTER_POINT
26//      Each destination pixel is computed by sampling the nearest pixel
27//      from the source image.
28//  D3DX11_FILTER_LINEAR
29//      Each destination pixel is computed by linearly interpolating between
30//      the nearest pixels in the source image.  This filter works best
31//      when the scale on each axis is less than 2.
32//  D3DX11_FILTER_TRIANGLE
33//      Every pixel in the source image contributes equally to the
34//      destination image.  This is the slowest of all the filters.
35//  D3DX11_FILTER_BOX
36//      Each pixel is computed by averaging a 2x2(x2) box pixels from
37//      the source image. Only works when the dimensions of the
38//      destination are half those of the source. (as with mip maps)
39//
40// And can be OR'd with any of these optional flags:
41//
42//  D3DX11_FILTER_MIRROR_U
43//      Indicates that pixels off the edge of the texture on the U-axis
44//      should be mirrored, not wraped.
45//  D3DX11_FILTER_MIRROR_V
46//      Indicates that pixels off the edge of the texture on the V-axis
47//      should be mirrored, not wraped.
48//  D3DX11_FILTER_MIRROR_W
49//      Indicates that pixels off the edge of the texture on the W-axis
50//      should be mirrored, not wraped.
51//  D3DX11_FILTER_MIRROR
52//      Same as specifying D3DX11_FILTER_MIRROR_U | D3DX11_FILTER_MIRROR_V |
53//      D3DX11_FILTER_MIRROR_V
54//  D3DX11_FILTER_DITHER
55//      Dithers the resulting image using a 4x4 order dither pattern.
56//  D3DX11_FILTER_SRGB_IN
57//      Denotes that the input data is in sRGB (gamma 2.2) colorspace.
58//  D3DX11_FILTER_SRGB_OUT
59//      Denotes that the output data is in sRGB (gamma 2.2) colorspace.
60//  D3DX11_FILTER_SRGB
61//      Same as specifying D3DX11_FILTER_SRGB_IN | D3DX11_FILTER_SRGB_OUT
62//
63//----------------------------------------------------------------------------
64
65typedef enum D3DX11_FILTER_FLAG
66{
67    D3DX11_FILTER_NONE            =   (1 << 0),
68    D3DX11_FILTER_POINT           =   (2 << 0),
69    D3DX11_FILTER_LINEAR          =   (3 << 0),
70    D3DX11_FILTER_TRIANGLE        =   (4 << 0),
71    D3DX11_FILTER_BOX             =   (5 << 0),
72
73    D3DX11_FILTER_MIRROR_U        =   (1 << 16),
74    D3DX11_FILTER_MIRROR_V        =   (2 << 16),
75    D3DX11_FILTER_MIRROR_W        =   (4 << 16),
76    D3DX11_FILTER_MIRROR          =   (7 << 16),
77
78    D3DX11_FILTER_DITHER          =   (1 << 19),
79    D3DX11_FILTER_DITHER_DIFFUSION=   (2 << 19),
80
81    D3DX11_FILTER_SRGB_IN         =   (1 << 21),
82    D3DX11_FILTER_SRGB_OUT        =   (2 << 21),
83    D3DX11_FILTER_SRGB            =   (3 << 21),
84} D3DX11_FILTER_FLAG;
85
86//----------------------------------------------------------------------------
87// D3DX11_NORMALMAP flags:
88// ---------------------
89// These flags are used to control how D3DX11ComputeNormalMap generates normal
90// maps.  Any number of these flags may be OR'd together in any combination.
91//
92//  D3DX11_NORMALMAP_MIRROR_U
93//      Indicates that pixels off the edge of the texture on the U-axis
94//      should be mirrored, not wraped.
95//  D3DX11_NORMALMAP_MIRROR_V
96//      Indicates that pixels off the edge of the texture on the V-axis
97//      should be mirrored, not wraped.
98//  D3DX11_NORMALMAP_MIRROR
99//      Same as specifying D3DX11_NORMALMAP_MIRROR_U | D3DX11_NORMALMAP_MIRROR_V
100//  D3DX11_NORMALMAP_INVERTSIGN
101//      Inverts the direction of each normal
102//  D3DX11_NORMALMAP_COMPUTE_OCCLUSION
103//      Compute the per pixel Occlusion term and encodes it into the alpha.
104//      An Alpha of 1 means that the pixel is not obscured in anyway, and
105//      an alpha of 0 would mean that the pixel is completly obscured.
106//
107//----------------------------------------------------------------------------
108
109typedef enum D3DX11_NORMALMAP_FLAG
110{
111    D3DX11_NORMALMAP_MIRROR_U          =   (1 << 16),
112    D3DX11_NORMALMAP_MIRROR_V          =   (2 << 16),
113    D3DX11_NORMALMAP_MIRROR            =   (3 << 16),
114    D3DX11_NORMALMAP_INVERTSIGN        =   (8 << 16),
115    D3DX11_NORMALMAP_COMPUTE_OCCLUSION =   (16 << 16),
116} D3DX11_NORMALMAP_FLAG;
117
118//----------------------------------------------------------------------------
119// D3DX11_CHANNEL flags:
120// -------------------
121// These flags are used by functions which operate on or more channels
122// in a texture.
123//
124// D3DX11_CHANNEL_RED
125//     Indicates the red channel should be used
126// D3DX11_CHANNEL_BLUE
127//     Indicates the blue channel should be used
128// D3DX11_CHANNEL_GREEN
129//     Indicates the green channel should be used
130// D3DX11_CHANNEL_ALPHA
131//     Indicates the alpha channel should be used
132// D3DX11_CHANNEL_LUMINANCE
133//     Indicates the luminaces of the red green and blue channels should be
134//     used.
135//
136//----------------------------------------------------------------------------
137
138typedef enum D3DX11_CHANNEL_FLAG
139{
140    D3DX11_CHANNEL_RED           =    (1 << 0),
141    D3DX11_CHANNEL_BLUE          =    (1 << 1),
142    D3DX11_CHANNEL_GREEN         =    (1 << 2),
143    D3DX11_CHANNEL_ALPHA         =    (1 << 3),
144    D3DX11_CHANNEL_LUMINANCE     =    (1 << 4),
145} D3DX11_CHANNEL_FLAG;
146
147
148
149//----------------------------------------------------------------------------
150// D3DX11_IMAGE_FILE_FORMAT:
151// ---------------------
152// This enum is used to describe supported image file formats.
153//
154//----------------------------------------------------------------------------
155
156typedef enum D3DX11_IMAGE_FILE_FORMAT
157{
158    D3DX11_IFF_BMP         = 0,
159    D3DX11_IFF_JPG         = 1,
160    D3DX11_IFF_PNG         = 3,
161    D3DX11_IFF_DDS         = 4,
162    D3DX11_IFF_TIFF        = 10,
163    D3DX11_IFF_GIF        = 11,
164    D3DX11_IFF_WMP        = 12,
165    D3DX11_IFF_FORCE_DWORD = 0x7fffffff
166
167} D3DX11_IMAGE_FILE_FORMAT;
168
169
170//----------------------------------------------------------------------------
171// D3DX11_SAVE_TEXTURE_FLAG:
172// ---------------------
173// This enum is used to support texture saving options.
174//
175//----------------------------------------------------------------------------
176
177typedef enum D3DX11_SAVE_TEXTURE_FLAG
178{
179    D3DX11_STF_USEINPUTBLOB      = 0x0001,
180} D3DX11_SAVE_TEXTURE_FLAG;
181
182
183//----------------------------------------------------------------------------
184// D3DX11_IMAGE_INFO:
185// ---------------
186// This structure is used to return a rough description of what the
187// the original contents of an image file looked like.
188//
189//  Width
190//      Width of original image in pixels
191//  Height
192//      Height of original image in pixels
193//  Depth
194//      Depth of original image in pixels
195//  ArraySize
196//      Array size in textures
197//  MipLevels
198//      Number of mip levels in original image
199//  MiscFlags
200//      Miscellaneous flags
201//  Format
202//      D3D format which most closely describes the data in original image
203//  ResourceDimension
204//      D3D11_RESOURCE_DIMENSION representing the dimension of texture stored in the file.
205//      D3D11_RESOURCE_DIMENSION_TEXTURE1D, 2D, 3D
206//  ImageFileFormat
207//      D3DX11_IMAGE_FILE_FORMAT representing the format of the image file.
208//----------------------------------------------------------------------------
209
210typedef struct D3DX11_IMAGE_INFO
211{
212    UINT                        Width;
213    UINT                        Height;
214    UINT                        Depth;
215    UINT                        ArraySize;
216    UINT                        MipLevels;
217    UINT                        MiscFlags;
218    DXGI_FORMAT                 Format;
219    D3D11_RESOURCE_DIMENSION    ResourceDimension;
220    D3DX11_IMAGE_FILE_FORMAT    ImageFileFormat;
221} D3DX11_IMAGE_INFO;
222
223
224
225
226
227#ifdef __cplusplus
228extern "C" {
229#endif //__cplusplus
230
231
232
233//////////////////////////////////////////////////////////////////////////////
234// Image File APIs ///////////////////////////////////////////////////////////
235//////////////////////////////////////////////////////////////////////////////
236
237//----------------------------------------------------------------------------
238// D3DX11_IMAGE_LOAD_INFO:
239// ---------------
240// This structure can be optionally passed in to texture loader APIs to
241// control how textures get loaded. Pass in D3DX11_DEFAULT for any of these
242// to have D3DX automatically pick defaults based on the source file.
243//
244//  Width
245//      Rescale texture to Width texels wide
246//  Height
247//      Rescale texture to Height texels high
248//  Depth
249//      Rescale texture to Depth texels deep
250//  FirstMipLevel
251//      First mip level to load
252//  MipLevels
253//      Number of mip levels to load after the first level
254//  Usage
255//      D3D11_USAGE flag for the new texture
256//  BindFlags
257//      D3D11 Bind flags for the new texture
258//  CpuAccessFlags
259//      D3D11 CPU Access flags for the new texture
260//  MiscFlags
261//      Reserved. Must be 0
262//  Format
263//      Resample texture to the specified format
264//  Filter
265//      Filter the texture using the specified filter (only when resampling)
266//  MipFilter
267//      Filter the texture mip levels using the specified filter (only if
268//      generating mips)
269//  pSrcInfo
270//      (optional) pointer to a D3DX11_IMAGE_INFO structure that will get
271//      populated with source image information
272//----------------------------------------------------------------------------
273
274
275typedef struct D3DX11_IMAGE_LOAD_INFO
276{
277    UINT                       Width;
278    UINT                       Height;
279    UINT                       Depth;
280    UINT                       FirstMipLevel;
281    UINT                       MipLevels;
282    D3D11_USAGE                Usage;
283    UINT                       BindFlags;
284    UINT                       CpuAccessFlags;
285    UINT                       MiscFlags;
286    DXGI_FORMAT                Format;
287    UINT                       Filter;
288    UINT                       MipFilter;
289    D3DX11_IMAGE_INFO*         pSrcInfo;
290   
291#ifdef __cplusplus
292    D3DX11_IMAGE_LOAD_INFO()
293    {
294        Width = D3DX11_DEFAULT;
295        Height = D3DX11_DEFAULT;
296        Depth = D3DX11_DEFAULT;
297        FirstMipLevel = D3DX11_DEFAULT;
298        MipLevels = D3DX11_DEFAULT;
299        Usage = (D3D11_USAGE) D3DX11_DEFAULT;
300        BindFlags = D3DX11_DEFAULT;
301        CpuAccessFlags = D3DX11_DEFAULT;
302        MiscFlags = D3DX11_DEFAULT;
303        Format = DXGI_FORMAT_FROM_FILE;
304        Filter = D3DX11_DEFAULT;
305        MipFilter = D3DX11_DEFAULT;
306        pSrcInfo = NULL;
307    } 
308#endif
309
310} D3DX11_IMAGE_LOAD_INFO;
311
312//-------------------------------------------------------------------------------
313// GetImageInfoFromFile/Resource/Memory:
314// ------------------------------
315// Fills in a D3DX11_IMAGE_INFO struct with information about an image file.
316//
317// Parameters:
318//  pSrcFile
319//      File name of the source image.
320//  pSrcModule
321//      Module where resource is located, or NULL for module associated
322//      with image the os used to create the current process.
323//  pSrcResource
324//      Resource name.
325//  pSrcData
326//      Pointer to file in memory.
327//  SrcDataSize
328//      Size in bytes of file in memory.
329//  pPump
330//      Optional pointer to a thread pump object to use.
331//  pSrcInfo
332//      Pointer to a D3DX11_IMAGE_INFO structure to be filled in with the
333//      description of the data in the source image file.
334//  pHResult
335//      Pointer to a memory location to receive the return value upon completion.
336//      Maybe NULL if not needed.
337//      If pPump != NULL, pHResult must be a valid memory location until the
338//      the asynchronous execution completes.
339//-------------------------------------------------------------------------------
340
341HRESULT WINAPI
342    D3DX11GetImageInfoFromFileA(
343        LPCSTR                    pSrcFile,
344        ID3DX11ThreadPump*        pPump,
345        D3DX11_IMAGE_INFO*        pSrcInfo,
346        HRESULT*                  pHResult);
347
348HRESULT WINAPI
349    D3DX11GetImageInfoFromFileW(
350        LPCWSTR                   pSrcFile,
351        ID3DX11ThreadPump*        pPump,
352        D3DX11_IMAGE_INFO*        pSrcInfo,
353        HRESULT*                  pHResult);
354
355#ifdef UNICODE
356#define D3DX11GetImageInfoFromFile D3DX11GetImageInfoFromFileW
357#else
358#define D3DX11GetImageInfoFromFile D3DX11GetImageInfoFromFileA
359#endif
360
361
362HRESULT WINAPI
363    D3DX11GetImageInfoFromResourceA(
364        HMODULE                   hSrcModule,
365        LPCSTR                    pSrcResource,
366        ID3DX11ThreadPump*        pPump,
367        D3DX11_IMAGE_INFO*        pSrcInfo,
368        HRESULT*                  pHResult);
369
370HRESULT WINAPI
371    D3DX11GetImageInfoFromResourceW(
372        HMODULE                   hSrcModule,
373        LPCWSTR                   pSrcResource,
374        ID3DX11ThreadPump*        pPump,
375        D3DX11_IMAGE_INFO*        pSrcInfo,
376        HRESULT*                  pHResult);
377
378#ifdef UNICODE
379#define D3DX11GetImageInfoFromResource D3DX11GetImageInfoFromResourceW
380#else
381#define D3DX11GetImageInfoFromResource D3DX11GetImageInfoFromResourceA
382#endif
383
384
385HRESULT WINAPI
386    D3DX11GetImageInfoFromMemory(
387        LPCVOID                   pSrcData,
388        SIZE_T                    SrcDataSize,
389        ID3DX11ThreadPump*        pPump,
390        D3DX11_IMAGE_INFO*        pSrcInfo,
391        HRESULT*                  pHResult);
392
393
394//////////////////////////////////////////////////////////////////////////////
395// Create/Save Texture APIs //////////////////////////////////////////////////
396//////////////////////////////////////////////////////////////////////////////
397
398//----------------------------------------------------------------------------
399// D3DX11CreateTextureFromFile/Resource/Memory:
400// D3DX11CreateShaderResourceViewFromFile/Resource/Memory:
401// -----------------------------------
402// Create a texture object from a file or resource.
403//
404// Parameters:
405//
406//  pDevice
407//      The D3D device with which the texture is going to be used.
408//  pSrcFile
409//      File name.
410//  hSrcModule
411//      Module handle. if NULL, current module will be used.
412//  pSrcResource
413//      Resource name in module
414//  pvSrcData
415//      Pointer to file in memory.
416//  SrcDataSize
417//      Size in bytes of file in memory.
418//  pLoadInfo
419//      Optional pointer to a D3DX11_IMAGE_LOAD_INFO structure that
420//      contains additional loader parameters.
421//  pPump
422//      Optional pointer to a thread pump object to use.
423//  ppTexture
424//      [out] Created texture object.
425//  ppShaderResourceView
426//      [out] Shader resource view object created.
427//  pHResult
428//      Pointer to a memory location to receive the return value upon completion.
429//      Maybe NULL if not needed.
430//      If pPump != NULL, pHResult must be a valid memory location until the
431//      the asynchronous execution completes.
432//
433//----------------------------------------------------------------------------
434
435
436// FromFile
437
438HRESULT WINAPI
439    D3DX11CreateShaderResourceViewFromFileA(
440        ID3D11Device*               pDevice,
441        LPCSTR                      pSrcFile,
442        D3DX11_IMAGE_LOAD_INFO      *pLoadInfo,
443        ID3DX11ThreadPump*          pPump,
444        ID3D11ShaderResourceView**  ppShaderResourceView,
445        HRESULT*                    pHResult);
446
447HRESULT WINAPI
448    D3DX11CreateShaderResourceViewFromFileW(
449        ID3D11Device*               pDevice,
450        LPCWSTR                     pSrcFile,
451        D3DX11_IMAGE_LOAD_INFO      *pLoadInfo,
452        ID3DX11ThreadPump*          pPump,
453        ID3D11ShaderResourceView**  ppShaderResourceView,
454        HRESULT*                    pHResult);
455
456#ifdef UNICODE
457#define D3DX11CreateShaderResourceViewFromFile D3DX11CreateShaderResourceViewFromFileW
458#else
459#define D3DX11CreateShaderResourceViewFromFile D3DX11CreateShaderResourceViewFromFileA
460#endif
461
462HRESULT WINAPI
463    D3DX11CreateTextureFromFileA(
464        ID3D11Device*               pDevice,
465        LPCSTR                      pSrcFile,
466        D3DX11_IMAGE_LOAD_INFO      *pLoadInfo,
467        ID3DX11ThreadPump*          pPump,
468        ID3D11Resource**            ppTexture,
469        HRESULT*                    pHResult);
470
471HRESULT WINAPI
472    D3DX11CreateTextureFromFileW(
473        ID3D11Device*               pDevice,
474        LPCWSTR                     pSrcFile,
475        D3DX11_IMAGE_LOAD_INFO      *pLoadInfo,
476        ID3DX11ThreadPump*          pPump,
477        ID3D11Resource**            ppTexture,
478        HRESULT*                    pHResult);
479
480#ifdef UNICODE
481#define D3DX11CreateTextureFromFile D3DX11CreateTextureFromFileW
482#else
483#define D3DX11CreateTextureFromFile D3DX11CreateTextureFromFileA
484#endif
485
486
487// FromResource (resources in dll/exes)
488
489HRESULT WINAPI
490    D3DX11CreateShaderResourceViewFromResourceA(
491        ID3D11Device*              pDevice,
492        HMODULE                    hSrcModule,
493        LPCSTR                     pSrcResource,
494        D3DX11_IMAGE_LOAD_INFO*    pLoadInfo,
495        ID3DX11ThreadPump*         pPump,
496        ID3D11ShaderResourceView** ppShaderResourceView,
497        HRESULT*                   pHResult);
498
499HRESULT WINAPI
500    D3DX11CreateShaderResourceViewFromResourceW(
501        ID3D11Device*              pDevice,
502        HMODULE                    hSrcModule,
503        LPCWSTR                    pSrcResource,
504        D3DX11_IMAGE_LOAD_INFO*    pLoadInfo,
505        ID3DX11ThreadPump*         pPump,
506        ID3D11ShaderResourceView** ppShaderResourceView,
507        HRESULT*                   pHResult);
508
509#ifdef UNICODE
510#define D3DX11CreateShaderResourceViewFromResource D3DX11CreateShaderResourceViewFromResourceW
511#else
512#define D3DX11CreateShaderResourceViewFromResource D3DX11CreateShaderResourceViewFromResourceA
513#endif
514
515HRESULT WINAPI
516    D3DX11CreateTextureFromResourceA(
517        ID3D11Device*            pDevice,
518        HMODULE                  hSrcModule,
519        LPCSTR                   pSrcResource,
520        D3DX11_IMAGE_LOAD_INFO   *pLoadInfo, 
521        ID3DX11ThreadPump*       pPump,   
522        ID3D11Resource**         ppTexture,
523        HRESULT*                 pHResult);
524
525HRESULT WINAPI
526    D3DX11CreateTextureFromResourceW(
527        ID3D11Device*           pDevice,
528        HMODULE                 hSrcModule,
529        LPCWSTR                 pSrcResource,
530        D3DX11_IMAGE_LOAD_INFO* pLoadInfo,
531        ID3DX11ThreadPump*      pPump,
532        ID3D11Resource**        ppTexture,
533        HRESULT*                pHResult);
534
535#ifdef UNICODE
536#define D3DX11CreateTextureFromResource D3DX11CreateTextureFromResourceW
537#else
538#define D3DX11CreateTextureFromResource D3DX11CreateTextureFromResourceA
539#endif
540
541
542// FromFileInMemory
543
544HRESULT WINAPI
545    D3DX11CreateShaderResourceViewFromMemory(
546        ID3D11Device*              pDevice,
547        LPCVOID                    pSrcData,
548        SIZE_T                     SrcDataSize,
549        D3DX11_IMAGE_LOAD_INFO*    pLoadInfo,
550        ID3DX11ThreadPump*         pPump,       
551        ID3D11ShaderResourceView** ppShaderResourceView,
552        HRESULT*                   pHResult);
553
554HRESULT WINAPI
555    D3DX11CreateTextureFromMemory(
556        ID3D11Device*             pDevice,
557        LPCVOID                   pSrcData,
558        SIZE_T                    SrcDataSize,
559        D3DX11_IMAGE_LOAD_INFO*   pLoadInfo,   
560        ID3DX11ThreadPump*        pPump,   
561        ID3D11Resource**          ppTexture,
562        HRESULT*                  pHResult);
563
564
565//////////////////////////////////////////////////////////////////////////////
566// Misc Texture APIs /////////////////////////////////////////////////////////
567//////////////////////////////////////////////////////////////////////////////
568
569//----------------------------------------------------------------------------
570// D3DX11_TEXTURE_LOAD_INFO:
571// ------------------------
572//
573//----------------------------------------------------------------------------
574
575typedef struct _D3DX11_TEXTURE_LOAD_INFO
576{
577    D3D11_BOX       *pSrcBox;
578    D3D11_BOX       *pDstBox;
579    UINT            SrcFirstMip;
580    UINT            DstFirstMip;
581    UINT            NumMips;
582    UINT            SrcFirstElement;
583    UINT            DstFirstElement;
584    UINT            NumElements;
585    UINT            Filter;
586    UINT            MipFilter;
587   
588#ifdef __cplusplus
589    _D3DX11_TEXTURE_LOAD_INFO()
590    {
591        pSrcBox = NULL;
592        pDstBox = NULL;
593        SrcFirstMip = 0;
594        DstFirstMip = 0;
595        NumMips = D3DX11_DEFAULT;
596        SrcFirstElement = 0;
597        DstFirstElement = 0;
598        NumElements = D3DX11_DEFAULT;
599        Filter = D3DX11_DEFAULT;
600        MipFilter = D3DX11_DEFAULT;
601    } 
602#endif
603
604} D3DX11_TEXTURE_LOAD_INFO;
605
606
607//----------------------------------------------------------------------------
608// D3DX11LoadTextureFromTexture:
609// ----------------------------
610// Load a texture from a texture.
611//
612// Parameters:
613//
614//----------------------------------------------------------------------------
615
616
617HRESULT WINAPI
618    D3DX11LoadTextureFromTexture(
619      ID3D11DeviceContext       *pContext,
620        ID3D11Resource            *pSrcTexture,
621        D3DX11_TEXTURE_LOAD_INFO  *pLoadInfo,
622        ID3D11Resource            *pDstTexture);
623
624
625//----------------------------------------------------------------------------
626// D3DX11FilterTexture:
627// ------------------
628// Filters mipmaps levels of a texture.
629//
630// Parameters:
631//  pBaseTexture
632//      The texture object to be filtered
633//  SrcLevel
634//      The level whose image is used to generate the subsequent levels.
635//  MipFilter
636//      D3DX11_FILTER flags controlling how each miplevel is filtered.
637//      Or D3DX11_DEFAULT for D3DX11_FILTER_BOX,
638//
639//----------------------------------------------------------------------------
640
641HRESULT WINAPI
642    D3DX11FilterTexture(
643      ID3D11DeviceContext       *pContext,
644        ID3D11Resource            *pTexture,
645        UINT                      SrcLevel,
646        UINT                      MipFilter);
647
648
649//----------------------------------------------------------------------------
650// D3DX11SaveTextureToFile:
651// ----------------------
652// Save a texture to a file.
653//
654// Parameters:
655//  pDestFile
656//      File name of the destination file
657//  DestFormat
658//      D3DX11_IMAGE_FILE_FORMAT specifying file format to use when saving.
659//  pSrcTexture
660//      Source texture, containing the image to be saved
661//
662//----------------------------------------------------------------------------
663
664HRESULT WINAPI
665    D3DX11SaveTextureToFileA(
666      ID3D11DeviceContext       *pContext,
667        ID3D11Resource            *pSrcTexture,
668        D3DX11_IMAGE_FILE_FORMAT    DestFormat,
669        LPCSTR                    pDestFile);
670
671HRESULT WINAPI
672    D3DX11SaveTextureToFileW(
673      ID3D11DeviceContext       *pContext,
674        ID3D11Resource            *pSrcTexture,
675        D3DX11_IMAGE_FILE_FORMAT    DestFormat,
676        LPCWSTR                   pDestFile);
677
678#ifdef UNICODE
679#define D3DX11SaveTextureToFile D3DX11SaveTextureToFileW
680#else
681#define D3DX11SaveTextureToFile D3DX11SaveTextureToFileA
682#endif
683
684
685//----------------------------------------------------------------------------
686// D3DX11SaveTextureToMemory:
687// ----------------------
688// Save a texture to a blob.
689//
690// Parameters:
691//  pSrcTexture
692//      Source texture, containing the image to be saved
693//  DestFormat
694//      D3DX11_IMAGE_FILE_FORMAT specifying file format to use when saving.
695//  ppDestBuf
696//      address of a d3dxbuffer pointer to return the image data
697//  Flags
698//      optional flags
699//----------------------------------------------------------------------------
700
701HRESULT WINAPI
702    D3DX11SaveTextureToMemory(
703      ID3D11DeviceContext       *pContext,
704        ID3D11Resource*            pSrcTexture,
705        D3DX11_IMAGE_FILE_FORMAT   DestFormat,
706        ID3D10Blob**               ppDestBuf,
707        UINT                       Flags);
708
709
710//----------------------------------------------------------------------------
711// D3DX11ComputeNormalMap:
712// ---------------------
713// Converts a height map into a normal map.  The (x,y,z) components of each
714// normal are mapped to the (r,g,b) channels of the output texture.
715//
716// Parameters
717//  pSrcTexture
718//      Pointer to the source heightmap texture
719//  Flags
720//      D3DX11_NORMALMAP flags
721//  Channel
722//      D3DX11_CHANNEL specifying source of height information
723//  Amplitude
724//      The constant value which the height information is multiplied by.
725//  pDestTexture
726//      Pointer to the destination texture
727//---------------------------------------------------------------------------
728
729HRESULT WINAPI
730    D3DX11ComputeNormalMap(
731        ID3D11DeviceContext      *pContext,
732        ID3D11Texture2D           *pSrcTexture,
733        UINT                      Flags,
734        UINT                      Channel,
735        FLOAT                     Amplitude,
736        ID3D11Texture2D           *pDestTexture);
737
738
739//----------------------------------------------------------------------------
740// D3DX11SHProjectCubeMap:
741// ----------------------
742//  Projects a function represented in a cube map into spherical harmonics.
743//
744//  Parameters:
745//   Order
746//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
747//   pCubeMap
748//      CubeMap that is going to be projected into spherical harmonics
749//   pROut
750//      Output SH vector for Red.
751//   pGOut
752//      Output SH vector for Green
753//   pBOut
754//      Output SH vector for Blue       
755//
756//---------------------------------------------------------------------------
757
758HRESULT WINAPI
759    D3DX11SHProjectCubeMap(
760        ID3D11DeviceContext                                *pContext,
761        __in_range(2,6) UINT                                Order,
762        ID3D11Texture2D                                    *pCubeMap,
763        __out_ecount(Order*Order) FLOAT                    *pROut,
764        __out_ecount_opt(Order*Order) FLOAT                *pGOut,
765        __out_ecount_opt(Order*Order) FLOAT                *pBOut);
766
767#ifdef __cplusplus
768}
769#endif //__cplusplus
770
771#endif //__D3DX11TEX_H__
772
trunk/3rdparty/dxsdk/Include/D3Dcommon.h
r243310r243311
1
2
3/* this ALWAYS GENERATED file contains the definitions for the interfaces */
4
5
6 /* File created by MIDL compiler version 7.00.0555 */
7/* @@MIDL_FILE_HEADING(  ) */
8
9#ifdef _MSC_VER
10#pragma warning( disable: 4049 )  /* more than 64k source lines */
11#endif // _MSC_VER
12
13
14/* verify that the <rpcndr.h> version is high enough to compile this file*/
15#ifndef __REQUIRED_RPCNDR_H_VERSION__
16#define __REQUIRED_RPCNDR_H_VERSION__ 475
17#endif
18
19/* verify that the <rpcsal.h> version is high enough to compile this file*/
20#ifndef __REQUIRED_RPCSAL_H_VERSION__
21#define __REQUIRED_RPCSAL_H_VERSION__ 100
22#endif
23
24#include "rpc.h"
25#include "rpcndr.h"
26
27#ifndef __RPCNDR_H_VERSION__
28#error this stub requires an updated version of <rpcndr.h>
29#endif // __RPCNDR_H_VERSION__
30
31#ifndef COM_NO_WINDOWS_H
32#include "windows.h"
33#include "ole2.h"
34#endif /*COM_NO_WINDOWS_H*/
35
36#ifndef __d3dcommon_h__
37#define __d3dcommon_h__
38
39#if defined(_MSC_VER) && (_MSC_VER >= 1020)
40#pragma once
41#endif
42
43/* Forward Declarations */
44
45#ifndef __ID3D10Blob_FWD_DEFINED__
46#define __ID3D10Blob_FWD_DEFINED__
47typedef interface ID3D10Blob ID3D10Blob;
48#endif    /* __ID3D10Blob_FWD_DEFINED__ */
49
50
51/* header files for imported files */
52#include "oaidl.h"
53#include "ocidl.h"
54
55#ifdef __cplusplus
56extern "C"{
57#endif
58
59
60/* interface __MIDL_itf_d3dcommon_0000_0000 */
61/* [local] */
62
63typedef
64enum D3D_DRIVER_TYPE
65    {   D3D_DRIVER_TYPE_UNKNOWN   = 0,
66   D3D_DRIVER_TYPE_HARDWARE   = ( D3D_DRIVER_TYPE_UNKNOWN + 1 ) ,
67   D3D_DRIVER_TYPE_REFERENCE   = ( D3D_DRIVER_TYPE_HARDWARE + 1 ) ,
68   D3D_DRIVER_TYPE_NULL   = ( D3D_DRIVER_TYPE_REFERENCE + 1 ) ,
69   D3D_DRIVER_TYPE_SOFTWARE   = ( D3D_DRIVER_TYPE_NULL + 1 ) ,
70   D3D_DRIVER_TYPE_WARP   = ( D3D_DRIVER_TYPE_SOFTWARE + 1 )
71    }    D3D_DRIVER_TYPE;
72
73typedef
74enum D3D_FEATURE_LEVEL
75    {   D3D_FEATURE_LEVEL_9_1   = 0x9100,
76   D3D_FEATURE_LEVEL_9_2   = 0x9200,
77   D3D_FEATURE_LEVEL_9_3   = 0x9300,
78   D3D_FEATURE_LEVEL_10_0   = 0xa000,
79   D3D_FEATURE_LEVEL_10_1   = 0xa100,
80   D3D_FEATURE_LEVEL_11_0   = 0xb000
81    }    D3D_FEATURE_LEVEL;
82
83typedef
84enum D3D_PRIMITIVE_TOPOLOGY
85    {   D3D_PRIMITIVE_TOPOLOGY_UNDEFINED   = 0,
86   D3D_PRIMITIVE_TOPOLOGY_POINTLIST   = 1,
87   D3D_PRIMITIVE_TOPOLOGY_LINELIST   = 2,
88   D3D_PRIMITIVE_TOPOLOGY_LINESTRIP   = 3,
89   D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST   = 4,
90   D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP   = 5,
91   D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ   = 10,
92   D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ   = 11,
93   D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ   = 12,
94   D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ   = 13,
95   D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST   = 33,
96   D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST   = 34,
97   D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST   = 35,
98   D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST   = 36,
99   D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST   = 37,
100   D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST   = 38,
101   D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST   = 39,
102   D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST   = 40,
103   D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST   = 41,
104   D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST   = 42,
105   D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST   = 43,
106   D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST   = 44,
107   D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST   = 45,
108   D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST   = 46,
109   D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST   = 47,
110   D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST   = 48,
111   D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST   = 49,
112   D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST   = 50,
113   D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST   = 51,
114   D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST   = 52,
115   D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST   = 53,
116   D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST   = 54,
117   D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST   = 55,
118   D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST   = 56,
119   D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST   = 57,
120   D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST   = 58,
121   D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST   = 59,
122   D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST   = 60,
123   D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST   = 61,
124   D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST   = 62,
125   D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST   = 63,
126   D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST   = 64,
127   D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED   = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED,
128   D3D10_PRIMITIVE_TOPOLOGY_POINTLIST   = D3D_PRIMITIVE_TOPOLOGY_POINTLIST,
129   D3D10_PRIMITIVE_TOPOLOGY_LINELIST   = D3D_PRIMITIVE_TOPOLOGY_LINELIST,
130   D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP   = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP,
131   D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
132   D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
133   D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ   = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
134   D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ   = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
135   D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
136   D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
137   D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED   = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED,
138   D3D11_PRIMITIVE_TOPOLOGY_POINTLIST   = D3D_PRIMITIVE_TOPOLOGY_POINTLIST,
139   D3D11_PRIMITIVE_TOPOLOGY_LINELIST   = D3D_PRIMITIVE_TOPOLOGY_LINELIST,
140   D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP   = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP,
141   D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
142   D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
143   D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ   = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
144   D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ   = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
145   D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
146   D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
147   D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST,
148   D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST,
149   D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST,
150   D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST,
151   D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST,
152   D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST,
153   D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST,
154   D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST,
155   D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST,
156   D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST,
157   D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST,
158   D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST,
159   D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST,
160   D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST,
161   D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST,
162   D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST,
163   D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST,
164   D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST,
165   D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST,
166   D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST,
167   D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST,
168   D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST,
169   D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST,
170   D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST,
171   D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST,
172   D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST,
173   D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST,
174   D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST,
175   D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST,
176   D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST,
177   D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST,
178   D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST
179    }    D3D_PRIMITIVE_TOPOLOGY;
180
181typedef
182enum D3D_PRIMITIVE
183    {   D3D_PRIMITIVE_UNDEFINED   = 0,
184   D3D_PRIMITIVE_POINT   = 1,
185   D3D_PRIMITIVE_LINE   = 2,
186   D3D_PRIMITIVE_TRIANGLE   = 3,
187   D3D_PRIMITIVE_LINE_ADJ   = 6,
188   D3D_PRIMITIVE_TRIANGLE_ADJ   = 7,
189   D3D_PRIMITIVE_1_CONTROL_POINT_PATCH   = 8,
190   D3D_PRIMITIVE_2_CONTROL_POINT_PATCH   = 9,
191   D3D_PRIMITIVE_3_CONTROL_POINT_PATCH   = 10,
192   D3D_PRIMITIVE_4_CONTROL_POINT_PATCH   = 11,
193   D3D_PRIMITIVE_5_CONTROL_POINT_PATCH   = 12,
194   D3D_PRIMITIVE_6_CONTROL_POINT_PATCH   = 13,
195   D3D_PRIMITIVE_7_CONTROL_POINT_PATCH   = 14,
196   D3D_PRIMITIVE_8_CONTROL_POINT_PATCH   = 15,
197   D3D_PRIMITIVE_9_CONTROL_POINT_PATCH   = 16,
198   D3D_PRIMITIVE_10_CONTROL_POINT_PATCH   = 17,
199   D3D_PRIMITIVE_11_CONTROL_POINT_PATCH   = 18,
200   D3D_PRIMITIVE_12_CONTROL_POINT_PATCH   = 19,
201   D3D_PRIMITIVE_13_CONTROL_POINT_PATCH   = 20,
202   D3D_PRIMITIVE_14_CONTROL_POINT_PATCH   = 21,
203   D3D_PRIMITIVE_15_CONTROL_POINT_PATCH   = 22,
204   D3D_PRIMITIVE_16_CONTROL_POINT_PATCH   = 23,
205   D3D_PRIMITIVE_17_CONTROL_POINT_PATCH   = 24,
206   D3D_PRIMITIVE_18_CONTROL_POINT_PATCH   = 25,
207   D3D_PRIMITIVE_19_CONTROL_POINT_PATCH   = 26,
208   D3D_PRIMITIVE_20_CONTROL_POINT_PATCH   = 28,
209   D3D_PRIMITIVE_21_CONTROL_POINT_PATCH   = 29,
210   D3D_PRIMITIVE_22_CONTROL_POINT_PATCH   = 30,
211   D3D_PRIMITIVE_23_CONTROL_POINT_PATCH   = 31,
212   D3D_PRIMITIVE_24_CONTROL_POINT_PATCH   = 32,
213   D3D_PRIMITIVE_25_CONTROL_POINT_PATCH   = 33,
214   D3D_PRIMITIVE_26_CONTROL_POINT_PATCH   = 34,
215   D3D_PRIMITIVE_27_CONTROL_POINT_PATCH   = 35,
216   D3D_PRIMITIVE_28_CONTROL_POINT_PATCH   = 36,
217   D3D_PRIMITIVE_29_CONTROL_POINT_PATCH   = 37,
218   D3D_PRIMITIVE_30_CONTROL_POINT_PATCH   = 38,
219   D3D_PRIMITIVE_31_CONTROL_POINT_PATCH   = 39,
220   D3D_PRIMITIVE_32_CONTROL_POINT_PATCH   = 40,
221   D3D10_PRIMITIVE_UNDEFINED   = D3D_PRIMITIVE_UNDEFINED,
222   D3D10_PRIMITIVE_POINT   = D3D_PRIMITIVE_POINT,
223   D3D10_PRIMITIVE_LINE   = D3D_PRIMITIVE_LINE,
224   D3D10_PRIMITIVE_TRIANGLE   = D3D_PRIMITIVE_TRIANGLE,
225   D3D10_PRIMITIVE_LINE_ADJ   = D3D_PRIMITIVE_LINE_ADJ,
226   D3D10_PRIMITIVE_TRIANGLE_ADJ   = D3D_PRIMITIVE_TRIANGLE_ADJ,
227   D3D11_PRIMITIVE_UNDEFINED   = D3D_PRIMITIVE_UNDEFINED,
228   D3D11_PRIMITIVE_POINT   = D3D_PRIMITIVE_POINT,
229   D3D11_PRIMITIVE_LINE   = D3D_PRIMITIVE_LINE,
230   D3D11_PRIMITIVE_TRIANGLE   = D3D_PRIMITIVE_TRIANGLE,
231   D3D11_PRIMITIVE_LINE_ADJ   = D3D_PRIMITIVE_LINE_ADJ,
232   D3D11_PRIMITIVE_TRIANGLE_ADJ   = D3D_PRIMITIVE_TRIANGLE_ADJ,
233   D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_1_CONTROL_POINT_PATCH,
234   D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_2_CONTROL_POINT_PATCH,
235   D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_3_CONTROL_POINT_PATCH,
236   D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_4_CONTROL_POINT_PATCH,
237   D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_5_CONTROL_POINT_PATCH,
238   D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_6_CONTROL_POINT_PATCH,
239   D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_7_CONTROL_POINT_PATCH,
240   D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_8_CONTROL_POINT_PATCH,
241   D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_9_CONTROL_POINT_PATCH,
242   D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_10_CONTROL_POINT_PATCH,
243   D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_11_CONTROL_POINT_PATCH,
244   D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_12_CONTROL_POINT_PATCH,
245   D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_13_CONTROL_POINT_PATCH,
246   D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_14_CONTROL_POINT_PATCH,
247   D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_15_CONTROL_POINT_PATCH,
248   D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_16_CONTROL_POINT_PATCH,
249   D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_17_CONTROL_POINT_PATCH,
250   D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_18_CONTROL_POINT_PATCH,
251   D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_19_CONTROL_POINT_PATCH,
252   D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_20_CONTROL_POINT_PATCH,
253   D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_21_CONTROL_POINT_PATCH,
254   D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_22_CONTROL_POINT_PATCH,
255   D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_23_CONTROL_POINT_PATCH,
256   D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_24_CONTROL_POINT_PATCH,
257   D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_25_CONTROL_POINT_PATCH,
258   D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_26_CONTROL_POINT_PATCH,
259   D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_27_CONTROL_POINT_PATCH,
260   D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_28_CONTROL_POINT_PATCH,
261   D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_29_CONTROL_POINT_PATCH,
262   D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_30_CONTROL_POINT_PATCH,
263   D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_31_CONTROL_POINT_PATCH,
264   D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_32_CONTROL_POINT_PATCH
265    }    D3D_PRIMITIVE;
266
267typedef
268enum D3D_SRV_DIMENSION
269    {   D3D_SRV_DIMENSION_UNKNOWN   = 0,
270   D3D_SRV_DIMENSION_BUFFER   = 1,
271   D3D_SRV_DIMENSION_TEXTURE1D   = 2,
272   D3D_SRV_DIMENSION_TEXTURE1DARRAY   = 3,
273   D3D_SRV_DIMENSION_TEXTURE2D   = 4,
274   D3D_SRV_DIMENSION_TEXTURE2DARRAY   = 5,
275   D3D_SRV_DIMENSION_TEXTURE2DMS   = 6,
276   D3D_SRV_DIMENSION_TEXTURE2DMSARRAY   = 7,
277   D3D_SRV_DIMENSION_TEXTURE3D   = 8,
278   D3D_SRV_DIMENSION_TEXTURECUBE   = 9,
279   D3D_SRV_DIMENSION_TEXTURECUBEARRAY   = 10,
280   D3D_SRV_DIMENSION_BUFFEREX   = 11,
281   D3D10_SRV_DIMENSION_UNKNOWN   = D3D_SRV_DIMENSION_UNKNOWN,
282   D3D10_SRV_DIMENSION_BUFFER   = D3D_SRV_DIMENSION_BUFFER,
283   D3D10_SRV_DIMENSION_TEXTURE1D   = D3D_SRV_DIMENSION_TEXTURE1D,
284   D3D10_SRV_DIMENSION_TEXTURE1DARRAY   = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
285   D3D10_SRV_DIMENSION_TEXTURE2D   = D3D_SRV_DIMENSION_TEXTURE2D,
286   D3D10_SRV_DIMENSION_TEXTURE2DARRAY   = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
287   D3D10_SRV_DIMENSION_TEXTURE2DMS   = D3D_SRV_DIMENSION_TEXTURE2DMS,
288   D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY   = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
289   D3D10_SRV_DIMENSION_TEXTURE3D   = D3D_SRV_DIMENSION_TEXTURE3D,
290   D3D10_SRV_DIMENSION_TEXTURECUBE   = D3D_SRV_DIMENSION_TEXTURECUBE,
291   D3D10_1_SRV_DIMENSION_UNKNOWN   = D3D_SRV_DIMENSION_UNKNOWN,
292   D3D10_1_SRV_DIMENSION_BUFFER   = D3D_SRV_DIMENSION_BUFFER,
293   D3D10_1_SRV_DIMENSION_TEXTURE1D   = D3D_SRV_DIMENSION_TEXTURE1D,
294   D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY   = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
295   D3D10_1_SRV_DIMENSION_TEXTURE2D   = D3D_SRV_DIMENSION_TEXTURE2D,
296   D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY   = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
297   D3D10_1_SRV_DIMENSION_TEXTURE2DMS   = D3D_SRV_DIMENSION_TEXTURE2DMS,
298   D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY   = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
299   D3D10_1_SRV_DIMENSION_TEXTURE3D   = D3D_SRV_DIMENSION_TEXTURE3D,
300   D3D10_1_SRV_DIMENSION_TEXTURECUBE   = D3D_SRV_DIMENSION_TEXTURECUBE,
301   D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY   = D3D_SRV_DIMENSION_TEXTURECUBEARRAY,
302   D3D11_SRV_DIMENSION_UNKNOWN   = D3D_SRV_DIMENSION_UNKNOWN,
303   D3D11_SRV_DIMENSION_BUFFER   = D3D_SRV_DIMENSION_BUFFER,
304   D3D11_SRV_DIMENSION_TEXTURE1D   = D3D_SRV_DIMENSION_TEXTURE1D,
305   D3D11_SRV_DIMENSION_TEXTURE1DARRAY   = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
306   D3D11_SRV_DIMENSION_TEXTURE2D   = D3D_SRV_DIMENSION_TEXTURE2D,
307   D3D11_SRV_DIMENSION_TEXTURE2DARRAY   = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
308   D3D11_SRV_DIMENSION_TEXTURE2DMS   = D3D_SRV_DIMENSION_TEXTURE2DMS,
309   D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY   = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
310   D3D11_SRV_DIMENSION_TEXTURE3D   = D3D_SRV_DIMENSION_TEXTURE3D,
311   D3D11_SRV_DIMENSION_TEXTURECUBE   = D3D_SRV_DIMENSION_TEXTURECUBE,
312   D3D11_SRV_DIMENSION_TEXTURECUBEARRAY   = D3D_SRV_DIMENSION_TEXTURECUBEARRAY,
313   D3D11_SRV_DIMENSION_BUFFEREX   = D3D_SRV_DIMENSION_BUFFEREX
314    }    D3D_SRV_DIMENSION;
315
316typedef struct _D3D_SHADER_MACRO
317    {
318    LPCSTR Name;
319    LPCSTR Definition;
320    }    D3D_SHADER_MACRO;
321
322typedef struct _D3D_SHADER_MACRO *LPD3D_SHADER_MACRO;
323
324DEFINE_GUID(IID_ID3D10Blob, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2);
325
326
327extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0000_v0_0_c_ifspec;
328extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0000_v0_0_s_ifspec;
329
330#ifndef __ID3D10Blob_INTERFACE_DEFINED__
331#define __ID3D10Blob_INTERFACE_DEFINED__
332
333/* interface ID3D10Blob */
334/* [unique][local][object][uuid] */
335
336
337EXTERN_C const IID IID_ID3D10Blob;
338
339#if defined(__cplusplus) && !defined(CINTERFACE)
340   
341    MIDL_INTERFACE("8BA5FB08-5195-40e2-AC58-0D989C3A0102")
342    ID3D10Blob : public IUnknown
343    {
344    public:
345        virtual LPVOID STDMETHODCALLTYPE GetBufferPointer( void) = 0;
346       
347        virtual SIZE_T STDMETHODCALLTYPE GetBufferSize( void) = 0;
348       
349    };
350   
351#else    /* C style interface */
352
353    typedef struct ID3D10BlobVtbl
354    {
355        BEGIN_INTERFACE
356       
357        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
358            ID3D10Blob * This,
359            /* [in] */ REFIID riid,
360            /* [annotation][iid_is][out] */
361            __RPC__deref_out  void **ppvObject);
362       
363        ULONG ( STDMETHODCALLTYPE *AddRef )(
364            ID3D10Blob * This);
365       
366        ULONG ( STDMETHODCALLTYPE *Release )(
367            ID3D10Blob * This);
368       
369        LPVOID ( STDMETHODCALLTYPE *GetBufferPointer )(
370            ID3D10Blob * This);
371       
372        SIZE_T ( STDMETHODCALLTYPE *GetBufferSize )(
373            ID3D10Blob * This);
374       
375        END_INTERFACE
376    } ID3D10BlobVtbl;
377
378    interface ID3D10Blob
379    {
380        CONST_VTBL struct ID3D10BlobVtbl *lpVtbl;
381    };
382
383   
384
385#ifdef COBJMACROS
386
387
388#define ID3D10Blob_QueryInterface(This,riid,ppvObject)   \
389    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
390
391#define ID3D10Blob_AddRef(This)   \
392    ( (This)->lpVtbl -> AddRef(This) )
393
394#define ID3D10Blob_Release(This)   \
395    ( (This)->lpVtbl -> Release(This) )
396
397
398#define ID3D10Blob_GetBufferPointer(This)   \
399    ( (This)->lpVtbl -> GetBufferPointer(This) )
400
401#define ID3D10Blob_GetBufferSize(This)   \
402    ( (This)->lpVtbl -> GetBufferSize(This) )
403
404#endif /* COBJMACROS */
405
406
407#endif    /* C style interface */
408
409
410
411
412#endif    /* __ID3D10Blob_INTERFACE_DEFINED__ */
413
414
415/* interface __MIDL_itf_d3dcommon_0000_0001 */
416/* [local] */
417
418typedef interface ID3D10Blob* LPD3D10BLOB;
419typedef ID3D10Blob ID3DBlob;
420typedef ID3DBlob* LPD3DBLOB;
421#define IID_ID3DBlob IID_ID3D10Blob
422typedef
423enum _D3D_INCLUDE_TYPE
424    {   D3D_INCLUDE_LOCAL   = 0,
425   D3D_INCLUDE_SYSTEM   = ( D3D_INCLUDE_LOCAL + 1 ) ,
426   D3D10_INCLUDE_LOCAL   = D3D_INCLUDE_LOCAL,
427   D3D10_INCLUDE_SYSTEM   = D3D_INCLUDE_SYSTEM,
428   D3D_INCLUDE_FORCE_DWORD   = 0x7fffffff
429    }    D3D_INCLUDE_TYPE;
430
431typedef interface ID3DInclude ID3DInclude;
432#undef INTERFACE
433#define INTERFACE ID3DInclude
434DECLARE_INTERFACE(ID3DInclude)
435{
436    STDMETHOD(Open)(THIS_ D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) PURE;
437    STDMETHOD(Close)(THIS_ LPCVOID pData) PURE;
438};
439typedef ID3DInclude* LPD3DINCLUDE;
440typedef
441enum _D3D_SHADER_VARIABLE_CLASS
442    {   D3D_SVC_SCALAR   = 0,
443   D3D_SVC_VECTOR   = ( D3D_SVC_SCALAR + 1 ) ,
444   D3D_SVC_MATRIX_ROWS   = ( D3D_SVC_VECTOR + 1 ) ,
445   D3D_SVC_MATRIX_COLUMNS   = ( D3D_SVC_MATRIX_ROWS + 1 ) ,
446   D3D_SVC_OBJECT   = ( D3D_SVC_MATRIX_COLUMNS + 1 ) ,
447   D3D_SVC_STRUCT   = ( D3D_SVC_OBJECT + 1 ) ,
448   D3D_SVC_INTERFACE_CLASS   = ( D3D_SVC_STRUCT + 1 ) ,
449   D3D_SVC_INTERFACE_POINTER   = ( D3D_SVC_INTERFACE_CLASS + 1 ) ,
450   D3D10_SVC_SCALAR   = D3D_SVC_SCALAR,
451   D3D10_SVC_VECTOR   = D3D_SVC_VECTOR,
452   D3D10_SVC_MATRIX_ROWS   = D3D_SVC_MATRIX_ROWS,
453   D3D10_SVC_MATRIX_COLUMNS   = D3D_SVC_MATRIX_COLUMNS,
454   D3D10_SVC_OBJECT   = D3D_SVC_OBJECT,
455   D3D10_SVC_STRUCT   = D3D_SVC_STRUCT,
456   D3D11_SVC_INTERFACE_CLASS   = D3D_SVC_INTERFACE_CLASS,
457   D3D11_SVC_INTERFACE_POINTER   = D3D_SVC_INTERFACE_POINTER,
458   D3D_SVC_FORCE_DWORD   = 0x7fffffff
459    }    D3D_SHADER_VARIABLE_CLASS;
460
461typedef
462enum _D3D_SHADER_VARIABLE_FLAGS
463    {   D3D_SVF_USERPACKED   = 1,
464   D3D_SVF_USED   = 2,
465   D3D_SVF_INTERFACE_POINTER   = 4,
466   D3D_SVF_INTERFACE_PARAMETER   = 8,
467   D3D10_SVF_USERPACKED   = D3D_SVF_USERPACKED,
468   D3D10_SVF_USED   = D3D_SVF_USED,
469   D3D11_SVF_INTERFACE_POINTER   = D3D_SVF_INTERFACE_POINTER,
470   D3D11_SVF_INTERFACE_PARAMETER   = D3D_SVF_INTERFACE_PARAMETER,
471   D3D_SVF_FORCE_DWORD   = 0x7fffffff
472    }    D3D_SHADER_VARIABLE_FLAGS;
473
474typedef
475enum _D3D_SHADER_VARIABLE_TYPE
476    {   D3D_SVT_VOID   = 0,
477   D3D_SVT_BOOL   = 1,
478   D3D_SVT_INT   = 2,
479   D3D_SVT_FLOAT   = 3,
480   D3D_SVT_STRING   = 4,
481   D3D_SVT_TEXTURE   = 5,
482   D3D_SVT_TEXTURE1D   = 6,
483   D3D_SVT_TEXTURE2D   = 7,
484   D3D_SVT_TEXTURE3D   = 8,
485   D3D_SVT_TEXTURECUBE   = 9,
486   D3D_SVT_SAMPLER   = 10,
487   D3D_SVT_SAMPLER1D   = 11,
488   D3D_SVT_SAMPLER2D   = 12,
489   D3D_SVT_SAMPLER3D   = 13,
490   D3D_SVT_SAMPLERCUBE   = 14,
491   D3D_SVT_PIXELSHADER   = 15,
492   D3D_SVT_VERTEXSHADER   = 16,
493   D3D_SVT_PIXELFRAGMENT   = 17,
494   D3D_SVT_VERTEXFRAGMENT   = 18,
495   D3D_SVT_UINT   = 19,
496   D3D_SVT_UINT8   = 20,
497   D3D_SVT_GEOMETRYSHADER   = 21,
498   D3D_SVT_RASTERIZER   = 22,
499   D3D_SVT_DEPTHSTENCIL   = 23,
500   D3D_SVT_BLEND   = 24,
501   D3D_SVT_BUFFER   = 25,
502   D3D_SVT_CBUFFER   = 26,
503   D3D_SVT_TBUFFER   = 27,
504   D3D_SVT_TEXTURE1DARRAY   = 28,
505   D3D_SVT_TEXTURE2DARRAY   = 29,
506   D3D_SVT_RENDERTARGETVIEW   = 30,
507   D3D_SVT_DEPTHSTENCILVIEW   = 31,
508   D3D_SVT_TEXTURE2DMS   = 32,
509   D3D_SVT_TEXTURE2DMSARRAY   = 33,
510   D3D_SVT_TEXTURECUBEARRAY   = 34,
511   D3D_SVT_HULLSHADER   = 35,
512   D3D_SVT_DOMAINSHADER   = 36,
513   D3D_SVT_INTERFACE_POINTER   = 37,
514   D3D_SVT_COMPUTESHADER   = 38,
515   D3D_SVT_DOUBLE   = 39,
516   D3D_SVT_RWTEXTURE1D   = 40,
517   D3D_SVT_RWTEXTURE1DARRAY   = 41,
518   D3D_SVT_RWTEXTURE2D   = 42,
519   D3D_SVT_RWTEXTURE2DARRAY   = 43,
520   D3D_SVT_RWTEXTURE3D   = 44,
521   D3D_SVT_RWBUFFER   = 45,
522   D3D_SVT_BYTEADDRESS_BUFFER   = 46,
523   D3D_SVT_RWBYTEADDRESS_BUFFER   = 47,
524   D3D_SVT_STRUCTURED_BUFFER   = 48,
525   D3D_SVT_RWSTRUCTURED_BUFFER   = 49,
526   D3D_SVT_APPEND_STRUCTURED_BUFFER   = 50,
527   D3D_SVT_CONSUME_STRUCTURED_BUFFER   = 51,
528   D3D10_SVT_VOID   = D3D_SVT_VOID,
529   D3D10_SVT_BOOL   = D3D_SVT_BOOL,
530   D3D10_SVT_INT   = D3D_SVT_INT,
531   D3D10_SVT_FLOAT   = D3D_SVT_FLOAT,
532   D3D10_SVT_STRING   = D3D_SVT_STRING,
533   D3D10_SVT_TEXTURE   = D3D_SVT_TEXTURE,
534   D3D10_SVT_TEXTURE1D   = D3D_SVT_TEXTURE1D,
535   D3D10_SVT_TEXTURE2D   = D3D_SVT_TEXTURE2D,
536   D3D10_SVT_TEXTURE3D   = D3D_SVT_TEXTURE3D,
537   D3D10_SVT_TEXTURECUBE   = D3D_SVT_TEXTURECUBE,
538   D3D10_SVT_SAMPLER   = D3D_SVT_SAMPLER,
539   D3D10_SVT_SAMPLER1D   = D3D_SVT_SAMPLER1D,
540   D3D10_SVT_SAMPLER2D   = D3D_SVT_SAMPLER2D,
541   D3D10_SVT_SAMPLER3D   = D3D_SVT_SAMPLER3D,
542   D3D10_SVT_SAMPLERCUBE   = D3D_SVT_SAMPLERCUBE,
543   D3D10_SVT_PIXELSHADER   = D3D_SVT_PIXELSHADER,
544   D3D10_SVT_VERTEXSHADER   = D3D_SVT_VERTEXSHADER,
545   D3D10_SVT_PIXELFRAGMENT   = D3D_SVT_PIXELFRAGMENT,
546   D3D10_SVT_VERTEXFRAGMENT   = D3D_SVT_VERTEXFRAGMENT,
547   D3D10_SVT_UINT   = D3D_SVT_UINT,
548   D3D10_SVT_UINT8   = D3D_SVT_UINT8,
549   D3D10_SVT_GEOMETRYSHADER   = D3D_SVT_GEOMETRYSHADER,
550   D3D10_SVT_RASTERIZER   = D3D_SVT_RASTERIZER,
551   D3D10_SVT_DEPTHSTENCIL   = D3D_SVT_DEPTHSTENCIL,
552   D3D10_SVT_BLEND   = D3D_SVT_BLEND,
553   D3D10_SVT_BUFFER   = D3D_SVT_BUFFER,
554   D3D10_SVT_CBUFFER   = D3D_SVT_CBUFFER,
555   D3D10_SVT_TBUFFER   = D3D_SVT_TBUFFER,
556   D3D10_SVT_TEXTURE1DARRAY   = D3D_SVT_TEXTURE1DARRAY,
557   D3D10_SVT_TEXTURE2DARRAY   = D3D_SVT_TEXTURE2DARRAY,
558   D3D10_SVT_RENDERTARGETVIEW   = D3D_SVT_RENDERTARGETVIEW,
559   D3D10_SVT_DEPTHSTENCILVIEW   = D3D_SVT_DEPTHSTENCILVIEW,
560   D3D10_SVT_TEXTURE2DMS   = D3D_SVT_TEXTURE2DMS,
561   D3D10_SVT_TEXTURE2DMSARRAY   = D3D_SVT_TEXTURE2DMSARRAY,
562   D3D10_SVT_TEXTURECUBEARRAY   = D3D_SVT_TEXTURECUBEARRAY,
563   D3D11_SVT_HULLSHADER   = D3D_SVT_HULLSHADER,
564   D3D11_SVT_DOMAINSHADER   = D3D_SVT_DOMAINSHADER,
565   D3D11_SVT_INTERFACE_POINTER   = D3D_SVT_INTERFACE_POINTER,
566   D3D11_SVT_COMPUTESHADER   = D3D_SVT_COMPUTESHADER,
567   D3D11_SVT_DOUBLE   = D3D_SVT_DOUBLE,
568   D3D11_SVT_RWTEXTURE1D   = D3D_SVT_RWTEXTURE1D,
569   D3D11_SVT_RWTEXTURE1DARRAY   = D3D_SVT_RWTEXTURE1DARRAY,
570   D3D11_SVT_RWTEXTURE2D   = D3D_SVT_RWTEXTURE2D,
571   D3D11_SVT_RWTEXTURE2DARRAY   = D3D_SVT_RWTEXTURE2DARRAY,
572   D3D11_SVT_RWTEXTURE3D   = D3D_SVT_RWTEXTURE3D,
573   D3D11_SVT_RWBUFFER   = D3D_SVT_RWBUFFER,
574   D3D11_SVT_BYTEADDRESS_BUFFER   = D3D_SVT_BYTEADDRESS_BUFFER,
575   D3D11_SVT_RWBYTEADDRESS_BUFFER   = D3D_SVT_RWBYTEADDRESS_BUFFER,
576   D3D11_SVT_STRUCTURED_BUFFER   = D3D_SVT_STRUCTURED_BUFFER,
577   D3D11_SVT_RWSTRUCTURED_BUFFER   = D3D_SVT_RWSTRUCTURED_BUFFER,
578   D3D11_SVT_APPEND_STRUCTURED_BUFFER   = D3D_SVT_APPEND_STRUCTURED_BUFFER,
579   D3D11_SVT_CONSUME_STRUCTURED_BUFFER   = D3D_SVT_CONSUME_STRUCTURED_BUFFER,
580   D3D_SVT_FORCE_DWORD   = 0x7fffffff
581    }    D3D_SHADER_VARIABLE_TYPE;
582
583typedef
584enum _D3D_SHADER_INPUT_FLAGS
585    {   D3D_SIF_USERPACKED   = 1,
586   D3D_SIF_COMPARISON_SAMPLER   = 2,
587   D3D_SIF_TEXTURE_COMPONENT_0   = 4,
588   D3D_SIF_TEXTURE_COMPONENT_1   = 8,
589   D3D_SIF_TEXTURE_COMPONENTS   = 12,
590   D3D10_SIF_USERPACKED   = D3D_SIF_USERPACKED,
591   D3D10_SIF_COMPARISON_SAMPLER   = D3D_SIF_COMPARISON_SAMPLER,
592   D3D10_SIF_TEXTURE_COMPONENT_0   = D3D_SIF_TEXTURE_COMPONENT_0,
593   D3D10_SIF_TEXTURE_COMPONENT_1   = D3D_SIF_TEXTURE_COMPONENT_1,
594   D3D10_SIF_TEXTURE_COMPONENTS   = D3D_SIF_TEXTURE_COMPONENTS,
595   D3D_SIF_FORCE_DWORD   = 0x7fffffff
596    }    D3D_SHADER_INPUT_FLAGS;
597
598typedef
599enum _D3D_SHADER_INPUT_TYPE
600    {   D3D_SIT_CBUFFER   = 0,
601   D3D_SIT_TBUFFER   = ( D3D_SIT_CBUFFER + 1 ) ,
602   D3D_SIT_TEXTURE   = ( D3D_SIT_TBUFFER + 1 ) ,
603   D3D_SIT_SAMPLER   = ( D3D_SIT_TEXTURE + 1 ) ,
604   D3D_SIT_UAV_RWTYPED   = ( D3D_SIT_SAMPLER + 1 ) ,
605   D3D_SIT_STRUCTURED   = ( D3D_SIT_UAV_RWTYPED + 1 ) ,
606   D3D_SIT_UAV_RWSTRUCTURED   = ( D3D_SIT_STRUCTURED + 1 ) ,
607   D3D_SIT_BYTEADDRESS   = ( D3D_SIT_UAV_RWSTRUCTURED + 1 ) ,
608   D3D_SIT_UAV_RWBYTEADDRESS   = ( D3D_SIT_BYTEADDRESS + 1 ) ,
609   D3D_SIT_UAV_APPEND_STRUCTURED   = ( D3D_SIT_UAV_RWBYTEADDRESS + 1 ) ,
610   D3D_SIT_UAV_CONSUME_STRUCTURED   = ( D3D_SIT_UAV_APPEND_STRUCTURED + 1 ) ,
611   D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER   = ( D3D_SIT_UAV_CONSUME_STRUCTURED + 1 ) ,
612   D3D10_SIT_CBUFFER   = D3D_SIT_CBUFFER,
613   D3D10_SIT_TBUFFER   = D3D_SIT_TBUFFER,
614   D3D10_SIT_TEXTURE   = D3D_SIT_TEXTURE,
615   D3D10_SIT_SAMPLER   = D3D_SIT_SAMPLER,
616   D3D11_SIT_UAV_RWTYPED   = D3D_SIT_UAV_RWTYPED,
617   D3D11_SIT_STRUCTURED   = D3D_SIT_STRUCTURED,
618   D3D11_SIT_UAV_RWSTRUCTURED   = D3D_SIT_UAV_RWSTRUCTURED,
619   D3D11_SIT_BYTEADDRESS   = D3D_SIT_BYTEADDRESS,
620   D3D11_SIT_UAV_RWBYTEADDRESS   = D3D_SIT_UAV_RWBYTEADDRESS,
621   D3D11_SIT_UAV_APPEND_STRUCTURED   = D3D_SIT_UAV_APPEND_STRUCTURED,
622   D3D11_SIT_UAV_CONSUME_STRUCTURED   = D3D_SIT_UAV_CONSUME_STRUCTURED,
623   D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER   = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER
624    }    D3D_SHADER_INPUT_TYPE;
625
626typedef
627enum _D3D_SHADER_CBUFFER_FLAGS
628    {   D3D_CBF_USERPACKED   = 1,
629   D3D10_CBF_USERPACKED   = D3D_CBF_USERPACKED,
630   D3D_CBF_FORCE_DWORD   = 0x7fffffff
631    }    D3D_SHADER_CBUFFER_FLAGS;
632
633typedef
634enum _D3D_CBUFFER_TYPE
635    {   D3D_CT_CBUFFER   = 0,
636   D3D_CT_TBUFFER   = ( D3D_CT_CBUFFER + 1 ) ,
637   D3D_CT_INTERFACE_POINTERS   = ( D3D_CT_TBUFFER + 1 ) ,
638   D3D_CT_RESOURCE_BIND_INFO   = ( D3D_CT_INTERFACE_POINTERS + 1 ) ,
639   D3D10_CT_CBUFFER   = D3D_CT_CBUFFER,
640   D3D10_CT_TBUFFER   = D3D_CT_TBUFFER,
641   D3D11_CT_CBUFFER   = D3D_CT_CBUFFER,
642   D3D11_CT_TBUFFER   = D3D_CT_TBUFFER,
643   D3D11_CT_INTERFACE_POINTERS   = D3D_CT_INTERFACE_POINTERS,
644   D3D11_CT_RESOURCE_BIND_INFO   = D3D_CT_RESOURCE_BIND_INFO
645    }    D3D_CBUFFER_TYPE;
646
647typedef
648enum D3D_NAME
649    {   D3D_NAME_UNDEFINED   = 0,
650   D3D_NAME_POSITION   = 1,
651   D3D_NAME_CLIP_DISTANCE   = 2,
652   D3D_NAME_CULL_DISTANCE   = 3,
653   D3D_NAME_RENDER_TARGET_ARRAY_INDEX   = 4,
654   D3D_NAME_VIEWPORT_ARRAY_INDEX   = 5,
655   D3D_NAME_VERTEX_ID   = 6,
656   D3D_NAME_PRIMITIVE_ID   = 7,
657   D3D_NAME_INSTANCE_ID   = 8,
658   D3D_NAME_IS_FRONT_FACE   = 9,
659   D3D_NAME_SAMPLE_INDEX   = 10,
660   D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR   = 11,
661   D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR   = 12,
662   D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR   = 13,
663   D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR   = 14,
664   D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR   = 15,
665   D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR   = 16,
666   D3D_NAME_TARGET   = 64,
667   D3D_NAME_DEPTH   = 65,
668   D3D_NAME_COVERAGE   = 66,
669   D3D_NAME_DEPTH_GREATER_EQUAL   = 67,
670   D3D_NAME_DEPTH_LESS_EQUAL   = 68,
671   D3D10_NAME_UNDEFINED   = D3D_NAME_UNDEFINED,
672   D3D10_NAME_POSITION   = D3D_NAME_POSITION,
673   D3D10_NAME_CLIP_DISTANCE   = D3D_NAME_CLIP_DISTANCE,
674   D3D10_NAME_CULL_DISTANCE   = D3D_NAME_CULL_DISTANCE,
675   D3D10_NAME_RENDER_TARGET_ARRAY_INDEX   = D3D_NAME_RENDER_TARGET_ARRAY_INDEX,
676   D3D10_NAME_VIEWPORT_ARRAY_INDEX   = D3D_NAME_VIEWPORT_ARRAY_INDEX,
677   D3D10_NAME_VERTEX_ID   = D3D_NAME_VERTEX_ID,
678   D3D10_NAME_PRIMITIVE_ID   = D3D_NAME_PRIMITIVE_ID,
679   D3D10_NAME_INSTANCE_ID   = D3D_NAME_INSTANCE_ID,
680   D3D10_NAME_IS_FRONT_FACE   = D3D_NAME_IS_FRONT_FACE,
681   D3D10_NAME_SAMPLE_INDEX   = D3D_NAME_SAMPLE_INDEX,
682   D3D10_NAME_TARGET   = D3D_NAME_TARGET,
683   D3D10_NAME_DEPTH   = D3D_NAME_DEPTH,
684   D3D10_NAME_COVERAGE   = D3D_NAME_COVERAGE,
685   D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR   = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR,
686   D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR   = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR,
687   D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR   = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR,
688   D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR   = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR,
689   D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR   = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR,
690   D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR   = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR,
691   D3D11_NAME_DEPTH_GREATER_EQUAL   = D3D_NAME_DEPTH_GREATER_EQUAL,
692   D3D11_NAME_DEPTH_LESS_EQUAL   = D3D_NAME_DEPTH_LESS_EQUAL
693    }    D3D_NAME;
694
695typedef
696enum D3D_RESOURCE_RETURN_TYPE
697    {   D3D_RETURN_TYPE_UNORM   = 1,
698   D3D_RETURN_TYPE_SNORM   = 2,
699   D3D_RETURN_TYPE_SINT   = 3,
700   D3D_RETURN_TYPE_UINT   = 4,
701   D3D_RETURN_TYPE_FLOAT   = 5,
702   D3D_RETURN_TYPE_MIXED   = 6,
703   D3D_RETURN_TYPE_DOUBLE   = 7,
704   D3D_RETURN_TYPE_CONTINUED   = 8,
705   D3D10_RETURN_TYPE_UNORM   = D3D_RETURN_TYPE_UNORM,
706   D3D10_RETURN_TYPE_SNORM   = D3D_RETURN_TYPE_SNORM,
707   D3D10_RETURN_TYPE_SINT   = D3D_RETURN_TYPE_SINT,
708   D3D10_RETURN_TYPE_UINT   = D3D_RETURN_TYPE_UINT,
709   D3D10_RETURN_TYPE_FLOAT   = D3D_RETURN_TYPE_FLOAT,
710   D3D10_RETURN_TYPE_MIXED   = D3D_RETURN_TYPE_MIXED,
711   D3D11_RETURN_TYPE_UNORM   = D3D_RETURN_TYPE_UNORM,
712   D3D11_RETURN_TYPE_SNORM   = D3D_RETURN_TYPE_SNORM,
713   D3D11_RETURN_TYPE_SINT   = D3D_RETURN_TYPE_SINT,
714   D3D11_RETURN_TYPE_UINT   = D3D_RETURN_TYPE_UINT,
715   D3D11_RETURN_TYPE_FLOAT   = D3D_RETURN_TYPE_FLOAT,
716   D3D11_RETURN_TYPE_MIXED   = D3D_RETURN_TYPE_MIXED,
717   D3D11_RETURN_TYPE_DOUBLE   = D3D_RETURN_TYPE_DOUBLE,
718   D3D11_RETURN_TYPE_CONTINUED   = D3D_RETURN_TYPE_CONTINUED
719    }    D3D_RESOURCE_RETURN_TYPE;
720
721typedef
722enum D3D_REGISTER_COMPONENT_TYPE
723    {   D3D_REGISTER_COMPONENT_UNKNOWN   = 0,
724   D3D_REGISTER_COMPONENT_UINT32   = 1,
725   D3D_REGISTER_COMPONENT_SINT32   = 2,
726   D3D_REGISTER_COMPONENT_FLOAT32   = 3,
727   D3D10_REGISTER_COMPONENT_UNKNOWN   = D3D_REGISTER_COMPONENT_UNKNOWN,
728   D3D10_REGISTER_COMPONENT_UINT32   = D3D_REGISTER_COMPONENT_UINT32,
729   D3D10_REGISTER_COMPONENT_SINT32   = D3D_REGISTER_COMPONENT_SINT32,
730   D3D10_REGISTER_COMPONENT_FLOAT32   = D3D_REGISTER_COMPONENT_FLOAT32
731    }    D3D_REGISTER_COMPONENT_TYPE;
732
733typedef
734enum D3D_TESSELLATOR_DOMAIN
735    {   D3D_TESSELLATOR_DOMAIN_UNDEFINED   = 0,
736   D3D_TESSELLATOR_DOMAIN_ISOLINE   = 1,
737   D3D_TESSELLATOR_DOMAIN_TRI   = 2,
738   D3D_TESSELLATOR_DOMAIN_QUAD   = 3,
739   D3D11_TESSELLATOR_DOMAIN_UNDEFINED   = D3D_TESSELLATOR_DOMAIN_UNDEFINED,
740   D3D11_TESSELLATOR_DOMAIN_ISOLINE   = D3D_TESSELLATOR_DOMAIN_ISOLINE,
741   D3D11_TESSELLATOR_DOMAIN_TRI   = D3D_TESSELLATOR_DOMAIN_TRI,
742   D3D11_TESSELLATOR_DOMAIN_QUAD   = D3D_TESSELLATOR_DOMAIN_QUAD
743    }    D3D_TESSELLATOR_DOMAIN;
744
745typedef
746enum D3D_TESSELLATOR_PARTITIONING
747    {   D3D_TESSELLATOR_PARTITIONING_UNDEFINED   = 0,
748   D3D_TESSELLATOR_PARTITIONING_INTEGER   = 1,
749   D3D_TESSELLATOR_PARTITIONING_POW2   = 2,
750   D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD   = 3,
751   D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN   = 4,
752   D3D11_TESSELLATOR_PARTITIONING_UNDEFINED   = D3D_TESSELLATOR_PARTITIONING_UNDEFINED,
753   D3D11_TESSELLATOR_PARTITIONING_INTEGER   = D3D_TESSELLATOR_PARTITIONING_INTEGER,
754   D3D11_TESSELLATOR_PARTITIONING_POW2   = D3D_TESSELLATOR_PARTITIONING_POW2,
755   D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD   = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD,
756   D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN   = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN
757    }    D3D_TESSELLATOR_PARTITIONING;
758
759typedef
760enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE
761    {   D3D_TESSELLATOR_OUTPUT_UNDEFINED   = 0,
762   D3D_TESSELLATOR_OUTPUT_POINT   = 1,
763   D3D_TESSELLATOR_OUTPUT_LINE   = 2,
764   D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW   = 3,
765   D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW   = 4,
766   D3D11_TESSELLATOR_OUTPUT_UNDEFINED   = D3D_TESSELLATOR_OUTPUT_UNDEFINED,
767   D3D11_TESSELLATOR_OUTPUT_POINT   = D3D_TESSELLATOR_OUTPUT_POINT,
768   D3D11_TESSELLATOR_OUTPUT_LINE   = D3D_TESSELLATOR_OUTPUT_LINE,
769   D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW   = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW,
770   D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW   = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW
771    }    D3D_TESSELLATOR_OUTPUT_PRIMITIVE;
772
773DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00);
774
775
776extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_c_ifspec;
777extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_s_ifspec;
778
779/* Additional Prototypes for ALL interfaces */
780
781/* end of Additional Prototypes */
782
783#ifdef __cplusplus
784}
785#endif
786
787#endif
788
789
trunk/3rdparty/dxsdk/Include/D3Dcompiler.h
r243310r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (c) Microsoft Corporation.  All rights reserved.
4//
5//  File:       D3DCompiler.h
6//  Content:    D3D Compilation Types and APIs
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#ifndef __D3DCOMPILER_H__
11#define __D3DCOMPILER_H__
12
13// Current name of the DLL shipped in the same SDK as this header.
14
15
16#define D3DCOMPILER_DLL_W L"d3dcompiler_43.dll"
17#define D3DCOMPILER_DLL_A "d3dcompiler_43.dll"
18
19#ifdef UNICODE
20    #define D3DCOMPILER_DLL D3DCOMPILER_DLL_W
21#else
22    #define D3DCOMPILER_DLL D3DCOMPILER_DLL_A
23#endif
24
25#include "d3d11shader.h"
26
27//////////////////////////////////////////////////////////////////////////////
28// APIs //////////////////////////////////////////////////////////////////////
29//////////////////////////////////////////////////////////////////////////////
30
31#ifdef __cplusplus
32extern "C" {
33#endif //__cplusplus
34
35//----------------------------------------------------------------------------
36// D3DCOMPILE flags:
37// -----------------
38// D3DCOMPILE_DEBUG
39//   Insert debug file/line/type/symbol information.
40//
41// D3DCOMPILE_SKIP_VALIDATION
42//   Do not validate the generated code against known capabilities and
43//   constraints.  This option is only recommended when compiling shaders
44//   you KNOW will work.  (ie. have compiled before without this option.)
45//   Shaders are always validated by D3D before they are set to the device.
46//
47// D3DCOMPILE_SKIP_OPTIMIZATION
48//   Instructs the compiler to skip optimization steps during code generation.
49//   Unless you are trying to isolate a problem in your code using this option
50//   is not recommended.
51//
52// D3DCOMPILE_PACK_MATRIX_ROW_MAJOR
53//   Unless explicitly specified, matrices will be packed in row-major order
54//   on input and output from the shader.
55//
56// D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR
57//   Unless explicitly specified, matrices will be packed in column-major
58//   order on input and output from the shader.  This is generally more
59//   efficient, since it allows vector-matrix multiplication to be performed
60//   using a series of dot-products.
61//
62// D3DCOMPILE_PARTIAL_PRECISION
63//   Force all computations in resulting shader to occur at partial precision.
64//   This may result in faster evaluation of shaders on some hardware.
65//
66// D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT
67//   Force compiler to compile against the next highest available software
68//   target for vertex shaders.  This flag also turns optimizations off,
69//   and debugging on. 
70//
71// D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT
72//   Force compiler to compile against the next highest available software
73//   target for pixel shaders.  This flag also turns optimizations off,
74//   and debugging on.
75//
76// D3DCOMPILE_NO_PRESHADER
77//   Disables Preshaders. Using this flag will cause the compiler to not
78//   pull out static expression for evaluation on the host cpu
79//
80// D3DCOMPILE_AVOID_FLOW_CONTROL
81//   Hint compiler to avoid flow-control constructs where possible.
82//
83// D3DCOMPILE_PREFER_FLOW_CONTROL
84//   Hint compiler to prefer flow-control constructs where possible.
85//
86// D3DCOMPILE_ENABLE_STRICTNESS
87//   By default, the HLSL/Effect compilers are not strict on deprecated syntax.
88//   Specifying this flag enables the strict mode. Deprecated syntax may be
89//   removed in a future release, and enabling syntax is a good way to make
90//   sure your shaders comply to the latest spec.
91//
92// D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY
93//   This enables older shaders to compile to 4_0 targets.
94//
95//----------------------------------------------------------------------------
96
97#define D3DCOMPILE_DEBUG                          (1 << 0)
98#define D3DCOMPILE_SKIP_VALIDATION                (1 << 1)
99#define D3DCOMPILE_SKIP_OPTIMIZATION              (1 << 2)
100#define D3DCOMPILE_PACK_MATRIX_ROW_MAJOR          (1 << 3)
101#define D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR       (1 << 4)
102#define D3DCOMPILE_PARTIAL_PRECISION              (1 << 5)
103#define D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT       (1 << 6)
104#define D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT       (1 << 7)
105#define D3DCOMPILE_NO_PRESHADER                   (1 << 8)
106#define D3DCOMPILE_AVOID_FLOW_CONTROL             (1 << 9)
107#define D3DCOMPILE_PREFER_FLOW_CONTROL            (1 << 10)
108#define D3DCOMPILE_ENABLE_STRICTNESS              (1 << 11)
109#define D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY (1 << 12)
110#define D3DCOMPILE_IEEE_STRICTNESS                (1 << 13)
111#define D3DCOMPILE_OPTIMIZATION_LEVEL0            (1 << 14)
112#define D3DCOMPILE_OPTIMIZATION_LEVEL1            0
113#define D3DCOMPILE_OPTIMIZATION_LEVEL2            ((1 << 14) | (1 << 15))
114#define D3DCOMPILE_OPTIMIZATION_LEVEL3            (1 << 15)
115#define D3DCOMPILE_RESERVED16                     (1 << 16)
116#define D3DCOMPILE_RESERVED17                     (1 << 17)
117#define D3DCOMPILE_WARNINGS_ARE_ERRORS            (1 << 18)
118
119//----------------------------------------------------------------------------
120// D3DCOMPILE_EFFECT flags:
121// -------------------------------------
122// These flags are passed in when creating an effect, and affect
123// either compilation behavior or runtime effect behavior
124//
125// D3DCOMPILE_EFFECT_CHILD_EFFECT
126//   Compile this .fx file to a child effect. Child effects have no
127//   initializers for any shared values as these are initialied in the
128//   master effect (pool).
129//
130// D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS
131//   By default, performance mode is enabled.  Performance mode
132//   disallows mutable state objects by preventing non-literal
133//   expressions from appearing in state object definitions.
134//   Specifying this flag will disable the mode and allow for mutable
135//   state objects.
136//
137//----------------------------------------------------------------------------
138
139#define D3DCOMPILE_EFFECT_CHILD_EFFECT              (1 << 0)
140#define D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS            (1 << 1)
141
142//----------------------------------------------------------------------------
143// D3DCompile:
144// ----------
145// Compile source text into bytecode appropriate for the given target.
146//----------------------------------------------------------------------------
147
148HRESULT WINAPI
149D3DCompile(__in_bcount(SrcDataSize) LPCVOID pSrcData,
150           __in SIZE_T SrcDataSize,
151           __in_opt LPCSTR pSourceName,
152           __in_xcount_opt(pDefines->Name != NULL) CONST D3D_SHADER_MACRO* pDefines,
153           __in_opt ID3DInclude* pInclude,
154           __in LPCSTR pEntrypoint,
155           __in LPCSTR pTarget,
156           __in UINT Flags1,
157           __in UINT Flags2,
158           __out ID3DBlob** ppCode,
159           __out_opt ID3DBlob** ppErrorMsgs);
160
161typedef HRESULT (WINAPI *pD3DCompile)
162    (LPCVOID                         pSrcData,
163     SIZE_T                          SrcDataSize,
164     LPCSTR                          pFileName,
165     CONST D3D_SHADER_MACRO*         pDefines,
166     ID3DInclude*                    pInclude,
167     LPCSTR                          pEntrypoint,
168     LPCSTR                          pTarget,
169     UINT                            Flags1,
170     UINT                            Flags2,
171     ID3DBlob**                      ppCode,
172     ID3DBlob**                      ppErrorMsgs);
173     
174//----------------------------------------------------------------------------
175// D3DPreprocess:
176// ----------
177// Process source text with the compiler's preprocessor and return
178// the resulting text.
179//----------------------------------------------------------------------------
180
181HRESULT WINAPI
182D3DPreprocess(__in_bcount(SrcDataSize) LPCVOID pSrcData,
183              __in SIZE_T SrcDataSize,
184              __in_opt LPCSTR pSourceName,
185              __in_opt CONST D3D_SHADER_MACRO* pDefines,
186              __in_opt ID3DInclude* pInclude,
187              __out ID3DBlob** ppCodeText,
188              __out_opt ID3DBlob** ppErrorMsgs);
189
190typedef HRESULT (WINAPI *pD3DPreprocess)
191    (LPCVOID                      pSrcData,
192     SIZE_T                       SrcDataSize,
193     LPCSTR                       pFileName,
194     CONST D3D_SHADER_MACRO*      pDefines,
195     ID3DInclude*                 pInclude,
196     ID3DBlob**                   ppCodeText,
197     ID3DBlob**                   ppErrorMsgs);
198
199//----------------------------------------------------------------------------
200// D3DGetDebugInfo:
201// -----------------------
202// Gets shader debug info.  Debug info is generated by D3DCompile and is
203// embedded in the body of the shader.
204//----------------------------------------------------------------------------
205
206HRESULT WINAPI
207D3DGetDebugInfo(__in_bcount(SrcDataSize) LPCVOID pSrcData,
208                __in SIZE_T SrcDataSize,
209                __out ID3DBlob** ppDebugInfo);
210
211//----------------------------------------------------------------------------
212// D3DReflect:
213// ----------
214// Shader code contains metadata that can be inspected via the
215// reflection APIs.
216//----------------------------------------------------------------------------
217
218HRESULT WINAPI
219D3DReflect(__in_bcount(SrcDataSize) LPCVOID pSrcData,
220           __in SIZE_T SrcDataSize,
221      __in REFIID pInterface,
222           __out void** ppReflector);
223
224//----------------------------------------------------------------------------
225// D3DDisassemble:
226// ----------------------
227// Takes a binary shader and returns a buffer containing text assembly.
228//----------------------------------------------------------------------------
229
230#define D3D_DISASM_ENABLE_COLOR_CODE            0x00000001
231#define D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS  0x00000002
232#define D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING 0x00000004
233#define D3D_DISASM_ENABLE_INSTRUCTION_CYCLE     0x00000008
234#define D3D_DISASM_DISABLE_DEBUG_INFO           0x00000010
235
236HRESULT WINAPI
237D3DDisassemble(__in_bcount(SrcDataSize) LPCVOID pSrcData,
238               __in SIZE_T SrcDataSize,
239               __in UINT Flags,
240               __in_opt LPCSTR szComments,
241               __out ID3DBlob** ppDisassembly);
242
243typedef HRESULT (WINAPI *pD3DDisassemble)
244    (__in_bcount(SrcDataSize) LPCVOID pSrcData,
245     __in SIZE_T SrcDataSize,
246     __in UINT Flags,
247     __in_opt LPCSTR szComments,
248     __out ID3DBlob** ppDisassembly);
249
250//----------------------------------------------------------------------------
251// D3DDisassemble10Effect:
252// -----------------------
253// Takes a D3D10 effect interface and returns a
254// buffer containing text assembly.
255//----------------------------------------------------------------------------
256
257HRESULT WINAPI
258D3DDisassemble10Effect(__in interface ID3D10Effect *pEffect,
259                       __in UINT Flags,
260                       __out ID3DBlob** ppDisassembly);
261
262//----------------------------------------------------------------------------
263// D3DGetInputSignatureBlob:
264// -----------------------
265// Retrieve the input signature from a compilation result.
266//----------------------------------------------------------------------------
267
268HRESULT WINAPI
269D3DGetInputSignatureBlob(__in_bcount(SrcDataSize) LPCVOID pSrcData,
270                         __in SIZE_T SrcDataSize,
271                         __out ID3DBlob** ppSignatureBlob);
272
273//----------------------------------------------------------------------------
274// D3DGetOutputSignatureBlob:
275// -----------------------
276// Retrieve the output signature from a compilation result.
277//----------------------------------------------------------------------------
278
279HRESULT WINAPI
280D3DGetOutputSignatureBlob(__in_bcount(SrcDataSize) LPCVOID pSrcData,
281                          __in SIZE_T SrcDataSize,
282                          __out ID3DBlob** ppSignatureBlob);
283
284//----------------------------------------------------------------------------
285// D3DGetInputAndOutputSignatureBlob:
286// -----------------------
287// Retrieve the input and output signatures from a compilation result.
288//----------------------------------------------------------------------------
289
290HRESULT WINAPI
291D3DGetInputAndOutputSignatureBlob(__in_bcount(SrcDataSize) LPCVOID pSrcData,
292                                  __in SIZE_T SrcDataSize,
293                                  __out ID3DBlob** ppSignatureBlob);
294
295//----------------------------------------------------------------------------
296// D3DStripShader:
297// -----------------------
298// Removes unwanted blobs from a compilation result
299//----------------------------------------------------------------------------
300
301typedef enum D3DCOMPILER_STRIP_FLAGS
302{
303    D3DCOMPILER_STRIP_REFLECTION_DATA = 1,
304    D3DCOMPILER_STRIP_DEBUG_INFO      = 2,
305    D3DCOMPILER_STRIP_TEST_BLOBS      = 4,
306    D3DCOMPILER_STRIP_FORCE_DWORD     = 0x7fffffff,
307} D3DCOMPILER_STRIP_FLAGS;
308
309HRESULT WINAPI
310D3DStripShader(__in_bcount(BytecodeLength) LPCVOID pShaderBytecode,
311               __in SIZE_T BytecodeLength,
312               __in UINT uStripFlags,
313               __out ID3DBlob** ppStrippedBlob);
314
315//----------------------------------------------------------------------------
316// D3DGetBlobPart:
317// -----------------------
318// Extracts information from a compilation result.
319//----------------------------------------------------------------------------
320
321typedef enum D3D_BLOB_PART
322{
323    D3D_BLOB_INPUT_SIGNATURE_BLOB,
324    D3D_BLOB_OUTPUT_SIGNATURE_BLOB,
325    D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB,
326    D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB,
327    D3D_BLOB_ALL_SIGNATURE_BLOB,
328    D3D_BLOB_DEBUG_INFO,
329    D3D_BLOB_LEGACY_SHADER,
330    D3D_BLOB_XNA_PREPASS_SHADER,
331    D3D_BLOB_XNA_SHADER,
332
333    // Test parts are only produced by special compiler versions and so
334    // are usually not present in shaders.
335    D3D_BLOB_TEST_ALTERNATE_SHADER = 0x8000,
336    D3D_BLOB_TEST_COMPILE_DETAILS,
337    D3D_BLOB_TEST_COMPILE_PERF,
338} D3D_BLOB_PART;
339
340HRESULT WINAPI
341D3DGetBlobPart(__in_bcount(SrcDataSize) LPCVOID pSrcData,
342               __in SIZE_T SrcDataSize,
343               __in D3D_BLOB_PART Part,
344               __in UINT Flags,
345               __out ID3DBlob** ppPart);
346
347//----------------------------------------------------------------------------
348// D3DCompressShaders:
349// -----------------------
350// Compresses a set of shaders into a more compact form.
351//----------------------------------------------------------------------------
352
353typedef struct _D3D_SHADER_DATA
354{
355    LPCVOID pBytecode;
356    SIZE_T BytecodeLength;
357} D3D_SHADER_DATA;
358
359#define D3D_COMPRESS_SHADER_KEEP_ALL_PARTS 0x00000001
360
361HRESULT WINAPI
362D3DCompressShaders(__in UINT uNumShaders,
363                   __in_ecount(uNumShaders) D3D_SHADER_DATA* pShaderData,
364                   __in UINT uFlags,
365                   __out ID3DBlob** ppCompressedData);
366
367//----------------------------------------------------------------------------
368// D3DDecompressShaders:
369// -----------------------
370// Decompresses one or more shaders from a compressed set.
371//----------------------------------------------------------------------------
372
373HRESULT WINAPI
374D3DDecompressShaders(__in_bcount(SrcDataSize) LPCVOID pSrcData,
375                     __in SIZE_T SrcDataSize,
376                     __in UINT uNumShaders,         
377                     __in UINT uStartIndex,
378                     __in_ecount_opt(uNumShaders) UINT* pIndices,
379                     __in UINT uFlags,
380                     __out_ecount(uNumShaders) ID3DBlob** ppShaders,
381           __out_opt UINT* pTotalShaders);
382
383//----------------------------------------------------------------------------
384// D3DCreateBlob:
385// -----------------------
386// Create an ID3DBlob instance.
387//----------------------------------------------------------------------------
388
389HRESULT WINAPI
390D3DCreateBlob(__in SIZE_T Size,
391              __out ID3DBlob** ppBlob);
392
393#ifdef __cplusplus
394}
395#endif //__cplusplus
396   
397#endif // #ifndef __D3DCOMPILER_H__
trunk/3rdparty/dxsdk/Include/d3d10.h
r0r243311
1/*-------------------------------------------------------------------------------------
2 *
3 * Copyright (c) Microsoft Corporation
4 *
5 *-------------------------------------------------------------------------------------*/
6
7
8/* this ALWAYS GENERATED file contains the definitions for the interfaces */
9
10
11 /* File created by MIDL compiler version 7.00.0555 */
12/* @@MIDL_FILE_HEADING(  ) */
13
14#ifdef _MSC_VER
15#pragma warning( disable: 4049 )  /* more than 64k source lines */
16#endif // _MSC_VER
17
18
19/* verify that the <rpcndr.h> version is high enough to compile this file*/
20#ifndef __REQUIRED_RPCNDR_H_VERSION__
21#define __REQUIRED_RPCNDR_H_VERSION__ 475
22#endif
23
24/* verify that the <rpcsal.h> version is high enough to compile this file*/
25#ifndef __REQUIRED_RPCSAL_H_VERSION__
26#define __REQUIRED_RPCSAL_H_VERSION__ 100
27#endif
28
29#include "rpc.h"
30#include "rpcndr.h"
31
32#ifndef __RPCNDR_H_VERSION__
33#error this stub requires an updated version of <rpcndr.h>
34#endif // __RPCNDR_H_VERSION__
35
36#ifndef COM_NO_WINDOWS_H
37#include "windows.h"
38#include "ole2.h"
39#endif /*COM_NO_WINDOWS_H*/
40
41#ifndef __d3d10_h__
42#define __d3d10_h__
43
44#if defined(_MSC_VER) && (_MSC_VER >= 1020)
45#pragma once
46#endif
47
48/* Forward Declarations */
49
50#ifndef __ID3D10DeviceChild_FWD_DEFINED__
51#define __ID3D10DeviceChild_FWD_DEFINED__
52typedef interface ID3D10DeviceChild ID3D10DeviceChild;
53#endif    /* __ID3D10DeviceChild_FWD_DEFINED__ */
54
55
56#ifndef __ID3D10DepthStencilState_FWD_DEFINED__
57#define __ID3D10DepthStencilState_FWD_DEFINED__
58typedef interface ID3D10DepthStencilState ID3D10DepthStencilState;
59#endif    /* __ID3D10DepthStencilState_FWD_DEFINED__ */
60
61
62#ifndef __ID3D10BlendState_FWD_DEFINED__
63#define __ID3D10BlendState_FWD_DEFINED__
64typedef interface ID3D10BlendState ID3D10BlendState;
65#endif    /* __ID3D10BlendState_FWD_DEFINED__ */
66
67
68#ifndef __ID3D10RasterizerState_FWD_DEFINED__
69#define __ID3D10RasterizerState_FWD_DEFINED__
70typedef interface ID3D10RasterizerState ID3D10RasterizerState;
71#endif    /* __ID3D10RasterizerState_FWD_DEFINED__ */
72
73
74#ifndef __ID3D10Resource_FWD_DEFINED__
75#define __ID3D10Resource_FWD_DEFINED__
76typedef interface ID3D10Resource ID3D10Resource;
77#endif    /* __ID3D10Resource_FWD_DEFINED__ */
78
79
80#ifndef __ID3D10Buffer_FWD_DEFINED__
81#define __ID3D10Buffer_FWD_DEFINED__
82typedef interface ID3D10Buffer ID3D10Buffer;
83#endif    /* __ID3D10Buffer_FWD_DEFINED__ */
84
85
86#ifndef __ID3D10Texture1D_FWD_DEFINED__
87#define __ID3D10Texture1D_FWD_DEFINED__
88typedef interface ID3D10Texture1D ID3D10Texture1D;
89#endif    /* __ID3D10Texture1D_FWD_DEFINED__ */
90
91
92#ifndef __ID3D10Texture2D_FWD_DEFINED__
93#define __ID3D10Texture2D_FWD_DEFINED__
94typedef interface ID3D10Texture2D ID3D10Texture2D;
95#endif    /* __ID3D10Texture2D_FWD_DEFINED__ */
96
97
98#ifndef __ID3D10Texture3D_FWD_DEFINED__
99#define __ID3D10Texture3D_FWD_DEFINED__
100typedef interface ID3D10Texture3D ID3D10Texture3D;
101#endif    /* __ID3D10Texture3D_FWD_DEFINED__ */
102
103
104#ifndef __ID3D10View_FWD_DEFINED__
105#define __ID3D10View_FWD_DEFINED__
106typedef interface ID3D10View ID3D10View;
107#endif    /* __ID3D10View_FWD_DEFINED__ */
108
109
110#ifndef __ID3D10ShaderResourceView_FWD_DEFINED__
111#define __ID3D10ShaderResourceView_FWD_DEFINED__
112typedef interface ID3D10ShaderResourceView ID3D10ShaderResourceView;
113#endif    /* __ID3D10ShaderResourceView_FWD_DEFINED__ */
114
115
116#ifndef __ID3D10RenderTargetView_FWD_DEFINED__
117#define __ID3D10RenderTargetView_FWD_DEFINED__
118typedef interface ID3D10RenderTargetView ID3D10RenderTargetView;
119#endif    /* __ID3D10RenderTargetView_FWD_DEFINED__ */
120
121
122#ifndef __ID3D10DepthStencilView_FWD_DEFINED__
123#define __ID3D10DepthStencilView_FWD_DEFINED__
124typedef interface ID3D10DepthStencilView ID3D10DepthStencilView;
125#endif    /* __ID3D10DepthStencilView_FWD_DEFINED__ */
126
127
128#ifndef __ID3D10VertexShader_FWD_DEFINED__
129#define __ID3D10VertexShader_FWD_DEFINED__
130typedef interface ID3D10VertexShader ID3D10VertexShader;
131#endif    /* __ID3D10VertexShader_FWD_DEFINED__ */
132
133
134#ifndef __ID3D10GeometryShader_FWD_DEFINED__
135#define __ID3D10GeometryShader_FWD_DEFINED__
136typedef interface ID3D10GeometryShader ID3D10GeometryShader;
137#endif    /* __ID3D10GeometryShader_FWD_DEFINED__ */
138
139
140#ifndef __ID3D10PixelShader_FWD_DEFINED__
141#define __ID3D10PixelShader_FWD_DEFINED__
142typedef interface ID3D10PixelShader ID3D10PixelShader;
143#endif    /* __ID3D10PixelShader_FWD_DEFINED__ */
144
145
146#ifndef __ID3D10InputLayout_FWD_DEFINED__
147#define __ID3D10InputLayout_FWD_DEFINED__
148typedef interface ID3D10InputLayout ID3D10InputLayout;
149#endif    /* __ID3D10InputLayout_FWD_DEFINED__ */
150
151
152#ifndef __ID3D10SamplerState_FWD_DEFINED__
153#define __ID3D10SamplerState_FWD_DEFINED__
154typedef interface ID3D10SamplerState ID3D10SamplerState;
155#endif    /* __ID3D10SamplerState_FWD_DEFINED__ */
156
157
158#ifndef __ID3D10Asynchronous_FWD_DEFINED__
159#define __ID3D10Asynchronous_FWD_DEFINED__
160typedef interface ID3D10Asynchronous ID3D10Asynchronous;
161#endif    /* __ID3D10Asynchronous_FWD_DEFINED__ */
162
163
164#ifndef __ID3D10Query_FWD_DEFINED__
165#define __ID3D10Query_FWD_DEFINED__
166typedef interface ID3D10Query ID3D10Query;
167#endif    /* __ID3D10Query_FWD_DEFINED__ */
168
169
170#ifndef __ID3D10Predicate_FWD_DEFINED__
171#define __ID3D10Predicate_FWD_DEFINED__
172typedef interface ID3D10Predicate ID3D10Predicate;
173#endif    /* __ID3D10Predicate_FWD_DEFINED__ */
174
175
176#ifndef __ID3D10Counter_FWD_DEFINED__
177#define __ID3D10Counter_FWD_DEFINED__
178typedef interface ID3D10Counter ID3D10Counter;
179#endif    /* __ID3D10Counter_FWD_DEFINED__ */
180
181
182#ifndef __ID3D10Device_FWD_DEFINED__
183#define __ID3D10Device_FWD_DEFINED__
184typedef interface ID3D10Device ID3D10Device;
185#endif    /* __ID3D10Device_FWD_DEFINED__ */
186
187
188#ifndef __ID3D10Multithread_FWD_DEFINED__
189#define __ID3D10Multithread_FWD_DEFINED__
190typedef interface ID3D10Multithread ID3D10Multithread;
191#endif    /* __ID3D10Multithread_FWD_DEFINED__ */
192
193
194/* header files for imported files */
195#include "oaidl.h"
196#include "ocidl.h"
197#include "dxgi.h"
198#include "d3dcommon.h"
199
200#ifdef __cplusplus
201extern "C"{
202#endif
203
204
205/* interface __MIDL_itf_d3d10_0000_0000 */
206/* [local] */
207
208#ifndef _D3D10_CONSTANTS
209#define _D3D10_CONSTANTS
210#define   D3D10_16BIT_INDEX_STRIP_CUT_VALUE   ( 0xffff )
211
212#define   D3D10_32BIT_INDEX_STRIP_CUT_VALUE   ( 0xffffffff )
213
214#define   D3D10_8BIT_INDEX_STRIP_CUT_VALUE   ( 0xff )
215
216#define   D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT   ( 9 )
217
218#define   D3D10_CLIP_OR_CULL_DISTANCE_COUNT   ( 8 )
219
220#define   D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT   ( 2 )
221
222#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT   ( 14 )
223
224#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS   ( 4 )
225
226#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT   ( 32 )
227
228#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT   ( 15 )
229
230#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS   ( 4 )
231
232#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT   ( 15 )
233
234#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST   ( 1 )
235
236#define   D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS   ( 1 )
237
238#define   D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT   ( 64 )
239
240#define   D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS   ( 4 )
241
242#define   D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT   ( 1 )
243
244#define   D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST   ( 1 )
245
246#define   D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS   ( 1 )
247
248#define   D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT   ( 32 )
249
250#define   D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS   ( 1 )
251
252#define   D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT   ( 128 )
253
254#define   D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST   ( 1 )
255
256#define   D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS   ( 1 )
257
258#define   D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT   ( 128 )
259
260#define   D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS   ( 1 )
261
262#define   D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT   ( 16 )
263
264#define   D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST   ( 1 )
265
266#define   D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS   ( 1 )
267
268#define   D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT   ( 16 )
269
270#define   D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT   ( 32 )
271
272#define   D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS   ( 4 )
273
274#define   D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
275
276#define   D3D10_COMMONSHADER_TEMP_REGISTER_COUNT   ( 4096 )
277
278#define   D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST   ( 3 )
279
280#define   D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS   ( 3 )
281
282#define   D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX   ( 10 )
283
284#define   D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN   ( -10 )
285
286#define   D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE   ( -8 )
287
288#define   D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE   ( 7 )
289
290#define D3D10_DEFAULT_BLEND_FACTOR_ALPHA   ( 1.0f )
291#define D3D10_DEFAULT_BLEND_FACTOR_BLUE   ( 1.0f )
292#define D3D10_DEFAULT_BLEND_FACTOR_GREEN   ( 1.0f )
293#define D3D10_DEFAULT_BLEND_FACTOR_RED   ( 1.0f )
294#define D3D10_DEFAULT_BORDER_COLOR_COMPONENT   ( 0.0f )
295#define   D3D10_DEFAULT_DEPTH_BIAS   ( 0 )
296
297#define D3D10_DEFAULT_DEPTH_BIAS_CLAMP   ( 0.0f )
298#define D3D10_DEFAULT_MAX_ANISOTROPY   ( 16.0f )
299#define D3D10_DEFAULT_MIP_LOD_BIAS   ( 0.0f )
300#define   D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX   ( 0 )
301
302#define   D3D10_DEFAULT_SAMPLE_MASK   ( 0xffffffff )
303
304#define   D3D10_DEFAULT_SCISSOR_ENDX   ( 0 )
305
306#define   D3D10_DEFAULT_SCISSOR_ENDY   ( 0 )
307
308#define   D3D10_DEFAULT_SCISSOR_STARTX   ( 0 )
309
310#define   D3D10_DEFAULT_SCISSOR_STARTY   ( 0 )
311
312#define D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS   ( 0.0f )
313#define   D3D10_DEFAULT_STENCIL_READ_MASK   ( 0xff )
314
315#define   D3D10_DEFAULT_STENCIL_REFERENCE   ( 0 )
316
317#define   D3D10_DEFAULT_STENCIL_WRITE_MASK   ( 0xff )
318
319#define   D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX   ( 0 )
320
321#define   D3D10_DEFAULT_VIEWPORT_HEIGHT   ( 0 )
322
323#define D3D10_DEFAULT_VIEWPORT_MAX_DEPTH   ( 0.0f )
324#define D3D10_DEFAULT_VIEWPORT_MIN_DEPTH   ( 0.0f )
325#define   D3D10_DEFAULT_VIEWPORT_TOPLEFTX   ( 0 )
326
327#define   D3D10_DEFAULT_VIEWPORT_TOPLEFTY   ( 0 )
328
329#define   D3D10_DEFAULT_VIEWPORT_WIDTH   ( 0 )
330
331#define D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP   ( 0.6 )
332#define D3D10_FLOAT32_MAX   ( 3.402823466e+38f )
333#define D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP   ( 0.6f )
334#define D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR   ( 2.4f )
335#define D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR   ( 1.0f )
336#define D3D10_FLOAT_TO_SRGB_OFFSET   ( 0.055f )
337#define D3D10_FLOAT_TO_SRGB_SCALE_1   ( 12.92f )
338#define D3D10_FLOAT_TO_SRGB_SCALE_2   ( 1.055f )
339#define D3D10_FLOAT_TO_SRGB_THRESHOLD   ( 0.0031308f )
340#define D3D10_FTOI_INSTRUCTION_MAX_INPUT   ( 2147483647.999f )
341#define D3D10_FTOI_INSTRUCTION_MIN_INPUT   ( -2147483648.999f )
342#define D3D10_FTOU_INSTRUCTION_MAX_INPUT   ( 4294967295.999f )
343#define D3D10_FTOU_INSTRUCTION_MIN_INPUT   ( 0.0f )
344#define   D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS   ( 1 )
345
346#define   D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
347
348#define   D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT   ( 1 )
349
350#define   D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST   ( 2 )
351
352#define   D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS   ( 1 )
353
354#define   D3D10_GS_INPUT_REGISTER_COMPONENTS   ( 4 )
355
356#define   D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
357
358#define   D3D10_GS_INPUT_REGISTER_COUNT   ( 16 )
359
360#define   D3D10_GS_INPUT_REGISTER_READS_PER_INST   ( 2 )
361
362#define   D3D10_GS_INPUT_REGISTER_READ_PORTS   ( 1 )
363
364#define   D3D10_GS_INPUT_REGISTER_VERTICES   ( 6 )
365
366#define   D3D10_GS_OUTPUT_ELEMENTS   ( 32 )
367
368#define   D3D10_GS_OUTPUT_REGISTER_COMPONENTS   ( 4 )
369
370#define   D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
371
372#define   D3D10_GS_OUTPUT_REGISTER_COUNT   ( 32 )
373
374#define   D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES   ( 0 )
375
376#define   D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY   ( 0 )
377
378#define   D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES   ( 0 )
379
380#define   D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT   ( 1 )
381
382#define   D3D10_IA_INSTANCE_ID_BIT_COUNT   ( 32 )
383
384#define   D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT   ( 32 )
385
386#define   D3D10_IA_PRIMITIVE_ID_BIT_COUNT   ( 32 )
387
388#define   D3D10_IA_VERTEX_ID_BIT_COUNT   ( 32 )
389
390#define   D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT   ( 16 )
391
392#define   D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS   ( 64 )
393
394#define   D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT   ( 16 )
395
396#define   D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT   ( 0xffffffff )
397
398#define   D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER   ( 0xffffffff )
399
400#define D3D10_LINEAR_GAMMA   ( 1.0f )
401#define D3D10_MAX_BORDER_COLOR_COMPONENT   ( 1.0f )
402#define D3D10_MAX_DEPTH   ( 1.0f )
403#define   D3D10_MAX_MAXANISOTROPY   ( 16 )
404
405#define   D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT   ( 32 )
406
407#define D3D10_MAX_POSITION_VALUE   ( 3.402823466e+34f )
408#define   D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP   ( 17 )
409
410#define D3D10_MIN_BORDER_COLOR_COMPONENT   ( 0.0f )
411#define D3D10_MIN_DEPTH   ( 0.0f )
412#define   D3D10_MIN_MAXANISOTROPY   ( 0 )
413
414#define D3D10_MIP_LOD_BIAS_MAX   ( 15.99f )
415#define D3D10_MIP_LOD_BIAS_MIN   ( -16.0f )
416#define   D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT   ( 6 )
417
418#define   D3D10_MIP_LOD_RANGE_BIT_COUNT   ( 8 )
419
420#define D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH   ( 1.4f )
421#define   D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT   ( 0 )
422
423#define   D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT   ( 13 )
424
425#define   D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT   ( 15 )
426
427#define   D3D10_PS_FRONTFACING_DEFAULT_VALUE   ( 0xffffffff )
428
429#define   D3D10_PS_FRONTFACING_FALSE_VALUE   ( 0 )
430
431#define   D3D10_PS_FRONTFACING_TRUE_VALUE   ( 0xffffffff )
432
433#define   D3D10_PS_INPUT_REGISTER_COMPONENTS   ( 4 )
434
435#define   D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
436
437#define   D3D10_PS_INPUT_REGISTER_COUNT   ( 32 )
438
439#define   D3D10_PS_INPUT_REGISTER_READS_PER_INST   ( 2 )
440
441#define   D3D10_PS_INPUT_REGISTER_READ_PORTS   ( 1 )
442
443#define D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT   ( 0.0f )
444#define   D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS   ( 1 )
445
446#define   D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
447
448#define   D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT   ( 1 )
449
450#define   D3D10_PS_OUTPUT_REGISTER_COMPONENTS   ( 4 )
451
452#define   D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
453
454#define   D3D10_PS_OUTPUT_REGISTER_COUNT   ( 8 )
455
456#define D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT   ( 0.5f )
457#define   D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT   ( 4096 )
458
459#define   D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP   ( 27 )
460
461#define   D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT   ( 4096 )
462
463#define   D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT   ( 4096 )
464
465#define   D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP   ( 32 )
466
467#define   D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP   ( 32 )
468
469#define   D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION   ( 8192 )
470
471#define   D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT   ( 1024 )
472
473#define   D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT   ( 4096 )
474
475#define   D3D10_REQ_MAXANISOTROPY   ( 16 )
476
477#define   D3D10_REQ_MIP_LEVELS   ( 14 )
478
479#define   D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES   ( 2048 )
480
481#define   D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT   ( 4096 )
482
483#define   D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH   ( 8192 )
484
485#define   D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES   ( 128 )
486
487#define   D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP   ( 20 )
488
489#define   D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT   ( 4096 )
490
491#define   D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION   ( 512 )
492
493#define   D3D10_REQ_TEXTURE1D_U_DIMENSION   ( 8192 )
494
495#define   D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION   ( 512 )
496
497#define   D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION   ( 8192 )
498
499#define   D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION   ( 2048 )
500
501#define   D3D10_REQ_TEXTURECUBE_DIMENSION   ( 8192 )
502
503#define   D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL   ( 0 )
504
505#define   D3D10_SHADER_MAJOR_VERSION   ( 4 )
506
507#define   D3D10_SHADER_MINOR_VERSION   ( 0 )
508
509#define   D3D10_SHIFT_INSTRUCTION_PAD_VALUE   ( 0 )
510
511#define   D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT   ( 5 )
512
513#define   D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT   ( 8 )
514
515#define   D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES   ( 2048 )
516
517#define   D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES   ( 256 )
518
519#define   D3D10_SO_BUFFER_SLOT_COUNT   ( 4 )
520
521#define   D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP   ( 0xffffffff )
522
523#define   D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER   ( 1 )
524
525#define   D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT   ( 64 )
526
527#define D3D10_SRGB_GAMMA   ( 2.2f )
528#define D3D10_SRGB_TO_FLOAT_DENOMINATOR_1   ( 12.92f )
529#define D3D10_SRGB_TO_FLOAT_DENOMINATOR_2   ( 1.055f )
530#define D3D10_SRGB_TO_FLOAT_EXPONENT   ( 2.4f )
531#define D3D10_SRGB_TO_FLOAT_OFFSET   ( 0.055f )
532#define D3D10_SRGB_TO_FLOAT_THRESHOLD   ( 0.04045f )
533#define D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP   ( 0.5f )
534#define   D3D10_STANDARD_COMPONENT_BIT_COUNT   ( 32 )
535
536#define   D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED   ( 64 )
537
538#define   D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE   ( 4 )
539
540#define   D3D10_STANDARD_PIXEL_COMPONENT_COUNT   ( 128 )
541
542#define   D3D10_STANDARD_PIXEL_ELEMENT_COUNT   ( 32 )
543
544#define   D3D10_STANDARD_VECTOR_SIZE   ( 4 )
545
546#define   D3D10_STANDARD_VERTEX_ELEMENT_COUNT   ( 16 )
547
548#define   D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT   ( 64 )
549
550#define   D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT   ( 8 )
551
552#define   D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT   ( 6 )
553
554#define   D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT   ( 18 )
555
556#define   D3D10_UNBOUND_MEMORY_ACCESS_RESULT   ( 0 )
557
558#define   D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX   ( 15 )
559
560#define   D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE   ( 16 )
561
562#define   D3D10_VIEWPORT_BOUNDS_MAX   ( 16383 )
563
564#define   D3D10_VIEWPORT_BOUNDS_MIN   ( -16384 )
565
566#define   D3D10_VS_INPUT_REGISTER_COMPONENTS   ( 4 )
567
568#define   D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
569
570#define   D3D10_VS_INPUT_REGISTER_COUNT   ( 16 )
571
572#define   D3D10_VS_INPUT_REGISTER_READS_PER_INST   ( 2 )
573
574#define   D3D10_VS_INPUT_REGISTER_READ_PORTS   ( 1 )
575
576#define   D3D10_VS_OUTPUT_REGISTER_COMPONENTS   ( 4 )
577
578#define   D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
579
580#define   D3D10_VS_OUTPUT_REGISTER_COUNT   ( 16 )
581
582#define   D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT   ( 10 )
583
584#define   D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP   ( 25 )
585
586#define   D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP   ( 25 )
587
588#define   D3D_MAJOR_VERSION   ( 10 )
589
590#define   D3D_MINOR_VERSION   ( 0 )
591
592#define   D3D_SPEC_DATE_DAY   ( 8 )
593
594#define   D3D_SPEC_DATE_MONTH   ( 8 )
595
596#define   D3D_SPEC_DATE_YEAR   ( 2006 )
597
598#define D3D_SPEC_VERSION   ( 1.050005 )
599#endif
600#if !defined( __d3d10_1_h__ ) && !(D3D10_HEADER_MINOR_VERSION >= 1)
601#define D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT
602#define D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT
603#endif
604#define   _FACD3D10   ( 0x879 )
605
606#define   _FACD3D10DEBUG   ( ( _FACD3D10 + 1 )  )
607
608#define MAKE_D3D10_HRESULT( code )  MAKE_HRESULT( 1, _FACD3D10, code )
609#define MAKE_D3D10_STATUS( code )    MAKE_HRESULT( 0, _FACD3D10, code )
610#define D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS  MAKE_D3D10_HRESULT(1)
611#define D3D10_ERROR_FILE_NOT_FOUND  MAKE_D3D10_HRESULT(2)
612#if __SAL_H_FULL_VER < 140050727
613#undef __in_range
614#undef __in_xcount_opt
615#define __in_range(x, y)
616#define __in_xcount_opt(x)
617#endif
618typedef
619enum D3D10_INPUT_CLASSIFICATION
620    {   D3D10_INPUT_PER_VERTEX_DATA   = 0,
621   D3D10_INPUT_PER_INSTANCE_DATA   = 1
622    }    D3D10_INPUT_CLASSIFICATION;
623
624#define   D3D10_APPEND_ALIGNED_ELEMENT   ( 0xffffffff )
625
626typedef struct D3D10_INPUT_ELEMENT_DESC
627    {
628    LPCSTR SemanticName;
629    UINT SemanticIndex;
630    DXGI_FORMAT Format;
631    UINT InputSlot;
632    UINT AlignedByteOffset;
633    D3D10_INPUT_CLASSIFICATION InputSlotClass;
634    UINT InstanceDataStepRate;
635    }    D3D10_INPUT_ELEMENT_DESC;
636
637typedef
638enum D3D10_FILL_MODE
639    {   D3D10_FILL_WIREFRAME   = 2,
640   D3D10_FILL_SOLID   = 3
641    }    D3D10_FILL_MODE;
642
643typedef D3D_PRIMITIVE_TOPOLOGY D3D10_PRIMITIVE_TOPOLOGY;
644
645typedef D3D_PRIMITIVE D3D10_PRIMITIVE;
646
647typedef
648enum D3D10_CULL_MODE
649    {   D3D10_CULL_NONE   = 1,
650   D3D10_CULL_FRONT   = 2,
651   D3D10_CULL_BACK   = 3
652    }    D3D10_CULL_MODE;
653
654typedef struct D3D10_SO_DECLARATION_ENTRY
655    {
656    LPCSTR SemanticName;
657    UINT SemanticIndex;
658    BYTE StartComponent;
659    BYTE ComponentCount;
660    BYTE OutputSlot;
661    }    D3D10_SO_DECLARATION_ENTRY;
662
663typedef struct D3D10_VIEWPORT
664    {
665    INT TopLeftX;
666    INT TopLeftY;
667    UINT Width;
668    UINT Height;
669    FLOAT MinDepth;
670    FLOAT MaxDepth;
671    }    D3D10_VIEWPORT;
672
673typedef
674enum D3D10_RESOURCE_DIMENSION
675    {   D3D10_RESOURCE_DIMENSION_UNKNOWN   = 0,
676   D3D10_RESOURCE_DIMENSION_BUFFER   = 1,
677   D3D10_RESOURCE_DIMENSION_TEXTURE1D   = 2,
678   D3D10_RESOURCE_DIMENSION_TEXTURE2D   = 3,
679   D3D10_RESOURCE_DIMENSION_TEXTURE3D   = 4
680    }    D3D10_RESOURCE_DIMENSION;
681
682typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION;
683
684typedef
685enum D3D10_DSV_DIMENSION
686    {   D3D10_DSV_DIMENSION_UNKNOWN   = 0,
687   D3D10_DSV_DIMENSION_TEXTURE1D   = 1,
688   D3D10_DSV_DIMENSION_TEXTURE1DARRAY   = 2,
689   D3D10_DSV_DIMENSION_TEXTURE2D   = 3,
690   D3D10_DSV_DIMENSION_TEXTURE2DARRAY   = 4,
691   D3D10_DSV_DIMENSION_TEXTURE2DMS   = 5,
692   D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY   = 6
693    }    D3D10_DSV_DIMENSION;
694
695typedef
696enum D3D10_RTV_DIMENSION
697    {   D3D10_RTV_DIMENSION_UNKNOWN   = 0,
698   D3D10_RTV_DIMENSION_BUFFER   = 1,
699   D3D10_RTV_DIMENSION_TEXTURE1D   = 2,
700   D3D10_RTV_DIMENSION_TEXTURE1DARRAY   = 3,
701   D3D10_RTV_DIMENSION_TEXTURE2D   = 4,
702   D3D10_RTV_DIMENSION_TEXTURE2DARRAY   = 5,
703   D3D10_RTV_DIMENSION_TEXTURE2DMS   = 6,
704   D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY   = 7,
705   D3D10_RTV_DIMENSION_TEXTURE3D   = 8
706    }    D3D10_RTV_DIMENSION;
707
708typedef
709enum D3D10_USAGE
710    {   D3D10_USAGE_DEFAULT   = 0,
711   D3D10_USAGE_IMMUTABLE   = 1,
712   D3D10_USAGE_DYNAMIC   = 2,
713   D3D10_USAGE_STAGING   = 3
714    }    D3D10_USAGE;
715
716typedef
717enum D3D10_BIND_FLAG
718    {   D3D10_BIND_VERTEX_BUFFER   = 0x1L,
719   D3D10_BIND_INDEX_BUFFER   = 0x2L,
720   D3D10_BIND_CONSTANT_BUFFER   = 0x4L,
721   D3D10_BIND_SHADER_RESOURCE   = 0x8L,
722   D3D10_BIND_STREAM_OUTPUT   = 0x10L,
723   D3D10_BIND_RENDER_TARGET   = 0x20L,
724   D3D10_BIND_DEPTH_STENCIL   = 0x40L
725    }    D3D10_BIND_FLAG;
726
727typedef
728enum D3D10_CPU_ACCESS_FLAG
729    {   D3D10_CPU_ACCESS_WRITE   = 0x10000L,
730   D3D10_CPU_ACCESS_READ   = 0x20000L
731    }    D3D10_CPU_ACCESS_FLAG;
732
733typedef
734enum D3D10_RESOURCE_MISC_FLAG
735    {   D3D10_RESOURCE_MISC_GENERATE_MIPS   = 0x1L,
736   D3D10_RESOURCE_MISC_SHARED   = 0x2L,
737   D3D10_RESOURCE_MISC_TEXTURECUBE   = 0x4L,
738   D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX   = 0x10L,
739   D3D10_RESOURCE_MISC_GDI_COMPATIBLE   = 0x20L
740    }    D3D10_RESOURCE_MISC_FLAG;
741
742typedef
743enum D3D10_MAP
744    {   D3D10_MAP_READ   = 1,
745   D3D10_MAP_WRITE   = 2,
746   D3D10_MAP_READ_WRITE   = 3,
747   D3D10_MAP_WRITE_DISCARD   = 4,
748   D3D10_MAP_WRITE_NO_OVERWRITE   = 5
749    }    D3D10_MAP;
750
751typedef
752enum D3D10_MAP_FLAG
753    {   D3D10_MAP_FLAG_DO_NOT_WAIT   = 0x100000L
754    }    D3D10_MAP_FLAG;
755
756typedef
757enum D3D10_RAISE_FLAG
758    {   D3D10_RAISE_FLAG_DRIVER_INTERNAL_ERROR   = 0x1L
759    }    D3D10_RAISE_FLAG;
760
761typedef
762enum D3D10_CLEAR_FLAG
763    {   D3D10_CLEAR_DEPTH   = 0x1L,
764   D3D10_CLEAR_STENCIL   = 0x2L
765    }    D3D10_CLEAR_FLAG;
766
767typedef RECT D3D10_RECT;
768
769typedef struct D3D10_BOX
770    {
771    UINT left;
772    UINT top;
773    UINT front;
774    UINT right;
775    UINT bottom;
776    UINT back;
777    }    D3D10_BOX;
778
779
780
781
782extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0000_v0_0_c_ifspec;
783extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0000_v0_0_s_ifspec;
784
785#ifndef __ID3D10DeviceChild_INTERFACE_DEFINED__
786#define __ID3D10DeviceChild_INTERFACE_DEFINED__
787
788/* interface ID3D10DeviceChild */
789/* [unique][local][object][uuid] */
790
791
792EXTERN_C const IID IID_ID3D10DeviceChild;
793
794#if defined(__cplusplus) && !defined(CINTERFACE)
795   
796    MIDL_INTERFACE("9B7E4C00-342C-4106-A19F-4F2704F689F0")
797    ID3D10DeviceChild : public IUnknown
798    {
799    public:
800        virtual void STDMETHODCALLTYPE GetDevice(
801            /* [annotation] */
802            __out  ID3D10Device **ppDevice) = 0;
803       
804        virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
805            /* [annotation] */
806            __in  REFGUID guid,
807            /* [annotation] */
808            __inout  UINT *pDataSize,
809            /* [annotation] */
810            __out_bcount_opt(*pDataSize)  void *pData) = 0;
811       
812        virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
813            /* [annotation] */
814            __in  REFGUID guid,
815            /* [annotation] */
816            __in  UINT DataSize,
817            /* [annotation] */
818            __in_bcount_opt(DataSize)  const void *pData) = 0;
819       
820        virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
821            /* [annotation] */
822            __in  REFGUID guid,
823            /* [annotation] */
824            __in_opt  const IUnknown *pData) = 0;
825       
826    };
827   
828#else    /* C style interface */
829
830    typedef struct ID3D10DeviceChildVtbl
831    {
832        BEGIN_INTERFACE
833       
834        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
835            ID3D10DeviceChild * This,
836            /* [in] */ REFIID riid,
837            /* [annotation][iid_is][out] */
838            __RPC__deref_out  void **ppvObject);
839       
840        ULONG ( STDMETHODCALLTYPE *AddRef )(
841            ID3D10DeviceChild * This);
842       
843        ULONG ( STDMETHODCALLTYPE *Release )(
844            ID3D10DeviceChild * This);
845       
846        void ( STDMETHODCALLTYPE *GetDevice )(
847            ID3D10DeviceChild * This,
848            /* [annotation] */
849            __out  ID3D10Device **ppDevice);
850       
851        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
852            ID3D10DeviceChild * This,
853            /* [annotation] */
854            __in  REFGUID guid,
855            /* [annotation] */
856            __inout  UINT *pDataSize,
857            /* [annotation] */
858            __out_bcount_opt(*pDataSize)  void *pData);
859       
860        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
861            ID3D10DeviceChild * This,
862            /* [annotation] */
863            __in  REFGUID guid,
864            /* [annotation] */
865            __in  UINT DataSize,
866            /* [annotation] */
867            __in_bcount_opt(DataSize)  const void *pData);
868       
869        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
870            ID3D10DeviceChild * This,
871            /* [annotation] */
872            __in  REFGUID guid,
873            /* [annotation] */
874            __in_opt  const IUnknown *pData);
875       
876        END_INTERFACE
877    } ID3D10DeviceChildVtbl;
878
879    interface ID3D10DeviceChild
880    {
881        CONST_VTBL struct ID3D10DeviceChildVtbl *lpVtbl;
882    };
883
884   
885
886#ifdef COBJMACROS
887
888
889#define ID3D10DeviceChild_QueryInterface(This,riid,ppvObject)   \
890    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
891
892#define ID3D10DeviceChild_AddRef(This)   \
893    ( (This)->lpVtbl -> AddRef(This) )
894
895#define ID3D10DeviceChild_Release(This)   \
896    ( (This)->lpVtbl -> Release(This) )
897
898
899#define ID3D10DeviceChild_GetDevice(This,ppDevice)   \
900    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
901
902#define ID3D10DeviceChild_GetPrivateData(This,guid,pDataSize,pData)   \
903    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
904
905#define ID3D10DeviceChild_SetPrivateData(This,guid,DataSize,pData)   \
906    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
907
908#define ID3D10DeviceChild_SetPrivateDataInterface(This,guid,pData)   \
909    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
910
911#endif /* COBJMACROS */
912
913
914#endif    /* C style interface */
915
916
917
918
919#endif    /* __ID3D10DeviceChild_INTERFACE_DEFINED__ */
920
921
922/* interface __MIDL_itf_d3d10_0000_0001 */
923/* [local] */
924
925typedef
926enum D3D10_COMPARISON_FUNC
927    {   D3D10_COMPARISON_NEVER   = 1,
928   D3D10_COMPARISON_LESS   = 2,
929   D3D10_COMPARISON_EQUAL   = 3,
930   D3D10_COMPARISON_LESS_EQUAL   = 4,
931   D3D10_COMPARISON_GREATER   = 5,
932   D3D10_COMPARISON_NOT_EQUAL   = 6,
933   D3D10_COMPARISON_GREATER_EQUAL   = 7,
934   D3D10_COMPARISON_ALWAYS   = 8
935    }    D3D10_COMPARISON_FUNC;
936
937typedef
938enum D3D10_DEPTH_WRITE_MASK
939    {   D3D10_DEPTH_WRITE_MASK_ZERO   = 0,
940   D3D10_DEPTH_WRITE_MASK_ALL   = 1
941    }    D3D10_DEPTH_WRITE_MASK;
942
943typedef
944enum D3D10_STENCIL_OP
945    {   D3D10_STENCIL_OP_KEEP   = 1,
946   D3D10_STENCIL_OP_ZERO   = 2,
947   D3D10_STENCIL_OP_REPLACE   = 3,
948   D3D10_STENCIL_OP_INCR_SAT   = 4,
949   D3D10_STENCIL_OP_DECR_SAT   = 5,
950   D3D10_STENCIL_OP_INVERT   = 6,
951   D3D10_STENCIL_OP_INCR   = 7,
952   D3D10_STENCIL_OP_DECR   = 8
953    }    D3D10_STENCIL_OP;
954
955typedef struct D3D10_DEPTH_STENCILOP_DESC
956    {
957    D3D10_STENCIL_OP StencilFailOp;
958    D3D10_STENCIL_OP StencilDepthFailOp;
959    D3D10_STENCIL_OP StencilPassOp;
960    D3D10_COMPARISON_FUNC StencilFunc;
961    }    D3D10_DEPTH_STENCILOP_DESC;
962
963typedef struct D3D10_DEPTH_STENCIL_DESC
964    {
965    BOOL DepthEnable;
966    D3D10_DEPTH_WRITE_MASK DepthWriteMask;
967    D3D10_COMPARISON_FUNC DepthFunc;
968    BOOL StencilEnable;
969    UINT8 StencilReadMask;
970    UINT8 StencilWriteMask;
971    D3D10_DEPTH_STENCILOP_DESC FrontFace;
972    D3D10_DEPTH_STENCILOP_DESC BackFace;
973    }    D3D10_DEPTH_STENCIL_DESC;
974
975
976
977extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0001_v0_0_c_ifspec;
978extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0001_v0_0_s_ifspec;
979
980#ifndef __ID3D10DepthStencilState_INTERFACE_DEFINED__
981#define __ID3D10DepthStencilState_INTERFACE_DEFINED__
982
983/* interface ID3D10DepthStencilState */
984/* [unique][local][object][uuid] */
985
986
987EXTERN_C const IID IID_ID3D10DepthStencilState;
988
989#if defined(__cplusplus) && !defined(CINTERFACE)
990   
991    MIDL_INTERFACE("2B4B1CC8-A4AD-41f8-8322-CA86FC3EC675")
992    ID3D10DepthStencilState : public ID3D10DeviceChild
993    {
994    public:
995        virtual void STDMETHODCALLTYPE GetDesc(
996            /* [annotation] */
997            __out  D3D10_DEPTH_STENCIL_DESC *pDesc) = 0;
998       
999    };
1000   
1001#else    /* C style interface */
1002
1003    typedef struct ID3D10DepthStencilStateVtbl
1004    {
1005        BEGIN_INTERFACE
1006       
1007        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1008            ID3D10DepthStencilState * This,
1009            /* [in] */ REFIID riid,
1010            /* [annotation][iid_is][out] */
1011            __RPC__deref_out  void **ppvObject);
1012       
1013        ULONG ( STDMETHODCALLTYPE *AddRef )(
1014            ID3D10DepthStencilState * This);
1015       
1016        ULONG ( STDMETHODCALLTYPE *Release )(
1017            ID3D10DepthStencilState * This);
1018       
1019        void ( STDMETHODCALLTYPE *GetDevice )(
1020            ID3D10DepthStencilState * This,
1021            /* [annotation] */
1022            __out  ID3D10Device **ppDevice);
1023       
1024        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1025            ID3D10DepthStencilState * This,
1026            /* [annotation] */
1027            __in  REFGUID guid,
1028            /* [annotation] */
1029            __inout  UINT *pDataSize,
1030            /* [annotation] */
1031            __out_bcount_opt(*pDataSize)  void *pData);
1032       
1033        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1034            ID3D10DepthStencilState * This,
1035            /* [annotation] */
1036            __in  REFGUID guid,
1037            /* [annotation] */
1038            __in  UINT DataSize,
1039            /* [annotation] */
1040            __in_bcount_opt(DataSize)  const void *pData);
1041       
1042        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1043            ID3D10DepthStencilState * This,
1044            /* [annotation] */
1045            __in  REFGUID guid,
1046            /* [annotation] */
1047            __in_opt  const IUnknown *pData);
1048       
1049        void ( STDMETHODCALLTYPE *GetDesc )(
1050            ID3D10DepthStencilState * This,
1051            /* [annotation] */
1052            __out  D3D10_DEPTH_STENCIL_DESC *pDesc);
1053       
1054        END_INTERFACE
1055    } ID3D10DepthStencilStateVtbl;
1056
1057    interface ID3D10DepthStencilState
1058    {
1059        CONST_VTBL struct ID3D10DepthStencilStateVtbl *lpVtbl;
1060    };
1061
1062   
1063
1064#ifdef COBJMACROS
1065
1066
1067#define ID3D10DepthStencilState_QueryInterface(This,riid,ppvObject)   \
1068    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1069
1070#define ID3D10DepthStencilState_AddRef(This)   \
1071    ( (This)->lpVtbl -> AddRef(This) )
1072
1073#define ID3D10DepthStencilState_Release(This)   \
1074    ( (This)->lpVtbl -> Release(This) )
1075
1076
1077#define ID3D10DepthStencilState_GetDevice(This,ppDevice)   \
1078    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1079
1080#define ID3D10DepthStencilState_GetPrivateData(This,guid,pDataSize,pData)   \
1081    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1082
1083#define ID3D10DepthStencilState_SetPrivateData(This,guid,DataSize,pData)   \
1084    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1085
1086#define ID3D10DepthStencilState_SetPrivateDataInterface(This,guid,pData)   \
1087    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1088
1089
1090#define ID3D10DepthStencilState_GetDesc(This,pDesc)   \
1091    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1092
1093#endif /* COBJMACROS */
1094
1095
1096#endif    /* C style interface */
1097
1098
1099
1100
1101#endif    /* __ID3D10DepthStencilState_INTERFACE_DEFINED__ */
1102
1103
1104/* interface __MIDL_itf_d3d10_0000_0002 */
1105/* [local] */
1106
1107typedef
1108enum D3D10_BLEND
1109    {   D3D10_BLEND_ZERO   = 1,
1110   D3D10_BLEND_ONE   = 2,
1111   D3D10_BLEND_SRC_COLOR   = 3,
1112   D3D10_BLEND_INV_SRC_COLOR   = 4,
1113   D3D10_BLEND_SRC_ALPHA   = 5,
1114   D3D10_BLEND_INV_SRC_ALPHA   = 6,
1115   D3D10_BLEND_DEST_ALPHA   = 7,
1116   D3D10_BLEND_INV_DEST_ALPHA   = 8,
1117   D3D10_BLEND_DEST_COLOR   = 9,
1118   D3D10_BLEND_INV_DEST_COLOR   = 10,
1119   D3D10_BLEND_SRC_ALPHA_SAT   = 11,
1120   D3D10_BLEND_BLEND_FACTOR   = 14,
1121   D3D10_BLEND_INV_BLEND_FACTOR   = 15,
1122   D3D10_BLEND_SRC1_COLOR   = 16,
1123   D3D10_BLEND_INV_SRC1_COLOR   = 17,
1124   D3D10_BLEND_SRC1_ALPHA   = 18,
1125   D3D10_BLEND_INV_SRC1_ALPHA   = 19
1126    }    D3D10_BLEND;
1127
1128typedef
1129enum D3D10_BLEND_OP
1130    {   D3D10_BLEND_OP_ADD   = 1,
1131   D3D10_BLEND_OP_SUBTRACT   = 2,
1132   D3D10_BLEND_OP_REV_SUBTRACT   = 3,
1133   D3D10_BLEND_OP_MIN   = 4,
1134   D3D10_BLEND_OP_MAX   = 5
1135    }    D3D10_BLEND_OP;
1136
1137typedef
1138enum D3D10_COLOR_WRITE_ENABLE
1139    {   D3D10_COLOR_WRITE_ENABLE_RED   = 1,
1140   D3D10_COLOR_WRITE_ENABLE_GREEN   = 2,
1141   D3D10_COLOR_WRITE_ENABLE_BLUE   = 4,
1142   D3D10_COLOR_WRITE_ENABLE_ALPHA   = 8,
1143   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 )
1144    }    D3D10_COLOR_WRITE_ENABLE;
1145
1146typedef struct D3D10_BLEND_DESC
1147    {
1148    BOOL AlphaToCoverageEnable;
1149    BOOL BlendEnable[ 8 ];
1150    D3D10_BLEND SrcBlend;
1151    D3D10_BLEND DestBlend;
1152    D3D10_BLEND_OP BlendOp;
1153    D3D10_BLEND SrcBlendAlpha;
1154    D3D10_BLEND DestBlendAlpha;
1155    D3D10_BLEND_OP BlendOpAlpha;
1156    UINT8 RenderTargetWriteMask[ 8 ];
1157    }    D3D10_BLEND_DESC;
1158
1159
1160
1161extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0002_v0_0_c_ifspec;
1162extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0002_v0_0_s_ifspec;
1163
1164#ifndef __ID3D10BlendState_INTERFACE_DEFINED__
1165#define __ID3D10BlendState_INTERFACE_DEFINED__
1166
1167/* interface ID3D10BlendState */
1168/* [unique][local][object][uuid] */
1169
1170
1171EXTERN_C const IID IID_ID3D10BlendState;
1172
1173#if defined(__cplusplus) && !defined(CINTERFACE)
1174   
1175    MIDL_INTERFACE("EDAD8D19-8A35-4d6d-8566-2EA276CDE161")
1176    ID3D10BlendState : public ID3D10DeviceChild
1177    {
1178    public:
1179        virtual void STDMETHODCALLTYPE GetDesc(
1180            /* [annotation] */
1181            __out  D3D10_BLEND_DESC *pDesc) = 0;
1182       
1183    };
1184   
1185#else    /* C style interface */
1186
1187    typedef struct ID3D10BlendStateVtbl
1188    {
1189        BEGIN_INTERFACE
1190       
1191        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1192            ID3D10BlendState * This,
1193            /* [in] */ REFIID riid,
1194            /* [annotation][iid_is][out] */
1195            __RPC__deref_out  void **ppvObject);
1196       
1197        ULONG ( STDMETHODCALLTYPE *AddRef )(
1198            ID3D10BlendState * This);
1199       
1200        ULONG ( STDMETHODCALLTYPE *Release )(
1201            ID3D10BlendState * This);
1202       
1203        void ( STDMETHODCALLTYPE *GetDevice )(
1204            ID3D10BlendState * This,
1205            /* [annotation] */
1206            __out  ID3D10Device **ppDevice);
1207       
1208        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1209            ID3D10BlendState * This,
1210            /* [annotation] */
1211            __in  REFGUID guid,
1212            /* [annotation] */
1213            __inout  UINT *pDataSize,
1214            /* [annotation] */
1215            __out_bcount_opt(*pDataSize)  void *pData);
1216       
1217        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1218            ID3D10BlendState * This,
1219            /* [annotation] */
1220            __in  REFGUID guid,
1221            /* [annotation] */
1222            __in  UINT DataSize,
1223            /* [annotation] */
1224            __in_bcount_opt(DataSize)  const void *pData);
1225       
1226        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1227            ID3D10BlendState * This,
1228            /* [annotation] */
1229            __in  REFGUID guid,
1230            /* [annotation] */
1231            __in_opt  const IUnknown *pData);
1232       
1233        void ( STDMETHODCALLTYPE *GetDesc )(
1234            ID3D10BlendState * This,
1235            /* [annotation] */
1236            __out  D3D10_BLEND_DESC *pDesc);
1237       
1238        END_INTERFACE
1239    } ID3D10BlendStateVtbl;
1240
1241    interface ID3D10BlendState
1242    {
1243        CONST_VTBL struct ID3D10BlendStateVtbl *lpVtbl;
1244    };
1245
1246   
1247
1248#ifdef COBJMACROS
1249
1250
1251#define ID3D10BlendState_QueryInterface(This,riid,ppvObject)   \
1252    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1253
1254#define ID3D10BlendState_AddRef(This)   \
1255    ( (This)->lpVtbl -> AddRef(This) )
1256
1257#define ID3D10BlendState_Release(This)   \
1258    ( (This)->lpVtbl -> Release(This) )
1259
1260
1261#define ID3D10BlendState_GetDevice(This,ppDevice)   \
1262    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1263
1264#define ID3D10BlendState_GetPrivateData(This,guid,pDataSize,pData)   \
1265    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1266
1267#define ID3D10BlendState_SetPrivateData(This,guid,DataSize,pData)   \
1268    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1269
1270#define ID3D10BlendState_SetPrivateDataInterface(This,guid,pData)   \
1271    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1272
1273
1274#define ID3D10BlendState_GetDesc(This,pDesc)   \
1275    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1276
1277#endif /* COBJMACROS */
1278
1279
1280#endif    /* C style interface */
1281
1282
1283
1284
1285#endif    /* __ID3D10BlendState_INTERFACE_DEFINED__ */
1286
1287
1288/* interface __MIDL_itf_d3d10_0000_0003 */
1289/* [local] */
1290
1291typedef struct D3D10_RASTERIZER_DESC
1292    {
1293    D3D10_FILL_MODE FillMode;
1294    D3D10_CULL_MODE CullMode;
1295    BOOL FrontCounterClockwise;
1296    INT DepthBias;
1297    FLOAT DepthBiasClamp;
1298    FLOAT SlopeScaledDepthBias;
1299    BOOL DepthClipEnable;
1300    BOOL ScissorEnable;
1301    BOOL MultisampleEnable;
1302    BOOL AntialiasedLineEnable;
1303    }    D3D10_RASTERIZER_DESC;
1304
1305
1306
1307extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0003_v0_0_c_ifspec;
1308extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0003_v0_0_s_ifspec;
1309
1310#ifndef __ID3D10RasterizerState_INTERFACE_DEFINED__
1311#define __ID3D10RasterizerState_INTERFACE_DEFINED__
1312
1313/* interface ID3D10RasterizerState */
1314/* [unique][local][object][uuid] */
1315
1316
1317EXTERN_C const IID IID_ID3D10RasterizerState;
1318
1319#if defined(__cplusplus) && !defined(CINTERFACE)
1320   
1321    MIDL_INTERFACE("A2A07292-89AF-4345-BE2E-C53D9FBB6E9F")
1322    ID3D10RasterizerState : public ID3D10DeviceChild
1323    {
1324    public:
1325        virtual void STDMETHODCALLTYPE GetDesc(
1326            /* [annotation] */
1327            __out  D3D10_RASTERIZER_DESC *pDesc) = 0;
1328       
1329    };
1330   
1331#else    /* C style interface */
1332
1333    typedef struct ID3D10RasterizerStateVtbl
1334    {
1335        BEGIN_INTERFACE
1336       
1337        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1338            ID3D10RasterizerState * This,
1339            /* [in] */ REFIID riid,
1340            /* [annotation][iid_is][out] */
1341            __RPC__deref_out  void **ppvObject);
1342       
1343        ULONG ( STDMETHODCALLTYPE *AddRef )(
1344            ID3D10RasterizerState * This);
1345       
1346        ULONG ( STDMETHODCALLTYPE *Release )(
1347            ID3D10RasterizerState * This);
1348       
1349        void ( STDMETHODCALLTYPE *GetDevice )(
1350            ID3D10RasterizerState * This,
1351            /* [annotation] */
1352            __out  ID3D10Device **ppDevice);
1353       
1354        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1355            ID3D10RasterizerState * This,
1356            /* [annotation] */
1357            __in  REFGUID guid,
1358            /* [annotation] */
1359            __inout  UINT *pDataSize,
1360            /* [annotation] */
1361            __out_bcount_opt(*pDataSize)  void *pData);
1362       
1363        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1364            ID3D10RasterizerState * This,
1365            /* [annotation] */
1366            __in  REFGUID guid,
1367            /* [annotation] */
1368            __in  UINT DataSize,
1369            /* [annotation] */
1370            __in_bcount_opt(DataSize)  const void *pData);
1371       
1372        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1373            ID3D10RasterizerState * This,
1374            /* [annotation] */
1375            __in  REFGUID guid,
1376            /* [annotation] */
1377            __in_opt  const IUnknown *pData);
1378       
1379        void ( STDMETHODCALLTYPE *GetDesc )(
1380            ID3D10RasterizerState * This,
1381            /* [annotation] */
1382            __out  D3D10_RASTERIZER_DESC *pDesc);
1383       
1384        END_INTERFACE
1385    } ID3D10RasterizerStateVtbl;
1386
1387    interface ID3D10RasterizerState
1388    {
1389        CONST_VTBL struct ID3D10RasterizerStateVtbl *lpVtbl;
1390    };
1391
1392   
1393
1394#ifdef COBJMACROS
1395
1396
1397#define ID3D10RasterizerState_QueryInterface(This,riid,ppvObject)   \
1398    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1399
1400#define ID3D10RasterizerState_AddRef(This)   \
1401    ( (This)->lpVtbl -> AddRef(This) )
1402
1403#define ID3D10RasterizerState_Release(This)   \
1404    ( (This)->lpVtbl -> Release(This) )
1405
1406
1407#define ID3D10RasterizerState_GetDevice(This,ppDevice)   \
1408    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1409
1410#define ID3D10RasterizerState_GetPrivateData(This,guid,pDataSize,pData)   \
1411    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1412
1413#define ID3D10RasterizerState_SetPrivateData(This,guid,DataSize,pData)   \
1414    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1415
1416#define ID3D10RasterizerState_SetPrivateDataInterface(This,guid,pData)   \
1417    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1418
1419
1420#define ID3D10RasterizerState_GetDesc(This,pDesc)   \
1421    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1422
1423#endif /* COBJMACROS */
1424
1425
1426#endif    /* C style interface */
1427
1428
1429
1430
1431#endif    /* __ID3D10RasterizerState_INTERFACE_DEFINED__ */
1432
1433
1434/* interface __MIDL_itf_d3d10_0000_0004 */
1435/* [local] */
1436
1437#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus )
1438inline UINT D3D10CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT MipLevels )
1439{ return MipSlice + ArraySlice * MipLevels; }
1440#endif
1441typedef struct D3D10_SUBRESOURCE_DATA
1442    {
1443    const void *pSysMem;
1444    UINT SysMemPitch;
1445    UINT SysMemSlicePitch;
1446    }    D3D10_SUBRESOURCE_DATA;
1447
1448
1449
1450extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0004_v0_0_c_ifspec;
1451extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0004_v0_0_s_ifspec;
1452
1453#ifndef __ID3D10Resource_INTERFACE_DEFINED__
1454#define __ID3D10Resource_INTERFACE_DEFINED__
1455
1456/* interface ID3D10Resource */
1457/* [unique][local][object][uuid] */
1458
1459
1460EXTERN_C const IID IID_ID3D10Resource;
1461
1462#if defined(__cplusplus) && !defined(CINTERFACE)
1463   
1464    MIDL_INTERFACE("9B7E4C01-342C-4106-A19F-4F2704F689F0")
1465    ID3D10Resource : public ID3D10DeviceChild
1466    {
1467    public:
1468        virtual void STDMETHODCALLTYPE GetType(
1469            /* [annotation] */
1470            __out  D3D10_RESOURCE_DIMENSION *rType) = 0;
1471       
1472        virtual void STDMETHODCALLTYPE SetEvictionPriority(
1473            /* [annotation] */
1474            __in  UINT EvictionPriority) = 0;
1475       
1476        virtual UINT STDMETHODCALLTYPE GetEvictionPriority( void) = 0;
1477       
1478    };
1479   
1480#else    /* C style interface */
1481
1482    typedef struct ID3D10ResourceVtbl
1483    {
1484        BEGIN_INTERFACE
1485       
1486        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1487            ID3D10Resource * This,
1488            /* [in] */ REFIID riid,
1489            /* [annotation][iid_is][out] */
1490            __RPC__deref_out  void **ppvObject);
1491       
1492        ULONG ( STDMETHODCALLTYPE *AddRef )(
1493            ID3D10Resource * This);
1494       
1495        ULONG ( STDMETHODCALLTYPE *Release )(
1496            ID3D10Resource * This);
1497       
1498        void ( STDMETHODCALLTYPE *GetDevice )(
1499            ID3D10Resource * This,
1500            /* [annotation] */
1501            __out  ID3D10Device **ppDevice);
1502       
1503        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1504            ID3D10Resource * This,
1505            /* [annotation] */
1506            __in  REFGUID guid,
1507            /* [annotation] */
1508            __inout  UINT *pDataSize,
1509            /* [annotation] */
1510            __out_bcount_opt(*pDataSize)  void *pData);
1511       
1512        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1513            ID3D10Resource * This,
1514            /* [annotation] */
1515            __in  REFGUID guid,
1516            /* [annotation] */
1517            __in  UINT DataSize,
1518            /* [annotation] */
1519            __in_bcount_opt(DataSize)  const void *pData);
1520       
1521        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1522            ID3D10Resource * This,
1523            /* [annotation] */
1524            __in  REFGUID guid,
1525            /* [annotation] */
1526            __in_opt  const IUnknown *pData);
1527       
1528        void ( STDMETHODCALLTYPE *GetType )(
1529            ID3D10Resource * This,
1530            /* [annotation] */
1531            __out  D3D10_RESOURCE_DIMENSION *rType);
1532       
1533        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
1534            ID3D10Resource * This,
1535            /* [annotation] */
1536            __in  UINT EvictionPriority);
1537       
1538        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
1539            ID3D10Resource * This);
1540       
1541        END_INTERFACE
1542    } ID3D10ResourceVtbl;
1543
1544    interface ID3D10Resource
1545    {
1546        CONST_VTBL struct ID3D10ResourceVtbl *lpVtbl;
1547    };
1548
1549   
1550
1551#ifdef COBJMACROS
1552
1553
1554#define ID3D10Resource_QueryInterface(This,riid,ppvObject)   \
1555    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1556
1557#define ID3D10Resource_AddRef(This)   \
1558    ( (This)->lpVtbl -> AddRef(This) )
1559
1560#define ID3D10Resource_Release(This)   \
1561    ( (This)->lpVtbl -> Release(This) )
1562
1563
1564#define ID3D10Resource_GetDevice(This,ppDevice)   \
1565    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1566
1567#define ID3D10Resource_GetPrivateData(This,guid,pDataSize,pData)   \
1568    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1569
1570#define ID3D10Resource_SetPrivateData(This,guid,DataSize,pData)   \
1571    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1572
1573#define ID3D10Resource_SetPrivateDataInterface(This,guid,pData)   \
1574    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1575
1576
1577#define ID3D10Resource_GetType(This,rType)   \
1578    ( (This)->lpVtbl -> GetType(This,rType) )
1579
1580#define ID3D10Resource_SetEvictionPriority(This,EvictionPriority)   \
1581    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
1582
1583#define ID3D10Resource_GetEvictionPriority(This)   \
1584    ( (This)->lpVtbl -> GetEvictionPriority(This) )
1585
1586#endif /* COBJMACROS */
1587
1588
1589#endif    /* C style interface */
1590
1591
1592
1593
1594#endif    /* __ID3D10Resource_INTERFACE_DEFINED__ */
1595
1596
1597/* interface __MIDL_itf_d3d10_0000_0005 */
1598/* [local] */
1599
1600typedef struct D3D10_BUFFER_DESC
1601    {
1602    UINT ByteWidth;
1603    D3D10_USAGE Usage;
1604    UINT BindFlags;
1605    UINT CPUAccessFlags;
1606    UINT MiscFlags;
1607    }    D3D10_BUFFER_DESC;
1608
1609#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus )
1610struct CD3D10_BUFFER_DESC : public D3D10_BUFFER_DESC
1611{
1612    CD3D10_BUFFER_DESC()
1613    {}
1614    explicit CD3D10_BUFFER_DESC( const D3D10_BUFFER_DESC& o ) :
1615        D3D10_BUFFER_DESC( o )
1616    {}
1617    explicit CD3D10_BUFFER_DESC(
1618        UINT byteWidth,
1619        UINT bindFlags,
1620        D3D10_USAGE usage = D3D10_USAGE_DEFAULT,
1621        UINT cpuaccessFlags = 0,
1622        UINT miscFlags = 0 )
1623    {
1624        ByteWidth = byteWidth;
1625        Usage = usage;
1626        BindFlags = bindFlags;
1627        CPUAccessFlags = cpuaccessFlags ;
1628        MiscFlags = miscFlags;
1629    }
1630    ~CD3D10_BUFFER_DESC() {}
1631    operator const D3D10_BUFFER_DESC&() const { return *this; }
1632};
1633#endif
1634
1635
1636extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0005_v0_0_c_ifspec;
1637extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0005_v0_0_s_ifspec;
1638
1639#ifndef __ID3D10Buffer_INTERFACE_DEFINED__
1640#define __ID3D10Buffer_INTERFACE_DEFINED__
1641
1642/* interface ID3D10Buffer */
1643/* [unique][local][object][uuid] */
1644
1645
1646EXTERN_C const IID IID_ID3D10Buffer;
1647
1648#if defined(__cplusplus) && !defined(CINTERFACE)
1649   
1650    MIDL_INTERFACE("9B7E4C02-342C-4106-A19F-4F2704F689F0")
1651    ID3D10Buffer : public ID3D10Resource
1652    {
1653    public:
1654        virtual HRESULT STDMETHODCALLTYPE Map(
1655            /* [annotation] */
1656            __in  D3D10_MAP MapType,
1657            /* [annotation] */
1658            __in  UINT MapFlags,
1659            /* [annotation] */
1660            __out  void **ppData) = 0;
1661       
1662        virtual void STDMETHODCALLTYPE Unmap( void) = 0;
1663       
1664        virtual void STDMETHODCALLTYPE GetDesc(
1665            /* [annotation] */
1666            __out  D3D10_BUFFER_DESC *pDesc) = 0;
1667       
1668    };
1669   
1670#else    /* C style interface */
1671
1672    typedef struct ID3D10BufferVtbl
1673    {
1674        BEGIN_INTERFACE
1675       
1676        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1677            ID3D10Buffer * This,
1678            /* [in] */ REFIID riid,
1679            /* [annotation][iid_is][out] */
1680            __RPC__deref_out  void **ppvObject);
1681       
1682        ULONG ( STDMETHODCALLTYPE *AddRef )(
1683            ID3D10Buffer * This);
1684       
1685        ULONG ( STDMETHODCALLTYPE *Release )(
1686            ID3D10Buffer * This);
1687       
1688        void ( STDMETHODCALLTYPE *GetDevice )(
1689            ID3D10Buffer * This,
1690            /* [annotation] */
1691            __out  ID3D10Device **ppDevice);
1692       
1693        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1694            ID3D10Buffer * This,
1695            /* [annotation] */
1696            __in  REFGUID guid,
1697            /* [annotation] */
1698            __inout  UINT *pDataSize,
1699            /* [annotation] */
1700            __out_bcount_opt(*pDataSize)  void *pData);
1701       
1702        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1703            ID3D10Buffer * This,
1704            /* [annotation] */
1705            __in  REFGUID guid,
1706            /* [annotation] */
1707            __in  UINT DataSize,
1708            /* [annotation] */
1709            __in_bcount_opt(DataSize)  const void *pData);
1710       
1711        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1712            ID3D10Buffer * This,
1713            /* [annotation] */
1714            __in  REFGUID guid,
1715            /* [annotation] */
1716            __in_opt  const IUnknown *pData);
1717       
1718        void ( STDMETHODCALLTYPE *GetType )(
1719            ID3D10Buffer * This,
1720            /* [annotation] */
1721            __out  D3D10_RESOURCE_DIMENSION *rType);
1722       
1723        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
1724            ID3D10Buffer * This,
1725            /* [annotation] */
1726            __in  UINT EvictionPriority);
1727       
1728        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
1729            ID3D10Buffer * This);
1730       
1731        HRESULT ( STDMETHODCALLTYPE *Map )(
1732            ID3D10Buffer * This,
1733            /* [annotation] */
1734            __in  D3D10_MAP MapType,
1735            /* [annotation] */
1736            __in  UINT MapFlags,
1737            /* [annotation] */
1738            __out  void **ppData);
1739       
1740        void ( STDMETHODCALLTYPE *Unmap )(
1741            ID3D10Buffer * This);
1742       
1743        void ( STDMETHODCALLTYPE *GetDesc )(
1744            ID3D10Buffer * This,
1745            /* [annotation] */
1746            __out  D3D10_BUFFER_DESC *pDesc);
1747       
1748        END_INTERFACE
1749    } ID3D10BufferVtbl;
1750
1751    interface ID3D10Buffer
1752    {
1753        CONST_VTBL struct ID3D10BufferVtbl *lpVtbl;
1754    };
1755
1756   
1757
1758#ifdef COBJMACROS
1759
1760
1761#define ID3D10Buffer_QueryInterface(This,riid,ppvObject)   \
1762    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1763
1764#define ID3D10Buffer_AddRef(This)   \
1765    ( (This)->lpVtbl -> AddRef(This) )
1766
1767#define ID3D10Buffer_Release(This)   \
1768    ( (This)->lpVtbl -> Release(This) )
1769
1770
1771#define ID3D10Buffer_GetDevice(This,ppDevice)   \
1772    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1773
1774#define ID3D10Buffer_GetPrivateData(This,guid,pDataSize,pData)   \
1775    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1776
1777#define ID3D10Buffer_SetPrivateData(This,guid,DataSize,pData)   \
1778    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1779
1780#define ID3D10Buffer_SetPrivateDataInterface(This,guid,pData)   \
1781    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1782
1783
1784#define ID3D10Buffer_GetType(This,rType)   \
1785    ( (This)->lpVtbl -> GetType(This,rType) )
1786
1787#define ID3D10Buffer_SetEvictionPriority(This,EvictionPriority)   \
1788    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
1789
1790#define ID3D10Buffer_GetEvictionPriority(This)   \
1791    ( (This)->lpVtbl -> GetEvictionPriority(This) )
1792
1793
1794#define ID3D10Buffer_Map(This,MapType,MapFlags,ppData)   \
1795    ( (This)->lpVtbl -> Map(This,MapType,MapFlags,ppData) )
1796
1797#define ID3D10Buffer_Unmap(This)   \
1798    ( (This)->lpVtbl -> Unmap(This) )
1799
1800#define ID3D10Buffer_GetDesc(This,pDesc)   \
1801    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1802
1803#endif /* COBJMACROS */
1804
1805
1806#endif    /* C style interface */
1807
1808
1809
1810
1811#endif    /* __ID3D10Buffer_INTERFACE_DEFINED__ */
1812
1813
1814/* interface __MIDL_itf_d3d10_0000_0006 */
1815/* [local] */
1816
1817typedef struct D3D10_TEXTURE1D_DESC
1818    {
1819    UINT Width;
1820    UINT MipLevels;
1821    UINT ArraySize;
1822    DXGI_FORMAT Format;
1823    D3D10_USAGE Usage;
1824    UINT BindFlags;
1825    UINT CPUAccessFlags;
1826    UINT MiscFlags;
1827    }    D3D10_TEXTURE1D_DESC;
1828
1829#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus )
1830struct CD3D10_TEXTURE1D_DESC : public D3D10_TEXTURE1D_DESC
1831{
1832    CD3D10_TEXTURE1D_DESC()
1833    {}
1834    explicit CD3D10_TEXTURE1D_DESC( const D3D10_TEXTURE1D_DESC& o ) :
1835        D3D10_TEXTURE1D_DESC( o )
1836    {}
1837    explicit CD3D10_TEXTURE1D_DESC(
1838        DXGI_FORMAT format,
1839        UINT width,
1840        UINT arraySize = 1,
1841        UINT mipLevels = 0,
1842        UINT bindFlags = D3D10_BIND_SHADER_RESOURCE,
1843        D3D10_USAGE usage = D3D10_USAGE_DEFAULT,
1844        UINT cpuaccessFlags= 0,
1845        UINT miscFlags = 0 )
1846    {
1847        Width = width;
1848        MipLevels = mipLevels;
1849        ArraySize = arraySize;
1850        Format = format;
1851        Usage = usage;
1852        BindFlags = bindFlags;
1853        CPUAccessFlags = cpuaccessFlags;
1854        MiscFlags = miscFlags;
1855    }
1856    ~CD3D10_TEXTURE1D_DESC() {}
1857    operator const D3D10_TEXTURE1D_DESC&() const { return *this; }
1858};
1859#endif
1860
1861
1862extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0006_v0_0_c_ifspec;
1863extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0006_v0_0_s_ifspec;
1864
1865#ifndef __ID3D10Texture1D_INTERFACE_DEFINED__
1866#define __ID3D10Texture1D_INTERFACE_DEFINED__
1867
1868/* interface ID3D10Texture1D */
1869/* [unique][local][object][uuid] */
1870
1871
1872EXTERN_C const IID IID_ID3D10Texture1D;
1873
1874#if defined(__cplusplus) && !defined(CINTERFACE)
1875   
1876    MIDL_INTERFACE("9B7E4C03-342C-4106-A19F-4F2704F689F0")
1877    ID3D10Texture1D : public ID3D10Resource
1878    {
1879    public:
1880        virtual HRESULT STDMETHODCALLTYPE Map(
1881            /* [annotation] */
1882            __in  UINT Subresource,
1883            /* [annotation] */
1884            __in  D3D10_MAP MapType,
1885            /* [annotation] */
1886            __in  UINT MapFlags,
1887            /* [annotation] */
1888            __out  void **ppData) = 0;
1889       
1890        virtual void STDMETHODCALLTYPE Unmap(
1891            /* [annotation] */
1892            __in  UINT Subresource) = 0;
1893       
1894        virtual void STDMETHODCALLTYPE GetDesc(
1895            /* [annotation] */
1896            __out  D3D10_TEXTURE1D_DESC *pDesc) = 0;
1897       
1898    };
1899   
1900#else    /* C style interface */
1901
1902    typedef struct ID3D10Texture1DVtbl
1903    {
1904        BEGIN_INTERFACE
1905       
1906        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1907            ID3D10Texture1D * This,
1908            /* [in] */ REFIID riid,
1909            /* [annotation][iid_is][out] */
1910            __RPC__deref_out  void **ppvObject);
1911       
1912        ULONG ( STDMETHODCALLTYPE *AddRef )(
1913            ID3D10Texture1D * This);
1914       
1915        ULONG ( STDMETHODCALLTYPE *Release )(
1916            ID3D10Texture1D * This);
1917       
1918        void ( STDMETHODCALLTYPE *GetDevice )(
1919            ID3D10Texture1D * This,
1920            /* [annotation] */
1921            __out  ID3D10Device **ppDevice);
1922       
1923        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1924            ID3D10Texture1D * This,
1925            /* [annotation] */
1926            __in  REFGUID guid,
1927            /* [annotation] */
1928            __inout  UINT *pDataSize,
1929            /* [annotation] */
1930            __out_bcount_opt(*pDataSize)  void *pData);
1931       
1932        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1933            ID3D10Texture1D * This,
1934            /* [annotation] */
1935            __in  REFGUID guid,
1936            /* [annotation] */
1937            __in  UINT DataSize,
1938            /* [annotation] */
1939            __in_bcount_opt(DataSize)  const void *pData);
1940       
1941        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1942            ID3D10Texture1D * This,
1943            /* [annotation] */
1944            __in  REFGUID guid,
1945            /* [annotation] */
1946            __in_opt  const IUnknown *pData);
1947       
1948        void ( STDMETHODCALLTYPE *GetType )(
1949            ID3D10Texture1D * This,
1950            /* [annotation] */
1951            __out  D3D10_RESOURCE_DIMENSION *rType);
1952       
1953        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
1954            ID3D10Texture1D * This,
1955            /* [annotation] */
1956            __in  UINT EvictionPriority);
1957       
1958        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
1959            ID3D10Texture1D * This);
1960       
1961        HRESULT ( STDMETHODCALLTYPE *Map )(
1962            ID3D10Texture1D * This,
1963            /* [annotation] */
1964            __in  UINT Subresource,
1965            /* [annotation] */
1966            __in  D3D10_MAP MapType,
1967            /* [annotation] */
1968            __in  UINT MapFlags,
1969            /* [annotation] */
1970            __out  void **ppData);
1971       
1972        void ( STDMETHODCALLTYPE *Unmap )(
1973            ID3D10Texture1D * This,
1974            /* [annotation] */
1975            __in  UINT Subresource);
1976       
1977        void ( STDMETHODCALLTYPE *GetDesc )(
1978            ID3D10Texture1D * This,
1979            /* [annotation] */
1980            __out  D3D10_TEXTURE1D_DESC *pDesc);
1981       
1982        END_INTERFACE
1983    } ID3D10Texture1DVtbl;
1984
1985    interface ID3D10Texture1D
1986    {
1987        CONST_VTBL struct ID3D10Texture1DVtbl *lpVtbl;
1988    };
1989
1990   
1991
1992#ifdef COBJMACROS
1993
1994
1995#define ID3D10Texture1D_QueryInterface(This,riid,ppvObject)   \
1996    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1997
1998#define ID3D10Texture1D_AddRef(This)   \
1999    ( (This)->lpVtbl -> AddRef(This) )
2000
2001#define ID3D10Texture1D_Release(This)   \
2002    ( (This)->lpVtbl -> Release(This) )
2003
2004
2005#define ID3D10Texture1D_GetDevice(This,ppDevice)   \
2006    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2007
2008#define ID3D10Texture1D_GetPrivateData(This,guid,pDataSize,pData)   \
2009    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2010
2011#define ID3D10Texture1D_SetPrivateData(This,guid,DataSize,pData)   \
2012    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2013
2014#define ID3D10Texture1D_SetPrivateDataInterface(This,guid,pData)   \
2015    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2016
2017
2018#define ID3D10Texture1D_GetType(This,rType)   \
2019    ( (This)->lpVtbl -> GetType(This,rType) )
2020
2021#define ID3D10Texture1D_SetEvictionPriority(This,EvictionPriority)   \
2022    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2023
2024#define ID3D10Texture1D_GetEvictionPriority(This)   \
2025    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2026
2027
2028#define ID3D10Texture1D_Map(This,Subresource,MapType,MapFlags,ppData)   \
2029    ( (This)->lpVtbl -> Map(This,Subresource,MapType,MapFlags,ppData) )
2030
2031#define ID3D10Texture1D_Unmap(This,Subresource)   \
2032    ( (This)->lpVtbl -> Unmap(This,Subresource) )
2033
2034#define ID3D10Texture1D_GetDesc(This,pDesc)   \
2035    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2036
2037#endif /* COBJMACROS */
2038
2039
2040#endif    /* C style interface */
2041
2042
2043
2044
2045#endif    /* __ID3D10Texture1D_INTERFACE_DEFINED__ */
2046
2047
2048/* interface __MIDL_itf_d3d10_0000_0007 */
2049/* [local] */
2050
2051typedef struct D3D10_TEXTURE2D_DESC
2052    {
2053    UINT Width;
2054    UINT Height;
2055    UINT MipLevels;
2056    UINT ArraySize;
2057    DXGI_FORMAT Format;
2058    DXGI_SAMPLE_DESC SampleDesc;
2059    D3D10_USAGE Usage;
2060    UINT BindFlags;
2061    UINT CPUAccessFlags;
2062    UINT MiscFlags;
2063    }    D3D10_TEXTURE2D_DESC;
2064
2065#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus )
2066struct CD3D10_TEXTURE2D_DESC : public D3D10_TEXTURE2D_DESC
2067{
2068    CD3D10_TEXTURE2D_DESC()
2069    {}
2070    explicit CD3D10_TEXTURE2D_DESC( const D3D10_TEXTURE2D_DESC& o ) :
2071        D3D10_TEXTURE2D_DESC( o )
2072    {}
2073    explicit CD3D10_TEXTURE2D_DESC(
2074        DXGI_FORMAT format,
2075        UINT width,
2076        UINT height,
2077        UINT arraySize = 1,
2078        UINT mipLevels = 0,
2079        UINT bindFlags = D3D10_BIND_SHADER_RESOURCE,
2080        D3D10_USAGE usage = D3D10_USAGE_DEFAULT,
2081        UINT cpuaccessFlags = 0,
2082        UINT sampleCount = 1,
2083        UINT sampleQuality = 0,
2084        UINT miscFlags = 0 )
2085    {
2086        Width = width;
2087        Height = height;
2088        MipLevels = mipLevels;
2089        ArraySize = arraySize;
2090        Format = format;
2091        SampleDesc.Count = sampleCount;
2092        SampleDesc.Quality = sampleQuality;
2093        Usage = usage;
2094        BindFlags = bindFlags;
2095        CPUAccessFlags = cpuaccessFlags;
2096        MiscFlags = miscFlags;
2097    }
2098    ~CD3D10_TEXTURE2D_DESC() {}
2099    operator const D3D10_TEXTURE2D_DESC&() const { return *this; }
2100};
2101#endif
2102typedef struct D3D10_MAPPED_TEXTURE2D
2103    {
2104    void *pData;
2105    UINT RowPitch;
2106    }    D3D10_MAPPED_TEXTURE2D;
2107
2108
2109
2110extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0007_v0_0_c_ifspec;
2111extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0007_v0_0_s_ifspec;
2112
2113#ifndef __ID3D10Texture2D_INTERFACE_DEFINED__
2114#define __ID3D10Texture2D_INTERFACE_DEFINED__
2115
2116/* interface ID3D10Texture2D */
2117/* [unique][local][object][uuid] */
2118
2119
2120EXTERN_C const IID IID_ID3D10Texture2D;
2121
2122#if defined(__cplusplus) && !defined(CINTERFACE)
2123   
2124    MIDL_INTERFACE("9B7E4C04-342C-4106-A19F-4F2704F689F0")
2125    ID3D10Texture2D : public ID3D10Resource
2126    {
2127    public:
2128        virtual HRESULT STDMETHODCALLTYPE Map(
2129            /* [annotation] */
2130            __in  UINT Subresource,
2131            /* [annotation] */
2132            __in  D3D10_MAP MapType,
2133            /* [annotation] */
2134            __in  UINT MapFlags,
2135            /* [annotation] */
2136            __out  D3D10_MAPPED_TEXTURE2D *pMappedTex2D) = 0;
2137       
2138        virtual void STDMETHODCALLTYPE Unmap(
2139            /* [annotation] */
2140            __in  UINT Subresource) = 0;
2141       
2142        virtual void STDMETHODCALLTYPE GetDesc(
2143            /* [annotation] */
2144            __out  D3D10_TEXTURE2D_DESC *pDesc) = 0;
2145       
2146    };
2147   
2148#else    /* C style interface */
2149
2150    typedef struct ID3D10Texture2DVtbl
2151    {
2152        BEGIN_INTERFACE
2153       
2154        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2155            ID3D10Texture2D * This,
2156            /* [in] */ REFIID riid,
2157            /* [annotation][iid_is][out] */
2158            __RPC__deref_out  void **ppvObject);
2159       
2160        ULONG ( STDMETHODCALLTYPE *AddRef )(
2161            ID3D10Texture2D * This);
2162       
2163        ULONG ( STDMETHODCALLTYPE *Release )(
2164            ID3D10Texture2D * This);
2165       
2166        void ( STDMETHODCALLTYPE *GetDevice )(
2167            ID3D10Texture2D * This,
2168            /* [annotation] */
2169            __out  ID3D10Device **ppDevice);
2170       
2171        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2172            ID3D10Texture2D * This,
2173            /* [annotation] */
2174            __in  REFGUID guid,
2175            /* [annotation] */
2176            __inout  UINT *pDataSize,
2177            /* [annotation] */
2178            __out_bcount_opt(*pDataSize)  void *pData);
2179       
2180        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2181            ID3D10Texture2D * This,
2182            /* [annotation] */
2183            __in  REFGUID guid,
2184            /* [annotation] */
2185            __in  UINT DataSize,
2186            /* [annotation] */
2187            __in_bcount_opt(DataSize)  const void *pData);
2188       
2189        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2190            ID3D10Texture2D * This,
2191            /* [annotation] */
2192            __in  REFGUID guid,
2193            /* [annotation] */
2194            __in_opt  const IUnknown *pData);
2195       
2196        void ( STDMETHODCALLTYPE *GetType )(
2197            ID3D10Texture2D * This,
2198            /* [annotation] */
2199            __out  D3D10_RESOURCE_DIMENSION *rType);
2200       
2201        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
2202            ID3D10Texture2D * This,
2203            /* [annotation] */
2204            __in  UINT EvictionPriority);
2205       
2206        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
2207            ID3D10Texture2D * This);
2208       
2209        HRESULT ( STDMETHODCALLTYPE *Map )(
2210            ID3D10Texture2D * This,
2211            /* [annotation] */
2212            __in  UINT Subresource,
2213            /* [annotation] */
2214            __in  D3D10_MAP MapType,
2215            /* [annotation] */
2216            __in  UINT MapFlags,
2217            /* [annotation] */
2218            __out  D3D10_MAPPED_TEXTURE2D *pMappedTex2D);
2219       
2220        void ( STDMETHODCALLTYPE *Unmap )(
2221            ID3D10Texture2D * This,
2222            /* [annotation] */
2223            __in  UINT Subresource);
2224       
2225        void ( STDMETHODCALLTYPE *GetDesc )(
2226            ID3D10Texture2D * This,
2227            /* [annotation] */
2228            __out  D3D10_TEXTURE2D_DESC *pDesc);
2229       
2230        END_INTERFACE
2231    } ID3D10Texture2DVtbl;
2232
2233    interface ID3D10Texture2D
2234    {
2235        CONST_VTBL struct ID3D10Texture2DVtbl *lpVtbl;
2236    };
2237
2238   
2239
2240#ifdef COBJMACROS
2241
2242
2243#define ID3D10Texture2D_QueryInterface(This,riid,ppvObject)   \
2244    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2245
2246#define ID3D10Texture2D_AddRef(This)   \
2247    ( (This)->lpVtbl -> AddRef(This) )
2248
2249#define ID3D10Texture2D_Release(This)   \
2250    ( (This)->lpVtbl -> Release(This) )
2251
2252
2253#define ID3D10Texture2D_GetDevice(This,ppDevice)   \
2254    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2255
2256#define ID3D10Texture2D_GetPrivateData(This,guid,pDataSize,pData)   \
2257    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2258
2259#define ID3D10Texture2D_SetPrivateData(This,guid,DataSize,pData)   \
2260    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2261
2262#define ID3D10Texture2D_SetPrivateDataInterface(This,guid,pData)   \
2263    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2264
2265
2266#define ID3D10Texture2D_GetType(This,rType)   \
2267    ( (This)->lpVtbl -> GetType(This,rType) )
2268
2269#define ID3D10Texture2D_SetEvictionPriority(This,EvictionPriority)   \
2270    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2271
2272#define ID3D10Texture2D_GetEvictionPriority(This)   \
2273    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2274
2275
2276#define ID3D10Texture2D_Map(This,Subresource,MapType,MapFlags,pMappedTex2D)   \
2277    ( (This)->lpVtbl -> Map(This,Subresource,MapType,MapFlags,pMappedTex2D) )
2278
2279#define ID3D10Texture2D_Unmap(This,Subresource)   \
2280    ( (This)->lpVtbl -> Unmap(This,Subresource) )
2281
2282#define ID3D10Texture2D_GetDesc(This,pDesc)   \
2283    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2284
2285#endif /* COBJMACROS */
2286
2287
2288#endif    /* C style interface */
2289
2290
2291
2292
2293#endif    /* __ID3D10Texture2D_INTERFACE_DEFINED__ */
2294
2295
2296/* interface __MIDL_itf_d3d10_0000_0008 */
2297/* [local] */
2298
2299typedef struct D3D10_TEXTURE3D_DESC
2300    {
2301    UINT Width;
2302    UINT Height;
2303    UINT Depth;
2304    UINT MipLevels;
2305    DXGI_FORMAT Format;
2306    D3D10_USAGE Usage;
2307    UINT BindFlags;
2308    UINT CPUAccessFlags;
2309    UINT MiscFlags;
2310    }    D3D10_TEXTURE3D_DESC;
2311
2312#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus )
2313struct CD3D10_TEXTURE3D_DESC : public D3D10_TEXTURE3D_DESC
2314{
2315    CD3D10_TEXTURE3D_DESC()
2316    {}
2317    explicit CD3D10_TEXTURE3D_DESC( const D3D10_TEXTURE3D_DESC& o ) :
2318        D3D10_TEXTURE3D_DESC( o )
2319    {}
2320    explicit CD3D10_TEXTURE3D_DESC(
2321        DXGI_FORMAT format,
2322        UINT width,
2323        UINT height,
2324        UINT depth,
2325        UINT mipLevels = 0,
2326        UINT bindFlags = D3D10_BIND_SHADER_RESOURCE,
2327        D3D10_USAGE usage = D3D10_USAGE_DEFAULT,
2328        UINT cpuaccessFlags = 0,
2329        UINT miscFlags = 0 )
2330    {
2331        Width = width;
2332        Height = height;
2333        Depth = depth;
2334        MipLevels = mipLevels;
2335        Format = format;
2336        Usage = usage;
2337        BindFlags = bindFlags;
2338        CPUAccessFlags = cpuaccessFlags;
2339        MiscFlags = miscFlags;
2340    }
2341    ~CD3D10_TEXTURE3D_DESC() {}
2342    operator const D3D10_TEXTURE3D_DESC&() const { return *this; }
2343};
2344#endif
2345typedef struct D3D10_MAPPED_TEXTURE3D
2346    {
2347    void *pData;
2348    UINT RowPitch;
2349    UINT DepthPitch;
2350    }    D3D10_MAPPED_TEXTURE3D;
2351
2352
2353
2354extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0008_v0_0_c_ifspec;
2355extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0008_v0_0_s_ifspec;
2356
2357#ifndef __ID3D10Texture3D_INTERFACE_DEFINED__
2358#define __ID3D10Texture3D_INTERFACE_DEFINED__
2359
2360/* interface ID3D10Texture3D */
2361/* [unique][local][object][uuid] */
2362
2363
2364EXTERN_C const IID IID_ID3D10Texture3D;
2365
2366#if defined(__cplusplus) && !defined(CINTERFACE)
2367   
2368    MIDL_INTERFACE("9B7E4C05-342C-4106-A19F-4F2704F689F0")
2369    ID3D10Texture3D : public ID3D10Resource
2370    {
2371    public:
2372        virtual HRESULT STDMETHODCALLTYPE Map(
2373            /* [annotation] */
2374            __in  UINT Subresource,
2375            /* [annotation] */
2376            __in  D3D10_MAP MapType,
2377            /* [annotation] */
2378            __in  UINT MapFlags,
2379            /* [annotation] */
2380            __out  D3D10_MAPPED_TEXTURE3D *pMappedTex3D) = 0;
2381       
2382        virtual void STDMETHODCALLTYPE Unmap(
2383            /* [annotation] */
2384            __in  UINT Subresource) = 0;
2385       
2386        virtual void STDMETHODCALLTYPE GetDesc(
2387            /* [annotation] */
2388            __out  D3D10_TEXTURE3D_DESC *pDesc) = 0;
2389       
2390    };
2391   
2392#else    /* C style interface */
2393
2394    typedef struct ID3D10Texture3DVtbl
2395    {
2396        BEGIN_INTERFACE
2397       
2398        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2399            ID3D10Texture3D * This,
2400            /* [in] */ REFIID riid,
2401            /* [annotation][iid_is][out] */
2402            __RPC__deref_out  void **ppvObject);
2403       
2404        ULONG ( STDMETHODCALLTYPE *AddRef )(
2405            ID3D10Texture3D * This);
2406       
2407        ULONG ( STDMETHODCALLTYPE *Release )(
2408            ID3D10Texture3D * This);
2409       
2410        void ( STDMETHODCALLTYPE *GetDevice )(
2411            ID3D10Texture3D * This,
2412            /* [annotation] */
2413            __out  ID3D10Device **ppDevice);
2414       
2415        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2416            ID3D10Texture3D * This,
2417            /* [annotation] */
2418            __in  REFGUID guid,
2419            /* [annotation] */
2420            __inout  UINT *pDataSize,
2421            /* [annotation] */
2422            __out_bcount_opt(*pDataSize)  void *pData);
2423       
2424        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2425            ID3D10Texture3D * This,
2426            /* [annotation] */
2427            __in  REFGUID guid,
2428            /* [annotation] */
2429            __in  UINT DataSize,
2430            /* [annotation] */
2431            __in_bcount_opt(DataSize)  const void *pData);
2432       
2433        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2434            ID3D10Texture3D * This,
2435            /* [annotation] */
2436            __in  REFGUID guid,
2437            /* [annotation] */
2438            __in_opt  const IUnknown *pData);
2439       
2440        void ( STDMETHODCALLTYPE *GetType )(
2441            ID3D10Texture3D * This,
2442            /* [annotation] */
2443            __out  D3D10_RESOURCE_DIMENSION *rType);
2444       
2445        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
2446            ID3D10Texture3D * This,
2447            /* [annotation] */
2448            __in  UINT EvictionPriority);
2449       
2450        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
2451            ID3D10Texture3D * This);
2452       
2453        HRESULT ( STDMETHODCALLTYPE *Map )(
2454            ID3D10Texture3D * This,
2455            /* [annotation] */
2456            __in  UINT Subresource,
2457            /* [annotation] */
2458            __in  D3D10_MAP MapType,
2459            /* [annotation] */
2460            __in  UINT MapFlags,
2461            /* [annotation] */
2462            __out  D3D10_MAPPED_TEXTURE3D *pMappedTex3D);
2463       
2464        void ( STDMETHODCALLTYPE *Unmap )(
2465            ID3D10Texture3D * This,
2466            /* [annotation] */
2467            __in  UINT Subresource);
2468       
2469        void ( STDMETHODCALLTYPE *GetDesc )(
2470            ID3D10Texture3D * This,
2471            /* [annotation] */
2472            __out  D3D10_TEXTURE3D_DESC *pDesc);
2473       
2474        END_INTERFACE
2475    } ID3D10Texture3DVtbl;
2476
2477    interface ID3D10Texture3D
2478    {
2479        CONST_VTBL struct ID3D10Texture3DVtbl *lpVtbl;
2480    };
2481
2482   
2483
2484#ifdef COBJMACROS
2485
2486
2487#define ID3D10Texture3D_QueryInterface(This,riid,ppvObject)   \
2488    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2489
2490#define ID3D10Texture3D_AddRef(This)   \
2491    ( (This)->lpVtbl -> AddRef(This) )
2492
2493#define ID3D10Texture3D_Release(This)   \
2494    ( (This)->lpVtbl -> Release(This) )
2495
2496
2497#define ID3D10Texture3D_GetDevice(This,ppDevice)   \
2498    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2499
2500#define ID3D10Texture3D_GetPrivateData(This,guid,pDataSize,pData)   \
2501    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2502
2503#define ID3D10Texture3D_SetPrivateData(This,guid,DataSize,pData)   \
2504    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2505
2506#define ID3D10Texture3D_SetPrivateDataInterface(This,guid,pData)   \
2507    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2508
2509
2510#define ID3D10Texture3D_GetType(This,rType)   \
2511    ( (This)->lpVtbl -> GetType(This,rType) )
2512
2513#define ID3D10Texture3D_SetEvictionPriority(This,EvictionPriority)   \
2514    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2515
2516#define ID3D10Texture3D_GetEvictionPriority(This)   \
2517    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2518
2519
2520#define ID3D10Texture3D_Map(This,Subresource,MapType,MapFlags,pMappedTex3D)   \
2521    ( (This)->lpVtbl -> Map(This,Subresource,MapType,MapFlags,pMappedTex3D) )
2522
2523#define ID3D10Texture3D_Unmap(This,Subresource)   \
2524    ( (This)->lpVtbl -> Unmap(This,Subresource) )
2525
2526#define ID3D10Texture3D_GetDesc(This,pDesc)   \
2527    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2528
2529#endif /* COBJMACROS */
2530
2531
2532#endif    /* C style interface */
2533
2534
2535
2536
2537#endif    /* __ID3D10Texture3D_INTERFACE_DEFINED__ */
2538
2539
2540/* interface __MIDL_itf_d3d10_0000_0009 */
2541/* [local] */
2542
2543typedef
2544enum D3D10_TEXTURECUBE_FACE
2545    {   D3D10_TEXTURECUBE_FACE_POSITIVE_X   = 0,
2546   D3D10_TEXTURECUBE_FACE_NEGATIVE_X   = 1,
2547   D3D10_TEXTURECUBE_FACE_POSITIVE_Y   = 2,
2548   D3D10_TEXTURECUBE_FACE_NEGATIVE_Y   = 3,
2549   D3D10_TEXTURECUBE_FACE_POSITIVE_Z   = 4,
2550   D3D10_TEXTURECUBE_FACE_NEGATIVE_Z   = 5
2551    }    D3D10_TEXTURECUBE_FACE;
2552
2553
2554
2555extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0009_v0_0_c_ifspec;
2556extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0009_v0_0_s_ifspec;
2557
2558#ifndef __ID3D10View_INTERFACE_DEFINED__
2559#define __ID3D10View_INTERFACE_DEFINED__
2560
2561/* interface ID3D10View */
2562/* [unique][local][object][uuid] */
2563
2564
2565EXTERN_C const IID IID_ID3D10View;
2566
2567#if defined(__cplusplus) && !defined(CINTERFACE)
2568   
2569    MIDL_INTERFACE("C902B03F-60A7-49BA-9936-2A3AB37A7E33")
2570    ID3D10View : public ID3D10DeviceChild
2571    {
2572    public:
2573        virtual void STDMETHODCALLTYPE GetResource(
2574            /* [annotation] */
2575            __out  ID3D10Resource **ppResource) = 0;
2576       
2577    };
2578   
2579#else    /* C style interface */
2580
2581    typedef struct ID3D10ViewVtbl
2582    {
2583        BEGIN_INTERFACE
2584       
2585        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2586            ID3D10View * This,
2587            /* [in] */ REFIID riid,
2588            /* [annotation][iid_is][out] */
2589            __RPC__deref_out  void **ppvObject);
2590       
2591        ULONG ( STDMETHODCALLTYPE *AddRef )(
2592            ID3D10View * This);
2593       
2594        ULONG ( STDMETHODCALLTYPE *Release )(
2595            ID3D10View * This);
2596       
2597        void ( STDMETHODCALLTYPE *GetDevice )(
2598            ID3D10View * This,
2599            /* [annotation] */
2600            __out  ID3D10Device **ppDevice);
2601       
2602        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2603            ID3D10View * This,
2604            /* [annotation] */
2605            __in  REFGUID guid,
2606            /* [annotation] */
2607            __inout  UINT *pDataSize,
2608            /* [annotation] */
2609            __out_bcount_opt(*pDataSize)  void *pData);
2610       
2611        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2612            ID3D10View * This,
2613            /* [annotation] */
2614            __in  REFGUID guid,
2615            /* [annotation] */
2616            __in  UINT DataSize,
2617            /* [annotation] */
2618            __in_bcount_opt(DataSize)  const void *pData);
2619       
2620        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2621            ID3D10View * This,
2622            /* [annotation] */
2623            __in  REFGUID guid,
2624            /* [annotation] */
2625            __in_opt  const IUnknown *pData);
2626       
2627        void ( STDMETHODCALLTYPE *GetResource )(
2628            ID3D10View * This,
2629            /* [annotation] */
2630            __out  ID3D10Resource **ppResource);
2631       
2632        END_INTERFACE
2633    } ID3D10ViewVtbl;
2634
2635    interface ID3D10View
2636    {
2637        CONST_VTBL struct ID3D10ViewVtbl *lpVtbl;
2638    };
2639
2640   
2641
2642#ifdef COBJMACROS
2643
2644
2645#define ID3D10View_QueryInterface(This,riid,ppvObject)   \
2646    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2647
2648#define ID3D10View_AddRef(This)   \
2649    ( (This)->lpVtbl -> AddRef(This) )
2650
2651#define ID3D10View_Release(This)   \
2652    ( (This)->lpVtbl -> Release(This) )
2653
2654
2655#define ID3D10View_GetDevice(This,ppDevice)   \
2656    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2657
2658#define ID3D10View_GetPrivateData(This,guid,pDataSize,pData)   \
2659    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2660
2661#define ID3D10View_SetPrivateData(This,guid,DataSize,pData)   \
2662    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2663
2664#define ID3D10View_SetPrivateDataInterface(This,guid,pData)   \
2665    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2666
2667
2668#define ID3D10View_GetResource(This,ppResource)   \
2669    ( (This)->lpVtbl -> GetResource(This,ppResource) )
2670
2671#endif /* COBJMACROS */
2672
2673
2674#endif    /* C style interface */
2675
2676
2677
2678
2679#endif    /* __ID3D10View_INTERFACE_DEFINED__ */
2680
2681
2682/* interface __MIDL_itf_d3d10_0000_0010 */
2683/* [local] */
2684
2685typedef struct D3D10_BUFFER_SRV
2686    {
2687    union
2688        {
2689        UINT FirstElement;
2690        UINT ElementOffset;
2691        }    ;
2692    union
2693        {
2694        UINT NumElements;
2695        UINT ElementWidth;
2696        }    ;
2697    }    D3D10_BUFFER_SRV;
2698
2699typedef struct D3D10_TEX1D_SRV
2700    {
2701    UINT MostDetailedMip;
2702    UINT MipLevels;
2703    }    D3D10_TEX1D_SRV;
2704
2705typedef struct D3D10_TEX1D_ARRAY_SRV
2706    {
2707    UINT MostDetailedMip;
2708    UINT MipLevels;
2709    UINT FirstArraySlice;
2710    UINT ArraySize;
2711    }    D3D10_TEX1D_ARRAY_SRV;
2712
2713typedef struct D3D10_TEX2D_SRV
2714    {
2715    UINT MostDetailedMip;
2716    UINT MipLevels;
2717    }    D3D10_TEX2D_SRV;
2718
2719typedef struct D3D10_TEX2D_ARRAY_SRV
2720    {
2721    UINT MostDetailedMip;
2722    UINT MipLevels;
2723    UINT FirstArraySlice;
2724    UINT ArraySize;
2725    }    D3D10_TEX2D_ARRAY_SRV;
2726
2727typedef struct D3D10_TEX3D_SRV
2728    {
2729    UINT MostDetailedMip;
2730    UINT MipLevels;
2731    }    D3D10_TEX3D_SRV;
2732
2733typedef struct D3D10_TEXCUBE_SRV
2734    {
2735    UINT MostDetailedMip;
2736    UINT MipLevels;
2737    }    D3D10_TEXCUBE_SRV;
2738
2739typedef struct D3D10_TEX2DMS_SRV
2740    {
2741    UINT UnusedField_NothingToDefine;
2742    }    D3D10_TEX2DMS_SRV;
2743
2744typedef struct D3D10_TEX2DMS_ARRAY_SRV
2745    {
2746    UINT FirstArraySlice;
2747    UINT ArraySize;
2748    }    D3D10_TEX2DMS_ARRAY_SRV;
2749
2750typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC
2751    {
2752    DXGI_FORMAT Format;
2753    D3D10_SRV_DIMENSION ViewDimension;
2754    union
2755        {
2756        D3D10_BUFFER_SRV Buffer;
2757        D3D10_TEX1D_SRV Texture1D;
2758        D3D10_TEX1D_ARRAY_SRV Texture1DArray;
2759        D3D10_TEX2D_SRV Texture2D;
2760        D3D10_TEX2D_ARRAY_SRV Texture2DArray;
2761        D3D10_TEX2DMS_SRV Texture2DMS;
2762        D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
2763        D3D10_TEX3D_SRV Texture3D;
2764        D3D10_TEXCUBE_SRV TextureCube;
2765        }    ;
2766    }    D3D10_SHADER_RESOURCE_VIEW_DESC;
2767
2768
2769
2770extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0010_v0_0_c_ifspec;
2771extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0010_v0_0_s_ifspec;
2772
2773#ifndef __ID3D10ShaderResourceView_INTERFACE_DEFINED__
2774#define __ID3D10ShaderResourceView_INTERFACE_DEFINED__
2775
2776/* interface ID3D10ShaderResourceView */
2777/* [unique][local][object][uuid] */
2778
2779
2780EXTERN_C const IID IID_ID3D10ShaderResourceView;
2781
2782#if defined(__cplusplus) && !defined(CINTERFACE)
2783   
2784    MIDL_INTERFACE("9B7E4C07-342C-4106-A19F-4F2704F689F0")
2785    ID3D10ShaderResourceView : public ID3D10View
2786    {
2787    public:
2788        virtual void STDMETHODCALLTYPE GetDesc(
2789            /* [annotation] */
2790            __out  D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc) = 0;
2791       
2792    };
2793   
2794#else    /* C style interface */
2795
2796    typedef struct ID3D10ShaderResourceViewVtbl
2797    {
2798        BEGIN_INTERFACE
2799       
2800        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2801            ID3D10ShaderResourceView * This,
2802            /* [in] */ REFIID riid,
2803            /* [annotation][iid_is][out] */
2804            __RPC__deref_out  void **ppvObject);
2805       
2806        ULONG ( STDMETHODCALLTYPE *AddRef )(
2807            ID3D10ShaderResourceView * This);
2808       
2809        ULONG ( STDMETHODCALLTYPE *Release )(
2810            ID3D10ShaderResourceView * This);
2811       
2812        void ( STDMETHODCALLTYPE *GetDevice )(
2813            ID3D10ShaderResourceView * This,
2814            /* [annotation] */
2815            __out  ID3D10Device **ppDevice);
2816       
2817        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2818            ID3D10ShaderResourceView * This,
2819            /* [annotation] */
2820            __in  REFGUID guid,
2821            /* [annotation] */
2822            __inout  UINT *pDataSize,
2823            /* [annotation] */
2824            __out_bcount_opt(*pDataSize)  void *pData);
2825       
2826        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2827            ID3D10ShaderResourceView * This,
2828            /* [annotation] */
2829            __in  REFGUID guid,
2830            /* [annotation] */
2831            __in  UINT DataSize,
2832            /* [annotation] */
2833            __in_bcount_opt(DataSize)  const void *pData);
2834       
2835        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2836            ID3D10ShaderResourceView * This,
2837            /* [annotation] */
2838            __in  REFGUID guid,
2839            /* [annotation] */
2840            __in_opt  const IUnknown *pData);
2841       
2842        void ( STDMETHODCALLTYPE *GetResource )(
2843            ID3D10ShaderResourceView * This,
2844            /* [annotation] */
2845            __out  ID3D10Resource **ppResource);
2846       
2847        void ( STDMETHODCALLTYPE *GetDesc )(
2848            ID3D10ShaderResourceView * This,
2849            /* [annotation] */
2850            __out  D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
2851       
2852        END_INTERFACE
2853    } ID3D10ShaderResourceViewVtbl;
2854
2855    interface ID3D10ShaderResourceView
2856    {
2857        CONST_VTBL struct ID3D10ShaderResourceViewVtbl *lpVtbl;
2858    };
2859
2860   
2861
2862#ifdef COBJMACROS
2863
2864
2865#define ID3D10ShaderResourceView_QueryInterface(This,riid,ppvObject)   \
2866    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2867
2868#define ID3D10ShaderResourceView_AddRef(This)   \
2869    ( (This)->lpVtbl -> AddRef(This) )
2870
2871#define ID3D10ShaderResourceView_Release(This)   \
2872    ( (This)->lpVtbl -> Release(This) )
2873
2874
2875#define ID3D10ShaderResourceView_GetDevice(This,ppDevice)   \
2876    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2877
2878#define ID3D10ShaderResourceView_GetPrivateData(This,guid,pDataSize,pData)   \
2879    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2880
2881#define ID3D10ShaderResourceView_SetPrivateData(This,guid,DataSize,pData)   \
2882    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2883
2884#define ID3D10ShaderResourceView_SetPrivateDataInterface(This,guid,pData)   \
2885    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2886
2887
2888#define ID3D10ShaderResourceView_GetResource(This,ppResource)   \
2889    ( (This)->lpVtbl -> GetResource(This,ppResource) )
2890
2891
2892#define ID3D10ShaderResourceView_GetDesc(This,pDesc)   \
2893    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2894
2895#endif /* COBJMACROS */
2896
2897
2898#endif    /* C style interface */
2899
2900
2901
2902
2903#endif    /* __ID3D10ShaderResourceView_INTERFACE_DEFINED__ */
2904
2905
2906/* interface __MIDL_itf_d3d10_0000_0011 */
2907/* [local] */
2908
2909typedef struct D3D10_BUFFER_RTV
2910    {
2911    union
2912        {
2913        UINT FirstElement;
2914        UINT ElementOffset;
2915        }    ;
2916    union
2917        {
2918        UINT NumElements;
2919        UINT ElementWidth;
2920        }    ;
2921    }    D3D10_BUFFER_RTV;
2922
2923typedef struct D3D10_TEX1D_RTV
2924    {
2925    UINT MipSlice;
2926    }    D3D10_TEX1D_RTV;
2927
2928typedef struct D3D10_TEX1D_ARRAY_RTV
2929    {
2930    UINT MipSlice;
2931    UINT FirstArraySlice;
2932    UINT ArraySize;
2933    }    D3D10_TEX1D_ARRAY_RTV;
2934
2935typedef struct D3D10_TEX2D_RTV
2936    {
2937    UINT MipSlice;
2938    }    D3D10_TEX2D_RTV;
2939
2940typedef struct D3D10_TEX2DMS_RTV
2941    {
2942    UINT UnusedField_NothingToDefine;
2943    }    D3D10_TEX2DMS_RTV;
2944
2945typedef struct D3D10_TEX2D_ARRAY_RTV
2946    {
2947    UINT MipSlice;
2948    UINT FirstArraySlice;
2949    UINT ArraySize;
2950    }    D3D10_TEX2D_ARRAY_RTV;
2951
2952typedef struct D3D10_TEX2DMS_ARRAY_RTV
2953    {
2954    UINT FirstArraySlice;
2955    UINT ArraySize;
2956    }    D3D10_TEX2DMS_ARRAY_RTV;
2957
2958typedef struct D3D10_TEX3D_RTV
2959    {
2960    UINT MipSlice;
2961    UINT FirstWSlice;
2962    UINT WSize;
2963    }    D3D10_TEX3D_RTV;
2964
2965typedef struct D3D10_RENDER_TARGET_VIEW_DESC
2966    {
2967    DXGI_FORMAT Format;
2968    D3D10_RTV_DIMENSION ViewDimension;
2969    union
2970        {
2971        D3D10_BUFFER_RTV Buffer;
2972        D3D10_TEX1D_RTV Texture1D;
2973        D3D10_TEX1D_ARRAY_RTV Texture1DArray;
2974        D3D10_TEX2D_RTV Texture2D;
2975        D3D10_TEX2D_ARRAY_RTV Texture2DArray;
2976        D3D10_TEX2DMS_RTV Texture2DMS;
2977        D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray;
2978        D3D10_TEX3D_RTV Texture3D;
2979        }    ;
2980    }    D3D10_RENDER_TARGET_VIEW_DESC;
2981
2982
2983
2984extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0011_v0_0_c_ifspec;
2985extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0011_v0_0_s_ifspec;
2986
2987#ifndef __ID3D10RenderTargetView_INTERFACE_DEFINED__
2988#define __ID3D10RenderTargetView_INTERFACE_DEFINED__
2989
2990/* interface ID3D10RenderTargetView */
2991/* [unique][local][object][uuid] */
2992
2993
2994EXTERN_C const IID IID_ID3D10RenderTargetView;
2995
2996#if defined(__cplusplus) && !defined(CINTERFACE)
2997   
2998    MIDL_INTERFACE("9B7E4C08-342C-4106-A19F-4F2704F689F0")
2999    ID3D10RenderTargetView : public ID3D10View
3000    {
3001    public:
3002        virtual void STDMETHODCALLTYPE GetDesc(
3003            /* [annotation] */
3004            __out  D3D10_RENDER_TARGET_VIEW_DESC *pDesc) = 0;
3005       
3006    };
3007   
3008#else    /* C style interface */
3009
3010    typedef struct ID3D10RenderTargetViewVtbl
3011    {
3012        BEGIN_INTERFACE
3013       
3014        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3015            ID3D10RenderTargetView * This,
3016            /* [in] */ REFIID riid,
3017            /* [annotation][iid_is][out] */
3018            __RPC__deref_out  void **ppvObject);
3019       
3020        ULONG ( STDMETHODCALLTYPE *AddRef )(
3021            ID3D10RenderTargetView * This);
3022       
3023        ULONG ( STDMETHODCALLTYPE *Release )(
3024            ID3D10RenderTargetView * This);
3025       
3026        void ( STDMETHODCALLTYPE *GetDevice )(
3027            ID3D10RenderTargetView * This,
3028            /* [annotation] */
3029            __out  ID3D10Device **ppDevice);
3030       
3031        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3032            ID3D10RenderTargetView * This,
3033            /* [annotation] */
3034            __in  REFGUID guid,
3035            /* [annotation] */
3036            __inout  UINT *pDataSize,
3037            /* [annotation] */
3038            __out_bcount_opt(*pDataSize)  void *pData);
3039       
3040        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3041            ID3D10RenderTargetView * This,
3042            /* [annotation] */
3043            __in  REFGUID guid,
3044            /* [annotation] */
3045            __in  UINT DataSize,
3046            /* [annotation] */
3047            __in_bcount_opt(DataSize)  const void *pData);
3048       
3049        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3050            ID3D10RenderTargetView * This,
3051            /* [annotation] */
3052            __in  REFGUID guid,
3053            /* [annotation] */
3054            __in_opt  const IUnknown *pData);
3055       
3056        void ( STDMETHODCALLTYPE *GetResource )(
3057            ID3D10RenderTargetView * This,
3058            /* [annotation] */
3059            __out  ID3D10Resource **ppResource);
3060       
3061        void ( STDMETHODCALLTYPE *GetDesc )(
3062            ID3D10RenderTargetView * This,
3063            /* [annotation] */
3064            __out  D3D10_RENDER_TARGET_VIEW_DESC *pDesc);
3065       
3066        END_INTERFACE
3067    } ID3D10RenderTargetViewVtbl;
3068
3069    interface ID3D10RenderTargetView
3070    {
3071        CONST_VTBL struct ID3D10RenderTargetViewVtbl *lpVtbl;
3072    };
3073
3074   
3075
3076#ifdef COBJMACROS
3077
3078
3079#define ID3D10RenderTargetView_QueryInterface(This,riid,ppvObject)   \
3080    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3081
3082#define ID3D10RenderTargetView_AddRef(This)   \
3083    ( (This)->lpVtbl -> AddRef(This) )
3084
3085#define ID3D10RenderTargetView_Release(This)   \
3086    ( (This)->lpVtbl -> Release(This) )
3087
3088
3089#define ID3D10RenderTargetView_GetDevice(This,ppDevice)   \
3090    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3091
3092#define ID3D10RenderTargetView_GetPrivateData(This,guid,pDataSize,pData)   \
3093    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3094
3095#define ID3D10RenderTargetView_SetPrivateData(This,guid,DataSize,pData)   \
3096    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3097
3098#define ID3D10RenderTargetView_SetPrivateDataInterface(This,guid,pData)   \
3099    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3100
3101
3102#define ID3D10RenderTargetView_GetResource(This,ppResource)   \
3103    ( (This)->lpVtbl -> GetResource(This,ppResource) )
3104
3105
3106#define ID3D10RenderTargetView_GetDesc(This,pDesc)   \
3107    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
3108
3109#endif /* COBJMACROS */
3110
3111
3112#endif    /* C style interface */
3113
3114
3115
3116
3117#endif    /* __ID3D10RenderTargetView_INTERFACE_DEFINED__ */
3118
3119
3120/* interface __MIDL_itf_d3d10_0000_0012 */
3121/* [local] */
3122
3123typedef struct D3D10_TEX1D_DSV
3124    {
3125    UINT MipSlice;
3126    }    D3D10_TEX1D_DSV;
3127
3128typedef struct D3D10_TEX1D_ARRAY_DSV
3129    {
3130    UINT MipSlice;
3131    UINT FirstArraySlice;
3132    UINT ArraySize;
3133    }    D3D10_TEX1D_ARRAY_DSV;
3134
3135typedef struct D3D10_TEX2D_DSV
3136    {
3137    UINT MipSlice;
3138    }    D3D10_TEX2D_DSV;
3139
3140typedef struct D3D10_TEX2D_ARRAY_DSV
3141    {
3142    UINT MipSlice;
3143    UINT FirstArraySlice;
3144    UINT ArraySize;
3145    }    D3D10_TEX2D_ARRAY_DSV;
3146
3147typedef struct D3D10_TEX2DMS_DSV
3148    {
3149    UINT UnusedField_NothingToDefine;
3150    }    D3D10_TEX2DMS_DSV;
3151
3152typedef struct D3D10_TEX2DMS_ARRAY_DSV
3153    {
3154    UINT FirstArraySlice;
3155    UINT ArraySize;
3156    }    D3D10_TEX2DMS_ARRAY_DSV;
3157
3158typedef struct D3D10_DEPTH_STENCIL_VIEW_DESC
3159    {
3160    DXGI_FORMAT Format;
3161    D3D10_DSV_DIMENSION ViewDimension;
3162    union
3163        {
3164        D3D10_TEX1D_DSV Texture1D;
3165        D3D10_TEX1D_ARRAY_DSV Texture1DArray;
3166        D3D10_TEX2D_DSV Texture2D;
3167        D3D10_TEX2D_ARRAY_DSV Texture2DArray;
3168        D3D10_TEX2DMS_DSV Texture2DMS;
3169        D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray;
3170        }    ;
3171    }    D3D10_DEPTH_STENCIL_VIEW_DESC;
3172
3173
3174
3175extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0012_v0_0_c_ifspec;
3176extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0012_v0_0_s_ifspec;
3177
3178#ifndef __ID3D10DepthStencilView_INTERFACE_DEFINED__
3179#define __ID3D10DepthStencilView_INTERFACE_DEFINED__
3180
3181/* interface ID3D10DepthStencilView */
3182/* [unique][local][object][uuid] */
3183
3184
3185EXTERN_C const IID IID_ID3D10DepthStencilView;
3186
3187#if defined(__cplusplus) && !defined(CINTERFACE)
3188   
3189    MIDL_INTERFACE("9B7E4C09-342C-4106-A19F-4F2704F689F0")
3190    ID3D10DepthStencilView : public ID3D10View
3191    {
3192    public:
3193        virtual void STDMETHODCALLTYPE GetDesc(
3194            /* [annotation] */
3195            __out  D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc) = 0;
3196       
3197    };
3198   
3199#else    /* C style interface */
3200
3201    typedef struct ID3D10DepthStencilViewVtbl
3202    {
3203        BEGIN_INTERFACE
3204       
3205        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3206            ID3D10DepthStencilView * This,
3207            /* [in] */ REFIID riid,
3208            /* [annotation][iid_is][out] */
3209            __RPC__deref_out  void **ppvObject);
3210       
3211        ULONG ( STDMETHODCALLTYPE *AddRef )(
3212            ID3D10DepthStencilView * This);
3213       
3214        ULONG ( STDMETHODCALLTYPE *Release )(
3215            ID3D10DepthStencilView * This);
3216       
3217        void ( STDMETHODCALLTYPE *GetDevice )(
3218            ID3D10DepthStencilView * This,
3219            /* [annotation] */
3220            __out  ID3D10Device **ppDevice);
3221       
3222        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3223            ID3D10DepthStencilView * This,
3224            /* [annotation] */
3225            __in  REFGUID guid,
3226            /* [annotation] */
3227            __inout  UINT *pDataSize,
3228            /* [annotation] */
3229            __out_bcount_opt(*pDataSize)  void *pData);
3230       
3231        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3232            ID3D10DepthStencilView * This,
3233            /* [annotation] */
3234            __in  REFGUID guid,
3235            /* [annotation] */
3236            __in  UINT DataSize,
3237            /* [annotation] */
3238            __in_bcount_opt(DataSize)  const void *pData);
3239       
3240        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3241            ID3D10DepthStencilView * This,
3242            /* [annotation] */
3243            __in  REFGUID guid,
3244            /* [annotation] */
3245            __in_opt  const IUnknown *pData);
3246       
3247        void ( STDMETHODCALLTYPE *GetResource )(
3248            ID3D10DepthStencilView * This,
3249            /* [annotation] */
3250            __out  ID3D10Resource **ppResource);
3251       
3252        void ( STDMETHODCALLTYPE *GetDesc )(
3253            ID3D10DepthStencilView * This,
3254            /* [annotation] */
3255            __out  D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc);
3256       
3257        END_INTERFACE
3258    } ID3D10DepthStencilViewVtbl;
3259
3260    interface ID3D10DepthStencilView
3261    {
3262        CONST_VTBL struct ID3D10DepthStencilViewVtbl *lpVtbl;
3263    };
3264
3265   
3266
3267#ifdef COBJMACROS
3268
3269
3270#define ID3D10DepthStencilView_QueryInterface(This,riid,ppvObject)   \
3271    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3272
3273#define ID3D10DepthStencilView_AddRef(This)   \
3274    ( (This)->lpVtbl -> AddRef(This) )
3275
3276#define ID3D10DepthStencilView_Release(This)   \
3277    ( (This)->lpVtbl -> Release(This) )
3278
3279
3280#define ID3D10DepthStencilView_GetDevice(This,ppDevice)   \
3281    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3282
3283#define ID3D10DepthStencilView_GetPrivateData(This,guid,pDataSize,pData)   \
3284    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3285
3286#define ID3D10DepthStencilView_SetPrivateData(This,guid,DataSize,pData)   \
3287    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3288
3289#define ID3D10DepthStencilView_SetPrivateDataInterface(This,guid,pData)   \
3290    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3291
3292
3293#define ID3D10DepthStencilView_GetResource(This,ppResource)   \
3294    ( (This)->lpVtbl -> GetResource(This,ppResource) )
3295
3296
3297#define ID3D10DepthStencilView_GetDesc(This,pDesc)   \
3298    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
3299
3300#endif /* COBJMACROS */
3301
3302
3303#endif    /* C style interface */
3304
3305
3306
3307
3308#endif    /* __ID3D10DepthStencilView_INTERFACE_DEFINED__ */
3309
3310
3311#ifndef __ID3D10VertexShader_INTERFACE_DEFINED__
3312#define __ID3D10VertexShader_INTERFACE_DEFINED__
3313
3314/* interface ID3D10VertexShader */
3315/* [unique][local][object][uuid] */
3316
3317
3318EXTERN_C const IID IID_ID3D10VertexShader;
3319
3320#if defined(__cplusplus) && !defined(CINTERFACE)
3321   
3322    MIDL_INTERFACE("9B7E4C0A-342C-4106-A19F-4F2704F689F0")
3323    ID3D10VertexShader : public ID3D10DeviceChild
3324    {
3325    public:
3326    };
3327   
3328#else    /* C style interface */
3329
3330    typedef struct ID3D10VertexShaderVtbl
3331    {
3332        BEGIN_INTERFACE
3333       
3334        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3335            ID3D10VertexShader * This,
3336            /* [in] */ REFIID riid,
3337            /* [annotation][iid_is][out] */
3338            __RPC__deref_out  void **ppvObject);
3339       
3340        ULONG ( STDMETHODCALLTYPE *AddRef )(
3341            ID3D10VertexShader * This);
3342       
3343        ULONG ( STDMETHODCALLTYPE *Release )(
3344            ID3D10VertexShader * This);
3345       
3346        void ( STDMETHODCALLTYPE *GetDevice )(
3347            ID3D10VertexShader * This,
3348            /* [annotation] */
3349            __out  ID3D10Device **ppDevice);
3350       
3351        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3352            ID3D10VertexShader * This,
3353            /* [annotation] */
3354            __in  REFGUID guid,
3355            /* [annotation] */
3356            __inout  UINT *pDataSize,
3357            /* [annotation] */
3358            __out_bcount_opt(*pDataSize)  void *pData);
3359       
3360        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3361            ID3D10VertexShader * This,
3362            /* [annotation] */
3363            __in  REFGUID guid,
3364            /* [annotation] */
3365            __in  UINT DataSize,
3366            /* [annotation] */
3367            __in_bcount_opt(DataSize)  const void *pData);
3368       
3369        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3370            ID3D10VertexShader * This,
3371            /* [annotation] */
3372            __in  REFGUID guid,
3373            /* [annotation] */
3374            __in_opt  const IUnknown *pData);
3375       
3376        END_INTERFACE
3377    } ID3D10VertexShaderVtbl;
3378
3379    interface ID3D10VertexShader
3380    {
3381        CONST_VTBL struct ID3D10VertexShaderVtbl *lpVtbl;
3382    };
3383
3384   
3385
3386#ifdef COBJMACROS
3387
3388
3389#define ID3D10VertexShader_QueryInterface(This,riid,ppvObject)   \
3390    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3391
3392#define ID3D10VertexShader_AddRef(This)   \
3393    ( (This)->lpVtbl -> AddRef(This) )
3394
3395#define ID3D10VertexShader_Release(This)   \
3396    ( (This)->lpVtbl -> Release(This) )
3397
3398
3399#define ID3D10VertexShader_GetDevice(This,ppDevice)   \
3400    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3401
3402#define ID3D10VertexShader_GetPrivateData(This,guid,pDataSize,pData)   \
3403    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3404
3405#define ID3D10VertexShader_SetPrivateData(This,guid,DataSize,pData)   \
3406    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3407
3408#define ID3D10VertexShader_SetPrivateDataInterface(This,guid,pData)   \
3409    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3410
3411
3412#endif /* COBJMACROS */
3413
3414
3415#endif    /* C style interface */
3416
3417
3418
3419
3420#endif    /* __ID3D10VertexShader_INTERFACE_DEFINED__ */
3421
3422
3423#ifndef __ID3D10GeometryShader_INTERFACE_DEFINED__
3424#define __ID3D10GeometryShader_INTERFACE_DEFINED__
3425
3426/* interface ID3D10GeometryShader */
3427/* [unique][local][object][uuid] */
3428
3429
3430EXTERN_C const IID IID_ID3D10GeometryShader;
3431
3432#if defined(__cplusplus) && !defined(CINTERFACE)
3433   
3434    MIDL_INTERFACE("6316BE88-54CD-4040-AB44-20461BC81F68")
3435    ID3D10GeometryShader : public ID3D10DeviceChild
3436    {
3437    public:
3438    };
3439   
3440#else    /* C style interface */
3441
3442    typedef struct ID3D10GeometryShaderVtbl
3443    {
3444        BEGIN_INTERFACE
3445       
3446        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3447            ID3D10GeometryShader * This,
3448            /* [in] */ REFIID riid,
3449            /* [annotation][iid_is][out] */
3450            __RPC__deref_out  void **ppvObject);
3451       
3452        ULONG ( STDMETHODCALLTYPE *AddRef )(
3453            ID3D10GeometryShader * This);
3454       
3455        ULONG ( STDMETHODCALLTYPE *Release )(
3456            ID3D10GeometryShader * This);
3457       
3458        void ( STDMETHODCALLTYPE *GetDevice )(
3459            ID3D10GeometryShader * This,
3460            /* [annotation] */
3461            __out  ID3D10Device **ppDevice);
3462       
3463        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3464            ID3D10GeometryShader * This,
3465            /* [annotation] */
3466            __in  REFGUID guid,
3467            /* [annotation] */
3468            __inout  UINT *pDataSize,
3469            /* [annotation] */
3470            __out_bcount_opt(*pDataSize)  void *pData);
3471       
3472        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3473            ID3D10GeometryShader * This,
3474            /* [annotation] */
3475            __in  REFGUID guid,
3476            /* [annotation] */
3477            __in  UINT DataSize,
3478            /* [annotation] */
3479            __in_bcount_opt(DataSize)  const void *pData);
3480       
3481        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3482            ID3D10GeometryShader * This,
3483            /* [annotation] */
3484            __in  REFGUID guid,
3485            /* [annotation] */
3486            __in_opt  const IUnknown *pData);
3487       
3488        END_INTERFACE
3489    } ID3D10GeometryShaderVtbl;
3490
3491    interface ID3D10GeometryShader
3492    {
3493        CONST_VTBL struct ID3D10GeometryShaderVtbl *lpVtbl;
3494    };
3495
3496   
3497
3498#ifdef COBJMACROS
3499
3500
3501#define ID3D10GeometryShader_QueryInterface(This,riid,ppvObject)   \
3502    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3503
3504#define ID3D10GeometryShader_AddRef(This)   \
3505    ( (This)->lpVtbl -> AddRef(This) )
3506
3507#define ID3D10GeometryShader_Release(This)   \
3508    ( (This)->lpVtbl -> Release(This) )
3509
3510
3511#define ID3D10GeometryShader_GetDevice(This,ppDevice)   \
3512    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3513
3514#define ID3D10GeometryShader_GetPrivateData(This,guid,pDataSize,pData)   \
3515    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3516
3517#define ID3D10GeometryShader_SetPrivateData(This,guid,DataSize,pData)   \
3518    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3519
3520#define ID3D10GeometryShader_SetPrivateDataInterface(This,guid,pData)   \
3521    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3522
3523
3524#endif /* COBJMACROS */
3525
3526
3527#endif    /* C style interface */
3528
3529
3530
3531
3532#endif    /* __ID3D10GeometryShader_INTERFACE_DEFINED__ */
3533
3534
3535#ifndef __ID3D10PixelShader_INTERFACE_DEFINED__
3536#define __ID3D10PixelShader_INTERFACE_DEFINED__
3537
3538/* interface ID3D10PixelShader */
3539/* [unique][local][object][uuid] */
3540
3541
3542EXTERN_C const IID IID_ID3D10PixelShader;
3543
3544#if defined(__cplusplus) && !defined(CINTERFACE)
3545   
3546    MIDL_INTERFACE("4968B601-9D00-4cde-8346-8E7F675819B6")
3547    ID3D10PixelShader : public ID3D10DeviceChild
3548    {
3549    public:
3550    };
3551   
3552#else    /* C style interface */
3553
3554    typedef struct ID3D10PixelShaderVtbl
3555    {
3556        BEGIN_INTERFACE
3557       
3558        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3559            ID3D10PixelShader * This,
3560            /* [in] */ REFIID riid,
3561            /* [annotation][iid_is][out] */
3562            __RPC__deref_out  void **ppvObject);
3563       
3564        ULONG ( STDMETHODCALLTYPE *AddRef )(
3565            ID3D10PixelShader * This);
3566       
3567        ULONG ( STDMETHODCALLTYPE *Release )(
3568            ID3D10PixelShader * This);
3569       
3570        void ( STDMETHODCALLTYPE *GetDevice )(
3571            ID3D10PixelShader * This,
3572            /* [annotation] */
3573            __out  ID3D10Device **ppDevice);
3574       
3575        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3576            ID3D10PixelShader * This,
3577            /* [annotation] */
3578            __in  REFGUID guid,
3579            /* [annotation] */
3580            __inout  UINT *pDataSize,
3581            /* [annotation] */
3582            __out_bcount_opt(*pDataSize)  void *pData);
3583       
3584        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3585            ID3D10PixelShader * This,
3586            /* [annotation] */
3587            __in  REFGUID guid,
3588            /* [annotation] */
3589            __in  UINT DataSize,
3590            /* [annotation] */
3591            __in_bcount_opt(DataSize)  const void *pData);
3592       
3593        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3594            ID3D10PixelShader * This,
3595            /* [annotation] */
3596            __in  REFGUID guid,
3597            /* [annotation] */
3598            __in_opt  const IUnknown *pData);
3599       
3600        END_INTERFACE
3601    } ID3D10PixelShaderVtbl;
3602
3603    interface ID3D10PixelShader
3604    {
3605        CONST_VTBL struct ID3D10PixelShaderVtbl *lpVtbl;
3606    };
3607
3608   
3609
3610#ifdef COBJMACROS
3611
3612
3613#define ID3D10PixelShader_QueryInterface(This,riid,ppvObject)   \
3614    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3615
3616#define ID3D10PixelShader_AddRef(This)   \
3617    ( (This)->lpVtbl -> AddRef(This) )
3618
3619#define ID3D10PixelShader_Release(This)   \
3620    ( (This)->lpVtbl -> Release(This) )
3621
3622
3623#define ID3D10PixelShader_GetDevice(This,ppDevice)   \
3624    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3625
3626#define ID3D10PixelShader_GetPrivateData(This,guid,pDataSize,pData)   \
3627    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3628
3629#define ID3D10PixelShader_SetPrivateData(This,guid,DataSize,pData)   \
3630    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3631
3632#define ID3D10PixelShader_SetPrivateDataInterface(This,guid,pData)   \
3633    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3634
3635
3636#endif /* COBJMACROS */
3637
3638
3639#endif    /* C style interface */
3640
3641
3642
3643
3644#endif    /* __ID3D10PixelShader_INTERFACE_DEFINED__ */
3645
3646
3647#ifndef __ID3D10InputLayout_INTERFACE_DEFINED__
3648#define __ID3D10InputLayout_INTERFACE_DEFINED__
3649
3650/* interface ID3D10InputLayout */
3651/* [unique][local][object][uuid] */
3652
3653
3654EXTERN_C const IID IID_ID3D10InputLayout;
3655
3656#if defined(__cplusplus) && !defined(CINTERFACE)
3657   
3658    MIDL_INTERFACE("9B7E4C0B-342C-4106-A19F-4F2704F689F0")
3659    ID3D10InputLayout : public ID3D10DeviceChild
3660    {
3661    public:
3662    };
3663   
3664#else    /* C style interface */
3665
3666    typedef struct ID3D10InputLayoutVtbl
3667    {
3668        BEGIN_INTERFACE
3669       
3670        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3671            ID3D10InputLayout * This,
3672            /* [in] */ REFIID riid,
3673            /* [annotation][iid_is][out] */
3674            __RPC__deref_out  void **ppvObject);
3675       
3676        ULONG ( STDMETHODCALLTYPE *AddRef )(
3677            ID3D10InputLayout * This);
3678       
3679        ULONG ( STDMETHODCALLTYPE *Release )(
3680            ID3D10InputLayout * This);
3681       
3682        void ( STDMETHODCALLTYPE *GetDevice )(
3683            ID3D10InputLayout * This,
3684            /* [annotation] */
3685            __out  ID3D10Device **ppDevice);
3686       
3687        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3688            ID3D10InputLayout * This,
3689            /* [annotation] */
3690            __in  REFGUID guid,
3691            /* [annotation] */
3692            __inout  UINT *pDataSize,
3693            /* [annotation] */
3694            __out_bcount_opt(*pDataSize)  void *pData);
3695       
3696        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3697            ID3D10InputLayout * This,
3698            /* [annotation] */
3699            __in  REFGUID guid,
3700            /* [annotation] */
3701            __in  UINT DataSize,
3702            /* [annotation] */
3703            __in_bcount_opt(DataSize)  const void *pData);
3704       
3705        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3706            ID3D10InputLayout * This,
3707            /* [annotation] */
3708            __in  REFGUID guid,
3709            /* [annotation] */
3710            __in_opt  const IUnknown *pData);
3711       
3712        END_INTERFACE
3713    } ID3D10InputLayoutVtbl;
3714
3715    interface ID3D10InputLayout
3716    {
3717        CONST_VTBL struct ID3D10InputLayoutVtbl *lpVtbl;
3718    };
3719
3720   
3721
3722#ifdef COBJMACROS
3723
3724
3725#define ID3D10InputLayout_QueryInterface(This,riid,ppvObject)   \
3726    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3727
3728#define ID3D10InputLayout_AddRef(This)   \
3729    ( (This)->lpVtbl -> AddRef(This) )
3730
3731#define ID3D10InputLayout_Release(This)   \
3732    ( (This)->lpVtbl -> Release(This) )
3733
3734
3735#define ID3D10InputLayout_GetDevice(This,ppDevice)   \
3736    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3737
3738#define ID3D10InputLayout_GetPrivateData(This,guid,pDataSize,pData)   \
3739    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3740
3741#define ID3D10InputLayout_SetPrivateData(This,guid,DataSize,pData)   \
3742    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3743
3744#define ID3D10InputLayout_SetPrivateDataInterface(This,guid,pData)   \
3745    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3746
3747
3748#endif /* COBJMACROS */
3749
3750
3751#endif    /* C style interface */
3752
3753
3754
3755
3756#endif    /* __ID3D10InputLayout_INTERFACE_DEFINED__ */
3757
3758
3759/* interface __MIDL_itf_d3d10_0000_0017 */
3760/* [local] */
3761
3762typedef
3763enum D3D10_FILTER
3764    {   D3D10_FILTER_MIN_MAG_MIP_POINT   = 0,
3765   D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR   = 0x1,
3766   D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT   = 0x4,
3767   D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR   = 0x5,
3768   D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT   = 0x10,
3769   D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR   = 0x11,
3770   D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT   = 0x14,
3771   D3D10_FILTER_MIN_MAG_MIP_LINEAR   = 0x15,
3772   D3D10_FILTER_ANISOTROPIC   = 0x55,
3773   D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT   = 0x80,
3774   D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR   = 0x81,
3775   D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT   = 0x84,
3776   D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR   = 0x85,
3777   D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT   = 0x90,
3778   D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR   = 0x91,
3779   D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT   = 0x94,
3780   D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR   = 0x95,
3781   D3D10_FILTER_COMPARISON_ANISOTROPIC   = 0xd5,
3782   D3D10_FILTER_TEXT_1BIT   = 0x80000000
3783    }    D3D10_FILTER;
3784
3785typedef
3786enum D3D10_FILTER_TYPE
3787    {   D3D10_FILTER_TYPE_POINT   = 0,
3788   D3D10_FILTER_TYPE_LINEAR   = 1
3789    }    D3D10_FILTER_TYPE;
3790
3791#define   D3D10_FILTER_TYPE_MASK   ( 0x3 )
3792
3793#define   D3D10_MIN_FILTER_SHIFT   ( 4 )
3794
3795#define   D3D10_MAG_FILTER_SHIFT   ( 2 )
3796
3797#define   D3D10_MIP_FILTER_SHIFT   ( 0 )
3798
3799#define   D3D10_COMPARISON_FILTERING_BIT   ( 0x80 )
3800
3801#define   D3D10_ANISOTROPIC_FILTERING_BIT   ( 0x40 )
3802
3803#define   D3D10_TEXT_1BIT_BIT   ( 0x80000000 )
3804
3805#define D3D10_ENCODE_BASIC_FILTER( min, mag, mip, bComparison )                                           \
3806                                   ( ( D3D10_FILTER ) (                                                   \
3807                                   ( ( bComparison ) ? D3D10_COMPARISON_FILTERING_BIT : 0 ) |             \
3808                                   ( ( ( min ) & D3D10_FILTER_TYPE_MASK ) << D3D10_MIN_FILTER_SHIFT ) |   \
3809                                   ( ( ( mag ) & D3D10_FILTER_TYPE_MASK ) << D3D10_MAG_FILTER_SHIFT ) |   \
3810                                   ( ( ( mip ) & D3D10_FILTER_TYPE_MASK ) << D3D10_MIP_FILTER_SHIFT ) ) )   
3811#define D3D10_ENCODE_ANISOTROPIC_FILTER( bComparison )                                                \
3812                                         ( ( D3D10_FILTER ) (                                         \
3813                                         D3D10_ANISOTROPIC_FILTERING_BIT |                            \
3814                                         D3D10_ENCODE_BASIC_FILTER( D3D10_FILTER_TYPE_LINEAR,         \
3815                                                                    D3D10_FILTER_TYPE_LINEAR,         \
3816                                                                    D3D10_FILTER_TYPE_LINEAR,         \
3817                                                                    bComparison ) ) )                   
3818#define D3D10_DECODE_MIN_FILTER( d3d10Filter )                                                              \
3819                                 ( ( D3D10_FILTER_TYPE )                                                    \
3820                                 ( ( ( d3d10Filter ) >> D3D10_MIN_FILTER_SHIFT ) & D3D10_FILTER_TYPE_MASK ) )
3821#define D3D10_DECODE_MAG_FILTER( d3d10Filter )                                                              \
3822                                 ( ( D3D10_FILTER_TYPE )                                                    \
3823                                 ( ( ( d3d10Filter ) >> D3D10_MAG_FILTER_SHIFT ) & D3D10_FILTER_TYPE_MASK ) )
3824#define D3D10_DECODE_MIP_FILTER( d3d10Filter )                                                              \
3825                                 ( ( D3D10_FILTER_TYPE )                                                    \
3826                                 ( ( ( d3d10Filter ) >> D3D10_MIP_FILTER_SHIFT ) & D3D10_FILTER_TYPE_MASK ) )
3827#define D3D10_DECODE_IS_COMPARISON_FILTER( d3d10Filter )                                                    \
3828                                 ( ( d3d10Filter ) & D3D10_COMPARISON_FILTERING_BIT )                         
3829#define D3D10_DECODE_IS_ANISOTROPIC_FILTER( d3d10Filter )                                               \
3830                            ( ( ( d3d10Filter ) & D3D10_ANISOTROPIC_FILTERING_BIT ) &&                  \
3831                            ( D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MIN_FILTER( d3d10Filter ) ) &&   \
3832                            ( D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MAG_FILTER( d3d10Filter ) ) &&   \
3833                            ( D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MIP_FILTER( d3d10Filter ) ) )     
3834#define D3D10_DECODE_IS_TEXT_1BIT_FILTER( d3d10Filter )                                             \
3835                                 ( ( d3d10Filter ) == D3D10_TEXT_1BIT_BIT )                           
3836typedef
3837enum D3D10_TEXTURE_ADDRESS_MODE
3838    {   D3D10_TEXTURE_ADDRESS_WRAP   = 1,
3839   D3D10_TEXTURE_ADDRESS_MIRROR   = 2,
3840   D3D10_TEXTURE_ADDRESS_CLAMP   = 3,
3841   D3D10_TEXTURE_ADDRESS_BORDER   = 4,
3842   D3D10_TEXTURE_ADDRESS_MIRROR_ONCE   = 5
3843    }    D3D10_TEXTURE_ADDRESS_MODE;
3844
3845typedef struct D3D10_SAMPLER_DESC
3846    {
3847    D3D10_FILTER Filter;
3848    D3D10_TEXTURE_ADDRESS_MODE AddressU;
3849    D3D10_TEXTURE_ADDRESS_MODE AddressV;
3850    D3D10_TEXTURE_ADDRESS_MODE AddressW;
3851    FLOAT MipLODBias;
3852    UINT MaxAnisotropy;
3853    D3D10_COMPARISON_FUNC ComparisonFunc;
3854    FLOAT BorderColor[ 4 ];
3855    FLOAT MinLOD;
3856    FLOAT MaxLOD;
3857    }    D3D10_SAMPLER_DESC;
3858
3859
3860
3861extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0017_v0_0_c_ifspec;
3862extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0017_v0_0_s_ifspec;
3863
3864#ifndef __ID3D10SamplerState_INTERFACE_DEFINED__
3865#define __ID3D10SamplerState_INTERFACE_DEFINED__
3866
3867/* interface ID3D10SamplerState */
3868/* [unique][local][object][uuid] */
3869
3870
3871EXTERN_C const IID IID_ID3D10SamplerState;
3872
3873#if defined(__cplusplus) && !defined(CINTERFACE)
3874   
3875    MIDL_INTERFACE("9B7E4C0C-342C-4106-A19F-4F2704F689F0")
3876    ID3D10SamplerState : public ID3D10DeviceChild
3877    {
3878    public:
3879        virtual void STDMETHODCALLTYPE GetDesc(
3880            /* [annotation] */
3881            __out  D3D10_SAMPLER_DESC *pDesc) = 0;
3882       
3883    };
3884   
3885#else    /* C style interface */
3886
3887    typedef struct ID3D10SamplerStateVtbl
3888    {
3889        BEGIN_INTERFACE
3890       
3891        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3892            ID3D10SamplerState * This,
3893            /* [in] */ REFIID riid,
3894            /* [annotation][iid_is][out] */
3895            __RPC__deref_out  void **ppvObject);
3896       
3897        ULONG ( STDMETHODCALLTYPE *AddRef )(
3898            ID3D10SamplerState * This);
3899       
3900        ULONG ( STDMETHODCALLTYPE *Release )(
3901            ID3D10SamplerState * This);
3902       
3903        void ( STDMETHODCALLTYPE *GetDevice )(
3904            ID3D10SamplerState * This,
3905            /* [annotation] */
3906            __out  ID3D10Device **ppDevice);
3907       
3908        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3909            ID3D10SamplerState * This,
3910            /* [annotation] */
3911            __in  REFGUID guid,
3912            /* [annotation] */
3913            __inout  UINT *pDataSize,
3914            /* [annotation] */
3915            __out_bcount_opt(*pDataSize)  void *pData);
3916       
3917        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3918            ID3D10SamplerState * This,
3919            /* [annotation] */
3920            __in  REFGUID guid,
3921            /* [annotation] */
3922            __in  UINT DataSize,
3923            /* [annotation] */
3924            __in_bcount_opt(DataSize)  const void *pData);
3925       
3926        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3927            ID3D10SamplerState * This,
3928            /* [annotation] */
3929            __in  REFGUID guid,
3930            /* [annotation] */
3931            __in_opt  const IUnknown *pData);
3932       
3933        void ( STDMETHODCALLTYPE *GetDesc )(
3934            ID3D10SamplerState * This,
3935            /* [annotation] */
3936            __out  D3D10_SAMPLER_DESC *pDesc);
3937       
3938        END_INTERFACE
3939    } ID3D10SamplerStateVtbl;
3940
3941    interface ID3D10SamplerState
3942    {
3943        CONST_VTBL struct ID3D10SamplerStateVtbl *lpVtbl;
3944    };
3945
3946   
3947
3948#ifdef COBJMACROS
3949
3950
3951#define ID3D10SamplerState_QueryInterface(This,riid,ppvObject)   \
3952    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3953
3954#define ID3D10SamplerState_AddRef(This)   \
3955    ( (This)->lpVtbl -> AddRef(This) )
3956
3957#define ID3D10SamplerState_Release(This)   \
3958    ( (This)->lpVtbl -> Release(This) )
3959
3960
3961#define ID3D10SamplerState_GetDevice(This,ppDevice)   \
3962    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3963
3964#define ID3D10SamplerState_GetPrivateData(This,guid,pDataSize,pData)   \
3965    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3966
3967#define ID3D10SamplerState_SetPrivateData(This,guid,DataSize,pData)   \
3968    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3969
3970#define ID3D10SamplerState_SetPrivateDataInterface(This,guid,pData)   \
3971    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3972
3973
3974#define ID3D10SamplerState_GetDesc(This,pDesc)   \
3975    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
3976
3977#endif /* COBJMACROS */
3978
3979
3980#endif    /* C style interface */
3981
3982
3983
3984
3985#endif    /* __ID3D10SamplerState_INTERFACE_DEFINED__ */
3986
3987
3988/* interface __MIDL_itf_d3d10_0000_0018 */
3989/* [local] */
3990
3991typedef
3992enum D3D10_FORMAT_SUPPORT
3993    {   D3D10_FORMAT_SUPPORT_BUFFER   = 0x1,
3994   D3D10_FORMAT_SUPPORT_IA_VERTEX_BUFFER   = 0x2,
3995   D3D10_FORMAT_SUPPORT_IA_INDEX_BUFFER   = 0x4,
3996   D3D10_FORMAT_SUPPORT_SO_BUFFER   = 0x8,
3997   D3D10_FORMAT_SUPPORT_TEXTURE1D   = 0x10,
3998   D3D10_FORMAT_SUPPORT_TEXTURE2D   = 0x20,
3999   D3D10_FORMAT_SUPPORT_TEXTURE3D   = 0x40,
4000   D3D10_FORMAT_SUPPORT_TEXTURECUBE   = 0x80,
4001   D3D10_FORMAT_SUPPORT_SHADER_LOAD   = 0x100,
4002   D3D10_FORMAT_SUPPORT_SHADER_SAMPLE   = 0x200,
4003   D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON   = 0x400,
4004   D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT   = 0x800,
4005   D3D10_FORMAT_SUPPORT_MIP   = 0x1000,
4006   D3D10_FORMAT_SUPPORT_MIP_AUTOGEN   = 0x2000,
4007   D3D10_FORMAT_SUPPORT_RENDER_TARGET   = 0x4000,
4008   D3D10_FORMAT_SUPPORT_BLENDABLE   = 0x8000,
4009   D3D10_FORMAT_SUPPORT_DEPTH_STENCIL   = 0x10000,
4010   D3D10_FORMAT_SUPPORT_CPU_LOCKABLE   = 0x20000,
4011   D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE   = 0x40000,
4012   D3D10_FORMAT_SUPPORT_DISPLAY   = 0x80000,
4013   D3D10_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT   = 0x100000,
4014   D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET   = 0x200000,
4015   D3D10_FORMAT_SUPPORT_MULTISAMPLE_LOAD   = 0x400000,
4016   D3D10_FORMAT_SUPPORT_SHADER_GATHER   = 0x800000,
4017   D3D10_FORMAT_SUPPORT_BACK_BUFFER_CAST   = 0x1000000
4018    }    D3D10_FORMAT_SUPPORT;
4019
4020
4021
4022extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0018_v0_0_c_ifspec;
4023extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0018_v0_0_s_ifspec;
4024
4025#ifndef __ID3D10Asynchronous_INTERFACE_DEFINED__
4026#define __ID3D10Asynchronous_INTERFACE_DEFINED__
4027
4028/* interface ID3D10Asynchronous */
4029/* [unique][local][object][uuid] */
4030
4031
4032EXTERN_C const IID IID_ID3D10Asynchronous;
4033
4034#if defined(__cplusplus) && !defined(CINTERFACE)
4035   
4036    MIDL_INTERFACE("9B7E4C0D-342C-4106-A19F-4F2704F689F0")
4037    ID3D10Asynchronous : public ID3D10DeviceChild
4038    {
4039    public:
4040        virtual void STDMETHODCALLTYPE Begin( void) = 0;
4041       
4042        virtual void STDMETHODCALLTYPE End( void) = 0;
4043       
4044        virtual HRESULT STDMETHODCALLTYPE GetData(
4045            /* [annotation] */
4046            __out_bcount_opt(DataSize)  void *pData,
4047            /* [annotation] */
4048            __in  UINT DataSize,
4049            /* [annotation] */
4050            __in  UINT GetDataFlags) = 0;
4051       
4052        virtual UINT STDMETHODCALLTYPE GetDataSize( void) = 0;
4053       
4054    };
4055   
4056#else    /* C style interface */
4057
4058    typedef struct ID3D10AsynchronousVtbl
4059    {
4060        BEGIN_INTERFACE
4061       
4062        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4063            ID3D10Asynchronous * This,
4064            /* [in] */ REFIID riid,
4065            /* [annotation][iid_is][out] */
4066            __RPC__deref_out  void **ppvObject);
4067       
4068        ULONG ( STDMETHODCALLTYPE *AddRef )(
4069            ID3D10Asynchronous * This);
4070       
4071        ULONG ( STDMETHODCALLTYPE *Release )(
4072            ID3D10Asynchronous * This);
4073       
4074        void ( STDMETHODCALLTYPE *GetDevice )(
4075            ID3D10Asynchronous * This,
4076            /* [annotation] */
4077            __out  ID3D10Device **ppDevice);
4078       
4079        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4080            ID3D10Asynchronous * This,
4081            /* [annotation] */
4082            __in  REFGUID guid,
4083            /* [annotation] */
4084            __inout  UINT *pDataSize,
4085            /* [annotation] */
4086            __out_bcount_opt(*pDataSize)  void *pData);
4087       
4088        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4089            ID3D10Asynchronous * This,
4090            /* [annotation] */
4091            __in  REFGUID guid,
4092            /* [annotation] */
4093            __in  UINT DataSize,
4094            /* [annotation] */
4095            __in_bcount_opt(DataSize)  const void *pData);
4096       
4097        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4098            ID3D10Asynchronous * This,
4099            /* [annotation] */
4100            __in  REFGUID guid,
4101            /* [annotation] */
4102            __in_opt  const IUnknown *pData);
4103       
4104        void ( STDMETHODCALLTYPE *Begin )(
4105            ID3D10Asynchronous * This);
4106       
4107        void ( STDMETHODCALLTYPE *End )(
4108            ID3D10Asynchronous * This);
4109       
4110        HRESULT ( STDMETHODCALLTYPE *GetData )(
4111            ID3D10Asynchronous * This,
4112            /* [annotation] */
4113            __out_bcount_opt(DataSize)  void *pData,
4114            /* [annotation] */
4115            __in  UINT DataSize,
4116            /* [annotation] */
4117            __in  UINT GetDataFlags);
4118       
4119        UINT ( STDMETHODCALLTYPE *GetDataSize )(
4120            ID3D10Asynchronous * This);
4121       
4122        END_INTERFACE
4123    } ID3D10AsynchronousVtbl;
4124
4125    interface ID3D10Asynchronous
4126    {
4127        CONST_VTBL struct ID3D10AsynchronousVtbl *lpVtbl;
4128    };
4129
4130   
4131
4132#ifdef COBJMACROS
4133
4134
4135#define ID3D10Asynchronous_QueryInterface(This,riid,ppvObject)   \
4136    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4137
4138#define ID3D10Asynchronous_AddRef(This)   \
4139    ( (This)->lpVtbl -> AddRef(This) )
4140
4141#define ID3D10Asynchronous_Release(This)   \
4142    ( (This)->lpVtbl -> Release(This) )
4143
4144
4145#define ID3D10Asynchronous_GetDevice(This,ppDevice)   \
4146    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4147
4148#define ID3D10Asynchronous_GetPrivateData(This,guid,pDataSize,pData)   \
4149    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4150
4151#define ID3D10Asynchronous_SetPrivateData(This,guid,DataSize,pData)   \
4152    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4153
4154#define ID3D10Asynchronous_SetPrivateDataInterface(This,guid,pData)   \
4155    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4156
4157
4158#define ID3D10Asynchronous_Begin(This)   \
4159    ( (This)->lpVtbl -> Begin(This) )
4160
4161#define ID3D10Asynchronous_End(This)   \
4162    ( (This)->lpVtbl -> End(This) )
4163
4164#define ID3D10Asynchronous_GetData(This,pData,DataSize,GetDataFlags)   \
4165    ( (This)->lpVtbl -> GetData(This,pData,DataSize,GetDataFlags) )
4166
4167#define ID3D10Asynchronous_GetDataSize(This)   \
4168    ( (This)->lpVtbl -> GetDataSize(This) )
4169
4170#endif /* COBJMACROS */
4171
4172
4173#endif    /* C style interface */
4174
4175
4176
4177
4178#endif    /* __ID3D10Asynchronous_INTERFACE_DEFINED__ */
4179
4180
4181/* interface __MIDL_itf_d3d10_0000_0019 */
4182/* [local] */
4183
4184typedef
4185enum D3D10_ASYNC_GETDATA_FLAG
4186    {   D3D10_ASYNC_GETDATA_DONOTFLUSH   = 0x1
4187    }    D3D10_ASYNC_GETDATA_FLAG;
4188
4189typedef
4190enum D3D10_QUERY
4191    {   D3D10_QUERY_EVENT   = 0,
4192   D3D10_QUERY_OCCLUSION   = ( D3D10_QUERY_EVENT + 1 ) ,
4193   D3D10_QUERY_TIMESTAMP   = ( D3D10_QUERY_OCCLUSION + 1 ) ,
4194   D3D10_QUERY_TIMESTAMP_DISJOINT   = ( D3D10_QUERY_TIMESTAMP + 1 ) ,
4195   D3D10_QUERY_PIPELINE_STATISTICS   = ( D3D10_QUERY_TIMESTAMP_DISJOINT + 1 ) ,
4196   D3D10_QUERY_OCCLUSION_PREDICATE   = ( D3D10_QUERY_PIPELINE_STATISTICS + 1 ) ,
4197   D3D10_QUERY_SO_STATISTICS   = ( D3D10_QUERY_OCCLUSION_PREDICATE + 1 ) ,
4198   D3D10_QUERY_SO_OVERFLOW_PREDICATE   = ( D3D10_QUERY_SO_STATISTICS + 1 )
4199    }    D3D10_QUERY;
4200
4201typedef
4202enum D3D10_QUERY_MISC_FLAG
4203    {   D3D10_QUERY_MISC_PREDICATEHINT   = 0x1
4204    }    D3D10_QUERY_MISC_FLAG;
4205
4206typedef struct D3D10_QUERY_DESC
4207    {
4208    D3D10_QUERY Query;
4209    UINT MiscFlags;
4210    }    D3D10_QUERY_DESC;
4211
4212
4213
4214extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0019_v0_0_c_ifspec;
4215extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0019_v0_0_s_ifspec;
4216
4217#ifndef __ID3D10Query_INTERFACE_DEFINED__
4218#define __ID3D10Query_INTERFACE_DEFINED__
4219
4220/* interface ID3D10Query */
4221/* [unique][local][object][uuid] */
4222
4223
4224EXTERN_C const IID IID_ID3D10Query;
4225
4226#if defined(__cplusplus) && !defined(CINTERFACE)
4227   
4228    MIDL_INTERFACE("9B7E4C0E-342C-4106-A19F-4F2704F689F0")
4229    ID3D10Query : public ID3D10Asynchronous
4230    {
4231    public:
4232        virtual void STDMETHODCALLTYPE GetDesc(
4233            /* [annotation] */
4234            __out  D3D10_QUERY_DESC *pDesc) = 0;
4235       
4236    };
4237   
4238#else    /* C style interface */
4239
4240    typedef struct ID3D10QueryVtbl
4241    {
4242        BEGIN_INTERFACE
4243       
4244        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4245            ID3D10Query * This,
4246            /* [in] */ REFIID riid,
4247            /* [annotation][iid_is][out] */
4248            __RPC__deref_out  void **ppvObject);
4249       
4250        ULONG ( STDMETHODCALLTYPE *AddRef )(
4251            ID3D10Query * This);
4252       
4253        ULONG ( STDMETHODCALLTYPE *Release )(
4254            ID3D10Query * This);
4255       
4256        void ( STDMETHODCALLTYPE *GetDevice )(
4257            ID3D10Query * This,
4258            /* [annotation] */
4259            __out  ID3D10Device **ppDevice);
4260       
4261        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4262            ID3D10Query * This,
4263            /* [annotation] */
4264            __in  REFGUID guid,
4265            /* [annotation] */
4266            __inout  UINT *pDataSize,
4267            /* [annotation] */
4268            __out_bcount_opt(*pDataSize)  void *pData);
4269       
4270        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4271            ID3D10Query * This,
4272            /* [annotation] */
4273            __in  REFGUID guid,
4274            /* [annotation] */
4275            __in  UINT DataSize,
4276            /* [annotation] */
4277            __in_bcount_opt(DataSize)  const void *pData);
4278       
4279        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4280            ID3D10Query * This,
4281            /* [annotation] */
4282            __in  REFGUID guid,
4283            /* [annotation] */
4284            __in_opt  const IUnknown *pData);
4285       
4286        void ( STDMETHODCALLTYPE *Begin )(
4287            ID3D10Query * This);
4288       
4289        void ( STDMETHODCALLTYPE *End )(
4290            ID3D10Query * This);
4291       
4292        HRESULT ( STDMETHODCALLTYPE *GetData )(
4293            ID3D10Query * This,
4294            /* [annotation] */
4295            __out_bcount_opt(DataSize)  void *pData,
4296            /* [annotation] */
4297            __in  UINT DataSize,
4298            /* [annotation] */
4299            __in  UINT GetDataFlags);
4300       
4301        UINT ( STDMETHODCALLTYPE *GetDataSize )(
4302            ID3D10Query * This);
4303       
4304        void ( STDMETHODCALLTYPE *GetDesc )(
4305            ID3D10Query * This,
4306            /* [annotation] */
4307            __out  D3D10_QUERY_DESC *pDesc);
4308       
4309        END_INTERFACE
4310    } ID3D10QueryVtbl;
4311
4312    interface ID3D10Query
4313    {
4314        CONST_VTBL struct ID3D10QueryVtbl *lpVtbl;
4315    };
4316
4317   
4318
4319#ifdef COBJMACROS
4320
4321
4322#define ID3D10Query_QueryInterface(This,riid,ppvObject)   \
4323    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4324
4325#define ID3D10Query_AddRef(This)   \
4326    ( (This)->lpVtbl -> AddRef(This) )
4327
4328#define ID3D10Query_Release(This)   \
4329    ( (This)->lpVtbl -> Release(This) )
4330
4331
4332#define ID3D10Query_GetDevice(This,ppDevice)   \
4333    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4334
4335#define ID3D10Query_GetPrivateData(This,guid,pDataSize,pData)   \
4336    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4337
4338#define ID3D10Query_SetPrivateData(This,guid,DataSize,pData)   \
4339    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4340
4341#define ID3D10Query_SetPrivateDataInterface(This,guid,pData)   \
4342    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4343
4344
4345#define ID3D10Query_Begin(This)   \
4346    ( (This)->lpVtbl -> Begin(This) )
4347
4348#define ID3D10Query_End(This)   \
4349    ( (This)->lpVtbl -> End(This) )
4350
4351#define ID3D10Query_GetData(This,pData,DataSize,GetDataFlags)   \
4352    ( (This)->lpVtbl -> GetData(This,pData,DataSize,GetDataFlags) )
4353
4354#define ID3D10Query_GetDataSize(This)   \
4355    ( (This)->lpVtbl -> GetDataSize(This) )
4356
4357
4358#define ID3D10Query_GetDesc(This,pDesc)   \
4359    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
4360
4361#endif /* COBJMACROS */
4362
4363
4364#endif    /* C style interface */
4365
4366
4367
4368
4369#endif    /* __ID3D10Query_INTERFACE_DEFINED__ */
4370
4371
4372#ifndef __ID3D10Predicate_INTERFACE_DEFINED__
4373#define __ID3D10Predicate_INTERFACE_DEFINED__
4374
4375/* interface ID3D10Predicate */
4376/* [unique][local][object][uuid] */
4377
4378
4379EXTERN_C const IID IID_ID3D10Predicate;
4380
4381#if defined(__cplusplus) && !defined(CINTERFACE)
4382   
4383    MIDL_INTERFACE("9B7E4C10-342C-4106-A19F-4F2704F689F0")
4384    ID3D10Predicate : public ID3D10Query
4385    {
4386    public:
4387    };
4388   
4389#else    /* C style interface */
4390
4391    typedef struct ID3D10PredicateVtbl
4392    {
4393        BEGIN_INTERFACE
4394       
4395        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4396            ID3D10Predicate * This,
4397            /* [in] */ REFIID riid,
4398            /* [annotation][iid_is][out] */
4399            __RPC__deref_out  void **ppvObject);
4400       
4401        ULONG ( STDMETHODCALLTYPE *AddRef )(
4402            ID3D10Predicate * This);
4403       
4404        ULONG ( STDMETHODCALLTYPE *Release )(
4405            ID3D10Predicate * This);
4406       
4407        void ( STDMETHODCALLTYPE *GetDevice )(
4408            ID3D10Predicate * This,
4409            /* [annotation] */
4410            __out  ID3D10Device **ppDevice);
4411       
4412        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4413            ID3D10Predicate * This,
4414            /* [annotation] */
4415            __in  REFGUID guid,
4416            /* [annotation] */
4417            __inout  UINT *pDataSize,
4418            /* [annotation] */
4419            __out_bcount_opt(*pDataSize)  void *pData);
4420       
4421        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4422            ID3D10Predicate * This,
4423            /* [annotation] */
4424            __in  REFGUID guid,
4425            /* [annotation] */
4426            __in  UINT DataSize,
4427            /* [annotation] */
4428            __in_bcount_opt(DataSize)  const void *pData);
4429       
4430        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4431            ID3D10Predicate * This,
4432            /* [annotation] */
4433            __in  REFGUID guid,
4434            /* [annotation] */
4435            __in_opt  const IUnknown *pData);
4436       
4437        void ( STDMETHODCALLTYPE *Begin )(
4438            ID3D10Predicate * This);
4439       
4440        void ( STDMETHODCALLTYPE *End )(
4441            ID3D10Predicate * This);
4442       
4443        HRESULT ( STDMETHODCALLTYPE *GetData )(
4444            ID3D10Predicate * This,
4445            /* [annotation] */
4446            __out_bcount_opt(DataSize)  void *pData,
4447            /* [annotation] */
4448            __in  UINT DataSize,
4449            /* [annotation] */
4450            __in  UINT GetDataFlags);
4451       
4452        UINT ( STDMETHODCALLTYPE *GetDataSize )(
4453            ID3D10Predicate * This);
4454       
4455        void ( STDMETHODCALLTYPE *GetDesc )(
4456            ID3D10Predicate * This,
4457            /* [annotation] */
4458            __out  D3D10_QUERY_DESC *pDesc);
4459       
4460        END_INTERFACE
4461    } ID3D10PredicateVtbl;
4462
4463    interface ID3D10Predicate
4464    {
4465        CONST_VTBL struct ID3D10PredicateVtbl *lpVtbl;
4466    };
4467
4468   
4469
4470#ifdef COBJMACROS
4471
4472
4473#define ID3D10Predicate_QueryInterface(This,riid,ppvObject)   \
4474    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4475
4476#define ID3D10Predicate_AddRef(This)   \
4477    ( (This)->lpVtbl -> AddRef(This) )
4478
4479#define ID3D10Predicate_Release(This)   \
4480    ( (This)->lpVtbl -> Release(This) )
4481
4482
4483#define ID3D10Predicate_GetDevice(This,ppDevice)   \
4484    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4485
4486#define ID3D10Predicate_GetPrivateData(This,guid,pDataSize,pData)   \
4487    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4488
4489#define ID3D10Predicate_SetPrivateData(This,guid,DataSize,pData)   \
4490    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4491
4492#define ID3D10Predicate_SetPrivateDataInterface(This,guid,pData)   \
4493    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4494
4495
4496#define ID3D10Predicate_Begin(This)   \
4497    ( (This)->lpVtbl -> Begin(This) )
4498
4499#define ID3D10Predicate_End(This)   \
4500    ( (This)->lpVtbl -> End(This) )
4501
4502#define ID3D10Predicate_GetData(This,pData,DataSize,GetDataFlags)   \
4503    ( (This)->lpVtbl -> GetData(This,pData,DataSize,GetDataFlags) )
4504
4505#define ID3D10Predicate_GetDataSize(This)   \
4506    ( (This)->lpVtbl -> GetDataSize(This) )
4507
4508
4509#define ID3D10Predicate_GetDesc(This,pDesc)   \
4510    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
4511
4512
4513#endif /* COBJMACROS */
4514
4515
4516#endif    /* C style interface */
4517
4518
4519
4520
4521#endif    /* __ID3D10Predicate_INTERFACE_DEFINED__ */
4522
4523
4524/* interface __MIDL_itf_d3d10_0000_0021 */
4525/* [local] */
4526
4527typedef struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT
4528    {
4529    UINT64 Frequency;
4530    BOOL Disjoint;
4531    }    D3D10_QUERY_DATA_TIMESTAMP_DISJOINT;
4532
4533typedef struct D3D10_QUERY_DATA_PIPELINE_STATISTICS
4534    {
4535    UINT64 IAVertices;
4536    UINT64 IAPrimitives;
4537    UINT64 VSInvocations;
4538    UINT64 GSInvocations;
4539    UINT64 GSPrimitives;
4540    UINT64 CInvocations;
4541    UINT64 CPrimitives;
4542    UINT64 PSInvocations;
4543    }    D3D10_QUERY_DATA_PIPELINE_STATISTICS;
4544
4545typedef struct D3D10_QUERY_DATA_SO_STATISTICS
4546    {
4547    UINT64 NumPrimitivesWritten;
4548    UINT64 PrimitivesStorageNeeded;
4549    }    D3D10_QUERY_DATA_SO_STATISTICS;
4550
4551typedef
4552enum D3D10_COUNTER
4553    {   D3D10_COUNTER_GPU_IDLE   = 0,
4554   D3D10_COUNTER_VERTEX_PROCESSING   = ( D3D10_COUNTER_GPU_IDLE + 1 ) ,
4555   D3D10_COUNTER_GEOMETRY_PROCESSING   = ( D3D10_COUNTER_VERTEX_PROCESSING + 1 ) ,
4556   D3D10_COUNTER_PIXEL_PROCESSING   = ( D3D10_COUNTER_GEOMETRY_PROCESSING + 1 ) ,
4557   D3D10_COUNTER_OTHER_GPU_PROCESSING   = ( D3D10_COUNTER_PIXEL_PROCESSING + 1 ) ,
4558   D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION   = ( D3D10_COUNTER_OTHER_GPU_PROCESSING + 1 ) ,
4559   D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION   = ( D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION + 1 ) ,
4560   D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION   = ( D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION + 1 ) ,
4561   D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION   = ( D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION + 1 ) ,
4562   D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION   = ( D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION + 1 ) ,
4563   D3D10_COUNTER_VS_MEMORY_LIMITED   = ( D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION + 1 ) ,
4564   D3D10_COUNTER_VS_COMPUTATION_LIMITED   = ( D3D10_COUNTER_VS_MEMORY_LIMITED + 1 ) ,
4565   D3D10_COUNTER_GS_MEMORY_LIMITED   = ( D3D10_COUNTER_VS_COMPUTATION_LIMITED + 1 ) ,
4566   D3D10_COUNTER_GS_COMPUTATION_LIMITED   = ( D3D10_COUNTER_GS_MEMORY_LIMITED + 1 ) ,
4567   D3D10_COUNTER_PS_MEMORY_LIMITED   = ( D3D10_COUNTER_GS_COMPUTATION_LIMITED + 1 ) ,
4568   D3D10_COUNTER_PS_COMPUTATION_LIMITED   = ( D3D10_COUNTER_PS_MEMORY_LIMITED + 1 ) ,
4569   D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE   = ( D3D10_COUNTER_PS_COMPUTATION_LIMITED + 1 ) ,
4570   D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE   = ( D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE + 1 ) ,
4571   D3D10_COUNTER_DEVICE_DEPENDENT_0   = 0x40000000
4572    }    D3D10_COUNTER;
4573
4574typedef
4575enum D3D10_COUNTER_TYPE
4576    {   D3D10_COUNTER_TYPE_FLOAT32   = 0,
4577   D3D10_COUNTER_TYPE_UINT16   = ( D3D10_COUNTER_TYPE_FLOAT32 + 1 ) ,
4578   D3D10_COUNTER_TYPE_UINT32   = ( D3D10_COUNTER_TYPE_UINT16 + 1 ) ,
4579   D3D10_COUNTER_TYPE_UINT64   = ( D3D10_COUNTER_TYPE_UINT32 + 1 )
4580    }    D3D10_COUNTER_TYPE;
4581
4582typedef struct D3D10_COUNTER_DESC
4583    {
4584    D3D10_COUNTER Counter;
4585    UINT MiscFlags;
4586    }    D3D10_COUNTER_DESC;
4587
4588typedef struct D3D10_COUNTER_INFO
4589    {
4590    D3D10_COUNTER LastDeviceDependentCounter;
4591    UINT NumSimultaneousCounters;
4592    UINT8 NumDetectableParallelUnits;
4593    }    D3D10_COUNTER_INFO;
4594
4595
4596
4597extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0021_v0_0_c_ifspec;
4598extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0021_v0_0_s_ifspec;
4599
4600#ifndef __ID3D10Counter_INTERFACE_DEFINED__
4601#define __ID3D10Counter_INTERFACE_DEFINED__
4602
4603/* interface ID3D10Counter */
4604/* [unique][local][object][uuid] */
4605
4606
4607EXTERN_C const IID IID_ID3D10Counter;
4608
4609#if defined(__cplusplus) && !defined(CINTERFACE)
4610   
4611    MIDL_INTERFACE("9B7E4C11-342C-4106-A19F-4F2704F689F0")
4612    ID3D10Counter : public ID3D10Asynchronous
4613    {
4614    public:
4615        virtual void STDMETHODCALLTYPE GetDesc(
4616            /* [annotation] */
4617            __out  D3D10_COUNTER_DESC *pDesc) = 0;
4618       
4619    };
4620   
4621#else    /* C style interface */
4622
4623    typedef struct ID3D10CounterVtbl
4624    {
4625        BEGIN_INTERFACE
4626       
4627        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4628            ID3D10Counter * This,
4629            /* [in] */ REFIID riid,
4630            /* [annotation][iid_is][out] */
4631            __RPC__deref_out  void **ppvObject);
4632       
4633        ULONG ( STDMETHODCALLTYPE *AddRef )(
4634            ID3D10Counter * This);
4635       
4636        ULONG ( STDMETHODCALLTYPE *Release )(
4637            ID3D10Counter * This);
4638       
4639        void ( STDMETHODCALLTYPE *GetDevice )(
4640            ID3D10Counter * This,
4641            /* [annotation] */
4642            __out  ID3D10Device **ppDevice);
4643       
4644        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4645            ID3D10Counter * This,
4646            /* [annotation] */
4647            __in  REFGUID guid,
4648            /* [annotation] */
4649            __inout  UINT *pDataSize,
4650            /* [annotation] */
4651            __out_bcount_opt(*pDataSize)  void *pData);
4652       
4653        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4654            ID3D10Counter * This,
4655            /* [annotation] */
4656            __in  REFGUID guid,
4657            /* [annotation] */
4658            __in  UINT DataSize,
4659            /* [annotation] */
4660            __in_bcount_opt(DataSize)  const void *pData);
4661       
4662        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4663            ID3D10Counter * This,
4664            /* [annotation] */
4665            __in  REFGUID guid,
4666            /* [annotation] */
4667            __in_opt  const IUnknown *pData);
4668       
4669        void ( STDMETHODCALLTYPE *Begin )(
4670            ID3D10Counter * This);
4671       
4672        void ( STDMETHODCALLTYPE *End )(
4673            ID3D10Counter * This);
4674       
4675        HRESULT ( STDMETHODCALLTYPE *GetData )(
4676            ID3D10Counter * This,
4677            /* [annotation] */
4678            __out_bcount_opt(DataSize)  void *pData,
4679            /* [annotation] */
4680            __in  UINT DataSize,
4681            /* [annotation] */
4682            __in  UINT GetDataFlags);
4683       
4684        UINT ( STDMETHODCALLTYPE *GetDataSize )(
4685            ID3D10Counter * This);
4686       
4687        void ( STDMETHODCALLTYPE *GetDesc )(
4688            ID3D10Counter * This,
4689            /* [annotation] */
4690            __out  D3D10_COUNTER_DESC *pDesc);
4691       
4692        END_INTERFACE
4693    } ID3D10CounterVtbl;
4694
4695    interface ID3D10Counter
4696    {
4697        CONST_VTBL struct ID3D10CounterVtbl *lpVtbl;
4698    };
4699
4700   
4701
4702#ifdef COBJMACROS
4703
4704
4705#define ID3D10Counter_QueryInterface(This,riid,ppvObject)   \
4706    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4707
4708#define ID3D10Counter_AddRef(This)   \
4709    ( (This)->lpVtbl -> AddRef(This) )
4710
4711#define ID3D10Counter_Release(This)   \
4712    ( (This)->lpVtbl -> Release(This) )
4713
4714
4715#define ID3D10Counter_GetDevice(This,ppDevice)   \
4716    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4717
4718#define ID3D10Counter_GetPrivateData(This,guid,pDataSize,pData)   \
4719    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4720
4721#define ID3D10Counter_SetPrivateData(This,guid,DataSize,pData)   \
4722    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4723
4724#define ID3D10Counter_SetPrivateDataInterface(This,guid,pData)   \
4725    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4726
4727
4728#define ID3D10Counter_Begin(This)   \
4729    ( (This)->lpVtbl -> Begin(This) )
4730
4731#define ID3D10Counter_End(This)   \
4732    ( (This)->lpVtbl -> End(This) )
4733
4734#define ID3D10Counter_GetData(This,pData,DataSize,GetDataFlags)   \
4735    ( (This)->lpVtbl -> GetData(This,pData,DataSize,GetDataFlags) )
4736
4737#define ID3D10Counter_GetDataSize(This)   \
4738    ( (This)->lpVtbl -> GetDataSize(This) )
4739
4740
4741#define ID3D10Counter_GetDesc(This,pDesc)   \
4742    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
4743
4744#endif /* COBJMACROS */
4745
4746
4747#endif    /* C style interface */
4748
4749
4750
4751
4752#endif    /* __ID3D10Counter_INTERFACE_DEFINED__ */
4753
4754
4755#ifndef __ID3D10Device_INTERFACE_DEFINED__
4756#define __ID3D10Device_INTERFACE_DEFINED__
4757
4758/* interface ID3D10Device */
4759/* [unique][local][object][uuid] */
4760
4761
4762EXTERN_C const IID IID_ID3D10Device;
4763
4764#if defined(__cplusplus) && !defined(CINTERFACE)
4765   
4766    MIDL_INTERFACE("9B7E4C0F-342C-4106-A19F-4F2704F689F0")
4767    ID3D10Device : public IUnknown
4768    {
4769    public:
4770        virtual void STDMETHODCALLTYPE VSSetConstantBuffers(
4771            /* [annotation] */
4772            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
4773            /* [annotation] */
4774            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
4775            /* [annotation] */
4776            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers) = 0;
4777       
4778        virtual void STDMETHODCALLTYPE PSSetShaderResources(
4779            /* [annotation] */
4780            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
4781            /* [annotation] */
4782            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
4783            /* [annotation] */
4784            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
4785       
4786        virtual void STDMETHODCALLTYPE PSSetShader(
4787            /* [annotation] */
4788            __in_opt  ID3D10PixelShader *pPixelShader) = 0;
4789       
4790        virtual void STDMETHODCALLTYPE PSSetSamplers(
4791            /* [annotation] */
4792            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
4793            /* [annotation] */
4794            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
4795            /* [annotation] */
4796            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers) = 0;
4797       
4798        virtual void STDMETHODCALLTYPE VSSetShader(
4799            /* [annotation] */
4800            __in_opt  ID3D10VertexShader *pVertexShader) = 0;
4801       
4802        virtual void STDMETHODCALLTYPE DrawIndexed(
4803            /* [annotation] */
4804            __in  UINT IndexCount,
4805            /* [annotation] */
4806            __in  UINT StartIndexLocation,
4807            /* [annotation] */
4808            __in  INT BaseVertexLocation) = 0;
4809       
4810        virtual void STDMETHODCALLTYPE Draw(
4811            /* [annotation] */
4812            __in  UINT VertexCount,
4813            /* [annotation] */
4814            __in  UINT StartVertexLocation) = 0;
4815       
4816        virtual void STDMETHODCALLTYPE PSSetConstantBuffers(
4817            /* [annotation] */
4818            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
4819            /* [annotation] */
4820            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
4821            /* [annotation] */
4822            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers) = 0;
4823       
4824        virtual void STDMETHODCALLTYPE IASetInputLayout(
4825            /* [annotation] */
4826            __in_opt  ID3D10InputLayout *pInputLayout) = 0;
4827       
4828        virtual void STDMETHODCALLTYPE IASetVertexBuffers(
4829            /* [annotation] */
4830            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
4831            /* [annotation] */
4832            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
4833            /* [annotation] */
4834            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppVertexBuffers,
4835            /* [annotation] */
4836            __in_ecount(NumBuffers)  const UINT *pStrides,
4837            /* [annotation] */
4838            __in_ecount(NumBuffers)  const UINT *pOffsets) = 0;
4839       
4840        virtual void STDMETHODCALLTYPE IASetIndexBuffer(
4841            /* [annotation] */
4842            __in_opt  ID3D10Buffer *pIndexBuffer,
4843            /* [annotation] */
4844            __in  DXGI_FORMAT Format,
4845            /* [annotation] */
4846            __in  UINT Offset) = 0;
4847       
4848        virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
4849            /* [annotation] */
4850            __in  UINT IndexCountPerInstance,
4851            /* [annotation] */
4852            __in  UINT InstanceCount,
4853            /* [annotation] */
4854            __in  UINT StartIndexLocation,
4855            /* [annotation] */
4856            __in  INT BaseVertexLocation,
4857            /* [annotation] */
4858            __in  UINT StartInstanceLocation) = 0;
4859       
4860        virtual void STDMETHODCALLTYPE DrawInstanced(
4861            /* [annotation] */
4862            __in  UINT VertexCountPerInstance,
4863            /* [annotation] */
4864            __in  UINT InstanceCount,
4865            /* [annotation] */
4866            __in  UINT StartVertexLocation,
4867            /* [annotation] */
4868            __in  UINT StartInstanceLocation) = 0;
4869       
4870        virtual void STDMETHODCALLTYPE GSSetConstantBuffers(
4871            /* [annotation] */
4872            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
4873            /* [annotation] */
4874            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
4875            /* [annotation] */
4876            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers) = 0;
4877       
4878        virtual void STDMETHODCALLTYPE GSSetShader(
4879            /* [annotation] */
4880            __in_opt  ID3D10GeometryShader *pShader) = 0;
4881       
4882        virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
4883            /* [annotation] */
4884            __in  D3D10_PRIMITIVE_TOPOLOGY Topology) = 0;
4885       
4886        virtual void STDMETHODCALLTYPE VSSetShaderResources(
4887            /* [annotation] */
4888            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
4889            /* [annotation] */
4890            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
4891            /* [annotation] */
4892            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
4893       
4894        virtual void STDMETHODCALLTYPE VSSetSamplers(
4895            /* [annotation] */
4896            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
4897            /* [annotation] */
4898            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
4899            /* [annotation] */
4900            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers) = 0;
4901       
4902        virtual void STDMETHODCALLTYPE SetPredication(
4903            /* [annotation] */
4904            __in_opt  ID3D10Predicate *pPredicate,
4905            /* [annotation] */
4906            __in  BOOL PredicateValue) = 0;
4907       
4908        virtual void STDMETHODCALLTYPE GSSetShaderResources(
4909            /* [annotation] */
4910            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
4911            /* [annotation] */
4912            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
4913            /* [annotation] */
4914            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0;
4915       
4916        virtual void STDMETHODCALLTYPE GSSetSamplers(
4917            /* [annotation] */
4918            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
4919            /* [annotation] */
4920            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
4921            /* [annotation] */
4922            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers) = 0;
4923       
4924        virtual void STDMETHODCALLTYPE OMSetRenderTargets(
4925            /* [annotation] */
4926            __in_range( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
4927            /* [annotation] */
4928            __in_ecount_opt(NumViews)  ID3D10RenderTargetView *const *ppRenderTargetViews,
4929            /* [annotation] */
4930            __in_opt  ID3D10DepthStencilView *pDepthStencilView) = 0;
4931       
4932        virtual void STDMETHODCALLTYPE OMSetBlendState(
4933            /* [annotation] */
4934            __in_opt  ID3D10BlendState *pBlendState,
4935            /* [annotation] */
4936            __in  const FLOAT BlendFactor[ 4 ],
4937            /* [annotation] */
4938            __in  UINT SampleMask) = 0;
4939       
4940        virtual void STDMETHODCALLTYPE OMSetDepthStencilState(
4941            /* [annotation] */
4942            __in_opt  ID3D10DepthStencilState *pDepthStencilState,
4943            /* [annotation] */
4944            __in  UINT StencilRef) = 0;
4945       
4946        virtual void STDMETHODCALLTYPE SOSetTargets(
4947            /* [annotation] */
4948            __in_range( 0, D3D10_SO_BUFFER_SLOT_COUNT)  UINT NumBuffers,
4949            /* [annotation] */
4950            __in_ecount_opt(NumBuffers)  ID3D10Buffer *const *ppSOTargets,
4951            /* [annotation] */
4952            __in_ecount_opt(NumBuffers)  const UINT *pOffsets) = 0;
4953       
4954        virtual void STDMETHODCALLTYPE DrawAuto( void) = 0;
4955       
4956        virtual void STDMETHODCALLTYPE RSSetState(
4957            /* [annotation] */
4958            __in_opt  ID3D10RasterizerState *pRasterizerState) = 0;
4959       
4960        virtual void STDMETHODCALLTYPE RSSetViewports(
4961            /* [annotation] */
4962            __in_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumViewports,
4963            /* [annotation] */
4964            __in_ecount_opt(NumViewports)  const D3D10_VIEWPORT *pViewports) = 0;
4965       
4966        virtual void STDMETHODCALLTYPE RSSetScissorRects(
4967            /* [annotation] */
4968            __in_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumRects,
4969            /* [annotation] */
4970            __in_ecount_opt(NumRects)  const D3D10_RECT *pRects) = 0;
4971       
4972        virtual void STDMETHODCALLTYPE CopySubresourceRegion(
4973            /* [annotation] */
4974            __in  ID3D10Resource *pDstResource,
4975            /* [annotation] */
4976            __in  UINT DstSubresource,
4977            /* [annotation] */
4978            __in  UINT DstX,
4979            /* [annotation] */
4980            __in  UINT DstY,
4981            /* [annotation] */
4982            __in  UINT DstZ,
4983            /* [annotation] */
4984            __in  ID3D10Resource *pSrcResource,
4985            /* [annotation] */
4986            __in  UINT SrcSubresource,
4987            /* [annotation] */
4988            __in_opt  const D3D10_BOX *pSrcBox) = 0;
4989       
4990        virtual void STDMETHODCALLTYPE CopyResource(
4991            /* [annotation] */
4992            __in  ID3D10Resource *pDstResource,
4993            /* [annotation] */
4994            __in  ID3D10Resource *pSrcResource) = 0;
4995       
4996        virtual void STDMETHODCALLTYPE UpdateSubresource(
4997            /* [annotation] */
4998            __in  ID3D10Resource *pDstResource,
4999            /* [annotation] */
5000            __in  UINT DstSubresource,
5001            /* [annotation] */
5002            __in_opt  const D3D10_BOX *pDstBox,
5003            /* [annotation] */
5004            __in  const void *pSrcData,
5005            /* [annotation] */
5006            __in  UINT SrcRowPitch,
5007            /* [annotation] */
5008            __in  UINT SrcDepthPitch) = 0;
5009       
5010        virtual void STDMETHODCALLTYPE ClearRenderTargetView(
5011            /* [annotation] */
5012            __in  ID3D10RenderTargetView *pRenderTargetView,
5013            /* [annotation] */
5014            __in  const FLOAT ColorRGBA[ 4 ]) = 0;
5015       
5016        virtual void STDMETHODCALLTYPE ClearDepthStencilView(
5017            /* [annotation] */
5018            __in  ID3D10DepthStencilView *pDepthStencilView,
5019            /* [annotation] */
5020            __in  UINT ClearFlags,
5021            /* [annotation] */
5022            __in  FLOAT Depth,
5023            /* [annotation] */
5024            __in  UINT8 Stencil) = 0;
5025       
5026        virtual void STDMETHODCALLTYPE GenerateMips(
5027            /* [annotation] */
5028            __in  ID3D10ShaderResourceView *pShaderResourceView) = 0;
5029       
5030        virtual void STDMETHODCALLTYPE ResolveSubresource(
5031            /* [annotation] */
5032            __in  ID3D10Resource *pDstResource,
5033            /* [annotation] */
5034            __in  UINT DstSubresource,
5035            /* [annotation] */
5036            __in  ID3D10Resource *pSrcResource,
5037            /* [annotation] */
5038            __in  UINT SrcSubresource,
5039            /* [annotation] */
5040            __in  DXGI_FORMAT Format) = 0;
5041       
5042        virtual void STDMETHODCALLTYPE VSGetConstantBuffers(
5043            /* [annotation] */
5044            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5045            /* [annotation] */
5046            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5047            /* [annotation] */
5048            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers) = 0;
5049       
5050        virtual void STDMETHODCALLTYPE PSGetShaderResources(
5051            /* [annotation] */
5052            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5053            /* [annotation] */
5054            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5055            /* [annotation] */
5056            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
5057       
5058        virtual void STDMETHODCALLTYPE PSGetShader(
5059            /* [annotation] */
5060            __out  ID3D10PixelShader **ppPixelShader) = 0;
5061       
5062        virtual void STDMETHODCALLTYPE PSGetSamplers(
5063            /* [annotation] */
5064            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5065            /* [annotation] */
5066            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5067            /* [annotation] */
5068            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers) = 0;
5069       
5070        virtual void STDMETHODCALLTYPE VSGetShader(
5071            /* [annotation] */
5072            __out  ID3D10VertexShader **ppVertexShader) = 0;
5073       
5074        virtual void STDMETHODCALLTYPE PSGetConstantBuffers(
5075            /* [annotation] */
5076            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5077            /* [annotation] */
5078            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5079            /* [annotation] */
5080            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers) = 0;
5081       
5082        virtual void STDMETHODCALLTYPE IAGetInputLayout(
5083            /* [annotation] */
5084            __out  ID3D10InputLayout **ppInputLayout) = 0;
5085       
5086        virtual void STDMETHODCALLTYPE IAGetVertexBuffers(
5087            /* [annotation] */
5088            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5089            /* [annotation] */
5090            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5091            /* [annotation] */
5092            __out_ecount_opt(NumBuffers)  ID3D10Buffer **ppVertexBuffers,
5093            /* [annotation] */
5094            __out_ecount_opt(NumBuffers)  UINT *pStrides,
5095            /* [annotation] */
5096            __out_ecount_opt(NumBuffers)  UINT *pOffsets) = 0;
5097       
5098        virtual void STDMETHODCALLTYPE IAGetIndexBuffer(
5099            /* [annotation] */
5100            __out_opt  ID3D10Buffer **pIndexBuffer,
5101            /* [annotation] */
5102            __out_opt  DXGI_FORMAT *Format,
5103            /* [annotation] */
5104            __out_opt  UINT *Offset) = 0;
5105       
5106        virtual void STDMETHODCALLTYPE GSGetConstantBuffers(
5107            /* [annotation] */
5108            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5109            /* [annotation] */
5110            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5111            /* [annotation] */
5112            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers) = 0;
5113       
5114        virtual void STDMETHODCALLTYPE GSGetShader(
5115            /* [annotation] */
5116            __out  ID3D10GeometryShader **ppGeometryShader) = 0;
5117       
5118        virtual void STDMETHODCALLTYPE IAGetPrimitiveTopology(
5119            /* [annotation] */
5120            __out  D3D10_PRIMITIVE_TOPOLOGY *pTopology) = 0;
5121       
5122        virtual void STDMETHODCALLTYPE VSGetShaderResources(
5123            /* [annotation] */
5124            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5125            /* [annotation] */
5126            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5127            /* [annotation] */
5128            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
5129       
5130        virtual void STDMETHODCALLTYPE VSGetSamplers(
5131            /* [annotation] */
5132            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5133            /* [annotation] */
5134            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5135            /* [annotation] */
5136            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers) = 0;
5137       
5138        virtual void STDMETHODCALLTYPE GetPredication(
5139            /* [annotation] */
5140            __out_opt  ID3D10Predicate **ppPredicate,
5141            /* [annotation] */
5142            __out_opt  BOOL *pPredicateValue) = 0;
5143       
5144        virtual void STDMETHODCALLTYPE GSGetShaderResources(
5145            /* [annotation] */
5146            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5147            /* [annotation] */
5148            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5149            /* [annotation] */
5150            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews) = 0;
5151       
5152        virtual void STDMETHODCALLTYPE GSGetSamplers(
5153            /* [annotation] */
5154            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5155            /* [annotation] */
5156            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5157            /* [annotation] */
5158            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers) = 0;
5159       
5160        virtual void STDMETHODCALLTYPE OMGetRenderTargets(
5161            /* [annotation] */
5162            __in_range( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
5163            /* [annotation] */
5164            __out_ecount_opt(NumViews)  ID3D10RenderTargetView **ppRenderTargetViews,
5165            /* [annotation] */
5166            __out_opt  ID3D10DepthStencilView **ppDepthStencilView) = 0;
5167       
5168        virtual void STDMETHODCALLTYPE OMGetBlendState(
5169            /* [annotation] */
5170            __out_opt  ID3D10BlendState **ppBlendState,
5171            /* [annotation] */
5172            __out_opt  FLOAT BlendFactor[ 4 ],
5173            /* [annotation] */
5174            __out_opt  UINT *pSampleMask) = 0;
5175       
5176        virtual void STDMETHODCALLTYPE OMGetDepthStencilState(
5177            /* [annotation] */
5178            __out_opt  ID3D10DepthStencilState **ppDepthStencilState,
5179            /* [annotation] */
5180            __out_opt  UINT *pStencilRef) = 0;
5181       
5182        virtual void STDMETHODCALLTYPE SOGetTargets(
5183            /* [annotation] */
5184            __in_range( 0, D3D10_SO_BUFFER_SLOT_COUNT )  UINT NumBuffers,
5185            /* [annotation] */
5186            __out_ecount_opt(NumBuffers)  ID3D10Buffer **ppSOTargets,
5187            /* [annotation] */
5188            __out_ecount_opt(NumBuffers)  UINT *pOffsets) = 0;
5189       
5190        virtual void STDMETHODCALLTYPE RSGetState(
5191            /* [annotation] */
5192            __out  ID3D10RasterizerState **ppRasterizerState) = 0;
5193       
5194        virtual void STDMETHODCALLTYPE RSGetViewports(
5195            /* [annotation] */
5196            __inout /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *NumViewports,
5197            /* [annotation] */
5198            __out_ecount_opt(*NumViewports)  D3D10_VIEWPORT *pViewports) = 0;
5199       
5200        virtual void STDMETHODCALLTYPE RSGetScissorRects(
5201            /* [annotation] */
5202            __inout /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *NumRects,
5203            /* [annotation] */
5204            __out_ecount_opt(*NumRects)  D3D10_RECT *pRects) = 0;
5205       
5206        virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0;
5207       
5208        virtual HRESULT STDMETHODCALLTYPE SetExceptionMode(
5209            UINT RaiseFlags) = 0;
5210       
5211        virtual UINT STDMETHODCALLTYPE GetExceptionMode( void) = 0;
5212       
5213        virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
5214            /* [annotation] */
5215            __in  REFGUID guid,
5216            /* [annotation] */
5217            __inout  UINT *pDataSize,
5218            /* [annotation] */
5219            __out_bcount_opt(*pDataSize)  void *pData) = 0;
5220       
5221        virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
5222            /* [annotation] */
5223            __in  REFGUID guid,
5224            /* [annotation] */
5225            __in  UINT DataSize,
5226            /* [annotation] */
5227            __in_bcount_opt(DataSize)  const void *pData) = 0;
5228       
5229        virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
5230            /* [annotation] */
5231            __in  REFGUID guid,
5232            /* [annotation] */
5233            __in_opt  const IUnknown *pData) = 0;
5234       
5235        virtual void STDMETHODCALLTYPE ClearState( void) = 0;
5236       
5237        virtual void STDMETHODCALLTYPE Flush( void) = 0;
5238       
5239        virtual HRESULT STDMETHODCALLTYPE CreateBuffer(
5240            /* [annotation] */
5241            __in  const D3D10_BUFFER_DESC *pDesc,
5242            /* [annotation] */
5243            __in_opt  const D3D10_SUBRESOURCE_DATA *pInitialData,
5244            /* [annotation] */
5245            __out_opt  ID3D10Buffer **ppBuffer) = 0;
5246       
5247        virtual HRESULT STDMETHODCALLTYPE CreateTexture1D(
5248            /* [annotation] */
5249            __in  const D3D10_TEXTURE1D_DESC *pDesc,
5250            /* [annotation] */
5251            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D10_SUBRESOURCE_DATA *pInitialData,
5252            /* [annotation] */
5253            __out  ID3D10Texture1D **ppTexture1D) = 0;
5254       
5255        virtual HRESULT STDMETHODCALLTYPE CreateTexture2D(
5256            /* [annotation] */
5257            __in  const D3D10_TEXTURE2D_DESC *pDesc,
5258            /* [annotation] */
5259            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D10_SUBRESOURCE_DATA *pInitialData,
5260            /* [annotation] */
5261            __out  ID3D10Texture2D **ppTexture2D) = 0;
5262       
5263        virtual HRESULT STDMETHODCALLTYPE CreateTexture3D(
5264            /* [annotation] */
5265            __in  const D3D10_TEXTURE3D_DESC *pDesc,
5266            /* [annotation] */
5267            __in_xcount_opt(pDesc->MipLevels)  const D3D10_SUBRESOURCE_DATA *pInitialData,
5268            /* [annotation] */
5269            __out  ID3D10Texture3D **ppTexture3D) = 0;
5270       
5271        virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView(
5272            /* [annotation] */
5273            __in  ID3D10Resource *pResource,
5274            /* [annotation] */
5275            __in_opt  const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
5276            /* [annotation] */
5277            __out_opt  ID3D10ShaderResourceView **ppSRView) = 0;
5278       
5279        virtual HRESULT STDMETHODCALLTYPE CreateRenderTargetView(
5280            /* [annotation] */
5281            __in  ID3D10Resource *pResource,
5282            /* [annotation] */
5283            __in_opt  const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
5284            /* [annotation] */
5285            __out_opt  ID3D10RenderTargetView **ppRTView) = 0;
5286       
5287        virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilView(
5288            /* [annotation] */
5289            __in  ID3D10Resource *pResource,
5290            /* [annotation] */
5291            __in_opt  const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
5292            /* [annotation] */
5293            __out_opt  ID3D10DepthStencilView **ppDepthStencilView) = 0;
5294       
5295        virtual HRESULT STDMETHODCALLTYPE CreateInputLayout(
5296            /* [annotation] */
5297            __in_ecount(NumElements)  const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
5298            /* [annotation] */
5299            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT )  UINT NumElements,
5300            /* [annotation] */
5301            __in  const void *pShaderBytecodeWithInputSignature,
5302            /* [annotation] */
5303            __in  SIZE_T BytecodeLength,
5304            /* [annotation] */
5305            __out_opt  ID3D10InputLayout **ppInputLayout) = 0;
5306       
5307        virtual HRESULT STDMETHODCALLTYPE CreateVertexShader(
5308            /* [annotation] */
5309            __in  const void *pShaderBytecode,
5310            /* [annotation] */
5311            __in  SIZE_T BytecodeLength,
5312            /* [annotation] */
5313            __out_opt  ID3D10VertexShader **ppVertexShader) = 0;
5314       
5315        virtual HRESULT STDMETHODCALLTYPE CreateGeometryShader(
5316            /* [annotation] */
5317            __in  const void *pShaderBytecode,
5318            /* [annotation] */
5319            __in  SIZE_T BytecodeLength,
5320            /* [annotation] */
5321            __out_opt  ID3D10GeometryShader **ppGeometryShader) = 0;
5322       
5323        virtual HRESULT STDMETHODCALLTYPE CreateGeometryShaderWithStreamOutput(
5324            /* [annotation] */
5325            __in  const void *pShaderBytecode,
5326            /* [annotation] */
5327            __in  SIZE_T BytecodeLength,
5328            /* [annotation] */
5329            __in_ecount_opt(NumEntries)  const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
5330            /* [annotation] */
5331            __in_range( 0, D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT )  UINT NumEntries,
5332            /* [annotation] */
5333            __in  UINT OutputStreamStride,
5334            /* [annotation] */
5335            __out_opt  ID3D10GeometryShader **ppGeometryShader) = 0;
5336       
5337        virtual HRESULT STDMETHODCALLTYPE CreatePixelShader(
5338            /* [annotation] */
5339            __in  const void *pShaderBytecode,
5340            /* [annotation] */
5341            __in  SIZE_T BytecodeLength,
5342            /* [annotation] */
5343            __out_opt  ID3D10PixelShader **ppPixelShader) = 0;
5344       
5345        virtual HRESULT STDMETHODCALLTYPE CreateBlendState(
5346            /* [annotation] */
5347            __in  const D3D10_BLEND_DESC *pBlendStateDesc,
5348            /* [annotation] */
5349            __out_opt  ID3D10BlendState **ppBlendState) = 0;
5350       
5351        virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilState(
5352            /* [annotation] */
5353            __in  const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
5354            /* [annotation] */
5355            __out_opt  ID3D10DepthStencilState **ppDepthStencilState) = 0;
5356       
5357        virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState(
5358            /* [annotation] */
5359            __in  const D3D10_RASTERIZER_DESC *pRasterizerDesc,
5360            /* [annotation] */
5361            __out_opt  ID3D10RasterizerState **ppRasterizerState) = 0;
5362       
5363        virtual HRESULT STDMETHODCALLTYPE CreateSamplerState(
5364            /* [annotation] */
5365            __in  const D3D10_SAMPLER_DESC *pSamplerDesc,
5366            /* [annotation] */
5367            __out_opt  ID3D10SamplerState **ppSamplerState) = 0;
5368       
5369        virtual HRESULT STDMETHODCALLTYPE CreateQuery(
5370            /* [annotation] */
5371            __in  const D3D10_QUERY_DESC *pQueryDesc,
5372            /* [annotation] */
5373            __out_opt  ID3D10Query **ppQuery) = 0;
5374       
5375        virtual HRESULT STDMETHODCALLTYPE CreatePredicate(
5376            /* [annotation] */
5377            __in  const D3D10_QUERY_DESC *pPredicateDesc,
5378            /* [annotation] */
5379            __out_opt  ID3D10Predicate **ppPredicate) = 0;
5380       
5381        virtual HRESULT STDMETHODCALLTYPE CreateCounter(
5382            /* [annotation] */
5383            __in  const D3D10_COUNTER_DESC *pCounterDesc,
5384            /* [annotation] */
5385            __out_opt  ID3D10Counter **ppCounter) = 0;
5386       
5387        virtual HRESULT STDMETHODCALLTYPE CheckFormatSupport(
5388            /* [annotation] */
5389            __in  DXGI_FORMAT Format,
5390            /* [annotation] */
5391            __out  UINT *pFormatSupport) = 0;
5392       
5393        virtual HRESULT STDMETHODCALLTYPE CheckMultisampleQualityLevels(
5394            /* [annotation] */
5395            __in  DXGI_FORMAT Format,
5396            /* [annotation] */
5397            __in  UINT SampleCount,
5398            /* [annotation] */
5399            __out  UINT *pNumQualityLevels) = 0;
5400       
5401        virtual void STDMETHODCALLTYPE CheckCounterInfo(
5402            /* [annotation] */
5403            __out  D3D10_COUNTER_INFO *pCounterInfo) = 0;
5404       
5405        virtual HRESULT STDMETHODCALLTYPE CheckCounter(
5406            /* [annotation] */
5407            __in  const D3D10_COUNTER_DESC *pDesc,
5408            /* [annotation] */
5409            __out  D3D10_COUNTER_TYPE *pType,
5410            /* [annotation] */
5411            __out  UINT *pActiveCounters,
5412            /* [annotation] */
5413            __out_ecount_opt(*pNameLength)  LPSTR szName,
5414            /* [annotation] */
5415            __inout_opt  UINT *pNameLength,
5416            /* [annotation] */
5417            __out_ecount_opt(*pUnitsLength)  LPSTR szUnits,
5418            /* [annotation] */
5419            __inout_opt  UINT *pUnitsLength,
5420            /* [annotation] */
5421            __out_ecount_opt(*pDescriptionLength)  LPSTR szDescription,
5422            /* [annotation] */
5423            __inout_opt  UINT *pDescriptionLength) = 0;
5424       
5425        virtual UINT STDMETHODCALLTYPE GetCreationFlags( void) = 0;
5426       
5427        virtual HRESULT STDMETHODCALLTYPE OpenSharedResource(
5428            /* [annotation] */
5429            __in  HANDLE hResource,
5430            /* [annotation] */
5431            __in  REFIID ReturnedInterface,
5432            /* [annotation] */
5433            __out_opt  void **ppResource) = 0;
5434       
5435        virtual void STDMETHODCALLTYPE SetTextFilterSize(
5436            /* [annotation] */
5437            __in  UINT Width,
5438            /* [annotation] */
5439            __in  UINT Height) = 0;
5440       
5441        virtual void STDMETHODCALLTYPE GetTextFilterSize(
5442            /* [annotation] */
5443            __out_opt  UINT *pWidth,
5444            /* [annotation] */
5445            __out_opt  UINT *pHeight) = 0;
5446       
5447    };
5448   
5449#else    /* C style interface */
5450
5451    typedef struct ID3D10DeviceVtbl
5452    {
5453        BEGIN_INTERFACE
5454       
5455        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5456            ID3D10Device * This,
5457            /* [in] */ REFIID riid,
5458            /* [annotation][iid_is][out] */
5459            __RPC__deref_out  void **ppvObject);
5460       
5461        ULONG ( STDMETHODCALLTYPE *AddRef )(
5462            ID3D10Device * This);
5463       
5464        ULONG ( STDMETHODCALLTYPE *Release )(
5465            ID3D10Device * This);
5466       
5467        void ( STDMETHODCALLTYPE *VSSetConstantBuffers )(
5468            ID3D10Device * This,
5469            /* [annotation] */
5470            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5471            /* [annotation] */
5472            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5473            /* [annotation] */
5474            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers);
5475       
5476        void ( STDMETHODCALLTYPE *PSSetShaderResources )(
5477            ID3D10Device * This,
5478            /* [annotation] */
5479            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5480            /* [annotation] */
5481            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5482            /* [annotation] */
5483            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews);
5484       
5485        void ( STDMETHODCALLTYPE *PSSetShader )(
5486            ID3D10Device * This,
5487            /* [annotation] */
5488            __in_opt  ID3D10PixelShader *pPixelShader);
5489       
5490        void ( STDMETHODCALLTYPE *PSSetSamplers )(
5491            ID3D10Device * This,
5492            /* [annotation] */
5493            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5494            /* [annotation] */
5495            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5496            /* [annotation] */
5497            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers);
5498       
5499        void ( STDMETHODCALLTYPE *VSSetShader )(
5500            ID3D10Device * This,
5501            /* [annotation] */
5502            __in_opt  ID3D10VertexShader *pVertexShader);
5503       
5504        void ( STDMETHODCALLTYPE *DrawIndexed )(
5505            ID3D10Device * This,
5506            /* [annotation] */
5507            __in  UINT IndexCount,
5508            /* [annotation] */
5509            __in  UINT StartIndexLocation,
5510            /* [annotation] */
5511            __in  INT BaseVertexLocation);
5512       
5513        void ( STDMETHODCALLTYPE *Draw )(
5514            ID3D10Device * This,
5515            /* [annotation] */
5516            __in  UINT VertexCount,
5517            /* [annotation] */
5518            __in  UINT StartVertexLocation);
5519       
5520        void ( STDMETHODCALLTYPE *PSSetConstantBuffers )(
5521            ID3D10Device * This,
5522            /* [annotation] */
5523            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5524            /* [annotation] */
5525            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5526            /* [annotation] */
5527            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers);
5528       
5529        void ( STDMETHODCALLTYPE *IASetInputLayout )(
5530            ID3D10Device * This,
5531            /* [annotation] */
5532            __in_opt  ID3D10InputLayout *pInputLayout);
5533       
5534        void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
5535            ID3D10Device * This,
5536            /* [annotation] */
5537            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5538            /* [annotation] */
5539            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5540            /* [annotation] */
5541            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppVertexBuffers,
5542            /* [annotation] */
5543            __in_ecount(NumBuffers)  const UINT *pStrides,
5544            /* [annotation] */
5545            __in_ecount(NumBuffers)  const UINT *pOffsets);
5546       
5547        void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
5548            ID3D10Device * This,
5549            /* [annotation] */
5550            __in_opt  ID3D10Buffer *pIndexBuffer,
5551            /* [annotation] */
5552            __in  DXGI_FORMAT Format,
5553            /* [annotation] */
5554            __in  UINT Offset);
5555       
5556        void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
5557            ID3D10Device * This,
5558            /* [annotation] */
5559            __in  UINT IndexCountPerInstance,
5560            /* [annotation] */
5561            __in  UINT InstanceCount,
5562            /* [annotation] */
5563            __in  UINT StartIndexLocation,
5564            /* [annotation] */
5565            __in  INT BaseVertexLocation,
5566            /* [annotation] */
5567            __in  UINT StartInstanceLocation);
5568       
5569        void ( STDMETHODCALLTYPE *DrawInstanced )(
5570            ID3D10Device * This,
5571            /* [annotation] */
5572            __in  UINT VertexCountPerInstance,
5573            /* [annotation] */
5574            __in  UINT InstanceCount,
5575            /* [annotation] */
5576            __in  UINT StartVertexLocation,
5577            /* [annotation] */
5578            __in  UINT StartInstanceLocation);
5579       
5580        void ( STDMETHODCALLTYPE *GSSetConstantBuffers )(
5581            ID3D10Device * This,
5582            /* [annotation] */
5583            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5584            /* [annotation] */
5585            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5586            /* [annotation] */
5587            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers);
5588       
5589        void ( STDMETHODCALLTYPE *GSSetShader )(
5590            ID3D10Device * This,
5591            /* [annotation] */
5592            __in_opt  ID3D10GeometryShader *pShader);
5593       
5594        void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
5595            ID3D10Device * This,
5596            /* [annotation] */
5597            __in  D3D10_PRIMITIVE_TOPOLOGY Topology);
5598       
5599        void ( STDMETHODCALLTYPE *VSSetShaderResources )(
5600            ID3D10Device * This,
5601            /* [annotation] */
5602            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5603            /* [annotation] */
5604            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5605            /* [annotation] */
5606            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews);
5607       
5608        void ( STDMETHODCALLTYPE *VSSetSamplers )(
5609            ID3D10Device * This,
5610            /* [annotation] */
5611            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5612            /* [annotation] */
5613            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5614            /* [annotation] */
5615            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers);
5616       
5617        void ( STDMETHODCALLTYPE *SetPredication )(
5618            ID3D10Device * This,
5619            /* [annotation] */
5620            __in_opt  ID3D10Predicate *pPredicate,
5621            /* [annotation] */
5622            __in  BOOL PredicateValue);
5623       
5624        void ( STDMETHODCALLTYPE *GSSetShaderResources )(
5625            ID3D10Device * This,
5626            /* [annotation] */
5627            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5628            /* [annotation] */
5629            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5630            /* [annotation] */
5631            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews);
5632       
5633        void ( STDMETHODCALLTYPE *GSSetSamplers )(
5634            ID3D10Device * This,
5635            /* [annotation] */
5636            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5637            /* [annotation] */
5638            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5639            /* [annotation] */
5640            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers);
5641       
5642        void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
5643            ID3D10Device * This,
5644            /* [annotation] */
5645            __in_range( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
5646            /* [annotation] */
5647            __in_ecount_opt(NumViews)  ID3D10RenderTargetView *const *ppRenderTargetViews,
5648            /* [annotation] */
5649            __in_opt  ID3D10DepthStencilView *pDepthStencilView);
5650       
5651        void ( STDMETHODCALLTYPE *OMSetBlendState )(
5652            ID3D10Device * This,
5653            /* [annotation] */
5654            __in_opt  ID3D10BlendState *pBlendState,
5655            /* [annotation] */
5656            __in  const FLOAT BlendFactor[ 4 ],
5657            /* [annotation] */
5658            __in  UINT SampleMask);
5659       
5660        void ( STDMETHODCALLTYPE *OMSetDepthStencilState )(
5661            ID3D10Device * This,
5662            /* [annotation] */
5663            __in_opt  ID3D10DepthStencilState *pDepthStencilState,
5664            /* [annotation] */
5665            __in  UINT StencilRef);
5666       
5667        void ( STDMETHODCALLTYPE *SOSetTargets )(
5668            ID3D10Device * This,
5669            /* [annotation] */
5670            __in_range( 0, D3D10_SO_BUFFER_SLOT_COUNT)  UINT NumBuffers,
5671            /* [annotation] */
5672            __in_ecount_opt(NumBuffers)  ID3D10Buffer *const *ppSOTargets,
5673            /* [annotation] */
5674            __in_ecount_opt(NumBuffers)  const UINT *pOffsets);
5675       
5676        void ( STDMETHODCALLTYPE *DrawAuto )(
5677            ID3D10Device * This);
5678       
5679        void ( STDMETHODCALLTYPE *RSSetState )(
5680            ID3D10Device * This,
5681            /* [annotation] */
5682            __in_opt  ID3D10RasterizerState *pRasterizerState);
5683       
5684        void ( STDMETHODCALLTYPE *RSSetViewports )(
5685            ID3D10Device * This,
5686            /* [annotation] */
5687            __in_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumViewports,
5688            /* [annotation] */
5689            __in_ecount_opt(NumViewports)  const D3D10_VIEWPORT *pViewports);
5690       
5691        void ( STDMETHODCALLTYPE *RSSetScissorRects )(
5692            ID3D10Device * This,
5693            /* [annotation] */
5694            __in_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumRects,
5695            /* [annotation] */
5696            __in_ecount_opt(NumRects)  const D3D10_RECT *pRects);
5697       
5698        void ( STDMETHODCALLTYPE *CopySubresourceRegion )(
5699            ID3D10Device * This,
5700            /* [annotation] */
5701            __in  ID3D10Resource *pDstResource,
5702            /* [annotation] */
5703            __in  UINT DstSubresource,
5704            /* [annotation] */
5705            __in  UINT DstX,
5706            /* [annotation] */
5707            __in  UINT DstY,
5708            /* [annotation] */
5709            __in  UINT DstZ,
5710            /* [annotation] */
5711            __in  ID3D10Resource *pSrcResource,
5712            /* [annotation] */
5713            __in  UINT SrcSubresource,
5714            /* [annotation] */
5715            __in_opt  const D3D10_BOX *pSrcBox);
5716       
5717        void ( STDMETHODCALLTYPE *CopyResource )(
5718            ID3D10Device * This,
5719            /* [annotation] */
5720            __in  ID3D10Resource *pDstResource,
5721            /* [annotation] */
5722            __in  ID3D10Resource *pSrcResource);
5723       
5724        void ( STDMETHODCALLTYPE *UpdateSubresource )(
5725            ID3D10Device * This,
5726            /* [annotation] */
5727            __in  ID3D10Resource *pDstResource,
5728            /* [annotation] */
5729            __in  UINT DstSubresource,
5730            /* [annotation] */
5731            __in_opt  const D3D10_BOX *pDstBox,
5732            /* [annotation] */
5733            __in  const void *pSrcData,
5734            /* [annotation] */
5735            __in  UINT SrcRowPitch,
5736            /* [annotation] */
5737            __in  UINT SrcDepthPitch);
5738       
5739        void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
5740            ID3D10Device * This,
5741            /* [annotation] */
5742            __in  ID3D10RenderTargetView *pRenderTargetView,
5743            /* [annotation] */
5744            __in  const FLOAT ColorRGBA[ 4 ]);
5745       
5746        void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
5747            ID3D10Device * This,
5748            /* [annotation] */
5749            __in  ID3D10DepthStencilView *pDepthStencilView,
5750            /* [annotation] */
5751            __in  UINT ClearFlags,
5752            /* [annotation] */
5753            __in  FLOAT Depth,
5754            /* [annotation] */
5755            __in  UINT8 Stencil);
5756       
5757        void ( STDMETHODCALLTYPE *GenerateMips )(
5758            ID3D10Device * This,
5759            /* [annotation] */
5760            __in  ID3D10ShaderResourceView *pShaderResourceView);
5761       
5762        void ( STDMETHODCALLTYPE *ResolveSubresource )(
5763            ID3D10Device * This,
5764            /* [annotation] */
5765            __in  ID3D10Resource *pDstResource,
5766            /* [annotation] */
5767            __in  UINT DstSubresource,
5768            /* [annotation] */
5769            __in  ID3D10Resource *pSrcResource,
5770            /* [annotation] */
5771            __in  UINT SrcSubresource,
5772            /* [annotation] */
5773            __in  DXGI_FORMAT Format);
5774       
5775        void ( STDMETHODCALLTYPE *VSGetConstantBuffers )(
5776            ID3D10Device * This,
5777            /* [annotation] */
5778            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5779            /* [annotation] */
5780            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5781            /* [annotation] */
5782            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers);
5783       
5784        void ( STDMETHODCALLTYPE *PSGetShaderResources )(
5785            ID3D10Device * This,
5786            /* [annotation] */
5787            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5788            /* [annotation] */
5789            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5790            /* [annotation] */
5791            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews);
5792       
5793        void ( STDMETHODCALLTYPE *PSGetShader )(
5794            ID3D10Device * This,
5795            /* [annotation] */
5796            __out  ID3D10PixelShader **ppPixelShader);
5797       
5798        void ( STDMETHODCALLTYPE *PSGetSamplers )(
5799            ID3D10Device * This,
5800            /* [annotation] */
5801            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5802            /* [annotation] */
5803            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5804            /* [annotation] */
5805            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers);
5806       
5807        void ( STDMETHODCALLTYPE *VSGetShader )(
5808            ID3D10Device * This,
5809            /* [annotation] */
5810            __out  ID3D10VertexShader **ppVertexShader);
5811       
5812        void ( STDMETHODCALLTYPE *PSGetConstantBuffers )(
5813            ID3D10Device * This,
5814            /* [annotation] */
5815            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5816            /* [annotation] */
5817            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5818            /* [annotation] */
5819            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers);
5820       
5821        void ( STDMETHODCALLTYPE *IAGetInputLayout )(
5822            ID3D10Device * This,
5823            /* [annotation] */
5824            __out  ID3D10InputLayout **ppInputLayout);
5825       
5826        void ( STDMETHODCALLTYPE *IAGetVertexBuffers )(
5827            ID3D10Device * This,
5828            /* [annotation] */
5829            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5830            /* [annotation] */
5831            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5832            /* [annotation] */
5833            __out_ecount_opt(NumBuffers)  ID3D10Buffer **ppVertexBuffers,
5834            /* [annotation] */
5835            __out_ecount_opt(NumBuffers)  UINT *pStrides,
5836            /* [annotation] */
5837            __out_ecount_opt(NumBuffers)  UINT *pOffsets);
5838       
5839        void ( STDMETHODCALLTYPE *IAGetIndexBuffer )(
5840            ID3D10Device * This,
5841            /* [annotation] */
5842            __out_opt  ID3D10Buffer **pIndexBuffer,
5843            /* [annotation] */
5844            __out_opt  DXGI_FORMAT *Format,
5845            /* [annotation] */
5846            __out_opt  UINT *Offset);
5847       
5848        void ( STDMETHODCALLTYPE *GSGetConstantBuffers )(
5849            ID3D10Device * This,
5850            /* [annotation] */
5851            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
5852            /* [annotation] */
5853            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
5854            /* [annotation] */
5855            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers);
5856       
5857        void ( STDMETHODCALLTYPE *GSGetShader )(
5858            ID3D10Device * This,
5859            /* [annotation] */
5860            __out  ID3D10GeometryShader **ppGeometryShader);
5861       
5862        void ( STDMETHODCALLTYPE *IAGetPrimitiveTopology )(
5863            ID3D10Device * This,
5864            /* [annotation] */
5865            __out  D3D10_PRIMITIVE_TOPOLOGY *pTopology);
5866       
5867        void ( STDMETHODCALLTYPE *VSGetShaderResources )(
5868            ID3D10Device * This,
5869            /* [annotation] */
5870            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5871            /* [annotation] */
5872            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5873            /* [annotation] */
5874            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews);
5875       
5876        void ( STDMETHODCALLTYPE *VSGetSamplers )(
5877            ID3D10Device * This,
5878            /* [annotation] */
5879            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5880            /* [annotation] */
5881            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5882            /* [annotation] */
5883            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers);
5884       
5885        void ( STDMETHODCALLTYPE *GetPredication )(
5886            ID3D10Device * This,
5887            /* [annotation] */
5888            __out_opt  ID3D10Predicate **ppPredicate,
5889            /* [annotation] */
5890            __out_opt  BOOL *pPredicateValue);
5891       
5892        void ( STDMETHODCALLTYPE *GSGetShaderResources )(
5893            ID3D10Device * This,
5894            /* [annotation] */
5895            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
5896            /* [annotation] */
5897            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
5898            /* [annotation] */
5899            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews);
5900       
5901        void ( STDMETHODCALLTYPE *GSGetSamplers )(
5902            ID3D10Device * This,
5903            /* [annotation] */
5904            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
5905            /* [annotation] */
5906            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
5907            /* [annotation] */
5908            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers);
5909       
5910        void ( STDMETHODCALLTYPE *OMGetRenderTargets )(
5911            ID3D10Device * This,
5912            /* [annotation] */
5913            __in_range( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
5914            /* [annotation] */
5915            __out_ecount_opt(NumViews)  ID3D10RenderTargetView **ppRenderTargetViews,
5916            /* [annotation] */
5917            __out_opt  ID3D10DepthStencilView **ppDepthStencilView);
5918       
5919        void ( STDMETHODCALLTYPE *OMGetBlendState )(
5920            ID3D10Device * This,
5921            /* [annotation] */
5922            __out_opt  ID3D10BlendState **ppBlendState,
5923            /* [annotation] */
5924            __out_opt  FLOAT BlendFactor[ 4 ],
5925            /* [annotation] */
5926            __out_opt  UINT *pSampleMask);
5927       
5928        void ( STDMETHODCALLTYPE *OMGetDepthStencilState )(
5929            ID3D10Device * This,
5930            /* [annotation] */
5931            __out_opt  ID3D10DepthStencilState **ppDepthStencilState,
5932            /* [annotation] */
5933            __out_opt  UINT *pStencilRef);
5934       
5935        void ( STDMETHODCALLTYPE *SOGetTargets )(
5936            ID3D10Device * This,
5937            /* [annotation] */
5938            __in_range( 0, D3D10_SO_BUFFER_SLOT_COUNT )  UINT NumBuffers,
5939            /* [annotation] */
5940            __out_ecount_opt(NumBuffers)  ID3D10Buffer **ppSOTargets,
5941            /* [annotation] */
5942            __out_ecount_opt(NumBuffers)  UINT *pOffsets);
5943       
5944        void ( STDMETHODCALLTYPE *RSGetState )(
5945            ID3D10Device * This,
5946            /* [annotation] */
5947            __out  ID3D10RasterizerState **ppRasterizerState);
5948       
5949        void ( STDMETHODCALLTYPE *RSGetViewports )(
5950            ID3D10Device * This,
5951            /* [annotation] */
5952            __inout /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *NumViewports,
5953            /* [annotation] */
5954            __out_ecount_opt(*NumViewports)  D3D10_VIEWPORT *pViewports);
5955       
5956        void ( STDMETHODCALLTYPE *RSGetScissorRects )(
5957            ID3D10Device * This,
5958            /* [annotation] */
5959            __inout /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *NumRects,
5960            /* [annotation] */
5961            __out_ecount_opt(*NumRects)  D3D10_RECT *pRects);
5962       
5963        HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
5964            ID3D10Device * This);
5965       
5966        HRESULT ( STDMETHODCALLTYPE *SetExceptionMode )(
5967            ID3D10Device * This,
5968            UINT RaiseFlags);
5969       
5970        UINT ( STDMETHODCALLTYPE *GetExceptionMode )(
5971            ID3D10Device * This);
5972       
5973        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5974            ID3D10Device * This,
5975            /* [annotation] */
5976            __in  REFGUID guid,
5977            /* [annotation] */
5978            __inout  UINT *pDataSize,
5979            /* [annotation] */
5980            __out_bcount_opt(*pDataSize)  void *pData);
5981       
5982        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5983            ID3D10Device * This,
5984            /* [annotation] */
5985            __in  REFGUID guid,
5986            /* [annotation] */
5987            __in  UINT DataSize,
5988            /* [annotation] */
5989            __in_bcount_opt(DataSize)  const void *pData);
5990       
5991        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5992            ID3D10Device * This,
5993            /* [annotation] */
5994            __in  REFGUID guid,
5995            /* [annotation] */
5996            __in_opt  const IUnknown *pData);
5997       
5998        void ( STDMETHODCALLTYPE *ClearState )(
5999            ID3D10Device * This);
6000       
6001        void ( STDMETHODCALLTYPE *Flush )(
6002            ID3D10Device * This);
6003       
6004        HRESULT ( STDMETHODCALLTYPE *CreateBuffer )(
6005            ID3D10Device * This,
6006            /* [annotation] */
6007            __in  const D3D10_BUFFER_DESC *pDesc,
6008            /* [annotation] */
6009            __in_opt  const D3D10_SUBRESOURCE_DATA *pInitialData,
6010            /* [annotation] */
6011            __out_opt  ID3D10Buffer **ppBuffer);
6012       
6013        HRESULT ( STDMETHODCALLTYPE *CreateTexture1D )(
6014            ID3D10Device * This,
6015            /* [annotation] */
6016            __in  const D3D10_TEXTURE1D_DESC *pDesc,
6017            /* [annotation] */
6018            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D10_SUBRESOURCE_DATA *pInitialData,
6019            /* [annotation] */
6020            __out  ID3D10Texture1D **ppTexture1D);
6021       
6022        HRESULT ( STDMETHODCALLTYPE *CreateTexture2D )(
6023            ID3D10Device * This,
6024            /* [annotation] */
6025            __in  const D3D10_TEXTURE2D_DESC *pDesc,
6026            /* [annotation] */
6027            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D10_SUBRESOURCE_DATA *pInitialData,
6028            /* [annotation] */
6029            __out  ID3D10Texture2D **ppTexture2D);
6030       
6031        HRESULT ( STDMETHODCALLTYPE *CreateTexture3D )(
6032            ID3D10Device * This,
6033            /* [annotation] */
6034            __in  const D3D10_TEXTURE3D_DESC *pDesc,
6035            /* [annotation] */
6036            __in_xcount_opt(pDesc->MipLevels)  const D3D10_SUBRESOURCE_DATA *pInitialData,
6037            /* [annotation] */
6038            __out  ID3D10Texture3D **ppTexture3D);
6039       
6040        HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView )(
6041            ID3D10Device * This,
6042            /* [annotation] */
6043            __in  ID3D10Resource *pResource,
6044            /* [annotation] */
6045            __in_opt  const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
6046            /* [annotation] */
6047            __out_opt  ID3D10ShaderResourceView **ppSRView);
6048       
6049        HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView )(
6050            ID3D10Device * This,
6051            /* [annotation] */
6052            __in  ID3D10Resource *pResource,
6053            /* [annotation] */
6054            __in_opt  const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
6055            /* [annotation] */
6056            __out_opt  ID3D10RenderTargetView **ppRTView);
6057       
6058        HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilView )(
6059            ID3D10Device * This,
6060            /* [annotation] */
6061            __in  ID3D10Resource *pResource,
6062            /* [annotation] */
6063            __in_opt  const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
6064            /* [annotation] */
6065            __out_opt  ID3D10DepthStencilView **ppDepthStencilView);
6066       
6067        HRESULT ( STDMETHODCALLTYPE *CreateInputLayout )(
6068            ID3D10Device * This,
6069            /* [annotation] */
6070            __in_ecount(NumElements)  const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
6071            /* [annotation] */
6072            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT )  UINT NumElements,
6073            /* [annotation] */
6074            __in  const void *pShaderBytecodeWithInputSignature,
6075            /* [annotation] */
6076            __in  SIZE_T BytecodeLength,
6077            /* [annotation] */
6078            __out_opt  ID3D10InputLayout **ppInputLayout);
6079       
6080        HRESULT ( STDMETHODCALLTYPE *CreateVertexShader )(
6081            ID3D10Device * This,
6082            /* [annotation] */
6083            __in  const void *pShaderBytecode,
6084            /* [annotation] */
6085            __in  SIZE_T BytecodeLength,
6086            /* [annotation] */
6087            __out_opt  ID3D10VertexShader **ppVertexShader);
6088       
6089        HRESULT ( STDMETHODCALLTYPE *CreateGeometryShader )(
6090            ID3D10Device * This,
6091            /* [annotation] */
6092            __in  const void *pShaderBytecode,
6093            /* [annotation] */
6094            __in  SIZE_T BytecodeLength,
6095            /* [annotation] */
6096            __out_opt  ID3D10GeometryShader **ppGeometryShader);
6097       
6098        HRESULT ( STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput )(
6099            ID3D10Device * This,
6100            /* [annotation] */
6101            __in  const void *pShaderBytecode,
6102            /* [annotation] */
6103            __in  SIZE_T BytecodeLength,
6104            /* [annotation] */
6105            __in_ecount_opt(NumEntries)  const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
6106            /* [annotation] */
6107            __in_range( 0, D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT )  UINT NumEntries,
6108            /* [annotation] */
6109            __in  UINT OutputStreamStride,
6110            /* [annotation] */
6111            __out_opt  ID3D10GeometryShader **ppGeometryShader);
6112       
6113        HRESULT ( STDMETHODCALLTYPE *CreatePixelShader )(
6114            ID3D10Device * This,
6115            /* [annotation] */
6116            __in  const void *pShaderBytecode,
6117            /* [annotation] */
6118            __in  SIZE_T BytecodeLength,
6119            /* [annotation] */
6120            __out_opt  ID3D10PixelShader **ppPixelShader);
6121       
6122        HRESULT ( STDMETHODCALLTYPE *CreateBlendState )(
6123            ID3D10Device * This,
6124            /* [annotation] */
6125            __in  const D3D10_BLEND_DESC *pBlendStateDesc,
6126            /* [annotation] */
6127            __out_opt  ID3D10BlendState **ppBlendState);
6128       
6129        HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilState )(
6130            ID3D10Device * This,
6131            /* [annotation] */
6132            __in  const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
6133            /* [annotation] */
6134            __out_opt  ID3D10DepthStencilState **ppDepthStencilState);
6135       
6136        HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState )(
6137            ID3D10Device * This,
6138            /* [annotation] */
6139            __in  const D3D10_RASTERIZER_DESC *pRasterizerDesc,
6140            /* [annotation] */
6141            __out_opt  ID3D10RasterizerState **ppRasterizerState);
6142       
6143        HRESULT ( STDMETHODCALLTYPE *CreateSamplerState )(
6144            ID3D10Device * This,
6145            /* [annotation] */
6146            __in  const D3D10_SAMPLER_DESC *pSamplerDesc,
6147            /* [annotation] */
6148            __out_opt  ID3D10SamplerState **ppSamplerState);
6149       
6150        HRESULT ( STDMETHODCALLTYPE *CreateQuery )(
6151            ID3D10Device * This,
6152            /* [annotation] */
6153            __in  const D3D10_QUERY_DESC *pQueryDesc,
6154            /* [annotation] */
6155            __out_opt  ID3D10Query **ppQuery);
6156       
6157        HRESULT ( STDMETHODCALLTYPE *CreatePredicate )(
6158            ID3D10Device * This,
6159            /* [annotation] */
6160            __in  const D3D10_QUERY_DESC *pPredicateDesc,
6161            /* [annotation] */
6162            __out_opt  ID3D10Predicate **ppPredicate);
6163       
6164        HRESULT ( STDMETHODCALLTYPE *CreateCounter )(
6165            ID3D10Device * This,
6166            /* [annotation] */
6167            __in  const D3D10_COUNTER_DESC *pCounterDesc,
6168            /* [annotation] */
6169            __out_opt  ID3D10Counter **ppCounter);
6170       
6171        HRESULT ( STDMETHODCALLTYPE *CheckFormatSupport )(
6172            ID3D10Device * This,
6173            /* [annotation] */
6174            __in  DXGI_FORMAT Format,
6175            /* [annotation] */
6176            __out  UINT *pFormatSupport);
6177       
6178        HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels )(
6179            ID3D10Device * This,
6180            /* [annotation] */
6181            __in  DXGI_FORMAT Format,
6182            /* [annotation] */
6183            __in  UINT SampleCount,
6184            /* [annotation] */
6185            __out  UINT *pNumQualityLevels);
6186       
6187        void ( STDMETHODCALLTYPE *CheckCounterInfo )(
6188            ID3D10Device * This,
6189            /* [annotation] */
6190            __out  D3D10_COUNTER_INFO *pCounterInfo);
6191       
6192        HRESULT ( STDMETHODCALLTYPE *CheckCounter )(
6193            ID3D10Device * This,
6194            /* [annotation] */
6195            __in  const D3D10_COUNTER_DESC *pDesc,
6196            /* [annotation] */
6197            __out  D3D10_COUNTER_TYPE *pType,
6198            /* [annotation] */
6199            __out  UINT *pActiveCounters,
6200            /* [annotation] */
6201            __out_ecount_opt(*pNameLength)  LPSTR szName,
6202            /* [annotation] */
6203            __inout_opt  UINT *pNameLength,
6204            /* [annotation] */
6205            __out_ecount_opt(*pUnitsLength)  LPSTR szUnits,
6206            /* [annotation] */
6207            __inout_opt  UINT *pUnitsLength,
6208            /* [annotation] */
6209            __out_ecount_opt(*pDescriptionLength)  LPSTR szDescription,
6210            /* [annotation] */
6211            __inout_opt  UINT *pDescriptionLength);
6212       
6213        UINT ( STDMETHODCALLTYPE *GetCreationFlags )(
6214            ID3D10Device * This);
6215       
6216        HRESULT ( STDMETHODCALLTYPE *OpenSharedResource )(
6217            ID3D10Device * This,
6218            /* [annotation] */
6219            __in  HANDLE hResource,
6220            /* [annotation] */
6221            __in  REFIID ReturnedInterface,
6222            /* [annotation] */
6223            __out_opt  void **ppResource);
6224       
6225        void ( STDMETHODCALLTYPE *SetTextFilterSize )(
6226            ID3D10Device * This,
6227            /* [annotation] */
6228            __in  UINT Width,
6229            /* [annotation] */
6230            __in  UINT Height);
6231       
6232        void ( STDMETHODCALLTYPE *GetTextFilterSize )(
6233            ID3D10Device * This,
6234            /* [annotation] */
6235            __out_opt  UINT *pWidth,
6236            /* [annotation] */
6237            __out_opt  UINT *pHeight);
6238       
6239        END_INTERFACE
6240    } ID3D10DeviceVtbl;
6241
6242    interface ID3D10Device
6243    {
6244        CONST_VTBL struct ID3D10DeviceVtbl *lpVtbl;
6245    };
6246
6247   
6248
6249#ifdef COBJMACROS
6250
6251
6252#define ID3D10Device_QueryInterface(This,riid,ppvObject)   \
6253    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6254
6255#define ID3D10Device_AddRef(This)   \
6256    ( (This)->lpVtbl -> AddRef(This) )
6257
6258#define ID3D10Device_Release(This)   \
6259    ( (This)->lpVtbl -> Release(This) )
6260
6261
6262#define ID3D10Device_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
6263    ( (This)->lpVtbl -> VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
6264
6265#define ID3D10Device_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
6266    ( (This)->lpVtbl -> PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
6267
6268#define ID3D10Device_PSSetShader(This,pPixelShader)   \
6269    ( (This)->lpVtbl -> PSSetShader(This,pPixelShader) )
6270
6271#define ID3D10Device_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
6272    ( (This)->lpVtbl -> PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
6273
6274#define ID3D10Device_VSSetShader(This,pVertexShader)   \
6275    ( (This)->lpVtbl -> VSSetShader(This,pVertexShader) )
6276
6277#define ID3D10Device_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)   \
6278    ( (This)->lpVtbl -> DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) )
6279
6280#define ID3D10Device_Draw(This,VertexCount,StartVertexLocation)   \
6281    ( (This)->lpVtbl -> Draw(This,VertexCount,StartVertexLocation) )
6282
6283#define ID3D10Device_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
6284    ( (This)->lpVtbl -> PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
6285
6286#define ID3D10Device_IASetInputLayout(This,pInputLayout)   \
6287    ( (This)->lpVtbl -> IASetInputLayout(This,pInputLayout) )
6288
6289#define ID3D10Device_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)   \
6290    ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) )
6291
6292#define ID3D10Device_IASetIndexBuffer(This,pIndexBuffer,Format,Offset)   \
6293    ( (This)->lpVtbl -> IASetIndexBuffer(This,pIndexBuffer,Format,Offset) )
6294
6295#define ID3D10Device_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)   \
6296    ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
6297
6298#define ID3D10Device_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)   \
6299    ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
6300
6301#define ID3D10Device_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
6302    ( (This)->lpVtbl -> GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
6303
6304#define ID3D10Device_GSSetShader(This,pShader)   \
6305    ( (This)->lpVtbl -> GSSetShader(This,pShader) )
6306
6307#define ID3D10Device_IASetPrimitiveTopology(This,Topology)   \
6308    ( (This)->lpVtbl -> IASetPrimitiveTopology(This,Topology) )
6309
6310#define ID3D10Device_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
6311    ( (This)->lpVtbl -> VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
6312
6313#define ID3D10Device_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
6314    ( (This)->lpVtbl -> VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
6315
6316#define ID3D10Device_SetPredication(This,pPredicate,PredicateValue)   \
6317    ( (This)->lpVtbl -> SetPredication(This,pPredicate,PredicateValue) )
6318
6319#define ID3D10Device_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
6320    ( (This)->lpVtbl -> GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
6321
6322#define ID3D10Device_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
6323    ( (This)->lpVtbl -> GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
6324
6325#define ID3D10Device_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)   \
6326    ( (This)->lpVtbl -> OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) )
6327
6328#define ID3D10Device_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)   \
6329    ( (This)->lpVtbl -> OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) )
6330
6331#define ID3D10Device_OMSetDepthStencilState(This,pDepthStencilState,StencilRef)   \
6332    ( (This)->lpVtbl -> OMSetDepthStencilState(This,pDepthStencilState,StencilRef) )
6333
6334#define ID3D10Device_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)   \
6335    ( (This)->lpVtbl -> SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) )
6336
6337#define ID3D10Device_DrawAuto(This)   \
6338    ( (This)->lpVtbl -> DrawAuto(This) )
6339
6340#define ID3D10Device_RSSetState(This,pRasterizerState)   \
6341    ( (This)->lpVtbl -> RSSetState(This,pRasterizerState) )
6342
6343#define ID3D10Device_RSSetViewports(This,NumViewports,pViewports)   \
6344    ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
6345
6346#define ID3D10Device_RSSetScissorRects(This,NumRects,pRects)   \
6347    ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
6348
6349#define ID3D10Device_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)   \
6350    ( (This)->lpVtbl -> CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) )
6351
6352#define ID3D10Device_CopyResource(This,pDstResource,pSrcResource)   \
6353    ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
6354
6355#define ID3D10Device_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)   \
6356    ( (This)->lpVtbl -> UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
6357
6358#define ID3D10Device_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)   \
6359    ( (This)->lpVtbl -> ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) )
6360
6361#define ID3D10Device_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)   \
6362    ( (This)->lpVtbl -> ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) )
6363
6364#define ID3D10Device_GenerateMips(This,pShaderResourceView)   \
6365    ( (This)->lpVtbl -> GenerateMips(This,pShaderResourceView) )
6366
6367#define ID3D10Device_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)   \
6368    ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
6369
6370#define ID3D10Device_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
6371    ( (This)->lpVtbl -> VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
6372
6373#define ID3D10Device_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
6374    ( (This)->lpVtbl -> PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
6375
6376#define ID3D10Device_PSGetShader(This,ppPixelShader)   \
6377    ( (This)->lpVtbl -> PSGetShader(This,ppPixelShader) )
6378
6379#define ID3D10Device_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
6380    ( (This)->lpVtbl -> PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
6381
6382#define ID3D10Device_VSGetShader(This,ppVertexShader)   \
6383    ( (This)->lpVtbl -> VSGetShader(This,ppVertexShader) )
6384
6385#define ID3D10Device_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
6386    ( (This)->lpVtbl -> PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
6387
6388#define ID3D10Device_IAGetInputLayout(This,ppInputLayout)   \
6389    ( (This)->lpVtbl -> IAGetInputLayout(This,ppInputLayout) )
6390
6391#define ID3D10Device_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)   \
6392    ( (This)->lpVtbl -> IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) )
6393
6394#define ID3D10Device_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)   \
6395    ( (This)->lpVtbl -> IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) )
6396
6397#define ID3D10Device_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
6398    ( (This)->lpVtbl -> GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
6399
6400#define ID3D10Device_GSGetShader(This,ppGeometryShader)   \
6401    ( (This)->lpVtbl -> GSGetShader(This,ppGeometryShader) )
6402
6403#define ID3D10Device_IAGetPrimitiveTopology(This,pTopology)   \
6404    ( (This)->lpVtbl -> IAGetPrimitiveTopology(This,pTopology) )
6405
6406#define ID3D10Device_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
6407    ( (This)->lpVtbl -> VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
6408
6409#define ID3D10Device_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
6410    ( (This)->lpVtbl -> VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
6411
6412#define ID3D10Device_GetPredication(This,ppPredicate,pPredicateValue)   \
6413    ( (This)->lpVtbl -> GetPredication(This,ppPredicate,pPredicateValue) )
6414
6415#define ID3D10Device_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
6416    ( (This)->lpVtbl -> GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
6417
6418#define ID3D10Device_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
6419    ( (This)->lpVtbl -> GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
6420
6421#define ID3D10Device_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)   \
6422    ( (This)->lpVtbl -> OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) )
6423
6424#define ID3D10Device_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)   \
6425    ( (This)->lpVtbl -> OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) )
6426
6427#define ID3D10Device_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)   \
6428    ( (This)->lpVtbl -> OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) )
6429
6430#define ID3D10Device_SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets)   \
6431    ( (This)->lpVtbl -> SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets) )
6432
6433#define ID3D10Device_RSGetState(This,ppRasterizerState)   \
6434    ( (This)->lpVtbl -> RSGetState(This,ppRasterizerState) )
6435
6436#define ID3D10Device_RSGetViewports(This,NumViewports,pViewports)   \
6437    ( (This)->lpVtbl -> RSGetViewports(This,NumViewports,pViewports) )
6438
6439#define ID3D10Device_RSGetScissorRects(This,NumRects,pRects)   \
6440    ( (This)->lpVtbl -> RSGetScissorRects(This,NumRects,pRects) )
6441
6442#define ID3D10Device_GetDeviceRemovedReason(This)   \
6443    ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
6444
6445#define ID3D10Device_SetExceptionMode(This,RaiseFlags)   \
6446    ( (This)->lpVtbl -> SetExceptionMode(This,RaiseFlags) )
6447
6448#define ID3D10Device_GetExceptionMode(This)   \
6449    ( (This)->lpVtbl -> GetExceptionMode(This) )
6450
6451#define ID3D10Device_GetPrivateData(This,guid,pDataSize,pData)   \
6452    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6453
6454#define ID3D10Device_SetPrivateData(This,guid,DataSize,pData)   \
6455    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6456
6457#define ID3D10Device_SetPrivateDataInterface(This,guid,pData)   \
6458    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6459
6460#define ID3D10Device_ClearState(This)   \
6461    ( (This)->lpVtbl -> ClearState(This) )
6462
6463#define ID3D10Device_Flush(This)   \
6464    ( (This)->lpVtbl -> Flush(This) )
6465
6466#define ID3D10Device_CreateBuffer(This,pDesc,pInitialData,ppBuffer)   \
6467    ( (This)->lpVtbl -> CreateBuffer(This,pDesc,pInitialData,ppBuffer) )
6468
6469#define ID3D10Device_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)   \
6470    ( (This)->lpVtbl -> CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) )
6471
6472#define ID3D10Device_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)   \
6473    ( (This)->lpVtbl -> CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) )
6474
6475#define ID3D10Device_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)   \
6476    ( (This)->lpVtbl -> CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) )
6477
6478#define ID3D10Device_CreateShaderResourceView(This,pResource,pDesc,ppSRView)   \
6479    ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,ppSRView) )
6480
6481#define ID3D10Device_CreateRenderTargetView(This,pResource,pDesc,ppRTView)   \
6482    ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,ppRTView) )
6483
6484#define ID3D10Device_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)   \
6485    ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) )
6486
6487#define ID3D10Device_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)   \
6488    ( (This)->lpVtbl -> CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) )
6489
6490#define ID3D10Device_CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader)   \
6491    ( (This)->lpVtbl -> CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader) )
6492
6493#define ID3D10Device_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader)   \
6494    ( (This)->lpVtbl -> CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader) )
6495
6496#define ID3D10Device_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader)   \
6497    ( (This)->lpVtbl -> CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader) )
6498
6499#define ID3D10Device_CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader)   \
6500    ( (This)->lpVtbl -> CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader) )
6501
6502#define ID3D10Device_CreateBlendState(This,pBlendStateDesc,ppBlendState)   \
6503    ( (This)->lpVtbl -> CreateBlendState(This,pBlendStateDesc,ppBlendState) )
6504
6505#define ID3D10Device_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)   \
6506    ( (This)->lpVtbl -> CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) )
6507
6508#define ID3D10Device_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)   \
6509    ( (This)->lpVtbl -> CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) )
6510
6511#define ID3D10Device_CreateSamplerState(This,pSamplerDesc,ppSamplerState)   \
6512    ( (This)->lpVtbl -> CreateSamplerState(This,pSamplerDesc,ppSamplerState) )
6513
6514#define ID3D10Device_CreateQuery(This,pQueryDesc,ppQuery)   \
6515    ( (This)->lpVtbl -> CreateQuery(This,pQueryDesc,ppQuery) )
6516
6517#define ID3D10Device_CreatePredicate(This,pPredicateDesc,ppPredicate)   \
6518    ( (This)->lpVtbl -> CreatePredicate(This,pPredicateDesc,ppPredicate) )
6519
6520#define ID3D10Device_CreateCounter(This,pCounterDesc,ppCounter)   \
6521    ( (This)->lpVtbl -> CreateCounter(This,pCounterDesc,ppCounter) )
6522
6523#define ID3D10Device_CheckFormatSupport(This,Format,pFormatSupport)   \
6524    ( (This)->lpVtbl -> CheckFormatSupport(This,Format,pFormatSupport) )
6525
6526#define ID3D10Device_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)   \
6527    ( (This)->lpVtbl -> CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) )
6528
6529#define ID3D10Device_CheckCounterInfo(This,pCounterInfo)   \
6530    ( (This)->lpVtbl -> CheckCounterInfo(This,pCounterInfo) )
6531
6532#define ID3D10Device_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)   \
6533    ( (This)->lpVtbl -> CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) )
6534
6535#define ID3D10Device_GetCreationFlags(This)   \
6536    ( (This)->lpVtbl -> GetCreationFlags(This) )
6537
6538#define ID3D10Device_OpenSharedResource(This,hResource,ReturnedInterface,ppResource)   \
6539    ( (This)->lpVtbl -> OpenSharedResource(This,hResource,ReturnedInterface,ppResource) )
6540
6541#define ID3D10Device_SetTextFilterSize(This,Width,Height)   \
6542    ( (This)->lpVtbl -> SetTextFilterSize(This,Width,Height) )
6543
6544#define ID3D10Device_GetTextFilterSize(This,pWidth,pHeight)   \
6545    ( (This)->lpVtbl -> GetTextFilterSize(This,pWidth,pHeight) )
6546
6547#endif /* COBJMACROS */
6548
6549
6550#endif    /* C style interface */
6551
6552
6553
6554
6555#endif    /* __ID3D10Device_INTERFACE_DEFINED__ */
6556
6557
6558#ifndef __ID3D10Multithread_INTERFACE_DEFINED__
6559#define __ID3D10Multithread_INTERFACE_DEFINED__
6560
6561/* interface ID3D10Multithread */
6562/* [unique][local][object][uuid] */
6563
6564
6565EXTERN_C const IID IID_ID3D10Multithread;
6566
6567#if defined(__cplusplus) && !defined(CINTERFACE)
6568   
6569    MIDL_INTERFACE("9B7E4E00-342C-4106-A19F-4F2704F689F0")
6570    ID3D10Multithread : public IUnknown
6571    {
6572    public:
6573        virtual void STDMETHODCALLTYPE Enter( void) = 0;
6574       
6575        virtual void STDMETHODCALLTYPE Leave( void) = 0;
6576       
6577        virtual BOOL STDMETHODCALLTYPE SetMultithreadProtected(
6578            /* [annotation] */
6579            __in  BOOL bMTProtect) = 0;
6580       
6581        virtual BOOL STDMETHODCALLTYPE GetMultithreadProtected( void) = 0;
6582       
6583    };
6584   
6585#else    /* C style interface */
6586
6587    typedef struct ID3D10MultithreadVtbl
6588    {
6589        BEGIN_INTERFACE
6590       
6591        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6592            ID3D10Multithread * This,
6593            /* [in] */ REFIID riid,
6594            /* [annotation][iid_is][out] */
6595            __RPC__deref_out  void **ppvObject);
6596       
6597        ULONG ( STDMETHODCALLTYPE *AddRef )(
6598            ID3D10Multithread * This);
6599       
6600        ULONG ( STDMETHODCALLTYPE *Release )(
6601            ID3D10Multithread * This);
6602       
6603        void ( STDMETHODCALLTYPE *Enter )(
6604            ID3D10Multithread * This);
6605       
6606        void ( STDMETHODCALLTYPE *Leave )(
6607            ID3D10Multithread * This);
6608       
6609        BOOL ( STDMETHODCALLTYPE *SetMultithreadProtected )(
6610            ID3D10Multithread * This,
6611            /* [annotation] */
6612            __in  BOOL bMTProtect);
6613       
6614        BOOL ( STDMETHODCALLTYPE *GetMultithreadProtected )(
6615            ID3D10Multithread * This);
6616       
6617        END_INTERFACE
6618    } ID3D10MultithreadVtbl;
6619
6620    interface ID3D10Multithread
6621    {
6622        CONST_VTBL struct ID3D10MultithreadVtbl *lpVtbl;
6623    };
6624
6625   
6626
6627#ifdef COBJMACROS
6628
6629
6630#define ID3D10Multithread_QueryInterface(This,riid,ppvObject)   \
6631    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6632
6633#define ID3D10Multithread_AddRef(This)   \
6634    ( (This)->lpVtbl -> AddRef(This) )
6635
6636#define ID3D10Multithread_Release(This)   \
6637    ( (This)->lpVtbl -> Release(This) )
6638
6639
6640#define ID3D10Multithread_Enter(This)   \
6641    ( (This)->lpVtbl -> Enter(This) )
6642
6643#define ID3D10Multithread_Leave(This)   \
6644    ( (This)->lpVtbl -> Leave(This) )
6645
6646#define ID3D10Multithread_SetMultithreadProtected(This,bMTProtect)   \
6647    ( (This)->lpVtbl -> SetMultithreadProtected(This,bMTProtect) )
6648
6649#define ID3D10Multithread_GetMultithreadProtected(This)   \
6650    ( (This)->lpVtbl -> GetMultithreadProtected(This) )
6651
6652#endif /* COBJMACROS */
6653
6654
6655#endif    /* C style interface */
6656
6657
6658
6659
6660#endif    /* __ID3D10Multithread_INTERFACE_DEFINED__ */
6661
6662
6663/* interface __MIDL_itf_d3d10_0000_0024 */
6664/* [local] */
6665
6666typedef
6667enum D3D10_CREATE_DEVICE_FLAG
6668    {   D3D10_CREATE_DEVICE_SINGLETHREADED   = 0x1,
6669   D3D10_CREATE_DEVICE_DEBUG   = 0x2,
6670   D3D10_CREATE_DEVICE_SWITCH_TO_REF   = 0x4,
6671   D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS   = 0x8,
6672   D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP   = 0x10,
6673   D3D10_CREATE_DEVICE_BGRA_SUPPORT   = 0x20,
6674   D3D10_CREATE_DEVICE_STRICT_VALIDATION   = 0x200
6675    }    D3D10_CREATE_DEVICE_FLAG;
6676
6677
6678#define   D3D10_SDK_VERSION   ( 29 )
6679
6680#if !defined( D3D10_IGNORE_SDK_LAYERS )
6681#include "d3d10sdklayers.h"
6682#endif
6683#include "d3d10misc.h"
6684#include "d3d10shader.h"
6685#include "d3d10effect.h"
6686DEFINE_GUID(IID_ID3D10DeviceChild,0x9B7E4C00,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6687DEFINE_GUID(IID_ID3D10DepthStencilState,0x2B4B1CC8,0xA4AD,0x41f8,0x83,0x22,0xCA,0x86,0xFC,0x3E,0xC6,0x75);
6688DEFINE_GUID(IID_ID3D10BlendState,0xEDAD8D19,0x8A35,0x4d6d,0x85,0x66,0x2E,0xA2,0x76,0xCD,0xE1,0x61);
6689DEFINE_GUID(IID_ID3D10RasterizerState,0xA2A07292,0x89AF,0x4345,0xBE,0x2E,0xC5,0x3D,0x9F,0xBB,0x6E,0x9F);
6690DEFINE_GUID(IID_ID3D10Resource,0x9B7E4C01,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6691DEFINE_GUID(IID_ID3D10Buffer,0x9B7E4C02,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6692DEFINE_GUID(IID_ID3D10Texture1D,0x9B7E4C03,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6693DEFINE_GUID(IID_ID3D10Texture2D,0x9B7E4C04,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6694DEFINE_GUID(IID_ID3D10Texture3D,0x9B7E4C05,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6695DEFINE_GUID(IID_ID3D10View,0xC902B03F,0x60A7,0x49BA,0x99,0x36,0x2A,0x3A,0xB3,0x7A,0x7E,0x33);
6696DEFINE_GUID(IID_ID3D10ShaderResourceView,0x9B7E4C07,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6697DEFINE_GUID(IID_ID3D10RenderTargetView,0x9B7E4C08,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6698DEFINE_GUID(IID_ID3D10DepthStencilView,0x9B7E4C09,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6699DEFINE_GUID(IID_ID3D10VertexShader,0x9B7E4C0A,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6700DEFINE_GUID(IID_ID3D10GeometryShader,0x6316BE88,0x54CD,0x4040,0xAB,0x44,0x20,0x46,0x1B,0xC8,0x1F,0x68);
6701DEFINE_GUID(IID_ID3D10PixelShader,0x4968B601,0x9D00,0x4cde,0x83,0x46,0x8E,0x7F,0x67,0x58,0x19,0xB6);
6702DEFINE_GUID(IID_ID3D10InputLayout,0x9B7E4C0B,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6703DEFINE_GUID(IID_ID3D10SamplerState,0x9B7E4C0C,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6704DEFINE_GUID(IID_ID3D10Asynchronous,0x9B7E4C0D,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6705DEFINE_GUID(IID_ID3D10Query,0x9B7E4C0E,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6706DEFINE_GUID(IID_ID3D10Predicate,0x9B7E4C10,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6707DEFINE_GUID(IID_ID3D10Counter,0x9B7E4C11,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6708DEFINE_GUID(IID_ID3D10Device,0x9B7E4C0F,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6709DEFINE_GUID(IID_ID3D10Multithread,0x9B7E4E00,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
6710
6711
6712extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0024_v0_0_c_ifspec;
6713extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0024_v0_0_s_ifspec;
6714
6715/* Additional Prototypes for ALL interfaces */
6716
6717/* end of Additional Prototypes */
6718
6719#ifdef __cplusplus
6720}
6721#endif
6722
6723#endif
6724
6725
trunk/3rdparty/dxsdk/Include/d3d10_1.h
r0r243311
1
2
3/* this ALWAYS GENERATED file contains the definitions for the interfaces */
4
5
6 /* File created by MIDL compiler version 7.00.0555 */
7/* @@MIDL_FILE_HEADING(  ) */
8
9#ifdef _MSC_VER
10#pragma warning( disable: 4049 )  /* more than 64k source lines */
11#endif // _MSC_VER
12
13
14/* verify that the <rpcndr.h> version is high enough to compile this file*/
15#ifndef __REQUIRED_RPCNDR_H_VERSION__
16#define __REQUIRED_RPCNDR_H_VERSION__ 475
17#endif
18
19/* verify that the <rpcsal.h> version is high enough to compile this file*/
20#ifndef __REQUIRED_RPCSAL_H_VERSION__
21#define __REQUIRED_RPCSAL_H_VERSION__ 100
22#endif
23
24#include "rpc.h"
25#include "rpcndr.h"
26
27#ifndef __RPCNDR_H_VERSION__
28#error this stub requires an updated version of <rpcndr.h>
29#endif // __RPCNDR_H_VERSION__
30
31#ifndef COM_NO_WINDOWS_H
32#include "windows.h"
33#include "ole2.h"
34#endif /*COM_NO_WINDOWS_H*/
35
36#ifndef __d3d10_1_h__
37#define __d3d10_1_h__
38
39#if defined(_MSC_VER) && (_MSC_VER >= 1020)
40#pragma once
41#endif
42
43/* Forward Declarations */
44
45#ifndef __ID3D10BlendState1_FWD_DEFINED__
46#define __ID3D10BlendState1_FWD_DEFINED__
47typedef interface ID3D10BlendState1 ID3D10BlendState1;
48#endif    /* __ID3D10BlendState1_FWD_DEFINED__ */
49
50
51#ifndef __ID3D10ShaderResourceView1_FWD_DEFINED__
52#define __ID3D10ShaderResourceView1_FWD_DEFINED__
53typedef interface ID3D10ShaderResourceView1 ID3D10ShaderResourceView1;
54#endif    /* __ID3D10ShaderResourceView1_FWD_DEFINED__ */
55
56
57#ifndef __ID3D10Device1_FWD_DEFINED__
58#define __ID3D10Device1_FWD_DEFINED__
59typedef interface ID3D10Device1 ID3D10Device1;
60#endif    /* __ID3D10Device1_FWD_DEFINED__ */
61
62
63/* header files for imported files */
64#include "oaidl.h"
65#include "ocidl.h"
66
67#ifdef __cplusplus
68extern "C"{
69#endif
70
71
72/* interface __MIDL_itf_d3d10_1_0000_0000 */
73/* [local] */
74
75#if defined( __d3d10_h__ ) && !defined( D3D10_ARBITRARY_HEADER_ORDERING )
76#error d3d10.h is included before d3d10_1.h, and it will confuse tools that honor SAL annotations. \
77If possibly targeting d3d10.1, include d3d10_1.h instead of d3d10.h, or ensure d3d10_1.h is included before d3d10.h
78#endif
79#ifndef _D3D10_1_CONSTANTS
80#define _D3D10_1_CONSTANTS
81#define   D3D10_1_DEFAULT_SAMPLE_MASK   ( 0xffffffff )
82
83#define D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP   ( 0.6 )
84#define D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP   ( 0.6f )
85#define   D3D10_1_GS_INPUT_REGISTER_COUNT   ( 32 )
86
87#define   D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT   ( 32 )
88
89#define   D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS   ( 128 )
90
91#define   D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT   ( 32 )
92
93#define   D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENTS   ( 1 )
94
95#define   D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
96
97#define   D3D10_1_PS_OUTPUT_MASK_REGISTER_COUNT   ( 1 )
98
99#define   D3D10_1_SHADER_MAJOR_VERSION   ( 4 )
100
101#define   D3D10_1_SHADER_MINOR_VERSION   ( 1 )
102
103#define   D3D10_1_SO_BUFFER_MAX_STRIDE_IN_BYTES   ( 2048 )
104
105#define   D3D10_1_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES   ( 256 )
106
107#define   D3D10_1_SO_BUFFER_SLOT_COUNT   ( 4 )
108
109#define   D3D10_1_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER   ( 1 )
110
111#define   D3D10_1_SO_SINGLE_BUFFER_COMPONENT_LIMIT   ( 64 )
112
113#define   D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT   ( 32 )
114
115#define   D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT   ( 8 )
116
117#define   D3D10_1_VS_INPUT_REGISTER_COUNT   ( 32 )
118
119#define   D3D10_1_VS_OUTPUT_REGISTER_COUNT   ( 32 )
120
121#endif
122#include "d3d10.h" //
123
124typedef
125enum D3D10_FEATURE_LEVEL1
126    {   D3D10_FEATURE_LEVEL_10_0   = 0xa000,
127   D3D10_FEATURE_LEVEL_10_1   = 0xa100,
128   D3D10_FEATURE_LEVEL_9_1   = 0x9100,
129   D3D10_FEATURE_LEVEL_9_2   = 0x9200,
130   D3D10_FEATURE_LEVEL_9_3   = 0x9300
131    }    D3D10_FEATURE_LEVEL1;
132
133typedef struct D3D10_RENDER_TARGET_BLEND_DESC1
134    {
135    BOOL BlendEnable;
136    D3D10_BLEND SrcBlend;
137    D3D10_BLEND DestBlend;
138    D3D10_BLEND_OP BlendOp;
139    D3D10_BLEND SrcBlendAlpha;
140    D3D10_BLEND DestBlendAlpha;
141    D3D10_BLEND_OP BlendOpAlpha;
142    UINT8 RenderTargetWriteMask;
143    }    D3D10_RENDER_TARGET_BLEND_DESC1;
144
145typedef struct D3D10_BLEND_DESC1
146    {
147    BOOL AlphaToCoverageEnable;
148    BOOL IndependentBlendEnable;
149    D3D10_RENDER_TARGET_BLEND_DESC1 RenderTarget[ 8 ];
150    }    D3D10_BLEND_DESC1;
151
152
153
154extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0000_v0_0_c_ifspec;
155extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0000_v0_0_s_ifspec;
156
157#ifndef __ID3D10BlendState1_INTERFACE_DEFINED__
158#define __ID3D10BlendState1_INTERFACE_DEFINED__
159
160/* interface ID3D10BlendState1 */
161/* [unique][local][object][uuid] */
162
163
164EXTERN_C const IID IID_ID3D10BlendState1;
165
166#if defined(__cplusplus) && !defined(CINTERFACE)
167   
168    MIDL_INTERFACE("EDAD8D99-8A35-4d6d-8566-2EA276CDE161")
169    ID3D10BlendState1 : public ID3D10BlendState
170    {
171    public:
172        virtual void STDMETHODCALLTYPE GetDesc1(
173            /* [annotation] */
174            __out  D3D10_BLEND_DESC1 *pDesc) = 0;
175       
176    };
177   
178#else    /* C style interface */
179
180    typedef struct ID3D10BlendState1Vtbl
181    {
182        BEGIN_INTERFACE
183       
184        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
185            ID3D10BlendState1 * This,
186            /* [in] */ REFIID riid,
187            /* [annotation][iid_is][out] */
188            __RPC__deref_out  void **ppvObject);
189       
190        ULONG ( STDMETHODCALLTYPE *AddRef )(
191            ID3D10BlendState1 * This);
192       
193        ULONG ( STDMETHODCALLTYPE *Release )(
194            ID3D10BlendState1 * This);
195       
196        void ( STDMETHODCALLTYPE *GetDevice )(
197            ID3D10BlendState1 * This,
198            /* [annotation] */
199            __out  ID3D10Device **ppDevice);
200       
201        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
202            ID3D10BlendState1 * This,
203            /* [annotation] */
204            __in  REFGUID guid,
205            /* [annotation] */
206            __inout  UINT *pDataSize,
207            /* [annotation] */
208            __out_bcount_opt(*pDataSize)  void *pData);
209       
210        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
211            ID3D10BlendState1 * This,
212            /* [annotation] */
213            __in  REFGUID guid,
214            /* [annotation] */
215            __in  UINT DataSize,
216            /* [annotation] */
217            __in_bcount_opt(DataSize)  const void *pData);
218       
219        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
220            ID3D10BlendState1 * This,
221            /* [annotation] */
222            __in  REFGUID guid,
223            /* [annotation] */
224            __in_opt  const IUnknown *pData);
225       
226        void ( STDMETHODCALLTYPE *GetDesc )(
227            ID3D10BlendState1 * This,
228            /* [annotation] */
229            __out  D3D10_BLEND_DESC *pDesc);
230       
231        void ( STDMETHODCALLTYPE *GetDesc1 )(
232            ID3D10BlendState1 * This,
233            /* [annotation] */
234            __out  D3D10_BLEND_DESC1 *pDesc);
235       
236        END_INTERFACE
237    } ID3D10BlendState1Vtbl;
238
239    interface ID3D10BlendState1
240    {
241        CONST_VTBL struct ID3D10BlendState1Vtbl *lpVtbl;
242    };
243
244   
245
246#ifdef COBJMACROS
247
248
249#define ID3D10BlendState1_QueryInterface(This,riid,ppvObject)   \
250    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
251
252#define ID3D10BlendState1_AddRef(This)   \
253    ( (This)->lpVtbl -> AddRef(This) )
254
255#define ID3D10BlendState1_Release(This)   \
256    ( (This)->lpVtbl -> Release(This) )
257
258
259#define ID3D10BlendState1_GetDevice(This,ppDevice)   \
260    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
261
262#define ID3D10BlendState1_GetPrivateData(This,guid,pDataSize,pData)   \
263    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
264
265#define ID3D10BlendState1_SetPrivateData(This,guid,DataSize,pData)   \
266    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
267
268#define ID3D10BlendState1_SetPrivateDataInterface(This,guid,pData)   \
269    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
270
271
272#define ID3D10BlendState1_GetDesc(This,pDesc)   \
273    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
274
275
276#define ID3D10BlendState1_GetDesc1(This,pDesc)   \
277    ( (This)->lpVtbl -> GetDesc1(This,pDesc) )
278
279#endif /* COBJMACROS */
280
281
282#endif    /* C style interface */
283
284
285
286
287#endif    /* __ID3D10BlendState1_INTERFACE_DEFINED__ */
288
289
290/* interface __MIDL_itf_d3d10_1_0000_0001 */
291/* [local] */
292
293typedef struct D3D10_TEXCUBE_ARRAY_SRV1
294    {
295    UINT MostDetailedMip;
296    UINT MipLevels;
297    UINT First2DArrayFace;
298    UINT NumCubes;
299    }    D3D10_TEXCUBE_ARRAY_SRV1;
300
301typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION1;
302
303typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC1
304    {
305    DXGI_FORMAT Format;
306    D3D10_SRV_DIMENSION1 ViewDimension;
307    union
308        {
309        D3D10_BUFFER_SRV Buffer;
310        D3D10_TEX1D_SRV Texture1D;
311        D3D10_TEX1D_ARRAY_SRV Texture1DArray;
312        D3D10_TEX2D_SRV Texture2D;
313        D3D10_TEX2D_ARRAY_SRV Texture2DArray;
314        D3D10_TEX2DMS_SRV Texture2DMS;
315        D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
316        D3D10_TEX3D_SRV Texture3D;
317        D3D10_TEXCUBE_SRV TextureCube;
318        D3D10_TEXCUBE_ARRAY_SRV1 TextureCubeArray;
319        }    ;
320    }    D3D10_SHADER_RESOURCE_VIEW_DESC1;
321
322
323
324extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0001_v0_0_c_ifspec;
325extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0001_v0_0_s_ifspec;
326
327#ifndef __ID3D10ShaderResourceView1_INTERFACE_DEFINED__
328#define __ID3D10ShaderResourceView1_INTERFACE_DEFINED__
329
330/* interface ID3D10ShaderResourceView1 */
331/* [unique][local][object][uuid] */
332
333
334EXTERN_C const IID IID_ID3D10ShaderResourceView1;
335
336#if defined(__cplusplus) && !defined(CINTERFACE)
337   
338    MIDL_INTERFACE("9B7E4C87-342C-4106-A19F-4F2704F689F0")
339    ID3D10ShaderResourceView1 : public ID3D10ShaderResourceView
340    {
341    public:
342        virtual void STDMETHODCALLTYPE GetDesc1(
343            /* [annotation] */
344            __out  D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc) = 0;
345       
346    };
347   
348#else    /* C style interface */
349
350    typedef struct ID3D10ShaderResourceView1Vtbl
351    {
352        BEGIN_INTERFACE
353       
354        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
355            ID3D10ShaderResourceView1 * This,
356            /* [in] */ REFIID riid,
357            /* [annotation][iid_is][out] */
358            __RPC__deref_out  void **ppvObject);
359       
360        ULONG ( STDMETHODCALLTYPE *AddRef )(
361            ID3D10ShaderResourceView1 * This);
362       
363        ULONG ( STDMETHODCALLTYPE *Release )(
364            ID3D10ShaderResourceView1 * This);
365       
366        void ( STDMETHODCALLTYPE *GetDevice )(
367            ID3D10ShaderResourceView1 * This,
368            /* [annotation] */
369            __out  ID3D10Device **ppDevice);
370       
371        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
372            ID3D10ShaderResourceView1 * This,
373            /* [annotation] */
374            __in  REFGUID guid,
375            /* [annotation] */
376            __inout  UINT *pDataSize,
377            /* [annotation] */
378            __out_bcount_opt(*pDataSize)  void *pData);
379       
380        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
381            ID3D10ShaderResourceView1 * This,
382            /* [annotation] */
383            __in  REFGUID guid,
384            /* [annotation] */
385            __in  UINT DataSize,
386            /* [annotation] */
387            __in_bcount_opt(DataSize)  const void *pData);
388       
389        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
390            ID3D10ShaderResourceView1 * This,
391            /* [annotation] */
392            __in  REFGUID guid,
393            /* [annotation] */
394            __in_opt  const IUnknown *pData);
395       
396        void ( STDMETHODCALLTYPE *GetResource )(
397            ID3D10ShaderResourceView1 * This,
398            /* [annotation] */
399            __out  ID3D10Resource **ppResource);
400       
401        void ( STDMETHODCALLTYPE *GetDesc )(
402            ID3D10ShaderResourceView1 * This,
403            /* [annotation] */
404            __out  D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
405       
406        void ( STDMETHODCALLTYPE *GetDesc1 )(
407            ID3D10ShaderResourceView1 * This,
408            /* [annotation] */
409            __out  D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc);
410       
411        END_INTERFACE
412    } ID3D10ShaderResourceView1Vtbl;
413
414    interface ID3D10ShaderResourceView1
415    {
416        CONST_VTBL struct ID3D10ShaderResourceView1Vtbl *lpVtbl;
417    };
418
419   
420
421#ifdef COBJMACROS
422
423
424#define ID3D10ShaderResourceView1_QueryInterface(This,riid,ppvObject)   \
425    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
426
427#define ID3D10ShaderResourceView1_AddRef(This)   \
428    ( (This)->lpVtbl -> AddRef(This) )
429
430#define ID3D10ShaderResourceView1_Release(This)   \
431    ( (This)->lpVtbl -> Release(This) )
432
433
434#define ID3D10ShaderResourceView1_GetDevice(This,ppDevice)   \
435    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
436
437#define ID3D10ShaderResourceView1_GetPrivateData(This,guid,pDataSize,pData)   \
438    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
439
440#define ID3D10ShaderResourceView1_SetPrivateData(This,guid,DataSize,pData)   \
441    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
442
443#define ID3D10ShaderResourceView1_SetPrivateDataInterface(This,guid,pData)   \
444    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
445
446
447#define ID3D10ShaderResourceView1_GetResource(This,ppResource)   \
448    ( (This)->lpVtbl -> GetResource(This,ppResource) )
449
450
451#define ID3D10ShaderResourceView1_GetDesc(This,pDesc)   \
452    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
453
454
455#define ID3D10ShaderResourceView1_GetDesc1(This,pDesc)   \
456    ( (This)->lpVtbl -> GetDesc1(This,pDesc) )
457
458#endif /* COBJMACROS */
459
460
461#endif    /* C style interface */
462
463
464
465
466#endif    /* __ID3D10ShaderResourceView1_INTERFACE_DEFINED__ */
467
468
469/* interface __MIDL_itf_d3d10_1_0000_0002 */
470/* [local] */
471
472typedef
473enum D3D10_STANDARD_MULTISAMPLE_QUALITY_LEVELS
474    {   D3D10_STANDARD_MULTISAMPLE_PATTERN   = 0xffffffff,
475   D3D10_CENTER_MULTISAMPLE_PATTERN   = 0xfffffffe
476    }    D3D10_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
477
478
479
480extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0002_v0_0_c_ifspec;
481extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0002_v0_0_s_ifspec;
482
483#ifndef __ID3D10Device1_INTERFACE_DEFINED__
484#define __ID3D10Device1_INTERFACE_DEFINED__
485
486/* interface ID3D10Device1 */
487/* [unique][local][object][uuid] */
488
489
490EXTERN_C const IID IID_ID3D10Device1;
491
492#if defined(__cplusplus) && !defined(CINTERFACE)
493   
494    MIDL_INTERFACE("9B7E4C8F-342C-4106-A19F-4F2704F689F0")
495    ID3D10Device1 : public ID3D10Device
496    {
497    public:
498        virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView1(
499            /* [annotation] */
500            __in  ID3D10Resource *pResource,
501            /* [annotation] */
502            __in_opt  const D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc,
503            /* [annotation] */
504            __out_opt  ID3D10ShaderResourceView1 **ppSRView) = 0;
505       
506        virtual HRESULT STDMETHODCALLTYPE CreateBlendState1(
507            /* [annotation] */
508            __in  const D3D10_BLEND_DESC1 *pBlendStateDesc,
509            /* [annotation] */
510            __out_opt  ID3D10BlendState1 **ppBlendState) = 0;
511       
512        virtual D3D10_FEATURE_LEVEL1 STDMETHODCALLTYPE GetFeatureLevel( void) = 0;
513       
514    };
515   
516#else    /* C style interface */
517
518    typedef struct ID3D10Device1Vtbl
519    {
520        BEGIN_INTERFACE
521       
522        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
523            ID3D10Device1 * This,
524            /* [in] */ REFIID riid,
525            /* [annotation][iid_is][out] */
526            __RPC__deref_out  void **ppvObject);
527       
528        ULONG ( STDMETHODCALLTYPE *AddRef )(
529            ID3D10Device1 * This);
530       
531        ULONG ( STDMETHODCALLTYPE *Release )(
532            ID3D10Device1 * This);
533       
534        void ( STDMETHODCALLTYPE *VSSetConstantBuffers )(
535            ID3D10Device1 * This,
536            /* [annotation] */
537            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
538            /* [annotation] */
539            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
540            /* [annotation] */
541            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers);
542       
543        void ( STDMETHODCALLTYPE *PSSetShaderResources )(
544            ID3D10Device1 * This,
545            /* [annotation] */
546            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
547            /* [annotation] */
548            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
549            /* [annotation] */
550            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews);
551       
552        void ( STDMETHODCALLTYPE *PSSetShader )(
553            ID3D10Device1 * This,
554            /* [annotation] */
555            __in_opt  ID3D10PixelShader *pPixelShader);
556       
557        void ( STDMETHODCALLTYPE *PSSetSamplers )(
558            ID3D10Device1 * This,
559            /* [annotation] */
560            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
561            /* [annotation] */
562            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
563            /* [annotation] */
564            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers);
565       
566        void ( STDMETHODCALLTYPE *VSSetShader )(
567            ID3D10Device1 * This,
568            /* [annotation] */
569            __in_opt  ID3D10VertexShader *pVertexShader);
570       
571        void ( STDMETHODCALLTYPE *DrawIndexed )(
572            ID3D10Device1 * This,
573            /* [annotation] */
574            __in  UINT IndexCount,
575            /* [annotation] */
576            __in  UINT StartIndexLocation,
577            /* [annotation] */
578            __in  INT BaseVertexLocation);
579       
580        void ( STDMETHODCALLTYPE *Draw )(
581            ID3D10Device1 * This,
582            /* [annotation] */
583            __in  UINT VertexCount,
584            /* [annotation] */
585            __in  UINT StartVertexLocation);
586       
587        void ( STDMETHODCALLTYPE *PSSetConstantBuffers )(
588            ID3D10Device1 * This,
589            /* [annotation] */
590            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
591            /* [annotation] */
592            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
593            /* [annotation] */
594            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers);
595       
596        void ( STDMETHODCALLTYPE *IASetInputLayout )(
597            ID3D10Device1 * This,
598            /* [annotation] */
599            __in_opt  ID3D10InputLayout *pInputLayout);
600       
601        void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
602            ID3D10Device1 * This,
603            /* [annotation] */
604            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
605            /* [annotation] */
606            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
607            /* [annotation] */
608            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppVertexBuffers,
609            /* [annotation] */
610            __in_ecount(NumBuffers)  const UINT *pStrides,
611            /* [annotation] */
612            __in_ecount(NumBuffers)  const UINT *pOffsets);
613       
614        void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
615            ID3D10Device1 * This,
616            /* [annotation] */
617            __in_opt  ID3D10Buffer *pIndexBuffer,
618            /* [annotation] */
619            __in  DXGI_FORMAT Format,
620            /* [annotation] */
621            __in  UINT Offset);
622       
623        void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
624            ID3D10Device1 * This,
625            /* [annotation] */
626            __in  UINT IndexCountPerInstance,
627            /* [annotation] */
628            __in  UINT InstanceCount,
629            /* [annotation] */
630            __in  UINT StartIndexLocation,
631            /* [annotation] */
632            __in  INT BaseVertexLocation,
633            /* [annotation] */
634            __in  UINT StartInstanceLocation);
635       
636        void ( STDMETHODCALLTYPE *DrawInstanced )(
637            ID3D10Device1 * This,
638            /* [annotation] */
639            __in  UINT VertexCountPerInstance,
640            /* [annotation] */
641            __in  UINT InstanceCount,
642            /* [annotation] */
643            __in  UINT StartVertexLocation,
644            /* [annotation] */
645            __in  UINT StartInstanceLocation);
646       
647        void ( STDMETHODCALLTYPE *GSSetConstantBuffers )(
648            ID3D10Device1 * This,
649            /* [annotation] */
650            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
651            /* [annotation] */
652            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
653            /* [annotation] */
654            __in_ecount(NumBuffers)  ID3D10Buffer *const *ppConstantBuffers);
655       
656        void ( STDMETHODCALLTYPE *GSSetShader )(
657            ID3D10Device1 * This,
658            /* [annotation] */
659            __in_opt  ID3D10GeometryShader *pShader);
660       
661        void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
662            ID3D10Device1 * This,
663            /* [annotation] */
664            __in  D3D10_PRIMITIVE_TOPOLOGY Topology);
665       
666        void ( STDMETHODCALLTYPE *VSSetShaderResources )(
667            ID3D10Device1 * This,
668            /* [annotation] */
669            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
670            /* [annotation] */
671            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
672            /* [annotation] */
673            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews);
674       
675        void ( STDMETHODCALLTYPE *VSSetSamplers )(
676            ID3D10Device1 * This,
677            /* [annotation] */
678            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
679            /* [annotation] */
680            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
681            /* [annotation] */
682            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers);
683       
684        void ( STDMETHODCALLTYPE *SetPredication )(
685            ID3D10Device1 * This,
686            /* [annotation] */
687            __in_opt  ID3D10Predicate *pPredicate,
688            /* [annotation] */
689            __in  BOOL PredicateValue);
690       
691        void ( STDMETHODCALLTYPE *GSSetShaderResources )(
692            ID3D10Device1 * This,
693            /* [annotation] */
694            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
695            /* [annotation] */
696            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
697            /* [annotation] */
698            __in_ecount(NumViews)  ID3D10ShaderResourceView *const *ppShaderResourceViews);
699       
700        void ( STDMETHODCALLTYPE *GSSetSamplers )(
701            ID3D10Device1 * This,
702            /* [annotation] */
703            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
704            /* [annotation] */
705            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
706            /* [annotation] */
707            __in_ecount(NumSamplers)  ID3D10SamplerState *const *ppSamplers);
708       
709        void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
710            ID3D10Device1 * This,
711            /* [annotation] */
712            __in_range( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
713            /* [annotation] */
714            __in_ecount_opt(NumViews)  ID3D10RenderTargetView *const *ppRenderTargetViews,
715            /* [annotation] */
716            __in_opt  ID3D10DepthStencilView *pDepthStencilView);
717       
718        void ( STDMETHODCALLTYPE *OMSetBlendState )(
719            ID3D10Device1 * This,
720            /* [annotation] */
721            __in_opt  ID3D10BlendState *pBlendState,
722            /* [annotation] */
723            __in  const FLOAT BlendFactor[ 4 ],
724            /* [annotation] */
725            __in  UINT SampleMask);
726       
727        void ( STDMETHODCALLTYPE *OMSetDepthStencilState )(
728            ID3D10Device1 * This,
729            /* [annotation] */
730            __in_opt  ID3D10DepthStencilState *pDepthStencilState,
731            /* [annotation] */
732            __in  UINT StencilRef);
733       
734        void ( STDMETHODCALLTYPE *SOSetTargets )(
735            ID3D10Device1 * This,
736            /* [annotation] */
737            __in_range( 0, D3D10_SO_BUFFER_SLOT_COUNT)  UINT NumBuffers,
738            /* [annotation] */
739            __in_ecount_opt(NumBuffers)  ID3D10Buffer *const *ppSOTargets,
740            /* [annotation] */
741            __in_ecount_opt(NumBuffers)  const UINT *pOffsets);
742       
743        void ( STDMETHODCALLTYPE *DrawAuto )(
744            ID3D10Device1 * This);
745       
746        void ( STDMETHODCALLTYPE *RSSetState )(
747            ID3D10Device1 * This,
748            /* [annotation] */
749            __in_opt  ID3D10RasterizerState *pRasterizerState);
750       
751        void ( STDMETHODCALLTYPE *RSSetViewports )(
752            ID3D10Device1 * This,
753            /* [annotation] */
754            __in_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumViewports,
755            /* [annotation] */
756            __in_ecount_opt(NumViewports)  const D3D10_VIEWPORT *pViewports);
757       
758        void ( STDMETHODCALLTYPE *RSSetScissorRects )(
759            ID3D10Device1 * This,
760            /* [annotation] */
761            __in_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumRects,
762            /* [annotation] */
763            __in_ecount_opt(NumRects)  const D3D10_RECT *pRects);
764       
765        void ( STDMETHODCALLTYPE *CopySubresourceRegion )(
766            ID3D10Device1 * This,
767            /* [annotation] */
768            __in  ID3D10Resource *pDstResource,
769            /* [annotation] */
770            __in  UINT DstSubresource,
771            /* [annotation] */
772            __in  UINT DstX,
773            /* [annotation] */
774            __in  UINT DstY,
775            /* [annotation] */
776            __in  UINT DstZ,
777            /* [annotation] */
778            __in  ID3D10Resource *pSrcResource,
779            /* [annotation] */
780            __in  UINT SrcSubresource,
781            /* [annotation] */
782            __in_opt  const D3D10_BOX *pSrcBox);
783       
784        void ( STDMETHODCALLTYPE *CopyResource )(
785            ID3D10Device1 * This,
786            /* [annotation] */
787            __in  ID3D10Resource *pDstResource,
788            /* [annotation] */
789            __in  ID3D10Resource *pSrcResource);
790       
791        void ( STDMETHODCALLTYPE *UpdateSubresource )(
792            ID3D10Device1 * This,
793            /* [annotation] */
794            __in  ID3D10Resource *pDstResource,
795            /* [annotation] */
796            __in  UINT DstSubresource,
797            /* [annotation] */
798            __in_opt  const D3D10_BOX *pDstBox,
799            /* [annotation] */
800            __in  const void *pSrcData,
801            /* [annotation] */
802            __in  UINT SrcRowPitch,
803            /* [annotation] */
804            __in  UINT SrcDepthPitch);
805       
806        void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
807            ID3D10Device1 * This,
808            /* [annotation] */
809            __in  ID3D10RenderTargetView *pRenderTargetView,
810            /* [annotation] */
811            __in  const FLOAT ColorRGBA[ 4 ]);
812       
813        void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
814            ID3D10Device1 * This,
815            /* [annotation] */
816            __in  ID3D10DepthStencilView *pDepthStencilView,
817            /* [annotation] */
818            __in  UINT ClearFlags,
819            /* [annotation] */
820            __in  FLOAT Depth,
821            /* [annotation] */
822            __in  UINT8 Stencil);
823       
824        void ( STDMETHODCALLTYPE *GenerateMips )(
825            ID3D10Device1 * This,
826            /* [annotation] */
827            __in  ID3D10ShaderResourceView *pShaderResourceView);
828       
829        void ( STDMETHODCALLTYPE *ResolveSubresource )(
830            ID3D10Device1 * This,
831            /* [annotation] */
832            __in  ID3D10Resource *pDstResource,
833            /* [annotation] */
834            __in  UINT DstSubresource,
835            /* [annotation] */
836            __in  ID3D10Resource *pSrcResource,
837            /* [annotation] */
838            __in  UINT SrcSubresource,
839            /* [annotation] */
840            __in  DXGI_FORMAT Format);
841       
842        void ( STDMETHODCALLTYPE *VSGetConstantBuffers )(
843            ID3D10Device1 * This,
844            /* [annotation] */
845            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
846            /* [annotation] */
847            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
848            /* [annotation] */
849            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers);
850       
851        void ( STDMETHODCALLTYPE *PSGetShaderResources )(
852            ID3D10Device1 * This,
853            /* [annotation] */
854            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
855            /* [annotation] */
856            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
857            /* [annotation] */
858            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews);
859       
860        void ( STDMETHODCALLTYPE *PSGetShader )(
861            ID3D10Device1 * This,
862            /* [annotation] */
863            __out  ID3D10PixelShader **ppPixelShader);
864       
865        void ( STDMETHODCALLTYPE *PSGetSamplers )(
866            ID3D10Device1 * This,
867            /* [annotation] */
868            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
869            /* [annotation] */
870            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
871            /* [annotation] */
872            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers);
873       
874        void ( STDMETHODCALLTYPE *VSGetShader )(
875            ID3D10Device1 * This,
876            /* [annotation] */
877            __out  ID3D10VertexShader **ppVertexShader);
878       
879        void ( STDMETHODCALLTYPE *PSGetConstantBuffers )(
880            ID3D10Device1 * This,
881            /* [annotation] */
882            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
883            /* [annotation] */
884            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
885            /* [annotation] */
886            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers);
887       
888        void ( STDMETHODCALLTYPE *IAGetInputLayout )(
889            ID3D10Device1 * This,
890            /* [annotation] */
891            __out  ID3D10InputLayout **ppInputLayout);
892       
893        void ( STDMETHODCALLTYPE *IAGetVertexBuffers )(
894            ID3D10Device1 * This,
895            /* [annotation] */
896            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
897            /* [annotation] */
898            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
899            /* [annotation] */
900            __out_ecount_opt(NumBuffers)  ID3D10Buffer **ppVertexBuffers,
901            /* [annotation] */
902            __out_ecount_opt(NumBuffers)  UINT *pStrides,
903            /* [annotation] */
904            __out_ecount_opt(NumBuffers)  UINT *pOffsets);
905       
906        void ( STDMETHODCALLTYPE *IAGetIndexBuffer )(
907            ID3D10Device1 * This,
908            /* [annotation] */
909            __out_opt  ID3D10Buffer **pIndexBuffer,
910            /* [annotation] */
911            __out_opt  DXGI_FORMAT *Format,
912            /* [annotation] */
913            __out_opt  UINT *Offset);
914       
915        void ( STDMETHODCALLTYPE *GSGetConstantBuffers )(
916            ID3D10Device1 * This,
917            /* [annotation] */
918            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
919            /* [annotation] */
920            __in_range( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
921            /* [annotation] */
922            __out_ecount(NumBuffers)  ID3D10Buffer **ppConstantBuffers);
923       
924        void ( STDMETHODCALLTYPE *GSGetShader )(
925            ID3D10Device1 * This,
926            /* [annotation] */
927            __out  ID3D10GeometryShader **ppGeometryShader);
928       
929        void ( STDMETHODCALLTYPE *IAGetPrimitiveTopology )(
930            ID3D10Device1 * This,
931            /* [annotation] */
932            __out  D3D10_PRIMITIVE_TOPOLOGY *pTopology);
933       
934        void ( STDMETHODCALLTYPE *VSGetShaderResources )(
935            ID3D10Device1 * This,
936            /* [annotation] */
937            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
938            /* [annotation] */
939            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
940            /* [annotation] */
941            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews);
942       
943        void ( STDMETHODCALLTYPE *VSGetSamplers )(
944            ID3D10Device1 * This,
945            /* [annotation] */
946            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
947            /* [annotation] */
948            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
949            /* [annotation] */
950            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers);
951       
952        void ( STDMETHODCALLTYPE *GetPredication )(
953            ID3D10Device1 * This,
954            /* [annotation] */
955            __out_opt  ID3D10Predicate **ppPredicate,
956            /* [annotation] */
957            __out_opt  BOOL *pPredicateValue);
958       
959        void ( STDMETHODCALLTYPE *GSGetShaderResources )(
960            ID3D10Device1 * This,
961            /* [annotation] */
962            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
963            /* [annotation] */
964            __in_range( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
965            /* [annotation] */
966            __out_ecount(NumViews)  ID3D10ShaderResourceView **ppShaderResourceViews);
967       
968        void ( STDMETHODCALLTYPE *GSGetSamplers )(
969            ID3D10Device1 * This,
970            /* [annotation] */
971            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
972            /* [annotation] */
973            __in_range( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
974            /* [annotation] */
975            __out_ecount(NumSamplers)  ID3D10SamplerState **ppSamplers);
976       
977        void ( STDMETHODCALLTYPE *OMGetRenderTargets )(
978            ID3D10Device1 * This,
979            /* [annotation] */
980            __in_range( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
981            /* [annotation] */
982            __out_ecount_opt(NumViews)  ID3D10RenderTargetView **ppRenderTargetViews,
983            /* [annotation] */
984            __out_opt  ID3D10DepthStencilView **ppDepthStencilView);
985       
986        void ( STDMETHODCALLTYPE *OMGetBlendState )(
987            ID3D10Device1 * This,
988            /* [annotation] */
989            __out_opt  ID3D10BlendState **ppBlendState,
990            /* [annotation] */
991            __out_opt  FLOAT BlendFactor[ 4 ],
992            /* [annotation] */
993            __out_opt  UINT *pSampleMask);
994       
995        void ( STDMETHODCALLTYPE *OMGetDepthStencilState )(
996            ID3D10Device1 * This,
997            /* [annotation] */
998            __out_opt  ID3D10DepthStencilState **ppDepthStencilState,
999            /* [annotation] */
1000            __out_opt  UINT *pStencilRef);
1001       
1002        void ( STDMETHODCALLTYPE *SOGetTargets )(
1003            ID3D10Device1 * This,
1004            /* [annotation] */
1005            __in_range( 0, D3D10_SO_BUFFER_SLOT_COUNT )  UINT NumBuffers,
1006            /* [annotation] */
1007            __out_ecount_opt(NumBuffers)  ID3D10Buffer **ppSOTargets,
1008            /* [annotation] */
1009            __out_ecount_opt(NumBuffers)  UINT *pOffsets);
1010       
1011        void ( STDMETHODCALLTYPE *RSGetState )(
1012            ID3D10Device1 * This,
1013            /* [annotation] */
1014            __out  ID3D10RasterizerState **ppRasterizerState);
1015       
1016        void ( STDMETHODCALLTYPE *RSGetViewports )(
1017            ID3D10Device1 * This,
1018            /* [annotation] */
1019            __inout /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *NumViewports,
1020            /* [annotation] */
1021            __out_ecount_opt(*NumViewports)  D3D10_VIEWPORT *pViewports);
1022       
1023        void ( STDMETHODCALLTYPE *RSGetScissorRects )(
1024            ID3D10Device1 * This,
1025            /* [annotation] */
1026            __inout /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *NumRects,
1027            /* [annotation] */
1028            __out_ecount_opt(*NumRects)  D3D10_RECT *pRects);
1029       
1030        HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
1031            ID3D10Device1 * This);
1032       
1033        HRESULT ( STDMETHODCALLTYPE *SetExceptionMode )(
1034            ID3D10Device1 * This,
1035            UINT RaiseFlags);
1036       
1037        UINT ( STDMETHODCALLTYPE *GetExceptionMode )(
1038            ID3D10Device1 * This);
1039       
1040        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1041            ID3D10Device1 * This,
1042            /* [annotation] */
1043            __in  REFGUID guid,
1044            /* [annotation] */
1045            __inout  UINT *pDataSize,
1046            /* [annotation] */
1047            __out_bcount_opt(*pDataSize)  void *pData);
1048       
1049        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1050            ID3D10Device1 * This,
1051            /* [annotation] */
1052            __in  REFGUID guid,
1053            /* [annotation] */
1054            __in  UINT DataSize,
1055            /* [annotation] */
1056            __in_bcount_opt(DataSize)  const void *pData);
1057       
1058        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1059            ID3D10Device1 * This,
1060            /* [annotation] */
1061            __in  REFGUID guid,
1062            /* [annotation] */
1063            __in_opt  const IUnknown *pData);
1064       
1065        void ( STDMETHODCALLTYPE *ClearState )(
1066            ID3D10Device1 * This);
1067       
1068        void ( STDMETHODCALLTYPE *Flush )(
1069            ID3D10Device1 * This);
1070       
1071        HRESULT ( STDMETHODCALLTYPE *CreateBuffer )(
1072            ID3D10Device1 * This,
1073            /* [annotation] */
1074            __in  const D3D10_BUFFER_DESC *pDesc,
1075            /* [annotation] */
1076            __in_opt  const D3D10_SUBRESOURCE_DATA *pInitialData,
1077            /* [annotation] */
1078            __out_opt  ID3D10Buffer **ppBuffer);
1079       
1080        HRESULT ( STDMETHODCALLTYPE *CreateTexture1D )(
1081            ID3D10Device1 * This,
1082            /* [annotation] */
1083            __in  const D3D10_TEXTURE1D_DESC *pDesc,
1084            /* [annotation] */
1085            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D10_SUBRESOURCE_DATA *pInitialData,
1086            /* [annotation] */
1087            __out  ID3D10Texture1D **ppTexture1D);
1088       
1089        HRESULT ( STDMETHODCALLTYPE *CreateTexture2D )(
1090            ID3D10Device1 * This,
1091            /* [annotation] */
1092            __in  const D3D10_TEXTURE2D_DESC *pDesc,
1093            /* [annotation] */
1094            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D10_SUBRESOURCE_DATA *pInitialData,
1095            /* [annotation] */
1096            __out  ID3D10Texture2D **ppTexture2D);
1097       
1098        HRESULT ( STDMETHODCALLTYPE *CreateTexture3D )(
1099            ID3D10Device1 * This,
1100            /* [annotation] */
1101            __in  const D3D10_TEXTURE3D_DESC *pDesc,
1102            /* [annotation] */
1103            __in_xcount_opt(pDesc->MipLevels)  const D3D10_SUBRESOURCE_DATA *pInitialData,
1104            /* [annotation] */
1105            __out  ID3D10Texture3D **ppTexture3D);
1106       
1107        HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView )(
1108            ID3D10Device1 * This,
1109            /* [annotation] */
1110            __in  ID3D10Resource *pResource,
1111            /* [annotation] */
1112            __in_opt  const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
1113            /* [annotation] */
1114            __out_opt  ID3D10ShaderResourceView **ppSRView);
1115       
1116        HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView )(
1117            ID3D10Device1 * This,
1118            /* [annotation] */
1119            __in  ID3D10Resource *pResource,
1120            /* [annotation] */
1121            __in_opt  const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
1122            /* [annotation] */
1123            __out_opt  ID3D10RenderTargetView **ppRTView);
1124       
1125        HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilView )(
1126            ID3D10Device1 * This,
1127            /* [annotation] */
1128            __in  ID3D10Resource *pResource,
1129            /* [annotation] */
1130            __in_opt  const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
1131            /* [annotation] */
1132            __out_opt  ID3D10DepthStencilView **ppDepthStencilView);
1133       
1134        HRESULT ( STDMETHODCALLTYPE *CreateInputLayout )(
1135            ID3D10Device1 * This,
1136            /* [annotation] */
1137            __in_ecount(NumElements)  const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
1138            /* [annotation] */
1139            __in_range( 0, D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT )  UINT NumElements,
1140            /* [annotation] */
1141            __in  const void *pShaderBytecodeWithInputSignature,
1142            /* [annotation] */
1143            __in  SIZE_T BytecodeLength,
1144            /* [annotation] */
1145            __out_opt  ID3D10InputLayout **ppInputLayout);
1146       
1147        HRESULT ( STDMETHODCALLTYPE *CreateVertexShader )(
1148            ID3D10Device1 * This,
1149            /* [annotation] */
1150            __in  const void *pShaderBytecode,
1151            /* [annotation] */
1152            __in  SIZE_T BytecodeLength,
1153            /* [annotation] */
1154            __out_opt  ID3D10VertexShader **ppVertexShader);
1155       
1156        HRESULT ( STDMETHODCALLTYPE *CreateGeometryShader )(
1157            ID3D10Device1 * This,
1158            /* [annotation] */
1159            __in  const void *pShaderBytecode,
1160            /* [annotation] */
1161            __in  SIZE_T BytecodeLength,
1162            /* [annotation] */
1163            __out_opt  ID3D10GeometryShader **ppGeometryShader);
1164       
1165        HRESULT ( STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput )(
1166            ID3D10Device1 * This,
1167            /* [annotation] */
1168            __in  const void *pShaderBytecode,
1169            /* [annotation] */
1170            __in  SIZE_T BytecodeLength,
1171            /* [annotation] */
1172            __in_ecount_opt(NumEntries)  const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
1173            /* [annotation] */
1174            __in_range( 0, D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT )  UINT NumEntries,
1175            /* [annotation] */
1176            __in  UINT OutputStreamStride,
1177            /* [annotation] */
1178            __out_opt  ID3D10GeometryShader **ppGeometryShader);
1179       
1180        HRESULT ( STDMETHODCALLTYPE *CreatePixelShader )(
1181            ID3D10Device1 * This,
1182            /* [annotation] */
1183            __in  const void *pShaderBytecode,
1184            /* [annotation] */
1185            __in  SIZE_T BytecodeLength,
1186            /* [annotation] */
1187            __out_opt  ID3D10PixelShader **ppPixelShader);
1188       
1189        HRESULT ( STDMETHODCALLTYPE *CreateBlendState )(
1190            ID3D10Device1 * This,
1191            /* [annotation] */
1192            __in  const D3D10_BLEND_DESC *pBlendStateDesc,
1193            /* [annotation] */
1194            __out_opt  ID3D10BlendState **ppBlendState);
1195       
1196        HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilState )(
1197            ID3D10Device1 * This,
1198            /* [annotation] */
1199            __in  const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
1200            /* [annotation] */
1201            __out_opt  ID3D10DepthStencilState **ppDepthStencilState);
1202       
1203        HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState )(
1204            ID3D10Device1 * This,
1205            /* [annotation] */
1206            __in  const D3D10_RASTERIZER_DESC *pRasterizerDesc,
1207            /* [annotation] */
1208            __out_opt  ID3D10RasterizerState **ppRasterizerState);
1209       
1210        HRESULT ( STDMETHODCALLTYPE *CreateSamplerState )(
1211            ID3D10Device1 * This,
1212            /* [annotation] */
1213            __in  const D3D10_SAMPLER_DESC *pSamplerDesc,
1214            /* [annotation] */
1215            __out_opt  ID3D10SamplerState **ppSamplerState);
1216       
1217        HRESULT ( STDMETHODCALLTYPE *CreateQuery )(
1218            ID3D10Device1 * This,
1219            /* [annotation] */
1220            __in  const D3D10_QUERY_DESC *pQueryDesc,
1221            /* [annotation] */
1222            __out_opt  ID3D10Query **ppQuery);
1223       
1224        HRESULT ( STDMETHODCALLTYPE *CreatePredicate )(
1225            ID3D10Device1 * This,
1226            /* [annotation] */
1227            __in  const D3D10_QUERY_DESC *pPredicateDesc,
1228            /* [annotation] */
1229            __out_opt  ID3D10Predicate **ppPredicate);
1230       
1231        HRESULT ( STDMETHODCALLTYPE *CreateCounter )(
1232            ID3D10Device1 * This,
1233            /* [annotation] */
1234            __in  const D3D10_COUNTER_DESC *pCounterDesc,
1235            /* [annotation] */
1236            __out_opt  ID3D10Counter **ppCounter);
1237       
1238        HRESULT ( STDMETHODCALLTYPE *CheckFormatSupport )(
1239            ID3D10Device1 * This,
1240            /* [annotation] */
1241            __in  DXGI_FORMAT Format,
1242            /* [annotation] */
1243            __out  UINT *pFormatSupport);
1244       
1245        HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels )(
1246            ID3D10Device1 * This,
1247            /* [annotation] */
1248            __in  DXGI_FORMAT Format,
1249            /* [annotation] */
1250            __in  UINT SampleCount,
1251            /* [annotation] */
1252            __out  UINT *pNumQualityLevels);
1253       
1254        void ( STDMETHODCALLTYPE *CheckCounterInfo )(
1255            ID3D10Device1 * This,
1256            /* [annotation] */
1257            __out  D3D10_COUNTER_INFO *pCounterInfo);
1258       
1259        HRESULT ( STDMETHODCALLTYPE *CheckCounter )(
1260            ID3D10Device1 * This,
1261            /* [annotation] */
1262            __in  const D3D10_COUNTER_DESC *pDesc,
1263            /* [annotation] */
1264            __out  D3D10_COUNTER_TYPE *pType,
1265            /* [annotation] */
1266            __out  UINT *pActiveCounters,
1267            /* [annotation] */
1268            __out_ecount_opt(*pNameLength)  LPSTR szName,
1269            /* [annotation] */
1270            __inout_opt  UINT *pNameLength,
1271            /* [annotation] */
1272            __out_ecount_opt(*pUnitsLength)  LPSTR szUnits,
1273            /* [annotation] */
1274            __inout_opt  UINT *pUnitsLength,
1275            /* [annotation] */
1276            __out_ecount_opt(*pDescriptionLength)  LPSTR szDescription,
1277            /* [annotation] */
1278            __inout_opt  UINT *pDescriptionLength);
1279       
1280        UINT ( STDMETHODCALLTYPE *GetCreationFlags )(
1281            ID3D10Device1 * This);
1282       
1283        HRESULT ( STDMETHODCALLTYPE *OpenSharedResource )(
1284            ID3D10Device1 * This,
1285            /* [annotation] */
1286            __in  HANDLE hResource,
1287            /* [annotation] */
1288            __in  REFIID ReturnedInterface,
1289            /* [annotation] */
1290            __out_opt  void **ppResource);
1291       
1292        void ( STDMETHODCALLTYPE *SetTextFilterSize )(
1293            ID3D10Device1 * This,
1294            /* [annotation] */
1295            __in  UINT Width,
1296            /* [annotation] */
1297            __in  UINT Height);
1298       
1299        void ( STDMETHODCALLTYPE *GetTextFilterSize )(
1300            ID3D10Device1 * This,
1301            /* [annotation] */
1302            __out_opt  UINT *pWidth,
1303            /* [annotation] */
1304            __out_opt  UINT *pHeight);
1305       
1306        HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView1 )(
1307            ID3D10Device1 * This,
1308            /* [annotation] */
1309            __in  ID3D10Resource *pResource,
1310            /* [annotation] */
1311            __in_opt  const D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc,
1312            /* [annotation] */
1313            __out_opt  ID3D10ShaderResourceView1 **ppSRView);
1314       
1315        HRESULT ( STDMETHODCALLTYPE *CreateBlendState1 )(
1316            ID3D10Device1 * This,
1317            /* [annotation] */
1318            __in  const D3D10_BLEND_DESC1 *pBlendStateDesc,
1319            /* [annotation] */
1320            __out_opt  ID3D10BlendState1 **ppBlendState);
1321       
1322        D3D10_FEATURE_LEVEL1 ( STDMETHODCALLTYPE *GetFeatureLevel )(
1323            ID3D10Device1 * This);
1324       
1325        END_INTERFACE
1326    } ID3D10Device1Vtbl;
1327
1328    interface ID3D10Device1
1329    {
1330        CONST_VTBL struct ID3D10Device1Vtbl *lpVtbl;
1331    };
1332
1333   
1334
1335#ifdef COBJMACROS
1336
1337
1338#define ID3D10Device1_QueryInterface(This,riid,ppvObject)   \
1339    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1340
1341#define ID3D10Device1_AddRef(This)   \
1342    ( (This)->lpVtbl -> AddRef(This) )
1343
1344#define ID3D10Device1_Release(This)   \
1345    ( (This)->lpVtbl -> Release(This) )
1346
1347
1348#define ID3D10Device1_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
1349    ( (This)->lpVtbl -> VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
1350
1351#define ID3D10Device1_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
1352    ( (This)->lpVtbl -> PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
1353
1354#define ID3D10Device1_PSSetShader(This,pPixelShader)   \
1355    ( (This)->lpVtbl -> PSSetShader(This,pPixelShader) )
1356
1357#define ID3D10Device1_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
1358    ( (This)->lpVtbl -> PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
1359
1360#define ID3D10Device1_VSSetShader(This,pVertexShader)   \
1361    ( (This)->lpVtbl -> VSSetShader(This,pVertexShader) )
1362
1363#define ID3D10Device1_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)   \
1364    ( (This)->lpVtbl -> DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) )
1365
1366#define ID3D10Device1_Draw(This,VertexCount,StartVertexLocation)   \
1367    ( (This)->lpVtbl -> Draw(This,VertexCount,StartVertexLocation) )
1368
1369#define ID3D10Device1_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
1370    ( (This)->lpVtbl -> PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
1371
1372#define ID3D10Device1_IASetInputLayout(This,pInputLayout)   \
1373    ( (This)->lpVtbl -> IASetInputLayout(This,pInputLayout) )
1374
1375#define ID3D10Device1_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)   \
1376    ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) )
1377
1378#define ID3D10Device1_IASetIndexBuffer(This,pIndexBuffer,Format,Offset)   \
1379    ( (This)->lpVtbl -> IASetIndexBuffer(This,pIndexBuffer,Format,Offset) )
1380
1381#define ID3D10Device1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)   \
1382    ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
1383
1384#define ID3D10Device1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)   \
1385    ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
1386
1387#define ID3D10Device1_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
1388    ( (This)->lpVtbl -> GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
1389
1390#define ID3D10Device1_GSSetShader(This,pShader)   \
1391    ( (This)->lpVtbl -> GSSetShader(This,pShader) )
1392
1393#define ID3D10Device1_IASetPrimitiveTopology(This,Topology)   \
1394    ( (This)->lpVtbl -> IASetPrimitiveTopology(This,Topology) )
1395
1396#define ID3D10Device1_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
1397    ( (This)->lpVtbl -> VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
1398
1399#define ID3D10Device1_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
1400    ( (This)->lpVtbl -> VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
1401
1402#define ID3D10Device1_SetPredication(This,pPredicate,PredicateValue)   \
1403    ( (This)->lpVtbl -> SetPredication(This,pPredicate,PredicateValue) )
1404
1405#define ID3D10Device1_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
1406    ( (This)->lpVtbl -> GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
1407
1408#define ID3D10Device1_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
1409    ( (This)->lpVtbl -> GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
1410
1411#define ID3D10Device1_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)   \
1412    ( (This)->lpVtbl -> OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) )
1413
1414#define ID3D10Device1_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)   \
1415    ( (This)->lpVtbl -> OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) )
1416
1417#define ID3D10Device1_OMSetDepthStencilState(This,pDepthStencilState,StencilRef)   \
1418    ( (This)->lpVtbl -> OMSetDepthStencilState(This,pDepthStencilState,StencilRef) )
1419
1420#define ID3D10Device1_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)   \
1421    ( (This)->lpVtbl -> SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) )
1422
1423#define ID3D10Device1_DrawAuto(This)   \
1424    ( (This)->lpVtbl -> DrawAuto(This) )
1425
1426#define ID3D10Device1_RSSetState(This,pRasterizerState)   \
1427    ( (This)->lpVtbl -> RSSetState(This,pRasterizerState) )
1428
1429#define ID3D10Device1_RSSetViewports(This,NumViewports,pViewports)   \
1430    ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
1431
1432#define ID3D10Device1_RSSetScissorRects(This,NumRects,pRects)   \
1433    ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
1434
1435#define ID3D10Device1_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)   \
1436    ( (This)->lpVtbl -> CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) )
1437
1438#define ID3D10Device1_CopyResource(This,pDstResource,pSrcResource)   \
1439    ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
1440
1441#define ID3D10Device1_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)   \
1442    ( (This)->lpVtbl -> UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
1443
1444#define ID3D10Device1_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)   \
1445    ( (This)->lpVtbl -> ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) )
1446
1447#define ID3D10Device1_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)   \
1448    ( (This)->lpVtbl -> ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) )
1449
1450#define ID3D10Device1_GenerateMips(This,pShaderResourceView)   \
1451    ( (This)->lpVtbl -> GenerateMips(This,pShaderResourceView) )
1452
1453#define ID3D10Device1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)   \
1454    ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
1455
1456#define ID3D10Device1_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
1457    ( (This)->lpVtbl -> VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
1458
1459#define ID3D10Device1_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
1460    ( (This)->lpVtbl -> PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
1461
1462#define ID3D10Device1_PSGetShader(This,ppPixelShader)   \
1463    ( (This)->lpVtbl -> PSGetShader(This,ppPixelShader) )
1464
1465#define ID3D10Device1_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
1466    ( (This)->lpVtbl -> PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
1467
1468#define ID3D10Device1_VSGetShader(This,ppVertexShader)   \
1469    ( (This)->lpVtbl -> VSGetShader(This,ppVertexShader) )
1470
1471#define ID3D10Device1_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
1472    ( (This)->lpVtbl -> PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
1473
1474#define ID3D10Device1_IAGetInputLayout(This,ppInputLayout)   \
1475    ( (This)->lpVtbl -> IAGetInputLayout(This,ppInputLayout) )
1476
1477#define ID3D10Device1_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)   \
1478    ( (This)->lpVtbl -> IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) )
1479
1480#define ID3D10Device1_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)   \
1481    ( (This)->lpVtbl -> IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) )
1482
1483#define ID3D10Device1_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
1484    ( (This)->lpVtbl -> GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
1485
1486#define ID3D10Device1_GSGetShader(This,ppGeometryShader)   \
1487    ( (This)->lpVtbl -> GSGetShader(This,ppGeometryShader) )
1488
1489#define ID3D10Device1_IAGetPrimitiveTopology(This,pTopology)   \
1490    ( (This)->lpVtbl -> IAGetPrimitiveTopology(This,pTopology) )
1491
1492#define ID3D10Device1_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
1493    ( (This)->lpVtbl -> VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
1494
1495#define ID3D10Device1_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
1496    ( (This)->lpVtbl -> VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
1497
1498#define ID3D10Device1_GetPredication(This,ppPredicate,pPredicateValue)   \
1499    ( (This)->lpVtbl -> GetPredication(This,ppPredicate,pPredicateValue) )
1500
1501#define ID3D10Device1_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
1502    ( (This)->lpVtbl -> GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
1503
1504#define ID3D10Device1_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
1505    ( (This)->lpVtbl -> GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
1506
1507#define ID3D10Device1_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)   \
1508    ( (This)->lpVtbl -> OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) )
1509
1510#define ID3D10Device1_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)   \
1511    ( (This)->lpVtbl -> OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) )
1512
1513#define ID3D10Device1_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)   \
1514    ( (This)->lpVtbl -> OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) )
1515
1516#define ID3D10Device1_SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets)   \
1517    ( (This)->lpVtbl -> SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets) )
1518
1519#define ID3D10Device1_RSGetState(This,ppRasterizerState)   \
1520    ( (This)->lpVtbl -> RSGetState(This,ppRasterizerState) )
1521
1522#define ID3D10Device1_RSGetViewports(This,NumViewports,pViewports)   \
1523    ( (This)->lpVtbl -> RSGetViewports(This,NumViewports,pViewports) )
1524
1525#define ID3D10Device1_RSGetScissorRects(This,NumRects,pRects)   \
1526    ( (This)->lpVtbl -> RSGetScissorRects(This,NumRects,pRects) )
1527
1528#define ID3D10Device1_GetDeviceRemovedReason(This)   \
1529    ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
1530
1531#define ID3D10Device1_SetExceptionMode(This,RaiseFlags)   \
1532    ( (This)->lpVtbl -> SetExceptionMode(This,RaiseFlags) )
1533
1534#define ID3D10Device1_GetExceptionMode(This)   \
1535    ( (This)->lpVtbl -> GetExceptionMode(This) )
1536
1537#define ID3D10Device1_GetPrivateData(This,guid,pDataSize,pData)   \
1538    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1539
1540#define ID3D10Device1_SetPrivateData(This,guid,DataSize,pData)   \
1541    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1542
1543#define ID3D10Device1_SetPrivateDataInterface(This,guid,pData)   \
1544    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1545
1546#define ID3D10Device1_ClearState(This)   \
1547    ( (This)->lpVtbl -> ClearState(This) )
1548
1549#define ID3D10Device1_Flush(This)   \
1550    ( (This)->lpVtbl -> Flush(This) )
1551
1552#define ID3D10Device1_CreateBuffer(This,pDesc,pInitialData,ppBuffer)   \
1553    ( (This)->lpVtbl -> CreateBuffer(This,pDesc,pInitialData,ppBuffer) )
1554
1555#define ID3D10Device1_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)   \
1556    ( (This)->lpVtbl -> CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) )
1557
1558#define ID3D10Device1_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)   \
1559    ( (This)->lpVtbl -> CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) )
1560
1561#define ID3D10Device1_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)   \
1562    ( (This)->lpVtbl -> CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) )
1563
1564#define ID3D10Device1_CreateShaderResourceView(This,pResource,pDesc,ppSRView)   \
1565    ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,ppSRView) )
1566
1567#define ID3D10Device1_CreateRenderTargetView(This,pResource,pDesc,ppRTView)   \
1568    ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,ppRTView) )
1569
1570#define ID3D10Device1_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)   \
1571    ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) )
1572
1573#define ID3D10Device1_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)   \
1574    ( (This)->lpVtbl -> CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) )
1575
1576#define ID3D10Device1_CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader)   \
1577    ( (This)->lpVtbl -> CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader) )
1578
1579#define ID3D10Device1_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader)   \
1580    ( (This)->lpVtbl -> CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader) )
1581
1582#define ID3D10Device1_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader)   \
1583    ( (This)->lpVtbl -> CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader) )
1584
1585#define ID3D10Device1_CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader)   \
1586    ( (This)->lpVtbl -> CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader) )
1587
1588#define ID3D10Device1_CreateBlendState(This,pBlendStateDesc,ppBlendState)   \
1589    ( (This)->lpVtbl -> CreateBlendState(This,pBlendStateDesc,ppBlendState) )
1590
1591#define ID3D10Device1_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)   \
1592    ( (This)->lpVtbl -> CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) )
1593
1594#define ID3D10Device1_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)   \
1595    ( (This)->lpVtbl -> CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) )
1596
1597#define ID3D10Device1_CreateSamplerState(This,pSamplerDesc,ppSamplerState)   \
1598    ( (This)->lpVtbl -> CreateSamplerState(This,pSamplerDesc,ppSamplerState) )
1599
1600#define ID3D10Device1_CreateQuery(This,pQueryDesc,ppQuery)   \
1601    ( (This)->lpVtbl -> CreateQuery(This,pQueryDesc,ppQuery) )
1602
1603#define ID3D10Device1_CreatePredicate(This,pPredicateDesc,ppPredicate)   \
1604    ( (This)->lpVtbl -> CreatePredicate(This,pPredicateDesc,ppPredicate) )
1605
1606#define ID3D10Device1_CreateCounter(This,pCounterDesc,ppCounter)   \
1607    ( (This)->lpVtbl -> CreateCounter(This,pCounterDesc,ppCounter) )
1608
1609#define ID3D10Device1_CheckFormatSupport(This,Format,pFormatSupport)   \
1610    ( (This)->lpVtbl -> CheckFormatSupport(This,Format,pFormatSupport) )
1611
1612#define ID3D10Device1_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)   \
1613    ( (This)->lpVtbl -> CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) )
1614
1615#define ID3D10Device1_CheckCounterInfo(This,pCounterInfo)   \
1616    ( (This)->lpVtbl -> CheckCounterInfo(This,pCounterInfo) )
1617
1618#define ID3D10Device1_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)   \
1619    ( (This)->lpVtbl -> CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) )
1620
1621#define ID3D10Device1_GetCreationFlags(This)   \
1622    ( (This)->lpVtbl -> GetCreationFlags(This) )
1623
1624#define ID3D10Device1_OpenSharedResource(This,hResource,ReturnedInterface,ppResource)   \
1625    ( (This)->lpVtbl -> OpenSharedResource(This,hResource,ReturnedInterface,ppResource) )
1626
1627#define ID3D10Device1_SetTextFilterSize(This,Width,Height)   \
1628    ( (This)->lpVtbl -> SetTextFilterSize(This,Width,Height) )
1629
1630#define ID3D10Device1_GetTextFilterSize(This,pWidth,pHeight)   \
1631    ( (This)->lpVtbl -> GetTextFilterSize(This,pWidth,pHeight) )
1632
1633
1634#define ID3D10Device1_CreateShaderResourceView1(This,pResource,pDesc,ppSRView)   \
1635    ( (This)->lpVtbl -> CreateShaderResourceView1(This,pResource,pDesc,ppSRView) )
1636
1637#define ID3D10Device1_CreateBlendState1(This,pBlendStateDesc,ppBlendState)   \
1638    ( (This)->lpVtbl -> CreateBlendState1(This,pBlendStateDesc,ppBlendState) )
1639
1640#define ID3D10Device1_GetFeatureLevel(This)   \
1641    ( (This)->lpVtbl -> GetFeatureLevel(This) )
1642
1643#endif /* COBJMACROS */
1644
1645
1646#endif    /* C style interface */
1647
1648
1649
1650
1651#endif    /* __ID3D10Device1_INTERFACE_DEFINED__ */
1652
1653
1654/* interface __MIDL_itf_d3d10_1_0000_0003 */
1655/* [local] */
1656
1657#define   D3D10_1_SDK_VERSION   ( ( 0 + 0x20 )  )
1658
1659#include "d3d10_1shader.h"
1660
1661///////////////////////////////////////////////////////////////////////////
1662// D3D10CreateDevice1
1663// ------------------
1664//
1665// pAdapter
1666//      If NULL, D3D10CreateDevice1 will choose the primary adapter and
1667//      create a new instance from a temporarily created IDXGIFactory.
1668//      If non-NULL, D3D10CreateDevice1 will register the appropriate
1669//      device, if necessary (via IDXGIAdapter::RegisterDrver), before
1670//      creating the device.
1671// DriverType
1672//      Specifies the driver type to be created: hardware, reference or
1673//      null.
1674// Software
1675//      HMODULE of a DLL implementing a software rasterizer. Must be NULL for
1676//      non-Software driver types.
1677// Flags
1678//      Any of those documented for D3D10CreateDeviceAndSwapChain1.
1679// HardwareLevel
1680//      Any of those documented for D3D10CreateDeviceAndSwapChain1.
1681// SDKVersion
1682//      SDK version. Use the D3D10_1_SDK_VERSION macro.
1683// ppDevice
1684//      Pointer to returned interface.
1685//
1686// Return Values
1687//  Any of those documented for
1688//          CreateDXGIFactory
1689//          IDXGIFactory::EnumAdapters
1690//          IDXGIAdapter::RegisterDriver
1691//          D3D10CreateDevice1
1692//
1693///////////////////////////////////////////////////////////////////////////
1694typedef HRESULT (WINAPI* PFN_D3D10_CREATE_DEVICE1)(IDXGIAdapter *,
1695    D3D10_DRIVER_TYPE, HMODULE, UINT, D3D10_FEATURE_LEVEL1, UINT, ID3D10Device1**);
1696
1697HRESULT WINAPI D3D10CreateDevice1(
1698    IDXGIAdapter *pAdapter,
1699    D3D10_DRIVER_TYPE DriverType,
1700    HMODULE Software,
1701    UINT Flags,
1702    D3D10_FEATURE_LEVEL1 HardwareLevel,
1703    UINT SDKVersion,
1704    ID3D10Device1 **ppDevice);
1705
1706///////////////////////////////////////////////////////////////////////////
1707// D3D10CreateDeviceAndSwapChain1
1708// ------------------------------
1709//
1710// ppAdapter
1711//      If NULL, D3D10CreateDevice1 will choose the primary adapter and
1712//      create a new instance from a temporarily created IDXGIFactory.
1713//      If non-NULL, D3D10CreateDevice1 will register the appropriate
1714//      device, if necessary (via IDXGIAdapter::RegisterDrver), before
1715//      creating the device.
1716// DriverType
1717//      Specifies the driver type to be created: hardware, reference or
1718//      null.
1719// Software
1720//      HMODULE of a DLL implementing a software rasterizer. Must be NULL for
1721//      non-Software driver types.
1722// Flags
1723//      Any of those documented for D3D10CreateDevice1.
1724// HardwareLevel
1725//      Any of:
1726//          D3D10_CREATE_LEVEL_10_0
1727//          D3D10_CREATE_LEVEL_10_1
1728// SDKVersion
1729//      SDK version. Use the D3D10_1_SDK_VERSION macro.
1730// pSwapChainDesc
1731//      Swap chain description, may be NULL.
1732// ppSwapChain
1733//      Pointer to returned interface. May be NULL.
1734// ppDevice
1735//      Pointer to returned interface.
1736//
1737// Return Values
1738//  Any of those documented for
1739//          CreateDXGIFactory
1740//          IDXGIFactory::EnumAdapters
1741//          IDXGIAdapter::RegisterDriver
1742//          D3D10CreateDevice1
1743//          IDXGIFactory::CreateSwapChain
1744//
1745///////////////////////////////////////////////////////////////////////////
1746typedef HRESULT (WINAPI* PFN_D3D10_CREATE_DEVICE_AND_SWAP_CHAIN1)(IDXGIAdapter *,
1747    D3D10_DRIVER_TYPE, HMODULE, UINT, D3D10_FEATURE_LEVEL1, UINT, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **, ID3D10Device1 **);
1748
1749HRESULT WINAPI D3D10CreateDeviceAndSwapChain1(
1750    IDXGIAdapter *pAdapter,
1751    D3D10_DRIVER_TYPE DriverType,
1752    HMODULE Software,
1753    UINT Flags,
1754    D3D10_FEATURE_LEVEL1 HardwareLevel,
1755    UINT SDKVersion,
1756    DXGI_SWAP_CHAIN_DESC *pSwapChainDesc,
1757    IDXGISwapChain **ppSwapChain,
1758    ID3D10Device1 **ppDevice);
1759DEFINE_GUID(IID_ID3D10BlendState1,0xEDAD8D99,0x8A35,0x4d6d,0x85,0x66,0x2E,0xA2,0x76,0xCD,0xE1,0x61);
1760DEFINE_GUID(IID_ID3D10ShaderResourceView1,0x9B7E4C87,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
1761DEFINE_GUID(IID_ID3D10Device1,0x9B7E4C8F,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
1762
1763
1764extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0003_v0_0_c_ifspec;
1765extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0003_v0_0_s_ifspec;
1766
1767/* Additional Prototypes for ALL interfaces */
1768
1769/* end of Additional Prototypes */
1770
1771#ifdef __cplusplus
1772}
1773#endif
1774
1775#endif
1776
1777
trunk/3rdparty/dxsdk/Include/d3d10_1shader.h
r0r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (c) Microsoft Corporation.  All rights reserved.
4//
5//  File:       D3D10_1Shader.h
6//  Content:    D3D10.1 Shader Types and APIs
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#ifndef __D3D10_1SHADER_H__
11#define __D3D10_1SHADER_H__
12
13#include "d3d10shader.h"
14
15//----------------------------------------------------------------------------
16// Shader debugging structures
17//----------------------------------------------------------------------------
18
19typedef enum _D3D10_SHADER_DEBUG_REGTYPE
20{
21    D3D10_SHADER_DEBUG_REG_INPUT,
22    D3D10_SHADER_DEBUG_REG_OUTPUT,
23    D3D10_SHADER_DEBUG_REG_CBUFFER,
24    D3D10_SHADER_DEBUG_REG_TBUFFER,
25    D3D10_SHADER_DEBUG_REG_TEMP,
26    D3D10_SHADER_DEBUG_REG_TEMPARRAY,
27    D3D10_SHADER_DEBUG_REG_TEXTURE,
28    D3D10_SHADER_DEBUG_REG_SAMPLER,
29    D3D10_SHADER_DEBUG_REG_IMMEDIATECBUFFER,
30    D3D10_SHADER_DEBUG_REG_LITERAL,
31    D3D10_SHADER_DEBUG_REG_UNUSED,
32    D3D11_SHADER_DEBUG_REG_INTERFACE_POINTERS,
33    D3D11_SHADER_DEBUG_REG_UAV,
34    D3D10_SHADER_DEBUG_REG_FORCE_DWORD = 0x7fffffff,
35} D3D10_SHADER_DEBUG_REGTYPE;
36
37typedef enum _D3D10_SHADER_DEBUG_SCOPETYPE
38{
39    D3D10_SHADER_DEBUG_SCOPE_GLOBAL,
40    D3D10_SHADER_DEBUG_SCOPE_BLOCK,
41    D3D10_SHADER_DEBUG_SCOPE_FORLOOP,
42    D3D10_SHADER_DEBUG_SCOPE_STRUCT,
43    D3D10_SHADER_DEBUG_SCOPE_FUNC_PARAMS,
44    D3D10_SHADER_DEBUG_SCOPE_STATEBLOCK,
45    D3D10_SHADER_DEBUG_SCOPE_NAMESPACE,
46    D3D10_SHADER_DEBUG_SCOPE_ANNOTATION,
47    D3D10_SHADER_DEBUG_SCOPE_FORCE_DWORD = 0x7fffffff,
48} D3D10_SHADER_DEBUG_SCOPETYPE;
49
50typedef enum _D3D10_SHADER_DEBUG_VARTYPE
51{
52    D3D10_SHADER_DEBUG_VAR_VARIABLE,
53    D3D10_SHADER_DEBUG_VAR_FUNCTION,
54    D3D10_SHADER_DEBUG_VAR_FORCE_DWORD = 0x7fffffff,
55} D3D10_SHADER_DEBUG_VARTYPE;
56
57/////////////////////////////////////////////////////////////////////
58// These are the serialized structures that get written to the file
59/////////////////////////////////////////////////////////////////////
60
61typedef struct _D3D10_SHADER_DEBUG_TOKEN_INFO
62{
63    UINT File;    // offset into file list
64    UINT Line;    // line #
65    UINT Column;  // column #
66
67    UINT TokenLength;
68    UINT TokenId; // offset to LPCSTR of length TokenLength in string datastore
69} D3D10_SHADER_DEBUG_TOKEN_INFO;
70
71// Variable list
72typedef struct _D3D10_SHADER_DEBUG_VAR_INFO
73{
74    // Index into token list for declaring identifier
75    UINT TokenId;
76    D3D10_SHADER_VARIABLE_TYPE Type;
77    // register and component for this variable, only valid/necessary for arrays
78    UINT Register;
79    UINT Component;
80    // gives the original variable that declared this variable
81    UINT ScopeVar;
82    // this variable's offset in its ScopeVar
83    UINT ScopeVarOffset;
84} D3D10_SHADER_DEBUG_VAR_INFO;
85
86typedef struct _D3D10_SHADER_DEBUG_INPUT_INFO
87{
88    // index into array of variables of variable to initialize
89    UINT Var;
90    // input, cbuffer, tbuffer
91    D3D10_SHADER_DEBUG_REGTYPE InitialRegisterSet;
92    // set to cbuffer or tbuffer slot, geometry shader input primitive #,
93    // identifying register for indexable temp, or -1
94    UINT InitialBank;
95    // -1 if temp, otherwise gives register in register set
96    UINT InitialRegister;
97    // -1 if temp, otherwise gives component
98    UINT InitialComponent;
99    // initial value if literal
100    UINT InitialValue;
101} D3D10_SHADER_DEBUG_INPUT_INFO;
102
103typedef struct _D3D10_SHADER_DEBUG_SCOPEVAR_INFO
104{
105    // Index into variable token
106    UINT TokenId;
107
108    D3D10_SHADER_DEBUG_VARTYPE VarType; // variable or function (different namespaces)
109    D3D10_SHADER_VARIABLE_CLASS Class;
110    UINT Rows;          // number of rows (matrices)
111    UINT Columns;       // number of columns (vectors and matrices)
112
113    // In an array of structures, one struct member scope is provided, and
114    // you'll have to add the array stride times the index to the variable
115    // index you find, then find that variable in this structure's list of
116    // variables.
117
118    // gives a scope to look up struct members. -1 if not a struct
119    UINT StructMemberScope;
120
121    // number of array indices
122    UINT uArrayIndices;    // a[3][2][1] has 3 indices
123    // maximum array index for each index
124    // offset to UINT[uArrayIndices] in UINT datastore
125    UINT ArrayElements; // a[3][2][1] has {3, 2, 1}
126    // how many variables each array index moves
127    // offset to UINT[uArrayIndices] in UINT datastore
128    UINT ArrayStrides;  // a[3][2][1] has {2, 1, 1}
129
130    UINT uVariables;
131    // index of the first variable, later variables are offsets from this one
132    UINT uFirstVariable;
133} D3D10_SHADER_DEBUG_SCOPEVAR_INFO;
134
135// scope data, this maps variable names to debug variables (useful for the watch window)
136typedef struct _D3D10_SHADER_DEBUG_SCOPE_INFO
137{
138    D3D10_SHADER_DEBUG_SCOPETYPE ScopeType;
139    UINT Name;         // offset to name of scope in strings list
140    UINT uNameLen;     // length of name string
141    UINT uVariables;
142    UINT VariableData; // Offset to UINT[uVariables] indexing the Scope Variable list
143} D3D10_SHADER_DEBUG_SCOPE_INFO;
144
145// instruction outputs
146typedef struct _D3D10_SHADER_DEBUG_OUTPUTVAR
147{
148    // index variable being written to, if -1 it's not going to a variable
149    UINT Var;
150    // range data that the compiler expects to be true
151    UINT  uValueMin, uValueMax;
152    INT   iValueMin, iValueMax;
153    FLOAT fValueMin, fValueMax;
154
155    BOOL  bNaNPossible, bInfPossible;
156} D3D10_SHADER_DEBUG_OUTPUTVAR;
157
158typedef struct _D3D10_SHADER_DEBUG_OUTPUTREG_INFO
159{
160    // Only temp, indexable temp, and output are valid here
161    D3D10_SHADER_DEBUG_REGTYPE OutputRegisterSet;
162    // -1 means no output
163    UINT OutputReg;
164    // if a temp array, identifier for which one
165    UINT TempArrayReg;
166    // -1 means masked out
167    UINT OutputComponents[4];
168    D3D10_SHADER_DEBUG_OUTPUTVAR OutputVars[4];
169    // when indexing the output, get the value of this register, then add
170    // that to uOutputReg. If uIndexReg is -1, then there is no index.
171    // find the variable whose register is the sum (by looking in the ScopeVar)
172    // and component matches, then set it. This should only happen for indexable
173    // temps and outputs.
174    UINT IndexReg;
175    UINT IndexComp;
176} D3D10_SHADER_DEBUG_OUTPUTREG_INFO;
177
178// per instruction data
179typedef struct _D3D10_SHADER_DEBUG_INST_INFO
180{
181    UINT Id; // Which instruction this is in the bytecode
182    UINT Opcode; // instruction type
183
184    // 0, 1, or 2
185    UINT uOutputs;
186
187    // up to two outputs per instruction
188    D3D10_SHADER_DEBUG_OUTPUTREG_INFO pOutputs[2];
189   
190    // index into the list of tokens for this instruction's token
191    UINT TokenId;
192
193    // how many function calls deep this instruction is
194    UINT NestingLevel;
195
196    // list of scopes from outer-most to inner-most
197    // Number of scopes
198    UINT Scopes;
199    UINT ScopeInfo; // Offset to UINT[uScopes] specifying indices of the ScopeInfo Array
200
201    // list of variables accessed by this instruction
202    // Number of variables
203    UINT AccessedVars;
204    UINT AccessedVarsInfo; // Offset to UINT[AccessedVars] specifying indices of the ScopeVariableInfo Array
205} D3D10_SHADER_DEBUG_INST_INFO;
206
207typedef struct _D3D10_SHADER_DEBUG_FILE_INFO
208{
209    UINT FileName;    // Offset to LPCSTR for file name
210    UINT FileNameLen; // Length of file name
211    UINT FileData;    // Offset to LPCSTR of length FileLen
212    UINT FileLen;     // Length of file
213} D3D10_SHADER_DEBUG_FILE_INFO;
214
215typedef struct _D3D10_SHADER_DEBUG_INFO
216{
217    UINT Size;                             // sizeof(D3D10_SHADER_DEBUG_INFO)
218    UINT Creator;                          // Offset to LPCSTR for compiler version
219    UINT EntrypointName;                   // Offset to LPCSTR for Entry point name
220    UINT ShaderTarget;                     // Offset to LPCSTR for shader target
221    UINT CompileFlags;                     // flags used to compile
222    UINT Files;                            // number of included files
223    UINT FileInfo;                         // Offset to D3D10_SHADER_DEBUG_FILE_INFO[Files]
224    UINT Instructions;                     // number of instructions
225    UINT InstructionInfo;                  // Offset to D3D10_SHADER_DEBUG_INST_INFO[Instructions]
226    UINT Variables;                        // number of variables
227    UINT VariableInfo;                     // Offset to D3D10_SHADER_DEBUG_VAR_INFO[Variables]
228    UINT InputVariables;                   // number of variables to initialize before running
229    UINT InputVariableInfo;                // Offset to D3D10_SHADER_DEBUG_INPUT_INFO[InputVariables]
230    UINT Tokens;                           // number of tokens to initialize
231    UINT TokenInfo;                        // Offset to D3D10_SHADER_DEBUG_TOKEN_INFO[Tokens]
232    UINT Scopes;                           // number of scopes
233    UINT ScopeInfo;                        // Offset to D3D10_SHADER_DEBUG_SCOPE_INFO[Scopes]
234    UINT ScopeVariables;                   // number of variables declared
235    UINT ScopeVariableInfo;                // Offset to D3D10_SHADER_DEBUG_SCOPEVAR_INFO[Scopes]
236    UINT UintOffset;                       // Offset to the UINT datastore, all UINT offsets are from this offset
237    UINT StringOffset;                     // Offset to the string datastore, all string offsets are from this offset
238} D3D10_SHADER_DEBUG_INFO;
239
240//----------------------------------------------------------------------------
241// ID3D10ShaderReflection1:
242//----------------------------------------------------------------------------
243
244//
245// Interface definitions
246//
247
248typedef interface ID3D10ShaderReflection1 ID3D10ShaderReflection1;
249typedef interface ID3D10ShaderReflection1 *LPD3D10SHADERREFLECTION1;
250
251// {C3457783-A846-47CE-9520-CEA6F66E7447}
252DEFINE_GUID(IID_ID3D10ShaderReflection1,
2530xc3457783, 0xa846, 0x47ce, 0x95, 0x20, 0xce, 0xa6, 0xf6, 0x6e, 0x74, 0x47);
254
255#undef INTERFACE
256#define INTERFACE ID3D10ShaderReflection1
257
258DECLARE_INTERFACE_(ID3D10ShaderReflection1, IUnknown)
259{
260    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
261    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
262    STDMETHOD_(ULONG, Release)(THIS) PURE;
263
264    STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_DESC *pDesc) PURE;
265   
266    STDMETHOD_(ID3D10ShaderReflectionConstantBuffer*, GetConstantBufferByIndex)(THIS_ UINT Index) PURE;
267    STDMETHOD_(ID3D10ShaderReflectionConstantBuffer*, GetConstantBufferByName)(THIS_ LPCSTR Name) PURE;
268   
269    STDMETHOD(GetResourceBindingDesc)(THIS_ UINT ResourceIndex, D3D10_SHADER_INPUT_BIND_DESC *pDesc) PURE;
270   
271    STDMETHOD(GetInputParameterDesc)(THIS_ UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
272    STDMETHOD(GetOutputParameterDesc)(THIS_ UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
273
274    STDMETHOD_(ID3D10ShaderReflectionVariable*, GetVariableByName)(THIS_ LPCSTR Name) PURE;
275
276    STDMETHOD(GetResourceBindingDescByName)(THIS_ LPCSTR Name, D3D10_SHADER_INPUT_BIND_DESC *pDesc) PURE;
277
278    STDMETHOD(GetMovInstructionCount)(THIS_ UINT* pCount) PURE;
279    STDMETHOD(GetMovcInstructionCount)(THIS_ UINT* pCount) PURE;
280    STDMETHOD(GetConversionInstructionCount)(THIS_ UINT* pCount) PURE;
281    STDMETHOD(GetBitwiseInstructionCount)(THIS_ UINT* pCount) PURE;
282   
283    STDMETHOD(GetGSInputPrimitive)(THIS_ D3D10_PRIMITIVE* pPrim) PURE;
284    STDMETHOD(IsLevel9Shader)(THIS_ BOOL* pbLevel9Shader) PURE;
285    STDMETHOD(IsSampleFrequencyShader)(THIS_ BOOL* pbSampleFrequency) PURE;
286};
287
288//////////////////////////////////////////////////////////////////////////////
289// APIs //////////////////////////////////////////////////////////////////////
290//////////////////////////////////////////////////////////////////////////////
291
292#ifdef __cplusplus
293extern "C" {
294#endif //__cplusplus
295
296#ifdef __cplusplus
297}
298#endif //__cplusplus
299   
300#endif //__D3D10_1SHADER_H__
301
trunk/3rdparty/dxsdk/Include/d3d10effect.h
r0r243311
1
2//////////////////////////////////////////////////////////////////////////////
3//
4//  Copyright (c) Microsoft Corporation.  All rights reserved.
5//
6//  File:       D3D10Effect.h
7//  Content:    D3D10 Stateblock/Effect Types & APIs
8//
9//////////////////////////////////////////////////////////////////////////////
10
11#ifndef __D3D10EFFECT_H__
12#define __D3D10EFFECT_H__
13
14#include "d3d10.h"
15
16//////////////////////////////////////////////////////////////////////////////
17// File contents:
18//
19// 1) Stateblock enums, structs, interfaces, flat APIs
20// 2) Effect enums, structs, interfaces, flat APIs
21//////////////////////////////////////////////////////////////////////////////
22
23//----------------------------------------------------------------------------
24// D3D10_DEVICE_STATE_TYPES:
25//
26// Used in ID3D10StateBlockMask function calls
27//
28//----------------------------------------------------------------------------
29
30typedef enum _D3D10_DEVICE_STATE_TYPES
31{
32   
33    D3D10_DST_SO_BUFFERS=1,             // Single-value state (atomical gets/sets)
34    D3D10_DST_OM_RENDER_TARGETS,        // Single-value state (atomical gets/sets)
35    D3D10_DST_OM_DEPTH_STENCIL_STATE,   // Single-value state
36    D3D10_DST_OM_BLEND_STATE,           // Single-value state
37
38    D3D10_DST_VS,                       // Single-value state
39    D3D10_DST_VS_SAMPLERS,              // Count: D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT
40    D3D10_DST_VS_SHADER_RESOURCES,      // Count: D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT
41    D3D10_DST_VS_CONSTANT_BUFFERS,      // Count:         
42
43    D3D10_DST_GS,                       // Single-value state
44    D3D10_DST_GS_SAMPLERS,              // Count: D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT
45    D3D10_DST_GS_SHADER_RESOURCES,      // Count: D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT
46    D3D10_DST_GS_CONSTANT_BUFFERS,      // Count: D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT
47
48    D3D10_DST_PS,                       // Single-value state
49    D3D10_DST_PS_SAMPLERS,              // Count: D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT
50    D3D10_DST_PS_SHADER_RESOURCES,      // Count: D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT
51    D3D10_DST_PS_CONSTANT_BUFFERS,      // Count: D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT
52   
53    D3D10_DST_IA_VERTEX_BUFFERS,        // Count: D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT
54    D3D10_DST_IA_INDEX_BUFFER,          // Single-value state
55    D3D10_DST_IA_INPUT_LAYOUT,          // Single-value state
56    D3D10_DST_IA_PRIMITIVE_TOPOLOGY,    // Single-value state
57
58    D3D10_DST_RS_VIEWPORTS,             // Single-value state (atomical gets/sets)
59    D3D10_DST_RS_SCISSOR_RECTS,         // Single-value state (atomical gets/sets)
60    D3D10_DST_RS_RASTERIZER_STATE,      // Single-value state
61
62    D3D10_DST_PREDICATION,              // Single-value state
63} D3D10_DEVICE_STATE_TYPES;
64
65//----------------------------------------------------------------------------
66// D3D10_DEVICE_STATE_TYPES:
67//
68// Used in ID3D10StateBlockMask function calls
69//
70//----------------------------------------------------------------------------
71
72#ifndef D3D10_BYTES_FROM_BITS
73#define D3D10_BYTES_FROM_BITS(x) (((x) + 7) / 8)
74#endif // D3D10_BYTES_FROM_BITS
75
76typedef struct _D3D10_STATE_BLOCK_MASK
77{
78    BYTE VS;
79    BYTE VSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
80    BYTE VSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
81    BYTE VSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
82   
83    BYTE GS;
84    BYTE GSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
85    BYTE GSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
86    BYTE GSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
87   
88    BYTE PS;
89    BYTE PSSamplers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT)];
90    BYTE PSShaderResources[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT)];
91    BYTE PSConstantBuffers[D3D10_BYTES_FROM_BITS(D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT)];
92   
93    BYTE IAVertexBuffers[D3D10_BYTES_FROM_BITS(D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT)];
94    BYTE IAIndexBuffer;
95    BYTE IAInputLayout;
96    BYTE IAPrimitiveTopology;
97   
98    BYTE OMRenderTargets;
99    BYTE OMDepthStencilState;
100    BYTE OMBlendState;
101   
102    BYTE RSViewports;
103    BYTE RSScissorRects;
104    BYTE RSRasterizerState;
105   
106    BYTE SOBuffers;
107   
108    BYTE Predication;
109} D3D10_STATE_BLOCK_MASK;
110
111//////////////////////////////////////////////////////////////////////////////
112// ID3D10StateBlock //////////////////////////////////////////////////////////
113//////////////////////////////////////////////////////////////////////////////
114
115typedef interface ID3D10StateBlock ID3D10StateBlock;
116typedef interface ID3D10StateBlock *LPD3D10STATEBLOCK;
117
118// {0803425A-57F5-4dd6-9465-A87570834A08}
119DEFINE_GUID(IID_ID3D10StateBlock,
1200x803425a, 0x57f5, 0x4dd6, 0x94, 0x65, 0xa8, 0x75, 0x70, 0x83, 0x4a, 0x8);
121
122#undef INTERFACE
123#define INTERFACE ID3D10StateBlock
124
125DECLARE_INTERFACE_(ID3D10StateBlock, IUnknown)
126{
127    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
128    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
129    STDMETHOD_(ULONG, Release)(THIS) PURE;
130   
131    STDMETHOD(Capture)(THIS) PURE;
132    STDMETHOD(Apply)(THIS) PURE;
133    STDMETHOD(ReleaseAllDeviceObjects)(THIS) PURE;
134    STDMETHOD(GetDevice)(THIS_ ID3D10Device **ppDevice) PURE;
135};
136
137#ifdef __cplusplus
138extern "C" {
139#endif //__cplusplus
140
141//----------------------------------------------------------------------------
142// D3D10_STATE_BLOCK_MASK and manipulation functions
143// -------------------------------------------------
144//
145// These functions exist to facilitate working with the D3D10_STATE_BLOCK_MASK
146// structure.
147//
148// D3D10_STATE_BLOCK_MASK *pResult or *pMask
149//   The state block mask to operate on
150//
151// D3D10_STATE_BLOCK_MASK *pA, *pB
152//   The source state block masks for the binary union/intersect/difference
153//   operations.
154//
155// D3D10_DEVICE_STATE_TYPES StateType
156//   The specific state type to enable/disable/query
157//
158// UINT RangeStart, RangeLength, Entry
159//   The specific bit or range of bits for a given state type to operate on.
160//   Consult the comments for D3D10_DEVICE_STATE_TYPES and
161//   D3D10_STATE_BLOCK_MASK for information on the valid bit ranges for
162//   each state.
163//
164//----------------------------------------------------------------------------
165
166HRESULT WINAPI D3D10StateBlockMaskUnion(D3D10_STATE_BLOCK_MASK *pA, D3D10_STATE_BLOCK_MASK *pB, D3D10_STATE_BLOCK_MASK *pResult);
167HRESULT WINAPI D3D10StateBlockMaskIntersect(D3D10_STATE_BLOCK_MASK *pA, D3D10_STATE_BLOCK_MASK *pB, D3D10_STATE_BLOCK_MASK *pResult);
168HRESULT WINAPI D3D10StateBlockMaskDifference(D3D10_STATE_BLOCK_MASK *pA, D3D10_STATE_BLOCK_MASK *pB, D3D10_STATE_BLOCK_MASK *pResult);
169HRESULT WINAPI D3D10StateBlockMaskEnableCapture(D3D10_STATE_BLOCK_MASK *pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength);
170HRESULT WINAPI D3D10StateBlockMaskDisableCapture(D3D10_STATE_BLOCK_MASK *pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength);
171HRESULT WINAPI D3D10StateBlockMaskEnableAll(D3D10_STATE_BLOCK_MASK *pMask);
172HRESULT WINAPI D3D10StateBlockMaskDisableAll(D3D10_STATE_BLOCK_MASK *pMask);
173BOOL    WINAPI D3D10StateBlockMaskGetSetting(D3D10_STATE_BLOCK_MASK *pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT Entry);
174
175//----------------------------------------------------------------------------
176// D3D10CreateStateBlock
177// ---------------------
178//
179// Creates a state block object based on the mask settings specified
180//   in a D3D10_STATE_BLOCK_MASK structure.
181//
182// ID3D10Device *pDevice
183//      The device interface to associate with this state block
184//
185// D3D10_STATE_BLOCK_MASK *pStateBlockMask
186//      A bit mask whose settings are used to generate a state block
187//      object.
188//
189// ID3D10StateBlock **ppStateBlock
190//      The resulting state block object.  This object will save/restore
191//      only those pieces of state that were set in the state block
192//      bit mask
193//----------------------------------------------------------------------------
194
195HRESULT WINAPI D3D10CreateStateBlock(ID3D10Device *pDevice, D3D10_STATE_BLOCK_MASK *pStateBlockMask, ID3D10StateBlock **ppStateBlock);
196
197#ifdef __cplusplus
198}
199#endif //__cplusplus
200
201//----------------------------------------------------------------------------
202// D3D10_COMPILE & D3D10_EFFECT flags:
203// -------------------------------------
204//
205// These flags are passed in when creating an effect, and affect
206// either compilation behavior or runtime effect behavior
207//
208// D3D10_EFFECT_COMPILE_CHILD_EFFECT
209//   Compile this .fx file to a child effect. Child effects have no initializers
210//   for any shared values as these are initialied in the master effect (pool).
211//
212// D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS
213//   By default, performance mode is enabled.  Performance mode disallows
214//   mutable state objects by preventing non-literal expressions from appearing in
215//   state object definitions.  Specifying this flag will disable the mode and allow
216//   for mutable state objects.
217//
218// D3D10_EFFECT_SINGLE_THREADED
219//   Do not attempt to synchronize with other threads loading effects into the
220//   same pool.
221//
222//----------------------------------------------------------------------------
223
224#define D3D10_EFFECT_COMPILE_CHILD_EFFECT              (1 << 0)
225#define D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS            (1 << 1)
226#define D3D10_EFFECT_SINGLE_THREADED                   (1 << 3)
227
228
229//----------------------------------------------------------------------------
230// D3D10_EFFECT_VARIABLE flags:
231// ----------------------------
232//
233// These flags describe an effect variable (global or annotation),
234// and are returned in D3D10_EFFECT_VARIABLE_DESC::Flags.
235//
236// D3D10_EFFECT_VARIABLE_POOLED
237//   Indicates that the this variable or constant buffer resides
238//   in an effect pool. If this flag is not set, then the variable resides
239//   in a standalone effect (if ID3D10Effect::GetPool returns NULL)
240//   or a child effect (if ID3D10Effect::GetPool returns non-NULL)
241//
242// D3D10_EFFECT_VARIABLE_ANNOTATION
243//   Indicates that this is an annotation on a technique, pass, or global
244//   variable. Otherwise, this is a global variable. Annotations cannot
245//   be shared.
246//
247// D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT
248//   Indicates that the variable has been explicitly bound using the
249//   register keyword.
250//----------------------------------------------------------------------------
251
252#define D3D10_EFFECT_VARIABLE_POOLED                  (1 << 0)
253#define D3D10_EFFECT_VARIABLE_ANNOTATION              (1 << 1)
254#define D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT     (1 << 2)
255
256//////////////////////////////////////////////////////////////////////////////
257// ID3D10EffectType //////////////////////////////////////////////////////////
258//////////////////////////////////////////////////////////////////////////////
259
260//----------------------------------------------------------------------------
261// D3D10_EFFECT_TYPE_DESC:
262//
263// Retrieved by ID3D10EffectType::GetDesc()
264//----------------------------------------------------------------------------
265
266typedef struct _D3D10_EFFECT_TYPE_DESC
267{
268    LPCSTR  TypeName;               // Name of the type
269                                    // (e.g. "float4" or "MyStruct")
270
271    D3D10_SHADER_VARIABLE_CLASS    Class;  // (e.g. scalar, vector, object, etc.)
272    D3D10_SHADER_VARIABLE_TYPE     Type;   // (e.g. float, texture, vertexshader, etc.)
273   
274    UINT    Elements;               // Number of elements in this type
275                                    // (0 if not an array)
276    UINT    Members;                // Number of members
277                                    // (0 if not a structure)
278    UINT    Rows;                   // Number of rows in this type
279                                    // (0 if not a numeric primitive)
280    UINT    Columns;                // Number of columns in this type
281                                    // (0 if not a numeric primitive)
282   
283    UINT    PackedSize;             // Number of bytes required to represent
284                                    // this data type, when tightly packed
285    UINT    UnpackedSize;           // Number of bytes occupied by this data
286                                    // type, when laid out in a constant buffer
287    UINT    Stride;                 // Number of bytes to seek between elements,
288                                    // when laid out in a constant buffer
289} D3D10_EFFECT_TYPE_DESC;
290
291typedef interface ID3D10EffectType ID3D10EffectType;
292typedef interface ID3D10EffectType *LPD3D10EFFECTTYPE;
293
294// {4E9E1DDC-CD9D-4772-A837-00180B9B88FD}
295DEFINE_GUID(IID_ID3D10EffectType,
2960x4e9e1ddc, 0xcd9d, 0x4772, 0xa8, 0x37, 0x0, 0x18, 0xb, 0x9b, 0x88, 0xfd);
297
298#undef INTERFACE
299#define INTERFACE ID3D10EffectType
300
301DECLARE_INTERFACE(ID3D10EffectType)
302{
303    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
304    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_TYPE_DESC *pDesc) PURE;
305    STDMETHOD_(ID3D10EffectType*, GetMemberTypeByIndex)(THIS_ UINT Index) PURE;
306    STDMETHOD_(ID3D10EffectType*, GetMemberTypeByName)(THIS_ LPCSTR Name) PURE;
307    STDMETHOD_(ID3D10EffectType*, GetMemberTypeBySemantic)(THIS_ LPCSTR Semantic) PURE;
308    STDMETHOD_(LPCSTR, GetMemberName)(THIS_ UINT Index) PURE;
309    STDMETHOD_(LPCSTR, GetMemberSemantic)(THIS_ UINT Index) PURE;
310};
311
312//////////////////////////////////////////////////////////////////////////////
313// ID3D10EffectVariable //////////////////////////////////////////////////////
314//////////////////////////////////////////////////////////////////////////////
315
316//----------------------------------------------------------------------------
317// D3D10_EFFECT_VARIABLE_DESC:
318//
319// Retrieved by ID3D10EffectVariable::GetDesc()
320//----------------------------------------------------------------------------
321
322typedef struct _D3D10_EFFECT_VARIABLE_DESC
323{
324    LPCSTR  Name;                   // Name of this variable, annotation,
325                                    // or structure member
326    LPCSTR  Semantic;               // Semantic string of this variable
327                                    // or structure member (NULL for
328                                    // annotations or if not present)
329   
330    UINT    Flags;                  // D3D10_EFFECT_VARIABLE_* flags
331    UINT    Annotations;            // Number of annotations on this variable
332                                    // (always 0 for annotations)
333
334    UINT    BufferOffset;           // Offset into containing cbuffer or tbuffer
335                                    // (always 0 for annotations or variables
336                                    // not in constant buffers)
337
338    UINT    ExplicitBindPoint;      // Used if the variable has been explicitly bound
339                                    // using the register keyword. Check Flags for
340                                    // D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT;
341} D3D10_EFFECT_VARIABLE_DESC;
342
343typedef interface ID3D10EffectVariable ID3D10EffectVariable;
344typedef interface ID3D10EffectVariable *LPD3D10EFFECTVARIABLE;
345
346// {AE897105-00E6-45bf-BB8E-281DD6DB8E1B}
347DEFINE_GUID(IID_ID3D10EffectVariable,
3480xae897105, 0xe6, 0x45bf, 0xbb, 0x8e, 0x28, 0x1d, 0xd6, 0xdb, 0x8e, 0x1b);
349
350#undef INTERFACE
351#define INTERFACE ID3D10EffectVariable
352
353// Forward defines
354typedef interface ID3D10EffectScalarVariable ID3D10EffectScalarVariable;
355typedef interface ID3D10EffectVectorVariable ID3D10EffectVectorVariable;
356typedef interface ID3D10EffectMatrixVariable ID3D10EffectMatrixVariable;
357typedef interface ID3D10EffectStringVariable ID3D10EffectStringVariable;
358typedef interface ID3D10EffectShaderResourceVariable ID3D10EffectShaderResourceVariable;
359typedef interface ID3D10EffectRenderTargetViewVariable ID3D10EffectRenderTargetViewVariable;
360typedef interface ID3D10EffectDepthStencilViewVariable ID3D10EffectDepthStencilViewVariable;
361typedef interface ID3D10EffectConstantBuffer ID3D10EffectConstantBuffer;
362typedef interface ID3D10EffectShaderVariable ID3D10EffectShaderVariable;
363typedef interface ID3D10EffectBlendVariable ID3D10EffectBlendVariable;
364typedef interface ID3D10EffectDepthStencilVariable ID3D10EffectDepthStencilVariable;
365typedef interface ID3D10EffectRasterizerVariable ID3D10EffectRasterizerVariable;
366typedef interface ID3D10EffectSamplerVariable ID3D10EffectSamplerVariable;
367
368DECLARE_INTERFACE(ID3D10EffectVariable)
369{
370    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
371    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
372    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
373   
374    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
375    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
376   
377    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
378    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
379    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
380   
381    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
382
383    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
384   
385    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
386    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
387    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
388    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
389    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
390    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
391    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
392    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
393    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
394    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
395    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
396    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
397    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
398   
399    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
400    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
401};
402
403//////////////////////////////////////////////////////////////////////////////
404// ID3D10EffectScalarVariable ////////////////////////////////////////////////
405//////////////////////////////////////////////////////////////////////////////
406
407typedef interface ID3D10EffectScalarVariable ID3D10EffectScalarVariable;
408typedef interface ID3D10EffectScalarVariable *LPD3D10EFFECTSCALARVARIABLE;
409
410// {00E48F7B-D2C8-49e8-A86C-022DEE53431F}
411DEFINE_GUID(IID_ID3D10EffectScalarVariable,
4120xe48f7b, 0xd2c8, 0x49e8, 0xa8, 0x6c, 0x2, 0x2d, 0xee, 0x53, 0x43, 0x1f);
413
414#undef INTERFACE
415#define INTERFACE ID3D10EffectScalarVariable
416
417DECLARE_INTERFACE_(ID3D10EffectScalarVariable, ID3D10EffectVariable)
418{
419    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
420    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
421    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
422   
423    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
424    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
425   
426    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
427    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
428    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
429   
430    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
431   
432    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
433   
434    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
435    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
436    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
437    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
438    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
439    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
440    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
441    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
442    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
443    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
444    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
445    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
446    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
447   
448    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
449    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
450   
451    STDMETHOD(SetFloat)(THIS_ float Value) PURE;
452    STDMETHOD(GetFloat)(THIS_ float *pValue) PURE;   
453   
454    STDMETHOD(SetFloatArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
455    STDMETHOD(GetFloatArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
456   
457    STDMETHOD(SetInt)(THIS_ int Value) PURE;
458    STDMETHOD(GetInt)(THIS_ int *pValue) PURE;
459   
460    STDMETHOD(SetIntArray)(THIS_ int *pData, UINT Offset, UINT Count) PURE;
461    STDMETHOD(GetIntArray)(THIS_ int *pData, UINT Offset, UINT Count) PURE;
462   
463    STDMETHOD(SetBool)(THIS_ BOOL Value) PURE;
464    STDMETHOD(GetBool)(THIS_ BOOL *pValue) PURE;
465   
466    STDMETHOD(SetBoolArray)(THIS_ BOOL *pData, UINT Offset, UINT Count) PURE;
467    STDMETHOD(GetBoolArray)(THIS_ BOOL *pData, UINT Offset, UINT Count) PURE;
468};
469
470//////////////////////////////////////////////////////////////////////////////
471// ID3D10EffectVectorVariable ////////////////////////////////////////////////
472//////////////////////////////////////////////////////////////////////////////
473
474typedef interface ID3D10EffectVectorVariable ID3D10EffectVectorVariable;
475typedef interface ID3D10EffectVectorVariable *LPD3D10EFFECTVECTORVARIABLE;
476
477// {62B98C44-1F82-4c67-BCD0-72CF8F217E81}
478DEFINE_GUID(IID_ID3D10EffectVectorVariable,
4790x62b98c44, 0x1f82, 0x4c67, 0xbc, 0xd0, 0x72, 0xcf, 0x8f, 0x21, 0x7e, 0x81);
480
481#undef INTERFACE
482#define INTERFACE ID3D10EffectVectorVariable
483
484DECLARE_INTERFACE_(ID3D10EffectVectorVariable, ID3D10EffectVariable)
485{
486    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
487    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
488    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
489   
490    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
491    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
492   
493    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
494    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
495    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
496   
497    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
498   
499    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
500   
501    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
502    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
503    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
504    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
505    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
506    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
507    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
508    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
509    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
510    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
511    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
512    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
513    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
514   
515    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
516    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
517   
518    STDMETHOD(SetBoolVector) (THIS_ BOOL *pData) PURE;
519    STDMETHOD(SetIntVector)  (THIS_ int *pData) PURE;
520    STDMETHOD(SetFloatVector)(THIS_ float *pData) PURE;
521
522    STDMETHOD(GetBoolVector) (THIS_ BOOL *pData) PURE;
523    STDMETHOD(GetIntVector)  (THIS_ int *pData) PURE;
524    STDMETHOD(GetFloatVector)(THIS_ float *pData) PURE;
525
526    STDMETHOD(SetBoolVectorArray) (THIS_ BOOL *pData, UINT Offset, UINT Count) PURE;
527    STDMETHOD(SetIntVectorArray)  (THIS_ int *pData, UINT Offset, UINT Count) PURE;
528    STDMETHOD(SetFloatVectorArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
529
530    STDMETHOD(GetBoolVectorArray) (THIS_ BOOL *pData, UINT Offset, UINT Count) PURE;
531    STDMETHOD(GetIntVectorArray)  (THIS_ int *pData, UINT Offset, UINT Count) PURE;
532    STDMETHOD(GetFloatVectorArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
533};
534
535//////////////////////////////////////////////////////////////////////////////
536// ID3D10EffectMatrixVariable ////////////////////////////////////////////////
537//////////////////////////////////////////////////////////////////////////////
538
539typedef interface ID3D10EffectMatrixVariable ID3D10EffectMatrixVariable;
540typedef interface ID3D10EffectMatrixVariable *LPD3D10EFFECTMATRIXVARIABLE;
541
542// {50666C24-B82F-4eed-A172-5B6E7E8522E0}
543DEFINE_GUID(IID_ID3D10EffectMatrixVariable,
5440x50666c24, 0xb82f, 0x4eed, 0xa1, 0x72, 0x5b, 0x6e, 0x7e, 0x85, 0x22, 0xe0);
545
546#undef INTERFACE
547#define INTERFACE ID3D10EffectMatrixVariable
548
549DECLARE_INTERFACE_(ID3D10EffectMatrixVariable, ID3D10EffectVariable)
550{
551    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
552    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
553    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
554   
555    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
556    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
557   
558    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
559    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
560    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
561   
562    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
563   
564    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
565   
566    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
567    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
568    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
569    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
570    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
571    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
572    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
573    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
574    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
575    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
576    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
577    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
578    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
579   
580    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
581    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT ByteOffset, UINT ByteCount) PURE;
582   
583    STDMETHOD(SetMatrix)(THIS_ float *pData) PURE;
584    STDMETHOD(GetMatrix)(THIS_ float *pData) PURE;
585   
586    STDMETHOD(SetMatrixArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
587    STDMETHOD(GetMatrixArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
588   
589    STDMETHOD(SetMatrixTranspose)(THIS_ float *pData) PURE;
590    STDMETHOD(GetMatrixTranspose)(THIS_ float *pData) PURE;
591   
592    STDMETHOD(SetMatrixTransposeArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
593    STDMETHOD(GetMatrixTransposeArray)(THIS_ float *pData, UINT Offset, UINT Count) PURE;
594};
595
596//////////////////////////////////////////////////////////////////////////////
597// ID3D10EffectStringVariable ////////////////////////////////////////////////
598//////////////////////////////////////////////////////////////////////////////
599
600typedef interface ID3D10EffectStringVariable ID3D10EffectStringVariable;
601typedef interface ID3D10EffectStringVariable *LPD3D10EFFECTSTRINGVARIABLE;
602
603// {71417501-8DF9-4e0a-A78A-255F9756BAFF}
604DEFINE_GUID(IID_ID3D10EffectStringVariable,
6050x71417501, 0x8df9, 0x4e0a, 0xa7, 0x8a, 0x25, 0x5f, 0x97, 0x56, 0xba, 0xff);
606
607#undef INTERFACE
608#define INTERFACE ID3D10EffectStringVariable
609
610DECLARE_INTERFACE_(ID3D10EffectStringVariable, ID3D10EffectVariable)
611{
612    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
613    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
614    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
615   
616    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
617    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
618   
619    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
620    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
621    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
622   
623    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
624   
625    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
626   
627    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
628    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
629    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
630    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
631    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
632    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
633    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
634    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
635    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
636    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
637    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
638    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
639    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
640   
641    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
642    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
643   
644    STDMETHOD(GetString)(THIS_ LPCSTR *ppString) PURE;
645    STDMETHOD(GetStringArray)(THIS_ LPCSTR *ppStrings, UINT Offset, UINT Count) PURE;
646};
647
648//////////////////////////////////////////////////////////////////////////////
649// ID3D10EffectShaderResourceVariable ////////////////////////////////////////
650//////////////////////////////////////////////////////////////////////////////
651
652typedef interface ID3D10EffectShaderResourceVariable ID3D10EffectShaderResourceVariable;
653typedef interface ID3D10EffectShaderResourceVariable *LPD3D10EFFECTSHADERRESOURCEVARIABLE;
654
655// {C0A7157B-D872-4b1d-8073-EFC2ACD4B1FC}
656DEFINE_GUID(IID_ID3D10EffectShaderResourceVariable,
6570xc0a7157b, 0xd872, 0x4b1d, 0x80, 0x73, 0xef, 0xc2, 0xac, 0xd4, 0xb1, 0xfc);
658
659
660#undef INTERFACE
661#define INTERFACE ID3D10EffectShaderResourceVariable
662
663DECLARE_INTERFACE_(ID3D10EffectShaderResourceVariable, ID3D10EffectVariable)
664{
665    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
666    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
667    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
668   
669    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
670    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
671   
672    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
673    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
674    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
675   
676    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
677   
678    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
679   
680    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
681    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
682    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
683    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
684    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
685    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
686    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
687    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
688    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
689    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
690    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
691    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
692    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
693   
694    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
695    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
696   
697    STDMETHOD(SetResource)(THIS_ ID3D10ShaderResourceView *pResource) PURE;
698    STDMETHOD(GetResource)(THIS_ ID3D10ShaderResourceView **ppResource) PURE;
699   
700    STDMETHOD(SetResourceArray)(THIS_ ID3D10ShaderResourceView **ppResources, UINT Offset, UINT Count) PURE;
701    STDMETHOD(GetResourceArray)(THIS_ ID3D10ShaderResourceView **ppResources, UINT Offset, UINT Count) PURE;
702};
703
704//////////////////////////////////////////////////////////////////////////////
705// ID3D10EffectRenderTargetViewVariable //////////////////////////////////////
706//////////////////////////////////////////////////////////////////////////////
707
708typedef interface ID3D10EffectRenderTargetViewVariable ID3D10EffectRenderTargetViewVariable;
709typedef interface ID3D10EffectRenderTargetViewVariable *LPD3D10EFFECTRENDERTARGETVIEWVARIABLE;
710
711// {28CA0CC3-C2C9-40bb-B57F-67B737122B17}
712DEFINE_GUID(IID_ID3D10EffectRenderTargetViewVariable,
7130x28ca0cc3, 0xc2c9, 0x40bb, 0xb5, 0x7f, 0x67, 0xb7, 0x37, 0x12, 0x2b, 0x17);
714
715#undef INTERFACE
716#define INTERFACE ID3D10EffectRenderTargetViewVariable
717
718DECLARE_INTERFACE_(ID3D10EffectRenderTargetViewVariable, ID3D10EffectVariable)
719{
720    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
721    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
722    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
723   
724    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
725    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
726   
727    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
728    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
729    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
730   
731    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
732   
733    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
734   
735    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
736    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
737    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
738    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
739    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
740    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
741    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
742    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
743    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
744    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
745    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
746    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
747    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
748   
749    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
750    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
751   
752    STDMETHOD(SetRenderTarget)(THIS_ ID3D10RenderTargetView *pResource) PURE;
753    STDMETHOD(GetRenderTarget)(THIS_ ID3D10RenderTargetView **ppResource) PURE;
754   
755    STDMETHOD(SetRenderTargetArray)(THIS_ ID3D10RenderTargetView **ppResources, UINT Offset, UINT Count) PURE;
756    STDMETHOD(GetRenderTargetArray)(THIS_ ID3D10RenderTargetView **ppResources, UINT Offset, UINT Count) PURE;
757};
758
759//////////////////////////////////////////////////////////////////////////////
760// ID3D10EffectDepthStencilViewVariable //////////////////////////////////////
761//////////////////////////////////////////////////////////////////////////////
762
763typedef interface ID3D10EffectDepthStencilViewVariable ID3D10EffectDepthStencilViewVariable;
764typedef interface ID3D10EffectDepthStencilViewVariable *LPD3D10EFFECTDEPTHSTENCILVIEWVARIABLE;
765
766// {3E02C918-CC79-4985-B622-2D92AD701623}
767DEFINE_GUID(IID_ID3D10EffectDepthStencilViewVariable,
7680x3e02c918, 0xcc79, 0x4985, 0xb6, 0x22, 0x2d, 0x92, 0xad, 0x70, 0x16, 0x23);
769
770#undef INTERFACE
771#define INTERFACE ID3D10EffectDepthStencilViewVariable
772
773DECLARE_INTERFACE_(ID3D10EffectDepthStencilViewVariable, ID3D10EffectVariable)
774{
775    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
776    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
777    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
778   
779    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
780    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
781   
782    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
783    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
784    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
785   
786    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
787   
788    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
789   
790    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
791    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
792    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
793    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
794    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
795    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
796    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
797    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
798    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
799    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
800    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
801    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
802    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
803   
804    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
805    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
806   
807    STDMETHOD(SetDepthStencil)(THIS_ ID3D10DepthStencilView *pResource) PURE;
808    STDMETHOD(GetDepthStencil)(THIS_ ID3D10DepthStencilView **ppResource) PURE;
809   
810    STDMETHOD(SetDepthStencilArray)(THIS_ ID3D10DepthStencilView **ppResources, UINT Offset, UINT Count) PURE;
811    STDMETHOD(GetDepthStencilArray)(THIS_ ID3D10DepthStencilView **ppResources, UINT Offset, UINT Count) PURE;
812};
813
814//////////////////////////////////////////////////////////////////////////////
815// ID3D10EffectConstantBuffer ////////////////////////////////////////////////
816//////////////////////////////////////////////////////////////////////////////
817
818typedef interface ID3D10EffectConstantBuffer ID3D10EffectConstantBuffer;
819typedef interface ID3D10EffectConstantBuffer *LPD3D10EFFECTCONSTANTBUFFER;
820
821// {56648F4D-CC8B-4444-A5AD-B5A3D76E91B3}
822DEFINE_GUID(IID_ID3D10EffectConstantBuffer,
8230x56648f4d, 0xcc8b, 0x4444, 0xa5, 0xad, 0xb5, 0xa3, 0xd7, 0x6e, 0x91, 0xb3);
824
825#undef INTERFACE
826#define INTERFACE ID3D10EffectConstantBuffer
827
828DECLARE_INTERFACE_(ID3D10EffectConstantBuffer, ID3D10EffectVariable)
829{
830    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
831    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
832   
833    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
834    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
835   
836    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
837    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
838    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
839   
840    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
841   
842    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
843   
844    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
845    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
846    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
847    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
848    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
849    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
850    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
851    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
852    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
853    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
854    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
855    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
856    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
857   
858    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
859    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
860   
861    STDMETHOD(SetConstantBuffer)(THIS_ ID3D10Buffer *pConstantBuffer) PURE;
862    STDMETHOD(GetConstantBuffer)(THIS_ ID3D10Buffer **ppConstantBuffer) PURE;
863   
864    STDMETHOD(SetTextureBuffer)(THIS_ ID3D10ShaderResourceView *pTextureBuffer) PURE;
865    STDMETHOD(GetTextureBuffer)(THIS_ ID3D10ShaderResourceView **ppTextureBuffer) PURE;
866};
867
868//////////////////////////////////////////////////////////////////////////////
869// ID3D10EffectShaderVariable ////////////////////////////////////////////////
870//////////////////////////////////////////////////////////////////////////////
871
872//----------------------------------------------------------------------------
873// D3D10_EFFECT_SHADER_DESC:
874//
875// Retrieved by ID3D10EffectShaderVariable::GetShaderDesc()
876//----------------------------------------------------------------------------
877
878typedef struct _D3D10_EFFECT_SHADER_DESC
879{
880    CONST BYTE *pInputSignature;    // Passed into CreateInputLayout,
881                                    // valid on VS and GS only
882   
883    BOOL IsInline;                  // Is this an anonymous shader variable
884                                    // resulting from an inline shader assignment?
885   
886   
887    // -- The following fields are not valid after Optimize() --
888    CONST BYTE *pBytecode;          // Shader bytecode
889    UINT BytecodeLength;
890   
891    LPCSTR SODecl;                  // Stream out declaration string (for GS with SO)
892   
893    UINT NumInputSignatureEntries;  // Number of entries in the input signature
894    UINT NumOutputSignatureEntries; // Number of entries in the output signature
895} D3D10_EFFECT_SHADER_DESC;
896
897
898typedef interface ID3D10EffectShaderVariable ID3D10EffectShaderVariable;
899typedef interface ID3D10EffectShaderVariable *LPD3D10EFFECTSHADERVARIABLE;
900
901// {80849279-C799-4797-8C33-0407A07D9E06}
902DEFINE_GUID(IID_ID3D10EffectShaderVariable,
9030x80849279, 0xc799, 0x4797, 0x8c, 0x33, 0x4, 0x7, 0xa0, 0x7d, 0x9e, 0x6);
904
905#undef INTERFACE
906#define INTERFACE ID3D10EffectShaderVariable
907
908DECLARE_INTERFACE_(ID3D10EffectShaderVariable, ID3D10EffectVariable)
909{
910    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
911    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
912   
913    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
914    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
915   
916    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
917    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
918    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
919   
920    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
921   
922    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
923   
924    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
925    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
926    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
927    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
928    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
929    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
930    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
931    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
932    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
933    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
934    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
935    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
936    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
937       
938    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
939    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
940   
941    STDMETHOD(GetShaderDesc)(THIS_ UINT ShaderIndex, D3D10_EFFECT_SHADER_DESC *pDesc) PURE;
942   
943    STDMETHOD(GetVertexShader)(THIS_ UINT ShaderIndex, ID3D10VertexShader **ppVS) PURE;
944    STDMETHOD(GetGeometryShader)(THIS_ UINT ShaderIndex, ID3D10GeometryShader **ppGS) PURE;
945    STDMETHOD(GetPixelShader)(THIS_ UINT ShaderIndex, ID3D10PixelShader **ppPS) PURE;
946   
947    STDMETHOD(GetInputSignatureElementDesc)(THIS_ UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
948    STDMETHOD(GetOutputSignatureElementDesc)(THIS_ UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
949};
950
951//////////////////////////////////////////////////////////////////////////////
952// ID3D10EffectBlendVariable /////////////////////////////////////////////////
953//////////////////////////////////////////////////////////////////////////////
954
955typedef interface ID3D10EffectBlendVariable ID3D10EffectBlendVariable;
956typedef interface ID3D10EffectBlendVariable *LPD3D10EFFECTBLENDVARIABLE;
957
958// {1FCD2294-DF6D-4eae-86B3-0E9160CFB07B}
959DEFINE_GUID(IID_ID3D10EffectBlendVariable,
9600x1fcd2294, 0xdf6d, 0x4eae, 0x86, 0xb3, 0xe, 0x91, 0x60, 0xcf, 0xb0, 0x7b);
961
962#undef INTERFACE
963#define INTERFACE ID3D10EffectBlendVariable
964
965DECLARE_INTERFACE_(ID3D10EffectBlendVariable, ID3D10EffectVariable)
966{
967    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
968    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
969   
970    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
971    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
972   
973    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
974    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
975    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
976   
977    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
978   
979    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
980   
981    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
982    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
983    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
984    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
985    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
986    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
987    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
988    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
989    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
990    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
991    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
992    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
993    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
994   
995    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
996    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
997   
998    STDMETHOD(GetBlendState)(THIS_ UINT Index, ID3D10BlendState **ppBlendState) PURE;
999    STDMETHOD(GetBackingStore)(THIS_ UINT Index, D3D10_BLEND_DESC *pBlendDesc) PURE;
1000};
1001
1002//////////////////////////////////////////////////////////////////////////////
1003// ID3D10EffectDepthStencilVariable //////////////////////////////////////////
1004//////////////////////////////////////////////////////////////////////////////
1005
1006typedef interface ID3D10EffectDepthStencilVariable ID3D10EffectDepthStencilVariable;
1007typedef interface ID3D10EffectDepthStencilVariable *LPD3D10EFFECTDEPTHSTENCILVARIABLE;
1008
1009// {AF482368-330A-46a5-9A5C-01C71AF24C8D}
1010DEFINE_GUID(IID_ID3D10EffectDepthStencilVariable,
10110xaf482368, 0x330a, 0x46a5, 0x9a, 0x5c, 0x1, 0xc7, 0x1a, 0xf2, 0x4c, 0x8d);
1012
1013#undef INTERFACE
1014#define INTERFACE ID3D10EffectDepthStencilVariable
1015
1016DECLARE_INTERFACE_(ID3D10EffectDepthStencilVariable, ID3D10EffectVariable)
1017{
1018    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
1019    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
1020   
1021    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1022    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1023   
1024    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
1025    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
1026    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
1027   
1028    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
1029   
1030    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
1031   
1032    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
1033    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
1034    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
1035    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
1036    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
1037    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
1038    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
1039    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
1040    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
1041    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
1042    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
1043    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
1044    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
1045   
1046    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1047    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1048   
1049    STDMETHOD(GetDepthStencilState)(THIS_ UINT Index, ID3D10DepthStencilState **ppDepthStencilState) PURE;
1050    STDMETHOD(GetBackingStore)(THIS_ UINT Index, D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc) PURE;
1051};
1052
1053//////////////////////////////////////////////////////////////////////////////
1054// ID3D10EffectRasterizerVariable ////////////////////////////////////////////
1055//////////////////////////////////////////////////////////////////////////////
1056
1057typedef interface ID3D10EffectRasterizerVariable ID3D10EffectRasterizerVariable;
1058typedef interface ID3D10EffectRasterizerVariable *LPD3D10EFFECTRASTERIZERVARIABLE;
1059
1060// {21AF9F0E-4D94-4ea9-9785-2CB76B8C0B34}
1061DEFINE_GUID(IID_ID3D10EffectRasterizerVariable,
10620x21af9f0e, 0x4d94, 0x4ea9, 0x97, 0x85, 0x2c, 0xb7, 0x6b, 0x8c, 0xb, 0x34);
1063
1064#undef INTERFACE
1065#define INTERFACE ID3D10EffectRasterizerVariable
1066
1067DECLARE_INTERFACE_(ID3D10EffectRasterizerVariable, ID3D10EffectVariable)
1068{
1069    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
1070    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
1071   
1072    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1073    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1074   
1075    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
1076    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
1077    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
1078   
1079    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
1080   
1081    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
1082   
1083    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
1084    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
1085    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
1086    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
1087    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
1088    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
1089    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
1090    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
1091    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
1092    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
1093    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
1094    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
1095    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
1096   
1097    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1098    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1099   
1100    STDMETHOD(GetRasterizerState)(THIS_ UINT Index, ID3D10RasterizerState **ppRasterizerState) PURE;
1101    STDMETHOD(GetBackingStore)(THIS_ UINT Index, D3D10_RASTERIZER_DESC *pRasterizerDesc) PURE;
1102};
1103
1104//////////////////////////////////////////////////////////////////////////////
1105// ID3D10EffectSamplerVariable ///////////////////////////////////////////////
1106//////////////////////////////////////////////////////////////////////////////
1107
1108typedef interface ID3D10EffectSamplerVariable ID3D10EffectSamplerVariable;
1109typedef interface ID3D10EffectSamplerVariable *LPD3D10EFFECTSAMPLERVARIABLE;
1110
1111// {6530D5C7-07E9-4271-A418-E7CE4BD1E480}
1112DEFINE_GUID(IID_ID3D10EffectSamplerVariable,
11130x6530d5c7, 0x7e9, 0x4271, 0xa4, 0x18, 0xe7, 0xce, 0x4b, 0xd1, 0xe4, 0x80);
1114
1115#undef INTERFACE
1116#define INTERFACE ID3D10EffectSamplerVariable
1117
1118DECLARE_INTERFACE_(ID3D10EffectSamplerVariable, ID3D10EffectVariable)
1119{
1120    STDMETHOD_(ID3D10EffectType*, GetType)(THIS) PURE;
1121    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *pDesc) PURE;
1122   
1123    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1124    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1125   
1126    STDMETHOD_(ID3D10EffectVariable*, GetMemberByIndex)(THIS_ UINT Index) PURE;
1127    STDMETHOD_(ID3D10EffectVariable*, GetMemberByName)(THIS_ LPCSTR Name) PURE;
1128    STDMETHOD_(ID3D10EffectVariable*, GetMemberBySemantic)(THIS_ LPCSTR Semantic) PURE;
1129   
1130    STDMETHOD_(ID3D10EffectVariable*, GetElement)(THIS_ UINT Index) PURE;
1131   
1132    STDMETHOD_(ID3D10EffectConstantBuffer*, GetParentConstantBuffer)(THIS) PURE;
1133   
1134    STDMETHOD_(ID3D10EffectScalarVariable*, AsScalar)(THIS) PURE;
1135    STDMETHOD_(ID3D10EffectVectorVariable*, AsVector)(THIS) PURE;
1136    STDMETHOD_(ID3D10EffectMatrixVariable*, AsMatrix)(THIS) PURE;
1137    STDMETHOD_(ID3D10EffectStringVariable*, AsString)(THIS) PURE;
1138    STDMETHOD_(ID3D10EffectShaderResourceVariable*, AsShaderResource)(THIS) PURE;
1139    STDMETHOD_(ID3D10EffectRenderTargetViewVariable*, AsRenderTargetView)(THIS) PURE;
1140    STDMETHOD_(ID3D10EffectDepthStencilViewVariable*, AsDepthStencilView)(THIS) PURE;
1141    STDMETHOD_(ID3D10EffectConstantBuffer*, AsConstantBuffer)(THIS) PURE;
1142    STDMETHOD_(ID3D10EffectShaderVariable*, AsShader)(THIS) PURE;
1143    STDMETHOD_(ID3D10EffectBlendVariable*, AsBlend)(THIS) PURE;
1144    STDMETHOD_(ID3D10EffectDepthStencilVariable*, AsDepthStencil)(THIS) PURE;
1145    STDMETHOD_(ID3D10EffectRasterizerVariable*, AsRasterizer)(THIS) PURE;
1146    STDMETHOD_(ID3D10EffectSamplerVariable*, AsSampler)(THIS) PURE;
1147   
1148    STDMETHOD(SetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1149    STDMETHOD(GetRawValue)(THIS_ void *pData, UINT Offset, UINT Count) PURE;
1150   
1151    STDMETHOD(GetSampler)(THIS_ UINT Index, ID3D10SamplerState **ppSampler) PURE;
1152    STDMETHOD(GetBackingStore)(THIS_ UINT Index, D3D10_SAMPLER_DESC *pSamplerDesc) PURE;
1153};
1154
1155//////////////////////////////////////////////////////////////////////////////
1156// ID3D10EffectPass //////////////////////////////////////////////////////////
1157//////////////////////////////////////////////////////////////////////////////
1158
1159//----------------------------------------------------------------------------
1160// D3D10_PASS_DESC:
1161//
1162// Retrieved by ID3D10EffectPass::GetDesc()
1163//----------------------------------------------------------------------------
1164
1165typedef struct _D3D10_PASS_DESC
1166{
1167    LPCSTR Name;                    // Name of this pass (NULL if not anonymous)   
1168    UINT Annotations;               // Number of annotations on this pass
1169   
1170    BYTE *pIAInputSignature;        // Signature from VS or GS (if there is no VS)
1171                                    // or NULL if neither exists
1172    SIZE_T IAInputSignatureSize;    // Singature size in bytes                               
1173                                   
1174    UINT StencilRef;                // Specified in SetDepthStencilState()
1175    UINT SampleMask;                // Specified in SetBlendState()
1176    FLOAT BlendFactor[4];           // Specified in SetBlendState()
1177} D3D10_PASS_DESC;
1178
1179//----------------------------------------------------------------------------
1180// D3D10_PASS_SHADER_DESC:
1181//
1182// Retrieved by ID3D10EffectPass::Get**ShaderDesc()
1183//----------------------------------------------------------------------------
1184
1185typedef struct _D3D10_PASS_SHADER_DESC
1186{
1187    ID3D10EffectShaderVariable *pShaderVariable;    // The variable that this shader came from.
1188                                                    // If this is an inline shader assignment,
1189                                                    //   the returned interface will be an
1190                                                    //   anonymous shader variable, which is
1191                                                    //   not retrievable any other way.  It's
1192                                                    //   name in the variable description will
1193                                                    //   be "$Anonymous".
1194                                                    // If there is no assignment of this type in
1195                                                    //   the pass block, pShaderVariable != NULL,
1196                                                    //   but pShaderVariable->IsValid() == FALSE.
1197   
1198    UINT                        ShaderIndex;        // The element of pShaderVariable (if an array)
1199                                                    // or 0 if not applicable
1200} D3D10_PASS_SHADER_DESC;
1201
1202typedef interface ID3D10EffectPass ID3D10EffectPass;
1203typedef interface ID3D10EffectPass *LPD3D10EFFECTPASS;
1204
1205// {5CFBEB89-1A06-46e0-B282-E3F9BFA36A54}
1206DEFINE_GUID(IID_ID3D10EffectPass,
12070x5cfbeb89, 0x1a06, 0x46e0, 0xb2, 0x82, 0xe3, 0xf9, 0xbf, 0xa3, 0x6a, 0x54);
1208
1209#undef INTERFACE
1210#define INTERFACE ID3D10EffectPass
1211
1212DECLARE_INTERFACE(ID3D10EffectPass)
1213{
1214    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
1215    STDMETHOD(GetDesc)(THIS_ D3D10_PASS_DESC *pDesc) PURE;
1216   
1217    STDMETHOD(GetVertexShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *pDesc) PURE;
1218    STDMETHOD(GetGeometryShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *pDesc) PURE;
1219    STDMETHOD(GetPixelShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *pDesc) PURE;
1220   
1221    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1222    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1223   
1224    STDMETHOD(Apply)(THIS_ UINT Flags) PURE;
1225   
1226    STDMETHOD(ComputeStateBlockMask)(THIS_ D3D10_STATE_BLOCK_MASK *pStateBlockMask) PURE;
1227};
1228
1229//////////////////////////////////////////////////////////////////////////////
1230// ID3D10EffectTechnique /////////////////////////////////////////////////////
1231//////////////////////////////////////////////////////////////////////////////
1232
1233//----------------------------------------------------------------------------
1234// D3D10_TECHNIQUE_DESC:
1235//
1236// Retrieved by ID3D10EffectTechnique::GetDesc()
1237//----------------------------------------------------------------------------
1238
1239typedef struct _D3D10_TECHNIQUE_DESC
1240{
1241    LPCSTR  Name;                   // Name of this technique (NULL if not anonymous)
1242    UINT    Passes;                 // Number of passes contained within
1243    UINT    Annotations;            // Number of annotations on this technique
1244} D3D10_TECHNIQUE_DESC;
1245
1246typedef interface ID3D10EffectTechnique ID3D10EffectTechnique;
1247typedef interface ID3D10EffectTechnique *LPD3D10EFFECTTECHNIQUE;
1248
1249// {DB122CE8-D1C9-4292-B237-24ED3DE8B175}
1250DEFINE_GUID(IID_ID3D10EffectTechnique,
12510xdb122ce8, 0xd1c9, 0x4292, 0xb2, 0x37, 0x24, 0xed, 0x3d, 0xe8, 0xb1, 0x75);
1252
1253#undef INTERFACE
1254#define INTERFACE ID3D10EffectTechnique
1255
1256DECLARE_INTERFACE(ID3D10EffectTechnique)
1257{
1258    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
1259    STDMETHOD(GetDesc)(THIS_ D3D10_TECHNIQUE_DESC *pDesc) PURE;
1260   
1261    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByIndex)(THIS_ UINT Index) PURE;
1262    STDMETHOD_(ID3D10EffectVariable*, GetAnnotationByName)(THIS_ LPCSTR Name) PURE;
1263   
1264    STDMETHOD_(ID3D10EffectPass*, GetPassByIndex)(THIS_ UINT Index) PURE;
1265    STDMETHOD_(ID3D10EffectPass*, GetPassByName)(THIS_ LPCSTR Name) PURE;
1266   
1267    STDMETHOD(ComputeStateBlockMask)(THIS_ D3D10_STATE_BLOCK_MASK *pStateBlockMask) PURE;
1268};
1269
1270//////////////////////////////////////////////////////////////////////////////
1271// ID3D10Effect //////////////////////////////////////////////////////////////
1272//////////////////////////////////////////////////////////////////////////////
1273
1274//----------------------------------------------------------------------------
1275// D3D10_EFFECT_DESC:
1276//
1277// Retrieved by ID3D10Effect::GetDesc()
1278//----------------------------------------------------------------------------
1279
1280typedef struct _D3D10_EFFECT_DESC
1281{
1282   
1283    BOOL    IsChildEffect;          // TRUE if this is a child effect,
1284                                    // FALSE if this is standalone or an effect pool.
1285                                   
1286    UINT    ConstantBuffers;        // Number of constant buffers in this effect,
1287                                    // excluding the effect pool.
1288    UINT    SharedConstantBuffers;  // Number of constant buffers shared in this
1289                                    // effect's pool.
1290                                   
1291    UINT    GlobalVariables;        // Number of global variables in this effect,
1292                                    // excluding the effect pool.
1293    UINT    SharedGlobalVariables;  // Number of global variables shared in this
1294                                    // effect's pool.
1295                                   
1296    UINT    Techniques;             // Number of techniques in this effect,
1297                                    // excluding the effect pool.
1298} D3D10_EFFECT_DESC;
1299
1300typedef interface ID3D10Effect ID3D10Effect;
1301typedef interface ID3D10Effect *LPD3D10EFFECT;
1302
1303// {51B0CA8B-EC0B-4519-870D-8EE1CB5017C7}
1304DEFINE_GUID(IID_ID3D10Effect,
13050x51b0ca8b, 0xec0b, 0x4519, 0x87, 0xd, 0x8e, 0xe1, 0xcb, 0x50, 0x17, 0xc7);
1306
1307#undef INTERFACE
1308#define INTERFACE ID3D10Effect
1309
1310DECLARE_INTERFACE_(ID3D10Effect, IUnknown)
1311{
1312    // IUnknown
1313    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
1314    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1315    STDMETHOD_(ULONG, Release)(THIS) PURE;
1316   
1317    STDMETHOD_(BOOL, IsValid)(THIS) PURE;
1318    STDMETHOD_(BOOL, IsPool)(THIS) PURE;
1319
1320    // Managing D3D Device
1321    STDMETHOD(GetDevice)(THIS_ ID3D10Device** ppDevice) PURE;
1322   
1323    // New Reflection APIs
1324    STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_DESC *pDesc) PURE;
1325   
1326    STDMETHOD_(ID3D10EffectConstantBuffer*, GetConstantBufferByIndex)(THIS_ UINT Index) PURE;
1327    STDMETHOD_(ID3D10EffectConstantBuffer*, GetConstantBufferByName)(THIS_ LPCSTR Name) PURE;
1328   
1329    STDMETHOD_(ID3D10EffectVariable*, GetVariableByIndex)(THIS_ UINT Index) PURE;
1330    STDMETHOD_(ID3D10EffectVariable*, GetVariableByName)(THIS_ LPCSTR Name) PURE;
1331    STDMETHOD_(ID3D10EffectVariable*, GetVariableBySemantic)(THIS_ LPCSTR Semantic) PURE;
1332   
1333    STDMETHOD_(ID3D10EffectTechnique*, GetTechniqueByIndex)(THIS_ UINT Index) PURE;
1334    STDMETHOD_(ID3D10EffectTechnique*, GetTechniqueByName)(THIS_ LPCSTR Name) PURE;
1335   
1336    STDMETHOD(Optimize)(THIS) PURE;
1337    STDMETHOD_(BOOL, IsOptimized)(THIS) PURE;
1338
1339};
1340
1341//////////////////////////////////////////////////////////////////////////////
1342// ID3D10EffectPool //////////////////////////////////////////////////////////
1343//////////////////////////////////////////////////////////////////////////////
1344
1345typedef interface ID3D10EffectPool ID3D10EffectPool;
1346typedef interface ID3D10EffectPool *LPD3D10EFFECTPOOL;
1347
1348// {9537AB04-3250-412e-8213-FCD2F8677933}
1349DEFINE_GUID(IID_ID3D10EffectPool,
13500x9537ab04, 0x3250, 0x412e, 0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33);
1351
1352#undef INTERFACE
1353#define INTERFACE ID3D10EffectPool
1354
1355DECLARE_INTERFACE_(ID3D10EffectPool, IUnknown)
1356{
1357    // IUnknown
1358    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
1359    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1360    STDMETHOD_(ULONG, Release)(THIS) PURE;
1361   
1362    STDMETHOD_(ID3D10Effect*, AsEffect)(THIS) PURE;
1363   
1364    // No public methods
1365};
1366
1367//////////////////////////////////////////////////////////////////////////////
1368// APIs //////////////////////////////////////////////////////////////////////
1369//////////////////////////////////////////////////////////////////////////////
1370
1371#ifdef __cplusplus
1372extern "C" {
1373#endif //__cplusplus
1374
1375//----------------------------------------------------------------------------
1376// D3D10CreateEffectFromXXXX:
1377// --------------------------
1378// Creates an effect from a binary effect or file
1379//
1380// Parameters:
1381//
1382// [in]
1383//
1384//
1385//  pData
1386//      Blob of effect data, either ASCII (uncompiled, for D3D10CompileEffectFromMemory) or binary (compiled, for D3D10CreateEffect*)
1387//  DataLength
1388//      Length of the data blob
1389//
1390//  pSrcFileName
1391//      Name of the ASCII Effect file pData was obtained from
1392//
1393//  pDefines
1394//      Optional NULL-terminated array of preprocessor macro definitions.
1395//  pInclude
1396//      Optional interface pointer to use for handling #include directives.
1397//      If this parameter is NULL, #includes will be honored when compiling
1398//      from file, and will error when compiling from resource or memory.
1399//  HLSLFlags
1400//      Compilation flags pertaining to shaders and data types, honored by
1401//      the HLSL compiler
1402//  FXFlags
1403//      Compilation flags pertaining to Effect compilation, honored
1404//      by the Effect compiler
1405//  pDevice
1406//      Pointer to the D3D10 device on which to create Effect resources
1407//  pEffectPool
1408//      Pointer to an Effect pool to share variables with or NULL
1409//
1410// [out]
1411//
1412//  ppEffect
1413//      Address of the newly created Effect interface
1414//  ppEffectPool
1415//      Address of the newly created Effect pool interface
1416//  ppErrors
1417//      If non-NULL, address of a buffer with error messages that occurred
1418//      during parsing or compilation
1419//
1420//----------------------------------------------------------------------------
1421
1422HRESULT WINAPI D3D10CompileEffectFromMemory(void *pData, SIZE_T DataLength, LPCSTR pSrcFileName, CONST D3D10_SHADER_MACRO *pDefines,
1423    ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags,
1424    ID3D10Blob **ppCompiledEffect, ID3D10Blob **ppErrors);
1425
1426HRESULT WINAPI D3D10CreateEffectFromMemory(void *pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device *pDevice,
1427    ID3D10EffectPool *pEffectPool, ID3D10Effect **ppEffect);
1428
1429HRESULT WINAPI D3D10CreateEffectPoolFromMemory(void *pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device *pDevice,
1430    ID3D10EffectPool **ppEffectPool);
1431
1432
1433//----------------------------------------------------------------------------
1434// D3D10DisassembleEffect:
1435// -----------------------
1436// Takes an effect interface, and returns a buffer containing text assembly.
1437//
1438// Parameters:
1439//  pEffect
1440//      Pointer to the runtime effect interface.
1441//  EnableColorCode
1442//      Emit HTML tags for color coding the output?
1443//  ppDisassembly
1444//      Returns a buffer containing the disassembled effect.
1445//----------------------------------------------------------------------------
1446
1447HRESULT WINAPI D3D10DisassembleEffect(ID3D10Effect *pEffect, BOOL EnableColorCode, ID3D10Blob **ppDisassembly);
1448
1449#ifdef __cplusplus
1450}
1451#endif //__cplusplus
1452
1453#endif //__D3D10EFFECT_H__
1454
1455
trunk/3rdparty/dxsdk/Include/d3d10shader.h
r0r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (c) Microsoft Corporation.  All rights reserved.
4//
5//  File:       D3D10Shader.h
6//  Content:    D3D10 Shader Types and APIs
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#ifndef __D3D10SHADER_H__
11#define __D3D10SHADER_H__
12
13#include "d3d10.h"
14
15
16//---------------------------------------------------------------------------
17// D3D10_TX_VERSION:
18// --------------
19// Version token used to create a procedural texture filler in effects
20// Used by D3D10Fill[]TX functions
21//---------------------------------------------------------------------------
22#define D3D10_TX_VERSION(_Major,_Minor) (('T' << 24) | ('X' << 16) | ((_Major) << 8) | (_Minor))
23
24
25//----------------------------------------------------------------------------
26// D3D10SHADER flags:
27// -----------------
28// D3D10_SHADER_DEBUG
29//   Insert debug file/line/type/symbol information.
30//
31// D3D10_SHADER_SKIP_VALIDATION
32//   Do not validate the generated code against known capabilities and
33//   constraints.  This option is only recommended when compiling shaders
34//   you KNOW will work.  (ie. have compiled before without this option.)
35//   Shaders are always validated by D3D before they are set to the device.
36//
37// D3D10_SHADER_SKIP_OPTIMIZATION
38//   Instructs the compiler to skip optimization steps during code generation.
39//   Unless you are trying to isolate a problem in your code using this option
40//   is not recommended.
41//
42// D3D10_SHADER_PACK_MATRIX_ROW_MAJOR
43//   Unless explicitly specified, matrices will be packed in row-major order
44//   on input and output from the shader.
45//
46// D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR
47//   Unless explicitly specified, matrices will be packed in column-major
48//   order on input and output from the shader.  This is generally more
49//   efficient, since it allows vector-matrix multiplication to be performed
50//   using a series of dot-products.
51//
52// D3D10_SHADER_PARTIAL_PRECISION
53//   Force all computations in resulting shader to occur at partial precision.
54//   This may result in faster evaluation of shaders on some hardware.
55//
56// D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT
57//   Force compiler to compile against the next highest available software
58//   target for vertex shaders.  This flag also turns optimizations off,
59//   and debugging on. 
60//
61// D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT
62//   Force compiler to compile against the next highest available software
63//   target for pixel shaders.  This flag also turns optimizations off,
64//   and debugging on.
65//
66// D3D10_SHADER_NO_PRESHADER
67//   Disables Preshaders. Using this flag will cause the compiler to not
68//   pull out static expression for evaluation on the host cpu
69//
70// D3D10_SHADER_AVOID_FLOW_CONTROL
71//   Hint compiler to avoid flow-control constructs where possible.
72//
73// D3D10_SHADER_PREFER_FLOW_CONTROL
74//   Hint compiler to prefer flow-control constructs where possible.
75//
76// D3D10_SHADER_ENABLE_STRICTNESS
77//   By default, the HLSL/Effect compilers are not strict on deprecated syntax.
78//   Specifying this flag enables the strict mode. Deprecated syntax may be
79//   removed in a future release, and enabling syntax is a good way to make sure
80//   your shaders comply to the latest spec.
81//
82// D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY
83//   This enables older shaders to compile to 4_0 targets.
84//
85//----------------------------------------------------------------------------
86
87#define D3D10_SHADER_DEBUG                          (1 << 0)
88#define D3D10_SHADER_SKIP_VALIDATION                (1 << 1)
89#define D3D10_SHADER_SKIP_OPTIMIZATION              (1 << 2)
90#define D3D10_SHADER_PACK_MATRIX_ROW_MAJOR          (1 << 3)
91#define D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR       (1 << 4)
92#define D3D10_SHADER_PARTIAL_PRECISION              (1 << 5)
93#define D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT       (1 << 6)
94#define D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT       (1 << 7)
95#define D3D10_SHADER_NO_PRESHADER                   (1 << 8)
96#define D3D10_SHADER_AVOID_FLOW_CONTROL             (1 << 9)
97#define D3D10_SHADER_PREFER_FLOW_CONTROL            (1 << 10)
98#define D3D10_SHADER_ENABLE_STRICTNESS              (1 << 11)
99#define D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY (1 << 12)
100#define D3D10_SHADER_IEEE_STRICTNESS                (1 << 13)
101#define D3D10_SHADER_WARNINGS_ARE_ERRORS            (1 << 18)
102
103
104// optimization level flags
105#define D3D10_SHADER_OPTIMIZATION_LEVEL0            (1 << 14)
106#define D3D10_SHADER_OPTIMIZATION_LEVEL1            0
107#define D3D10_SHADER_OPTIMIZATION_LEVEL2            ((1 << 14) | (1 << 15))
108#define D3D10_SHADER_OPTIMIZATION_LEVEL3            (1 << 15)
109
110
111
112
113typedef D3D_SHADER_MACRO D3D10_SHADER_MACRO;
114typedef D3D10_SHADER_MACRO* LPD3D10_SHADER_MACRO;
115
116
117typedef D3D_SHADER_VARIABLE_CLASS D3D10_SHADER_VARIABLE_CLASS;
118typedef D3D10_SHADER_VARIABLE_CLASS* LPD3D10_SHADER_VARIABLE_CLASS;
119
120typedef D3D_SHADER_VARIABLE_FLAGS D3D10_SHADER_VARIABLE_FLAGS;
121typedef D3D10_SHADER_VARIABLE_FLAGS* LPD3D10_SHADER_VARIABLE_FLAGS;
122
123typedef D3D_SHADER_VARIABLE_TYPE D3D10_SHADER_VARIABLE_TYPE;
124typedef D3D10_SHADER_VARIABLE_TYPE* LPD3D10_SHADER_VARIABLE_TYPE;
125
126typedef D3D_SHADER_INPUT_FLAGS D3D10_SHADER_INPUT_FLAGS;
127typedef D3D10_SHADER_INPUT_FLAGS* LPD3D10_SHADER_INPUT_FLAGS;
128
129typedef D3D_SHADER_INPUT_TYPE D3D10_SHADER_INPUT_TYPE;
130typedef D3D10_SHADER_INPUT_TYPE* LPD3D10_SHADER_INPUT_TYPE;
131
132typedef D3D_SHADER_CBUFFER_FLAGS D3D10_SHADER_CBUFFER_FLAGS;
133typedef D3D10_SHADER_CBUFFER_FLAGS* LPD3D10_SHADER_CBUFFER_FLAGS;
134
135typedef D3D_CBUFFER_TYPE D3D10_CBUFFER_TYPE;
136typedef D3D10_CBUFFER_TYPE* LPD3D10_CBUFFER_TYPE;
137
138typedef D3D_NAME D3D10_NAME;
139
140typedef D3D_RESOURCE_RETURN_TYPE D3D10_RESOURCE_RETURN_TYPE;
141
142typedef D3D_REGISTER_COMPONENT_TYPE D3D10_REGISTER_COMPONENT_TYPE;
143
144typedef D3D_INCLUDE_TYPE D3D10_INCLUDE_TYPE;
145
146// ID3D10Include has been made version-neutral and moved to d3dcommon.h.
147typedef interface ID3DInclude ID3D10Include;
148typedef interface ID3DInclude* LPD3D10INCLUDE;
149#define IID_ID3D10Include IID_ID3DInclude
150
151
152//----------------------------------------------------------------------------
153// ID3D10ShaderReflection:
154//----------------------------------------------------------------------------
155
156//
157// Structure definitions
158//
159
160typedef struct _D3D10_SHADER_DESC
161{
162    UINT                    Version;                     // Shader version
163    LPCSTR                  Creator;                     // Creator string
164    UINT                    Flags;                       // Shader compilation/parse flags
165   
166    UINT                    ConstantBuffers;             // Number of constant buffers
167    UINT                    BoundResources;              // Number of bound resources
168    UINT                    InputParameters;             // Number of parameters in the input signature
169    UINT                    OutputParameters;            // Number of parameters in the output signature
170
171    UINT                    InstructionCount;            // Number of emitted instructions
172    UINT                    TempRegisterCount;           // Number of temporary registers used
173    UINT                    TempArrayCount;              // Number of temporary arrays used
174    UINT                    DefCount;                    // Number of constant defines
175    UINT                    DclCount;                    // Number of declarations (input + output)
176    UINT                    TextureNormalInstructions;   // Number of non-categorized texture instructions
177    UINT                    TextureLoadInstructions;     // Number of texture load instructions
178    UINT                    TextureCompInstructions;     // Number of texture comparison instructions
179    UINT                    TextureBiasInstructions;     // Number of texture bias instructions
180    UINT                    TextureGradientInstructions; // Number of texture gradient instructions
181    UINT                    FloatInstructionCount;       // Number of floating point arithmetic instructions used
182    UINT                    IntInstructionCount;         // Number of signed integer arithmetic instructions used
183    UINT                    UintInstructionCount;        // Number of unsigned integer arithmetic instructions used
184    UINT                    StaticFlowControlCount;      // Number of static flow control instructions used
185    UINT                    DynamicFlowControlCount;     // Number of dynamic flow control instructions used
186    UINT                    MacroInstructionCount;       // Number of macro instructions used
187    UINT                    ArrayInstructionCount;       // Number of array instructions used
188    UINT                    CutInstructionCount;         // Number of cut instructions used
189    UINT                    EmitInstructionCount;        // Number of emit instructions used
190    D3D10_PRIMITIVE_TOPOLOGY GSOutputTopology;           // Geometry shader output topology
191    UINT                    GSMaxOutputVertexCount;      // Geometry shader maximum output vertex count
192} D3D10_SHADER_DESC;
193
194typedef struct _D3D10_SHADER_BUFFER_DESC
195{
196    LPCSTR                  Name;           // Name of the constant buffer
197    D3D10_CBUFFER_TYPE      Type;           // Indicates that this is a CBuffer or TBuffer
198    UINT                    Variables;      // Number of member variables
199    UINT                    Size;           // Size of CB (in bytes)
200    UINT                    uFlags;         // Buffer description flags
201} D3D10_SHADER_BUFFER_DESC;
202
203typedef struct _D3D10_SHADER_VARIABLE_DESC
204{
205    LPCSTR                  Name;           // Name of the variable
206    UINT                    StartOffset;    // Offset in constant buffer's backing store
207    UINT                    Size;           // Size of variable (in bytes)
208    UINT                    uFlags;         // Variable flags
209    LPVOID                  DefaultValue;   // Raw pointer to default value
210} D3D10_SHADER_VARIABLE_DESC;
211
212typedef struct _D3D10_SHADER_TYPE_DESC
213{
214    D3D10_SHADER_VARIABLE_CLASS Class;          // Variable class (e.g. object, matrix, etc.)
215    D3D10_SHADER_VARIABLE_TYPE  Type;           // Variable type (e.g. float, sampler, etc.)
216    UINT                        Rows;           // Number of rows (for matrices, 1 for other numeric, 0 if not applicable)
217    UINT                        Columns;        // Number of columns (for vectors & matrices, 1 for other numeric, 0 if not applicable)
218    UINT                        Elements;       // Number of elements (0 if not an array)
219    UINT                        Members;        // Number of members (0 if not a structure)
220    UINT                        Offset;         // Offset from the start of structure (0 if not a structure member)
221} D3D10_SHADER_TYPE_DESC;
222
223typedef struct _D3D10_SHADER_INPUT_BIND_DESC
224{
225    LPCSTR                      Name;           // Name of the resource
226    D3D10_SHADER_INPUT_TYPE     Type;           // Type of resource (e.g. texture, cbuffer, etc.)
227    UINT                        BindPoint;      // Starting bind point
228    UINT                        BindCount;      // Number of contiguous bind points (for arrays)
229   
230    UINT                        uFlags;         // Input binding flags
231    D3D10_RESOURCE_RETURN_TYPE  ReturnType;     // Return type (if texture)
232    D3D10_SRV_DIMENSION         Dimension;      // Dimension (if texture)
233    UINT                        NumSamples;     // Number of samples (0 if not MS texture)
234} D3D10_SHADER_INPUT_BIND_DESC;
235
236typedef struct _D3D10_SIGNATURE_PARAMETER_DESC
237{
238    LPCSTR                      SemanticName;   // Name of the semantic
239    UINT                        SemanticIndex;  // Index of the semantic
240    UINT                        Register;       // Number of member variables
241    D3D10_NAME                  SystemValueType;// A predefined system value, or D3D10_NAME_UNDEFINED if not applicable
242    D3D10_REGISTER_COMPONENT_TYPE ComponentType;// Scalar type (e.g. uint, float, etc.)
243    BYTE                        Mask;           // Mask to indicate which components of the register
244                                                // are used (combination of D3D10_COMPONENT_MASK values)
245    BYTE                        ReadWriteMask;  // Mask to indicate whether a given component is
246                                                // never written (if this is an output signature) or
247                                                // always read (if this is an input signature).
248                                                // (combination of D3D10_COMPONENT_MASK values)
249   
250} D3D10_SIGNATURE_PARAMETER_DESC;
251
252
253//
254// Interface definitions
255//
256
257typedef interface ID3D10ShaderReflectionType ID3D10ShaderReflectionType;
258typedef interface ID3D10ShaderReflectionType *LPD3D10SHADERREFLECTIONTYPE;
259
260// {C530AD7D-9B16-4395-A979-BA2ECFF83ADD}
261DEFINE_GUID(IID_ID3D10ShaderReflectionType,
2620xc530ad7d, 0x9b16, 0x4395, 0xa9, 0x79, 0xba, 0x2e, 0xcf, 0xf8, 0x3a, 0xdd);
263
264#undef INTERFACE
265#define INTERFACE ID3D10ShaderReflectionType
266
267DECLARE_INTERFACE(ID3D10ShaderReflectionType)
268{
269    STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_TYPE_DESC *pDesc) PURE;
270   
271    STDMETHOD_(ID3D10ShaderReflectionType*, GetMemberTypeByIndex)(THIS_ UINT Index) PURE;
272    STDMETHOD_(ID3D10ShaderReflectionType*, GetMemberTypeByName)(THIS_ LPCSTR Name) PURE;
273    STDMETHOD_(LPCSTR, GetMemberTypeName)(THIS_ UINT Index) PURE;
274};
275
276typedef interface ID3D10ShaderReflectionVariable ID3D10ShaderReflectionVariable;
277typedef interface ID3D10ShaderReflectionVariable *LPD3D10SHADERREFLECTIONVARIABLE;
278
279// {1BF63C95-2650-405d-99C1-3636BD1DA0A1}
280DEFINE_GUID(IID_ID3D10ShaderReflectionVariable,
2810x1bf63c95, 0x2650, 0x405d, 0x99, 0xc1, 0x36, 0x36, 0xbd, 0x1d, 0xa0, 0xa1);
282
283#undef INTERFACE
284#define INTERFACE ID3D10ShaderReflectionVariable
285
286DECLARE_INTERFACE(ID3D10ShaderReflectionVariable)
287{
288    STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_VARIABLE_DESC *pDesc) PURE;
289   
290    STDMETHOD_(ID3D10ShaderReflectionType*, GetType)(THIS) PURE;
291};
292
293typedef interface ID3D10ShaderReflectionConstantBuffer ID3D10ShaderReflectionConstantBuffer;
294typedef interface ID3D10ShaderReflectionConstantBuffer *LPD3D10SHADERREFLECTIONCONSTANTBUFFER;
295
296// {66C66A94-DDDD-4b62-A66A-F0DA33C2B4D0}
297DEFINE_GUID(IID_ID3D10ShaderReflectionConstantBuffer,
2980x66c66a94, 0xdddd, 0x4b62, 0xa6, 0x6a, 0xf0, 0xda, 0x33, 0xc2, 0xb4, 0xd0);
299
300#undef INTERFACE
301#define INTERFACE ID3D10ShaderReflectionConstantBuffer
302
303DECLARE_INTERFACE(ID3D10ShaderReflectionConstantBuffer)
304{
305    STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_BUFFER_DESC *pDesc) PURE;
306   
307    STDMETHOD_(ID3D10ShaderReflectionVariable*, GetVariableByIndex)(THIS_ UINT Index) PURE;
308    STDMETHOD_(ID3D10ShaderReflectionVariable*, GetVariableByName)(THIS_ LPCSTR Name) PURE;
309};
310
311typedef interface ID3D10ShaderReflection ID3D10ShaderReflection;
312typedef interface ID3D10ShaderReflection *LPD3D10SHADERREFLECTION;
313
314// {D40E20B6-F8F7-42ad-AB20-4BAF8F15DFAA}
315DEFINE_GUID(IID_ID3D10ShaderReflection,
3160xd40e20b6, 0xf8f7, 0x42ad, 0xab, 0x20, 0x4b, 0xaf, 0x8f, 0x15, 0xdf, 0xaa);
317
318#undef INTERFACE
319#define INTERFACE ID3D10ShaderReflection
320
321DECLARE_INTERFACE_(ID3D10ShaderReflection, IUnknown)
322{
323    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
324    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
325    STDMETHOD_(ULONG, Release)(THIS) PURE;
326
327    STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_DESC *pDesc) PURE;
328   
329    STDMETHOD_(ID3D10ShaderReflectionConstantBuffer*, GetConstantBufferByIndex)(THIS_ UINT Index) PURE;
330    STDMETHOD_(ID3D10ShaderReflectionConstantBuffer*, GetConstantBufferByName)(THIS_ LPCSTR Name) PURE;
331   
332    STDMETHOD(GetResourceBindingDesc)(THIS_ UINT ResourceIndex, D3D10_SHADER_INPUT_BIND_DESC *pDesc) PURE;
333   
334    STDMETHOD(GetInputParameterDesc)(THIS_ UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
335    STDMETHOD(GetOutputParameterDesc)(THIS_ UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
336   
337};
338
339//////////////////////////////////////////////////////////////////////////////
340// APIs //////////////////////////////////////////////////////////////////////
341//////////////////////////////////////////////////////////////////////////////
342
343#ifdef __cplusplus
344extern "C" {
345#endif //__cplusplus
346
347
348//----------------------------------------------------------------------------
349// D3D10CompileShader:
350// ------------------
351// Compiles a shader.
352//
353// Parameters:
354//  pSrcFile
355//      Source file name.
356//  hSrcModule
357//      Module handle. if NULL, current module will be used.
358//  pSrcResource
359//      Resource name in module.
360//  pSrcData
361//      Pointer to source code.
362//  SrcDataLen
363//      Size of source code, in bytes.
364//  pDefines
365//      Optional NULL-terminated array of preprocessor macro definitions.
366//  pInclude
367//      Optional interface pointer to use for handling #include directives.
368//      If this parameter is NULL, #includes will be honored when compiling
369//      from file, and will error when compiling from resource or memory.
370//  pFunctionName
371//      Name of the entrypoint function where execution should begin.
372//  pProfile
373//      Instruction set to be used when generating code.  The D3D10 entry
374//      point currently supports only "vs_4_0", "ps_4_0", and "gs_4_0".
375//  Flags
376//      See D3D10_SHADER_xxx flags.
377//  ppShader
378//      Returns a buffer containing the created shader.  This buffer contains
379//      the compiled shader code, as well as any embedded debug and symbol
380//      table info.  (See D3D10GetShaderConstantTable)
381//  ppErrorMsgs
382//      Returns a buffer containing a listing of errors and warnings that were
383//      encountered during the compile.  If you are running in a debugger,
384//      these are the same messages you will see in your debug output.
385//----------------------------------------------------------------------------
386
387HRESULT WINAPI D3D10CompileShader(LPCSTR pSrcData, SIZE_T SrcDataLen, LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
388    LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs);
389
390//----------------------------------------------------------------------------
391// D3D10DisassembleShader:
392// ----------------------
393// Takes a binary shader, and returns a buffer containing text assembly.
394//
395// Parameters:
396//  pShader
397//      Pointer to the shader byte code.
398//  BytecodeLength
399//      Size of the shader byte code in bytes.
400//  EnableColorCode
401//      Emit HTML tags for color coding the output?
402//  pComments
403//      Pointer to a comment string to include at the top of the shader.
404//  ppDisassembly
405//      Returns a buffer containing the disassembled shader.
406//----------------------------------------------------------------------------
407
408HRESULT WINAPI D3D10DisassembleShader(CONST void *pShader, SIZE_T BytecodeLength, BOOL EnableColorCode, LPCSTR pComments, ID3D10Blob** ppDisassembly);
409
410
411//----------------------------------------------------------------------------
412// D3D10GetPixelShaderProfile/D3D10GetVertexShaderProfile/D3D10GetGeometryShaderProfile:
413// -----------------------------------------------------
414// Returns the name of the HLSL profile best suited to a given device.
415//
416// Parameters:
417//  pDevice
418//      Pointer to the device in question
419//----------------------------------------------------------------------------
420
421LPCSTR WINAPI D3D10GetPixelShaderProfile(ID3D10Device *pDevice);
422
423LPCSTR WINAPI D3D10GetVertexShaderProfile(ID3D10Device *pDevice);
424
425LPCSTR WINAPI D3D10GetGeometryShaderProfile(ID3D10Device *pDevice);
426
427//----------------------------------------------------------------------------
428// D3D10ReflectShader:
429// ------------------
430// Creates a shader reflection object that can be used to retrieve information
431// about a compiled shader
432//
433// Parameters:
434//  pShaderBytecode
435//      Pointer to a compiled shader (same pointer that is passed into
436//      ID3D10Device::CreateShader)
437//  BytecodeLength
438//      Length of the shader bytecode buffer
439//  ppReflector
440//      [out] Returns a ID3D10ShaderReflection object that can be used to
441//      retrieve shader resource and constant buffer information
442//
443//----------------------------------------------------------------------------
444
445HRESULT WINAPI D3D10ReflectShader(CONST void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10ShaderReflection **ppReflector);
446
447//----------------------------------------------------------------------------
448// D3D10PreprocessShader
449// ---------------------
450// Creates a shader reflection object that can be used to retrieve information
451// about a compiled shader
452//
453// Parameters:
454//  pSrcData
455//      Pointer to source code
456//  SrcDataLen
457//      Size of source code, in bytes
458//  pFileName
459//      Source file name (used for error output)
460//  pDefines
461//      Optional NULL-terminated array of preprocessor macro definitions.
462//  pInclude
463//      Optional interface pointer to use for handling #include directives.
464//      If this parameter is NULL, #includes will be honored when assembling
465//      from file, and will error when assembling from resource or memory.
466//  ppShaderText
467//      Returns a buffer containing a single large string that represents
468//      the resulting formatted token stream
469//  ppErrorMsgs
470//      Returns a buffer containing a listing of errors and warnings that were
471//      encountered during assembly.  If you are running in a debugger,
472//      these are the same messages you will see in your debug output.
473//----------------------------------------------------------------------------
474
475HRESULT WINAPI D3D10PreprocessShader(LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines,
476    LPD3D10INCLUDE pInclude, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs);
477
478//////////////////////////////////////////////////////////////////////////
479//
480// Shader blob manipulation routines
481// ---------------------------------
482//
483// void *pShaderBytecode - a buffer containing the result of an HLSL
484//  compilation.  Typically this opaque buffer contains several
485//  discrete sections including the shader executable code, the input
486//  signature, and the output signature.  This can typically be retrieved
487//  by calling ID3D10Blob::GetBufferPointer() on the returned blob
488//  from HLSL's compile APIs.
489//
490// UINT BytecodeLength - the length of pShaderBytecode.  This can
491//  typically be retrieved by calling ID3D10Blob::GetBufferSize()
492//  on the returned blob from HLSL's compile APIs.
493//
494// ID3D10Blob **ppSignatureBlob(s) - a newly created buffer that
495//  contains only the signature portions of the original bytecode.
496//  This is a copy; the original bytecode is not modified.  You may
497//  specify NULL for this parameter to have the bytecode validated
498//  for the presence of the corresponding signatures without actually
499//  copying them and creating a new blob.
500//
501// Returns E_INVALIDARG if any required parameters are NULL
502// Returns E_FAIL is the bytecode is corrupt or missing signatures
503// Returns S_OK on success
504//
505//////////////////////////////////////////////////////////////////////////
506
507HRESULT WINAPI D3D10GetInputSignatureBlob(CONST void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob);
508HRESULT WINAPI D3D10GetOutputSignatureBlob(CONST void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob);
509HRESULT WINAPI D3D10GetInputAndOutputSignatureBlob(CONST void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob);
510
511//----------------------------------------------------------------------------
512// D3D10GetShaderDebugInfo:
513// -----------------------
514// Gets shader debug info.  Debug info is generated by D3D10CompileShader and is
515// embedded in the body of the shader.
516//
517// Parameters:
518//  pShaderBytecode
519//      Pointer to the function bytecode
520//  BytecodeLength
521//      Length of the shader bytecode buffer
522//  ppDebugInfo
523//      Buffer used to return debug info.  For information about the layout
524//      of this buffer, see definition of D3D10_SHADER_DEBUG_INFO above.
525//----------------------------------------------------------------------------
526
527HRESULT WINAPI D3D10GetShaderDebugInfo(CONST void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob** ppDebugInfo);
528
529#ifdef __cplusplus
530}
531#endif //__cplusplus
532   
533#endif //__D3D10SHADER_H__
534
trunk/3rdparty/dxsdk/Include/d3d11.h
r0r243311
1/*-------------------------------------------------------------------------------------
2 *
3 * Copyright (c) Microsoft Corporation
4 *
5 *-------------------------------------------------------------------------------------*/
6
7
8/* this ALWAYS GENERATED file contains the definitions for the interfaces */
9
10
11 /* File created by MIDL compiler version 7.00.0555 */
12/* @@MIDL_FILE_HEADING(  ) */
13#ifdef _MSC_VER
14#pragma warning( disable: 4049 )  /* more than 64k source lines */
15#endif
16
17/* verify that the <rpcndr.h> version is high enough to compile this file*/
18#ifndef __REQUIRED_RPCNDR_H_VERSION__
19#define __REQUIRED_RPCNDR_H_VERSION__ 475
20#endif
21
22/* verify that the <rpcsal.h> version is high enough to compile this file*/
23#ifndef __REQUIRED_RPCSAL_H_VERSION__
24#define __REQUIRED_RPCSAL_H_VERSION__ 100
25#endif
26
27#include "rpc.h"
28#include "rpcndr.h"
29
30#ifndef __RPCNDR_H_VERSION__
31#error this stub requires an updated version of <rpcndr.h>
32#endif // __RPCNDR_H_VERSION__
33
34#ifndef COM_NO_WINDOWS_H
35#include "windows.h"
36#include "ole2.h"
37#endif /*COM_NO_WINDOWS_H*/
38
39#ifndef __d3d11_h__
40#define __d3d11_h__
41
42#if defined(_MSC_VER) && (_MSC_VER >= 1020)
43#pragma once
44#endif
45
46/* Forward Declarations */
47
48#ifndef __ID3D11DeviceChild_FWD_DEFINED__
49#define __ID3D11DeviceChild_FWD_DEFINED__
50typedef interface ID3D11DeviceChild ID3D11DeviceChild;
51#endif    /* __ID3D11DeviceChild_FWD_DEFINED__ */
52
53
54#ifndef __ID3D11DepthStencilState_FWD_DEFINED__
55#define __ID3D11DepthStencilState_FWD_DEFINED__
56typedef interface ID3D11DepthStencilState ID3D11DepthStencilState;
57#endif    /* __ID3D11DepthStencilState_FWD_DEFINED__ */
58
59
60#ifndef __ID3D11BlendState_FWD_DEFINED__
61#define __ID3D11BlendState_FWD_DEFINED__
62typedef interface ID3D11BlendState ID3D11BlendState;
63#endif    /* __ID3D11BlendState_FWD_DEFINED__ */
64
65
66#ifndef __ID3D11RasterizerState_FWD_DEFINED__
67#define __ID3D11RasterizerState_FWD_DEFINED__
68typedef interface ID3D11RasterizerState ID3D11RasterizerState;
69#endif    /* __ID3D11RasterizerState_FWD_DEFINED__ */
70
71
72#ifndef __ID3D11Resource_FWD_DEFINED__
73#define __ID3D11Resource_FWD_DEFINED__
74typedef interface ID3D11Resource ID3D11Resource;
75#endif    /* __ID3D11Resource_FWD_DEFINED__ */
76
77
78#ifndef __ID3D11Buffer_FWD_DEFINED__
79#define __ID3D11Buffer_FWD_DEFINED__
80typedef interface ID3D11Buffer ID3D11Buffer;
81#endif    /* __ID3D11Buffer_FWD_DEFINED__ */
82
83
84#ifndef __ID3D11Texture1D_FWD_DEFINED__
85#define __ID3D11Texture1D_FWD_DEFINED__
86typedef interface ID3D11Texture1D ID3D11Texture1D;
87#endif    /* __ID3D11Texture1D_FWD_DEFINED__ */
88
89
90#ifndef __ID3D11Texture2D_FWD_DEFINED__
91#define __ID3D11Texture2D_FWD_DEFINED__
92typedef interface ID3D11Texture2D ID3D11Texture2D;
93#endif    /* __ID3D11Texture2D_FWD_DEFINED__ */
94
95
96#ifndef __ID3D11Texture3D_FWD_DEFINED__
97#define __ID3D11Texture3D_FWD_DEFINED__
98typedef interface ID3D11Texture3D ID3D11Texture3D;
99#endif    /* __ID3D11Texture3D_FWD_DEFINED__ */
100
101
102#ifndef __ID3D11View_FWD_DEFINED__
103#define __ID3D11View_FWD_DEFINED__
104typedef interface ID3D11View ID3D11View;
105#endif    /* __ID3D11View_FWD_DEFINED__ */
106
107
108#ifndef __ID3D11ShaderResourceView_FWD_DEFINED__
109#define __ID3D11ShaderResourceView_FWD_DEFINED__
110typedef interface ID3D11ShaderResourceView ID3D11ShaderResourceView;
111#endif    /* __ID3D11ShaderResourceView_FWD_DEFINED__ */
112
113
114#ifndef __ID3D11RenderTargetView_FWD_DEFINED__
115#define __ID3D11RenderTargetView_FWD_DEFINED__
116typedef interface ID3D11RenderTargetView ID3D11RenderTargetView;
117#endif    /* __ID3D11RenderTargetView_FWD_DEFINED__ */
118
119
120#ifndef __ID3D11DepthStencilView_FWD_DEFINED__
121#define __ID3D11DepthStencilView_FWD_DEFINED__
122typedef interface ID3D11DepthStencilView ID3D11DepthStencilView;
123#endif    /* __ID3D11DepthStencilView_FWD_DEFINED__ */
124
125
126#ifndef __ID3D11UnorderedAccessView_FWD_DEFINED__
127#define __ID3D11UnorderedAccessView_FWD_DEFINED__
128typedef interface ID3D11UnorderedAccessView ID3D11UnorderedAccessView;
129#endif    /* __ID3D11UnorderedAccessView_FWD_DEFINED__ */
130
131
132#ifndef __ID3D11VertexShader_FWD_DEFINED__
133#define __ID3D11VertexShader_FWD_DEFINED__
134typedef interface ID3D11VertexShader ID3D11VertexShader;
135#endif    /* __ID3D11VertexShader_FWD_DEFINED__ */
136
137
138#ifndef __ID3D11HullShader_FWD_DEFINED__
139#define __ID3D11HullShader_FWD_DEFINED__
140typedef interface ID3D11HullShader ID3D11HullShader;
141#endif    /* __ID3D11HullShader_FWD_DEFINED__ */
142
143
144#ifndef __ID3D11DomainShader_FWD_DEFINED__
145#define __ID3D11DomainShader_FWD_DEFINED__
146typedef interface ID3D11DomainShader ID3D11DomainShader;
147#endif    /* __ID3D11DomainShader_FWD_DEFINED__ */
148
149
150#ifndef __ID3D11GeometryShader_FWD_DEFINED__
151#define __ID3D11GeometryShader_FWD_DEFINED__
152typedef interface ID3D11GeometryShader ID3D11GeometryShader;
153#endif    /* __ID3D11GeometryShader_FWD_DEFINED__ */
154
155
156#ifndef __ID3D11PixelShader_FWD_DEFINED__
157#define __ID3D11PixelShader_FWD_DEFINED__
158typedef interface ID3D11PixelShader ID3D11PixelShader;
159#endif    /* __ID3D11PixelShader_FWD_DEFINED__ */
160
161
162#ifndef __ID3D11ComputeShader_FWD_DEFINED__
163#define __ID3D11ComputeShader_FWD_DEFINED__
164typedef interface ID3D11ComputeShader ID3D11ComputeShader;
165#endif    /* __ID3D11ComputeShader_FWD_DEFINED__ */
166
167
168#ifndef __ID3D11InputLayout_FWD_DEFINED__
169#define __ID3D11InputLayout_FWD_DEFINED__
170typedef interface ID3D11InputLayout ID3D11InputLayout;
171#endif    /* __ID3D11InputLayout_FWD_DEFINED__ */
172
173
174#ifndef __ID3D11SamplerState_FWD_DEFINED__
175#define __ID3D11SamplerState_FWD_DEFINED__
176typedef interface ID3D11SamplerState ID3D11SamplerState;
177#endif    /* __ID3D11SamplerState_FWD_DEFINED__ */
178
179
180#ifndef __ID3D11Asynchronous_FWD_DEFINED__
181#define __ID3D11Asynchronous_FWD_DEFINED__
182typedef interface ID3D11Asynchronous ID3D11Asynchronous;
183#endif    /* __ID3D11Asynchronous_FWD_DEFINED__ */
184
185
186#ifndef __ID3D11Query_FWD_DEFINED__
187#define __ID3D11Query_FWD_DEFINED__
188typedef interface ID3D11Query ID3D11Query;
189#endif    /* __ID3D11Query_FWD_DEFINED__ */
190
191
192#ifndef __ID3D11Predicate_FWD_DEFINED__
193#define __ID3D11Predicate_FWD_DEFINED__
194typedef interface ID3D11Predicate ID3D11Predicate;
195#endif    /* __ID3D11Predicate_FWD_DEFINED__ */
196
197
198#ifndef __ID3D11Counter_FWD_DEFINED__
199#define __ID3D11Counter_FWD_DEFINED__
200typedef interface ID3D11Counter ID3D11Counter;
201#endif    /* __ID3D11Counter_FWD_DEFINED__ */
202
203
204#ifndef __ID3D11ClassInstance_FWD_DEFINED__
205#define __ID3D11ClassInstance_FWD_DEFINED__
206typedef interface ID3D11ClassInstance ID3D11ClassInstance;
207#endif    /* __ID3D11ClassInstance_FWD_DEFINED__ */
208
209
210#ifndef __ID3D11ClassLinkage_FWD_DEFINED__
211#define __ID3D11ClassLinkage_FWD_DEFINED__
212typedef interface ID3D11ClassLinkage ID3D11ClassLinkage;
213#endif    /* __ID3D11ClassLinkage_FWD_DEFINED__ */
214
215
216#ifndef __ID3D11CommandList_FWD_DEFINED__
217#define __ID3D11CommandList_FWD_DEFINED__
218typedef interface ID3D11CommandList ID3D11CommandList;
219#endif    /* __ID3D11CommandList_FWD_DEFINED__ */
220
221
222#ifndef __ID3D11DeviceContext_FWD_DEFINED__
223#define __ID3D11DeviceContext_FWD_DEFINED__
224typedef interface ID3D11DeviceContext ID3D11DeviceContext;
225#endif    /* __ID3D11DeviceContext_FWD_DEFINED__ */
226
227
228#ifndef __ID3D11Device_FWD_DEFINED__
229#define __ID3D11Device_FWD_DEFINED__
230typedef interface ID3D11Device ID3D11Device;
231#endif    /* __ID3D11Device_FWD_DEFINED__ */
232
233
234/* header files for imported files */
235#include "oaidl.h"
236#include "ocidl.h"
237#include "dxgi.h"
238#include "d3dcommon.h"
239
240#ifdef __cplusplus
241extern "C"{
242#endif
243
244
245/* interface __MIDL_itf_d3d11_0000_0000 */
246/* [local] */
247
248#ifndef _D3D11_CONSTANTS
249#define _D3D11_CONSTANTS
250#define   D3D11_16BIT_INDEX_STRIP_CUT_VALUE   ( 0xffff )
251
252#define   D3D11_32BIT_INDEX_STRIP_CUT_VALUE   ( 0xffffffff )
253
254#define   D3D11_8BIT_INDEX_STRIP_CUT_VALUE   ( 0xff )
255
256#define   D3D11_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT   ( 9 )
257
258#define   D3D11_CLIP_OR_CULL_DISTANCE_COUNT   ( 8 )
259
260#define   D3D11_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT   ( 2 )
261
262#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT   ( 14 )
263
264#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS   ( 4 )
265
266#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT   ( 32 )
267
268#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT   ( 15 )
269
270#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS   ( 4 )
271
272#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT   ( 15 )
273
274#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST   ( 1 )
275
276#define   D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS   ( 1 )
277
278#define   D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT   ( 64 )
279
280#define   D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS   ( 4 )
281
282#define   D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT   ( 1 )
283
284#define   D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST   ( 1 )
285
286#define   D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS   ( 1 )
287
288#define   D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT   ( 32 )
289
290#define   D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS   ( 1 )
291
292#define   D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT   ( 128 )
293
294#define   D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST   ( 1 )
295
296#define   D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS   ( 1 )
297
298#define   D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT   ( 128 )
299
300#define   D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS   ( 1 )
301
302#define   D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT   ( 16 )
303
304#define   D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST   ( 1 )
305
306#define   D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS   ( 1 )
307
308#define   D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT   ( 16 )
309
310#define   D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT   ( 32 )
311
312#define   D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS   ( 4 )
313
314#define   D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
315
316#define   D3D11_COMMONSHADER_TEMP_REGISTER_COUNT   ( 4096 )
317
318#define   D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST   ( 3 )
319
320#define   D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS   ( 3 )
321
322#define   D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX   ( 10 )
323
324#define   D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN   ( -10 )
325
326#define   D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE   ( -8 )
327
328#define   D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE   ( 7 )
329
330#define   D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 256 )
331
332#define   D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP   ( 64 )
333
334#define   D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 240 )
335
336#define   D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP   ( 68 )
337
338#define   D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 224 )
339
340#define   D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP   ( 72 )
341
342#define   D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 208 )
343
344#define   D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP   ( 76 )
345
346#define   D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 192 )
347
348#define   D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP   ( 84 )
349
350#define   D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 176 )
351
352#define   D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP   ( 92 )
353
354#define   D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 160 )
355
356#define   D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP   ( 100 )
357
358#define   D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 144 )
359
360#define   D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP   ( 112 )
361
362#define   D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 128 )
363
364#define   D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP   ( 128 )
365
366#define   D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 112 )
367
368#define   D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP   ( 144 )
369
370#define   D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 96 )
371
372#define   D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP   ( 168 )
373
374#define   D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 80 )
375
376#define   D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP   ( 204 )
377
378#define   D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 64 )
379
380#define   D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP   ( 256 )
381
382#define   D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 48 )
383
384#define   D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP   ( 340 )
385
386#define   D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 32 )
387
388#define   D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP   ( 512 )
389
390#define   D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD   ( 16 )
391
392#define   D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP   ( 768 )
393
394#define   D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION   ( 1 )
395
396#define   D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT   ( 256 )
397
398#define   D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP   ( 768 )
399
400#define   D3D11_CS_4_X_THREAD_GROUP_MAX_X   ( 768 )
401
402#define   D3D11_CS_4_X_THREAD_GROUP_MAX_Y   ( 768 )
403
404#define   D3D11_CS_4_X_UAV_REGISTER_COUNT   ( 1 )
405
406#define   D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION   ( 65535 )
407
408#define   D3D11_CS_TGSM_REGISTER_COUNT   ( 8192 )
409
410#define   D3D11_CS_TGSM_REGISTER_READS_PER_INST   ( 1 )
411
412#define   D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS   ( 1 )
413
414#define   D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS   ( 1 )
415
416#define   D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP   ( 1024 )
417
418#define   D3D11_CS_THREAD_GROUP_MAX_X   ( 1024 )
419
420#define   D3D11_CS_THREAD_GROUP_MAX_Y   ( 1024 )
421
422#define   D3D11_CS_THREAD_GROUP_MAX_Z   ( 64 )
423
424#define   D3D11_CS_THREAD_GROUP_MIN_X   ( 1 )
425
426#define   D3D11_CS_THREAD_GROUP_MIN_Y   ( 1 )
427
428#define   D3D11_CS_THREAD_GROUP_MIN_Z   ( 1 )
429
430#define   D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL   ( 16384 )
431
432#define D3D11_DEFAULT_BLEND_FACTOR_ALPHA   ( 1.0f )
433#define D3D11_DEFAULT_BLEND_FACTOR_BLUE   ( 1.0f )
434#define D3D11_DEFAULT_BLEND_FACTOR_GREEN   ( 1.0f )
435#define D3D11_DEFAULT_BLEND_FACTOR_RED   ( 1.0f )
436#define D3D11_DEFAULT_BORDER_COLOR_COMPONENT   ( 0.0f )
437#define   D3D11_DEFAULT_DEPTH_BIAS   ( 0 )
438
439#define D3D11_DEFAULT_DEPTH_BIAS_CLAMP   ( 0.0f )
440#define D3D11_DEFAULT_MAX_ANISOTROPY   ( 16 )
441#define D3D11_DEFAULT_MIP_LOD_BIAS   ( 0.0f )
442#define   D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX   ( 0 )
443
444#define   D3D11_DEFAULT_SAMPLE_MASK   ( 0xffffffff )
445
446#define   D3D11_DEFAULT_SCISSOR_ENDX   ( 0 )
447
448#define   D3D11_DEFAULT_SCISSOR_ENDY   ( 0 )
449
450#define   D3D11_DEFAULT_SCISSOR_STARTX   ( 0 )
451
452#define   D3D11_DEFAULT_SCISSOR_STARTY   ( 0 )
453
454#define D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS   ( 0.0f )
455#define   D3D11_DEFAULT_STENCIL_READ_MASK   ( 0xff )
456
457#define   D3D11_DEFAULT_STENCIL_REFERENCE   ( 0 )
458
459#define   D3D11_DEFAULT_STENCIL_WRITE_MASK   ( 0xff )
460
461#define   D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX   ( 0 )
462
463#define   D3D11_DEFAULT_VIEWPORT_HEIGHT   ( 0 )
464
465#define D3D11_DEFAULT_VIEWPORT_MAX_DEPTH   ( 0.0f )
466#define D3D11_DEFAULT_VIEWPORT_MIN_DEPTH   ( 0.0f )
467#define   D3D11_DEFAULT_VIEWPORT_TOPLEFTX   ( 0 )
468
469#define   D3D11_DEFAULT_VIEWPORT_TOPLEFTY   ( 0 )
470
471#define   D3D11_DEFAULT_VIEWPORT_WIDTH   ( 0 )
472
473#define   D3D11_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS   ( 3968 )
474
475#define   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS   ( 4 )
476
477#define   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
478
479#define   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT   ( 32 )
480
481#define   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST   ( 2 )
482
483#define   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS   ( 1 )
484
485#define   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS   ( 3 )
486
487#define   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
488
489#define   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT   ( 1 )
490
491#define   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST   ( 2 )
492
493#define   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS   ( 1 )
494
495#define   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS   ( 4 )
496
497#define   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
498
499#define   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT   ( 32 )
500
501#define   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST   ( 2 )
502
503#define   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS   ( 1 )
504
505#define   D3D11_DS_OUTPUT_REGISTER_COMPONENTS   ( 4 )
506
507#define   D3D11_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
508
509#define   D3D11_DS_OUTPUT_REGISTER_COUNT   ( 32 )
510
511#define D3D11_FLOAT16_FUSED_TOLERANCE_IN_ULP   ( 0.6 )
512#define D3D11_FLOAT32_MAX   ( 3.402823466e+38f )
513#define D3D11_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP   ( 0.6f )
514#define D3D11_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR   ( 2.4f )
515#define D3D11_FLOAT_TO_SRGB_EXPONENT_NUMERATOR   ( 1.0f )
516#define D3D11_FLOAT_TO_SRGB_OFFSET   ( 0.055f )
517#define D3D11_FLOAT_TO_SRGB_SCALE_1   ( 12.92f )
518#define D3D11_FLOAT_TO_SRGB_SCALE_2   ( 1.055f )
519#define D3D11_FLOAT_TO_SRGB_THRESHOLD   ( 0.0031308f )
520#define D3D11_FTOI_INSTRUCTION_MAX_INPUT   ( 2147483647.999f )
521#define D3D11_FTOI_INSTRUCTION_MIN_INPUT   ( -2147483648.999f )
522#define D3D11_FTOU_INSTRUCTION_MAX_INPUT   ( 4294967295.999f )
523#define D3D11_FTOU_INSTRUCTION_MIN_INPUT   ( 0.0f )
524#define   D3D11_GS_INPUT_INSTANCE_ID_READS_PER_INST   ( 2 )
525
526#define   D3D11_GS_INPUT_INSTANCE_ID_READ_PORTS   ( 1 )
527
528#define   D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS   ( 1 )
529
530#define   D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
531
532#define   D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COUNT   ( 1 )
533
534#define   D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS   ( 1 )
535
536#define   D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
537
538#define   D3D11_GS_INPUT_PRIM_CONST_REGISTER_COUNT   ( 1 )
539
540#define   D3D11_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST   ( 2 )
541
542#define   D3D11_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS   ( 1 )
543
544#define   D3D11_GS_INPUT_REGISTER_COMPONENTS   ( 4 )
545
546#define   D3D11_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
547
548#define   D3D11_GS_INPUT_REGISTER_COUNT   ( 32 )
549
550#define   D3D11_GS_INPUT_REGISTER_READS_PER_INST   ( 2 )
551
552#define   D3D11_GS_INPUT_REGISTER_READ_PORTS   ( 1 )
553
554#define   D3D11_GS_INPUT_REGISTER_VERTICES   ( 32 )
555
556#define   D3D11_GS_MAX_INSTANCE_COUNT   ( 32 )
557
558#define   D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES   ( 1024 )
559
560#define   D3D11_GS_OUTPUT_ELEMENTS   ( 32 )
561
562#define   D3D11_GS_OUTPUT_REGISTER_COMPONENTS   ( 4 )
563
564#define   D3D11_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
565
566#define   D3D11_GS_OUTPUT_REGISTER_COUNT   ( 32 )
567
568#define   D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT   ( 32 )
569
570#define   D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT   ( 32 )
571
572#define   D3D11_HS_CONTROL_POINT_REGISTER_COMPONENTS   ( 4 )
573
574#define   D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
575
576#define   D3D11_HS_CONTROL_POINT_REGISTER_READS_PER_INST   ( 2 )
577
578#define   D3D11_HS_CONTROL_POINT_REGISTER_READ_PORTS   ( 1 )
579
580#define   D3D11_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND   ( 0xffffffff )
581
582#define   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS   ( 1 )
583
584#define   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
585
586#define   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT   ( 1 )
587
588#define   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST   ( 2 )
589
590#define   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS   ( 1 )
591
592#define   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS   ( 1 )
593
594#define   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
595
596#define   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT   ( 1 )
597
598#define   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST   ( 2 )
599
600#define   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS   ( 1 )
601
602#define   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS   ( 1 )
603
604#define   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
605
606#define   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT   ( 1 )
607
608#define   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST   ( 2 )
609
610#define   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS   ( 1 )
611
612#define   D3D11_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND   ( 0xffffffff )
613
614#define D3D11_HS_MAXTESSFACTOR_LOWER_BOUND   ( 1.0f )
615#define D3D11_HS_MAXTESSFACTOR_UPPER_BOUND   ( 64.0f )
616#define   D3D11_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS   ( 3968 )
617
618#define   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS   ( 1 )
619
620#define   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
621
622#define   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT   ( 1 )
623
624#define   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST   ( 2 )
625
626#define   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS   ( 1 )
627
628#define   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS   ( 4 )
629
630#define   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
631
632#define   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT   ( 32 )
633
634#define   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST   ( 2 )
635
636#define   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS   ( 1 )
637
638#define   D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES   ( 0 )
639
640#define   D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY   ( 0 )
641
642#define   D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES   ( 0 )
643
644#define   D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT   ( 1 )
645
646#define   D3D11_IA_INSTANCE_ID_BIT_COUNT   ( 32 )
647
648#define   D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT   ( 32 )
649
650#define   D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT   ( 32 )
651
652#define   D3D11_IA_PRIMITIVE_ID_BIT_COUNT   ( 32 )
653
654#define   D3D11_IA_VERTEX_ID_BIT_COUNT   ( 32 )
655
656#define   D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT   ( 32 )
657
658#define   D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS   ( 128 )
659
660#define   D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT   ( 32 )
661
662#define   D3D11_INTEGER_DIVIDE_BY_ZERO_QUOTIENT   ( 0xffffffff )
663
664#define   D3D11_INTEGER_DIVIDE_BY_ZERO_REMAINDER   ( 0xffffffff )
665
666#define   D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL   ( 0xffffffff )
667
668#define   D3D11_KEEP_UNORDERED_ACCESS_VIEWS   ( 0xffffffff )
669
670#define D3D11_LINEAR_GAMMA   ( 1.0f )
671#define   D3D11_MAJOR_VERSION   ( 11 )
672
673#define D3D11_MAX_BORDER_COLOR_COMPONENT   ( 1.0f )
674#define D3D11_MAX_DEPTH   ( 1.0f )
675#define   D3D11_MAX_MAXANISOTROPY   ( 16 )
676
677#define   D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT   ( 32 )
678
679#define D3D11_MAX_POSITION_VALUE   ( 3.402823466e+34f )
680#define   D3D11_MAX_TEXTURE_DIMENSION_2_TO_EXP   ( 17 )
681
682#define   D3D11_MINOR_VERSION   ( 0 )
683
684#define D3D11_MIN_BORDER_COLOR_COMPONENT   ( 0.0f )
685#define D3D11_MIN_DEPTH   ( 0.0f )
686#define   D3D11_MIN_MAXANISOTROPY   ( 0 )
687
688#define D3D11_MIP_LOD_BIAS_MAX   ( 15.99f )
689#define D3D11_MIP_LOD_BIAS_MIN   ( -16.0f )
690#define   D3D11_MIP_LOD_FRACTIONAL_BIT_COUNT   ( 8 )
691
692#define   D3D11_MIP_LOD_RANGE_BIT_COUNT   ( 8 )
693
694#define D3D11_MULTISAMPLE_ANTIALIAS_LINE_WIDTH   ( 1.4f )
695#define   D3D11_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT   ( 0 )
696
697#define   D3D11_PIXEL_ADDRESS_RANGE_BIT_COUNT   ( 15 )
698
699#define   D3D11_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT   ( 16 )
700
701#define   D3D11_PS_CS_UAV_REGISTER_COMPONENTS   ( 1 )
702
703#define   D3D11_PS_CS_UAV_REGISTER_COUNT   ( 8 )
704
705#define   D3D11_PS_CS_UAV_REGISTER_READS_PER_INST   ( 1 )
706
707#define   D3D11_PS_CS_UAV_REGISTER_READ_PORTS   ( 1 )
708
709#define   D3D11_PS_FRONTFACING_DEFAULT_VALUE   ( 0xffffffff )
710
711#define   D3D11_PS_FRONTFACING_FALSE_VALUE   ( 0 )
712
713#define   D3D11_PS_FRONTFACING_TRUE_VALUE   ( 0xffffffff )
714
715#define   D3D11_PS_INPUT_REGISTER_COMPONENTS   ( 4 )
716
717#define   D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
718
719#define   D3D11_PS_INPUT_REGISTER_COUNT   ( 32 )
720
721#define   D3D11_PS_INPUT_REGISTER_READS_PER_INST   ( 2 )
722
723#define   D3D11_PS_INPUT_REGISTER_READ_PORTS   ( 1 )
724
725#define D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT   ( 0.0f )
726#define   D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS   ( 1 )
727
728#define   D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
729
730#define   D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT   ( 1 )
731
732#define   D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS   ( 1 )
733
734#define   D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
735
736#define   D3D11_PS_OUTPUT_MASK_REGISTER_COUNT   ( 1 )
737
738#define   D3D11_PS_OUTPUT_REGISTER_COMPONENTS   ( 4 )
739
740#define   D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
741
742#define   D3D11_PS_OUTPUT_REGISTER_COUNT   ( 8 )
743
744#define D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT   ( 0.5f )
745#define   D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT   ( 16 )
746
747#define   D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE   ( 4096 )
748
749#define   D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP   ( 27 )
750
751#define   D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT   ( 4096 )
752
753#define   D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE   ( 4096 )
754
755#define   D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP   ( 32 )
756
757#define   D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP   ( 32 )
758
759#define   D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION   ( 16384 )
760
761#define   D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT   ( 1024 )
762
763#define   D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT   ( 4096 )
764
765#define   D3D11_REQ_MAXANISOTROPY   ( 16 )
766
767#define   D3D11_REQ_MIP_LEVELS   ( 15 )
768
769#define   D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES   ( 2048 )
770
771#define   D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE   ( 4096 )
772
773#define   D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH   ( 16384 )
774
775#define   D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM   ( 128 )
776
777#define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM   ( 0.25f )
778#define   D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP   ( 20 )
779
780#define   D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE   ( 4096 )
781
782#define   D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION   ( 2048 )
783
784#define   D3D11_REQ_TEXTURE1D_U_DIMENSION   ( 16384 )
785
786#define   D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION   ( 2048 )
787
788#define   D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION   ( 16384 )
789
790#define   D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION   ( 2048 )
791
792#define   D3D11_REQ_TEXTURECUBE_DIMENSION   ( 16384 )
793
794#define   D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL   ( 0 )
795
796#define   D3D11_SHADER_MAJOR_VERSION   ( 5 )
797
798#define   D3D11_SHADER_MAX_INSTANCES   ( 65535 )
799
800#define   D3D11_SHADER_MAX_INTERFACES   ( 253 )
801
802#define   D3D11_SHADER_MAX_INTERFACE_CALL_SITES   ( 4096 )
803
804#define   D3D11_SHADER_MAX_TYPES   ( 65535 )
805
806#define   D3D11_SHADER_MINOR_VERSION   ( 0 )
807
808#define   D3D11_SHIFT_INSTRUCTION_PAD_VALUE   ( 0 )
809
810#define   D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT   ( 5 )
811
812#define   D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT   ( 8 )
813
814#define   D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES   ( 2048 )
815
816#define   D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES   ( 512 )
817
818#define   D3D11_SO_BUFFER_SLOT_COUNT   ( 4 )
819
820#define   D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP   ( 0xffffffff )
821
822#define   D3D11_SO_NO_RASTERIZED_STREAM   ( 0xffffffff )
823
824#define   D3D11_SO_OUTPUT_COMPONENT_COUNT   ( 128 )
825
826#define   D3D11_SO_STREAM_COUNT   ( 4 )
827
828#define   D3D11_SPEC_DATE_DAY   ( 04 )
829
830#define   D3D11_SPEC_DATE_MONTH   ( 06 )
831
832#define   D3D11_SPEC_DATE_YEAR   ( 2009 )
833
834#define D3D11_SPEC_VERSION   ( 1.0 )
835#define D3D11_SRGB_GAMMA   ( 2.2f )
836#define D3D11_SRGB_TO_FLOAT_DENOMINATOR_1   ( 12.92f )
837#define D3D11_SRGB_TO_FLOAT_DENOMINATOR_2   ( 1.055f )
838#define D3D11_SRGB_TO_FLOAT_EXPONENT   ( 2.4f )
839#define D3D11_SRGB_TO_FLOAT_OFFSET   ( 0.055f )
840#define D3D11_SRGB_TO_FLOAT_THRESHOLD   ( 0.04045f )
841#define D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP   ( 0.5f )
842#define   D3D11_STANDARD_COMPONENT_BIT_COUNT   ( 32 )
843
844#define   D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED   ( 64 )
845
846#define   D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE   ( 4 )
847
848#define   D3D11_STANDARD_PIXEL_COMPONENT_COUNT   ( 128 )
849
850#define   D3D11_STANDARD_PIXEL_ELEMENT_COUNT   ( 32 )
851
852#define   D3D11_STANDARD_VECTOR_SIZE   ( 4 )
853
854#define   D3D11_STANDARD_VERTEX_ELEMENT_COUNT   ( 32 )
855
856#define   D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT   ( 64 )
857
858#define   D3D11_SUBPIXEL_FRACTIONAL_BIT_COUNT   ( 8 )
859
860#define   D3D11_SUBTEXEL_FRACTIONAL_BIT_COUNT   ( 8 )
861
862#define   D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR   ( 64 )
863
864#define   D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR   ( 64 )
865
866#define   D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR   ( 63 )
867
868#define   D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR   ( 64 )
869
870#define   D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR   ( 2 )
871
872#define   D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR   ( 1 )
873
874#define   D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR   ( 1 )
875
876#define   D3D11_TEXEL_ADDRESS_RANGE_BIT_COUNT   ( 16 )
877
878#define   D3D11_UNBOUND_MEMORY_ACCESS_RESULT   ( 0 )
879
880#define   D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX   ( 15 )
881
882#define   D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE   ( 16 )
883
884#define   D3D11_VIEWPORT_BOUNDS_MAX   ( 32767 )
885
886#define   D3D11_VIEWPORT_BOUNDS_MIN   ( -32768 )
887
888#define   D3D11_VS_INPUT_REGISTER_COMPONENTS   ( 4 )
889
890#define   D3D11_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
891
892#define   D3D11_VS_INPUT_REGISTER_COUNT   ( 32 )
893
894#define   D3D11_VS_INPUT_REGISTER_READS_PER_INST   ( 2 )
895
896#define   D3D11_VS_INPUT_REGISTER_READ_PORTS   ( 1 )
897
898#define   D3D11_VS_OUTPUT_REGISTER_COMPONENTS   ( 4 )
899
900#define   D3D11_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT   ( 32 )
901
902#define   D3D11_VS_OUTPUT_REGISTER_COUNT   ( 32 )
903
904#define   D3D11_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT   ( 10 )
905
906#define   D3D11_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP   ( 25 )
907
908#define   D3D11_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP   ( 25 )
909
910#endif
911#define   _FACD3D11   ( 0x87c )
912
913#define   _FACD3D11DEBUG   ( ( _FACD3D11 + 1 )  )
914
915#define MAKE_D3D11_HRESULT( code )  MAKE_HRESULT( 1, _FACD3D11, code )
916#define MAKE_D3D11_STATUS( code )    MAKE_HRESULT( 0, _FACD3D11, code )
917#define D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS  MAKE_D3D11_HRESULT(1)
918#define D3D11_ERROR_FILE_NOT_FOUND  MAKE_D3D11_HRESULT(2)
919#define D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS  MAKE_D3D11_HRESULT(3)
920#define D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD  MAKE_D3D11_HRESULT(4)
921#if __SAL_H_FULL_VER < 140050727
922#undef __in_range
923#undef __in_xcount_opt
924#define __in_range(x, y)
925#define __in_xcount_opt(x)
926#endif
927#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
928}
929struct CD3D11_DEFAULT {};
930extern const DECLSPEC_SELECTANY CD3D11_DEFAULT D3D11_DEFAULT;
931extern "C"{
932#endif
933typedef
934enum D3D11_INPUT_CLASSIFICATION
935    {   D3D11_INPUT_PER_VERTEX_DATA   = 0,
936   D3D11_INPUT_PER_INSTANCE_DATA   = 1
937    }    D3D11_INPUT_CLASSIFICATION;
938
939#define   D3D11_APPEND_ALIGNED_ELEMENT   ( 0xffffffff )
940
941typedef struct D3D11_INPUT_ELEMENT_DESC
942    {
943    LPCSTR SemanticName;
944    UINT SemanticIndex;
945    DXGI_FORMAT Format;
946    UINT InputSlot;
947    UINT AlignedByteOffset;
948    D3D11_INPUT_CLASSIFICATION InputSlotClass;
949    UINT InstanceDataStepRate;
950    }    D3D11_INPUT_ELEMENT_DESC;
951
952typedef
953enum D3D11_FILL_MODE
954    {   D3D11_FILL_WIREFRAME   = 2,
955   D3D11_FILL_SOLID   = 3
956    }    D3D11_FILL_MODE;
957
958typedef D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY;
959
960typedef D3D_PRIMITIVE D3D11_PRIMITIVE;
961
962typedef
963enum D3D11_CULL_MODE
964    {   D3D11_CULL_NONE   = 1,
965   D3D11_CULL_FRONT   = 2,
966   D3D11_CULL_BACK   = 3
967    }    D3D11_CULL_MODE;
968
969typedef struct D3D11_SO_DECLARATION_ENTRY
970    {
971    UINT Stream;
972    LPCSTR SemanticName;
973    UINT SemanticIndex;
974    BYTE StartComponent;
975    BYTE ComponentCount;
976    BYTE OutputSlot;
977    }    D3D11_SO_DECLARATION_ENTRY;
978
979typedef struct D3D11_VIEWPORT
980    {
981    FLOAT TopLeftX;
982    FLOAT TopLeftY;
983    FLOAT Width;
984    FLOAT Height;
985    FLOAT MinDepth;
986    FLOAT MaxDepth;
987    }    D3D11_VIEWPORT;
988
989#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
990}
991inline bool operator==( const D3D11_VIEWPORT& l, const D3D11_VIEWPORT& r )
992{
993    return l.TopLeftX == r.TopLeftX && l.TopLeftY == r.TopLeftY && l.Width == r.Width &&
994        l.Height == r.Height && l.MinDepth == r.MinDepth && l.MaxDepth == r.MaxDepth;
995}
996inline bool operator!=( const D3D11_VIEWPORT& l, const D3D11_VIEWPORT& r )
997{ return !( l == r ); }
998extern "C"{
999#endif
1000typedef
1001enum D3D11_RESOURCE_DIMENSION
1002    {   D3D11_RESOURCE_DIMENSION_UNKNOWN   = 0,
1003   D3D11_RESOURCE_DIMENSION_BUFFER   = 1,
1004   D3D11_RESOURCE_DIMENSION_TEXTURE1D   = 2,
1005   D3D11_RESOURCE_DIMENSION_TEXTURE2D   = 3,
1006   D3D11_RESOURCE_DIMENSION_TEXTURE3D   = 4
1007    }    D3D11_RESOURCE_DIMENSION;
1008
1009typedef D3D_SRV_DIMENSION D3D11_SRV_DIMENSION;
1010
1011typedef
1012enum D3D11_DSV_DIMENSION
1013    {   D3D11_DSV_DIMENSION_UNKNOWN   = 0,
1014   D3D11_DSV_DIMENSION_TEXTURE1D   = 1,
1015   D3D11_DSV_DIMENSION_TEXTURE1DARRAY   = 2,
1016   D3D11_DSV_DIMENSION_TEXTURE2D   = 3,
1017   D3D11_DSV_DIMENSION_TEXTURE2DARRAY   = 4,
1018   D3D11_DSV_DIMENSION_TEXTURE2DMS   = 5,
1019   D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY   = 6
1020    }    D3D11_DSV_DIMENSION;
1021
1022typedef
1023enum D3D11_RTV_DIMENSION
1024    {   D3D11_RTV_DIMENSION_UNKNOWN   = 0,
1025   D3D11_RTV_DIMENSION_BUFFER   = 1,
1026   D3D11_RTV_DIMENSION_TEXTURE1D   = 2,
1027   D3D11_RTV_DIMENSION_TEXTURE1DARRAY   = 3,
1028   D3D11_RTV_DIMENSION_TEXTURE2D   = 4,
1029   D3D11_RTV_DIMENSION_TEXTURE2DARRAY   = 5,
1030   D3D11_RTV_DIMENSION_TEXTURE2DMS   = 6,
1031   D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY   = 7,
1032   D3D11_RTV_DIMENSION_TEXTURE3D   = 8
1033    }    D3D11_RTV_DIMENSION;
1034
1035typedef
1036enum D3D11_UAV_DIMENSION
1037    {   D3D11_UAV_DIMENSION_UNKNOWN   = 0,
1038   D3D11_UAV_DIMENSION_BUFFER   = 1,
1039   D3D11_UAV_DIMENSION_TEXTURE1D   = 2,
1040   D3D11_UAV_DIMENSION_TEXTURE1DARRAY   = 3,
1041   D3D11_UAV_DIMENSION_TEXTURE2D   = 4,
1042   D3D11_UAV_DIMENSION_TEXTURE2DARRAY   = 5,
1043   D3D11_UAV_DIMENSION_TEXTURE3D   = 8
1044    }    D3D11_UAV_DIMENSION;
1045
1046typedef
1047enum D3D11_USAGE
1048    {   D3D11_USAGE_DEFAULT   = 0,
1049   D3D11_USAGE_IMMUTABLE   = 1,
1050   D3D11_USAGE_DYNAMIC   = 2,
1051   D3D11_USAGE_STAGING   = 3
1052    }    D3D11_USAGE;
1053
1054typedef
1055enum D3D11_BIND_FLAG
1056    {   D3D11_BIND_VERTEX_BUFFER   = 0x1L,
1057   D3D11_BIND_INDEX_BUFFER   = 0x2L,
1058   D3D11_BIND_CONSTANT_BUFFER   = 0x4L,
1059   D3D11_BIND_SHADER_RESOURCE   = 0x8L,
1060   D3D11_BIND_STREAM_OUTPUT   = 0x10L,
1061   D3D11_BIND_RENDER_TARGET   = 0x20L,
1062   D3D11_BIND_DEPTH_STENCIL   = 0x40L,
1063   D3D11_BIND_UNORDERED_ACCESS   = 0x80L
1064    }    D3D11_BIND_FLAG;
1065
1066typedef
1067enum D3D11_CPU_ACCESS_FLAG
1068    {   D3D11_CPU_ACCESS_WRITE   = 0x10000L,
1069   D3D11_CPU_ACCESS_READ   = 0x20000L
1070    }    D3D11_CPU_ACCESS_FLAG;
1071
1072typedef
1073enum D3D11_RESOURCE_MISC_FLAG
1074    {   D3D11_RESOURCE_MISC_GENERATE_MIPS   = 0x1L,
1075   D3D11_RESOURCE_MISC_SHARED   = 0x2L,
1076   D3D11_RESOURCE_MISC_TEXTURECUBE   = 0x4L,
1077   D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS   = 0x10L,
1078   D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS   = 0x20L,
1079   D3D11_RESOURCE_MISC_BUFFER_STRUCTURED   = 0x40L,
1080   D3D11_RESOURCE_MISC_RESOURCE_CLAMP   = 0x80L,
1081   D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX   = 0x100L,
1082   D3D11_RESOURCE_MISC_GDI_COMPATIBLE   = 0x200L
1083    }    D3D11_RESOURCE_MISC_FLAG;
1084
1085typedef
1086enum D3D11_MAP
1087    {   D3D11_MAP_READ   = 1,
1088   D3D11_MAP_WRITE   = 2,
1089   D3D11_MAP_READ_WRITE   = 3,
1090   D3D11_MAP_WRITE_DISCARD   = 4,
1091   D3D11_MAP_WRITE_NO_OVERWRITE   = 5
1092    }    D3D11_MAP;
1093
1094typedef
1095enum D3D11_MAP_FLAG
1096    {   D3D11_MAP_FLAG_DO_NOT_WAIT   = 0x100000L
1097    }    D3D11_MAP_FLAG;
1098
1099typedef
1100enum D3D11_RAISE_FLAG
1101    {   D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR   = 0x1L
1102    }    D3D11_RAISE_FLAG;
1103
1104typedef
1105enum D3D11_CLEAR_FLAG
1106    {   D3D11_CLEAR_DEPTH   = 0x1L,
1107   D3D11_CLEAR_STENCIL   = 0x2L
1108    }    D3D11_CLEAR_FLAG;
1109
1110typedef RECT D3D11_RECT;
1111
1112#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
1113}
1114struct CD3D11_RECT : public D3D11_RECT
1115{
1116    CD3D11_RECT()
1117    {}
1118    explicit CD3D11_RECT( const D3D11_RECT& o ) :
1119        D3D11_RECT( o )
1120    {}
1121    explicit CD3D11_RECT(
1122        LONG Left,
1123        LONG Top,
1124        LONG Right,
1125        LONG Bottom )
1126    {
1127        left = Left;
1128        top = Top;
1129        right = Right;
1130        bottom = Bottom;
1131    }
1132    ~CD3D11_RECT() {}
1133    operator const D3D11_RECT&() const { return *this; }
1134};
1135inline bool operator==( const D3D11_RECT& l, const D3D11_RECT& r )
1136{
1137    return l.left == r.left && l.top == r.top &&
1138        l.right == r.right && l.bottom == r.bottom;
1139}
1140inline bool operator!=( const D3D11_RECT& l, const D3D11_RECT& r )
1141{ return !( l == r ); }
1142extern "C"{
1143#endif
1144typedef struct D3D11_BOX
1145    {
1146    UINT left;
1147    UINT top;
1148    UINT front;
1149    UINT right;
1150    UINT bottom;
1151    UINT back;
1152    }    D3D11_BOX;
1153
1154#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
1155}
1156struct CD3D11_BOX : public D3D11_BOX
1157{
1158    CD3D11_BOX()
1159    {}
1160    explicit CD3D11_BOX( const D3D11_BOX& o ) :
1161        D3D11_BOX( o )
1162    {}
1163    explicit CD3D11_BOX(
1164        LONG Left,
1165        LONG Top,
1166        LONG Front,
1167        LONG Right,
1168        LONG Bottom,
1169        LONG Back )
1170    {
1171        left = Left;
1172        top = Top;
1173        front = Front;
1174        right = Right;
1175        bottom = Bottom;
1176        back = Back;
1177    }
1178    ~CD3D11_BOX() {}
1179    operator const D3D11_BOX&() const { return *this; }
1180};
1181inline bool operator==( const D3D11_BOX& l, const D3D11_BOX& r )
1182{
1183    return l.left == r.left && l.top == r.top && l.front == r.front &&
1184        l.right == r.right && l.bottom == r.bottom && l.back == r.back;
1185}
1186inline bool operator!=( const D3D11_BOX& l, const D3D11_BOX& r )
1187{ return !( l == r ); }
1188extern "C"{
1189#endif
1190
1191
1192
1193
1194extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0000_v0_0_c_ifspec;
1195extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0000_v0_0_s_ifspec;
1196
1197#ifndef __ID3D11DeviceChild_INTERFACE_DEFINED__
1198#define __ID3D11DeviceChild_INTERFACE_DEFINED__
1199
1200/* interface ID3D11DeviceChild */
1201/* [unique][local][object][uuid] */
1202
1203
1204EXTERN_C const IID IID_ID3D11DeviceChild;
1205
1206#if defined(__cplusplus) && !defined(CINTERFACE)
1207   
1208    MIDL_INTERFACE("1841e5c8-16b0-489b-bcc8-44cfb0d5deae")
1209    ID3D11DeviceChild : public IUnknown
1210    {
1211    public:
1212        virtual void STDMETHODCALLTYPE GetDevice(
1213            /* [annotation] */
1214            __out  ID3D11Device **ppDevice) = 0;
1215       
1216        virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
1217            /* [annotation] */
1218            __in  REFGUID guid,
1219            /* [annotation] */
1220            __inout  UINT *pDataSize,
1221            /* [annotation] */
1222            __out_bcount_opt( *pDataSize )  void *pData) = 0;
1223       
1224        virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
1225            /* [annotation] */
1226            __in  REFGUID guid,
1227            /* [annotation] */
1228            __in  UINT DataSize,
1229            /* [annotation] */
1230            __in_bcount_opt( DataSize )  const void *pData) = 0;
1231       
1232        virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
1233            /* [annotation] */
1234            __in  REFGUID guid,
1235            /* [annotation] */
1236            __in_opt  const IUnknown *pData) = 0;
1237       
1238    };
1239   
1240#else    /* C style interface */
1241
1242    typedef struct ID3D11DeviceChildVtbl
1243    {
1244        BEGIN_INTERFACE
1245       
1246        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1247            ID3D11DeviceChild * This,
1248            /* [in] */ REFIID riid,
1249            /* [annotation][iid_is][out] */
1250            __RPC__deref_out  void **ppvObject);
1251       
1252        ULONG ( STDMETHODCALLTYPE *AddRef )(
1253            ID3D11DeviceChild * This);
1254       
1255        ULONG ( STDMETHODCALLTYPE *Release )(
1256            ID3D11DeviceChild * This);
1257       
1258        void ( STDMETHODCALLTYPE *GetDevice )(
1259            ID3D11DeviceChild * This,
1260            /* [annotation] */
1261            __out  ID3D11Device **ppDevice);
1262       
1263        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1264            ID3D11DeviceChild * This,
1265            /* [annotation] */
1266            __in  REFGUID guid,
1267            /* [annotation] */
1268            __inout  UINT *pDataSize,
1269            /* [annotation] */
1270            __out_bcount_opt( *pDataSize )  void *pData);
1271       
1272        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1273            ID3D11DeviceChild * This,
1274            /* [annotation] */
1275            __in  REFGUID guid,
1276            /* [annotation] */
1277            __in  UINT DataSize,
1278            /* [annotation] */
1279            __in_bcount_opt( DataSize )  const void *pData);
1280       
1281        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1282            ID3D11DeviceChild * This,
1283            /* [annotation] */
1284            __in  REFGUID guid,
1285            /* [annotation] */
1286            __in_opt  const IUnknown *pData);
1287       
1288        END_INTERFACE
1289    } ID3D11DeviceChildVtbl;
1290
1291    interface ID3D11DeviceChild
1292    {
1293        CONST_VTBL struct ID3D11DeviceChildVtbl *lpVtbl;
1294    };
1295
1296   
1297
1298#ifdef COBJMACROS
1299
1300
1301#define ID3D11DeviceChild_QueryInterface(This,riid,ppvObject)   \
1302    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1303
1304#define ID3D11DeviceChild_AddRef(This)   \
1305    ( (This)->lpVtbl -> AddRef(This) )
1306
1307#define ID3D11DeviceChild_Release(This)   \
1308    ( (This)->lpVtbl -> Release(This) )
1309
1310
1311#define ID3D11DeviceChild_GetDevice(This,ppDevice)   \
1312    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1313
1314#define ID3D11DeviceChild_GetPrivateData(This,guid,pDataSize,pData)   \
1315    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1316
1317#define ID3D11DeviceChild_SetPrivateData(This,guid,DataSize,pData)   \
1318    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1319
1320#define ID3D11DeviceChild_SetPrivateDataInterface(This,guid,pData)   \
1321    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1322
1323#endif /* COBJMACROS */
1324
1325
1326#endif    /* C style interface */
1327
1328
1329
1330
1331#endif    /* __ID3D11DeviceChild_INTERFACE_DEFINED__ */
1332
1333
1334/* interface __MIDL_itf_d3d11_0000_0001 */
1335/* [local] */
1336
1337typedef
1338enum D3D11_COMPARISON_FUNC
1339    {   D3D11_COMPARISON_NEVER   = 1,
1340   D3D11_COMPARISON_LESS   = 2,
1341   D3D11_COMPARISON_EQUAL   = 3,
1342   D3D11_COMPARISON_LESS_EQUAL   = 4,
1343   D3D11_COMPARISON_GREATER   = 5,
1344   D3D11_COMPARISON_NOT_EQUAL   = 6,
1345   D3D11_COMPARISON_GREATER_EQUAL   = 7,
1346   D3D11_COMPARISON_ALWAYS   = 8
1347    }    D3D11_COMPARISON_FUNC;
1348
1349typedef
1350enum D3D11_DEPTH_WRITE_MASK
1351    {   D3D11_DEPTH_WRITE_MASK_ZERO   = 0,
1352   D3D11_DEPTH_WRITE_MASK_ALL   = 1
1353    }    D3D11_DEPTH_WRITE_MASK;
1354
1355typedef
1356enum D3D11_STENCIL_OP
1357    {   D3D11_STENCIL_OP_KEEP   = 1,
1358   D3D11_STENCIL_OP_ZERO   = 2,
1359   D3D11_STENCIL_OP_REPLACE   = 3,
1360   D3D11_STENCIL_OP_INCR_SAT   = 4,
1361   D3D11_STENCIL_OP_DECR_SAT   = 5,
1362   D3D11_STENCIL_OP_INVERT   = 6,
1363   D3D11_STENCIL_OP_INCR   = 7,
1364   D3D11_STENCIL_OP_DECR   = 8
1365    }    D3D11_STENCIL_OP;
1366
1367typedef struct D3D11_DEPTH_STENCILOP_DESC
1368    {
1369    D3D11_STENCIL_OP StencilFailOp;
1370    D3D11_STENCIL_OP StencilDepthFailOp;
1371    D3D11_STENCIL_OP StencilPassOp;
1372    D3D11_COMPARISON_FUNC StencilFunc;
1373    }    D3D11_DEPTH_STENCILOP_DESC;
1374
1375typedef struct D3D11_DEPTH_STENCIL_DESC
1376    {
1377    BOOL DepthEnable;
1378    D3D11_DEPTH_WRITE_MASK DepthWriteMask;
1379    D3D11_COMPARISON_FUNC DepthFunc;
1380    BOOL StencilEnable;
1381    UINT8 StencilReadMask;
1382    UINT8 StencilWriteMask;
1383    D3D11_DEPTH_STENCILOP_DESC FrontFace;
1384    D3D11_DEPTH_STENCILOP_DESC BackFace;
1385    }    D3D11_DEPTH_STENCIL_DESC;
1386
1387#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
1388}
1389struct CD3D11_DEPTH_STENCIL_DESC : public D3D11_DEPTH_STENCIL_DESC
1390{
1391    CD3D11_DEPTH_STENCIL_DESC()
1392    {}
1393    explicit CD3D11_DEPTH_STENCIL_DESC( const D3D11_DEPTH_STENCIL_DESC& o ) :
1394        D3D11_DEPTH_STENCIL_DESC( o )
1395    {}
1396    explicit CD3D11_DEPTH_STENCIL_DESC( CD3D11_DEFAULT )
1397    {
1398        DepthEnable = TRUE;
1399        DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;
1400        DepthFunc = D3D11_COMPARISON_LESS;
1401        StencilEnable = FALSE;
1402        StencilReadMask = D3D11_DEFAULT_STENCIL_READ_MASK;
1403        StencilWriteMask = D3D11_DEFAULT_STENCIL_WRITE_MASK;
1404        const D3D11_DEPTH_STENCILOP_DESC defaultStencilOp =
1405        { D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_COMPARISON_ALWAYS };
1406        FrontFace = defaultStencilOp;
1407        BackFace = defaultStencilOp;
1408    }
1409    explicit CD3D11_DEPTH_STENCIL_DESC(
1410        BOOL depthEnable,
1411        D3D11_DEPTH_WRITE_MASK depthWriteMask,
1412        D3D11_COMPARISON_FUNC depthFunc,
1413        BOOL stencilEnable,
1414        UINT8 stencilReadMask,
1415        UINT8 stencilWriteMask,
1416        D3D11_STENCIL_OP frontStencilFailOp,
1417        D3D11_STENCIL_OP frontStencilDepthFailOp,
1418        D3D11_STENCIL_OP frontStencilPassOp,
1419        D3D11_COMPARISON_FUNC frontStencilFunc,
1420        D3D11_STENCIL_OP backStencilFailOp,
1421        D3D11_STENCIL_OP backStencilDepthFailOp,
1422        D3D11_STENCIL_OP backStencilPassOp,
1423        D3D11_COMPARISON_FUNC backStencilFunc )
1424    {
1425        DepthEnable = depthEnable;
1426        DepthWriteMask = depthWriteMask;
1427        DepthFunc = depthFunc;
1428        StencilEnable = stencilEnable;
1429        StencilReadMask = stencilReadMask;
1430        StencilWriteMask = stencilWriteMask;
1431        FrontFace.StencilFailOp = frontStencilFailOp;
1432        FrontFace.StencilDepthFailOp = frontStencilDepthFailOp;
1433        FrontFace.StencilPassOp = frontStencilPassOp;
1434        FrontFace.StencilFunc = frontStencilFunc;
1435        BackFace.StencilFailOp = backStencilFailOp;
1436        BackFace.StencilDepthFailOp = backStencilDepthFailOp;
1437        BackFace.StencilPassOp = backStencilPassOp;
1438        BackFace.StencilFunc = backStencilFunc;
1439    }
1440    ~CD3D11_DEPTH_STENCIL_DESC() {}
1441    operator const D3D11_DEPTH_STENCIL_DESC&() const { return *this; }
1442};
1443extern "C"{
1444#endif
1445
1446
1447extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0001_v0_0_c_ifspec;
1448extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0001_v0_0_s_ifspec;
1449
1450#ifndef __ID3D11DepthStencilState_INTERFACE_DEFINED__
1451#define __ID3D11DepthStencilState_INTERFACE_DEFINED__
1452
1453/* interface ID3D11DepthStencilState */
1454/* [unique][local][object][uuid] */
1455
1456
1457EXTERN_C const IID IID_ID3D11DepthStencilState;
1458
1459#if defined(__cplusplus) && !defined(CINTERFACE)
1460   
1461    MIDL_INTERFACE("03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1")
1462    ID3D11DepthStencilState : public ID3D11DeviceChild
1463    {
1464    public:
1465        virtual void STDMETHODCALLTYPE GetDesc(
1466            /* [annotation] */
1467            __out  D3D11_DEPTH_STENCIL_DESC *pDesc) = 0;
1468       
1469    };
1470   
1471#else    /* C style interface */
1472
1473    typedef struct ID3D11DepthStencilStateVtbl
1474    {
1475        BEGIN_INTERFACE
1476       
1477        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1478            ID3D11DepthStencilState * This,
1479            /* [in] */ REFIID riid,
1480            /* [annotation][iid_is][out] */
1481            __RPC__deref_out  void **ppvObject);
1482       
1483        ULONG ( STDMETHODCALLTYPE *AddRef )(
1484            ID3D11DepthStencilState * This);
1485       
1486        ULONG ( STDMETHODCALLTYPE *Release )(
1487            ID3D11DepthStencilState * This);
1488       
1489        void ( STDMETHODCALLTYPE *GetDevice )(
1490            ID3D11DepthStencilState * This,
1491            /* [annotation] */
1492            __out  ID3D11Device **ppDevice);
1493       
1494        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1495            ID3D11DepthStencilState * This,
1496            /* [annotation] */
1497            __in  REFGUID guid,
1498            /* [annotation] */
1499            __inout  UINT *pDataSize,
1500            /* [annotation] */
1501            __out_bcount_opt( *pDataSize )  void *pData);
1502       
1503        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1504            ID3D11DepthStencilState * This,
1505            /* [annotation] */
1506            __in  REFGUID guid,
1507            /* [annotation] */
1508            __in  UINT DataSize,
1509            /* [annotation] */
1510            __in_bcount_opt( DataSize )  const void *pData);
1511       
1512        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1513            ID3D11DepthStencilState * This,
1514            /* [annotation] */
1515            __in  REFGUID guid,
1516            /* [annotation] */
1517            __in_opt  const IUnknown *pData);
1518       
1519        void ( STDMETHODCALLTYPE *GetDesc )(
1520            ID3D11DepthStencilState * This,
1521            /* [annotation] */
1522            __out  D3D11_DEPTH_STENCIL_DESC *pDesc);
1523       
1524        END_INTERFACE
1525    } ID3D11DepthStencilStateVtbl;
1526
1527    interface ID3D11DepthStencilState
1528    {
1529        CONST_VTBL struct ID3D11DepthStencilStateVtbl *lpVtbl;
1530    };
1531
1532   
1533
1534#ifdef COBJMACROS
1535
1536
1537#define ID3D11DepthStencilState_QueryInterface(This,riid,ppvObject)   \
1538    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1539
1540#define ID3D11DepthStencilState_AddRef(This)   \
1541    ( (This)->lpVtbl -> AddRef(This) )
1542
1543#define ID3D11DepthStencilState_Release(This)   \
1544    ( (This)->lpVtbl -> Release(This) )
1545
1546
1547#define ID3D11DepthStencilState_GetDevice(This,ppDevice)   \
1548    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1549
1550#define ID3D11DepthStencilState_GetPrivateData(This,guid,pDataSize,pData)   \
1551    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1552
1553#define ID3D11DepthStencilState_SetPrivateData(This,guid,DataSize,pData)   \
1554    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1555
1556#define ID3D11DepthStencilState_SetPrivateDataInterface(This,guid,pData)   \
1557    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1558
1559
1560#define ID3D11DepthStencilState_GetDesc(This,pDesc)   \
1561    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1562
1563#endif /* COBJMACROS */
1564
1565
1566#endif    /* C style interface */
1567
1568
1569
1570
1571#endif    /* __ID3D11DepthStencilState_INTERFACE_DEFINED__ */
1572
1573
1574/* interface __MIDL_itf_d3d11_0000_0002 */
1575/* [local] */
1576
1577typedef
1578enum D3D11_BLEND
1579    {   D3D11_BLEND_ZERO   = 1,
1580   D3D11_BLEND_ONE   = 2,
1581   D3D11_BLEND_SRC_COLOR   = 3,
1582   D3D11_BLEND_INV_SRC_COLOR   = 4,
1583   D3D11_BLEND_SRC_ALPHA   = 5,
1584   D3D11_BLEND_INV_SRC_ALPHA   = 6,
1585   D3D11_BLEND_DEST_ALPHA   = 7,
1586   D3D11_BLEND_INV_DEST_ALPHA   = 8,
1587   D3D11_BLEND_DEST_COLOR   = 9,
1588   D3D11_BLEND_INV_DEST_COLOR   = 10,
1589   D3D11_BLEND_SRC_ALPHA_SAT   = 11,
1590   D3D11_BLEND_BLEND_FACTOR   = 14,
1591   D3D11_BLEND_INV_BLEND_FACTOR   = 15,
1592   D3D11_BLEND_SRC1_COLOR   = 16,
1593   D3D11_BLEND_INV_SRC1_COLOR   = 17,
1594   D3D11_BLEND_SRC1_ALPHA   = 18,
1595   D3D11_BLEND_INV_SRC1_ALPHA   = 19
1596    }    D3D11_BLEND;
1597
1598typedef
1599enum D3D11_BLEND_OP
1600    {   D3D11_BLEND_OP_ADD   = 1,
1601   D3D11_BLEND_OP_SUBTRACT   = 2,
1602   D3D11_BLEND_OP_REV_SUBTRACT   = 3,
1603   D3D11_BLEND_OP_MIN   = 4,
1604   D3D11_BLEND_OP_MAX   = 5
1605    }    D3D11_BLEND_OP;
1606
1607typedef
1608enum D3D11_COLOR_WRITE_ENABLE
1609    {   D3D11_COLOR_WRITE_ENABLE_RED   = 1,
1610   D3D11_COLOR_WRITE_ENABLE_GREEN   = 2,
1611   D3D11_COLOR_WRITE_ENABLE_BLUE   = 4,
1612   D3D11_COLOR_WRITE_ENABLE_ALPHA   = 8,
1613   D3D11_COLOR_WRITE_ENABLE_ALL   = ( ( ( D3D11_COLOR_WRITE_ENABLE_RED | D3D11_COLOR_WRITE_ENABLE_GREEN )  | D3D11_COLOR_WRITE_ENABLE_BLUE )  | D3D11_COLOR_WRITE_ENABLE_ALPHA )
1614    }    D3D11_COLOR_WRITE_ENABLE;
1615
1616typedef struct D3D11_RENDER_TARGET_BLEND_DESC
1617    {
1618    BOOL BlendEnable;
1619    D3D11_BLEND SrcBlend;
1620    D3D11_BLEND DestBlend;
1621    D3D11_BLEND_OP BlendOp;
1622    D3D11_BLEND SrcBlendAlpha;
1623    D3D11_BLEND DestBlendAlpha;
1624    D3D11_BLEND_OP BlendOpAlpha;
1625    UINT8 RenderTargetWriteMask;
1626    }    D3D11_RENDER_TARGET_BLEND_DESC;
1627
1628typedef struct D3D11_BLEND_DESC
1629    {
1630    BOOL AlphaToCoverageEnable;
1631    BOOL IndependentBlendEnable;
1632    D3D11_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ];
1633    }    D3D11_BLEND_DESC;
1634
1635/* Note, the array size for RenderTarget[] above is D3D11_SIMULTANEOUS_RENDERTARGET_COUNT.
1636   IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */
1637#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
1638}
1639struct CD3D11_BLEND_DESC : public D3D11_BLEND_DESC
1640{
1641    CD3D11_BLEND_DESC()
1642    {}
1643    explicit CD3D11_BLEND_DESC( const D3D11_BLEND_DESC& o ) :
1644        D3D11_BLEND_DESC( o )
1645    {}
1646    explicit CD3D11_BLEND_DESC( CD3D11_DEFAULT )
1647    {
1648        AlphaToCoverageEnable = FALSE;
1649        IndependentBlendEnable = FALSE;
1650        const D3D11_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc =
1651        {
1652            FALSE,
1653            D3D11_BLEND_ONE, D3D11_BLEND_ZERO, D3D11_BLEND_OP_ADD,
1654            D3D11_BLEND_ONE, D3D11_BLEND_ZERO, D3D11_BLEND_OP_ADD,
1655            D3D11_COLOR_WRITE_ENABLE_ALL,
1656        };
1657        for (UINT i = 0; i < D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i)
1658            RenderTarget[ i ] = defaultRenderTargetBlendDesc;
1659    }
1660    ~CD3D11_BLEND_DESC() {}
1661    operator const D3D11_BLEND_DESC&() const { return *this; }
1662};
1663extern "C"{
1664#endif
1665
1666
1667extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0002_v0_0_c_ifspec;
1668extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0002_v0_0_s_ifspec;
1669
1670#ifndef __ID3D11BlendState_INTERFACE_DEFINED__
1671#define __ID3D11BlendState_INTERFACE_DEFINED__
1672
1673/* interface ID3D11BlendState */
1674/* [unique][local][object][uuid] */
1675
1676
1677EXTERN_C const IID IID_ID3D11BlendState;
1678
1679#if defined(__cplusplus) && !defined(CINTERFACE)
1680   
1681    MIDL_INTERFACE("75b68faa-347d-4159-8f45-a0640f01cd9a")
1682    ID3D11BlendState : public ID3D11DeviceChild
1683    {
1684    public:
1685        virtual void STDMETHODCALLTYPE GetDesc(
1686            /* [annotation] */
1687            __out  D3D11_BLEND_DESC *pDesc) = 0;
1688       
1689    };
1690   
1691#else    /* C style interface */
1692
1693    typedef struct ID3D11BlendStateVtbl
1694    {
1695        BEGIN_INTERFACE
1696       
1697        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1698            ID3D11BlendState * This,
1699            /* [in] */ REFIID riid,
1700            /* [annotation][iid_is][out] */
1701            __RPC__deref_out  void **ppvObject);
1702       
1703        ULONG ( STDMETHODCALLTYPE *AddRef )(
1704            ID3D11BlendState * This);
1705       
1706        ULONG ( STDMETHODCALLTYPE *Release )(
1707            ID3D11BlendState * This);
1708       
1709        void ( STDMETHODCALLTYPE *GetDevice )(
1710            ID3D11BlendState * This,
1711            /* [annotation] */
1712            __out  ID3D11Device **ppDevice);
1713       
1714        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1715            ID3D11BlendState * This,
1716            /* [annotation] */
1717            __in  REFGUID guid,
1718            /* [annotation] */
1719            __inout  UINT *pDataSize,
1720            /* [annotation] */
1721            __out_bcount_opt( *pDataSize )  void *pData);
1722       
1723        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1724            ID3D11BlendState * This,
1725            /* [annotation] */
1726            __in  REFGUID guid,
1727            /* [annotation] */
1728            __in  UINT DataSize,
1729            /* [annotation] */
1730            __in_bcount_opt( DataSize )  const void *pData);
1731       
1732        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1733            ID3D11BlendState * This,
1734            /* [annotation] */
1735            __in  REFGUID guid,
1736            /* [annotation] */
1737            __in_opt  const IUnknown *pData);
1738       
1739        void ( STDMETHODCALLTYPE *GetDesc )(
1740            ID3D11BlendState * This,
1741            /* [annotation] */
1742            __out  D3D11_BLEND_DESC *pDesc);
1743       
1744        END_INTERFACE
1745    } ID3D11BlendStateVtbl;
1746
1747    interface ID3D11BlendState
1748    {
1749        CONST_VTBL struct ID3D11BlendStateVtbl *lpVtbl;
1750    };
1751
1752   
1753
1754#ifdef COBJMACROS
1755
1756
1757#define ID3D11BlendState_QueryInterface(This,riid,ppvObject)   \
1758    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1759
1760#define ID3D11BlendState_AddRef(This)   \
1761    ( (This)->lpVtbl -> AddRef(This) )
1762
1763#define ID3D11BlendState_Release(This)   \
1764    ( (This)->lpVtbl -> Release(This) )
1765
1766
1767#define ID3D11BlendState_GetDevice(This,ppDevice)   \
1768    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1769
1770#define ID3D11BlendState_GetPrivateData(This,guid,pDataSize,pData)   \
1771    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1772
1773#define ID3D11BlendState_SetPrivateData(This,guid,DataSize,pData)   \
1774    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1775
1776#define ID3D11BlendState_SetPrivateDataInterface(This,guid,pData)   \
1777    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1778
1779
1780#define ID3D11BlendState_GetDesc(This,pDesc)   \
1781    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1782
1783#endif /* COBJMACROS */
1784
1785
1786#endif    /* C style interface */
1787
1788
1789
1790
1791#endif    /* __ID3D11BlendState_INTERFACE_DEFINED__ */
1792
1793
1794/* interface __MIDL_itf_d3d11_0000_0003 */
1795/* [local] */
1796
1797typedef struct D3D11_RASTERIZER_DESC
1798    {
1799    D3D11_FILL_MODE FillMode;
1800    D3D11_CULL_MODE CullMode;
1801    BOOL FrontCounterClockwise;
1802    INT DepthBias;
1803    FLOAT DepthBiasClamp;
1804    FLOAT SlopeScaledDepthBias;
1805    BOOL DepthClipEnable;
1806    BOOL ScissorEnable;
1807    BOOL MultisampleEnable;
1808    BOOL AntialiasedLineEnable;
1809    }    D3D11_RASTERIZER_DESC;
1810
1811#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
1812}
1813struct CD3D11_RASTERIZER_DESC : public D3D11_RASTERIZER_DESC
1814{
1815    CD3D11_RASTERIZER_DESC()
1816    {}
1817    explicit CD3D11_RASTERIZER_DESC( const D3D11_RASTERIZER_DESC& o ) :
1818        D3D11_RASTERIZER_DESC( o )
1819    {}
1820    explicit CD3D11_RASTERIZER_DESC( CD3D11_DEFAULT )
1821    {
1822        FillMode = D3D11_FILL_SOLID;
1823        CullMode = D3D11_CULL_BACK;
1824        FrontCounterClockwise = FALSE;
1825        DepthBias = D3D11_DEFAULT_DEPTH_BIAS;
1826        DepthBiasClamp = D3D11_DEFAULT_DEPTH_BIAS_CLAMP;
1827        SlopeScaledDepthBias = D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS;
1828        DepthClipEnable = TRUE;
1829        ScissorEnable = FALSE;
1830        MultisampleEnable = FALSE;
1831        AntialiasedLineEnable = FALSE;
1832    }
1833    explicit CD3D11_RASTERIZER_DESC(
1834        D3D11_FILL_MODE fillMode,
1835        D3D11_CULL_MODE cullMode,
1836        BOOL frontCounterClockwise,
1837        INT depthBias,
1838        FLOAT depthBiasClamp,
1839        FLOAT slopeScaledDepthBias,
1840        BOOL depthClipEnable,
1841        BOOL scissorEnable,
1842        BOOL multisampleEnable,
1843        BOOL antialiasedLineEnable )
1844    {
1845        FillMode = fillMode;
1846        CullMode = cullMode;
1847        FrontCounterClockwise = frontCounterClockwise;
1848        DepthBias = depthBias;
1849        DepthBiasClamp = depthBiasClamp;
1850        SlopeScaledDepthBias = slopeScaledDepthBias;
1851        DepthClipEnable = depthClipEnable;
1852        ScissorEnable = scissorEnable;
1853        MultisampleEnable = multisampleEnable;
1854        AntialiasedLineEnable = antialiasedLineEnable;
1855    }
1856    ~CD3D11_RASTERIZER_DESC() {}
1857    operator const D3D11_RASTERIZER_DESC&() const { return *this; }
1858};
1859extern "C"{
1860#endif
1861
1862
1863extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0003_v0_0_c_ifspec;
1864extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0003_v0_0_s_ifspec;
1865
1866#ifndef __ID3D11RasterizerState_INTERFACE_DEFINED__
1867#define __ID3D11RasterizerState_INTERFACE_DEFINED__
1868
1869/* interface ID3D11RasterizerState */
1870/* [unique][local][object][uuid] */
1871
1872
1873EXTERN_C const IID IID_ID3D11RasterizerState;
1874
1875#if defined(__cplusplus) && !defined(CINTERFACE)
1876   
1877    MIDL_INTERFACE("9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7")
1878    ID3D11RasterizerState : public ID3D11DeviceChild
1879    {
1880    public:
1881        virtual void STDMETHODCALLTYPE GetDesc(
1882            /* [annotation] */
1883            __out  D3D11_RASTERIZER_DESC *pDesc) = 0;
1884       
1885    };
1886   
1887#else    /* C style interface */
1888
1889    typedef struct ID3D11RasterizerStateVtbl
1890    {
1891        BEGIN_INTERFACE
1892       
1893        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1894            ID3D11RasterizerState * This,
1895            /* [in] */ REFIID riid,
1896            /* [annotation][iid_is][out] */
1897            __RPC__deref_out  void **ppvObject);
1898       
1899        ULONG ( STDMETHODCALLTYPE *AddRef )(
1900            ID3D11RasterizerState * This);
1901       
1902        ULONG ( STDMETHODCALLTYPE *Release )(
1903            ID3D11RasterizerState * This);
1904       
1905        void ( STDMETHODCALLTYPE *GetDevice )(
1906            ID3D11RasterizerState * This,
1907            /* [annotation] */
1908            __out  ID3D11Device **ppDevice);
1909       
1910        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1911            ID3D11RasterizerState * This,
1912            /* [annotation] */
1913            __in  REFGUID guid,
1914            /* [annotation] */
1915            __inout  UINT *pDataSize,
1916            /* [annotation] */
1917            __out_bcount_opt( *pDataSize )  void *pData);
1918       
1919        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1920            ID3D11RasterizerState * This,
1921            /* [annotation] */
1922            __in  REFGUID guid,
1923            /* [annotation] */
1924            __in  UINT DataSize,
1925            /* [annotation] */
1926            __in_bcount_opt( DataSize )  const void *pData);
1927       
1928        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1929            ID3D11RasterizerState * This,
1930            /* [annotation] */
1931            __in  REFGUID guid,
1932            /* [annotation] */
1933            __in_opt  const IUnknown *pData);
1934       
1935        void ( STDMETHODCALLTYPE *GetDesc )(
1936            ID3D11RasterizerState * This,
1937            /* [annotation] */
1938            __out  D3D11_RASTERIZER_DESC *pDesc);
1939       
1940        END_INTERFACE
1941    } ID3D11RasterizerStateVtbl;
1942
1943    interface ID3D11RasterizerState
1944    {
1945        CONST_VTBL struct ID3D11RasterizerStateVtbl *lpVtbl;
1946    };
1947
1948   
1949
1950#ifdef COBJMACROS
1951
1952
1953#define ID3D11RasterizerState_QueryInterface(This,riid,ppvObject)   \
1954    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1955
1956#define ID3D11RasterizerState_AddRef(This)   \
1957    ( (This)->lpVtbl -> AddRef(This) )
1958
1959#define ID3D11RasterizerState_Release(This)   \
1960    ( (This)->lpVtbl -> Release(This) )
1961
1962
1963#define ID3D11RasterizerState_GetDevice(This,ppDevice)   \
1964    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
1965
1966#define ID3D11RasterizerState_GetPrivateData(This,guid,pDataSize,pData)   \
1967    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1968
1969#define ID3D11RasterizerState_SetPrivateData(This,guid,DataSize,pData)   \
1970    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1971
1972#define ID3D11RasterizerState_SetPrivateDataInterface(This,guid,pData)   \
1973    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1974
1975
1976#define ID3D11RasterizerState_GetDesc(This,pDesc)   \
1977    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1978
1979#endif /* COBJMACROS */
1980
1981
1982#endif    /* C style interface */
1983
1984
1985
1986
1987#endif    /* __ID3D11RasterizerState_INTERFACE_DEFINED__ */
1988
1989
1990/* interface __MIDL_itf_d3d11_0000_0004 */
1991/* [local] */
1992
1993#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
1994}
1995inline UINT D3D11CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT MipLevels )
1996{ return MipSlice + ArraySlice * MipLevels; }
1997extern "C"{
1998#endif
1999typedef struct D3D11_SUBRESOURCE_DATA
2000    {
2001    const void *pSysMem;
2002    UINT SysMemPitch;
2003    UINT SysMemSlicePitch;
2004    }    D3D11_SUBRESOURCE_DATA;
2005
2006typedef struct D3D11_MAPPED_SUBRESOURCE
2007    {
2008    void *pData;
2009    UINT RowPitch;
2010    UINT DepthPitch;
2011    }    D3D11_MAPPED_SUBRESOURCE;
2012
2013
2014
2015extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0004_v0_0_c_ifspec;
2016extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0004_v0_0_s_ifspec;
2017
2018#ifndef __ID3D11Resource_INTERFACE_DEFINED__
2019#define __ID3D11Resource_INTERFACE_DEFINED__
2020
2021/* interface ID3D11Resource */
2022/* [unique][local][object][uuid] */
2023
2024
2025EXTERN_C const IID IID_ID3D11Resource;
2026
2027#if defined(__cplusplus) && !defined(CINTERFACE)
2028   
2029    MIDL_INTERFACE("dc8e63f3-d12b-4952-b47b-5e45026a862d")
2030    ID3D11Resource : public ID3D11DeviceChild
2031    {
2032    public:
2033        virtual void STDMETHODCALLTYPE GetType(
2034            /* [annotation] */
2035            __out  D3D11_RESOURCE_DIMENSION *pResourceDimension) = 0;
2036       
2037        virtual void STDMETHODCALLTYPE SetEvictionPriority(
2038            /* [annotation] */
2039            __in  UINT EvictionPriority) = 0;
2040       
2041        virtual UINT STDMETHODCALLTYPE GetEvictionPriority( void) = 0;
2042       
2043    };
2044   
2045#else    /* C style interface */
2046
2047    typedef struct ID3D11ResourceVtbl
2048    {
2049        BEGIN_INTERFACE
2050       
2051        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2052            ID3D11Resource * This,
2053            /* [in] */ REFIID riid,
2054            /* [annotation][iid_is][out] */
2055            __RPC__deref_out  void **ppvObject);
2056       
2057        ULONG ( STDMETHODCALLTYPE *AddRef )(
2058            ID3D11Resource * This);
2059       
2060        ULONG ( STDMETHODCALLTYPE *Release )(
2061            ID3D11Resource * This);
2062       
2063        void ( STDMETHODCALLTYPE *GetDevice )(
2064            ID3D11Resource * This,
2065            /* [annotation] */
2066            __out  ID3D11Device **ppDevice);
2067       
2068        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2069            ID3D11Resource * This,
2070            /* [annotation] */
2071            __in  REFGUID guid,
2072            /* [annotation] */
2073            __inout  UINT *pDataSize,
2074            /* [annotation] */
2075            __out_bcount_opt( *pDataSize )  void *pData);
2076       
2077        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2078            ID3D11Resource * This,
2079            /* [annotation] */
2080            __in  REFGUID guid,
2081            /* [annotation] */
2082            __in  UINT DataSize,
2083            /* [annotation] */
2084            __in_bcount_opt( DataSize )  const void *pData);
2085       
2086        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2087            ID3D11Resource * This,
2088            /* [annotation] */
2089            __in  REFGUID guid,
2090            /* [annotation] */
2091            __in_opt  const IUnknown *pData);
2092       
2093        void ( STDMETHODCALLTYPE *GetType )(
2094            ID3D11Resource * This,
2095            /* [annotation] */
2096            __out  D3D11_RESOURCE_DIMENSION *pResourceDimension);
2097       
2098        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
2099            ID3D11Resource * This,
2100            /* [annotation] */
2101            __in  UINT EvictionPriority);
2102       
2103        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
2104            ID3D11Resource * This);
2105       
2106        END_INTERFACE
2107    } ID3D11ResourceVtbl;
2108
2109    interface ID3D11Resource
2110    {
2111        CONST_VTBL struct ID3D11ResourceVtbl *lpVtbl;
2112    };
2113
2114   
2115
2116#ifdef COBJMACROS
2117
2118
2119#define ID3D11Resource_QueryInterface(This,riid,ppvObject)   \
2120    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2121
2122#define ID3D11Resource_AddRef(This)   \
2123    ( (This)->lpVtbl -> AddRef(This) )
2124
2125#define ID3D11Resource_Release(This)   \
2126    ( (This)->lpVtbl -> Release(This) )
2127
2128
2129#define ID3D11Resource_GetDevice(This,ppDevice)   \
2130    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2131
2132#define ID3D11Resource_GetPrivateData(This,guid,pDataSize,pData)   \
2133    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2134
2135#define ID3D11Resource_SetPrivateData(This,guid,DataSize,pData)   \
2136    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2137
2138#define ID3D11Resource_SetPrivateDataInterface(This,guid,pData)   \
2139    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2140
2141
2142#define ID3D11Resource_GetType(This,pResourceDimension)   \
2143    ( (This)->lpVtbl -> GetType(This,pResourceDimension) )
2144
2145#define ID3D11Resource_SetEvictionPriority(This,EvictionPriority)   \
2146    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2147
2148#define ID3D11Resource_GetEvictionPriority(This)   \
2149    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2150
2151#endif /* COBJMACROS */
2152
2153
2154#endif    /* C style interface */
2155
2156
2157
2158
2159#endif    /* __ID3D11Resource_INTERFACE_DEFINED__ */
2160
2161
2162/* interface __MIDL_itf_d3d11_0000_0005 */
2163/* [local] */
2164
2165typedef struct D3D11_BUFFER_DESC
2166    {
2167    UINT ByteWidth;
2168    D3D11_USAGE Usage;
2169    UINT BindFlags;
2170    UINT CPUAccessFlags;
2171    UINT MiscFlags;
2172    UINT StructureByteStride;
2173    }    D3D11_BUFFER_DESC;
2174
2175#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
2176}
2177struct CD3D11_BUFFER_DESC : public D3D11_BUFFER_DESC
2178{
2179    CD3D11_BUFFER_DESC()
2180    {}
2181    explicit CD3D11_BUFFER_DESC( const D3D11_BUFFER_DESC& o ) :
2182        D3D11_BUFFER_DESC( o )
2183    {}
2184    explicit CD3D11_BUFFER_DESC(
2185        UINT byteWidth,
2186        UINT bindFlags,
2187        D3D11_USAGE usage = D3D11_USAGE_DEFAULT,
2188        UINT cpuaccessFlags = 0,
2189        UINT miscFlags = 0,
2190        UINT structureByteStride = 0 )
2191    {
2192        ByteWidth = byteWidth;
2193        Usage = usage;
2194        BindFlags = bindFlags;
2195        CPUAccessFlags = cpuaccessFlags ;
2196        MiscFlags = miscFlags;
2197        StructureByteStride = structureByteStride;
2198    }
2199    ~CD3D11_BUFFER_DESC() {}
2200    operator const D3D11_BUFFER_DESC&() const { return *this; }
2201};
2202extern "C"{
2203#endif
2204
2205
2206extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0005_v0_0_c_ifspec;
2207extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0005_v0_0_s_ifspec;
2208
2209#ifndef __ID3D11Buffer_INTERFACE_DEFINED__
2210#define __ID3D11Buffer_INTERFACE_DEFINED__
2211
2212/* interface ID3D11Buffer */
2213/* [unique][local][object][uuid] */
2214
2215
2216EXTERN_C const IID IID_ID3D11Buffer;
2217
2218#if defined(__cplusplus) && !defined(CINTERFACE)
2219   
2220    MIDL_INTERFACE("48570b85-d1ee-4fcd-a250-eb350722b037")
2221    ID3D11Buffer : public ID3D11Resource
2222    {
2223    public:
2224        virtual void STDMETHODCALLTYPE GetDesc(
2225            /* [annotation] */
2226            __out  D3D11_BUFFER_DESC *pDesc) = 0;
2227       
2228    };
2229   
2230#else    /* C style interface */
2231
2232    typedef struct ID3D11BufferVtbl
2233    {
2234        BEGIN_INTERFACE
2235       
2236        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2237            ID3D11Buffer * This,
2238            /* [in] */ REFIID riid,
2239            /* [annotation][iid_is][out] */
2240            __RPC__deref_out  void **ppvObject);
2241       
2242        ULONG ( STDMETHODCALLTYPE *AddRef )(
2243            ID3D11Buffer * This);
2244       
2245        ULONG ( STDMETHODCALLTYPE *Release )(
2246            ID3D11Buffer * This);
2247       
2248        void ( STDMETHODCALLTYPE *GetDevice )(
2249            ID3D11Buffer * This,
2250            /* [annotation] */
2251            __out  ID3D11Device **ppDevice);
2252       
2253        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2254            ID3D11Buffer * This,
2255            /* [annotation] */
2256            __in  REFGUID guid,
2257            /* [annotation] */
2258            __inout  UINT *pDataSize,
2259            /* [annotation] */
2260            __out_bcount_opt( *pDataSize )  void *pData);
2261       
2262        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2263            ID3D11Buffer * This,
2264            /* [annotation] */
2265            __in  REFGUID guid,
2266            /* [annotation] */
2267            __in  UINT DataSize,
2268            /* [annotation] */
2269            __in_bcount_opt( DataSize )  const void *pData);
2270       
2271        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2272            ID3D11Buffer * This,
2273            /* [annotation] */
2274            __in  REFGUID guid,
2275            /* [annotation] */
2276            __in_opt  const IUnknown *pData);
2277       
2278        void ( STDMETHODCALLTYPE *GetType )(
2279            ID3D11Buffer * This,
2280            /* [annotation] */
2281            __out  D3D11_RESOURCE_DIMENSION *pResourceDimension);
2282       
2283        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
2284            ID3D11Buffer * This,
2285            /* [annotation] */
2286            __in  UINT EvictionPriority);
2287       
2288        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
2289            ID3D11Buffer * This);
2290       
2291        void ( STDMETHODCALLTYPE *GetDesc )(
2292            ID3D11Buffer * This,
2293            /* [annotation] */
2294            __out  D3D11_BUFFER_DESC *pDesc);
2295       
2296        END_INTERFACE
2297    } ID3D11BufferVtbl;
2298
2299    interface ID3D11Buffer
2300    {
2301        CONST_VTBL struct ID3D11BufferVtbl *lpVtbl;
2302    };
2303
2304   
2305
2306#ifdef COBJMACROS
2307
2308
2309#define ID3D11Buffer_QueryInterface(This,riid,ppvObject)   \
2310    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2311
2312#define ID3D11Buffer_AddRef(This)   \
2313    ( (This)->lpVtbl -> AddRef(This) )
2314
2315#define ID3D11Buffer_Release(This)   \
2316    ( (This)->lpVtbl -> Release(This) )
2317
2318
2319#define ID3D11Buffer_GetDevice(This,ppDevice)   \
2320    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2321
2322#define ID3D11Buffer_GetPrivateData(This,guid,pDataSize,pData)   \
2323    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2324
2325#define ID3D11Buffer_SetPrivateData(This,guid,DataSize,pData)   \
2326    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2327
2328#define ID3D11Buffer_SetPrivateDataInterface(This,guid,pData)   \
2329    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2330
2331
2332#define ID3D11Buffer_GetType(This,pResourceDimension)   \
2333    ( (This)->lpVtbl -> GetType(This,pResourceDimension) )
2334
2335#define ID3D11Buffer_SetEvictionPriority(This,EvictionPriority)   \
2336    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2337
2338#define ID3D11Buffer_GetEvictionPriority(This)   \
2339    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2340
2341
2342#define ID3D11Buffer_GetDesc(This,pDesc)   \
2343    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2344
2345#endif /* COBJMACROS */
2346
2347
2348#endif    /* C style interface */
2349
2350
2351
2352
2353#endif    /* __ID3D11Buffer_INTERFACE_DEFINED__ */
2354
2355
2356/* interface __MIDL_itf_d3d11_0000_0006 */
2357/* [local] */
2358
2359typedef struct D3D11_TEXTURE1D_DESC
2360    {
2361    UINT Width;
2362    UINT MipLevels;
2363    UINT ArraySize;
2364    DXGI_FORMAT Format;
2365    D3D11_USAGE Usage;
2366    UINT BindFlags;
2367    UINT CPUAccessFlags;
2368    UINT MiscFlags;
2369    }    D3D11_TEXTURE1D_DESC;
2370
2371#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
2372}
2373struct CD3D11_TEXTURE1D_DESC : public D3D11_TEXTURE1D_DESC
2374{
2375    CD3D11_TEXTURE1D_DESC()
2376    {}
2377    explicit CD3D11_TEXTURE1D_DESC( const D3D11_TEXTURE1D_DESC& o ) :
2378        D3D11_TEXTURE1D_DESC( o )
2379    {}
2380    explicit CD3D11_TEXTURE1D_DESC(
2381        DXGI_FORMAT format,
2382        UINT width,
2383        UINT arraySize = 1,
2384        UINT mipLevels = 0,
2385        UINT bindFlags = D3D11_BIND_SHADER_RESOURCE,
2386        D3D11_USAGE usage = D3D11_USAGE_DEFAULT,
2387        UINT cpuaccessFlags= 0,
2388        UINT miscFlags = 0 )
2389    {
2390        Width = width;
2391        MipLevels = mipLevels;
2392        ArraySize = arraySize;
2393        Format = format;
2394        Usage = usage;
2395        BindFlags = bindFlags;
2396        CPUAccessFlags = cpuaccessFlags;
2397        MiscFlags = miscFlags;
2398    }
2399    ~CD3D11_TEXTURE1D_DESC() {}
2400    operator const D3D11_TEXTURE1D_DESC&() const { return *this; }
2401};
2402extern "C"{
2403#endif
2404
2405
2406extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0006_v0_0_c_ifspec;
2407extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0006_v0_0_s_ifspec;
2408
2409#ifndef __ID3D11Texture1D_INTERFACE_DEFINED__
2410#define __ID3D11Texture1D_INTERFACE_DEFINED__
2411
2412/* interface ID3D11Texture1D */
2413/* [unique][local][object][uuid] */
2414
2415
2416EXTERN_C const IID IID_ID3D11Texture1D;
2417
2418#if defined(__cplusplus) && !defined(CINTERFACE)
2419   
2420    MIDL_INTERFACE("f8fb5c27-c6b3-4f75-a4c8-439af2ef564c")
2421    ID3D11Texture1D : public ID3D11Resource
2422    {
2423    public:
2424        virtual void STDMETHODCALLTYPE GetDesc(
2425            /* [annotation] */
2426            __out  D3D11_TEXTURE1D_DESC *pDesc) = 0;
2427       
2428    };
2429   
2430#else    /* C style interface */
2431
2432    typedef struct ID3D11Texture1DVtbl
2433    {
2434        BEGIN_INTERFACE
2435       
2436        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2437            ID3D11Texture1D * This,
2438            /* [in] */ REFIID riid,
2439            /* [annotation][iid_is][out] */
2440            __RPC__deref_out  void **ppvObject);
2441       
2442        ULONG ( STDMETHODCALLTYPE *AddRef )(
2443            ID3D11Texture1D * This);
2444       
2445        ULONG ( STDMETHODCALLTYPE *Release )(
2446            ID3D11Texture1D * This);
2447       
2448        void ( STDMETHODCALLTYPE *GetDevice )(
2449            ID3D11Texture1D * This,
2450            /* [annotation] */
2451            __out  ID3D11Device **ppDevice);
2452       
2453        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2454            ID3D11Texture1D * This,
2455            /* [annotation] */
2456            __in  REFGUID guid,
2457            /* [annotation] */
2458            __inout  UINT *pDataSize,
2459            /* [annotation] */
2460            __out_bcount_opt( *pDataSize )  void *pData);
2461       
2462        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2463            ID3D11Texture1D * This,
2464            /* [annotation] */
2465            __in  REFGUID guid,
2466            /* [annotation] */
2467            __in  UINT DataSize,
2468            /* [annotation] */
2469            __in_bcount_opt( DataSize )  const void *pData);
2470       
2471        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2472            ID3D11Texture1D * This,
2473            /* [annotation] */
2474            __in  REFGUID guid,
2475            /* [annotation] */
2476            __in_opt  const IUnknown *pData);
2477       
2478        void ( STDMETHODCALLTYPE *GetType )(
2479            ID3D11Texture1D * This,
2480            /* [annotation] */
2481            __out  D3D11_RESOURCE_DIMENSION *pResourceDimension);
2482       
2483        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
2484            ID3D11Texture1D * This,
2485            /* [annotation] */
2486            __in  UINT EvictionPriority);
2487       
2488        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
2489            ID3D11Texture1D * This);
2490       
2491        void ( STDMETHODCALLTYPE *GetDesc )(
2492            ID3D11Texture1D * This,
2493            /* [annotation] */
2494            __out  D3D11_TEXTURE1D_DESC *pDesc);
2495       
2496        END_INTERFACE
2497    } ID3D11Texture1DVtbl;
2498
2499    interface ID3D11Texture1D
2500    {
2501        CONST_VTBL struct ID3D11Texture1DVtbl *lpVtbl;
2502    };
2503
2504   
2505
2506#ifdef COBJMACROS
2507
2508
2509#define ID3D11Texture1D_QueryInterface(This,riid,ppvObject)   \
2510    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2511
2512#define ID3D11Texture1D_AddRef(This)   \
2513    ( (This)->lpVtbl -> AddRef(This) )
2514
2515#define ID3D11Texture1D_Release(This)   \
2516    ( (This)->lpVtbl -> Release(This) )
2517
2518
2519#define ID3D11Texture1D_GetDevice(This,ppDevice)   \
2520    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2521
2522#define ID3D11Texture1D_GetPrivateData(This,guid,pDataSize,pData)   \
2523    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2524
2525#define ID3D11Texture1D_SetPrivateData(This,guid,DataSize,pData)   \
2526    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2527
2528#define ID3D11Texture1D_SetPrivateDataInterface(This,guid,pData)   \
2529    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2530
2531
2532#define ID3D11Texture1D_GetType(This,pResourceDimension)   \
2533    ( (This)->lpVtbl -> GetType(This,pResourceDimension) )
2534
2535#define ID3D11Texture1D_SetEvictionPriority(This,EvictionPriority)   \
2536    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2537
2538#define ID3D11Texture1D_GetEvictionPriority(This)   \
2539    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2540
2541
2542#define ID3D11Texture1D_GetDesc(This,pDesc)   \
2543    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2544
2545#endif /* COBJMACROS */
2546
2547
2548#endif    /* C style interface */
2549
2550
2551
2552
2553#endif    /* __ID3D11Texture1D_INTERFACE_DEFINED__ */
2554
2555
2556/* interface __MIDL_itf_d3d11_0000_0007 */
2557/* [local] */
2558
2559typedef struct D3D11_TEXTURE2D_DESC
2560    {
2561    UINT Width;
2562    UINT Height;
2563    UINT MipLevels;
2564    UINT ArraySize;
2565    DXGI_FORMAT Format;
2566    DXGI_SAMPLE_DESC SampleDesc;
2567    D3D11_USAGE Usage;
2568    UINT BindFlags;
2569    UINT CPUAccessFlags;
2570    UINT MiscFlags;
2571    }    D3D11_TEXTURE2D_DESC;
2572
2573#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
2574}
2575struct CD3D11_TEXTURE2D_DESC : public D3D11_TEXTURE2D_DESC
2576{
2577    CD3D11_TEXTURE2D_DESC()
2578    {}
2579    explicit CD3D11_TEXTURE2D_DESC( const D3D11_TEXTURE2D_DESC& o ) :
2580        D3D11_TEXTURE2D_DESC( o )
2581    {}
2582    explicit CD3D11_TEXTURE2D_DESC(
2583        DXGI_FORMAT format,
2584        UINT width,
2585        UINT height,
2586        UINT arraySize = 1,
2587        UINT mipLevels = 0,
2588        UINT bindFlags = D3D11_BIND_SHADER_RESOURCE,
2589        D3D11_USAGE usage = D3D11_USAGE_DEFAULT,
2590        UINT cpuaccessFlags = 0,
2591        UINT sampleCount = 1,
2592        UINT sampleQuality = 0,
2593        UINT miscFlags = 0 )
2594    {
2595        Width = width;
2596        Height = height;
2597        MipLevels = mipLevels;
2598        ArraySize = arraySize;
2599        Format = format;
2600        SampleDesc.Count = sampleCount;
2601        SampleDesc.Quality = sampleQuality;
2602        Usage = usage;
2603        BindFlags = bindFlags;
2604        CPUAccessFlags = cpuaccessFlags;
2605        MiscFlags = miscFlags;
2606    }
2607    ~CD3D11_TEXTURE2D_DESC() {}
2608    operator const D3D11_TEXTURE2D_DESC&() const { return *this; }
2609};
2610extern "C"{
2611#endif
2612
2613
2614extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0007_v0_0_c_ifspec;
2615extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0007_v0_0_s_ifspec;
2616
2617#ifndef __ID3D11Texture2D_INTERFACE_DEFINED__
2618#define __ID3D11Texture2D_INTERFACE_DEFINED__
2619
2620/* interface ID3D11Texture2D */
2621/* [unique][local][object][uuid] */
2622
2623
2624EXTERN_C const IID IID_ID3D11Texture2D;
2625
2626#if defined(__cplusplus) && !defined(CINTERFACE)
2627   
2628    MIDL_INTERFACE("6f15aaf2-d208-4e89-9ab4-489535d34f9c")
2629    ID3D11Texture2D : public ID3D11Resource
2630    {
2631    public:
2632        virtual void STDMETHODCALLTYPE GetDesc(
2633            /* [annotation] */
2634            __out  D3D11_TEXTURE2D_DESC *pDesc) = 0;
2635       
2636    };
2637   
2638#else    /* C style interface */
2639
2640    typedef struct ID3D11Texture2DVtbl
2641    {
2642        BEGIN_INTERFACE
2643       
2644        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2645            ID3D11Texture2D * This,
2646            /* [in] */ REFIID riid,
2647            /* [annotation][iid_is][out] */
2648            __RPC__deref_out  void **ppvObject);
2649       
2650        ULONG ( STDMETHODCALLTYPE *AddRef )(
2651            ID3D11Texture2D * This);
2652       
2653        ULONG ( STDMETHODCALLTYPE *Release )(
2654            ID3D11Texture2D * This);
2655       
2656        void ( STDMETHODCALLTYPE *GetDevice )(
2657            ID3D11Texture2D * This,
2658            /* [annotation] */
2659            __out  ID3D11Device **ppDevice);
2660       
2661        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2662            ID3D11Texture2D * This,
2663            /* [annotation] */
2664            __in  REFGUID guid,
2665            /* [annotation] */
2666            __inout  UINT *pDataSize,
2667            /* [annotation] */
2668            __out_bcount_opt( *pDataSize )  void *pData);
2669       
2670        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2671            ID3D11Texture2D * This,
2672            /* [annotation] */
2673            __in  REFGUID guid,
2674            /* [annotation] */
2675            __in  UINT DataSize,
2676            /* [annotation] */
2677            __in_bcount_opt( DataSize )  const void *pData);
2678       
2679        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2680            ID3D11Texture2D * This,
2681            /* [annotation] */
2682            __in  REFGUID guid,
2683            /* [annotation] */
2684            __in_opt  const IUnknown *pData);
2685       
2686        void ( STDMETHODCALLTYPE *GetType )(
2687            ID3D11Texture2D * This,
2688            /* [annotation] */
2689            __out  D3D11_RESOURCE_DIMENSION *pResourceDimension);
2690       
2691        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
2692            ID3D11Texture2D * This,
2693            /* [annotation] */
2694            __in  UINT EvictionPriority);
2695       
2696        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
2697            ID3D11Texture2D * This);
2698       
2699        void ( STDMETHODCALLTYPE *GetDesc )(
2700            ID3D11Texture2D * This,
2701            /* [annotation] */
2702            __out  D3D11_TEXTURE2D_DESC *pDesc);
2703       
2704        END_INTERFACE
2705    } ID3D11Texture2DVtbl;
2706
2707    interface ID3D11Texture2D
2708    {
2709        CONST_VTBL struct ID3D11Texture2DVtbl *lpVtbl;
2710    };
2711
2712   
2713
2714#ifdef COBJMACROS
2715
2716
2717#define ID3D11Texture2D_QueryInterface(This,riid,ppvObject)   \
2718    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2719
2720#define ID3D11Texture2D_AddRef(This)   \
2721    ( (This)->lpVtbl -> AddRef(This) )
2722
2723#define ID3D11Texture2D_Release(This)   \
2724    ( (This)->lpVtbl -> Release(This) )
2725
2726
2727#define ID3D11Texture2D_GetDevice(This,ppDevice)   \
2728    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2729
2730#define ID3D11Texture2D_GetPrivateData(This,guid,pDataSize,pData)   \
2731    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2732
2733#define ID3D11Texture2D_SetPrivateData(This,guid,DataSize,pData)   \
2734    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2735
2736#define ID3D11Texture2D_SetPrivateDataInterface(This,guid,pData)   \
2737    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2738
2739
2740#define ID3D11Texture2D_GetType(This,pResourceDimension)   \
2741    ( (This)->lpVtbl -> GetType(This,pResourceDimension) )
2742
2743#define ID3D11Texture2D_SetEvictionPriority(This,EvictionPriority)   \
2744    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2745
2746#define ID3D11Texture2D_GetEvictionPriority(This)   \
2747    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2748
2749
2750#define ID3D11Texture2D_GetDesc(This,pDesc)   \
2751    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2752
2753#endif /* COBJMACROS */
2754
2755
2756#endif    /* C style interface */
2757
2758
2759
2760
2761#endif    /* __ID3D11Texture2D_INTERFACE_DEFINED__ */
2762
2763
2764/* interface __MIDL_itf_d3d11_0000_0008 */
2765/* [local] */
2766
2767typedef struct D3D11_TEXTURE3D_DESC
2768    {
2769    UINT Width;
2770    UINT Height;
2771    UINT Depth;
2772    UINT MipLevels;
2773    DXGI_FORMAT Format;
2774    D3D11_USAGE Usage;
2775    UINT BindFlags;
2776    UINT CPUAccessFlags;
2777    UINT MiscFlags;
2778    }    D3D11_TEXTURE3D_DESC;
2779
2780#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
2781}
2782struct CD3D11_TEXTURE3D_DESC : public D3D11_TEXTURE3D_DESC
2783{
2784    CD3D11_TEXTURE3D_DESC()
2785    {}
2786    explicit CD3D11_TEXTURE3D_DESC( const D3D11_TEXTURE3D_DESC& o ) :
2787        D3D11_TEXTURE3D_DESC( o )
2788    {}
2789    explicit CD3D11_TEXTURE3D_DESC(
2790        DXGI_FORMAT format,
2791        UINT width,
2792        UINT height,
2793        UINT depth,
2794        UINT mipLevels = 0,
2795        UINT bindFlags = D3D11_BIND_SHADER_RESOURCE,
2796        D3D11_USAGE usage = D3D11_USAGE_DEFAULT,
2797        UINT cpuaccessFlags = 0,
2798        UINT miscFlags = 0 )
2799    {
2800        Width = width;
2801        Height = height;
2802        Depth = depth;
2803        MipLevels = mipLevels;
2804        Format = format;
2805        Usage = usage;
2806        BindFlags = bindFlags;
2807        CPUAccessFlags = cpuaccessFlags;
2808        MiscFlags = miscFlags;
2809    }
2810    ~CD3D11_TEXTURE3D_DESC() {}
2811    operator const D3D11_TEXTURE3D_DESC&() const { return *this; }
2812};
2813extern "C"{
2814#endif
2815
2816
2817extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0008_v0_0_c_ifspec;
2818extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0008_v0_0_s_ifspec;
2819
2820#ifndef __ID3D11Texture3D_INTERFACE_DEFINED__
2821#define __ID3D11Texture3D_INTERFACE_DEFINED__
2822
2823/* interface ID3D11Texture3D */
2824/* [unique][local][object][uuid] */
2825
2826
2827EXTERN_C const IID IID_ID3D11Texture3D;
2828
2829#if defined(__cplusplus) && !defined(CINTERFACE)
2830   
2831    MIDL_INTERFACE("037e866e-f56d-4357-a8af-9dabbe6e250e")
2832    ID3D11Texture3D : public ID3D11Resource
2833    {
2834    public:
2835        virtual void STDMETHODCALLTYPE GetDesc(
2836            /* [annotation] */
2837            __out  D3D11_TEXTURE3D_DESC *pDesc) = 0;
2838       
2839    };
2840   
2841#else    /* C style interface */
2842
2843    typedef struct ID3D11Texture3DVtbl
2844    {
2845        BEGIN_INTERFACE
2846       
2847        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2848            ID3D11Texture3D * This,
2849            /* [in] */ REFIID riid,
2850            /* [annotation][iid_is][out] */
2851            __RPC__deref_out  void **ppvObject);
2852       
2853        ULONG ( STDMETHODCALLTYPE *AddRef )(
2854            ID3D11Texture3D * This);
2855       
2856        ULONG ( STDMETHODCALLTYPE *Release )(
2857            ID3D11Texture3D * This);
2858       
2859        void ( STDMETHODCALLTYPE *GetDevice )(
2860            ID3D11Texture3D * This,
2861            /* [annotation] */
2862            __out  ID3D11Device **ppDevice);
2863       
2864        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2865            ID3D11Texture3D * This,
2866            /* [annotation] */
2867            __in  REFGUID guid,
2868            /* [annotation] */
2869            __inout  UINT *pDataSize,
2870            /* [annotation] */
2871            __out_bcount_opt( *pDataSize )  void *pData);
2872       
2873        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2874            ID3D11Texture3D * This,
2875            /* [annotation] */
2876            __in  REFGUID guid,
2877            /* [annotation] */
2878            __in  UINT DataSize,
2879            /* [annotation] */
2880            __in_bcount_opt( DataSize )  const void *pData);
2881       
2882        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2883            ID3D11Texture3D * This,
2884            /* [annotation] */
2885            __in  REFGUID guid,
2886            /* [annotation] */
2887            __in_opt  const IUnknown *pData);
2888       
2889        void ( STDMETHODCALLTYPE *GetType )(
2890            ID3D11Texture3D * This,
2891            /* [annotation] */
2892            __out  D3D11_RESOURCE_DIMENSION *pResourceDimension);
2893       
2894        void ( STDMETHODCALLTYPE *SetEvictionPriority )(
2895            ID3D11Texture3D * This,
2896            /* [annotation] */
2897            __in  UINT EvictionPriority);
2898       
2899        UINT ( STDMETHODCALLTYPE *GetEvictionPriority )(
2900            ID3D11Texture3D * This);
2901       
2902        void ( STDMETHODCALLTYPE *GetDesc )(
2903            ID3D11Texture3D * This,
2904            /* [annotation] */
2905            __out  D3D11_TEXTURE3D_DESC *pDesc);
2906       
2907        END_INTERFACE
2908    } ID3D11Texture3DVtbl;
2909
2910    interface ID3D11Texture3D
2911    {
2912        CONST_VTBL struct ID3D11Texture3DVtbl *lpVtbl;
2913    };
2914
2915   
2916
2917#ifdef COBJMACROS
2918
2919
2920#define ID3D11Texture3D_QueryInterface(This,riid,ppvObject)   \
2921    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2922
2923#define ID3D11Texture3D_AddRef(This)   \
2924    ( (This)->lpVtbl -> AddRef(This) )
2925
2926#define ID3D11Texture3D_Release(This)   \
2927    ( (This)->lpVtbl -> Release(This) )
2928
2929
2930#define ID3D11Texture3D_GetDevice(This,ppDevice)   \
2931    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
2932
2933#define ID3D11Texture3D_GetPrivateData(This,guid,pDataSize,pData)   \
2934    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2935
2936#define ID3D11Texture3D_SetPrivateData(This,guid,DataSize,pData)   \
2937    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2938
2939#define ID3D11Texture3D_SetPrivateDataInterface(This,guid,pData)   \
2940    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2941
2942
2943#define ID3D11Texture3D_GetType(This,pResourceDimension)   \
2944    ( (This)->lpVtbl -> GetType(This,pResourceDimension) )
2945
2946#define ID3D11Texture3D_SetEvictionPriority(This,EvictionPriority)   \
2947    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
2948
2949#define ID3D11Texture3D_GetEvictionPriority(This)   \
2950    ( (This)->lpVtbl -> GetEvictionPriority(This) )
2951
2952
2953#define ID3D11Texture3D_GetDesc(This,pDesc)   \
2954    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2955
2956#endif /* COBJMACROS */
2957
2958
2959#endif    /* C style interface */
2960
2961
2962
2963
2964#endif    /* __ID3D11Texture3D_INTERFACE_DEFINED__ */
2965
2966
2967/* interface __MIDL_itf_d3d11_0000_0009 */
2968/* [local] */
2969
2970typedef
2971enum D3D11_TEXTURECUBE_FACE
2972    {   D3D11_TEXTURECUBE_FACE_POSITIVE_X   = 0,
2973   D3D11_TEXTURECUBE_FACE_NEGATIVE_X   = 1,
2974   D3D11_TEXTURECUBE_FACE_POSITIVE_Y   = 2,
2975   D3D11_TEXTURECUBE_FACE_NEGATIVE_Y   = 3,
2976   D3D11_TEXTURECUBE_FACE_POSITIVE_Z   = 4,
2977   D3D11_TEXTURECUBE_FACE_NEGATIVE_Z   = 5
2978    }    D3D11_TEXTURECUBE_FACE;
2979
2980
2981
2982extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0009_v0_0_c_ifspec;
2983extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0009_v0_0_s_ifspec;
2984
2985#ifndef __ID3D11View_INTERFACE_DEFINED__
2986#define __ID3D11View_INTERFACE_DEFINED__
2987
2988/* interface ID3D11View */
2989/* [unique][local][object][uuid] */
2990
2991
2992EXTERN_C const IID IID_ID3D11View;
2993
2994#if defined(__cplusplus) && !defined(CINTERFACE)
2995   
2996    MIDL_INTERFACE("839d1216-bb2e-412b-b7f4-a9dbebe08ed1")
2997    ID3D11View : public ID3D11DeviceChild
2998    {
2999    public:
3000        virtual void STDMETHODCALLTYPE GetResource(
3001            /* [annotation] */
3002            __out  ID3D11Resource **ppResource) = 0;
3003       
3004    };
3005   
3006#else    /* C style interface */
3007
3008    typedef struct ID3D11ViewVtbl
3009    {
3010        BEGIN_INTERFACE
3011       
3012        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3013            ID3D11View * This,
3014            /* [in] */ REFIID riid,
3015            /* [annotation][iid_is][out] */
3016            __RPC__deref_out  void **ppvObject);
3017       
3018        ULONG ( STDMETHODCALLTYPE *AddRef )(
3019            ID3D11View * This);
3020       
3021        ULONG ( STDMETHODCALLTYPE *Release )(
3022            ID3D11View * This);
3023       
3024        void ( STDMETHODCALLTYPE *GetDevice )(
3025            ID3D11View * This,
3026            /* [annotation] */
3027            __out  ID3D11Device **ppDevice);
3028       
3029        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3030            ID3D11View * This,
3031            /* [annotation] */
3032            __in  REFGUID guid,
3033            /* [annotation] */
3034            __inout  UINT *pDataSize,
3035            /* [annotation] */
3036            __out_bcount_opt( *pDataSize )  void *pData);
3037       
3038        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3039            ID3D11View * This,
3040            /* [annotation] */
3041            __in  REFGUID guid,
3042            /* [annotation] */
3043            __in  UINT DataSize,
3044            /* [annotation] */
3045            __in_bcount_opt( DataSize )  const void *pData);
3046       
3047        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3048            ID3D11View * This,
3049            /* [annotation] */
3050            __in  REFGUID guid,
3051            /* [annotation] */
3052            __in_opt  const IUnknown *pData);
3053       
3054        void ( STDMETHODCALLTYPE *GetResource )(
3055            ID3D11View * This,
3056            /* [annotation] */
3057            __out  ID3D11Resource **ppResource);
3058       
3059        END_INTERFACE
3060    } ID3D11ViewVtbl;
3061
3062    interface ID3D11View
3063    {
3064        CONST_VTBL struct ID3D11ViewVtbl *lpVtbl;
3065    };
3066
3067   
3068
3069#ifdef COBJMACROS
3070
3071
3072#define ID3D11View_QueryInterface(This,riid,ppvObject)   \
3073    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3074
3075#define ID3D11View_AddRef(This)   \
3076    ( (This)->lpVtbl -> AddRef(This) )
3077
3078#define ID3D11View_Release(This)   \
3079    ( (This)->lpVtbl -> Release(This) )
3080
3081
3082#define ID3D11View_GetDevice(This,ppDevice)   \
3083    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3084
3085#define ID3D11View_GetPrivateData(This,guid,pDataSize,pData)   \
3086    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3087
3088#define ID3D11View_SetPrivateData(This,guid,DataSize,pData)   \
3089    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3090
3091#define ID3D11View_SetPrivateDataInterface(This,guid,pData)   \
3092    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3093
3094
3095#define ID3D11View_GetResource(This,ppResource)   \
3096    ( (This)->lpVtbl -> GetResource(This,ppResource) )
3097
3098#endif /* COBJMACROS */
3099
3100
3101#endif    /* C style interface */
3102
3103
3104
3105
3106#endif    /* __ID3D11View_INTERFACE_DEFINED__ */
3107
3108
3109/* interface __MIDL_itf_d3d11_0000_0010 */
3110/* [local] */
3111
3112typedef struct D3D11_BUFFER_SRV
3113    {
3114    union
3115        {
3116        UINT FirstElement;
3117        UINT ElementOffset;
3118        }    ;
3119    union
3120        {
3121        UINT NumElements;
3122        UINT ElementWidth;
3123        }    ;
3124    }    D3D11_BUFFER_SRV;
3125
3126typedef
3127enum D3D11_BUFFEREX_SRV_FLAG
3128    {   D3D11_BUFFEREX_SRV_FLAG_RAW   = 0x1
3129    }    D3D11_BUFFEREX_SRV_FLAG;
3130
3131typedef struct D3D11_BUFFEREX_SRV
3132    {
3133    UINT FirstElement;
3134    UINT NumElements;
3135    UINT Flags;
3136    }    D3D11_BUFFEREX_SRV;
3137
3138typedef struct D3D11_TEX1D_SRV
3139    {
3140    UINT MostDetailedMip;
3141    UINT MipLevels;
3142    }    D3D11_TEX1D_SRV;
3143
3144typedef struct D3D11_TEX1D_ARRAY_SRV
3145    {
3146    UINT MostDetailedMip;
3147    UINT MipLevels;
3148    UINT FirstArraySlice;
3149    UINT ArraySize;
3150    }    D3D11_TEX1D_ARRAY_SRV;
3151
3152typedef struct D3D11_TEX2D_SRV
3153    {
3154    UINT MostDetailedMip;
3155    UINT MipLevels;
3156    }    D3D11_TEX2D_SRV;
3157
3158typedef struct D3D11_TEX2D_ARRAY_SRV
3159    {
3160    UINT MostDetailedMip;
3161    UINT MipLevels;
3162    UINT FirstArraySlice;
3163    UINT ArraySize;
3164    }    D3D11_TEX2D_ARRAY_SRV;
3165
3166typedef struct D3D11_TEX3D_SRV
3167    {
3168    UINT MostDetailedMip;
3169    UINT MipLevels;
3170    }    D3D11_TEX3D_SRV;
3171
3172typedef struct D3D11_TEXCUBE_SRV
3173    {
3174    UINT MostDetailedMip;
3175    UINT MipLevels;
3176    }    D3D11_TEXCUBE_SRV;
3177
3178typedef struct D3D11_TEXCUBE_ARRAY_SRV
3179    {
3180    UINT MostDetailedMip;
3181    UINT MipLevels;
3182    UINT First2DArrayFace;
3183    UINT NumCubes;
3184    }    D3D11_TEXCUBE_ARRAY_SRV;
3185
3186typedef struct D3D11_TEX2DMS_SRV
3187    {
3188    UINT UnusedField_NothingToDefine;
3189    }    D3D11_TEX2DMS_SRV;
3190
3191typedef struct D3D11_TEX2DMS_ARRAY_SRV
3192    {
3193    UINT FirstArraySlice;
3194    UINT ArraySize;
3195    }    D3D11_TEX2DMS_ARRAY_SRV;
3196
3197typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC
3198    {
3199    DXGI_FORMAT Format;
3200    D3D11_SRV_DIMENSION ViewDimension;
3201    union
3202        {
3203        D3D11_BUFFER_SRV Buffer;
3204        D3D11_TEX1D_SRV Texture1D;
3205        D3D11_TEX1D_ARRAY_SRV Texture1DArray;
3206        D3D11_TEX2D_SRV Texture2D;
3207        D3D11_TEX2D_ARRAY_SRV Texture2DArray;
3208        D3D11_TEX2DMS_SRV Texture2DMS;
3209        D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray;
3210        D3D11_TEX3D_SRV Texture3D;
3211        D3D11_TEXCUBE_SRV TextureCube;
3212        D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray;
3213        D3D11_BUFFEREX_SRV BufferEx;
3214        }    ;
3215    }    D3D11_SHADER_RESOURCE_VIEW_DESC;
3216
3217#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
3218}
3219struct CD3D11_SHADER_RESOURCE_VIEW_DESC : public D3D11_SHADER_RESOURCE_VIEW_DESC
3220{
3221    CD3D11_SHADER_RESOURCE_VIEW_DESC()
3222    {}
3223    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( const D3D11_SHADER_RESOURCE_VIEW_DESC& o ) :
3224        D3D11_SHADER_RESOURCE_VIEW_DESC( o )
3225    {}
3226    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(
3227        D3D11_SRV_DIMENSION viewDimension,
3228        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3229        UINT mostDetailedMip = 0, // FirstElement for BUFFER
3230        UINT mipLevels = -1, // NumElements for BUFFER
3231        UINT firstArraySlice = 0, // First2DArrayFace for TEXTURECUBEARRAY
3232        UINT arraySize = -1, // NumCubes for TEXTURECUBEARRAY
3233        UINT flags = 0 ) // BUFFEREX only
3234    {
3235        Format = format;
3236        ViewDimension = viewDimension;
3237        switch (viewDimension)
3238        {
3239        case D3D11_SRV_DIMENSION_BUFFER:
3240            Buffer.FirstElement = mostDetailedMip;
3241            Buffer.NumElements = mipLevels;
3242            break;
3243        case D3D11_SRV_DIMENSION_TEXTURE1D:
3244            Texture1D.MostDetailedMip = mostDetailedMip;
3245            Texture1D.MipLevels = mipLevels;
3246            break;
3247        case D3D11_SRV_DIMENSION_TEXTURE1DARRAY:
3248            Texture1DArray.MostDetailedMip = mostDetailedMip;
3249            Texture1DArray.MipLevels = mipLevels;
3250            Texture1DArray.FirstArraySlice = firstArraySlice;
3251            Texture1DArray.ArraySize = arraySize;
3252            break;
3253        case D3D11_SRV_DIMENSION_TEXTURE2D:
3254            Texture2D.MostDetailedMip = mostDetailedMip;
3255            Texture2D.MipLevels = mipLevels;
3256            break;
3257        case D3D11_SRV_DIMENSION_TEXTURE2DARRAY:
3258            Texture2DArray.MostDetailedMip = mostDetailedMip;
3259            Texture2DArray.MipLevels = mipLevels;
3260            Texture2DArray.FirstArraySlice = firstArraySlice;
3261            Texture2DArray.ArraySize = arraySize;
3262            break;
3263        case D3D11_SRV_DIMENSION_TEXTURE2DMS:
3264            break;
3265        case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY:
3266            Texture2DMSArray.FirstArraySlice = firstArraySlice;
3267            Texture2DMSArray.ArraySize = arraySize;
3268            break;
3269        case D3D11_SRV_DIMENSION_TEXTURE3D:
3270            Texture3D.MostDetailedMip = mostDetailedMip;
3271            Texture3D.MipLevels = mipLevels;
3272            break;
3273        case D3D11_SRV_DIMENSION_TEXTURECUBE:
3274            TextureCube.MostDetailedMip = mostDetailedMip;
3275            TextureCube.MipLevels = mipLevels;
3276            break;
3277        case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY:
3278            TextureCubeArray.MostDetailedMip = mostDetailedMip;
3279            TextureCubeArray.MipLevels = mipLevels;
3280            TextureCubeArray.First2DArrayFace = firstArraySlice;
3281            TextureCubeArray.NumCubes = arraySize;
3282            break;
3283        case D3D11_SRV_DIMENSION_BUFFEREX:
3284            BufferEx.FirstElement = mostDetailedMip;
3285            BufferEx.NumElements = mipLevels;
3286            BufferEx.Flags = flags;
3287            break;
3288        default: break;
3289        }
3290    }
3291    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(
3292        __in ID3D11Buffer*,
3293        DXGI_FORMAT format,
3294        UINT firstElement,
3295        UINT numElements,
3296        UINT flags = 0 )
3297    {
3298        Format = format;
3299        ViewDimension = D3D11_SRV_DIMENSION_BUFFEREX;
3300        BufferEx.FirstElement = firstElement;
3301        BufferEx.NumElements = numElements;
3302        BufferEx.Flags = flags;
3303    }
3304    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(
3305        __in ID3D11Texture1D* pTex1D,
3306        D3D11_SRV_DIMENSION viewDimension,
3307        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3308        UINT mostDetailedMip = 0,
3309        UINT mipLevels = -1,
3310        UINT firstArraySlice = 0,
3311        UINT arraySize = -1 )
3312    {
3313        ViewDimension = viewDimension;
3314        if (DXGI_FORMAT_UNKNOWN == format || -1 == mipLevels ||
3315            (-1 == arraySize && D3D11_SRV_DIMENSION_TEXTURE1DARRAY == viewDimension))
3316        {
3317            D3D11_TEXTURE1D_DESC TexDesc;
3318            pTex1D->GetDesc( &TexDesc );
3319            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
3320            if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip;
3321            if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice;
3322        }
3323        Format = format;
3324        switch (viewDimension)
3325        {
3326        case D3D11_SRV_DIMENSION_TEXTURE1D:
3327            Texture1D.MostDetailedMip = mostDetailedMip;
3328            Texture1D.MipLevels = mipLevels;
3329            break;
3330        case D3D11_SRV_DIMENSION_TEXTURE1DARRAY:
3331            Texture1DArray.MostDetailedMip = mostDetailedMip;
3332            Texture1DArray.MipLevels = mipLevels;
3333            Texture1DArray.FirstArraySlice = firstArraySlice;
3334            Texture1DArray.ArraySize = arraySize;
3335            break;
3336        default: break;
3337        }
3338    }
3339    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(
3340        __in ID3D11Texture2D* pTex2D,
3341        D3D11_SRV_DIMENSION viewDimension,
3342        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3343        UINT mostDetailedMip = 0,
3344        UINT mipLevels = -1,
3345        UINT firstArraySlice = 0, // First2DArrayFace for TEXTURECUBEARRAY
3346        UINT arraySize = -1 ) // NumCubes for TEXTURECUBEARRAY
3347    {
3348        ViewDimension = viewDimension;
3349        if (DXGI_FORMAT_UNKNOWN == format ||
3350            (-1 == mipLevels &&
3351                D3D11_SRV_DIMENSION_TEXTURE2DMS != viewDimension &&
3352                D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY != viewDimension) ||
3353            (-1 == arraySize &&
3354                (D3D11_SRV_DIMENSION_TEXTURE2DARRAY == viewDimension ||
3355                D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY == viewDimension ||
3356                D3D11_SRV_DIMENSION_TEXTURECUBEARRAY == viewDimension)))
3357        {
3358            D3D11_TEXTURE2D_DESC TexDesc;
3359            pTex2D->GetDesc( &TexDesc );
3360            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
3361            if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip;
3362            if (-1 == arraySize)
3363            {
3364                arraySize = TexDesc.ArraySize - firstArraySlice;
3365                if (D3D11_SRV_DIMENSION_TEXTURECUBEARRAY == viewDimension) arraySize /= 6;
3366            }
3367        }
3368        Format = format;
3369        switch (viewDimension)
3370        {
3371        case D3D11_SRV_DIMENSION_TEXTURE2D:
3372            Texture2D.MostDetailedMip = mostDetailedMip;
3373            Texture2D.MipLevels = mipLevels;
3374            break;
3375        case D3D11_SRV_DIMENSION_TEXTURE2DARRAY:
3376            Texture2DArray.MostDetailedMip = mostDetailedMip;
3377            Texture2DArray.MipLevels = mipLevels;
3378            Texture2DArray.FirstArraySlice = firstArraySlice;
3379            Texture2DArray.ArraySize = arraySize;
3380            break;
3381        case D3D11_SRV_DIMENSION_TEXTURE2DMS:
3382            break;
3383        case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY:
3384            Texture2DMSArray.FirstArraySlice = firstArraySlice;
3385            Texture2DMSArray.ArraySize = arraySize;
3386            break;
3387        case D3D11_SRV_DIMENSION_TEXTURECUBE:
3388            TextureCube.MostDetailedMip = mostDetailedMip;
3389            TextureCube.MipLevels = mipLevels;
3390            break;
3391        case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY:
3392            TextureCubeArray.MostDetailedMip = mostDetailedMip;
3393            TextureCubeArray.MipLevels = mipLevels;
3394            TextureCubeArray.First2DArrayFace = firstArraySlice;
3395            TextureCubeArray.NumCubes = arraySize;
3396            break;
3397        default: break;
3398        }
3399    }
3400    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(
3401        __in ID3D11Texture3D* pTex3D,
3402        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3403        UINT mostDetailedMip = 0,
3404        UINT mipLevels = -1 )
3405    {
3406        ViewDimension = D3D11_SRV_DIMENSION_TEXTURE3D;
3407        if (DXGI_FORMAT_UNKNOWN == format || -1 == mipLevels)
3408        {
3409            D3D11_TEXTURE3D_DESC TexDesc;
3410            pTex3D->GetDesc( &TexDesc );
3411            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
3412            if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip;
3413        }
3414        Format = format;
3415        Texture3D.MostDetailedMip = mostDetailedMip;
3416        Texture3D.MipLevels = mipLevels;
3417    }
3418    ~CD3D11_SHADER_RESOURCE_VIEW_DESC() {}
3419    operator const D3D11_SHADER_RESOURCE_VIEW_DESC&() const { return *this; }
3420};
3421extern "C"{
3422#endif
3423
3424
3425extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0010_v0_0_c_ifspec;
3426extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0010_v0_0_s_ifspec;
3427
3428#ifndef __ID3D11ShaderResourceView_INTERFACE_DEFINED__
3429#define __ID3D11ShaderResourceView_INTERFACE_DEFINED__
3430
3431/* interface ID3D11ShaderResourceView */
3432/* [unique][local][object][uuid] */
3433
3434
3435EXTERN_C const IID IID_ID3D11ShaderResourceView;
3436
3437#if defined(__cplusplus) && !defined(CINTERFACE)
3438   
3439    MIDL_INTERFACE("b0e06fe0-8192-4e1a-b1ca-36d7414710b2")
3440    ID3D11ShaderResourceView : public ID3D11View
3441    {
3442    public:
3443        virtual void STDMETHODCALLTYPE GetDesc(
3444            /* [annotation] */
3445            __out  D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc) = 0;
3446       
3447    };
3448   
3449#else    /* C style interface */
3450
3451    typedef struct ID3D11ShaderResourceViewVtbl
3452    {
3453        BEGIN_INTERFACE
3454       
3455        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3456            ID3D11ShaderResourceView * This,
3457            /* [in] */ REFIID riid,
3458            /* [annotation][iid_is][out] */
3459            __RPC__deref_out  void **ppvObject);
3460       
3461        ULONG ( STDMETHODCALLTYPE *AddRef )(
3462            ID3D11ShaderResourceView * This);
3463       
3464        ULONG ( STDMETHODCALLTYPE *Release )(
3465            ID3D11ShaderResourceView * This);
3466       
3467        void ( STDMETHODCALLTYPE *GetDevice )(
3468            ID3D11ShaderResourceView * This,
3469            /* [annotation] */
3470            __out  ID3D11Device **ppDevice);
3471       
3472        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3473            ID3D11ShaderResourceView * This,
3474            /* [annotation] */
3475            __in  REFGUID guid,
3476            /* [annotation] */
3477            __inout  UINT *pDataSize,
3478            /* [annotation] */
3479            __out_bcount_opt( *pDataSize )  void *pData);
3480       
3481        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3482            ID3D11ShaderResourceView * This,
3483            /* [annotation] */
3484            __in  REFGUID guid,
3485            /* [annotation] */
3486            __in  UINT DataSize,
3487            /* [annotation] */
3488            __in_bcount_opt( DataSize )  const void *pData);
3489       
3490        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3491            ID3D11ShaderResourceView * This,
3492            /* [annotation] */
3493            __in  REFGUID guid,
3494            /* [annotation] */
3495            __in_opt  const IUnknown *pData);
3496       
3497        void ( STDMETHODCALLTYPE *GetResource )(
3498            ID3D11ShaderResourceView * This,
3499            /* [annotation] */
3500            __out  ID3D11Resource **ppResource);
3501       
3502        void ( STDMETHODCALLTYPE *GetDesc )(
3503            ID3D11ShaderResourceView * This,
3504            /* [annotation] */
3505            __out  D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc);
3506       
3507        END_INTERFACE
3508    } ID3D11ShaderResourceViewVtbl;
3509
3510    interface ID3D11ShaderResourceView
3511    {
3512        CONST_VTBL struct ID3D11ShaderResourceViewVtbl *lpVtbl;
3513    };
3514
3515   
3516
3517#ifdef COBJMACROS
3518
3519
3520#define ID3D11ShaderResourceView_QueryInterface(This,riid,ppvObject)   \
3521    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3522
3523#define ID3D11ShaderResourceView_AddRef(This)   \
3524    ( (This)->lpVtbl -> AddRef(This) )
3525
3526#define ID3D11ShaderResourceView_Release(This)   \
3527    ( (This)->lpVtbl -> Release(This) )
3528
3529
3530#define ID3D11ShaderResourceView_GetDevice(This,ppDevice)   \
3531    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3532
3533#define ID3D11ShaderResourceView_GetPrivateData(This,guid,pDataSize,pData)   \
3534    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3535
3536#define ID3D11ShaderResourceView_SetPrivateData(This,guid,DataSize,pData)   \
3537    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3538
3539#define ID3D11ShaderResourceView_SetPrivateDataInterface(This,guid,pData)   \
3540    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3541
3542
3543#define ID3D11ShaderResourceView_GetResource(This,ppResource)   \
3544    ( (This)->lpVtbl -> GetResource(This,ppResource) )
3545
3546
3547#define ID3D11ShaderResourceView_GetDesc(This,pDesc)   \
3548    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
3549
3550#endif /* COBJMACROS */
3551
3552
3553#endif    /* C style interface */
3554
3555
3556
3557
3558#endif    /* __ID3D11ShaderResourceView_INTERFACE_DEFINED__ */
3559
3560
3561/* interface __MIDL_itf_d3d11_0000_0011 */
3562/* [local] */
3563
3564typedef struct D3D11_BUFFER_RTV
3565    {
3566    union
3567        {
3568        UINT FirstElement;
3569        UINT ElementOffset;
3570        }    ;
3571    union
3572        {
3573        UINT NumElements;
3574        UINT ElementWidth;
3575        }    ;
3576    }    D3D11_BUFFER_RTV;
3577
3578typedef struct D3D11_TEX1D_RTV
3579    {
3580    UINT MipSlice;
3581    }    D3D11_TEX1D_RTV;
3582
3583typedef struct D3D11_TEX1D_ARRAY_RTV
3584    {
3585    UINT MipSlice;
3586    UINT FirstArraySlice;
3587    UINT ArraySize;
3588    }    D3D11_TEX1D_ARRAY_RTV;
3589
3590typedef struct D3D11_TEX2D_RTV
3591    {
3592    UINT MipSlice;
3593    }    D3D11_TEX2D_RTV;
3594
3595typedef struct D3D11_TEX2DMS_RTV
3596    {
3597    UINT UnusedField_NothingToDefine;
3598    }    D3D11_TEX2DMS_RTV;
3599
3600typedef struct D3D11_TEX2D_ARRAY_RTV
3601    {
3602    UINT MipSlice;
3603    UINT FirstArraySlice;
3604    UINT ArraySize;
3605    }    D3D11_TEX2D_ARRAY_RTV;
3606
3607typedef struct D3D11_TEX2DMS_ARRAY_RTV
3608    {
3609    UINT FirstArraySlice;
3610    UINT ArraySize;
3611    }    D3D11_TEX2DMS_ARRAY_RTV;
3612
3613typedef struct D3D11_TEX3D_RTV
3614    {
3615    UINT MipSlice;
3616    UINT FirstWSlice;
3617    UINT WSize;
3618    }    D3D11_TEX3D_RTV;
3619
3620typedef struct D3D11_RENDER_TARGET_VIEW_DESC
3621    {
3622    DXGI_FORMAT Format;
3623    D3D11_RTV_DIMENSION ViewDimension;
3624    union
3625        {
3626        D3D11_BUFFER_RTV Buffer;
3627        D3D11_TEX1D_RTV Texture1D;
3628        D3D11_TEX1D_ARRAY_RTV Texture1DArray;
3629        D3D11_TEX2D_RTV Texture2D;
3630        D3D11_TEX2D_ARRAY_RTV Texture2DArray;
3631        D3D11_TEX2DMS_RTV Texture2DMS;
3632        D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray;
3633        D3D11_TEX3D_RTV Texture3D;
3634        }    ;
3635    }    D3D11_RENDER_TARGET_VIEW_DESC;
3636
3637#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
3638}
3639struct CD3D11_RENDER_TARGET_VIEW_DESC : public D3D11_RENDER_TARGET_VIEW_DESC
3640{
3641    CD3D11_RENDER_TARGET_VIEW_DESC()
3642    {}
3643    explicit CD3D11_RENDER_TARGET_VIEW_DESC( const D3D11_RENDER_TARGET_VIEW_DESC& o ) :
3644        D3D11_RENDER_TARGET_VIEW_DESC( o )
3645    {}
3646    explicit CD3D11_RENDER_TARGET_VIEW_DESC(
3647        D3D11_RTV_DIMENSION viewDimension,
3648        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3649        UINT mipSlice = 0, // FirstElement for BUFFER
3650        UINT firstArraySlice = 0, // NumElements for BUFFER, FirstWSlice for TEXTURE3D
3651        UINT arraySize = -1 ) // WSize for TEXTURE3D
3652    {
3653        Format = format;
3654        ViewDimension = viewDimension;
3655        switch (viewDimension)
3656        {
3657        case D3D11_RTV_DIMENSION_BUFFER:
3658            Buffer.FirstElement = mipSlice;
3659            Buffer.NumElements = firstArraySlice;
3660            break;
3661        case D3D11_RTV_DIMENSION_TEXTURE1D:
3662            Texture1D.MipSlice = mipSlice;
3663            break;
3664        case D3D11_RTV_DIMENSION_TEXTURE1DARRAY:
3665            Texture1DArray.MipSlice = mipSlice;
3666            Texture1DArray.FirstArraySlice = firstArraySlice;
3667            Texture1DArray.ArraySize = arraySize;
3668            break;
3669        case D3D11_RTV_DIMENSION_TEXTURE2D:
3670            Texture2D.MipSlice = mipSlice;
3671            break;
3672        case D3D11_RTV_DIMENSION_TEXTURE2DARRAY:
3673            Texture2DArray.MipSlice = mipSlice;
3674            Texture2DArray.FirstArraySlice = firstArraySlice;
3675            Texture2DArray.ArraySize = arraySize;
3676            break;
3677        case D3D11_RTV_DIMENSION_TEXTURE2DMS:
3678            break;
3679        case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY:
3680            Texture2DMSArray.FirstArraySlice = firstArraySlice;
3681            Texture2DMSArray.ArraySize = arraySize;
3682            break;
3683        case D3D11_RTV_DIMENSION_TEXTURE3D:
3684            Texture3D.MipSlice = mipSlice;
3685            Texture3D.FirstWSlice = firstArraySlice;
3686            Texture3D.WSize = arraySize;
3687            break;
3688        default: break;
3689        }
3690    }
3691    explicit CD3D11_RENDER_TARGET_VIEW_DESC(
3692        __in ID3D11Buffer*,
3693        DXGI_FORMAT format,
3694        UINT firstElement,
3695        UINT numElements )
3696    {
3697        Format = format;
3698        ViewDimension = D3D11_RTV_DIMENSION_BUFFER;
3699        Buffer.FirstElement = firstElement;
3700        Buffer.NumElements = numElements;
3701    }
3702    explicit CD3D11_RENDER_TARGET_VIEW_DESC(
3703        __in ID3D11Texture1D* pTex1D,
3704        D3D11_RTV_DIMENSION viewDimension,
3705        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3706        UINT mipSlice = 0,
3707        UINT firstArraySlice = 0,
3708        UINT arraySize = -1 )
3709    {
3710        ViewDimension = viewDimension;
3711        if (DXGI_FORMAT_UNKNOWN == format ||
3712            (-1 == arraySize && D3D11_RTV_DIMENSION_TEXTURE1DARRAY == viewDimension))
3713        {
3714            D3D11_TEXTURE1D_DESC TexDesc;
3715            pTex1D->GetDesc( &TexDesc );
3716            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
3717            if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice;
3718        }
3719        Format = format;
3720        switch (viewDimension)
3721        {
3722        case D3D11_RTV_DIMENSION_TEXTURE1D:
3723            Texture1D.MipSlice = mipSlice;
3724            break;
3725        case D3D11_RTV_DIMENSION_TEXTURE1DARRAY:
3726            Texture1DArray.MipSlice = mipSlice;
3727            Texture1DArray.FirstArraySlice = firstArraySlice;
3728            Texture1DArray.ArraySize = arraySize;
3729            break;
3730        default: break;
3731        }
3732    }
3733    explicit CD3D11_RENDER_TARGET_VIEW_DESC(
3734        __in ID3D11Texture2D* pTex2D,
3735        D3D11_RTV_DIMENSION viewDimension,
3736        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3737        UINT mipSlice = 0,
3738        UINT firstArraySlice = 0,
3739        UINT arraySize = -1 )
3740    {
3741        ViewDimension = viewDimension;
3742        if (DXGI_FORMAT_UNKNOWN == format ||
3743            (-1 == arraySize &&
3744                (D3D11_RTV_DIMENSION_TEXTURE2DARRAY == viewDimension ||
3745                D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY == viewDimension)))
3746        {
3747            D3D11_TEXTURE2D_DESC TexDesc;
3748            pTex2D->GetDesc( &TexDesc );
3749            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
3750            if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice;
3751        }
3752        Format = format;
3753        switch (viewDimension)
3754        {
3755        case D3D11_RTV_DIMENSION_TEXTURE2D:
3756            Texture2D.MipSlice = mipSlice;
3757            break;
3758        case D3D11_RTV_DIMENSION_TEXTURE2DARRAY:
3759            Texture2DArray.MipSlice = mipSlice;
3760            Texture2DArray.FirstArraySlice = firstArraySlice;
3761            Texture2DArray.ArraySize = arraySize;
3762            break;
3763        case D3D11_RTV_DIMENSION_TEXTURE2DMS:
3764            break;
3765        case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY:
3766            Texture2DMSArray.FirstArraySlice = firstArraySlice;
3767            Texture2DMSArray.ArraySize = arraySize;
3768            break;
3769        default: break;
3770        }
3771    }
3772    explicit CD3D11_RENDER_TARGET_VIEW_DESC(
3773        __in ID3D11Texture3D* pTex3D,
3774        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
3775        UINT mipSlice = 0,
3776        UINT firstWSlice = 0,
3777        UINT wSize = -1 )
3778    {
3779        ViewDimension = D3D11_RTV_DIMENSION_TEXTURE3D;
3780        if (DXGI_FORMAT_UNKNOWN == format || -1 == wSize)
3781        {
3782            D3D11_TEXTURE3D_DESC TexDesc;
3783            pTex3D->GetDesc( &TexDesc );
3784            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
3785            if (-1 == wSize) wSize = TexDesc.Depth - firstWSlice;
3786        }
3787        Format = format;
3788        Texture3D.MipSlice = mipSlice;
3789        Texture3D.FirstWSlice = firstWSlice;
3790        Texture3D.WSize = wSize;
3791    }
3792    ~CD3D11_RENDER_TARGET_VIEW_DESC() {}
3793    operator const D3D11_RENDER_TARGET_VIEW_DESC&() const { return *this; }
3794};
3795extern "C"{
3796#endif
3797
3798
3799extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0011_v0_0_c_ifspec;
3800extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0011_v0_0_s_ifspec;
3801
3802#ifndef __ID3D11RenderTargetView_INTERFACE_DEFINED__
3803#define __ID3D11RenderTargetView_INTERFACE_DEFINED__
3804
3805/* interface ID3D11RenderTargetView */
3806/* [unique][local][object][uuid] */
3807
3808
3809EXTERN_C const IID IID_ID3D11RenderTargetView;
3810
3811#if defined(__cplusplus) && !defined(CINTERFACE)
3812   
3813    MIDL_INTERFACE("dfdba067-0b8d-4865-875b-d7b4516cc164")
3814    ID3D11RenderTargetView : public ID3D11View
3815    {
3816    public:
3817        virtual void STDMETHODCALLTYPE GetDesc(
3818            /* [annotation] */
3819            __out  D3D11_RENDER_TARGET_VIEW_DESC *pDesc) = 0;
3820       
3821    };
3822   
3823#else    /* C style interface */
3824
3825    typedef struct ID3D11RenderTargetViewVtbl
3826    {
3827        BEGIN_INTERFACE
3828       
3829        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3830            ID3D11RenderTargetView * This,
3831            /* [in] */ REFIID riid,
3832            /* [annotation][iid_is][out] */
3833            __RPC__deref_out  void **ppvObject);
3834       
3835        ULONG ( STDMETHODCALLTYPE *AddRef )(
3836            ID3D11RenderTargetView * This);
3837       
3838        ULONG ( STDMETHODCALLTYPE *Release )(
3839            ID3D11RenderTargetView * This);
3840       
3841        void ( STDMETHODCALLTYPE *GetDevice )(
3842            ID3D11RenderTargetView * This,
3843            /* [annotation] */
3844            __out  ID3D11Device **ppDevice);
3845       
3846        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3847            ID3D11RenderTargetView * This,
3848            /* [annotation] */
3849            __in  REFGUID guid,
3850            /* [annotation] */
3851            __inout  UINT *pDataSize,
3852            /* [annotation] */
3853            __out_bcount_opt( *pDataSize )  void *pData);
3854       
3855        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3856            ID3D11RenderTargetView * This,
3857            /* [annotation] */
3858            __in  REFGUID guid,
3859            /* [annotation] */
3860            __in  UINT DataSize,
3861            /* [annotation] */
3862            __in_bcount_opt( DataSize )  const void *pData);
3863       
3864        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3865            ID3D11RenderTargetView * This,
3866            /* [annotation] */
3867            __in  REFGUID guid,
3868            /* [annotation] */
3869            __in_opt  const IUnknown *pData);
3870       
3871        void ( STDMETHODCALLTYPE *GetResource )(
3872            ID3D11RenderTargetView * This,
3873            /* [annotation] */
3874            __out  ID3D11Resource **ppResource);
3875       
3876        void ( STDMETHODCALLTYPE *GetDesc )(
3877            ID3D11RenderTargetView * This,
3878            /* [annotation] */
3879            __out  D3D11_RENDER_TARGET_VIEW_DESC *pDesc);
3880       
3881        END_INTERFACE
3882    } ID3D11RenderTargetViewVtbl;
3883
3884    interface ID3D11RenderTargetView
3885    {
3886        CONST_VTBL struct ID3D11RenderTargetViewVtbl *lpVtbl;
3887    };
3888
3889   
3890
3891#ifdef COBJMACROS
3892
3893
3894#define ID3D11RenderTargetView_QueryInterface(This,riid,ppvObject)   \
3895    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3896
3897#define ID3D11RenderTargetView_AddRef(This)   \
3898    ( (This)->lpVtbl -> AddRef(This) )
3899
3900#define ID3D11RenderTargetView_Release(This)   \
3901    ( (This)->lpVtbl -> Release(This) )
3902
3903
3904#define ID3D11RenderTargetView_GetDevice(This,ppDevice)   \
3905    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
3906
3907#define ID3D11RenderTargetView_GetPrivateData(This,guid,pDataSize,pData)   \
3908    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3909
3910#define ID3D11RenderTargetView_SetPrivateData(This,guid,DataSize,pData)   \
3911    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3912
3913#define ID3D11RenderTargetView_SetPrivateDataInterface(This,guid,pData)   \
3914    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3915
3916
3917#define ID3D11RenderTargetView_GetResource(This,ppResource)   \
3918    ( (This)->lpVtbl -> GetResource(This,ppResource) )
3919
3920
3921#define ID3D11RenderTargetView_GetDesc(This,pDesc)   \
3922    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
3923
3924#endif /* COBJMACROS */
3925
3926
3927#endif    /* C style interface */
3928
3929
3930
3931
3932#endif    /* __ID3D11RenderTargetView_INTERFACE_DEFINED__ */
3933
3934
3935/* interface __MIDL_itf_d3d11_0000_0012 */
3936/* [local] */
3937
3938#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
3939}
3940struct CD3D11_VIEWPORT : public D3D11_VIEWPORT
3941{
3942    CD3D11_VIEWPORT()
3943    {}
3944    explicit CD3D11_VIEWPORT( const D3D11_VIEWPORT& o ) :
3945        D3D11_VIEWPORT( o )
3946    {}
3947    explicit CD3D11_VIEWPORT(
3948        FLOAT topLeftX,
3949        FLOAT topLeftY,
3950        FLOAT width,
3951        FLOAT height,
3952        FLOAT minDepth = D3D11_MIN_DEPTH,
3953        FLOAT maxDepth = D3D11_MAX_DEPTH )
3954    {
3955        TopLeftX = topLeftX;
3956        TopLeftY = topLeftY;
3957        Width = width;
3958        Height = height;
3959        MinDepth = minDepth;
3960        MaxDepth = maxDepth;
3961    }
3962    explicit CD3D11_VIEWPORT(
3963        __in ID3D11Buffer*,
3964        __in ID3D11RenderTargetView* pRTView,
3965        FLOAT topLeftX = 0.0f,
3966        FLOAT minDepth = D3D11_MIN_DEPTH,
3967        FLOAT maxDepth = D3D11_MAX_DEPTH )
3968    {
3969        D3D11_RENDER_TARGET_VIEW_DESC RTVDesc;
3970        pRTView->GetDesc( &RTVDesc );
3971        UINT NumElements = 0;
3972        switch (RTVDesc.ViewDimension)
3973        {
3974        case D3D11_RTV_DIMENSION_BUFFER:
3975            NumElements = RTVDesc.Buffer.NumElements;
3976            break;
3977        default: break;
3978        }
3979        TopLeftX = topLeftX;
3980        TopLeftY = 0.0f;
3981        Width = NumElements - topLeftX;
3982        Height = 1.0f;
3983        MinDepth = minDepth;
3984        MaxDepth = maxDepth;
3985    }
3986    explicit CD3D11_VIEWPORT(
3987        __in ID3D11Texture1D* pTex1D,
3988        __in ID3D11RenderTargetView* pRTView,
3989        FLOAT topLeftX = 0.0f,
3990        FLOAT minDepth = D3D11_MIN_DEPTH,
3991        FLOAT maxDepth = D3D11_MAX_DEPTH )
3992    {
3993        D3D11_TEXTURE1D_DESC TexDesc;
3994        pTex1D->GetDesc( &TexDesc );
3995        D3D11_RENDER_TARGET_VIEW_DESC RTVDesc;
3996        pRTView->GetDesc( &RTVDesc );
3997        UINT MipSlice = 0;
3998        switch (RTVDesc.ViewDimension)
3999        {
4000        case D3D11_RTV_DIMENSION_TEXTURE1D:
4001            MipSlice = RTVDesc.Texture1D.MipSlice;
4002            break;
4003        case D3D11_RTV_DIMENSION_TEXTURE1DARRAY:
4004            MipSlice = RTVDesc.Texture1DArray.MipSlice;
4005            break;
4006        default: break;
4007        }
4008        const UINT SubResourceWidth = TexDesc.Width / (UINT( 1 ) << MipSlice);
4009        TopLeftX = topLeftX;
4010        TopLeftY = 0.0f;
4011        Width = (SubResourceWidth ? SubResourceWidth : 1) - topLeftX;
4012        Height = 1.0f;
4013        MinDepth = minDepth;
4014        MaxDepth = maxDepth;
4015    }
4016    explicit CD3D11_VIEWPORT(
4017        __in ID3D11Texture2D* pTex2D,
4018        __in ID3D11RenderTargetView* pRTView,
4019        FLOAT topLeftX = 0.0f,
4020        FLOAT topLeftY = 0.0f,
4021        FLOAT minDepth = D3D11_MIN_DEPTH,
4022        FLOAT maxDepth = D3D11_MAX_DEPTH )
4023    {
4024        D3D11_TEXTURE2D_DESC TexDesc;
4025        pTex2D->GetDesc( &TexDesc );
4026        D3D11_RENDER_TARGET_VIEW_DESC RTVDesc;
4027        pRTView->GetDesc( &RTVDesc );
4028        UINT MipSlice = 0;
4029        switch (RTVDesc.ViewDimension)
4030        {
4031        case D3D11_RTV_DIMENSION_TEXTURE2D:
4032            MipSlice = RTVDesc.Texture2D.MipSlice;
4033            break;
4034        case D3D11_RTV_DIMENSION_TEXTURE2DARRAY:
4035            MipSlice = RTVDesc.Texture2DArray.MipSlice;
4036            break;
4037        case D3D11_RTV_DIMENSION_TEXTURE2DMS:
4038        case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY:
4039            break;
4040        default: break;
4041        }
4042        const UINT SubResourceWidth = TexDesc.Width / (UINT( 1 ) << MipSlice);
4043        const UINT SubResourceHeight = TexDesc.Height / (UINT( 1 ) << MipSlice);
4044        TopLeftX = topLeftX;
4045        TopLeftY = topLeftY;
4046        Width = (SubResourceWidth ? SubResourceWidth : 1) - topLeftX;
4047        Height = (SubResourceHeight ? SubResourceHeight : 1) - topLeftY;
4048        MinDepth = minDepth;
4049        MaxDepth = maxDepth;
4050    }
4051    explicit CD3D11_VIEWPORT(
4052        __in ID3D11Texture3D* pTex3D,
4053        __in ID3D11RenderTargetView* pRTView,
4054        FLOAT topLeftX = 0.0f,
4055        FLOAT topLeftY = 0.0f,
4056        FLOAT minDepth = D3D11_MIN_DEPTH,
4057        FLOAT maxDepth = D3D11_MAX_DEPTH )
4058    {
4059        D3D11_TEXTURE3D_DESC TexDesc;
4060        pTex3D->GetDesc( &TexDesc );
4061        D3D11_RENDER_TARGET_VIEW_DESC RTVDesc;
4062        pRTView->GetDesc( &RTVDesc );
4063        UINT MipSlice = 0;
4064        switch (RTVDesc.ViewDimension)
4065        {
4066        case D3D11_RTV_DIMENSION_TEXTURE3D:
4067            MipSlice = RTVDesc.Texture3D.MipSlice;
4068            break;
4069        default: break;
4070        }
4071        const UINT SubResourceWidth = TexDesc.Width / (UINT( 1 ) << MipSlice);
4072        const UINT SubResourceHeight = TexDesc.Height / (UINT( 1 ) << MipSlice);
4073        TopLeftX = topLeftX;
4074        TopLeftY = topLeftY;
4075        Width = (SubResourceWidth ? SubResourceWidth : 1) - topLeftX;
4076        Height = (SubResourceHeight ? SubResourceHeight : 1) - topLeftY;
4077        MinDepth = minDepth;
4078        MaxDepth = maxDepth;
4079    }
4080    ~CD3D11_VIEWPORT() {}
4081    operator const D3D11_VIEWPORT&() const { return *this; }
4082};
4083extern "C"{
4084#endif
4085typedef struct D3D11_TEX1D_DSV
4086    {
4087    UINT MipSlice;
4088    }    D3D11_TEX1D_DSV;
4089
4090typedef struct D3D11_TEX1D_ARRAY_DSV
4091    {
4092    UINT MipSlice;
4093    UINT FirstArraySlice;
4094    UINT ArraySize;
4095    }    D3D11_TEX1D_ARRAY_DSV;
4096
4097typedef struct D3D11_TEX2D_DSV
4098    {
4099    UINT MipSlice;
4100    }    D3D11_TEX2D_DSV;
4101
4102typedef struct D3D11_TEX2D_ARRAY_DSV
4103    {
4104    UINT MipSlice;
4105    UINT FirstArraySlice;
4106    UINT ArraySize;
4107    }    D3D11_TEX2D_ARRAY_DSV;
4108
4109typedef struct D3D11_TEX2DMS_DSV
4110    {
4111    UINT UnusedField_NothingToDefine;
4112    }    D3D11_TEX2DMS_DSV;
4113
4114typedef struct D3D11_TEX2DMS_ARRAY_DSV
4115    {
4116    UINT FirstArraySlice;
4117    UINT ArraySize;
4118    }    D3D11_TEX2DMS_ARRAY_DSV;
4119
4120typedef
4121enum D3D11_DSV_FLAG
4122    {   D3D11_DSV_READ_ONLY_DEPTH   = 0x1L,
4123   D3D11_DSV_READ_ONLY_STENCIL   = 0x2L
4124    }    D3D11_DSV_FLAG;
4125
4126typedef struct D3D11_DEPTH_STENCIL_VIEW_DESC
4127    {
4128    DXGI_FORMAT Format;
4129    D3D11_DSV_DIMENSION ViewDimension;
4130    UINT Flags;
4131    union
4132        {
4133        D3D11_TEX1D_DSV Texture1D;
4134        D3D11_TEX1D_ARRAY_DSV Texture1DArray;
4135        D3D11_TEX2D_DSV Texture2D;
4136        D3D11_TEX2D_ARRAY_DSV Texture2DArray;
4137        D3D11_TEX2DMS_DSV Texture2DMS;
4138        D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray;
4139        }    ;
4140    }    D3D11_DEPTH_STENCIL_VIEW_DESC;
4141
4142#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
4143}
4144struct CD3D11_DEPTH_STENCIL_VIEW_DESC : public D3D11_DEPTH_STENCIL_VIEW_DESC
4145{
4146    CD3D11_DEPTH_STENCIL_VIEW_DESC()
4147    {}
4148    explicit CD3D11_DEPTH_STENCIL_VIEW_DESC( const D3D11_DEPTH_STENCIL_VIEW_DESC& o ) :
4149        D3D11_DEPTH_STENCIL_VIEW_DESC( o )
4150    {}
4151    explicit CD3D11_DEPTH_STENCIL_VIEW_DESC(
4152        D3D11_DSV_DIMENSION viewDimension,
4153        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
4154        UINT mipSlice = 0,
4155        UINT firstArraySlice = 0,
4156        UINT arraySize = -1,
4157        UINT flags = 0 )
4158    {
4159        Format = format;
4160        ViewDimension = viewDimension;
4161        Flags = flags;
4162        switch (viewDimension)
4163        {
4164        case D3D11_DSV_DIMENSION_TEXTURE1D:
4165            Texture1D.MipSlice = mipSlice;
4166            break;
4167        case D3D11_DSV_DIMENSION_TEXTURE1DARRAY:
4168            Texture1DArray.MipSlice = mipSlice;
4169            Texture1DArray.FirstArraySlice = firstArraySlice;
4170            Texture1DArray.ArraySize = arraySize;
4171            break;
4172        case D3D11_DSV_DIMENSION_TEXTURE2D:
4173            Texture2D.MipSlice = mipSlice;
4174            break;
4175        case D3D11_DSV_DIMENSION_TEXTURE2DARRAY:
4176            Texture2DArray.MipSlice = mipSlice;
4177            Texture2DArray.FirstArraySlice = firstArraySlice;
4178            Texture2DArray.ArraySize = arraySize;
4179            break;
4180        case D3D11_DSV_DIMENSION_TEXTURE2DMS:
4181            break;
4182        case D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY:
4183            Texture2DMSArray.FirstArraySlice = firstArraySlice;
4184            Texture2DMSArray.ArraySize = arraySize;
4185            break;
4186        default: break;
4187        }
4188    }
4189    explicit CD3D11_DEPTH_STENCIL_VIEW_DESC(
4190        __in ID3D11Texture1D* pTex1D,
4191        D3D11_DSV_DIMENSION viewDimension,
4192        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
4193        UINT mipSlice = 0,
4194        UINT firstArraySlice = 0,
4195        UINT arraySize = -1,
4196        UINT flags = 0 )
4197    {
4198        ViewDimension = viewDimension;
4199        Flags = flags;
4200        if (DXGI_FORMAT_UNKNOWN == format ||
4201            (-1 == arraySize && D3D11_DSV_DIMENSION_TEXTURE1DARRAY == viewDimension))
4202        {
4203            D3D11_TEXTURE1D_DESC TexDesc;
4204            pTex1D->GetDesc( &TexDesc );
4205            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
4206            if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice;
4207        }
4208        Format = format;
4209        switch (viewDimension)
4210        {
4211        case D3D11_DSV_DIMENSION_TEXTURE1D:
4212            Texture1D.MipSlice = mipSlice;
4213            break;
4214        case D3D11_DSV_DIMENSION_TEXTURE1DARRAY:
4215            Texture1DArray.MipSlice = mipSlice;
4216            Texture1DArray.FirstArraySlice = firstArraySlice;
4217            Texture1DArray.ArraySize = arraySize;
4218            break;
4219        default: break;
4220        }
4221    }
4222    explicit CD3D11_DEPTH_STENCIL_VIEW_DESC(
4223        __in ID3D11Texture2D* pTex2D,
4224        D3D11_DSV_DIMENSION viewDimension,
4225        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
4226        UINT mipSlice = 0,
4227        UINT firstArraySlice = 0,
4228        UINT arraySize = -1,
4229        UINT flags = 0 )
4230    {
4231        ViewDimension = viewDimension;
4232        Flags = flags;
4233        if (DXGI_FORMAT_UNKNOWN == format ||
4234            (-1 == arraySize &&
4235                (D3D11_DSV_DIMENSION_TEXTURE2DARRAY == viewDimension ||
4236                D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY == viewDimension)))
4237        {
4238            D3D11_TEXTURE2D_DESC TexDesc;
4239            pTex2D->GetDesc( &TexDesc );
4240            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
4241            if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice;
4242        }
4243        Format = format;
4244        switch (viewDimension)
4245        {
4246        case D3D11_DSV_DIMENSION_TEXTURE2D:
4247            Texture2D.MipSlice = mipSlice;
4248            break;
4249        case D3D11_DSV_DIMENSION_TEXTURE2DARRAY:
4250            Texture2DArray.MipSlice = mipSlice;
4251            Texture2DArray.FirstArraySlice = firstArraySlice;
4252            Texture2DArray.ArraySize = arraySize;
4253            break;
4254        case D3D11_DSV_DIMENSION_TEXTURE2DMS:
4255            break;
4256        case D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY:
4257            Texture2DMSArray.FirstArraySlice = firstArraySlice;
4258            Texture2DMSArray.ArraySize = arraySize;
4259            break;
4260        default: break;
4261        }
4262    }
4263    ~CD3D11_DEPTH_STENCIL_VIEW_DESC() {}
4264    operator const D3D11_DEPTH_STENCIL_VIEW_DESC&() const { return *this; }
4265};
4266extern "C"{
4267#endif
4268
4269
4270extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0012_v0_0_c_ifspec;
4271extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0012_v0_0_s_ifspec;
4272
4273#ifndef __ID3D11DepthStencilView_INTERFACE_DEFINED__
4274#define __ID3D11DepthStencilView_INTERFACE_DEFINED__
4275
4276/* interface ID3D11DepthStencilView */
4277/* [unique][local][object][uuid] */
4278
4279
4280EXTERN_C const IID IID_ID3D11DepthStencilView;
4281
4282#if defined(__cplusplus) && !defined(CINTERFACE)
4283   
4284    MIDL_INTERFACE("9fdac92a-1876-48c3-afad-25b94f84a9b6")
4285    ID3D11DepthStencilView : public ID3D11View
4286    {
4287    public:
4288        virtual void STDMETHODCALLTYPE GetDesc(
4289            /* [annotation] */
4290            __out  D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc) = 0;
4291       
4292    };
4293   
4294#else    /* C style interface */
4295
4296    typedef struct ID3D11DepthStencilViewVtbl
4297    {
4298        BEGIN_INTERFACE
4299       
4300        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4301            ID3D11DepthStencilView * This,
4302            /* [in] */ REFIID riid,
4303            /* [annotation][iid_is][out] */
4304            __RPC__deref_out  void **ppvObject);
4305       
4306        ULONG ( STDMETHODCALLTYPE *AddRef )(
4307            ID3D11DepthStencilView * This);
4308       
4309        ULONG ( STDMETHODCALLTYPE *Release )(
4310            ID3D11DepthStencilView * This);
4311       
4312        void ( STDMETHODCALLTYPE *GetDevice )(
4313            ID3D11DepthStencilView * This,
4314            /* [annotation] */
4315            __out  ID3D11Device **ppDevice);
4316       
4317        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4318            ID3D11DepthStencilView * This,
4319            /* [annotation] */
4320            __in  REFGUID guid,
4321            /* [annotation] */
4322            __inout  UINT *pDataSize,
4323            /* [annotation] */
4324            __out_bcount_opt( *pDataSize )  void *pData);
4325       
4326        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4327            ID3D11DepthStencilView * This,
4328            /* [annotation] */
4329            __in  REFGUID guid,
4330            /* [annotation] */
4331            __in  UINT DataSize,
4332            /* [annotation] */
4333            __in_bcount_opt( DataSize )  const void *pData);
4334       
4335        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4336            ID3D11DepthStencilView * This,
4337            /* [annotation] */
4338            __in  REFGUID guid,
4339            /* [annotation] */
4340            __in_opt  const IUnknown *pData);
4341       
4342        void ( STDMETHODCALLTYPE *GetResource )(
4343            ID3D11DepthStencilView * This,
4344            /* [annotation] */
4345            __out  ID3D11Resource **ppResource);
4346       
4347        void ( STDMETHODCALLTYPE *GetDesc )(
4348            ID3D11DepthStencilView * This,
4349            /* [annotation] */
4350            __out  D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc);
4351       
4352        END_INTERFACE
4353    } ID3D11DepthStencilViewVtbl;
4354
4355    interface ID3D11DepthStencilView
4356    {
4357        CONST_VTBL struct ID3D11DepthStencilViewVtbl *lpVtbl;
4358    };
4359
4360   
4361
4362#ifdef COBJMACROS
4363
4364
4365#define ID3D11DepthStencilView_QueryInterface(This,riid,ppvObject)   \
4366    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4367
4368#define ID3D11DepthStencilView_AddRef(This)   \
4369    ( (This)->lpVtbl -> AddRef(This) )
4370
4371#define ID3D11DepthStencilView_Release(This)   \
4372    ( (This)->lpVtbl -> Release(This) )
4373
4374
4375#define ID3D11DepthStencilView_GetDevice(This,ppDevice)   \
4376    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4377
4378#define ID3D11DepthStencilView_GetPrivateData(This,guid,pDataSize,pData)   \
4379    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4380
4381#define ID3D11DepthStencilView_SetPrivateData(This,guid,DataSize,pData)   \
4382    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4383
4384#define ID3D11DepthStencilView_SetPrivateDataInterface(This,guid,pData)   \
4385    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4386
4387
4388#define ID3D11DepthStencilView_GetResource(This,ppResource)   \
4389    ( (This)->lpVtbl -> GetResource(This,ppResource) )
4390
4391
4392#define ID3D11DepthStencilView_GetDesc(This,pDesc)   \
4393    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
4394
4395#endif /* COBJMACROS */
4396
4397
4398#endif    /* C style interface */
4399
4400
4401
4402
4403#endif    /* __ID3D11DepthStencilView_INTERFACE_DEFINED__ */
4404
4405
4406/* interface __MIDL_itf_d3d11_0000_0013 */
4407/* [local] */
4408
4409typedef
4410enum D3D11_BUFFER_UAV_FLAG
4411    {   D3D11_BUFFER_UAV_FLAG_RAW   = 0x1,
4412   D3D11_BUFFER_UAV_FLAG_APPEND   = 0x2,
4413   D3D11_BUFFER_UAV_FLAG_COUNTER   = 0x4
4414    }    D3D11_BUFFER_UAV_FLAG;
4415
4416typedef struct D3D11_BUFFER_UAV
4417    {
4418    UINT FirstElement;
4419    UINT NumElements;
4420    UINT Flags;
4421    }    D3D11_BUFFER_UAV;
4422
4423typedef struct D3D11_TEX1D_UAV
4424    {
4425    UINT MipSlice;
4426    }    D3D11_TEX1D_UAV;
4427
4428typedef struct D3D11_TEX1D_ARRAY_UAV
4429    {
4430    UINT MipSlice;
4431    UINT FirstArraySlice;
4432    UINT ArraySize;
4433    }    D3D11_TEX1D_ARRAY_UAV;
4434
4435typedef struct D3D11_TEX2D_UAV
4436    {
4437    UINT MipSlice;
4438    }    D3D11_TEX2D_UAV;
4439
4440typedef struct D3D11_TEX2D_ARRAY_UAV
4441    {
4442    UINT MipSlice;
4443    UINT FirstArraySlice;
4444    UINT ArraySize;
4445    }    D3D11_TEX2D_ARRAY_UAV;
4446
4447typedef struct D3D11_TEX3D_UAV
4448    {
4449    UINT MipSlice;
4450    UINT FirstWSlice;
4451    UINT WSize;
4452    }    D3D11_TEX3D_UAV;
4453
4454typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC
4455    {
4456    DXGI_FORMAT Format;
4457    D3D11_UAV_DIMENSION ViewDimension;
4458    union
4459        {
4460        D3D11_BUFFER_UAV Buffer;
4461        D3D11_TEX1D_UAV Texture1D;
4462        D3D11_TEX1D_ARRAY_UAV Texture1DArray;
4463        D3D11_TEX2D_UAV Texture2D;
4464        D3D11_TEX2D_ARRAY_UAV Texture2DArray;
4465        D3D11_TEX3D_UAV Texture3D;
4466        }    ;
4467    }    D3D11_UNORDERED_ACCESS_VIEW_DESC;
4468
4469#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
4470}
4471struct CD3D11_UNORDERED_ACCESS_VIEW_DESC : public D3D11_UNORDERED_ACCESS_VIEW_DESC
4472{
4473    CD3D11_UNORDERED_ACCESS_VIEW_DESC()
4474    {}
4475    explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( const D3D11_UNORDERED_ACCESS_VIEW_DESC& o ) :
4476        D3D11_UNORDERED_ACCESS_VIEW_DESC( o )
4477    {}
4478    explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC(
4479        D3D11_UAV_DIMENSION viewDimension,
4480        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
4481        UINT mipSlice = 0, // FirstElement for BUFFER
4482        UINT firstArraySlice = 0, // NumElements for BUFFER, FirstWSlice for TEXTURE3D
4483        UINT arraySize = -1, // WSize for TEXTURE3D
4484        UINT flags = 0 ) // BUFFER only
4485    {
4486        Format = format;
4487        ViewDimension = viewDimension;
4488        switch (viewDimension)
4489        {
4490        case D3D11_UAV_DIMENSION_BUFFER:
4491            Buffer.FirstElement = mipSlice;
4492            Buffer.NumElements = firstArraySlice;
4493            Buffer.Flags = flags;
4494            break;
4495        case D3D11_UAV_DIMENSION_TEXTURE1D:
4496            Texture1D.MipSlice = mipSlice;
4497            break;
4498        case D3D11_UAV_DIMENSION_TEXTURE1DARRAY:
4499            Texture1DArray.MipSlice = mipSlice;
4500            Texture1DArray.FirstArraySlice = firstArraySlice;
4501            Texture1DArray.ArraySize = arraySize;
4502            break;
4503        case D3D11_UAV_DIMENSION_TEXTURE2D:
4504            Texture2D.MipSlice = mipSlice;
4505            break;
4506        case D3D11_UAV_DIMENSION_TEXTURE2DARRAY:
4507            Texture2DArray.MipSlice = mipSlice;
4508            Texture2DArray.FirstArraySlice = firstArraySlice;
4509            Texture2DArray.ArraySize = arraySize;
4510            break;
4511        case D3D11_UAV_DIMENSION_TEXTURE3D:
4512            Texture3D.MipSlice = mipSlice;
4513            Texture3D.FirstWSlice = firstArraySlice;
4514            Texture3D.WSize = arraySize;
4515            break;
4516        default: break;
4517        }
4518    }
4519    explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC(
4520        __in ID3D11Buffer*,
4521        DXGI_FORMAT format,
4522        UINT firstElement,
4523        UINT numElements,
4524        UINT flags = 0 )
4525    {
4526        Format = format;
4527        ViewDimension = D3D11_UAV_DIMENSION_BUFFER;
4528        Buffer.FirstElement = firstElement;
4529        Buffer.NumElements = numElements;
4530        Buffer.Flags = flags;
4531    }
4532    explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC(
4533        __in ID3D11Texture1D* pTex1D,
4534        D3D11_UAV_DIMENSION viewDimension,
4535        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
4536        UINT mipSlice = 0,
4537        UINT firstArraySlice = 0,
4538        UINT arraySize = -1 )
4539    {
4540        ViewDimension = viewDimension;
4541        if (DXGI_FORMAT_UNKNOWN == format ||
4542            (-1 == arraySize && D3D11_UAV_DIMENSION_TEXTURE1DARRAY == viewDimension))
4543        {
4544            D3D11_TEXTURE1D_DESC TexDesc;
4545            pTex1D->GetDesc( &TexDesc );
4546            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
4547            if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice;
4548        }
4549        Format = format;
4550        switch (viewDimension)
4551        {
4552        case D3D11_UAV_DIMENSION_TEXTURE1D:
4553            Texture1D.MipSlice = mipSlice;
4554            break;
4555        case D3D11_UAV_DIMENSION_TEXTURE1DARRAY:
4556            Texture1DArray.MipSlice = mipSlice;
4557            Texture1DArray.FirstArraySlice = firstArraySlice;
4558            Texture1DArray.ArraySize = arraySize;
4559            break;
4560        default: break;
4561        }
4562    }
4563    explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC(
4564        __in ID3D11Texture2D* pTex2D,
4565        D3D11_UAV_DIMENSION viewDimension,
4566        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
4567        UINT mipSlice = 0,
4568        UINT firstArraySlice = 0,
4569        UINT arraySize = -1 )
4570    {
4571        ViewDimension = viewDimension;
4572        if (DXGI_FORMAT_UNKNOWN == format ||
4573            (-1 == arraySize && D3D11_UAV_DIMENSION_TEXTURE2DARRAY == viewDimension))
4574        {
4575            D3D11_TEXTURE2D_DESC TexDesc;
4576            pTex2D->GetDesc( &TexDesc );
4577            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
4578            if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice;
4579        }
4580        Format = format;
4581        switch (viewDimension)
4582        {
4583        case D3D11_UAV_DIMENSION_TEXTURE2D:
4584            Texture2D.MipSlice = mipSlice;
4585            break;
4586        case D3D11_UAV_DIMENSION_TEXTURE2DARRAY:
4587            Texture2DArray.MipSlice = mipSlice;
4588            Texture2DArray.FirstArraySlice = firstArraySlice;
4589            Texture2DArray.ArraySize = arraySize;
4590            break;
4591        default: break;
4592        }
4593    }
4594    explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC(
4595        __in ID3D11Texture3D* pTex3D,
4596        DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,
4597        UINT mipSlice = 0,
4598        UINT firstWSlice = 0,
4599        UINT wSize = -1 )
4600    {
4601        ViewDimension = D3D11_UAV_DIMENSION_TEXTURE3D;
4602        if (DXGI_FORMAT_UNKNOWN == format || -1 == wSize)
4603        {
4604            D3D11_TEXTURE3D_DESC TexDesc;
4605            pTex3D->GetDesc( &TexDesc );
4606            if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format;
4607            if (-1 == wSize) wSize = TexDesc.Depth - firstWSlice;
4608        }
4609        Format = format;
4610        Texture3D.MipSlice = mipSlice;
4611        Texture3D.FirstWSlice = firstWSlice;
4612        Texture3D.WSize = wSize;
4613    }
4614    ~CD3D11_UNORDERED_ACCESS_VIEW_DESC() {}
4615    operator const D3D11_UNORDERED_ACCESS_VIEW_DESC&() const { return *this; }
4616};
4617extern "C"{
4618#endif
4619
4620
4621extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0013_v0_0_c_ifspec;
4622extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0013_v0_0_s_ifspec;
4623
4624#ifndef __ID3D11UnorderedAccessView_INTERFACE_DEFINED__
4625#define __ID3D11UnorderedAccessView_INTERFACE_DEFINED__
4626
4627/* interface ID3D11UnorderedAccessView */
4628/* [unique][local][object][uuid] */
4629
4630
4631EXTERN_C const IID IID_ID3D11UnorderedAccessView;
4632
4633#if defined(__cplusplus) && !defined(CINTERFACE)
4634   
4635    MIDL_INTERFACE("28acf509-7f5c-48f6-8611-f316010a6380")
4636    ID3D11UnorderedAccessView : public ID3D11View
4637    {
4638    public:
4639        virtual void STDMETHODCALLTYPE GetDesc(
4640            /* [annotation] */
4641            __out  D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc) = 0;
4642       
4643    };
4644   
4645#else    /* C style interface */
4646
4647    typedef struct ID3D11UnorderedAccessViewVtbl
4648    {
4649        BEGIN_INTERFACE
4650       
4651        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4652            ID3D11UnorderedAccessView * This,
4653            /* [in] */ REFIID riid,
4654            /* [annotation][iid_is][out] */
4655            __RPC__deref_out  void **ppvObject);
4656       
4657        ULONG ( STDMETHODCALLTYPE *AddRef )(
4658            ID3D11UnorderedAccessView * This);
4659       
4660        ULONG ( STDMETHODCALLTYPE *Release )(
4661            ID3D11UnorderedAccessView * This);
4662       
4663        void ( STDMETHODCALLTYPE *GetDevice )(
4664            ID3D11UnorderedAccessView * This,
4665            /* [annotation] */
4666            __out  ID3D11Device **ppDevice);
4667       
4668        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4669            ID3D11UnorderedAccessView * This,
4670            /* [annotation] */
4671            __in  REFGUID guid,
4672            /* [annotation] */
4673            __inout  UINT *pDataSize,
4674            /* [annotation] */
4675            __out_bcount_opt( *pDataSize )  void *pData);
4676       
4677        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4678            ID3D11UnorderedAccessView * This,
4679            /* [annotation] */
4680            __in  REFGUID guid,
4681            /* [annotation] */
4682            __in  UINT DataSize,
4683            /* [annotation] */
4684            __in_bcount_opt( DataSize )  const void *pData);
4685       
4686        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4687            ID3D11UnorderedAccessView * This,
4688            /* [annotation] */
4689            __in  REFGUID guid,
4690            /* [annotation] */
4691            __in_opt  const IUnknown *pData);
4692       
4693        void ( STDMETHODCALLTYPE *GetResource )(
4694            ID3D11UnorderedAccessView * This,
4695            /* [annotation] */
4696            __out  ID3D11Resource **ppResource);
4697       
4698        void ( STDMETHODCALLTYPE *GetDesc )(
4699            ID3D11UnorderedAccessView * This,
4700            /* [annotation] */
4701            __out  D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc);
4702       
4703        END_INTERFACE
4704    } ID3D11UnorderedAccessViewVtbl;
4705
4706    interface ID3D11UnorderedAccessView
4707    {
4708        CONST_VTBL struct ID3D11UnorderedAccessViewVtbl *lpVtbl;
4709    };
4710
4711   
4712
4713#ifdef COBJMACROS
4714
4715
4716#define ID3D11UnorderedAccessView_QueryInterface(This,riid,ppvObject)   \
4717    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4718
4719#define ID3D11UnorderedAccessView_AddRef(This)   \
4720    ( (This)->lpVtbl -> AddRef(This) )
4721
4722#define ID3D11UnorderedAccessView_Release(This)   \
4723    ( (This)->lpVtbl -> Release(This) )
4724
4725
4726#define ID3D11UnorderedAccessView_GetDevice(This,ppDevice)   \
4727    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4728
4729#define ID3D11UnorderedAccessView_GetPrivateData(This,guid,pDataSize,pData)   \
4730    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4731
4732#define ID3D11UnorderedAccessView_SetPrivateData(This,guid,DataSize,pData)   \
4733    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4734
4735#define ID3D11UnorderedAccessView_SetPrivateDataInterface(This,guid,pData)   \
4736    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4737
4738
4739#define ID3D11UnorderedAccessView_GetResource(This,ppResource)   \
4740    ( (This)->lpVtbl -> GetResource(This,ppResource) )
4741
4742
4743#define ID3D11UnorderedAccessView_GetDesc(This,pDesc)   \
4744    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
4745
4746#endif /* COBJMACROS */
4747
4748
4749#endif    /* C style interface */
4750
4751
4752
4753
4754#endif    /* __ID3D11UnorderedAccessView_INTERFACE_DEFINED__ */
4755
4756
4757#ifndef __ID3D11VertexShader_INTERFACE_DEFINED__
4758#define __ID3D11VertexShader_INTERFACE_DEFINED__
4759
4760/* interface ID3D11VertexShader */
4761/* [unique][local][object][uuid] */
4762
4763
4764EXTERN_C const IID IID_ID3D11VertexShader;
4765
4766#if defined(__cplusplus) && !defined(CINTERFACE)
4767   
4768    MIDL_INTERFACE("3b301d64-d678-4289-8897-22f8928b72f3")
4769    ID3D11VertexShader : public ID3D11DeviceChild
4770    {
4771    public:
4772    };
4773   
4774#else    /* C style interface */
4775
4776    typedef struct ID3D11VertexShaderVtbl
4777    {
4778        BEGIN_INTERFACE
4779       
4780        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4781            ID3D11VertexShader * This,
4782            /* [in] */ REFIID riid,
4783            /* [annotation][iid_is][out] */
4784            __RPC__deref_out  void **ppvObject);
4785       
4786        ULONG ( STDMETHODCALLTYPE *AddRef )(
4787            ID3D11VertexShader * This);
4788       
4789        ULONG ( STDMETHODCALLTYPE *Release )(
4790            ID3D11VertexShader * This);
4791       
4792        void ( STDMETHODCALLTYPE *GetDevice )(
4793            ID3D11VertexShader * This,
4794            /* [annotation] */
4795            __out  ID3D11Device **ppDevice);
4796       
4797        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4798            ID3D11VertexShader * This,
4799            /* [annotation] */
4800            __in  REFGUID guid,
4801            /* [annotation] */
4802            __inout  UINT *pDataSize,
4803            /* [annotation] */
4804            __out_bcount_opt( *pDataSize )  void *pData);
4805       
4806        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4807            ID3D11VertexShader * This,
4808            /* [annotation] */
4809            __in  REFGUID guid,
4810            /* [annotation] */
4811            __in  UINT DataSize,
4812            /* [annotation] */
4813            __in_bcount_opt( DataSize )  const void *pData);
4814       
4815        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4816            ID3D11VertexShader * This,
4817            /* [annotation] */
4818            __in  REFGUID guid,
4819            /* [annotation] */
4820            __in_opt  const IUnknown *pData);
4821       
4822        END_INTERFACE
4823    } ID3D11VertexShaderVtbl;
4824
4825    interface ID3D11VertexShader
4826    {
4827        CONST_VTBL struct ID3D11VertexShaderVtbl *lpVtbl;
4828    };
4829
4830   
4831
4832#ifdef COBJMACROS
4833
4834
4835#define ID3D11VertexShader_QueryInterface(This,riid,ppvObject)   \
4836    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4837
4838#define ID3D11VertexShader_AddRef(This)   \
4839    ( (This)->lpVtbl -> AddRef(This) )
4840
4841#define ID3D11VertexShader_Release(This)   \
4842    ( (This)->lpVtbl -> Release(This) )
4843
4844
4845#define ID3D11VertexShader_GetDevice(This,ppDevice)   \
4846    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4847
4848#define ID3D11VertexShader_GetPrivateData(This,guid,pDataSize,pData)   \
4849    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4850
4851#define ID3D11VertexShader_SetPrivateData(This,guid,DataSize,pData)   \
4852    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4853
4854#define ID3D11VertexShader_SetPrivateDataInterface(This,guid,pData)   \
4855    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4856
4857
4858#endif /* COBJMACROS */
4859
4860
4861#endif    /* C style interface */
4862
4863
4864
4865
4866#endif    /* __ID3D11VertexShader_INTERFACE_DEFINED__ */
4867
4868
4869#ifndef __ID3D11HullShader_INTERFACE_DEFINED__
4870#define __ID3D11HullShader_INTERFACE_DEFINED__
4871
4872/* interface ID3D11HullShader */
4873/* [unique][local][object][uuid] */
4874
4875
4876EXTERN_C const IID IID_ID3D11HullShader;
4877
4878#if defined(__cplusplus) && !defined(CINTERFACE)
4879   
4880    MIDL_INTERFACE("8e5c6061-628a-4c8e-8264-bbe45cb3d5dd")
4881    ID3D11HullShader : public ID3D11DeviceChild
4882    {
4883    public:
4884    };
4885   
4886#else    /* C style interface */
4887
4888    typedef struct ID3D11HullShaderVtbl
4889    {
4890        BEGIN_INTERFACE
4891       
4892        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4893            ID3D11HullShader * This,
4894            /* [in] */ REFIID riid,
4895            /* [annotation][iid_is][out] */
4896            __RPC__deref_out  void **ppvObject);
4897       
4898        ULONG ( STDMETHODCALLTYPE *AddRef )(
4899            ID3D11HullShader * This);
4900       
4901        ULONG ( STDMETHODCALLTYPE *Release )(
4902            ID3D11HullShader * This);
4903       
4904        void ( STDMETHODCALLTYPE *GetDevice )(
4905            ID3D11HullShader * This,
4906            /* [annotation] */
4907            __out  ID3D11Device **ppDevice);
4908       
4909        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4910            ID3D11HullShader * This,
4911            /* [annotation] */
4912            __in  REFGUID guid,
4913            /* [annotation] */
4914            __inout  UINT *pDataSize,
4915            /* [annotation] */
4916            __out_bcount_opt( *pDataSize )  void *pData);
4917       
4918        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4919            ID3D11HullShader * This,
4920            /* [annotation] */
4921            __in  REFGUID guid,
4922            /* [annotation] */
4923            __in  UINT DataSize,
4924            /* [annotation] */
4925            __in_bcount_opt( DataSize )  const void *pData);
4926       
4927        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4928            ID3D11HullShader * This,
4929            /* [annotation] */
4930            __in  REFGUID guid,
4931            /* [annotation] */
4932            __in_opt  const IUnknown *pData);
4933       
4934        END_INTERFACE
4935    } ID3D11HullShaderVtbl;
4936
4937    interface ID3D11HullShader
4938    {
4939        CONST_VTBL struct ID3D11HullShaderVtbl *lpVtbl;
4940    };
4941
4942   
4943
4944#ifdef COBJMACROS
4945
4946
4947#define ID3D11HullShader_QueryInterface(This,riid,ppvObject)   \
4948    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4949
4950#define ID3D11HullShader_AddRef(This)   \
4951    ( (This)->lpVtbl -> AddRef(This) )
4952
4953#define ID3D11HullShader_Release(This)   \
4954    ( (This)->lpVtbl -> Release(This) )
4955
4956
4957#define ID3D11HullShader_GetDevice(This,ppDevice)   \
4958    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
4959
4960#define ID3D11HullShader_GetPrivateData(This,guid,pDataSize,pData)   \
4961    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4962
4963#define ID3D11HullShader_SetPrivateData(This,guid,DataSize,pData)   \
4964    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4965
4966#define ID3D11HullShader_SetPrivateDataInterface(This,guid,pData)   \
4967    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4968
4969
4970#endif /* COBJMACROS */
4971
4972
4973#endif    /* C style interface */
4974
4975
4976
4977
4978#endif    /* __ID3D11HullShader_INTERFACE_DEFINED__ */
4979
4980
4981#ifndef __ID3D11DomainShader_INTERFACE_DEFINED__
4982#define __ID3D11DomainShader_INTERFACE_DEFINED__
4983
4984/* interface ID3D11DomainShader */
4985/* [unique][local][object][uuid] */
4986
4987
4988EXTERN_C const IID IID_ID3D11DomainShader;
4989
4990#if defined(__cplusplus) && !defined(CINTERFACE)
4991   
4992    MIDL_INTERFACE("f582c508-0f36-490c-9977-31eece268cfa")
4993    ID3D11DomainShader : public ID3D11DeviceChild
4994    {
4995    public:
4996    };
4997   
4998#else    /* C style interface */
4999
5000    typedef struct ID3D11DomainShaderVtbl
5001    {
5002        BEGIN_INTERFACE
5003       
5004        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5005            ID3D11DomainShader * This,
5006            /* [in] */ REFIID riid,
5007            /* [annotation][iid_is][out] */
5008            __RPC__deref_out  void **ppvObject);
5009       
5010        ULONG ( STDMETHODCALLTYPE *AddRef )(
5011            ID3D11DomainShader * This);
5012       
5013        ULONG ( STDMETHODCALLTYPE *Release )(
5014            ID3D11DomainShader * This);
5015       
5016        void ( STDMETHODCALLTYPE *GetDevice )(
5017            ID3D11DomainShader * This,
5018            /* [annotation] */
5019            __out  ID3D11Device **ppDevice);
5020       
5021        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5022            ID3D11DomainShader * This,
5023            /* [annotation] */
5024            __in  REFGUID guid,
5025            /* [annotation] */
5026            __inout  UINT *pDataSize,
5027            /* [annotation] */
5028            __out_bcount_opt( *pDataSize )  void *pData);
5029       
5030        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5031            ID3D11DomainShader * This,
5032            /* [annotation] */
5033            __in  REFGUID guid,
5034            /* [annotation] */
5035            __in  UINT DataSize,
5036            /* [annotation] */
5037            __in_bcount_opt( DataSize )  const void *pData);
5038       
5039        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5040            ID3D11DomainShader * This,
5041            /* [annotation] */
5042            __in  REFGUID guid,
5043            /* [annotation] */
5044            __in_opt  const IUnknown *pData);
5045       
5046        END_INTERFACE
5047    } ID3D11DomainShaderVtbl;
5048
5049    interface ID3D11DomainShader
5050    {
5051        CONST_VTBL struct ID3D11DomainShaderVtbl *lpVtbl;
5052    };
5053
5054   
5055
5056#ifdef COBJMACROS
5057
5058
5059#define ID3D11DomainShader_QueryInterface(This,riid,ppvObject)   \
5060    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5061
5062#define ID3D11DomainShader_AddRef(This)   \
5063    ( (This)->lpVtbl -> AddRef(This) )
5064
5065#define ID3D11DomainShader_Release(This)   \
5066    ( (This)->lpVtbl -> Release(This) )
5067
5068
5069#define ID3D11DomainShader_GetDevice(This,ppDevice)   \
5070    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
5071
5072#define ID3D11DomainShader_GetPrivateData(This,guid,pDataSize,pData)   \
5073    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5074
5075#define ID3D11DomainShader_SetPrivateData(This,guid,DataSize,pData)   \
5076    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5077
5078#define ID3D11DomainShader_SetPrivateDataInterface(This,guid,pData)   \
5079    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5080
5081
5082#endif /* COBJMACROS */
5083
5084
5085#endif    /* C style interface */
5086
5087
5088
5089
5090#endif    /* __ID3D11DomainShader_INTERFACE_DEFINED__ */
5091
5092
5093#ifndef __ID3D11GeometryShader_INTERFACE_DEFINED__
5094#define __ID3D11GeometryShader_INTERFACE_DEFINED__
5095
5096/* interface ID3D11GeometryShader */
5097/* [unique][local][object][uuid] */
5098
5099
5100EXTERN_C const IID IID_ID3D11GeometryShader;
5101
5102#if defined(__cplusplus) && !defined(CINTERFACE)
5103   
5104    MIDL_INTERFACE("38325b96-effb-4022-ba02-2e795b70275c")
5105    ID3D11GeometryShader : public ID3D11DeviceChild
5106    {
5107    public:
5108    };
5109   
5110#else    /* C style interface */
5111
5112    typedef struct ID3D11GeometryShaderVtbl
5113    {
5114        BEGIN_INTERFACE
5115       
5116        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5117            ID3D11GeometryShader * This,
5118            /* [in] */ REFIID riid,
5119            /* [annotation][iid_is][out] */
5120            __RPC__deref_out  void **ppvObject);
5121       
5122        ULONG ( STDMETHODCALLTYPE *AddRef )(
5123            ID3D11GeometryShader * This);
5124       
5125        ULONG ( STDMETHODCALLTYPE *Release )(
5126            ID3D11GeometryShader * This);
5127       
5128        void ( STDMETHODCALLTYPE *GetDevice )(
5129            ID3D11GeometryShader * This,
5130            /* [annotation] */
5131            __out  ID3D11Device **ppDevice);
5132       
5133        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5134            ID3D11GeometryShader * This,
5135            /* [annotation] */
5136            __in  REFGUID guid,
5137            /* [annotation] */
5138            __inout  UINT *pDataSize,
5139            /* [annotation] */
5140            __out_bcount_opt( *pDataSize )  void *pData);
5141       
5142        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5143            ID3D11GeometryShader * This,
5144            /* [annotation] */
5145            __in  REFGUID guid,
5146            /* [annotation] */
5147            __in  UINT DataSize,
5148            /* [annotation] */
5149            __in_bcount_opt( DataSize )  const void *pData);
5150       
5151        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5152            ID3D11GeometryShader * This,
5153            /* [annotation] */
5154            __in  REFGUID guid,
5155            /* [annotation] */
5156            __in_opt  const IUnknown *pData);
5157       
5158        END_INTERFACE
5159    } ID3D11GeometryShaderVtbl;
5160
5161    interface ID3D11GeometryShader
5162    {
5163        CONST_VTBL struct ID3D11GeometryShaderVtbl *lpVtbl;
5164    };
5165
5166   
5167
5168#ifdef COBJMACROS
5169
5170
5171#define ID3D11GeometryShader_QueryInterface(This,riid,ppvObject)   \
5172    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5173
5174#define ID3D11GeometryShader_AddRef(This)   \
5175    ( (This)->lpVtbl -> AddRef(This) )
5176
5177#define ID3D11GeometryShader_Release(This)   \
5178    ( (This)->lpVtbl -> Release(This) )
5179
5180
5181#define ID3D11GeometryShader_GetDevice(This,ppDevice)   \
5182    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
5183
5184#define ID3D11GeometryShader_GetPrivateData(This,guid,pDataSize,pData)   \
5185    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5186
5187#define ID3D11GeometryShader_SetPrivateData(This,guid,DataSize,pData)   \
5188    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5189
5190#define ID3D11GeometryShader_SetPrivateDataInterface(This,guid,pData)   \
5191    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5192
5193
5194#endif /* COBJMACROS */
5195
5196
5197#endif    /* C style interface */
5198
5199
5200
5201
5202#endif    /* __ID3D11GeometryShader_INTERFACE_DEFINED__ */
5203
5204
5205#ifndef __ID3D11PixelShader_INTERFACE_DEFINED__
5206#define __ID3D11PixelShader_INTERFACE_DEFINED__
5207
5208/* interface ID3D11PixelShader */
5209/* [unique][local][object][uuid] */
5210
5211
5212EXTERN_C const IID IID_ID3D11PixelShader;
5213
5214#if defined(__cplusplus) && !defined(CINTERFACE)
5215   
5216    MIDL_INTERFACE("ea82e40d-51dc-4f33-93d4-db7c9125ae8c")
5217    ID3D11PixelShader : public ID3D11DeviceChild
5218    {
5219    public:
5220    };
5221   
5222#else    /* C style interface */
5223
5224    typedef struct ID3D11PixelShaderVtbl
5225    {
5226        BEGIN_INTERFACE
5227       
5228        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5229            ID3D11PixelShader * This,
5230            /* [in] */ REFIID riid,
5231            /* [annotation][iid_is][out] */
5232            __RPC__deref_out  void **ppvObject);
5233       
5234        ULONG ( STDMETHODCALLTYPE *AddRef )(
5235            ID3D11PixelShader * This);
5236       
5237        ULONG ( STDMETHODCALLTYPE *Release )(
5238            ID3D11PixelShader * This);
5239       
5240        void ( STDMETHODCALLTYPE *GetDevice )(
5241            ID3D11PixelShader * This,
5242            /* [annotation] */
5243            __out  ID3D11Device **ppDevice);
5244       
5245        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5246            ID3D11PixelShader * This,
5247            /* [annotation] */
5248            __in  REFGUID guid,
5249            /* [annotation] */
5250            __inout  UINT *pDataSize,
5251            /* [annotation] */
5252            __out_bcount_opt( *pDataSize )  void *pData);
5253       
5254        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5255            ID3D11PixelShader * This,
5256            /* [annotation] */
5257            __in  REFGUID guid,
5258            /* [annotation] */
5259            __in  UINT DataSize,
5260            /* [annotation] */
5261            __in_bcount_opt( DataSize )  const void *pData);
5262       
5263        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5264            ID3D11PixelShader * This,
5265            /* [annotation] */
5266            __in  REFGUID guid,
5267            /* [annotation] */
5268            __in_opt  const IUnknown *pData);
5269       
5270        END_INTERFACE
5271    } ID3D11PixelShaderVtbl;
5272
5273    interface ID3D11PixelShader
5274    {
5275        CONST_VTBL struct ID3D11PixelShaderVtbl *lpVtbl;
5276    };
5277
5278   
5279
5280#ifdef COBJMACROS
5281
5282
5283#define ID3D11PixelShader_QueryInterface(This,riid,ppvObject)   \
5284    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5285
5286#define ID3D11PixelShader_AddRef(This)   \
5287    ( (This)->lpVtbl -> AddRef(This) )
5288
5289#define ID3D11PixelShader_Release(This)   \
5290    ( (This)->lpVtbl -> Release(This) )
5291
5292
5293#define ID3D11PixelShader_GetDevice(This,ppDevice)   \
5294    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
5295
5296#define ID3D11PixelShader_GetPrivateData(This,guid,pDataSize,pData)   \
5297    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5298
5299#define ID3D11PixelShader_SetPrivateData(This,guid,DataSize,pData)   \
5300    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5301
5302#define ID3D11PixelShader_SetPrivateDataInterface(This,guid,pData)   \
5303    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5304
5305
5306#endif /* COBJMACROS */
5307
5308
5309#endif    /* C style interface */
5310
5311
5312
5313
5314#endif    /* __ID3D11PixelShader_INTERFACE_DEFINED__ */
5315
5316
5317#ifndef __ID3D11ComputeShader_INTERFACE_DEFINED__
5318#define __ID3D11ComputeShader_INTERFACE_DEFINED__
5319
5320/* interface ID3D11ComputeShader */
5321/* [unique][local][object][uuid] */
5322
5323
5324EXTERN_C const IID IID_ID3D11ComputeShader;
5325
5326#if defined(__cplusplus) && !defined(CINTERFACE)
5327   
5328    MIDL_INTERFACE("4f5b196e-c2bd-495e-bd01-1fded38e4969")
5329    ID3D11ComputeShader : public ID3D11DeviceChild
5330    {
5331    public:
5332    };
5333   
5334#else    /* C style interface */
5335
5336    typedef struct ID3D11ComputeShaderVtbl
5337    {
5338        BEGIN_INTERFACE
5339       
5340        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5341            ID3D11ComputeShader * This,
5342            /* [in] */ REFIID riid,
5343            /* [annotation][iid_is][out] */
5344            __RPC__deref_out  void **ppvObject);
5345       
5346        ULONG ( STDMETHODCALLTYPE *AddRef )(
5347            ID3D11ComputeShader * This);
5348       
5349        ULONG ( STDMETHODCALLTYPE *Release )(
5350            ID3D11ComputeShader * This);
5351       
5352        void ( STDMETHODCALLTYPE *GetDevice )(
5353            ID3D11ComputeShader * This,
5354            /* [annotation] */
5355            __out  ID3D11Device **ppDevice);
5356       
5357        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5358            ID3D11ComputeShader * This,
5359            /* [annotation] */
5360            __in  REFGUID guid,
5361            /* [annotation] */
5362            __inout  UINT *pDataSize,
5363            /* [annotation] */
5364            __out_bcount_opt( *pDataSize )  void *pData);
5365       
5366        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5367            ID3D11ComputeShader * This,
5368            /* [annotation] */
5369            __in  REFGUID guid,
5370            /* [annotation] */
5371            __in  UINT DataSize,
5372            /* [annotation] */
5373            __in_bcount_opt( DataSize )  const void *pData);
5374       
5375        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5376            ID3D11ComputeShader * This,
5377            /* [annotation] */
5378            __in  REFGUID guid,
5379            /* [annotation] */
5380            __in_opt  const IUnknown *pData);
5381       
5382        END_INTERFACE
5383    } ID3D11ComputeShaderVtbl;
5384
5385    interface ID3D11ComputeShader
5386    {
5387        CONST_VTBL struct ID3D11ComputeShaderVtbl *lpVtbl;
5388    };
5389
5390   
5391
5392#ifdef COBJMACROS
5393
5394
5395#define ID3D11ComputeShader_QueryInterface(This,riid,ppvObject)   \
5396    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5397
5398#define ID3D11ComputeShader_AddRef(This)   \
5399    ( (This)->lpVtbl -> AddRef(This) )
5400
5401#define ID3D11ComputeShader_Release(This)   \
5402    ( (This)->lpVtbl -> Release(This) )
5403
5404
5405#define ID3D11ComputeShader_GetDevice(This,ppDevice)   \
5406    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
5407
5408#define ID3D11ComputeShader_GetPrivateData(This,guid,pDataSize,pData)   \
5409    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5410
5411#define ID3D11ComputeShader_SetPrivateData(This,guid,DataSize,pData)   \
5412    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5413
5414#define ID3D11ComputeShader_SetPrivateDataInterface(This,guid,pData)   \
5415    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5416
5417
5418#endif /* COBJMACROS */
5419
5420
5421#endif    /* C style interface */
5422
5423
5424
5425
5426#endif    /* __ID3D11ComputeShader_INTERFACE_DEFINED__ */
5427
5428
5429#ifndef __ID3D11InputLayout_INTERFACE_DEFINED__
5430#define __ID3D11InputLayout_INTERFACE_DEFINED__
5431
5432/* interface ID3D11InputLayout */
5433/* [unique][local][object][uuid] */
5434
5435
5436EXTERN_C const IID IID_ID3D11InputLayout;
5437
5438#if defined(__cplusplus) && !defined(CINTERFACE)
5439   
5440    MIDL_INTERFACE("e4819ddc-4cf0-4025-bd26-5de82a3e07b7")
5441    ID3D11InputLayout : public ID3D11DeviceChild
5442    {
5443    public:
5444    };
5445   
5446#else    /* C style interface */
5447
5448    typedef struct ID3D11InputLayoutVtbl
5449    {
5450        BEGIN_INTERFACE
5451       
5452        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5453            ID3D11InputLayout * This,
5454            /* [in] */ REFIID riid,
5455            /* [annotation][iid_is][out] */
5456            __RPC__deref_out  void **ppvObject);
5457       
5458        ULONG ( STDMETHODCALLTYPE *AddRef )(
5459            ID3D11InputLayout * This);
5460       
5461        ULONG ( STDMETHODCALLTYPE *Release )(
5462            ID3D11InputLayout * This);
5463       
5464        void ( STDMETHODCALLTYPE *GetDevice )(
5465            ID3D11InputLayout * This,
5466            /* [annotation] */
5467            __out  ID3D11Device **ppDevice);
5468       
5469        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5470            ID3D11InputLayout * This,
5471            /* [annotation] */
5472            __in  REFGUID guid,
5473            /* [annotation] */
5474            __inout  UINT *pDataSize,
5475            /* [annotation] */
5476            __out_bcount_opt( *pDataSize )  void *pData);
5477       
5478        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5479            ID3D11InputLayout * This,
5480            /* [annotation] */
5481            __in  REFGUID guid,
5482            /* [annotation] */
5483            __in  UINT DataSize,
5484            /* [annotation] */
5485            __in_bcount_opt( DataSize )  const void *pData);
5486       
5487        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5488            ID3D11InputLayout * This,
5489            /* [annotation] */
5490            __in  REFGUID guid,
5491            /* [annotation] */
5492            __in_opt  const IUnknown *pData);
5493       
5494        END_INTERFACE
5495    } ID3D11InputLayoutVtbl;
5496
5497    interface ID3D11InputLayout
5498    {
5499        CONST_VTBL struct ID3D11InputLayoutVtbl *lpVtbl;
5500    };
5501
5502   
5503
5504#ifdef COBJMACROS
5505
5506
5507#define ID3D11InputLayout_QueryInterface(This,riid,ppvObject)   \
5508    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5509
5510#define ID3D11InputLayout_AddRef(This)   \
5511    ( (This)->lpVtbl -> AddRef(This) )
5512
5513#define ID3D11InputLayout_Release(This)   \
5514    ( (This)->lpVtbl -> Release(This) )
5515
5516
5517#define ID3D11InputLayout_GetDevice(This,ppDevice)   \
5518    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
5519
5520#define ID3D11InputLayout_GetPrivateData(This,guid,pDataSize,pData)   \
5521    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5522
5523#define ID3D11InputLayout_SetPrivateData(This,guid,DataSize,pData)   \
5524    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5525
5526#define ID3D11InputLayout_SetPrivateDataInterface(This,guid,pData)   \
5527    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5528
5529
5530#endif /* COBJMACROS */
5531
5532
5533#endif    /* C style interface */
5534
5535
5536
5537
5538#endif    /* __ID3D11InputLayout_INTERFACE_DEFINED__ */
5539
5540
5541/* interface __MIDL_itf_d3d11_0000_0021 */
5542/* [local] */
5543
5544typedef
5545enum D3D11_FILTER
5546    {   D3D11_FILTER_MIN_MAG_MIP_POINT   = 0,
5547   D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR   = 0x1,
5548   D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT   = 0x4,
5549   D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR   = 0x5,
5550   D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT   = 0x10,
5551   D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR   = 0x11,
5552   D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT   = 0x14,
5553   D3D11_FILTER_MIN_MAG_MIP_LINEAR   = 0x15,
5554   D3D11_FILTER_ANISOTROPIC   = 0x55,
5555   D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT   = 0x80,
5556   D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR   = 0x81,
5557   D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT   = 0x84,
5558   D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR   = 0x85,
5559   D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT   = 0x90,
5560   D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR   = 0x91,
5561   D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT   = 0x94,
5562   D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR   = 0x95,
5563   D3D11_FILTER_COMPARISON_ANISOTROPIC   = 0xd5
5564    }    D3D11_FILTER;
5565
5566typedef
5567enum D3D11_FILTER_TYPE
5568    {   D3D11_FILTER_TYPE_POINT   = 0,
5569   D3D11_FILTER_TYPE_LINEAR   = 1
5570    }    D3D11_FILTER_TYPE;
5571
5572#define   D3D11_FILTER_TYPE_MASK   ( 0x3 )
5573
5574#define   D3D11_MIN_FILTER_SHIFT   ( 4 )
5575
5576#define   D3D11_MAG_FILTER_SHIFT   ( 2 )
5577
5578#define   D3D11_MIP_FILTER_SHIFT   ( 0 )
5579
5580#define   D3D11_COMPARISON_FILTERING_BIT   ( 0x80 )
5581
5582#define   D3D11_ANISOTROPIC_FILTERING_BIT   ( 0x40 )
5583
5584#define D3D11_ENCODE_BASIC_FILTER( min, mag, mip, bComparison )                                           \
5585                                   ( ( D3D11_FILTER ) (                                                   \
5586                                   ( ( bComparison ) ? D3D11_COMPARISON_FILTERING_BIT : 0 ) |             \
5587                                   ( ( ( min ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIN_FILTER_SHIFT ) |   \
5588                                   ( ( ( mag ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MAG_FILTER_SHIFT ) |   \
5589                                   ( ( ( mip ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIP_FILTER_SHIFT ) ) )   
5590#define D3D11_ENCODE_ANISOTROPIC_FILTER( bComparison )                                                \
5591                                         ( ( D3D11_FILTER ) (                                         \
5592                                         D3D11_ANISOTROPIC_FILTERING_BIT |                            \
5593                                         D3D11_ENCODE_BASIC_FILTER( D3D11_FILTER_TYPE_LINEAR,         \
5594                                                                    D3D11_FILTER_TYPE_LINEAR,         \
5595                                                                    D3D11_FILTER_TYPE_LINEAR,         \
5596                                                                    bComparison ) ) )                   
5597#define D3D11_DECODE_MIN_FILTER( d3d11Filter )                                                              \
5598                                 ( ( D3D11_FILTER_TYPE )                                                    \
5599                                 ( ( ( d3d11Filter ) >> D3D11_MIN_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) )
5600#define D3D11_DECODE_MAG_FILTER( d3d11Filter )                                                              \
5601                                 ( ( D3D11_FILTER_TYPE )                                                    \
5602                                 ( ( ( d3d11Filter ) >> D3D11_MAG_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) )
5603#define D3D11_DECODE_MIP_FILTER( d3d11Filter )                                                              \
5604                                 ( ( D3D11_FILTER_TYPE )                                                    \
5605                                 ( ( ( d3d11Filter ) >> D3D11_MIP_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) )
5606#define D3D11_DECODE_IS_COMPARISON_FILTER( d3d11Filter )                                                    \
5607                                 ( ( d3d11Filter ) & D3D11_COMPARISON_FILTERING_BIT )                         
5608#define D3D11_DECODE_IS_ANISOTROPIC_FILTER( d3d11Filter )                                               \
5609                            ( ( ( d3d11Filter ) & D3D11_ANISOTROPIC_FILTERING_BIT ) &&                  \
5610                            ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIN_FILTER( d3d11Filter ) ) &&   \
5611                            ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MAG_FILTER( d3d11Filter ) ) &&   \
5612                            ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIP_FILTER( d3d11Filter ) ) )     
5613typedef
5614enum D3D11_TEXTURE_ADDRESS_MODE
5615    {   D3D11_TEXTURE_ADDRESS_WRAP   = 1,
5616   D3D11_TEXTURE_ADDRESS_MIRROR   = 2,
5617   D3D11_TEXTURE_ADDRESS_CLAMP   = 3,
5618   D3D11_TEXTURE_ADDRESS_BORDER   = 4,
5619   D3D11_TEXTURE_ADDRESS_MIRROR_ONCE   = 5
5620    }    D3D11_TEXTURE_ADDRESS_MODE;
5621
5622typedef struct D3D11_SAMPLER_DESC
5623    {
5624    D3D11_FILTER Filter;
5625    D3D11_TEXTURE_ADDRESS_MODE AddressU;
5626    D3D11_TEXTURE_ADDRESS_MODE AddressV;
5627    D3D11_TEXTURE_ADDRESS_MODE AddressW;
5628    FLOAT MipLODBias;
5629    UINT MaxAnisotropy;
5630    D3D11_COMPARISON_FUNC ComparisonFunc;
5631    FLOAT BorderColor[ 4 ];
5632    FLOAT MinLOD;
5633    FLOAT MaxLOD;
5634    }    D3D11_SAMPLER_DESC;
5635
5636#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
5637}
5638struct CD3D11_SAMPLER_DESC : public D3D11_SAMPLER_DESC
5639{
5640    CD3D11_SAMPLER_DESC()
5641    {}
5642    explicit CD3D11_SAMPLER_DESC( const D3D11_SAMPLER_DESC& o ) :
5643        D3D11_SAMPLER_DESC( o )
5644    {}
5645    explicit CD3D11_SAMPLER_DESC( CD3D11_DEFAULT )
5646    {
5647        Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR;
5648        AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;
5649        AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;
5650        AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
5651        MipLODBias = 0;
5652        MaxAnisotropy = 1;
5653        ComparisonFunc = D3D11_COMPARISON_NEVER;
5654        BorderColor[ 0 ] = 1.0f;
5655        BorderColor[ 1 ] = 1.0f;
5656        BorderColor[ 2 ] = 1.0f;
5657        BorderColor[ 3 ] = 1.0f;
5658        MinLOD = -3.402823466e+38F; // -FLT_MAX
5659        MaxLOD = 3.402823466e+38F; // FLT_MAX
5660    }
5661    explicit CD3D11_SAMPLER_DESC(
5662        D3D11_FILTER filter,
5663        D3D11_TEXTURE_ADDRESS_MODE addressU,
5664        D3D11_TEXTURE_ADDRESS_MODE addressV,
5665        D3D11_TEXTURE_ADDRESS_MODE addressW,
5666        FLOAT mipLODBias,
5667        UINT maxAnisotropy,
5668        D3D11_COMPARISON_FUNC comparisonFunc,
5669        __in_ecount_opt( 4 ) const FLOAT* borderColor, // RGBA
5670        FLOAT minLOD,
5671        FLOAT maxLOD )
5672    {
5673        Filter = filter;
5674        AddressU = addressU;
5675        AddressV = addressV;
5676        AddressW = addressW;
5677        MipLODBias = mipLODBias;
5678        MaxAnisotropy = maxAnisotropy;
5679        ComparisonFunc = comparisonFunc;
5680        const float defaultColor[ 4 ] = { 1.0f, 1.0f, 1.0f, 1.0f };
5681        if (!borderColor) borderColor = defaultColor;
5682        BorderColor[ 0 ] = borderColor[ 0 ];
5683        BorderColor[ 1 ] = borderColor[ 1 ];
5684        BorderColor[ 2 ] = borderColor[ 2 ];
5685        BorderColor[ 3 ] = borderColor[ 3 ];
5686        MinLOD = minLOD;
5687        MaxLOD = maxLOD;
5688    }
5689    ~CD3D11_SAMPLER_DESC() {}
5690    operator const D3D11_SAMPLER_DESC&() const { return *this; }
5691};
5692extern "C"{
5693#endif
5694
5695
5696extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0021_v0_0_c_ifspec;
5697extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0021_v0_0_s_ifspec;
5698
5699#ifndef __ID3D11SamplerState_INTERFACE_DEFINED__
5700#define __ID3D11SamplerState_INTERFACE_DEFINED__
5701
5702/* interface ID3D11SamplerState */
5703/* [unique][local][object][uuid] */
5704
5705
5706EXTERN_C const IID IID_ID3D11SamplerState;
5707
5708#if defined(__cplusplus) && !defined(CINTERFACE)
5709   
5710    MIDL_INTERFACE("da6fea51-564c-4487-9810-f0d0f9b4e3a5")
5711    ID3D11SamplerState : public ID3D11DeviceChild
5712    {
5713    public:
5714        virtual void STDMETHODCALLTYPE GetDesc(
5715            /* [annotation] */
5716            __out  D3D11_SAMPLER_DESC *pDesc) = 0;
5717       
5718    };
5719   
5720#else    /* C style interface */
5721
5722    typedef struct ID3D11SamplerStateVtbl
5723    {
5724        BEGIN_INTERFACE
5725       
5726        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5727            ID3D11SamplerState * This,
5728            /* [in] */ REFIID riid,
5729            /* [annotation][iid_is][out] */
5730            __RPC__deref_out  void **ppvObject);
5731       
5732        ULONG ( STDMETHODCALLTYPE *AddRef )(
5733            ID3D11SamplerState * This);
5734       
5735        ULONG ( STDMETHODCALLTYPE *Release )(
5736            ID3D11SamplerState * This);
5737       
5738        void ( STDMETHODCALLTYPE *GetDevice )(
5739            ID3D11SamplerState * This,
5740            /* [annotation] */
5741            __out  ID3D11Device **ppDevice);
5742       
5743        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5744            ID3D11SamplerState * This,
5745            /* [annotation] */
5746            __in  REFGUID guid,
5747            /* [annotation] */
5748            __inout  UINT *pDataSize,
5749            /* [annotation] */
5750            __out_bcount_opt( *pDataSize )  void *pData);
5751       
5752        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5753            ID3D11SamplerState * This,
5754            /* [annotation] */
5755            __in  REFGUID guid,
5756            /* [annotation] */
5757            __in  UINT DataSize,
5758            /* [annotation] */
5759            __in_bcount_opt( DataSize )  const void *pData);
5760       
5761        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5762            ID3D11SamplerState * This,
5763            /* [annotation] */
5764            __in  REFGUID guid,
5765            /* [annotation] */
5766            __in_opt  const IUnknown *pData);
5767       
5768        void ( STDMETHODCALLTYPE *GetDesc )(
5769            ID3D11SamplerState * This,
5770            /* [annotation] */
5771            __out  D3D11_SAMPLER_DESC *pDesc);
5772       
5773        END_INTERFACE
5774    } ID3D11SamplerStateVtbl;
5775
5776    interface ID3D11SamplerState
5777    {
5778        CONST_VTBL struct ID3D11SamplerStateVtbl *lpVtbl;
5779    };
5780
5781   
5782
5783#ifdef COBJMACROS
5784
5785
5786#define ID3D11SamplerState_QueryInterface(This,riid,ppvObject)   \
5787    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5788
5789#define ID3D11SamplerState_AddRef(This)   \
5790    ( (This)->lpVtbl -> AddRef(This) )
5791
5792#define ID3D11SamplerState_Release(This)   \
5793    ( (This)->lpVtbl -> Release(This) )
5794
5795
5796#define ID3D11SamplerState_GetDevice(This,ppDevice)   \
5797    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
5798
5799#define ID3D11SamplerState_GetPrivateData(This,guid,pDataSize,pData)   \
5800    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5801
5802#define ID3D11SamplerState_SetPrivateData(This,guid,DataSize,pData)   \
5803    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5804
5805#define ID3D11SamplerState_SetPrivateDataInterface(This,guid,pData)   \
5806    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5807
5808
5809#define ID3D11SamplerState_GetDesc(This,pDesc)   \
5810    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
5811
5812#endif /* COBJMACROS */
5813
5814
5815#endif    /* C style interface */
5816
5817
5818
5819
5820#endif    /* __ID3D11SamplerState_INTERFACE_DEFINED__ */
5821
5822
5823/* interface __MIDL_itf_d3d11_0000_0022 */
5824/* [local] */
5825
5826typedef
5827enum D3D11_FORMAT_SUPPORT
5828    {   D3D11_FORMAT_SUPPORT_BUFFER   = 0x1,
5829   D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER   = 0x2,
5830   D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER   = 0x4,
5831   D3D11_FORMAT_SUPPORT_SO_BUFFER   = 0x8,
5832   D3D11_FORMAT_SUPPORT_TEXTURE1D   = 0x10,
5833   D3D11_FORMAT_SUPPORT_TEXTURE2D   = 0x20,
5834   D3D11_FORMAT_SUPPORT_TEXTURE3D   = 0x40,
5835   D3D11_FORMAT_SUPPORT_TEXTURECUBE   = 0x80,
5836   D3D11_FORMAT_SUPPORT_SHADER_LOAD   = 0x100,
5837   D3D11_FORMAT_SUPPORT_SHADER_SAMPLE   = 0x200,
5838   D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON   = 0x400,
5839   D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT   = 0x800,
5840   D3D11_FORMAT_SUPPORT_MIP   = 0x1000,
5841   D3D11_FORMAT_SUPPORT_MIP_AUTOGEN   = 0x2000,
5842   D3D11_FORMAT_SUPPORT_RENDER_TARGET   = 0x4000,
5843   D3D11_FORMAT_SUPPORT_BLENDABLE   = 0x8000,
5844   D3D11_FORMAT_SUPPORT_DEPTH_STENCIL   = 0x10000,
5845   D3D11_FORMAT_SUPPORT_CPU_LOCKABLE   = 0x20000,
5846   D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE   = 0x40000,
5847   D3D11_FORMAT_SUPPORT_DISPLAY   = 0x80000,
5848   D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT   = 0x100000,
5849   D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET   = 0x200000,
5850   D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD   = 0x400000,
5851   D3D11_FORMAT_SUPPORT_SHADER_GATHER   = 0x800000,
5852   D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST   = 0x1000000,
5853   D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW   = 0x2000000,
5854   D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON   = 0x4000000
5855    }    D3D11_FORMAT_SUPPORT;
5856
5857typedef
5858enum D3D11_FORMAT_SUPPORT2
5859    {   D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD   = 0x1,
5860   D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS   = 0x2,
5861   D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE   = 0x4,
5862   D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE   = 0x8,
5863   D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX   = 0x10,
5864   D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX   = 0x20,
5865   D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD   = 0x40,
5866   D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE   = 0x80
5867    }    D3D11_FORMAT_SUPPORT2;
5868
5869
5870
5871extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0022_v0_0_c_ifspec;
5872extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0022_v0_0_s_ifspec;
5873
5874#ifndef __ID3D11Asynchronous_INTERFACE_DEFINED__
5875#define __ID3D11Asynchronous_INTERFACE_DEFINED__
5876
5877/* interface ID3D11Asynchronous */
5878/* [unique][local][object][uuid] */
5879
5880
5881EXTERN_C const IID IID_ID3D11Asynchronous;
5882
5883#if defined(__cplusplus) && !defined(CINTERFACE)
5884   
5885    MIDL_INTERFACE("4b35d0cd-1e15-4258-9c98-1b1333f6dd3b")
5886    ID3D11Asynchronous : public ID3D11DeviceChild
5887    {
5888    public:
5889        virtual UINT STDMETHODCALLTYPE GetDataSize( void) = 0;
5890       
5891    };
5892   
5893#else    /* C style interface */
5894
5895    typedef struct ID3D11AsynchronousVtbl
5896    {
5897        BEGIN_INTERFACE
5898       
5899        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5900            ID3D11Asynchronous * This,
5901            /* [in] */ REFIID riid,
5902            /* [annotation][iid_is][out] */
5903            __RPC__deref_out  void **ppvObject);
5904       
5905        ULONG ( STDMETHODCALLTYPE *AddRef )(
5906            ID3D11Asynchronous * This);
5907       
5908        ULONG ( STDMETHODCALLTYPE *Release )(
5909            ID3D11Asynchronous * This);
5910       
5911        void ( STDMETHODCALLTYPE *GetDevice )(
5912            ID3D11Asynchronous * This,
5913            /* [annotation] */
5914            __out  ID3D11Device **ppDevice);
5915       
5916        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5917            ID3D11Asynchronous * This,
5918            /* [annotation] */
5919            __in  REFGUID guid,
5920            /* [annotation] */
5921            __inout  UINT *pDataSize,
5922            /* [annotation] */
5923            __out_bcount_opt( *pDataSize )  void *pData);
5924       
5925        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5926            ID3D11Asynchronous * This,
5927            /* [annotation] */
5928            __in  REFGUID guid,
5929            /* [annotation] */
5930            __in  UINT DataSize,
5931            /* [annotation] */
5932            __in_bcount_opt( DataSize )  const void *pData);
5933       
5934        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5935            ID3D11Asynchronous * This,
5936            /* [annotation] */
5937            __in  REFGUID guid,
5938            /* [annotation] */
5939            __in_opt  const IUnknown *pData);
5940       
5941        UINT ( STDMETHODCALLTYPE *GetDataSize )(
5942            ID3D11Asynchronous * This);
5943       
5944        END_INTERFACE
5945    } ID3D11AsynchronousVtbl;
5946
5947    interface ID3D11Asynchronous
5948    {
5949        CONST_VTBL struct ID3D11AsynchronousVtbl *lpVtbl;
5950    };
5951
5952   
5953
5954#ifdef COBJMACROS
5955
5956
5957#define ID3D11Asynchronous_QueryInterface(This,riid,ppvObject)   \
5958    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5959
5960#define ID3D11Asynchronous_AddRef(This)   \
5961    ( (This)->lpVtbl -> AddRef(This) )
5962
5963#define ID3D11Asynchronous_Release(This)   \
5964    ( (This)->lpVtbl -> Release(This) )
5965
5966
5967#define ID3D11Asynchronous_GetDevice(This,ppDevice)   \
5968    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
5969
5970#define ID3D11Asynchronous_GetPrivateData(This,guid,pDataSize,pData)   \
5971    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5972
5973#define ID3D11Asynchronous_SetPrivateData(This,guid,DataSize,pData)   \
5974    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5975
5976#define ID3D11Asynchronous_SetPrivateDataInterface(This,guid,pData)   \
5977    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5978
5979
5980#define ID3D11Asynchronous_GetDataSize(This)   \
5981    ( (This)->lpVtbl -> GetDataSize(This) )
5982
5983#endif /* COBJMACROS */
5984
5985
5986#endif    /* C style interface */
5987
5988
5989
5990
5991#endif    /* __ID3D11Asynchronous_INTERFACE_DEFINED__ */
5992
5993
5994/* interface __MIDL_itf_d3d11_0000_0023 */
5995/* [local] */
5996
5997typedef
5998enum D3D11_ASYNC_GETDATA_FLAG
5999    {   D3D11_ASYNC_GETDATA_DONOTFLUSH   = 0x1
6000    }    D3D11_ASYNC_GETDATA_FLAG;
6001
6002typedef
6003enum D3D11_QUERY
6004    {   D3D11_QUERY_EVENT   = 0,
6005   D3D11_QUERY_OCCLUSION   = ( D3D11_QUERY_EVENT + 1 ) ,
6006   D3D11_QUERY_TIMESTAMP   = ( D3D11_QUERY_OCCLUSION + 1 ) ,
6007   D3D11_QUERY_TIMESTAMP_DISJOINT   = ( D3D11_QUERY_TIMESTAMP + 1 ) ,
6008   D3D11_QUERY_PIPELINE_STATISTICS   = ( D3D11_QUERY_TIMESTAMP_DISJOINT + 1 ) ,
6009   D3D11_QUERY_OCCLUSION_PREDICATE   = ( D3D11_QUERY_PIPELINE_STATISTICS + 1 ) ,
6010   D3D11_QUERY_SO_STATISTICS   = ( D3D11_QUERY_OCCLUSION_PREDICATE + 1 ) ,
6011   D3D11_QUERY_SO_OVERFLOW_PREDICATE   = ( D3D11_QUERY_SO_STATISTICS + 1 ) ,
6012   D3D11_QUERY_SO_STATISTICS_STREAM0   = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE + 1 ) ,
6013   D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0   = ( D3D11_QUERY_SO_STATISTICS_STREAM0 + 1 ) ,
6014   D3D11_QUERY_SO_STATISTICS_STREAM1   = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 + 1 ) ,
6015   D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1   = ( D3D11_QUERY_SO_STATISTICS_STREAM1 + 1 ) ,
6016   D3D11_QUERY_SO_STATISTICS_STREAM2   = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 + 1 ) ,
6017   D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2   = ( D3D11_QUERY_SO_STATISTICS_STREAM2 + 1 ) ,
6018   D3D11_QUERY_SO_STATISTICS_STREAM3   = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 + 1 ) ,
6019   D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3   = ( D3D11_QUERY_SO_STATISTICS_STREAM3 + 1 )
6020    }    D3D11_QUERY;
6021
6022typedef
6023enum D3D11_QUERY_MISC_FLAG
6024    {   D3D11_QUERY_MISC_PREDICATEHINT   = 0x1
6025    }    D3D11_QUERY_MISC_FLAG;
6026
6027typedef struct D3D11_QUERY_DESC
6028    {
6029    D3D11_QUERY Query;
6030    UINT MiscFlags;
6031    }    D3D11_QUERY_DESC;
6032
6033#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
6034}
6035struct CD3D11_QUERY_DESC : public D3D11_QUERY_DESC
6036{
6037    CD3D11_QUERY_DESC()
6038    {}
6039    explicit CD3D11_QUERY_DESC( const D3D11_QUERY_DESC& o ) :
6040        D3D11_QUERY_DESC( o )
6041    {}
6042    explicit CD3D11_QUERY_DESC(
6043        D3D11_QUERY query,
6044        UINT miscFlags = 0 )
6045    {
6046        Query = query;
6047        MiscFlags = miscFlags;
6048    }
6049    ~CD3D11_QUERY_DESC() {}
6050    operator const D3D11_QUERY_DESC&() const { return *this; }
6051};
6052extern "C"{
6053#endif
6054
6055
6056extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0023_v0_0_c_ifspec;
6057extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0023_v0_0_s_ifspec;
6058
6059#ifndef __ID3D11Query_INTERFACE_DEFINED__
6060#define __ID3D11Query_INTERFACE_DEFINED__
6061
6062/* interface ID3D11Query */
6063/* [unique][local][object][uuid] */
6064
6065
6066EXTERN_C const IID IID_ID3D11Query;
6067
6068#if defined(__cplusplus) && !defined(CINTERFACE)
6069   
6070    MIDL_INTERFACE("d6c00747-87b7-425e-b84d-44d108560afd")
6071    ID3D11Query : public ID3D11Asynchronous
6072    {
6073    public:
6074        virtual void STDMETHODCALLTYPE GetDesc(
6075            /* [annotation] */
6076            __out  D3D11_QUERY_DESC *pDesc) = 0;
6077       
6078    };
6079   
6080#else    /* C style interface */
6081
6082    typedef struct ID3D11QueryVtbl
6083    {
6084        BEGIN_INTERFACE
6085       
6086        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6087            ID3D11Query * This,
6088            /* [in] */ REFIID riid,
6089            /* [annotation][iid_is][out] */
6090            __RPC__deref_out  void **ppvObject);
6091       
6092        ULONG ( STDMETHODCALLTYPE *AddRef )(
6093            ID3D11Query * This);
6094       
6095        ULONG ( STDMETHODCALLTYPE *Release )(
6096            ID3D11Query * This);
6097       
6098        void ( STDMETHODCALLTYPE *GetDevice )(
6099            ID3D11Query * This,
6100            /* [annotation] */
6101            __out  ID3D11Device **ppDevice);
6102       
6103        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6104            ID3D11Query * This,
6105            /* [annotation] */
6106            __in  REFGUID guid,
6107            /* [annotation] */
6108            __inout  UINT *pDataSize,
6109            /* [annotation] */
6110            __out_bcount_opt( *pDataSize )  void *pData);
6111       
6112        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6113            ID3D11Query * This,
6114            /* [annotation] */
6115            __in  REFGUID guid,
6116            /* [annotation] */
6117            __in  UINT DataSize,
6118            /* [annotation] */
6119            __in_bcount_opt( DataSize )  const void *pData);
6120       
6121        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6122            ID3D11Query * This,
6123            /* [annotation] */
6124            __in  REFGUID guid,
6125            /* [annotation] */
6126            __in_opt  const IUnknown *pData);
6127       
6128        UINT ( STDMETHODCALLTYPE *GetDataSize )(
6129            ID3D11Query * This);
6130       
6131        void ( STDMETHODCALLTYPE *GetDesc )(
6132            ID3D11Query * This,
6133            /* [annotation] */
6134            __out  D3D11_QUERY_DESC *pDesc);
6135       
6136        END_INTERFACE
6137    } ID3D11QueryVtbl;
6138
6139    interface ID3D11Query
6140    {
6141        CONST_VTBL struct ID3D11QueryVtbl *lpVtbl;
6142    };
6143
6144   
6145
6146#ifdef COBJMACROS
6147
6148
6149#define ID3D11Query_QueryInterface(This,riid,ppvObject)   \
6150    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6151
6152#define ID3D11Query_AddRef(This)   \
6153    ( (This)->lpVtbl -> AddRef(This) )
6154
6155#define ID3D11Query_Release(This)   \
6156    ( (This)->lpVtbl -> Release(This) )
6157
6158
6159#define ID3D11Query_GetDevice(This,ppDevice)   \
6160    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
6161
6162#define ID3D11Query_GetPrivateData(This,guid,pDataSize,pData)   \
6163    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6164
6165#define ID3D11Query_SetPrivateData(This,guid,DataSize,pData)   \
6166    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6167
6168#define ID3D11Query_SetPrivateDataInterface(This,guid,pData)   \
6169    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6170
6171
6172#define ID3D11Query_GetDataSize(This)   \
6173    ( (This)->lpVtbl -> GetDataSize(This) )
6174
6175
6176#define ID3D11Query_GetDesc(This,pDesc)   \
6177    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
6178
6179#endif /* COBJMACROS */
6180
6181
6182#endif    /* C style interface */
6183
6184
6185
6186
6187#endif    /* __ID3D11Query_INTERFACE_DEFINED__ */
6188
6189
6190#ifndef __ID3D11Predicate_INTERFACE_DEFINED__
6191#define __ID3D11Predicate_INTERFACE_DEFINED__
6192
6193/* interface ID3D11Predicate */
6194/* [unique][local][object][uuid] */
6195
6196
6197EXTERN_C const IID IID_ID3D11Predicate;
6198
6199#if defined(__cplusplus) && !defined(CINTERFACE)
6200   
6201    MIDL_INTERFACE("9eb576dd-9f77-4d86-81aa-8bab5fe490e2")
6202    ID3D11Predicate : public ID3D11Query
6203    {
6204    public:
6205    };
6206   
6207#else    /* C style interface */
6208
6209    typedef struct ID3D11PredicateVtbl
6210    {
6211        BEGIN_INTERFACE
6212       
6213        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6214            ID3D11Predicate * This,
6215            /* [in] */ REFIID riid,
6216            /* [annotation][iid_is][out] */
6217            __RPC__deref_out  void **ppvObject);
6218       
6219        ULONG ( STDMETHODCALLTYPE *AddRef )(
6220            ID3D11Predicate * This);
6221       
6222        ULONG ( STDMETHODCALLTYPE *Release )(
6223            ID3D11Predicate * This);
6224       
6225        void ( STDMETHODCALLTYPE *GetDevice )(
6226            ID3D11Predicate * This,
6227            /* [annotation] */
6228            __out  ID3D11Device **ppDevice);
6229       
6230        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6231            ID3D11Predicate * This,
6232            /* [annotation] */
6233            __in  REFGUID guid,
6234            /* [annotation] */
6235            __inout  UINT *pDataSize,
6236            /* [annotation] */
6237            __out_bcount_opt( *pDataSize )  void *pData);
6238       
6239        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6240            ID3D11Predicate * This,
6241            /* [annotation] */
6242            __in  REFGUID guid,
6243            /* [annotation] */
6244            __in  UINT DataSize,
6245            /* [annotation] */
6246            __in_bcount_opt( DataSize )  const void *pData);
6247       
6248        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6249            ID3D11Predicate * This,
6250            /* [annotation] */
6251            __in  REFGUID guid,
6252            /* [annotation] */
6253            __in_opt  const IUnknown *pData);
6254       
6255        UINT ( STDMETHODCALLTYPE *GetDataSize )(
6256            ID3D11Predicate * This);
6257       
6258        void ( STDMETHODCALLTYPE *GetDesc )(
6259            ID3D11Predicate * This,
6260            /* [annotation] */
6261            __out  D3D11_QUERY_DESC *pDesc);
6262       
6263        END_INTERFACE
6264    } ID3D11PredicateVtbl;
6265
6266    interface ID3D11Predicate
6267    {
6268        CONST_VTBL struct ID3D11PredicateVtbl *lpVtbl;
6269    };
6270
6271   
6272
6273#ifdef COBJMACROS
6274
6275
6276#define ID3D11Predicate_QueryInterface(This,riid,ppvObject)   \
6277    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6278
6279#define ID3D11Predicate_AddRef(This)   \
6280    ( (This)->lpVtbl -> AddRef(This) )
6281
6282#define ID3D11Predicate_Release(This)   \
6283    ( (This)->lpVtbl -> Release(This) )
6284
6285
6286#define ID3D11Predicate_GetDevice(This,ppDevice)   \
6287    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
6288
6289#define ID3D11Predicate_GetPrivateData(This,guid,pDataSize,pData)   \
6290    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6291
6292#define ID3D11Predicate_SetPrivateData(This,guid,DataSize,pData)   \
6293    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6294
6295#define ID3D11Predicate_SetPrivateDataInterface(This,guid,pData)   \
6296    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6297
6298
6299#define ID3D11Predicate_GetDataSize(This)   \
6300    ( (This)->lpVtbl -> GetDataSize(This) )
6301
6302
6303#define ID3D11Predicate_GetDesc(This,pDesc)   \
6304    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
6305
6306
6307#endif /* COBJMACROS */
6308
6309
6310#endif    /* C style interface */
6311
6312
6313
6314
6315#endif    /* __ID3D11Predicate_INTERFACE_DEFINED__ */
6316
6317
6318/* interface __MIDL_itf_d3d11_0000_0025 */
6319/* [local] */
6320
6321typedef struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT
6322    {
6323    UINT64 Frequency;
6324    BOOL Disjoint;
6325    }    D3D11_QUERY_DATA_TIMESTAMP_DISJOINT;
6326
6327typedef struct D3D11_QUERY_DATA_PIPELINE_STATISTICS
6328    {
6329    UINT64 IAVertices;
6330    UINT64 IAPrimitives;
6331    UINT64 VSInvocations;
6332    UINT64 GSInvocations;
6333    UINT64 GSPrimitives;
6334    UINT64 CInvocations;
6335    UINT64 CPrimitives;
6336    UINT64 PSInvocations;
6337    UINT64 HSInvocations;
6338    UINT64 DSInvocations;
6339    UINT64 CSInvocations;
6340    }    D3D11_QUERY_DATA_PIPELINE_STATISTICS;
6341
6342typedef struct D3D11_QUERY_DATA_SO_STATISTICS
6343    {
6344    UINT64 NumPrimitivesWritten;
6345    UINT64 PrimitivesStorageNeeded;
6346    }    D3D11_QUERY_DATA_SO_STATISTICS;
6347
6348typedef
6349enum D3D11_COUNTER
6350    {   D3D11_COUNTER_DEVICE_DEPENDENT_0   = 0x40000000
6351    }    D3D11_COUNTER;
6352
6353typedef
6354enum D3D11_COUNTER_TYPE
6355    {   D3D11_COUNTER_TYPE_FLOAT32   = 0,
6356   D3D11_COUNTER_TYPE_UINT16   = ( D3D11_COUNTER_TYPE_FLOAT32 + 1 ) ,
6357   D3D11_COUNTER_TYPE_UINT32   = ( D3D11_COUNTER_TYPE_UINT16 + 1 ) ,
6358   D3D11_COUNTER_TYPE_UINT64   = ( D3D11_COUNTER_TYPE_UINT32 + 1 )
6359    }    D3D11_COUNTER_TYPE;
6360
6361typedef struct D3D11_COUNTER_DESC
6362    {
6363    D3D11_COUNTER Counter;
6364    UINT MiscFlags;
6365    }    D3D11_COUNTER_DESC;
6366
6367#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
6368}
6369struct CD3D11_COUNTER_DESC : public D3D11_COUNTER_DESC
6370{
6371    CD3D11_COUNTER_DESC()
6372    {}
6373    explicit CD3D11_COUNTER_DESC( const D3D11_COUNTER_DESC& o ) :
6374        D3D11_COUNTER_DESC( o )
6375    {}
6376    explicit CD3D11_COUNTER_DESC(
6377        D3D11_COUNTER counter,
6378        UINT miscFlags = 0 )
6379    {
6380        Counter = counter;
6381        MiscFlags = miscFlags;
6382    }
6383    ~CD3D11_COUNTER_DESC() {}
6384    operator const D3D11_COUNTER_DESC&() const { return *this; }
6385};
6386extern "C"{
6387#endif
6388typedef struct D3D11_COUNTER_INFO
6389    {
6390    D3D11_COUNTER LastDeviceDependentCounter;
6391    UINT NumSimultaneousCounters;
6392    UINT8 NumDetectableParallelUnits;
6393    }    D3D11_COUNTER_INFO;
6394
6395
6396
6397extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0025_v0_0_c_ifspec;
6398extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0025_v0_0_s_ifspec;
6399
6400#ifndef __ID3D11Counter_INTERFACE_DEFINED__
6401#define __ID3D11Counter_INTERFACE_DEFINED__
6402
6403/* interface ID3D11Counter */
6404/* [unique][local][object][uuid] */
6405
6406
6407EXTERN_C const IID IID_ID3D11Counter;
6408
6409#if defined(__cplusplus) && !defined(CINTERFACE)
6410   
6411    MIDL_INTERFACE("6e8c49fb-a371-4770-b440-29086022b741")
6412    ID3D11Counter : public ID3D11Asynchronous
6413    {
6414    public:
6415        virtual void STDMETHODCALLTYPE GetDesc(
6416            /* [annotation] */
6417            __out  D3D11_COUNTER_DESC *pDesc) = 0;
6418       
6419    };
6420   
6421#else    /* C style interface */
6422
6423    typedef struct ID3D11CounterVtbl
6424    {
6425        BEGIN_INTERFACE
6426       
6427        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6428            ID3D11Counter * This,
6429            /* [in] */ REFIID riid,
6430            /* [annotation][iid_is][out] */
6431            __RPC__deref_out  void **ppvObject);
6432       
6433        ULONG ( STDMETHODCALLTYPE *AddRef )(
6434            ID3D11Counter * This);
6435       
6436        ULONG ( STDMETHODCALLTYPE *Release )(
6437            ID3D11Counter * This);
6438       
6439        void ( STDMETHODCALLTYPE *GetDevice )(
6440            ID3D11Counter * This,
6441            /* [annotation] */
6442            __out  ID3D11Device **ppDevice);
6443       
6444        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6445            ID3D11Counter * This,
6446            /* [annotation] */
6447            __in  REFGUID guid,
6448            /* [annotation] */
6449            __inout  UINT *pDataSize,
6450            /* [annotation] */
6451            __out_bcount_opt( *pDataSize )  void *pData);
6452       
6453        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6454            ID3D11Counter * This,
6455            /* [annotation] */
6456            __in  REFGUID guid,
6457            /* [annotation] */
6458            __in  UINT DataSize,
6459            /* [annotation] */
6460            __in_bcount_opt( DataSize )  const void *pData);
6461       
6462        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6463            ID3D11Counter * This,
6464            /* [annotation] */
6465            __in  REFGUID guid,
6466            /* [annotation] */
6467            __in_opt  const IUnknown *pData);
6468       
6469        UINT ( STDMETHODCALLTYPE *GetDataSize )(
6470            ID3D11Counter * This);
6471       
6472        void ( STDMETHODCALLTYPE *GetDesc )(
6473            ID3D11Counter * This,
6474            /* [annotation] */
6475            __out  D3D11_COUNTER_DESC *pDesc);
6476       
6477        END_INTERFACE
6478    } ID3D11CounterVtbl;
6479
6480    interface ID3D11Counter
6481    {
6482        CONST_VTBL struct ID3D11CounterVtbl *lpVtbl;
6483    };
6484
6485   
6486
6487#ifdef COBJMACROS
6488
6489
6490#define ID3D11Counter_QueryInterface(This,riid,ppvObject)   \
6491    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6492
6493#define ID3D11Counter_AddRef(This)   \
6494    ( (This)->lpVtbl -> AddRef(This) )
6495
6496#define ID3D11Counter_Release(This)   \
6497    ( (This)->lpVtbl -> Release(This) )
6498
6499
6500#define ID3D11Counter_GetDevice(This,ppDevice)   \
6501    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
6502
6503#define ID3D11Counter_GetPrivateData(This,guid,pDataSize,pData)   \
6504    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6505
6506#define ID3D11Counter_SetPrivateData(This,guid,DataSize,pData)   \
6507    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6508
6509#define ID3D11Counter_SetPrivateDataInterface(This,guid,pData)   \
6510    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6511
6512
6513#define ID3D11Counter_GetDataSize(This)   \
6514    ( (This)->lpVtbl -> GetDataSize(This) )
6515
6516
6517#define ID3D11Counter_GetDesc(This,pDesc)   \
6518    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
6519
6520#endif /* COBJMACROS */
6521
6522
6523#endif    /* C style interface */
6524
6525
6526
6527
6528#endif    /* __ID3D11Counter_INTERFACE_DEFINED__ */
6529
6530
6531/* interface __MIDL_itf_d3d11_0000_0026 */
6532/* [local] */
6533
6534typedef
6535enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS
6536    {   D3D11_STANDARD_MULTISAMPLE_PATTERN   = 0xffffffff,
6537   D3D11_CENTER_MULTISAMPLE_PATTERN   = 0xfffffffe
6538    }    D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
6539
6540typedef
6541enum D3D11_DEVICE_CONTEXT_TYPE
6542    {   D3D11_DEVICE_CONTEXT_IMMEDIATE   = 0,
6543   D3D11_DEVICE_CONTEXT_DEFERRED   = ( D3D11_DEVICE_CONTEXT_IMMEDIATE + 1 )
6544    }    D3D11_DEVICE_CONTEXT_TYPE;
6545
6546typedef struct D3D11_CLASS_INSTANCE_DESC
6547    {
6548    UINT InstanceId;
6549    UINT InstanceIndex;
6550    UINT TypeId;
6551    UINT ConstantBuffer;
6552    UINT BaseConstantBufferOffset;
6553    UINT BaseTexture;
6554    UINT BaseSampler;
6555    BOOL Created;
6556    }    D3D11_CLASS_INSTANCE_DESC;
6557
6558
6559
6560extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0026_v0_0_c_ifspec;
6561extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0026_v0_0_s_ifspec;
6562
6563#ifndef __ID3D11ClassInstance_INTERFACE_DEFINED__
6564#define __ID3D11ClassInstance_INTERFACE_DEFINED__
6565
6566/* interface ID3D11ClassInstance */
6567/* [unique][local][object][uuid] */
6568
6569
6570EXTERN_C const IID IID_ID3D11ClassInstance;
6571
6572#if defined(__cplusplus) && !defined(CINTERFACE)
6573   
6574    MIDL_INTERFACE("a6cd7faa-b0b7-4a2f-9436-8662a65797cb")
6575    ID3D11ClassInstance : public ID3D11DeviceChild
6576    {
6577    public:
6578        virtual void STDMETHODCALLTYPE GetClassLinkage(
6579            /* [annotation] */
6580            __out  ID3D11ClassLinkage **ppLinkage) = 0;
6581       
6582        virtual void STDMETHODCALLTYPE GetDesc(
6583            /* [annotation] */
6584            __out  D3D11_CLASS_INSTANCE_DESC *pDesc) = 0;
6585       
6586        virtual void STDMETHODCALLTYPE GetInstanceName(
6587            /* [annotation] */
6588            __out_ecount_opt(*pBufferLength)  LPSTR pInstanceName,
6589            /* [annotation] */
6590            __inout  SIZE_T *pBufferLength) = 0;
6591       
6592        virtual void STDMETHODCALLTYPE GetTypeName(
6593            /* [annotation] */
6594            __out_ecount_opt(*pBufferLength)  LPSTR pTypeName,
6595            /* [annotation] */
6596            __inout  SIZE_T *pBufferLength) = 0;
6597       
6598    };
6599   
6600#else    /* C style interface */
6601
6602    typedef struct ID3D11ClassInstanceVtbl
6603    {
6604        BEGIN_INTERFACE
6605       
6606        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6607            ID3D11ClassInstance * This,
6608            /* [in] */ REFIID riid,
6609            /* [annotation][iid_is][out] */
6610            __RPC__deref_out  void **ppvObject);
6611       
6612        ULONG ( STDMETHODCALLTYPE *AddRef )(
6613            ID3D11ClassInstance * This);
6614       
6615        ULONG ( STDMETHODCALLTYPE *Release )(
6616            ID3D11ClassInstance * This);
6617       
6618        void ( STDMETHODCALLTYPE *GetDevice )(
6619            ID3D11ClassInstance * This,
6620            /* [annotation] */
6621            __out  ID3D11Device **ppDevice);
6622       
6623        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6624            ID3D11ClassInstance * This,
6625            /* [annotation] */
6626            __in  REFGUID guid,
6627            /* [annotation] */
6628            __inout  UINT *pDataSize,
6629            /* [annotation] */
6630            __out_bcount_opt( *pDataSize )  void *pData);
6631       
6632        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6633            ID3D11ClassInstance * This,
6634            /* [annotation] */
6635            __in  REFGUID guid,
6636            /* [annotation] */
6637            __in  UINT DataSize,
6638            /* [annotation] */
6639            __in_bcount_opt( DataSize )  const void *pData);
6640       
6641        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6642            ID3D11ClassInstance * This,
6643            /* [annotation] */
6644            __in  REFGUID guid,
6645            /* [annotation] */
6646            __in_opt  const IUnknown *pData);
6647       
6648        void ( STDMETHODCALLTYPE *GetClassLinkage )(
6649            ID3D11ClassInstance * This,
6650            /* [annotation] */
6651            __out  ID3D11ClassLinkage **ppLinkage);
6652       
6653        void ( STDMETHODCALLTYPE *GetDesc )(
6654            ID3D11ClassInstance * This,
6655            /* [annotation] */
6656            __out  D3D11_CLASS_INSTANCE_DESC *pDesc);
6657       
6658        void ( STDMETHODCALLTYPE *GetInstanceName )(
6659            ID3D11ClassInstance * This,
6660            /* [annotation] */
6661            __out_ecount_opt(*pBufferLength)  LPSTR pInstanceName,
6662            /* [annotation] */
6663            __inout  SIZE_T *pBufferLength);
6664       
6665        void ( STDMETHODCALLTYPE *GetTypeName )(
6666            ID3D11ClassInstance * This,
6667            /* [annotation] */
6668            __out_ecount_opt(*pBufferLength)  LPSTR pTypeName,
6669            /* [annotation] */
6670            __inout  SIZE_T *pBufferLength);
6671       
6672        END_INTERFACE
6673    } ID3D11ClassInstanceVtbl;
6674
6675    interface ID3D11ClassInstance
6676    {
6677        CONST_VTBL struct ID3D11ClassInstanceVtbl *lpVtbl;
6678    };
6679
6680   
6681
6682#ifdef COBJMACROS
6683
6684
6685#define ID3D11ClassInstance_QueryInterface(This,riid,ppvObject)   \
6686    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6687
6688#define ID3D11ClassInstance_AddRef(This)   \
6689    ( (This)->lpVtbl -> AddRef(This) )
6690
6691#define ID3D11ClassInstance_Release(This)   \
6692    ( (This)->lpVtbl -> Release(This) )
6693
6694
6695#define ID3D11ClassInstance_GetDevice(This,ppDevice)   \
6696    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
6697
6698#define ID3D11ClassInstance_GetPrivateData(This,guid,pDataSize,pData)   \
6699    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6700
6701#define ID3D11ClassInstance_SetPrivateData(This,guid,DataSize,pData)   \
6702    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6703
6704#define ID3D11ClassInstance_SetPrivateDataInterface(This,guid,pData)   \
6705    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6706
6707
6708#define ID3D11ClassInstance_GetClassLinkage(This,ppLinkage)   \
6709    ( (This)->lpVtbl -> GetClassLinkage(This,ppLinkage) )
6710
6711#define ID3D11ClassInstance_GetDesc(This,pDesc)   \
6712    ( (This)->lpVtbl -> GetDesc(This,pDesc) )
6713
6714#define ID3D11ClassInstance_GetInstanceName(This,pInstanceName,pBufferLength)   \
6715    ( (This)->lpVtbl -> GetInstanceName(This,pInstanceName,pBufferLength) )
6716
6717#define ID3D11ClassInstance_GetTypeName(This,pTypeName,pBufferLength)   \
6718    ( (This)->lpVtbl -> GetTypeName(This,pTypeName,pBufferLength) )
6719
6720#endif /* COBJMACROS */
6721
6722
6723#endif    /* C style interface */
6724
6725
6726
6727
6728#endif    /* __ID3D11ClassInstance_INTERFACE_DEFINED__ */
6729
6730
6731#ifndef __ID3D11ClassLinkage_INTERFACE_DEFINED__
6732#define __ID3D11ClassLinkage_INTERFACE_DEFINED__
6733
6734/* interface ID3D11ClassLinkage */
6735/* [unique][local][object][uuid] */
6736
6737
6738EXTERN_C const IID IID_ID3D11ClassLinkage;
6739
6740#if defined(__cplusplus) && !defined(CINTERFACE)
6741   
6742    MIDL_INTERFACE("ddf57cba-9543-46e4-a12b-f207a0fe7fed")
6743    ID3D11ClassLinkage : public ID3D11DeviceChild
6744    {
6745    public:
6746        virtual HRESULT STDMETHODCALLTYPE GetClassInstance(
6747            /* [annotation] */
6748            __in  LPCSTR pClassInstanceName,
6749            /* [annotation] */
6750            __in  UINT InstanceIndex,
6751            /* [annotation] */
6752            __out  ID3D11ClassInstance **ppInstance) = 0;
6753       
6754        virtual HRESULT STDMETHODCALLTYPE CreateClassInstance(
6755            /* [annotation] */
6756            __in  LPCSTR pClassTypeName,
6757            /* [annotation] */
6758            __in  UINT ConstantBufferOffset,
6759            /* [annotation] */
6760            __in  UINT ConstantVectorOffset,
6761            /* [annotation] */
6762            __in  UINT TextureOffset,
6763            /* [annotation] */
6764            __in  UINT SamplerOffset,
6765            /* [annotation] */
6766            __out  ID3D11ClassInstance **ppInstance) = 0;
6767       
6768    };
6769   
6770#else    /* C style interface */
6771
6772    typedef struct ID3D11ClassLinkageVtbl
6773    {
6774        BEGIN_INTERFACE
6775       
6776        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6777            ID3D11ClassLinkage * This,
6778            /* [in] */ REFIID riid,
6779            /* [annotation][iid_is][out] */
6780            __RPC__deref_out  void **ppvObject);
6781       
6782        ULONG ( STDMETHODCALLTYPE *AddRef )(
6783            ID3D11ClassLinkage * This);
6784       
6785        ULONG ( STDMETHODCALLTYPE *Release )(
6786            ID3D11ClassLinkage * This);
6787       
6788        void ( STDMETHODCALLTYPE *GetDevice )(
6789            ID3D11ClassLinkage * This,
6790            /* [annotation] */
6791            __out  ID3D11Device **ppDevice);
6792       
6793        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6794            ID3D11ClassLinkage * This,
6795            /* [annotation] */
6796            __in  REFGUID guid,
6797            /* [annotation] */
6798            __inout  UINT *pDataSize,
6799            /* [annotation] */
6800            __out_bcount_opt( *pDataSize )  void *pData);
6801       
6802        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6803            ID3D11ClassLinkage * This,
6804            /* [annotation] */
6805            __in  REFGUID guid,
6806            /* [annotation] */
6807            __in  UINT DataSize,
6808            /* [annotation] */
6809            __in_bcount_opt( DataSize )  const void *pData);
6810       
6811        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6812            ID3D11ClassLinkage * This,
6813            /* [annotation] */
6814            __in  REFGUID guid,
6815            /* [annotation] */
6816            __in_opt  const IUnknown *pData);
6817       
6818        HRESULT ( STDMETHODCALLTYPE *GetClassInstance )(
6819            ID3D11ClassLinkage * This,
6820            /* [annotation] */
6821            __in  LPCSTR pClassInstanceName,
6822            /* [annotation] */
6823            __in  UINT InstanceIndex,
6824            /* [annotation] */
6825            __out  ID3D11ClassInstance **ppInstance);
6826       
6827        HRESULT ( STDMETHODCALLTYPE *CreateClassInstance )(
6828            ID3D11ClassLinkage * This,
6829            /* [annotation] */
6830            __in  LPCSTR pClassTypeName,
6831            /* [annotation] */
6832            __in  UINT ConstantBufferOffset,
6833            /* [annotation] */
6834            __in  UINT ConstantVectorOffset,
6835            /* [annotation] */
6836            __in  UINT TextureOffset,
6837            /* [annotation] */
6838            __in  UINT SamplerOffset,
6839            /* [annotation] */
6840            __out  ID3D11ClassInstance **ppInstance);
6841       
6842        END_INTERFACE
6843    } ID3D11ClassLinkageVtbl;
6844
6845    interface ID3D11ClassLinkage
6846    {
6847        CONST_VTBL struct ID3D11ClassLinkageVtbl *lpVtbl;
6848    };
6849
6850   
6851
6852#ifdef COBJMACROS
6853
6854
6855#define ID3D11ClassLinkage_QueryInterface(This,riid,ppvObject)   \
6856    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6857
6858#define ID3D11ClassLinkage_AddRef(This)   \
6859    ( (This)->lpVtbl -> AddRef(This) )
6860
6861#define ID3D11ClassLinkage_Release(This)   \
6862    ( (This)->lpVtbl -> Release(This) )
6863
6864
6865#define ID3D11ClassLinkage_GetDevice(This,ppDevice)   \
6866    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
6867
6868#define ID3D11ClassLinkage_GetPrivateData(This,guid,pDataSize,pData)   \
6869    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6870
6871#define ID3D11ClassLinkage_SetPrivateData(This,guid,DataSize,pData)   \
6872    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6873
6874#define ID3D11ClassLinkage_SetPrivateDataInterface(This,guid,pData)   \
6875    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6876
6877
6878#define ID3D11ClassLinkage_GetClassInstance(This,pClassInstanceName,InstanceIndex,ppInstance)   \
6879    ( (This)->lpVtbl -> GetClassInstance(This,pClassInstanceName,InstanceIndex,ppInstance) )
6880
6881#define ID3D11ClassLinkage_CreateClassInstance(This,pClassTypeName,ConstantBufferOffset,ConstantVectorOffset,TextureOffset,SamplerOffset,ppInstance)   \
6882    ( (This)->lpVtbl -> CreateClassInstance(This,pClassTypeName,ConstantBufferOffset,ConstantVectorOffset,TextureOffset,SamplerOffset,ppInstance) )
6883
6884#endif /* COBJMACROS */
6885
6886
6887#endif    /* C style interface */
6888
6889
6890
6891
6892#endif    /* __ID3D11ClassLinkage_INTERFACE_DEFINED__ */
6893
6894
6895#ifndef __ID3D11CommandList_INTERFACE_DEFINED__
6896#define __ID3D11CommandList_INTERFACE_DEFINED__
6897
6898/* interface ID3D11CommandList */
6899/* [unique][local][object][uuid] */
6900
6901
6902EXTERN_C const IID IID_ID3D11CommandList;
6903
6904#if defined(__cplusplus) && !defined(CINTERFACE)
6905   
6906    MIDL_INTERFACE("a24bc4d1-769e-43f7-8013-98ff566c18e2")
6907    ID3D11CommandList : public ID3D11DeviceChild
6908    {
6909    public:
6910        virtual UINT STDMETHODCALLTYPE GetContextFlags( void) = 0;
6911       
6912    };
6913   
6914#else    /* C style interface */
6915
6916    typedef struct ID3D11CommandListVtbl
6917    {
6918        BEGIN_INTERFACE
6919       
6920        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6921            ID3D11CommandList * This,
6922            /* [in] */ REFIID riid,
6923            /* [annotation][iid_is][out] */
6924            __RPC__deref_out  void **ppvObject);
6925       
6926        ULONG ( STDMETHODCALLTYPE *AddRef )(
6927            ID3D11CommandList * This);
6928       
6929        ULONG ( STDMETHODCALLTYPE *Release )(
6930            ID3D11CommandList * This);
6931       
6932        void ( STDMETHODCALLTYPE *GetDevice )(
6933            ID3D11CommandList * This,
6934            /* [annotation] */
6935            __out  ID3D11Device **ppDevice);
6936       
6937        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6938            ID3D11CommandList * This,
6939            /* [annotation] */
6940            __in  REFGUID guid,
6941            /* [annotation] */
6942            __inout  UINT *pDataSize,
6943            /* [annotation] */
6944            __out_bcount_opt( *pDataSize )  void *pData);
6945       
6946        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6947            ID3D11CommandList * This,
6948            /* [annotation] */
6949            __in  REFGUID guid,
6950            /* [annotation] */
6951            __in  UINT DataSize,
6952            /* [annotation] */
6953            __in_bcount_opt( DataSize )  const void *pData);
6954       
6955        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6956            ID3D11CommandList * This,
6957            /* [annotation] */
6958            __in  REFGUID guid,
6959            /* [annotation] */
6960            __in_opt  const IUnknown *pData);
6961       
6962        UINT ( STDMETHODCALLTYPE *GetContextFlags )(
6963            ID3D11CommandList * This);
6964       
6965        END_INTERFACE
6966    } ID3D11CommandListVtbl;
6967
6968    interface ID3D11CommandList
6969    {
6970        CONST_VTBL struct ID3D11CommandListVtbl *lpVtbl;
6971    };
6972
6973   
6974
6975#ifdef COBJMACROS
6976
6977
6978#define ID3D11CommandList_QueryInterface(This,riid,ppvObject)   \
6979    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6980
6981#define ID3D11CommandList_AddRef(This)   \
6982    ( (This)->lpVtbl -> AddRef(This) )
6983
6984#define ID3D11CommandList_Release(This)   \
6985    ( (This)->lpVtbl -> Release(This) )
6986
6987
6988#define ID3D11CommandList_GetDevice(This,ppDevice)   \
6989    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
6990
6991#define ID3D11CommandList_GetPrivateData(This,guid,pDataSize,pData)   \
6992    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6993
6994#define ID3D11CommandList_SetPrivateData(This,guid,DataSize,pData)   \
6995    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6996
6997#define ID3D11CommandList_SetPrivateDataInterface(This,guid,pData)   \
6998    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6999
7000
7001#define ID3D11CommandList_GetContextFlags(This)   \
7002    ( (This)->lpVtbl -> GetContextFlags(This) )
7003
7004#endif /* COBJMACROS */
7005
7006
7007#endif    /* C style interface */
7008
7009
7010
7011
7012#endif    /* __ID3D11CommandList_INTERFACE_DEFINED__ */
7013
7014
7015/* interface __MIDL_itf_d3d11_0000_0029 */
7016/* [local] */
7017
7018typedef
7019enum D3D11_FEATURE
7020    {   D3D11_FEATURE_THREADING   = 0,
7021   D3D11_FEATURE_DOUBLES   = ( D3D11_FEATURE_THREADING + 1 ) ,
7022   D3D11_FEATURE_FORMAT_SUPPORT   = ( D3D11_FEATURE_DOUBLES + 1 ) ,
7023   D3D11_FEATURE_FORMAT_SUPPORT2   = ( D3D11_FEATURE_FORMAT_SUPPORT + 1 ) ,
7024   D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS   = ( D3D11_FEATURE_FORMAT_SUPPORT2 + 1 )
7025    }    D3D11_FEATURE;
7026
7027typedef struct D3D11_FEATURE_DATA_THREADING
7028    {
7029    BOOL DriverConcurrentCreates;
7030    BOOL DriverCommandLists;
7031    }    D3D11_FEATURE_DATA_THREADING;
7032
7033typedef struct D3D11_FEATURE_DATA_DOUBLES
7034    {
7035    BOOL DoublePrecisionFloatShaderOps;
7036    }    D3D11_FEATURE_DATA_DOUBLES;
7037
7038typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT
7039    {
7040    DXGI_FORMAT InFormat;
7041    UINT OutFormatSupport;
7042    }    D3D11_FEATURE_DATA_FORMAT_SUPPORT;
7043
7044typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2
7045    {
7046    DXGI_FORMAT InFormat;
7047    UINT OutFormatSupport2;
7048    }    D3D11_FEATURE_DATA_FORMAT_SUPPORT2;
7049
7050typedef struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS
7051    {
7052    BOOL ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x;
7053    }    D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS;
7054
7055
7056
7057extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0029_v0_0_c_ifspec;
7058extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0029_v0_0_s_ifspec;
7059
7060#ifndef __ID3D11DeviceContext_INTERFACE_DEFINED__
7061#define __ID3D11DeviceContext_INTERFACE_DEFINED__
7062
7063/* interface ID3D11DeviceContext */
7064/* [unique][local][object][uuid] */
7065
7066
7067EXTERN_C const IID IID_ID3D11DeviceContext;
7068
7069#if defined(__cplusplus) && !defined(CINTERFACE)
7070   
7071    MIDL_INTERFACE("c0bfa96c-e089-44fb-8eaf-26f8796190da")
7072    ID3D11DeviceContext : public ID3D11DeviceChild
7073    {
7074    public:
7075        virtual void STDMETHODCALLTYPE VSSetConstantBuffers(
7076            /* [annotation] */
7077            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7078            /* [annotation] */
7079            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7080            /* [annotation] */
7081            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers) = 0;
7082       
7083        virtual void STDMETHODCALLTYPE PSSetShaderResources(
7084            /* [annotation] */
7085            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7086            /* [annotation] */
7087            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7088            /* [annotation] */
7089            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
7090       
7091        virtual void STDMETHODCALLTYPE PSSetShader(
7092            /* [annotation] */
7093            __in_opt  ID3D11PixelShader *pPixelShader,
7094            /* [annotation] */
7095            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7096            UINT NumClassInstances) = 0;
7097       
7098        virtual void STDMETHODCALLTYPE PSSetSamplers(
7099            /* [annotation] */
7100            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7101            /* [annotation] */
7102            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7103            /* [annotation] */
7104            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers) = 0;
7105       
7106        virtual void STDMETHODCALLTYPE VSSetShader(
7107            /* [annotation] */
7108            __in_opt  ID3D11VertexShader *pVertexShader,
7109            /* [annotation] */
7110            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7111            UINT NumClassInstances) = 0;
7112       
7113        virtual void STDMETHODCALLTYPE DrawIndexed(
7114            /* [annotation] */
7115            __in  UINT IndexCount,
7116            /* [annotation] */
7117            __in  UINT StartIndexLocation,
7118            /* [annotation] */
7119            __in  INT BaseVertexLocation) = 0;
7120       
7121        virtual void STDMETHODCALLTYPE Draw(
7122            /* [annotation] */
7123            __in  UINT VertexCount,
7124            /* [annotation] */
7125            __in  UINT StartVertexLocation) = 0;
7126       
7127        virtual HRESULT STDMETHODCALLTYPE Map(
7128            /* [annotation] */
7129            __in  ID3D11Resource *pResource,
7130            /* [annotation] */
7131            __in  UINT Subresource,
7132            /* [annotation] */
7133            __in  D3D11_MAP MapType,
7134            /* [annotation] */
7135            __in  UINT MapFlags,
7136            /* [annotation] */
7137            __out  D3D11_MAPPED_SUBRESOURCE *pMappedResource) = 0;
7138       
7139        virtual void STDMETHODCALLTYPE Unmap(
7140            /* [annotation] */
7141            __in  ID3D11Resource *pResource,
7142            /* [annotation] */
7143            __in  UINT Subresource) = 0;
7144       
7145        virtual void STDMETHODCALLTYPE PSSetConstantBuffers(
7146            /* [annotation] */
7147            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7148            /* [annotation] */
7149            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7150            /* [annotation] */
7151            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers) = 0;
7152       
7153        virtual void STDMETHODCALLTYPE IASetInputLayout(
7154            /* [annotation] */
7155            __in_opt  ID3D11InputLayout *pInputLayout) = 0;
7156       
7157        virtual void STDMETHODCALLTYPE IASetVertexBuffers(
7158            /* [annotation] */
7159            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7160            /* [annotation] */
7161            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7162            /* [annotation] */
7163            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppVertexBuffers,
7164            /* [annotation] */
7165            __in_ecount(NumBuffers)  const UINT *pStrides,
7166            /* [annotation] */
7167            __in_ecount(NumBuffers)  const UINT *pOffsets) = 0;
7168       
7169        virtual void STDMETHODCALLTYPE IASetIndexBuffer(
7170            /* [annotation] */
7171            __in_opt  ID3D11Buffer *pIndexBuffer,
7172            /* [annotation] */
7173            __in  DXGI_FORMAT Format,
7174            /* [annotation] */
7175            __in  UINT Offset) = 0;
7176       
7177        virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
7178            /* [annotation] */
7179            __in  UINT IndexCountPerInstance,
7180            /* [annotation] */
7181            __in  UINT InstanceCount,
7182            /* [annotation] */
7183            __in  UINT StartIndexLocation,
7184            /* [annotation] */
7185            __in  INT BaseVertexLocation,
7186            /* [annotation] */
7187            __in  UINT StartInstanceLocation) = 0;
7188       
7189        virtual void STDMETHODCALLTYPE DrawInstanced(
7190            /* [annotation] */
7191            __in  UINT VertexCountPerInstance,
7192            /* [annotation] */
7193            __in  UINT InstanceCount,
7194            /* [annotation] */
7195            __in  UINT StartVertexLocation,
7196            /* [annotation] */
7197            __in  UINT StartInstanceLocation) = 0;
7198       
7199        virtual void STDMETHODCALLTYPE GSSetConstantBuffers(
7200            /* [annotation] */
7201            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7202            /* [annotation] */
7203            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7204            /* [annotation] */
7205            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers) = 0;
7206       
7207        virtual void STDMETHODCALLTYPE GSSetShader(
7208            /* [annotation] */
7209            __in_opt  ID3D11GeometryShader *pShader,
7210            /* [annotation] */
7211            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7212            UINT NumClassInstances) = 0;
7213       
7214        virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
7215            /* [annotation] */
7216            __in  D3D11_PRIMITIVE_TOPOLOGY Topology) = 0;
7217       
7218        virtual void STDMETHODCALLTYPE VSSetShaderResources(
7219            /* [annotation] */
7220            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7221            /* [annotation] */
7222            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7223            /* [annotation] */
7224            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
7225       
7226        virtual void STDMETHODCALLTYPE VSSetSamplers(
7227            /* [annotation] */
7228            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7229            /* [annotation] */
7230            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7231            /* [annotation] */
7232            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers) = 0;
7233       
7234        virtual void STDMETHODCALLTYPE Begin(
7235            /* [annotation] */
7236            __in  ID3D11Asynchronous *pAsync) = 0;
7237       
7238        virtual void STDMETHODCALLTYPE End(
7239            /* [annotation] */
7240            __in  ID3D11Asynchronous *pAsync) = 0;
7241       
7242        virtual HRESULT STDMETHODCALLTYPE GetData(
7243            /* [annotation] */
7244            __in  ID3D11Asynchronous *pAsync,
7245            /* [annotation] */
7246            __out_bcount_opt( DataSize )  void *pData,
7247            /* [annotation] */
7248            __in  UINT DataSize,
7249            /* [annotation] */
7250            __in  UINT GetDataFlags) = 0;
7251       
7252        virtual void STDMETHODCALLTYPE SetPredication(
7253            /* [annotation] */
7254            __in_opt  ID3D11Predicate *pPredicate,
7255            /* [annotation] */
7256            __in  BOOL PredicateValue) = 0;
7257       
7258        virtual void STDMETHODCALLTYPE GSSetShaderResources(
7259            /* [annotation] */
7260            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7261            /* [annotation] */
7262            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7263            /* [annotation] */
7264            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
7265       
7266        virtual void STDMETHODCALLTYPE GSSetSamplers(
7267            /* [annotation] */
7268            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7269            /* [annotation] */
7270            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7271            /* [annotation] */
7272            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers) = 0;
7273       
7274        virtual void STDMETHODCALLTYPE OMSetRenderTargets(
7275            /* [annotation] */
7276            __in_range( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
7277            /* [annotation] */
7278            __in_ecount_opt(NumViews)  ID3D11RenderTargetView *const *ppRenderTargetViews,
7279            /* [annotation] */
7280            __in_opt  ID3D11DepthStencilView *pDepthStencilView) = 0;
7281       
7282        virtual void STDMETHODCALLTYPE OMSetRenderTargetsAndUnorderedAccessViews(
7283            /* [annotation] */
7284            __in  UINT NumRTVs,
7285            /* [annotation] */
7286            __in_ecount_opt(NumRTVs)  ID3D11RenderTargetView *const *ppRenderTargetViews,
7287            /* [annotation] */
7288            __in_opt  ID3D11DepthStencilView *pDepthStencilView,
7289            /* [annotation] */
7290            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT UAVStartSlot,
7291            /* [annotation] */
7292            __in  UINT NumUAVs,
7293            /* [annotation] */
7294            __in_ecount_opt(NumUAVs)  ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
7295            /* [annotation] */
7296            __in_ecount_opt(NumUAVs)  const UINT *pUAVInitialCounts) = 0;
7297       
7298        virtual void STDMETHODCALLTYPE OMSetBlendState(
7299            /* [annotation] */
7300            __in_opt  ID3D11BlendState *pBlendState,
7301            /* [annotation] */
7302            __in_opt  const FLOAT BlendFactor[ 4 ],
7303            /* [annotation] */
7304            __in  UINT SampleMask) = 0;
7305       
7306        virtual void STDMETHODCALLTYPE OMSetDepthStencilState(
7307            /* [annotation] */
7308            __in_opt  ID3D11DepthStencilState *pDepthStencilState,
7309            /* [annotation] */
7310            __in  UINT StencilRef) = 0;
7311       
7312        virtual void STDMETHODCALLTYPE SOSetTargets(
7313            /* [annotation] */
7314            __in_range( 0, D3D11_SO_BUFFER_SLOT_COUNT)  UINT NumBuffers,
7315            /* [annotation] */
7316            __in_ecount_opt(NumBuffers)  ID3D11Buffer *const *ppSOTargets,
7317            /* [annotation] */
7318            __in_ecount_opt(NumBuffers)  const UINT *pOffsets) = 0;
7319       
7320        virtual void STDMETHODCALLTYPE DrawAuto( void) = 0;
7321       
7322        virtual void STDMETHODCALLTYPE DrawIndexedInstancedIndirect(
7323            /* [annotation] */
7324            __in  ID3D11Buffer *pBufferForArgs,
7325            /* [annotation] */
7326            __in  UINT AlignedByteOffsetForArgs) = 0;
7327       
7328        virtual void STDMETHODCALLTYPE DrawInstancedIndirect(
7329            /* [annotation] */
7330            __in  ID3D11Buffer *pBufferForArgs,
7331            /* [annotation] */
7332            __in  UINT AlignedByteOffsetForArgs) = 0;
7333       
7334        virtual void STDMETHODCALLTYPE Dispatch(
7335            /* [annotation] */
7336            __in  UINT ThreadGroupCountX,
7337            /* [annotation] */
7338            __in  UINT ThreadGroupCountY,
7339            /* [annotation] */
7340            __in  UINT ThreadGroupCountZ) = 0;
7341       
7342        virtual void STDMETHODCALLTYPE DispatchIndirect(
7343            /* [annotation] */
7344            __in  ID3D11Buffer *pBufferForArgs,
7345            /* [annotation] */
7346            __in  UINT AlignedByteOffsetForArgs) = 0;
7347       
7348        virtual void STDMETHODCALLTYPE RSSetState(
7349            /* [annotation] */
7350            __in_opt  ID3D11RasterizerState *pRasterizerState) = 0;
7351       
7352        virtual void STDMETHODCALLTYPE RSSetViewports(
7353            /* [annotation] */
7354            __in_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumViewports,
7355            /* [annotation] */
7356            __in_ecount_opt(NumViewports)  const D3D11_VIEWPORT *pViewports) = 0;
7357       
7358        virtual void STDMETHODCALLTYPE RSSetScissorRects(
7359            /* [annotation] */
7360            __in_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumRects,
7361            /* [annotation] */
7362            __in_ecount_opt(NumRects)  const D3D11_RECT *pRects) = 0;
7363       
7364        virtual void STDMETHODCALLTYPE CopySubresourceRegion(
7365            /* [annotation] */
7366            __in  ID3D11Resource *pDstResource,
7367            /* [annotation] */
7368            __in  UINT DstSubresource,
7369            /* [annotation] */
7370            __in  UINT DstX,
7371            /* [annotation] */
7372            __in  UINT DstY,
7373            /* [annotation] */
7374            __in  UINT DstZ,
7375            /* [annotation] */
7376            __in  ID3D11Resource *pSrcResource,
7377            /* [annotation] */
7378            __in  UINT SrcSubresource,
7379            /* [annotation] */
7380            __in_opt  const D3D11_BOX *pSrcBox) = 0;
7381       
7382        virtual void STDMETHODCALLTYPE CopyResource(
7383            /* [annotation] */
7384            __in  ID3D11Resource *pDstResource,
7385            /* [annotation] */
7386            __in  ID3D11Resource *pSrcResource) = 0;
7387       
7388        virtual void STDMETHODCALLTYPE UpdateSubresource(
7389            /* [annotation] */
7390            __in  ID3D11Resource *pDstResource,
7391            /* [annotation] */
7392            __in  UINT DstSubresource,
7393            /* [annotation] */
7394            __in_opt  const D3D11_BOX *pDstBox,
7395            /* [annotation] */
7396            __in  const void *pSrcData,
7397            /* [annotation] */
7398            __in  UINT SrcRowPitch,
7399            /* [annotation] */
7400            __in  UINT SrcDepthPitch) = 0;
7401       
7402        virtual void STDMETHODCALLTYPE CopyStructureCount(
7403            /* [annotation] */
7404            __in  ID3D11Buffer *pDstBuffer,
7405            /* [annotation] */
7406            __in  UINT DstAlignedByteOffset,
7407            /* [annotation] */
7408            __in  ID3D11UnorderedAccessView *pSrcView) = 0;
7409       
7410        virtual void STDMETHODCALLTYPE ClearRenderTargetView(
7411            /* [annotation] */
7412            __in  ID3D11RenderTargetView *pRenderTargetView,
7413            /* [annotation] */
7414            __in  const FLOAT ColorRGBA[ 4 ]) = 0;
7415       
7416        virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
7417            /* [annotation] */
7418            __in  ID3D11UnorderedAccessView *pUnorderedAccessView,
7419            /* [annotation] */
7420            __in  const UINT Values[ 4 ]) = 0;
7421       
7422        virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
7423            /* [annotation] */
7424            __in  ID3D11UnorderedAccessView *pUnorderedAccessView,
7425            /* [annotation] */
7426            __in  const FLOAT Values[ 4 ]) = 0;
7427       
7428        virtual void STDMETHODCALLTYPE ClearDepthStencilView(
7429            /* [annotation] */
7430            __in  ID3D11DepthStencilView *pDepthStencilView,
7431            /* [annotation] */
7432            __in  UINT ClearFlags,
7433            /* [annotation] */
7434            __in  FLOAT Depth,
7435            /* [annotation] */
7436            __in  UINT8 Stencil) = 0;
7437       
7438        virtual void STDMETHODCALLTYPE GenerateMips(
7439            /* [annotation] */
7440            __in  ID3D11ShaderResourceView *pShaderResourceView) = 0;
7441       
7442        virtual void STDMETHODCALLTYPE SetResourceMinLOD(
7443            /* [annotation] */
7444            __in  ID3D11Resource *pResource,
7445            FLOAT MinLOD) = 0;
7446       
7447        virtual FLOAT STDMETHODCALLTYPE GetResourceMinLOD(
7448            /* [annotation] */
7449            __in  ID3D11Resource *pResource) = 0;
7450       
7451        virtual void STDMETHODCALLTYPE ResolveSubresource(
7452            /* [annotation] */
7453            __in  ID3D11Resource *pDstResource,
7454            /* [annotation] */
7455            __in  UINT DstSubresource,
7456            /* [annotation] */
7457            __in  ID3D11Resource *pSrcResource,
7458            /* [annotation] */
7459            __in  UINT SrcSubresource,
7460            /* [annotation] */
7461            __in  DXGI_FORMAT Format) = 0;
7462       
7463        virtual void STDMETHODCALLTYPE ExecuteCommandList(
7464            /* [annotation] */
7465            __in  ID3D11CommandList *pCommandList,
7466            BOOL RestoreContextState) = 0;
7467       
7468        virtual void STDMETHODCALLTYPE HSSetShaderResources(
7469            /* [annotation] */
7470            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7471            /* [annotation] */
7472            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7473            /* [annotation] */
7474            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
7475       
7476        virtual void STDMETHODCALLTYPE HSSetShader(
7477            /* [annotation] */
7478            __in_opt  ID3D11HullShader *pHullShader,
7479            /* [annotation] */
7480            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7481            UINT NumClassInstances) = 0;
7482       
7483        virtual void STDMETHODCALLTYPE HSSetSamplers(
7484            /* [annotation] */
7485            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7486            /* [annotation] */
7487            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7488            /* [annotation] */
7489            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers) = 0;
7490       
7491        virtual void STDMETHODCALLTYPE HSSetConstantBuffers(
7492            /* [annotation] */
7493            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7494            /* [annotation] */
7495            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7496            /* [annotation] */
7497            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers) = 0;
7498       
7499        virtual void STDMETHODCALLTYPE DSSetShaderResources(
7500            /* [annotation] */
7501            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7502            /* [annotation] */
7503            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7504            /* [annotation] */
7505            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
7506       
7507        virtual void STDMETHODCALLTYPE DSSetShader(
7508            /* [annotation] */
7509            __in_opt  ID3D11DomainShader *pDomainShader,
7510            /* [annotation] */
7511            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7512            UINT NumClassInstances) = 0;
7513       
7514        virtual void STDMETHODCALLTYPE DSSetSamplers(
7515            /* [annotation] */
7516            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7517            /* [annotation] */
7518            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7519            /* [annotation] */
7520            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers) = 0;
7521       
7522        virtual void STDMETHODCALLTYPE DSSetConstantBuffers(
7523            /* [annotation] */
7524            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7525            /* [annotation] */
7526            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7527            /* [annotation] */
7528            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers) = 0;
7529       
7530        virtual void STDMETHODCALLTYPE CSSetShaderResources(
7531            /* [annotation] */
7532            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7533            /* [annotation] */
7534            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7535            /* [annotation] */
7536            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0;
7537       
7538        virtual void STDMETHODCALLTYPE CSSetUnorderedAccessViews(
7539            /* [annotation] */
7540            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT StartSlot,
7541            /* [annotation] */
7542            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - StartSlot )  UINT NumUAVs,
7543            /* [annotation] */
7544            __in_ecount(NumUAVs)  ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
7545            /* [annotation] */
7546            __in_ecount(NumUAVs)  const UINT *pUAVInitialCounts) = 0;
7547       
7548        virtual void STDMETHODCALLTYPE CSSetShader(
7549            /* [annotation] */
7550            __in_opt  ID3D11ComputeShader *pComputeShader,
7551            /* [annotation] */
7552            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7553            UINT NumClassInstances) = 0;
7554       
7555        virtual void STDMETHODCALLTYPE CSSetSamplers(
7556            /* [annotation] */
7557            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7558            /* [annotation] */
7559            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7560            /* [annotation] */
7561            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers) = 0;
7562       
7563        virtual void STDMETHODCALLTYPE CSSetConstantBuffers(
7564            /* [annotation] */
7565            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7566            /* [annotation] */
7567            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7568            /* [annotation] */
7569            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers) = 0;
7570       
7571        virtual void STDMETHODCALLTYPE VSGetConstantBuffers(
7572            /* [annotation] */
7573            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7574            /* [annotation] */
7575            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7576            /* [annotation] */
7577            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers) = 0;
7578       
7579        virtual void STDMETHODCALLTYPE PSGetShaderResources(
7580            /* [annotation] */
7581            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7582            /* [annotation] */
7583            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7584            /* [annotation] */
7585            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
7586       
7587        virtual void STDMETHODCALLTYPE PSGetShader(
7588            /* [annotation] */
7589            __out  ID3D11PixelShader **ppPixelShader,
7590            /* [annotation] */
7591            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
7592            /* [annotation] */
7593            __inout_opt  UINT *pNumClassInstances) = 0;
7594       
7595        virtual void STDMETHODCALLTYPE PSGetSamplers(
7596            /* [annotation] */
7597            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7598            /* [annotation] */
7599            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7600            /* [annotation] */
7601            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers) = 0;
7602       
7603        virtual void STDMETHODCALLTYPE VSGetShader(
7604            /* [annotation] */
7605            __out  ID3D11VertexShader **ppVertexShader,
7606            /* [annotation] */
7607            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
7608            /* [annotation] */
7609            __inout_opt  UINT *pNumClassInstances) = 0;
7610       
7611        virtual void STDMETHODCALLTYPE PSGetConstantBuffers(
7612            /* [annotation] */
7613            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7614            /* [annotation] */
7615            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7616            /* [annotation] */
7617            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers) = 0;
7618       
7619        virtual void STDMETHODCALLTYPE IAGetInputLayout(
7620            /* [annotation] */
7621            __out  ID3D11InputLayout **ppInputLayout) = 0;
7622       
7623        virtual void STDMETHODCALLTYPE IAGetVertexBuffers(
7624            /* [annotation] */
7625            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7626            /* [annotation] */
7627            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7628            /* [annotation] */
7629            __out_ecount_opt(NumBuffers)  ID3D11Buffer **ppVertexBuffers,
7630            /* [annotation] */
7631            __out_ecount_opt(NumBuffers)  UINT *pStrides,
7632            /* [annotation] */
7633            __out_ecount_opt(NumBuffers)  UINT *pOffsets) = 0;
7634       
7635        virtual void STDMETHODCALLTYPE IAGetIndexBuffer(
7636            /* [annotation] */
7637            __out_opt  ID3D11Buffer **pIndexBuffer,
7638            /* [annotation] */
7639            __out_opt  DXGI_FORMAT *Format,
7640            /* [annotation] */
7641            __out_opt  UINT *Offset) = 0;
7642       
7643        virtual void STDMETHODCALLTYPE GSGetConstantBuffers(
7644            /* [annotation] */
7645            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7646            /* [annotation] */
7647            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7648            /* [annotation] */
7649            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers) = 0;
7650       
7651        virtual void STDMETHODCALLTYPE GSGetShader(
7652            /* [annotation] */
7653            __out  ID3D11GeometryShader **ppGeometryShader,
7654            /* [annotation] */
7655            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
7656            /* [annotation] */
7657            __inout_opt  UINT *pNumClassInstances) = 0;
7658       
7659        virtual void STDMETHODCALLTYPE IAGetPrimitiveTopology(
7660            /* [annotation] */
7661            __out  D3D11_PRIMITIVE_TOPOLOGY *pTopology) = 0;
7662       
7663        virtual void STDMETHODCALLTYPE VSGetShaderResources(
7664            /* [annotation] */
7665            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7666            /* [annotation] */
7667            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7668            /* [annotation] */
7669            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
7670       
7671        virtual void STDMETHODCALLTYPE VSGetSamplers(
7672            /* [annotation] */
7673            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7674            /* [annotation] */
7675            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7676            /* [annotation] */
7677            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers) = 0;
7678       
7679        virtual void STDMETHODCALLTYPE GetPredication(
7680            /* [annotation] */
7681            __out_opt  ID3D11Predicate **ppPredicate,
7682            /* [annotation] */
7683            __out_opt  BOOL *pPredicateValue) = 0;
7684       
7685        virtual void STDMETHODCALLTYPE GSGetShaderResources(
7686            /* [annotation] */
7687            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7688            /* [annotation] */
7689            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7690            /* [annotation] */
7691            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
7692       
7693        virtual void STDMETHODCALLTYPE GSGetSamplers(
7694            /* [annotation] */
7695            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7696            /* [annotation] */
7697            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7698            /* [annotation] */
7699            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers) = 0;
7700       
7701        virtual void STDMETHODCALLTYPE OMGetRenderTargets(
7702            /* [annotation] */
7703            __in_range( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
7704            /* [annotation] */
7705            __out_ecount_opt(NumViews)  ID3D11RenderTargetView **ppRenderTargetViews,
7706            /* [annotation] */
7707            __out_opt  ID3D11DepthStencilView **ppDepthStencilView) = 0;
7708       
7709        virtual void STDMETHODCALLTYPE OMGetRenderTargetsAndUnorderedAccessViews(
7710            /* [annotation] */
7711            __in_range( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumRTVs,
7712            /* [annotation] */
7713            __out_ecount_opt(NumRTVs)  ID3D11RenderTargetView **ppRenderTargetViews,
7714            /* [annotation] */
7715            __out_opt  ID3D11DepthStencilView **ppDepthStencilView,
7716            /* [annotation] */
7717            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT UAVStartSlot,
7718            /* [annotation] */
7719            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - UAVStartSlot )  UINT NumUAVs,
7720            /* [annotation] */
7721            __out_ecount_opt(NumUAVs)  ID3D11UnorderedAccessView **ppUnorderedAccessViews) = 0;
7722       
7723        virtual void STDMETHODCALLTYPE OMGetBlendState(
7724            /* [annotation] */
7725            __out_opt  ID3D11BlendState **ppBlendState,
7726            /* [annotation] */
7727            __out_opt  FLOAT BlendFactor[ 4 ],
7728            /* [annotation] */
7729            __out_opt  UINT *pSampleMask) = 0;
7730       
7731        virtual void STDMETHODCALLTYPE OMGetDepthStencilState(
7732            /* [annotation] */
7733            __out_opt  ID3D11DepthStencilState **ppDepthStencilState,
7734            /* [annotation] */
7735            __out_opt  UINT *pStencilRef) = 0;
7736       
7737        virtual void STDMETHODCALLTYPE SOGetTargets(
7738            /* [annotation] */
7739            __in_range( 0, D3D11_SO_BUFFER_SLOT_COUNT )  UINT NumBuffers,
7740            /* [annotation] */
7741            __out_ecount(NumBuffers)  ID3D11Buffer **ppSOTargets) = 0;
7742       
7743        virtual void STDMETHODCALLTYPE RSGetState(
7744            /* [annotation] */
7745            __out  ID3D11RasterizerState **ppRasterizerState) = 0;
7746       
7747        virtual void STDMETHODCALLTYPE RSGetViewports(
7748            /* [annotation] */
7749            __inout /*_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *pNumViewports,
7750            /* [annotation] */
7751            __out_ecount_opt(*pNumViewports)  D3D11_VIEWPORT *pViewports) = 0;
7752       
7753        virtual void STDMETHODCALLTYPE RSGetScissorRects(
7754            /* [annotation] */
7755            __inout /*_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *pNumRects,
7756            /* [annotation] */
7757            __out_ecount_opt(*pNumRects)  D3D11_RECT *pRects) = 0;
7758       
7759        virtual void STDMETHODCALLTYPE HSGetShaderResources(
7760            /* [annotation] */
7761            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7762            /* [annotation] */
7763            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7764            /* [annotation] */
7765            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
7766       
7767        virtual void STDMETHODCALLTYPE HSGetShader(
7768            /* [annotation] */
7769            __out  ID3D11HullShader **ppHullShader,
7770            /* [annotation] */
7771            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
7772            /* [annotation] */
7773            __inout_opt  UINT *pNumClassInstances) = 0;
7774       
7775        virtual void STDMETHODCALLTYPE HSGetSamplers(
7776            /* [annotation] */
7777            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7778            /* [annotation] */
7779            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7780            /* [annotation] */
7781            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers) = 0;
7782       
7783        virtual void STDMETHODCALLTYPE HSGetConstantBuffers(
7784            /* [annotation] */
7785            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7786            /* [annotation] */
7787            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7788            /* [annotation] */
7789            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers) = 0;
7790       
7791        virtual void STDMETHODCALLTYPE DSGetShaderResources(
7792            /* [annotation] */
7793            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7794            /* [annotation] */
7795            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7796            /* [annotation] */
7797            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
7798       
7799        virtual void STDMETHODCALLTYPE DSGetShader(
7800            /* [annotation] */
7801            __out  ID3D11DomainShader **ppDomainShader,
7802            /* [annotation] */
7803            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
7804            /* [annotation] */
7805            __inout_opt  UINT *pNumClassInstances) = 0;
7806       
7807        virtual void STDMETHODCALLTYPE DSGetSamplers(
7808            /* [annotation] */
7809            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7810            /* [annotation] */
7811            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7812            /* [annotation] */
7813            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers) = 0;
7814       
7815        virtual void STDMETHODCALLTYPE DSGetConstantBuffers(
7816            /* [annotation] */
7817            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7818            /* [annotation] */
7819            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7820            /* [annotation] */
7821            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers) = 0;
7822       
7823        virtual void STDMETHODCALLTYPE CSGetShaderResources(
7824            /* [annotation] */
7825            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7826            /* [annotation] */
7827            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7828            /* [annotation] */
7829            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews) = 0;
7830       
7831        virtual void STDMETHODCALLTYPE CSGetUnorderedAccessViews(
7832            /* [annotation] */
7833            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT StartSlot,
7834            /* [annotation] */
7835            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - StartSlot )  UINT NumUAVs,
7836            /* [annotation] */
7837            __out_ecount(NumUAVs)  ID3D11UnorderedAccessView **ppUnorderedAccessViews) = 0;
7838       
7839        virtual void STDMETHODCALLTYPE CSGetShader(
7840            /* [annotation] */
7841            __out  ID3D11ComputeShader **ppComputeShader,
7842            /* [annotation] */
7843            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
7844            /* [annotation] */
7845            __inout_opt  UINT *pNumClassInstances) = 0;
7846       
7847        virtual void STDMETHODCALLTYPE CSGetSamplers(
7848            /* [annotation] */
7849            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7850            /* [annotation] */
7851            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7852            /* [annotation] */
7853            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers) = 0;
7854       
7855        virtual void STDMETHODCALLTYPE CSGetConstantBuffers(
7856            /* [annotation] */
7857            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7858            /* [annotation] */
7859            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7860            /* [annotation] */
7861            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers) = 0;
7862       
7863        virtual void STDMETHODCALLTYPE ClearState( void) = 0;
7864       
7865        virtual void STDMETHODCALLTYPE Flush( void) = 0;
7866       
7867        virtual D3D11_DEVICE_CONTEXT_TYPE STDMETHODCALLTYPE GetType( void) = 0;
7868       
7869        virtual UINT STDMETHODCALLTYPE GetContextFlags( void) = 0;
7870       
7871        virtual HRESULT STDMETHODCALLTYPE FinishCommandList(
7872            BOOL RestoreDeferredContextState,
7873            /* [annotation] */
7874            __out_opt  ID3D11CommandList **ppCommandList) = 0;
7875       
7876    };
7877   
7878#else    /* C style interface */
7879
7880    typedef struct ID3D11DeviceContextVtbl
7881    {
7882        BEGIN_INTERFACE
7883       
7884        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7885            ID3D11DeviceContext * This,
7886            /* [in] */ REFIID riid,
7887            /* [annotation][iid_is][out] */
7888            __RPC__deref_out  void **ppvObject);
7889       
7890        ULONG ( STDMETHODCALLTYPE *AddRef )(
7891            ID3D11DeviceContext * This);
7892       
7893        ULONG ( STDMETHODCALLTYPE *Release )(
7894            ID3D11DeviceContext * This);
7895       
7896        void ( STDMETHODCALLTYPE *GetDevice )(
7897            ID3D11DeviceContext * This,
7898            /* [annotation] */
7899            __out  ID3D11Device **ppDevice);
7900       
7901        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
7902            ID3D11DeviceContext * This,
7903            /* [annotation] */
7904            __in  REFGUID guid,
7905            /* [annotation] */
7906            __inout  UINT *pDataSize,
7907            /* [annotation] */
7908            __out_bcount_opt( *pDataSize )  void *pData);
7909       
7910        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
7911            ID3D11DeviceContext * This,
7912            /* [annotation] */
7913            __in  REFGUID guid,
7914            /* [annotation] */
7915            __in  UINT DataSize,
7916            /* [annotation] */
7917            __in_bcount_opt( DataSize )  const void *pData);
7918       
7919        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
7920            ID3D11DeviceContext * This,
7921            /* [annotation] */
7922            __in  REFGUID guid,
7923            /* [annotation] */
7924            __in_opt  const IUnknown *pData);
7925       
7926        void ( STDMETHODCALLTYPE *VSSetConstantBuffers )(
7927            ID3D11DeviceContext * This,
7928            /* [annotation] */
7929            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
7930            /* [annotation] */
7931            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
7932            /* [annotation] */
7933            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers);
7934       
7935        void ( STDMETHODCALLTYPE *PSSetShaderResources )(
7936            ID3D11DeviceContext * This,
7937            /* [annotation] */
7938            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
7939            /* [annotation] */
7940            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
7941            /* [annotation] */
7942            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews);
7943       
7944        void ( STDMETHODCALLTYPE *PSSetShader )(
7945            ID3D11DeviceContext * This,
7946            /* [annotation] */
7947            __in_opt  ID3D11PixelShader *pPixelShader,
7948            /* [annotation] */
7949            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7950            UINT NumClassInstances);
7951       
7952        void ( STDMETHODCALLTYPE *PSSetSamplers )(
7953            ID3D11DeviceContext * This,
7954            /* [annotation] */
7955            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
7956            /* [annotation] */
7957            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
7958            /* [annotation] */
7959            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers);
7960       
7961        void ( STDMETHODCALLTYPE *VSSetShader )(
7962            ID3D11DeviceContext * This,
7963            /* [annotation] */
7964            __in_opt  ID3D11VertexShader *pVertexShader,
7965            /* [annotation] */
7966            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
7967            UINT NumClassInstances);
7968       
7969        void ( STDMETHODCALLTYPE *DrawIndexed )(
7970            ID3D11DeviceContext * This,
7971            /* [annotation] */
7972            __in  UINT IndexCount,
7973            /* [annotation] */
7974            __in  UINT StartIndexLocation,
7975            /* [annotation] */
7976            __in  INT BaseVertexLocation);
7977       
7978        void ( STDMETHODCALLTYPE *Draw )(
7979            ID3D11DeviceContext * This,
7980            /* [annotation] */
7981            __in  UINT VertexCount,
7982            /* [annotation] */
7983            __in  UINT StartVertexLocation);
7984       
7985        HRESULT ( STDMETHODCALLTYPE *Map )(
7986            ID3D11DeviceContext * This,
7987            /* [annotation] */
7988            __in  ID3D11Resource *pResource,
7989            /* [annotation] */
7990            __in  UINT Subresource,
7991            /* [annotation] */
7992            __in  D3D11_MAP MapType,
7993            /* [annotation] */
7994            __in  UINT MapFlags,
7995            /* [annotation] */
7996            __out  D3D11_MAPPED_SUBRESOURCE *pMappedResource);
7997       
7998        void ( STDMETHODCALLTYPE *Unmap )(
7999            ID3D11DeviceContext * This,
8000            /* [annotation] */
8001            __in  ID3D11Resource *pResource,
8002            /* [annotation] */
8003            __in  UINT Subresource);
8004       
8005        void ( STDMETHODCALLTYPE *PSSetConstantBuffers )(
8006            ID3D11DeviceContext * This,
8007            /* [annotation] */
8008            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8009            /* [annotation] */
8010            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8011            /* [annotation] */
8012            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers);
8013       
8014        void ( STDMETHODCALLTYPE *IASetInputLayout )(
8015            ID3D11DeviceContext * This,
8016            /* [annotation] */
8017            __in_opt  ID3D11InputLayout *pInputLayout);
8018       
8019        void ( STDMETHODCALLTYPE *IASetVertexBuffers )(
8020            ID3D11DeviceContext * This,
8021            /* [annotation] */
8022            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8023            /* [annotation] */
8024            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8025            /* [annotation] */
8026            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppVertexBuffers,
8027            /* [annotation] */
8028            __in_ecount(NumBuffers)  const UINT *pStrides,
8029            /* [annotation] */
8030            __in_ecount(NumBuffers)  const UINT *pOffsets);
8031       
8032        void ( STDMETHODCALLTYPE *IASetIndexBuffer )(
8033            ID3D11DeviceContext * This,
8034            /* [annotation] */
8035            __in_opt  ID3D11Buffer *pIndexBuffer,
8036            /* [annotation] */
8037            __in  DXGI_FORMAT Format,
8038            /* [annotation] */
8039            __in  UINT Offset);
8040       
8041        void ( STDMETHODCALLTYPE *DrawIndexedInstanced )(
8042            ID3D11DeviceContext * This,
8043            /* [annotation] */
8044            __in  UINT IndexCountPerInstance,
8045            /* [annotation] */
8046            __in  UINT InstanceCount,
8047            /* [annotation] */
8048            __in  UINT StartIndexLocation,
8049            /* [annotation] */
8050            __in  INT BaseVertexLocation,
8051            /* [annotation] */
8052            __in  UINT StartInstanceLocation);
8053       
8054        void ( STDMETHODCALLTYPE *DrawInstanced )(
8055            ID3D11DeviceContext * This,
8056            /* [annotation] */
8057            __in  UINT VertexCountPerInstance,
8058            /* [annotation] */
8059            __in  UINT InstanceCount,
8060            /* [annotation] */
8061            __in  UINT StartVertexLocation,
8062            /* [annotation] */
8063            __in  UINT StartInstanceLocation);
8064       
8065        void ( STDMETHODCALLTYPE *GSSetConstantBuffers )(
8066            ID3D11DeviceContext * This,
8067            /* [annotation] */
8068            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8069            /* [annotation] */
8070            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8071            /* [annotation] */
8072            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers);
8073       
8074        void ( STDMETHODCALLTYPE *GSSetShader )(
8075            ID3D11DeviceContext * This,
8076            /* [annotation] */
8077            __in_opt  ID3D11GeometryShader *pShader,
8078            /* [annotation] */
8079            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
8080            UINT NumClassInstances);
8081       
8082        void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )(
8083            ID3D11DeviceContext * This,
8084            /* [annotation] */
8085            __in  D3D11_PRIMITIVE_TOPOLOGY Topology);
8086       
8087        void ( STDMETHODCALLTYPE *VSSetShaderResources )(
8088            ID3D11DeviceContext * This,
8089            /* [annotation] */
8090            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8091            /* [annotation] */
8092            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8093            /* [annotation] */
8094            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews);
8095       
8096        void ( STDMETHODCALLTYPE *VSSetSamplers )(
8097            ID3D11DeviceContext * This,
8098            /* [annotation] */
8099            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8100            /* [annotation] */
8101            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8102            /* [annotation] */
8103            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers);
8104       
8105        void ( STDMETHODCALLTYPE *Begin )(
8106            ID3D11DeviceContext * This,
8107            /* [annotation] */
8108            __in  ID3D11Asynchronous *pAsync);
8109       
8110        void ( STDMETHODCALLTYPE *End )(
8111            ID3D11DeviceContext * This,
8112            /* [annotation] */
8113            __in  ID3D11Asynchronous *pAsync);
8114       
8115        HRESULT ( STDMETHODCALLTYPE *GetData )(
8116            ID3D11DeviceContext * This,
8117            /* [annotation] */
8118            __in  ID3D11Asynchronous *pAsync,
8119            /* [annotation] */
8120            __out_bcount_opt( DataSize )  void *pData,
8121            /* [annotation] */
8122            __in  UINT DataSize,
8123            /* [annotation] */
8124            __in  UINT GetDataFlags);
8125       
8126        void ( STDMETHODCALLTYPE *SetPredication )(
8127            ID3D11DeviceContext * This,
8128            /* [annotation] */
8129            __in_opt  ID3D11Predicate *pPredicate,
8130            /* [annotation] */
8131            __in  BOOL PredicateValue);
8132       
8133        void ( STDMETHODCALLTYPE *GSSetShaderResources )(
8134            ID3D11DeviceContext * This,
8135            /* [annotation] */
8136            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8137            /* [annotation] */
8138            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8139            /* [annotation] */
8140            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews);
8141       
8142        void ( STDMETHODCALLTYPE *GSSetSamplers )(
8143            ID3D11DeviceContext * This,
8144            /* [annotation] */
8145            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8146            /* [annotation] */
8147            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8148            /* [annotation] */
8149            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers);
8150       
8151        void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
8152            ID3D11DeviceContext * This,
8153            /* [annotation] */
8154            __in_range( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
8155            /* [annotation] */
8156            __in_ecount_opt(NumViews)  ID3D11RenderTargetView *const *ppRenderTargetViews,
8157            /* [annotation] */
8158            __in_opt  ID3D11DepthStencilView *pDepthStencilView);
8159       
8160        void ( STDMETHODCALLTYPE *OMSetRenderTargetsAndUnorderedAccessViews )(
8161            ID3D11DeviceContext * This,
8162            /* [annotation] */
8163            __in  UINT NumRTVs,
8164            /* [annotation] */
8165            __in_ecount_opt(NumRTVs)  ID3D11RenderTargetView *const *ppRenderTargetViews,
8166            /* [annotation] */
8167            __in_opt  ID3D11DepthStencilView *pDepthStencilView,
8168            /* [annotation] */
8169            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT UAVStartSlot,
8170            /* [annotation] */
8171            __in  UINT NumUAVs,
8172            /* [annotation] */
8173            __in_ecount_opt(NumUAVs)  ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
8174            /* [annotation] */
8175            __in_ecount_opt(NumUAVs)  const UINT *pUAVInitialCounts);
8176       
8177        void ( STDMETHODCALLTYPE *OMSetBlendState )(
8178            ID3D11DeviceContext * This,
8179            /* [annotation] */
8180            __in_opt  ID3D11BlendState *pBlendState,
8181            /* [annotation] */
8182            __in_opt  const FLOAT BlendFactor[ 4 ],
8183            /* [annotation] */
8184            __in  UINT SampleMask);
8185       
8186        void ( STDMETHODCALLTYPE *OMSetDepthStencilState )(
8187            ID3D11DeviceContext * This,
8188            /* [annotation] */
8189            __in_opt  ID3D11DepthStencilState *pDepthStencilState,
8190            /* [annotation] */
8191            __in  UINT StencilRef);
8192       
8193        void ( STDMETHODCALLTYPE *SOSetTargets )(
8194            ID3D11DeviceContext * This,
8195            /* [annotation] */
8196            __in_range( 0, D3D11_SO_BUFFER_SLOT_COUNT)  UINT NumBuffers,
8197            /* [annotation] */
8198            __in_ecount_opt(NumBuffers)  ID3D11Buffer *const *ppSOTargets,
8199            /* [annotation] */
8200            __in_ecount_opt(NumBuffers)  const UINT *pOffsets);
8201       
8202        void ( STDMETHODCALLTYPE *DrawAuto )(
8203            ID3D11DeviceContext * This);
8204       
8205        void ( STDMETHODCALLTYPE *DrawIndexedInstancedIndirect )(
8206            ID3D11DeviceContext * This,
8207            /* [annotation] */
8208            __in  ID3D11Buffer *pBufferForArgs,
8209            /* [annotation] */
8210            __in  UINT AlignedByteOffsetForArgs);
8211       
8212        void ( STDMETHODCALLTYPE *DrawInstancedIndirect )(
8213            ID3D11DeviceContext * This,
8214            /* [annotation] */
8215            __in  ID3D11Buffer *pBufferForArgs,
8216            /* [annotation] */
8217            __in  UINT AlignedByteOffsetForArgs);
8218       
8219        void ( STDMETHODCALLTYPE *Dispatch )(
8220            ID3D11DeviceContext * This,
8221            /* [annotation] */
8222            __in  UINT ThreadGroupCountX,
8223            /* [annotation] */
8224            __in  UINT ThreadGroupCountY,
8225            /* [annotation] */
8226            __in  UINT ThreadGroupCountZ);
8227       
8228        void ( STDMETHODCALLTYPE *DispatchIndirect )(
8229            ID3D11DeviceContext * This,
8230            /* [annotation] */
8231            __in  ID3D11Buffer *pBufferForArgs,
8232            /* [annotation] */
8233            __in  UINT AlignedByteOffsetForArgs);
8234       
8235        void ( STDMETHODCALLTYPE *RSSetState )(
8236            ID3D11DeviceContext * This,
8237            /* [annotation] */
8238            __in_opt  ID3D11RasterizerState *pRasterizerState);
8239       
8240        void ( STDMETHODCALLTYPE *RSSetViewports )(
8241            ID3D11DeviceContext * This,
8242            /* [annotation] */
8243            __in_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumViewports,
8244            /* [annotation] */
8245            __in_ecount_opt(NumViewports)  const D3D11_VIEWPORT *pViewports);
8246       
8247        void ( STDMETHODCALLTYPE *RSSetScissorRects )(
8248            ID3D11DeviceContext * This,
8249            /* [annotation] */
8250            __in_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)  UINT NumRects,
8251            /* [annotation] */
8252            __in_ecount_opt(NumRects)  const D3D11_RECT *pRects);
8253       
8254        void ( STDMETHODCALLTYPE *CopySubresourceRegion )(
8255            ID3D11DeviceContext * This,
8256            /* [annotation] */
8257            __in  ID3D11Resource *pDstResource,
8258            /* [annotation] */
8259            __in  UINT DstSubresource,
8260            /* [annotation] */
8261            __in  UINT DstX,
8262            /* [annotation] */
8263            __in  UINT DstY,
8264            /* [annotation] */
8265            __in  UINT DstZ,
8266            /* [annotation] */
8267            __in  ID3D11Resource *pSrcResource,
8268            /* [annotation] */
8269            __in  UINT SrcSubresource,
8270            /* [annotation] */
8271            __in_opt  const D3D11_BOX *pSrcBox);
8272       
8273        void ( STDMETHODCALLTYPE *CopyResource )(
8274            ID3D11DeviceContext * This,
8275            /* [annotation] */
8276            __in  ID3D11Resource *pDstResource,
8277            /* [annotation] */
8278            __in  ID3D11Resource *pSrcResource);
8279       
8280        void ( STDMETHODCALLTYPE *UpdateSubresource )(
8281            ID3D11DeviceContext * This,
8282            /* [annotation] */
8283            __in  ID3D11Resource *pDstResource,
8284            /* [annotation] */
8285            __in  UINT DstSubresource,
8286            /* [annotation] */
8287            __in_opt  const D3D11_BOX *pDstBox,
8288            /* [annotation] */
8289            __in  const void *pSrcData,
8290            /* [annotation] */
8291            __in  UINT SrcRowPitch,
8292            /* [annotation] */
8293            __in  UINT SrcDepthPitch);
8294       
8295        void ( STDMETHODCALLTYPE *CopyStructureCount )(
8296            ID3D11DeviceContext * This,
8297            /* [annotation] */
8298            __in  ID3D11Buffer *pDstBuffer,
8299            /* [annotation] */
8300            __in  UINT DstAlignedByteOffset,
8301            /* [annotation] */
8302            __in  ID3D11UnorderedAccessView *pSrcView);
8303       
8304        void ( STDMETHODCALLTYPE *ClearRenderTargetView )(
8305            ID3D11DeviceContext * This,
8306            /* [annotation] */
8307            __in  ID3D11RenderTargetView *pRenderTargetView,
8308            /* [annotation] */
8309            __in  const FLOAT ColorRGBA[ 4 ]);
8310       
8311        void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )(
8312            ID3D11DeviceContext * This,
8313            /* [annotation] */
8314            __in  ID3D11UnorderedAccessView *pUnorderedAccessView,
8315            /* [annotation] */
8316            __in  const UINT Values[ 4 ]);
8317       
8318        void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )(
8319            ID3D11DeviceContext * This,
8320            /* [annotation] */
8321            __in  ID3D11UnorderedAccessView *pUnorderedAccessView,
8322            /* [annotation] */
8323            __in  const FLOAT Values[ 4 ]);
8324       
8325        void ( STDMETHODCALLTYPE *ClearDepthStencilView )(
8326            ID3D11DeviceContext * This,
8327            /* [annotation] */
8328            __in  ID3D11DepthStencilView *pDepthStencilView,
8329            /* [annotation] */
8330            __in  UINT ClearFlags,
8331            /* [annotation] */
8332            __in  FLOAT Depth,
8333            /* [annotation] */
8334            __in  UINT8 Stencil);
8335       
8336        void ( STDMETHODCALLTYPE *GenerateMips )(
8337            ID3D11DeviceContext * This,
8338            /* [annotation] */
8339            __in  ID3D11ShaderResourceView *pShaderResourceView);
8340       
8341        void ( STDMETHODCALLTYPE *SetResourceMinLOD )(
8342            ID3D11DeviceContext * This,
8343            /* [annotation] */
8344            __in  ID3D11Resource *pResource,
8345            FLOAT MinLOD);
8346       
8347        FLOAT ( STDMETHODCALLTYPE *GetResourceMinLOD )(
8348            ID3D11DeviceContext * This,
8349            /* [annotation] */
8350            __in  ID3D11Resource *pResource);
8351       
8352        void ( STDMETHODCALLTYPE *ResolveSubresource )(
8353            ID3D11DeviceContext * This,
8354            /* [annotation] */
8355            __in  ID3D11Resource *pDstResource,
8356            /* [annotation] */
8357            __in  UINT DstSubresource,
8358            /* [annotation] */
8359            __in  ID3D11Resource *pSrcResource,
8360            /* [annotation] */
8361            __in  UINT SrcSubresource,
8362            /* [annotation] */
8363            __in  DXGI_FORMAT Format);
8364       
8365        void ( STDMETHODCALLTYPE *ExecuteCommandList )(
8366            ID3D11DeviceContext * This,
8367            /* [annotation] */
8368            __in  ID3D11CommandList *pCommandList,
8369            BOOL RestoreContextState);
8370       
8371        void ( STDMETHODCALLTYPE *HSSetShaderResources )(
8372            ID3D11DeviceContext * This,
8373            /* [annotation] */
8374            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8375            /* [annotation] */
8376            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8377            /* [annotation] */
8378            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews);
8379       
8380        void ( STDMETHODCALLTYPE *HSSetShader )(
8381            ID3D11DeviceContext * This,
8382            /* [annotation] */
8383            __in_opt  ID3D11HullShader *pHullShader,
8384            /* [annotation] */
8385            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
8386            UINT NumClassInstances);
8387       
8388        void ( STDMETHODCALLTYPE *HSSetSamplers )(
8389            ID3D11DeviceContext * This,
8390            /* [annotation] */
8391            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8392            /* [annotation] */
8393            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8394            /* [annotation] */
8395            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers);
8396       
8397        void ( STDMETHODCALLTYPE *HSSetConstantBuffers )(
8398            ID3D11DeviceContext * This,
8399            /* [annotation] */
8400            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8401            /* [annotation] */
8402            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8403            /* [annotation] */
8404            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers);
8405       
8406        void ( STDMETHODCALLTYPE *DSSetShaderResources )(
8407            ID3D11DeviceContext * This,
8408            /* [annotation] */
8409            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8410            /* [annotation] */
8411            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8412            /* [annotation] */
8413            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews);
8414       
8415        void ( STDMETHODCALLTYPE *DSSetShader )(
8416            ID3D11DeviceContext * This,
8417            /* [annotation] */
8418            __in_opt  ID3D11DomainShader *pDomainShader,
8419            /* [annotation] */
8420            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
8421            UINT NumClassInstances);
8422       
8423        void ( STDMETHODCALLTYPE *DSSetSamplers )(
8424            ID3D11DeviceContext * This,
8425            /* [annotation] */
8426            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8427            /* [annotation] */
8428            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8429            /* [annotation] */
8430            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers);
8431       
8432        void ( STDMETHODCALLTYPE *DSSetConstantBuffers )(
8433            ID3D11DeviceContext * This,
8434            /* [annotation] */
8435            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8436            /* [annotation] */
8437            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8438            /* [annotation] */
8439            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers);
8440       
8441        void ( STDMETHODCALLTYPE *CSSetShaderResources )(
8442            ID3D11DeviceContext * This,
8443            /* [annotation] */
8444            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8445            /* [annotation] */
8446            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8447            /* [annotation] */
8448            __in_ecount(NumViews)  ID3D11ShaderResourceView *const *ppShaderResourceViews);
8449       
8450        void ( STDMETHODCALLTYPE *CSSetUnorderedAccessViews )(
8451            ID3D11DeviceContext * This,
8452            /* [annotation] */
8453            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT StartSlot,
8454            /* [annotation] */
8455            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - StartSlot )  UINT NumUAVs,
8456            /* [annotation] */
8457            __in_ecount(NumUAVs)  ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
8458            /* [annotation] */
8459            __in_ecount(NumUAVs)  const UINT *pUAVInitialCounts);
8460       
8461        void ( STDMETHODCALLTYPE *CSSetShader )(
8462            ID3D11DeviceContext * This,
8463            /* [annotation] */
8464            __in_opt  ID3D11ComputeShader *pComputeShader,
8465            /* [annotation] */
8466            __in_ecount_opt(NumClassInstances)  ID3D11ClassInstance *const *ppClassInstances,
8467            UINT NumClassInstances);
8468       
8469        void ( STDMETHODCALLTYPE *CSSetSamplers )(
8470            ID3D11DeviceContext * This,
8471            /* [annotation] */
8472            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8473            /* [annotation] */
8474            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8475            /* [annotation] */
8476            __in_ecount(NumSamplers)  ID3D11SamplerState *const *ppSamplers);
8477       
8478        void ( STDMETHODCALLTYPE *CSSetConstantBuffers )(
8479            ID3D11DeviceContext * This,
8480            /* [annotation] */
8481            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8482            /* [annotation] */
8483            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8484            /* [annotation] */
8485            __in_ecount(NumBuffers)  ID3D11Buffer *const *ppConstantBuffers);
8486       
8487        void ( STDMETHODCALLTYPE *VSGetConstantBuffers )(
8488            ID3D11DeviceContext * This,
8489            /* [annotation] */
8490            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8491            /* [annotation] */
8492            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8493            /* [annotation] */
8494            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers);
8495       
8496        void ( STDMETHODCALLTYPE *PSGetShaderResources )(
8497            ID3D11DeviceContext * This,
8498            /* [annotation] */
8499            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8500            /* [annotation] */
8501            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8502            /* [annotation] */
8503            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews);
8504       
8505        void ( STDMETHODCALLTYPE *PSGetShader )(
8506            ID3D11DeviceContext * This,
8507            /* [annotation] */
8508            __out  ID3D11PixelShader **ppPixelShader,
8509            /* [annotation] */
8510            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
8511            /* [annotation] */
8512            __inout_opt  UINT *pNumClassInstances);
8513       
8514        void ( STDMETHODCALLTYPE *PSGetSamplers )(
8515            ID3D11DeviceContext * This,
8516            /* [annotation] */
8517            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8518            /* [annotation] */
8519            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8520            /* [annotation] */
8521            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers);
8522       
8523        void ( STDMETHODCALLTYPE *VSGetShader )(
8524            ID3D11DeviceContext * This,
8525            /* [annotation] */
8526            __out  ID3D11VertexShader **ppVertexShader,
8527            /* [annotation] */
8528            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
8529            /* [annotation] */
8530            __inout_opt  UINT *pNumClassInstances);
8531       
8532        void ( STDMETHODCALLTYPE *PSGetConstantBuffers )(
8533            ID3D11DeviceContext * This,
8534            /* [annotation] */
8535            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8536            /* [annotation] */
8537            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8538            /* [annotation] */
8539            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers);
8540       
8541        void ( STDMETHODCALLTYPE *IAGetInputLayout )(
8542            ID3D11DeviceContext * This,
8543            /* [annotation] */
8544            __out  ID3D11InputLayout **ppInputLayout);
8545       
8546        void ( STDMETHODCALLTYPE *IAGetVertexBuffers )(
8547            ID3D11DeviceContext * This,
8548            /* [annotation] */
8549            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8550            /* [annotation] */
8551            __in_range( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8552            /* [annotation] */
8553            __out_ecount_opt(NumBuffers)  ID3D11Buffer **ppVertexBuffers,
8554            /* [annotation] */
8555            __out_ecount_opt(NumBuffers)  UINT *pStrides,
8556            /* [annotation] */
8557            __out_ecount_opt(NumBuffers)  UINT *pOffsets);
8558       
8559        void ( STDMETHODCALLTYPE *IAGetIndexBuffer )(
8560            ID3D11DeviceContext * This,
8561            /* [annotation] */
8562            __out_opt  ID3D11Buffer **pIndexBuffer,
8563            /* [annotation] */
8564            __out_opt  DXGI_FORMAT *Format,
8565            /* [annotation] */
8566            __out_opt  UINT *Offset);
8567       
8568        void ( STDMETHODCALLTYPE *GSGetConstantBuffers )(
8569            ID3D11DeviceContext * This,
8570            /* [annotation] */
8571            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8572            /* [annotation] */
8573            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8574            /* [annotation] */
8575            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers);
8576       
8577        void ( STDMETHODCALLTYPE *GSGetShader )(
8578            ID3D11DeviceContext * This,
8579            /* [annotation] */
8580            __out  ID3D11GeometryShader **ppGeometryShader,
8581            /* [annotation] */
8582            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
8583            /* [annotation] */
8584            __inout_opt  UINT *pNumClassInstances);
8585       
8586        void ( STDMETHODCALLTYPE *IAGetPrimitiveTopology )(
8587            ID3D11DeviceContext * This,
8588            /* [annotation] */
8589            __out  D3D11_PRIMITIVE_TOPOLOGY *pTopology);
8590       
8591        void ( STDMETHODCALLTYPE *VSGetShaderResources )(
8592            ID3D11DeviceContext * This,
8593            /* [annotation] */
8594            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8595            /* [annotation] */
8596            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8597            /* [annotation] */
8598            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews);
8599       
8600        void ( STDMETHODCALLTYPE *VSGetSamplers )(
8601            ID3D11DeviceContext * This,
8602            /* [annotation] */
8603            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8604            /* [annotation] */
8605            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8606            /* [annotation] */
8607            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers);
8608       
8609        void ( STDMETHODCALLTYPE *GetPredication )(
8610            ID3D11DeviceContext * This,
8611            /* [annotation] */
8612            __out_opt  ID3D11Predicate **ppPredicate,
8613            /* [annotation] */
8614            __out_opt  BOOL *pPredicateValue);
8615       
8616        void ( STDMETHODCALLTYPE *GSGetShaderResources )(
8617            ID3D11DeviceContext * This,
8618            /* [annotation] */
8619            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8620            /* [annotation] */
8621            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8622            /* [annotation] */
8623            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews);
8624       
8625        void ( STDMETHODCALLTYPE *GSGetSamplers )(
8626            ID3D11DeviceContext * This,
8627            /* [annotation] */
8628            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8629            /* [annotation] */
8630            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8631            /* [annotation] */
8632            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers);
8633       
8634        void ( STDMETHODCALLTYPE *OMGetRenderTargets )(
8635            ID3D11DeviceContext * This,
8636            /* [annotation] */
8637            __in_range( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumViews,
8638            /* [annotation] */
8639            __out_ecount_opt(NumViews)  ID3D11RenderTargetView **ppRenderTargetViews,
8640            /* [annotation] */
8641            __out_opt  ID3D11DepthStencilView **ppDepthStencilView);
8642       
8643        void ( STDMETHODCALLTYPE *OMGetRenderTargetsAndUnorderedAccessViews )(
8644            ID3D11DeviceContext * This,
8645            /* [annotation] */
8646            __in_range( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT )  UINT NumRTVs,
8647            /* [annotation] */
8648            __out_ecount_opt(NumRTVs)  ID3D11RenderTargetView **ppRenderTargetViews,
8649            /* [annotation] */
8650            __out_opt  ID3D11DepthStencilView **ppDepthStencilView,
8651            /* [annotation] */
8652            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT UAVStartSlot,
8653            /* [annotation] */
8654            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - UAVStartSlot )  UINT NumUAVs,
8655            /* [annotation] */
8656            __out_ecount_opt(NumUAVs)  ID3D11UnorderedAccessView **ppUnorderedAccessViews);
8657       
8658        void ( STDMETHODCALLTYPE *OMGetBlendState )(
8659            ID3D11DeviceContext * This,
8660            /* [annotation] */
8661            __out_opt  ID3D11BlendState **ppBlendState,
8662            /* [annotation] */
8663            __out_opt  FLOAT BlendFactor[ 4 ],
8664            /* [annotation] */
8665            __out_opt  UINT *pSampleMask);
8666       
8667        void ( STDMETHODCALLTYPE *OMGetDepthStencilState )(
8668            ID3D11DeviceContext * This,
8669            /* [annotation] */
8670            __out_opt  ID3D11DepthStencilState **ppDepthStencilState,
8671            /* [annotation] */
8672            __out_opt  UINT *pStencilRef);
8673       
8674        void ( STDMETHODCALLTYPE *SOGetTargets )(
8675            ID3D11DeviceContext * This,
8676            /* [annotation] */
8677            __in_range( 0, D3D11_SO_BUFFER_SLOT_COUNT )  UINT NumBuffers,
8678            /* [annotation] */
8679            __out_ecount(NumBuffers)  ID3D11Buffer **ppSOTargets);
8680       
8681        void ( STDMETHODCALLTYPE *RSGetState )(
8682            ID3D11DeviceContext * This,
8683            /* [annotation] */
8684            __out  ID3D11RasterizerState **ppRasterizerState);
8685       
8686        void ( STDMETHODCALLTYPE *RSGetViewports )(
8687            ID3D11DeviceContext * This,
8688            /* [annotation] */
8689            __inout /*_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *pNumViewports,
8690            /* [annotation] */
8691            __out_ecount_opt(*pNumViewports)  D3D11_VIEWPORT *pViewports);
8692       
8693        void ( STDMETHODCALLTYPE *RSGetScissorRects )(
8694            ID3D11DeviceContext * This,
8695            /* [annotation] */
8696            __inout /*_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/   UINT *pNumRects,
8697            /* [annotation] */
8698            __out_ecount_opt(*pNumRects)  D3D11_RECT *pRects);
8699       
8700        void ( STDMETHODCALLTYPE *HSGetShaderResources )(
8701            ID3D11DeviceContext * This,
8702            /* [annotation] */
8703            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8704            /* [annotation] */
8705            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8706            /* [annotation] */
8707            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews);
8708       
8709        void ( STDMETHODCALLTYPE *HSGetShader )(
8710            ID3D11DeviceContext * This,
8711            /* [annotation] */
8712            __out  ID3D11HullShader **ppHullShader,
8713            /* [annotation] */
8714            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
8715            /* [annotation] */
8716            __inout_opt  UINT *pNumClassInstances);
8717       
8718        void ( STDMETHODCALLTYPE *HSGetSamplers )(
8719            ID3D11DeviceContext * This,
8720            /* [annotation] */
8721            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8722            /* [annotation] */
8723            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8724            /* [annotation] */
8725            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers);
8726       
8727        void ( STDMETHODCALLTYPE *HSGetConstantBuffers )(
8728            ID3D11DeviceContext * This,
8729            /* [annotation] */
8730            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8731            /* [annotation] */
8732            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8733            /* [annotation] */
8734            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers);
8735       
8736        void ( STDMETHODCALLTYPE *DSGetShaderResources )(
8737            ID3D11DeviceContext * This,
8738            /* [annotation] */
8739            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8740            /* [annotation] */
8741            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8742            /* [annotation] */
8743            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews);
8744       
8745        void ( STDMETHODCALLTYPE *DSGetShader )(
8746            ID3D11DeviceContext * This,
8747            /* [annotation] */
8748            __out  ID3D11DomainShader **ppDomainShader,
8749            /* [annotation] */
8750            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
8751            /* [annotation] */
8752            __inout_opt  UINT *pNumClassInstances);
8753       
8754        void ( STDMETHODCALLTYPE *DSGetSamplers )(
8755            ID3D11DeviceContext * This,
8756            /* [annotation] */
8757            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8758            /* [annotation] */
8759            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8760            /* [annotation] */
8761            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers);
8762       
8763        void ( STDMETHODCALLTYPE *DSGetConstantBuffers )(
8764            ID3D11DeviceContext * This,
8765            /* [annotation] */
8766            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8767            /* [annotation] */
8768            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8769            /* [annotation] */
8770            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers);
8771       
8772        void ( STDMETHODCALLTYPE *CSGetShaderResources )(
8773            ID3D11DeviceContext * This,
8774            /* [annotation] */
8775            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 )  UINT StartSlot,
8776            /* [annotation] */
8777            __in_range( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot )  UINT NumViews,
8778            /* [annotation] */
8779            __out_ecount(NumViews)  ID3D11ShaderResourceView **ppShaderResourceViews);
8780       
8781        void ( STDMETHODCALLTYPE *CSGetUnorderedAccessViews )(
8782            ID3D11DeviceContext * This,
8783            /* [annotation] */
8784            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 )  UINT StartSlot,
8785            /* [annotation] */
8786            __in_range( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - StartSlot )  UINT NumUAVs,
8787            /* [annotation] */
8788            __out_ecount(NumUAVs)  ID3D11UnorderedAccessView **ppUnorderedAccessViews);
8789       
8790        void ( STDMETHODCALLTYPE *CSGetShader )(
8791            ID3D11DeviceContext * This,
8792            /* [annotation] */
8793            __out  ID3D11ComputeShader **ppComputeShader,
8794            /* [annotation] */
8795            __out_ecount_opt(*pNumClassInstances)  ID3D11ClassInstance **ppClassInstances,
8796            /* [annotation] */
8797            __inout_opt  UINT *pNumClassInstances);
8798       
8799        void ( STDMETHODCALLTYPE *CSGetSamplers )(
8800            ID3D11DeviceContext * This,
8801            /* [annotation] */
8802            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 )  UINT StartSlot,
8803            /* [annotation] */
8804            __in_range( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot )  UINT NumSamplers,
8805            /* [annotation] */
8806            __out_ecount(NumSamplers)  ID3D11SamplerState **ppSamplers);
8807       
8808        void ( STDMETHODCALLTYPE *CSGetConstantBuffers )(
8809            ID3D11DeviceContext * This,
8810            /* [annotation] */
8811            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 )  UINT StartSlot,
8812            /* [annotation] */
8813            __in_range( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot )  UINT NumBuffers,
8814            /* [annotation] */
8815            __out_ecount(NumBuffers)  ID3D11Buffer **ppConstantBuffers);
8816       
8817        void ( STDMETHODCALLTYPE *ClearState )(
8818            ID3D11DeviceContext * This);
8819       
8820        void ( STDMETHODCALLTYPE *Flush )(
8821            ID3D11DeviceContext * This);
8822       
8823        D3D11_DEVICE_CONTEXT_TYPE ( STDMETHODCALLTYPE *GetType )(
8824            ID3D11DeviceContext * This);
8825       
8826        UINT ( STDMETHODCALLTYPE *GetContextFlags )(
8827            ID3D11DeviceContext * This);
8828       
8829        HRESULT ( STDMETHODCALLTYPE *FinishCommandList )(
8830            ID3D11DeviceContext * This,
8831            BOOL RestoreDeferredContextState,
8832            /* [annotation] */
8833            __out_opt  ID3D11CommandList **ppCommandList);
8834       
8835        END_INTERFACE
8836    } ID3D11DeviceContextVtbl;
8837
8838    interface ID3D11DeviceContext
8839    {
8840        CONST_VTBL struct ID3D11DeviceContextVtbl *lpVtbl;
8841    };
8842
8843   
8844
8845#ifdef COBJMACROS
8846
8847
8848#define ID3D11DeviceContext_QueryInterface(This,riid,ppvObject)   \
8849    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8850
8851#define ID3D11DeviceContext_AddRef(This)   \
8852    ( (This)->lpVtbl -> AddRef(This) )
8853
8854#define ID3D11DeviceContext_Release(This)   \
8855    ( (This)->lpVtbl -> Release(This) )
8856
8857
8858#define ID3D11DeviceContext_GetDevice(This,ppDevice)   \
8859    ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
8860
8861#define ID3D11DeviceContext_GetPrivateData(This,guid,pDataSize,pData)   \
8862    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
8863
8864#define ID3D11DeviceContext_SetPrivateData(This,guid,DataSize,pData)   \
8865    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
8866
8867#define ID3D11DeviceContext_SetPrivateDataInterface(This,guid,pData)   \
8868    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
8869
8870
8871#define ID3D11DeviceContext_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
8872    ( (This)->lpVtbl -> VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
8873
8874#define ID3D11DeviceContext_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
8875    ( (This)->lpVtbl -> PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
8876
8877#define ID3D11DeviceContext_PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances)   \
8878    ( (This)->lpVtbl -> PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) )
8879
8880#define ID3D11DeviceContext_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
8881    ( (This)->lpVtbl -> PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
8882
8883#define ID3D11DeviceContext_VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances)   \
8884    ( (This)->lpVtbl -> VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) )
8885
8886#define ID3D11DeviceContext_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation)   \
8887    ( (This)->lpVtbl -> DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) )
8888
8889#define ID3D11DeviceContext_Draw(This,VertexCount,StartVertexLocation)   \
8890    ( (This)->lpVtbl -> Draw(This,VertexCount,StartVertexLocation) )
8891
8892#define ID3D11DeviceContext_Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource)   \
8893    ( (This)->lpVtbl -> Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) )
8894
8895#define ID3D11DeviceContext_Unmap(This,pResource,Subresource)   \
8896    ( (This)->lpVtbl -> Unmap(This,pResource,Subresource) )
8897
8898#define ID3D11DeviceContext_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
8899    ( (This)->lpVtbl -> PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
8900
8901#define ID3D11DeviceContext_IASetInputLayout(This,pInputLayout)   \
8902    ( (This)->lpVtbl -> IASetInputLayout(This,pInputLayout) )
8903
8904#define ID3D11DeviceContext_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)   \
8905    ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) )
8906
8907#define ID3D11DeviceContext_IASetIndexBuffer(This,pIndexBuffer,Format,Offset)   \
8908    ( (This)->lpVtbl -> IASetIndexBuffer(This,pIndexBuffer,Format,Offset) )
8909
8910#define ID3D11DeviceContext_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation)   \
8911    ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) )
8912
8913#define ID3D11DeviceContext_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation)   \
8914    ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) )
8915
8916#define ID3D11DeviceContext_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
8917    ( (This)->lpVtbl -> GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
8918
8919#define ID3D11DeviceContext_GSSetShader(This,pShader,ppClassInstances,NumClassInstances)   \
8920    ( (This)->lpVtbl -> GSSetShader(This,pShader,ppClassInstances,NumClassInstances) )
8921
8922#define ID3D11DeviceContext_IASetPrimitiveTopology(This,Topology)   \
8923    ( (This)->lpVtbl -> IASetPrimitiveTopology(This,Topology) )
8924
8925#define ID3D11DeviceContext_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
8926    ( (This)->lpVtbl -> VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
8927
8928#define ID3D11DeviceContext_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
8929    ( (This)->lpVtbl -> VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
8930
8931#define ID3D11DeviceContext_Begin(This,pAsync)   \
8932    ( (This)->lpVtbl -> Begin(This,pAsync) )
8933
8934#define ID3D11DeviceContext_End(This,pAsync)   \
8935    ( (This)->lpVtbl -> End(This,pAsync) )
8936
8937#define ID3D11DeviceContext_GetData(This,pAsync,pData,DataSize,GetDataFlags)   \
8938    ( (This)->lpVtbl -> GetData(This,pAsync,pData,DataSize,GetDataFlags) )
8939
8940#define ID3D11DeviceContext_SetPredication(This,pPredicate,PredicateValue)   \
8941    ( (This)->lpVtbl -> SetPredication(This,pPredicate,PredicateValue) )
8942
8943#define ID3D11DeviceContext_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
8944    ( (This)->lpVtbl -> GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
8945
8946#define ID3D11DeviceContext_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
8947    ( (This)->lpVtbl -> GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
8948
8949#define ID3D11DeviceContext_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView)   \
8950    ( (This)->lpVtbl -> OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) )
8951
8952#define ID3D11DeviceContext_OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)   \
8953    ( (This)->lpVtbl -> OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) )
8954
8955#define ID3D11DeviceContext_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask)   \
8956    ( (This)->lpVtbl -> OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) )
8957
8958#define ID3D11DeviceContext_OMSetDepthStencilState(This,pDepthStencilState,StencilRef)   \
8959    ( (This)->lpVtbl -> OMSetDepthStencilState(This,pDepthStencilState,StencilRef) )
8960
8961#define ID3D11DeviceContext_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets)   \
8962    ( (This)->lpVtbl -> SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) )
8963
8964#define ID3D11DeviceContext_DrawAuto(This)   \
8965    ( (This)->lpVtbl -> DrawAuto(This) )
8966
8967#define ID3D11DeviceContext_DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)   \
8968    ( (This)->lpVtbl -> DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) )
8969
8970#define ID3D11DeviceContext_DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)   \
8971    ( (This)->lpVtbl -> DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) )
8972
8973#define ID3D11DeviceContext_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ)   \
8974    ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) )
8975
8976#define ID3D11DeviceContext_DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs)   \
8977    ( (This)->lpVtbl -> DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) )
8978
8979#define ID3D11DeviceContext_RSSetState(This,pRasterizerState)   \
8980    ( (This)->lpVtbl -> RSSetState(This,pRasterizerState) )
8981
8982#define ID3D11DeviceContext_RSSetViewports(This,NumViewports,pViewports)   \
8983    ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) )
8984
8985#define ID3D11DeviceContext_RSSetScissorRects(This,NumRects,pRects)   \
8986    ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) )
8987
8988#define ID3D11DeviceContext_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox)   \
8989    ( (This)->lpVtbl -> CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) )
8990
8991#define ID3D11DeviceContext_CopyResource(This,pDstResource,pSrcResource)   \
8992    ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) )
8993
8994#define ID3D11DeviceContext_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch)   \
8995    ( (This)->lpVtbl -> UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
8996
8997#define ID3D11DeviceContext_CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView)   \
8998    ( (This)->lpVtbl -> CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) )
8999
9000#define ID3D11DeviceContext_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA)   \
9001    ( (This)->lpVtbl -> ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) )
9002
9003#define ID3D11DeviceContext_ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values)   \
9004    ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) )
9005
9006#define ID3D11DeviceContext_ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values)   \
9007    ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) )
9008
9009#define ID3D11DeviceContext_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil)   \
9010    ( (This)->lpVtbl -> ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) )
9011
9012#define ID3D11DeviceContext_GenerateMips(This,pShaderResourceView)   \
9013    ( (This)->lpVtbl -> GenerateMips(This,pShaderResourceView) )
9014
9015#define ID3D11DeviceContext_SetResourceMinLOD(This,pResource,MinLOD)   \
9016    ( (This)->lpVtbl -> SetResourceMinLOD(This,pResource,MinLOD) )
9017
9018#define ID3D11DeviceContext_GetResourceMinLOD(This,pResource)   \
9019    ( (This)->lpVtbl -> GetResourceMinLOD(This,pResource) )
9020
9021#define ID3D11DeviceContext_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format)   \
9022    ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) )
9023
9024#define ID3D11DeviceContext_ExecuteCommandList(This,pCommandList,RestoreContextState)   \
9025    ( (This)->lpVtbl -> ExecuteCommandList(This,pCommandList,RestoreContextState) )
9026
9027#define ID3D11DeviceContext_HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9028    ( (This)->lpVtbl -> HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9029
9030#define ID3D11DeviceContext_HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances)   \
9031    ( (This)->lpVtbl -> HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) )
9032
9033#define ID3D11DeviceContext_HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9034    ( (This)->lpVtbl -> HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9035
9036#define ID3D11DeviceContext_HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9037    ( (This)->lpVtbl -> HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9038
9039#define ID3D11DeviceContext_DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9040    ( (This)->lpVtbl -> DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9041
9042#define ID3D11DeviceContext_DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances)   \
9043    ( (This)->lpVtbl -> DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) )
9044
9045#define ID3D11DeviceContext_DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9046    ( (This)->lpVtbl -> DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9047
9048#define ID3D11DeviceContext_DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9049    ( (This)->lpVtbl -> DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9050
9051#define ID3D11DeviceContext_CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9052    ( (This)->lpVtbl -> CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9053
9054#define ID3D11DeviceContext_CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts)   \
9055    ( (This)->lpVtbl -> CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) )
9056
9057#define ID3D11DeviceContext_CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances)   \
9058    ( (This)->lpVtbl -> CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) )
9059
9060#define ID3D11DeviceContext_CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9061    ( (This)->lpVtbl -> CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9062
9063#define ID3D11DeviceContext_CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9064    ( (This)->lpVtbl -> CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9065
9066#define ID3D11DeviceContext_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9067    ( (This)->lpVtbl -> VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9068
9069#define ID3D11DeviceContext_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9070    ( (This)->lpVtbl -> PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9071
9072#define ID3D11DeviceContext_PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances)   \
9073    ( (This)->lpVtbl -> PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) )
9074
9075#define ID3D11DeviceContext_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9076    ( (This)->lpVtbl -> PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9077
9078#define ID3D11DeviceContext_VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances)   \
9079    ( (This)->lpVtbl -> VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) )
9080
9081#define ID3D11DeviceContext_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9082    ( (This)->lpVtbl -> PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9083
9084#define ID3D11DeviceContext_IAGetInputLayout(This,ppInputLayout)   \
9085    ( (This)->lpVtbl -> IAGetInputLayout(This,ppInputLayout) )
9086
9087#define ID3D11DeviceContext_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets)   \
9088    ( (This)->lpVtbl -> IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) )
9089
9090#define ID3D11DeviceContext_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset)   \
9091    ( (This)->lpVtbl -> IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) )
9092
9093#define ID3D11DeviceContext_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9094    ( (This)->lpVtbl -> GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9095
9096#define ID3D11DeviceContext_GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances)   \
9097    ( (This)->lpVtbl -> GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) )
9098
9099#define ID3D11DeviceContext_IAGetPrimitiveTopology(This,pTopology)   \
9100    ( (This)->lpVtbl -> IAGetPrimitiveTopology(This,pTopology) )
9101
9102#define ID3D11DeviceContext_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9103    ( (This)->lpVtbl -> VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9104
9105#define ID3D11DeviceContext_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9106    ( (This)->lpVtbl -> VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9107
9108#define ID3D11DeviceContext_GetPredication(This,ppPredicate,pPredicateValue)   \
9109    ( (This)->lpVtbl -> GetPredication(This,ppPredicate,pPredicateValue) )
9110
9111#define ID3D11DeviceContext_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9112    ( (This)->lpVtbl -> GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9113
9114#define ID3D11DeviceContext_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9115    ( (This)->lpVtbl -> GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9116
9117#define ID3D11DeviceContext_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView)   \
9118    ( (This)->lpVtbl -> OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) )
9119
9120#define ID3D11DeviceContext_OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews)   \
9121    ( (This)->lpVtbl -> OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) )
9122
9123#define ID3D11DeviceContext_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask)   \
9124    ( (This)->lpVtbl -> OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) )
9125
9126#define ID3D11DeviceContext_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef)   \
9127    ( (This)->lpVtbl -> OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) )
9128
9129#define ID3D11DeviceContext_SOGetTargets(This,NumBuffers,ppSOTargets)   \
9130    ( (This)->lpVtbl -> SOGetTargets(This,NumBuffers,ppSOTargets) )
9131
9132#define ID3D11DeviceContext_RSGetState(This,ppRasterizerState)   \
9133    ( (This)->lpVtbl -> RSGetState(This,ppRasterizerState) )
9134
9135#define ID3D11DeviceContext_RSGetViewports(This,pNumViewports,pViewports)   \
9136    ( (This)->lpVtbl -> RSGetViewports(This,pNumViewports,pViewports) )
9137
9138#define ID3D11DeviceContext_RSGetScissorRects(This,pNumRects,pRects)   \
9139    ( (This)->lpVtbl -> RSGetScissorRects(This,pNumRects,pRects) )
9140
9141#define ID3D11DeviceContext_HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9142    ( (This)->lpVtbl -> HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9143
9144#define ID3D11DeviceContext_HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances)   \
9145    ( (This)->lpVtbl -> HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) )
9146
9147#define ID3D11DeviceContext_HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9148    ( (This)->lpVtbl -> HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9149
9150#define ID3D11DeviceContext_HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9151    ( (This)->lpVtbl -> HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9152
9153#define ID3D11DeviceContext_DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9154    ( (This)->lpVtbl -> DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9155
9156#define ID3D11DeviceContext_DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances)   \
9157    ( (This)->lpVtbl -> DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) )
9158
9159#define ID3D11DeviceContext_DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9160    ( (This)->lpVtbl -> DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9161
9162#define ID3D11DeviceContext_DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9163    ( (This)->lpVtbl -> DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9164
9165#define ID3D11DeviceContext_CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews)   \
9166    ( (This)->lpVtbl -> CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) )
9167
9168#define ID3D11DeviceContext_CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews)   \
9169    ( (This)->lpVtbl -> CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) )
9170
9171#define ID3D11DeviceContext_CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances)   \
9172    ( (This)->lpVtbl -> CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) )
9173
9174#define ID3D11DeviceContext_CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers)   \
9175    ( (This)->lpVtbl -> CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) )
9176
9177#define ID3D11DeviceContext_CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers)   \
9178    ( (This)->lpVtbl -> CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) )
9179
9180#define ID3D11DeviceContext_ClearState(This)   \
9181    ( (This)->lpVtbl -> ClearState(This) )
9182
9183#define ID3D11DeviceContext_Flush(This)   \
9184    ( (This)->lpVtbl -> Flush(This) )
9185
9186#define ID3D11DeviceContext_GetType(This)   \
9187    ( (This)->lpVtbl -> GetType(This) )
9188
9189#define ID3D11DeviceContext_GetContextFlags(This)   \
9190    ( (This)->lpVtbl -> GetContextFlags(This) )
9191
9192#define ID3D11DeviceContext_FinishCommandList(This,RestoreDeferredContextState,ppCommandList)   \
9193    ( (This)->lpVtbl -> FinishCommandList(This,RestoreDeferredContextState,ppCommandList) )
9194
9195#endif /* COBJMACROS */
9196
9197
9198#endif    /* C style interface */
9199
9200
9201
9202
9203#endif    /* __ID3D11DeviceContext_INTERFACE_DEFINED__ */
9204
9205
9206#ifndef __ID3D11Device_INTERFACE_DEFINED__
9207#define __ID3D11Device_INTERFACE_DEFINED__
9208
9209/* interface ID3D11Device */
9210/* [unique][local][object][uuid] */
9211
9212
9213EXTERN_C const IID IID_ID3D11Device;
9214
9215#if defined(__cplusplus) && !defined(CINTERFACE)
9216   
9217    MIDL_INTERFACE("db6f6ddb-ac77-4e88-8253-819df9bbf140")
9218    ID3D11Device : public IUnknown
9219    {
9220    public:
9221        virtual HRESULT STDMETHODCALLTYPE CreateBuffer(
9222            /* [annotation] */
9223            __in  const D3D11_BUFFER_DESC *pDesc,
9224            /* [annotation] */
9225            __in_opt  const D3D11_SUBRESOURCE_DATA *pInitialData,
9226            /* [annotation] */
9227            __out_opt  ID3D11Buffer **ppBuffer) = 0;
9228       
9229        virtual HRESULT STDMETHODCALLTYPE CreateTexture1D(
9230            /* [annotation] */
9231            __in  const D3D11_TEXTURE1D_DESC *pDesc,
9232            /* [annotation] */
9233            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D11_SUBRESOURCE_DATA *pInitialData,
9234            /* [annotation] */
9235            __out_opt  ID3D11Texture1D **ppTexture1D) = 0;
9236       
9237        virtual HRESULT STDMETHODCALLTYPE CreateTexture2D(
9238            /* [annotation] */
9239            __in  const D3D11_TEXTURE2D_DESC *pDesc,
9240            /* [annotation] */
9241            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D11_SUBRESOURCE_DATA *pInitialData,
9242            /* [annotation] */
9243            __out_opt  ID3D11Texture2D **ppTexture2D) = 0;
9244       
9245        virtual HRESULT STDMETHODCALLTYPE CreateTexture3D(
9246            /* [annotation] */
9247            __in  const D3D11_TEXTURE3D_DESC *pDesc,
9248            /* [annotation] */
9249            __in_xcount_opt(pDesc->MipLevels)  const D3D11_SUBRESOURCE_DATA *pInitialData,
9250            /* [annotation] */
9251            __out_opt  ID3D11Texture3D **ppTexture3D) = 0;
9252       
9253        virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView(
9254            /* [annotation] */
9255            __in  ID3D11Resource *pResource,
9256            /* [annotation] */
9257            __in_opt  const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
9258            /* [annotation] */
9259            __out_opt  ID3D11ShaderResourceView **ppSRView) = 0;
9260       
9261        virtual HRESULT STDMETHODCALLTYPE CreateUnorderedAccessView(
9262            /* [annotation] */
9263            __in  ID3D11Resource *pResource,
9264            /* [annotation] */
9265            __in_opt  const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
9266            /* [annotation] */
9267            __out_opt  ID3D11UnorderedAccessView **ppUAView) = 0;
9268       
9269        virtual HRESULT STDMETHODCALLTYPE CreateRenderTargetView(
9270            /* [annotation] */
9271            __in  ID3D11Resource *pResource,
9272            /* [annotation] */
9273            __in_opt  const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
9274            /* [annotation] */
9275            __out_opt  ID3D11RenderTargetView **ppRTView) = 0;
9276       
9277        virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilView(
9278            /* [annotation] */
9279            __in  ID3D11Resource *pResource,
9280            /* [annotation] */
9281            __in_opt  const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
9282            /* [annotation] */
9283            __out_opt  ID3D11DepthStencilView **ppDepthStencilView) = 0;
9284       
9285        virtual HRESULT STDMETHODCALLTYPE CreateInputLayout(
9286            /* [annotation] */
9287            __in_ecount(NumElements)  const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
9288            /* [annotation] */
9289            __in_range( 0, D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT )  UINT NumElements,
9290            /* [annotation] */
9291            __in  const void *pShaderBytecodeWithInputSignature,
9292            /* [annotation] */
9293            __in  SIZE_T BytecodeLength,
9294            /* [annotation] */
9295            __out_opt  ID3D11InputLayout **ppInputLayout) = 0;
9296       
9297        virtual HRESULT STDMETHODCALLTYPE CreateVertexShader(
9298            /* [annotation] */
9299            __in  const void *pShaderBytecode,
9300            /* [annotation] */
9301            __in  SIZE_T BytecodeLength,
9302            /* [annotation] */
9303            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9304            /* [annotation] */
9305            __out_opt  ID3D11VertexShader **ppVertexShader) = 0;
9306       
9307        virtual HRESULT STDMETHODCALLTYPE CreateGeometryShader(
9308            /* [annotation] */
9309            __in  const void *pShaderBytecode,
9310            /* [annotation] */
9311            __in  SIZE_T BytecodeLength,
9312            /* [annotation] */
9313            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9314            /* [annotation] */
9315            __out_opt  ID3D11GeometryShader **ppGeometryShader) = 0;
9316       
9317        virtual HRESULT STDMETHODCALLTYPE CreateGeometryShaderWithStreamOutput(
9318            /* [annotation] */
9319            __in  const void *pShaderBytecode,
9320            /* [annotation] */
9321            __in  SIZE_T BytecodeLength,
9322            /* [annotation] */
9323            __in_ecount_opt(NumEntries)  const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
9324            /* [annotation] */
9325            __in_range( 0, D3D11_SO_STREAM_COUNT * D3D11_SO_OUTPUT_COMPONENT_COUNT )  UINT NumEntries,
9326            /* [annotation] */
9327            __in_ecount_opt(NumStrides)  const UINT *pBufferStrides,
9328            /* [annotation] */
9329            __in_range( 0, D3D11_SO_BUFFER_SLOT_COUNT )  UINT NumStrides,
9330            /* [annotation] */
9331            __in  UINT RasterizedStream,
9332            /* [annotation] */
9333            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9334            /* [annotation] */
9335            __out_opt  ID3D11GeometryShader **ppGeometryShader) = 0;
9336       
9337        virtual HRESULT STDMETHODCALLTYPE CreatePixelShader(
9338            /* [annotation] */
9339            __in  const void *pShaderBytecode,
9340            /* [annotation] */
9341            __in  SIZE_T BytecodeLength,
9342            /* [annotation] */
9343            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9344            /* [annotation] */
9345            __out_opt  ID3D11PixelShader **ppPixelShader) = 0;
9346       
9347        virtual HRESULT STDMETHODCALLTYPE CreateHullShader(
9348            /* [annotation] */
9349            __in  const void *pShaderBytecode,
9350            /* [annotation] */
9351            __in  SIZE_T BytecodeLength,
9352            /* [annotation] */
9353            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9354            /* [annotation] */
9355            __out_opt  ID3D11HullShader **ppHullShader) = 0;
9356       
9357        virtual HRESULT STDMETHODCALLTYPE CreateDomainShader(
9358            /* [annotation] */
9359            __in  const void *pShaderBytecode,
9360            /* [annotation] */
9361            __in  SIZE_T BytecodeLength,
9362            /* [annotation] */
9363            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9364            /* [annotation] */
9365            __out_opt  ID3D11DomainShader **ppDomainShader) = 0;
9366       
9367        virtual HRESULT STDMETHODCALLTYPE CreateComputeShader(
9368            /* [annotation] */
9369            __in  const void *pShaderBytecode,
9370            /* [annotation] */
9371            __in  SIZE_T BytecodeLength,
9372            /* [annotation] */
9373            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9374            /* [annotation] */
9375            __out_opt  ID3D11ComputeShader **ppComputeShader) = 0;
9376       
9377        virtual HRESULT STDMETHODCALLTYPE CreateClassLinkage(
9378            /* [annotation] */
9379            __out  ID3D11ClassLinkage **ppLinkage) = 0;
9380       
9381        virtual HRESULT STDMETHODCALLTYPE CreateBlendState(
9382            /* [annotation] */
9383            __in  const D3D11_BLEND_DESC *pBlendStateDesc,
9384            /* [annotation] */
9385            __out_opt  ID3D11BlendState **ppBlendState) = 0;
9386       
9387        virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilState(
9388            /* [annotation] */
9389            __in  const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
9390            /* [annotation] */
9391            __out_opt  ID3D11DepthStencilState **ppDepthStencilState) = 0;
9392       
9393        virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState(
9394            /* [annotation] */
9395            __in  const D3D11_RASTERIZER_DESC *pRasterizerDesc,
9396            /* [annotation] */
9397            __out_opt  ID3D11RasterizerState **ppRasterizerState) = 0;
9398       
9399        virtual HRESULT STDMETHODCALLTYPE CreateSamplerState(
9400            /* [annotation] */
9401            __in  const D3D11_SAMPLER_DESC *pSamplerDesc,
9402            /* [annotation] */
9403            __out_opt  ID3D11SamplerState **ppSamplerState) = 0;
9404       
9405        virtual HRESULT STDMETHODCALLTYPE CreateQuery(
9406            /* [annotation] */
9407            __in  const D3D11_QUERY_DESC *pQueryDesc,
9408            /* [annotation] */
9409            __out_opt  ID3D11Query **ppQuery) = 0;
9410       
9411        virtual HRESULT STDMETHODCALLTYPE CreatePredicate(
9412            /* [annotation] */
9413            __in  const D3D11_QUERY_DESC *pPredicateDesc,
9414            /* [annotation] */
9415            __out_opt  ID3D11Predicate **ppPredicate) = 0;
9416       
9417        virtual HRESULT STDMETHODCALLTYPE CreateCounter(
9418            /* [annotation] */
9419            __in  const D3D11_COUNTER_DESC *pCounterDesc,
9420            /* [annotation] */
9421            __out_opt  ID3D11Counter **ppCounter) = 0;
9422       
9423        virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext(
9424            UINT ContextFlags,
9425            /* [annotation] */
9426            __out_opt  ID3D11DeviceContext **ppDeferredContext) = 0;
9427       
9428        virtual HRESULT STDMETHODCALLTYPE OpenSharedResource(
9429            /* [annotation] */
9430            __in  HANDLE hResource,
9431            /* [annotation] */
9432            __in  REFIID ReturnedInterface,
9433            /* [annotation] */
9434            __out_opt  void **ppResource) = 0;
9435       
9436        virtual HRESULT STDMETHODCALLTYPE CheckFormatSupport(
9437            /* [annotation] */
9438            __in  DXGI_FORMAT Format,
9439            /* [annotation] */
9440            __out  UINT *pFormatSupport) = 0;
9441       
9442        virtual HRESULT STDMETHODCALLTYPE CheckMultisampleQualityLevels(
9443            /* [annotation] */
9444            __in  DXGI_FORMAT Format,
9445            /* [annotation] */
9446            __in  UINT SampleCount,
9447            /* [annotation] */
9448            __out  UINT *pNumQualityLevels) = 0;
9449       
9450        virtual void STDMETHODCALLTYPE CheckCounterInfo(
9451            /* [annotation] */
9452            __out  D3D11_COUNTER_INFO *pCounterInfo) = 0;
9453       
9454        virtual HRESULT STDMETHODCALLTYPE CheckCounter(
9455            /* [annotation] */
9456            __in  const D3D11_COUNTER_DESC *pDesc,
9457            /* [annotation] */
9458            __out  D3D11_COUNTER_TYPE *pType,
9459            /* [annotation] */
9460            __out  UINT *pActiveCounters,
9461            /* [annotation] */
9462            __out_ecount_opt(*pNameLength)  LPSTR szName,
9463            /* [annotation] */
9464            __inout_opt  UINT *pNameLength,
9465            /* [annotation] */
9466            __out_ecount_opt(*pUnitsLength)  LPSTR szUnits,
9467            /* [annotation] */
9468            __inout_opt  UINT *pUnitsLength,
9469            /* [annotation] */
9470            __out_ecount_opt(*pDescriptionLength)  LPSTR szDescription,
9471            /* [annotation] */
9472            __inout_opt  UINT *pDescriptionLength) = 0;
9473       
9474        virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
9475            D3D11_FEATURE Feature,
9476            /* [annotation] */
9477            __out_bcount(FeatureSupportDataSize)  void *pFeatureSupportData,
9478            UINT FeatureSupportDataSize) = 0;
9479       
9480        virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
9481            /* [annotation] */
9482            __in  REFGUID guid,
9483            /* [annotation] */
9484            __inout  UINT *pDataSize,
9485            /* [annotation] */
9486            __out_bcount_opt(*pDataSize)  void *pData) = 0;
9487       
9488        virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
9489            /* [annotation] */
9490            __in  REFGUID guid,
9491            /* [annotation] */
9492            __in  UINT DataSize,
9493            /* [annotation] */
9494            __in_bcount_opt(DataSize)  const void *pData) = 0;
9495       
9496        virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
9497            /* [annotation] */
9498            __in  REFGUID guid,
9499            /* [annotation] */
9500            __in_opt  const IUnknown *pData) = 0;
9501       
9502        virtual D3D_FEATURE_LEVEL STDMETHODCALLTYPE GetFeatureLevel( void) = 0;
9503       
9504        virtual UINT STDMETHODCALLTYPE GetCreationFlags( void) = 0;
9505       
9506        virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0;
9507       
9508        virtual void STDMETHODCALLTYPE GetImmediateContext(
9509            /* [annotation] */
9510            __out  ID3D11DeviceContext **ppImmediateContext) = 0;
9511       
9512        virtual HRESULT STDMETHODCALLTYPE SetExceptionMode(
9513            UINT RaiseFlags) = 0;
9514       
9515        virtual UINT STDMETHODCALLTYPE GetExceptionMode( void) = 0;
9516       
9517    };
9518   
9519#else    /* C style interface */
9520
9521    typedef struct ID3D11DeviceVtbl
9522    {
9523        BEGIN_INTERFACE
9524       
9525        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9526            ID3D11Device * This,
9527            /* [in] */ REFIID riid,
9528            /* [annotation][iid_is][out] */
9529            __RPC__deref_out  void **ppvObject);
9530       
9531        ULONG ( STDMETHODCALLTYPE *AddRef )(
9532            ID3D11Device * This);
9533       
9534        ULONG ( STDMETHODCALLTYPE *Release )(
9535            ID3D11Device * This);
9536       
9537        HRESULT ( STDMETHODCALLTYPE *CreateBuffer )(
9538            ID3D11Device * This,
9539            /* [annotation] */
9540            __in  const D3D11_BUFFER_DESC *pDesc,
9541            /* [annotation] */
9542            __in_opt  const D3D11_SUBRESOURCE_DATA *pInitialData,
9543            /* [annotation] */
9544            __out_opt  ID3D11Buffer **ppBuffer);
9545       
9546        HRESULT ( STDMETHODCALLTYPE *CreateTexture1D )(
9547            ID3D11Device * This,
9548            /* [annotation] */
9549            __in  const D3D11_TEXTURE1D_DESC *pDesc,
9550            /* [annotation] */
9551            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D11_SUBRESOURCE_DATA *pInitialData,
9552            /* [annotation] */
9553            __out_opt  ID3D11Texture1D **ppTexture1D);
9554       
9555        HRESULT ( STDMETHODCALLTYPE *CreateTexture2D )(
9556            ID3D11Device * This,
9557            /* [annotation] */
9558            __in  const D3D11_TEXTURE2D_DESC *pDesc,
9559            /* [annotation] */
9560            __in_xcount_opt(pDesc->MipLevels * pDesc->ArraySize)  const D3D11_SUBRESOURCE_DATA *pInitialData,
9561            /* [annotation] */
9562            __out_opt  ID3D11Texture2D **ppTexture2D);
9563       
9564        HRESULT ( STDMETHODCALLTYPE *CreateTexture3D )(
9565            ID3D11Device * This,
9566            /* [annotation] */
9567            __in  const D3D11_TEXTURE3D_DESC *pDesc,
9568            /* [annotation] */
9569            __in_xcount_opt(pDesc->MipLevels)  const D3D11_SUBRESOURCE_DATA *pInitialData,
9570            /* [annotation] */
9571            __out_opt  ID3D11Texture3D **ppTexture3D);
9572       
9573        HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView )(
9574            ID3D11Device * This,
9575            /* [annotation] */
9576            __in  ID3D11Resource *pResource,
9577            /* [annotation] */
9578            __in_opt  const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
9579            /* [annotation] */
9580            __out_opt  ID3D11ShaderResourceView **ppSRView);
9581       
9582        HRESULT ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
9583            ID3D11Device * This,
9584            /* [annotation] */
9585            __in  ID3D11Resource *pResource,
9586            /* [annotation] */
9587            __in_opt  const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
9588            /* [annotation] */
9589            __out_opt  ID3D11UnorderedAccessView **ppUAView);
9590       
9591        HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView )(
9592            ID3D11Device * This,
9593            /* [annotation] */
9594            __in  ID3D11Resource *pResource,
9595            /* [annotation] */
9596            __in_opt  const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
9597            /* [annotation] */
9598            __out_opt  ID3D11RenderTargetView **ppRTView);
9599       
9600        HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilView )(
9601            ID3D11Device * This,
9602            /* [annotation] */
9603            __in  ID3D11Resource *pResource,
9604            /* [annotation] */
9605            __in_opt  const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
9606            /* [annotation] */
9607            __out_opt  ID3D11DepthStencilView **ppDepthStencilView);
9608       
9609        HRESULT ( STDMETHODCALLTYPE *CreateInputLayout )(
9610            ID3D11Device * This,
9611            /* [annotation] */
9612            __in_ecount(NumElements)  const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
9613            /* [annotation] */
9614            __in_range( 0, D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT )  UINT NumElements,
9615            /* [annotation] */
9616            __in  const void *pShaderBytecodeWithInputSignature,
9617            /* [annotation] */
9618            __in  SIZE_T BytecodeLength,
9619            /* [annotation] */
9620            __out_opt  ID3D11InputLayout **ppInputLayout);
9621       
9622        HRESULT ( STDMETHODCALLTYPE *CreateVertexShader )(
9623            ID3D11Device * This,
9624            /* [annotation] */
9625            __in  const void *pShaderBytecode,
9626            /* [annotation] */
9627            __in  SIZE_T BytecodeLength,
9628            /* [annotation] */
9629            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9630            /* [annotation] */
9631            __out_opt  ID3D11VertexShader **ppVertexShader);
9632       
9633        HRESULT ( STDMETHODCALLTYPE *CreateGeometryShader )(
9634            ID3D11Device * This,
9635            /* [annotation] */
9636            __in  const void *pShaderBytecode,
9637            /* [annotation] */
9638            __in  SIZE_T BytecodeLength,
9639            /* [annotation] */
9640            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9641            /* [annotation] */
9642            __out_opt  ID3D11GeometryShader **ppGeometryShader);
9643       
9644        HRESULT ( STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput )(
9645            ID3D11Device * This,
9646            /* [annotation] */
9647            __in  const void *pShaderBytecode,
9648            /* [annotation] */
9649            __in  SIZE_T BytecodeLength,
9650            /* [annotation] */
9651            __in_ecount_opt(NumEntries)  const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
9652            /* [annotation] */
9653            __in_range( 0, D3D11_SO_STREAM_COUNT * D3D11_SO_OUTPUT_COMPONENT_COUNT )  UINT NumEntries,
9654            /* [annotation] */
9655            __in_ecount_opt(NumStrides)  const UINT *pBufferStrides,
9656            /* [annotation] */
9657            __in_range( 0, D3D11_SO_BUFFER_SLOT_COUNT )  UINT NumStrides,
9658            /* [annotation] */
9659            __in  UINT RasterizedStream,
9660            /* [annotation] */
9661            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9662            /* [annotation] */
9663            __out_opt  ID3D11GeometryShader **ppGeometryShader);
9664       
9665        HRESULT ( STDMETHODCALLTYPE *CreatePixelShader )(
9666            ID3D11Device * This,
9667            /* [annotation] */
9668            __in  const void *pShaderBytecode,
9669            /* [annotation] */
9670            __in  SIZE_T BytecodeLength,
9671            /* [annotation] */
9672            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9673            /* [annotation] */
9674            __out_opt  ID3D11PixelShader **ppPixelShader);
9675       
9676        HRESULT ( STDMETHODCALLTYPE *CreateHullShader )(
9677            ID3D11Device * This,
9678            /* [annotation] */
9679            __in  const void *pShaderBytecode,
9680            /* [annotation] */
9681            __in  SIZE_T BytecodeLength,
9682            /* [annotation] */
9683            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9684            /* [annotation] */
9685            __out_opt  ID3D11HullShader **ppHullShader);
9686       
9687        HRESULT ( STDMETHODCALLTYPE *CreateDomainShader )(
9688            ID3D11Device * This,
9689            /* [annotation] */
9690            __in  const void *pShaderBytecode,
9691            /* [annotation] */
9692            __in  SIZE_T BytecodeLength,
9693            /* [annotation] */
9694            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9695            /* [annotation] */
9696            __out_opt  ID3D11DomainShader **ppDomainShader);
9697       
9698        HRESULT ( STDMETHODCALLTYPE *CreateComputeShader )(
9699            ID3D11Device * This,
9700            /* [annotation] */
9701            __in  const void *pShaderBytecode,
9702            /* [annotation] */
9703            __in  SIZE_T BytecodeLength,
9704            /* [annotation] */
9705            __in_opt  ID3D11ClassLinkage *pClassLinkage,
9706            /* [annotation] */
9707            __out_opt  ID3D11ComputeShader **ppComputeShader);
9708       
9709        HRESULT ( STDMETHODCALLTYPE *CreateClassLinkage )(
9710            ID3D11Device * This,
9711            /* [annotation] */
9712            __out  ID3D11ClassLinkage **ppLinkage);
9713       
9714        HRESULT ( STDMETHODCALLTYPE *CreateBlendState )(
9715            ID3D11Device * This,
9716            /* [annotation] */
9717            __in  const D3D11_BLEND_DESC *pBlendStateDesc,
9718            /* [annotation] */
9719            __out_opt  ID3D11BlendState **ppBlendState);
9720       
9721        HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilState )(
9722            ID3D11Device * This,
9723            /* [annotation] */
9724            __in  const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
9725            /* [annotation] */
9726            __out_opt  ID3D11DepthStencilState **ppDepthStencilState);
9727       
9728        HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState )(
9729            ID3D11Device * This,
9730            /* [annotation] */
9731            __in  const D3D11_RASTERIZER_DESC *pRasterizerDesc,
9732            /* [annotation] */
9733            __out_opt  ID3D11RasterizerState **ppRasterizerState);
9734       
9735        HRESULT ( STDMETHODCALLTYPE *CreateSamplerState )(
9736            ID3D11Device * This,
9737            /* [annotation] */
9738            __in  const D3D11_SAMPLER_DESC *pSamplerDesc,
9739            /* [annotation] */
9740            __out_opt  ID3D11SamplerState **ppSamplerState);
9741       
9742        HRESULT ( STDMETHODCALLTYPE *CreateQuery )(
9743            ID3D11Device * This,
9744            /* [annotation] */
9745            __in  const D3D11_QUERY_DESC *pQueryDesc,
9746            /* [annotation] */
9747            __out_opt  ID3D11Query **ppQuery);
9748       
9749        HRESULT ( STDMETHODCALLTYPE *CreatePredicate )(
9750            ID3D11Device * This,
9751            /* [annotation] */
9752            __in  const D3D11_QUERY_DESC *pPredicateDesc,
9753            /* [annotation] */
9754            __out_opt  ID3D11Predicate **ppPredicate);
9755       
9756        HRESULT ( STDMETHODCALLTYPE *CreateCounter )(
9757            ID3D11Device * This,
9758            /* [annotation] */
9759            __in  const D3D11_COUNTER_DESC *pCounterDesc,
9760            /* [annotation] */
9761            __out_opt  ID3D11Counter **ppCounter);
9762       
9763        HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext )(
9764            ID3D11Device * This,
9765            UINT ContextFlags,
9766            /* [annotation] */
9767            __out_opt  ID3D11DeviceContext **ppDeferredContext);
9768       
9769        HRESULT ( STDMETHODCALLTYPE *OpenSharedResource )(
9770            ID3D11Device * This,
9771            /* [annotation] */
9772            __in  HANDLE hResource,
9773            /* [annotation] */
9774            __in  REFIID ReturnedInterface,
9775            /* [annotation] */
9776            __out_opt  void **ppResource);
9777       
9778        HRESULT ( STDMETHODCALLTYPE *CheckFormatSupport )(
9779            ID3D11Device * This,
9780            /* [annotation] */
9781            __in  DXGI_FORMAT Format,
9782            /* [annotation] */
9783            __out  UINT *pFormatSupport);
9784       
9785        HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels )(
9786            ID3D11Device * This,
9787            /* [annotation] */
9788            __in  DXGI_FORMAT Format,
9789            /* [annotation] */
9790            __in  UINT SampleCount,
9791            /* [annotation] */
9792            __out  UINT *pNumQualityLevels);
9793       
9794        void ( STDMETHODCALLTYPE *CheckCounterInfo )(
9795            ID3D11Device * This,
9796            /* [annotation] */
9797            __out  D3D11_COUNTER_INFO *pCounterInfo);
9798       
9799        HRESULT ( STDMETHODCALLTYPE *CheckCounter )(
9800            ID3D11Device * This,
9801            /* [annotation] */
9802            __in  const D3D11_COUNTER_DESC *pDesc,
9803            /* [annotation] */
9804            __out  D3D11_COUNTER_TYPE *pType,
9805            /* [annotation] */
9806            __out  UINT *pActiveCounters,
9807            /* [annotation] */
9808            __out_ecount_opt(*pNameLength)  LPSTR szName,
9809            /* [annotation] */
9810            __inout_opt  UINT *pNameLength,
9811            /* [annotation] */
9812            __out_ecount_opt(*pUnitsLength)  LPSTR szUnits,
9813            /* [annotation] */
9814            __inout_opt  UINT *pUnitsLength,
9815            /* [annotation] */
9816            __out_ecount_opt(*pDescriptionLength)  LPSTR szDescription,
9817            /* [annotation] */
9818            __inout_opt  UINT *pDescriptionLength);
9819       
9820        HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
9821            ID3D11Device * This,
9822            D3D11_FEATURE Feature,
9823            /* [annotation] */
9824            __out_bcount(FeatureSupportDataSize)  void *pFeatureSupportData,
9825            UINT FeatureSupportDataSize);
9826       
9827        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
9828            ID3D11Device * This,
9829            /* [annotation] */
9830            __in  REFGUID guid,
9831            /* [annotation] */
9832            __inout  UINT *pDataSize,
9833            /* [annotation] */
9834            __out_bcount_opt(*pDataSize)  void *pData);
9835       
9836        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
9837            ID3D11Device * This,
9838            /* [annotation] */
9839            __in  REFGUID guid,
9840            /* [annotation] */
9841            __in  UINT DataSize,
9842            /* [annotation] */
9843            __in_bcount_opt(DataSize)  const void *pData);
9844       
9845        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
9846            ID3D11Device * This,
9847            /* [annotation] */
9848            __in  REFGUID guid,
9849            /* [annotation] */
9850            __in_opt  const IUnknown *pData);
9851       
9852        D3D_FEATURE_LEVEL ( STDMETHODCALLTYPE *GetFeatureLevel )(
9853            ID3D11Device * This);
9854       
9855        UINT ( STDMETHODCALLTYPE *GetCreationFlags )(
9856            ID3D11Device * This);
9857       
9858        HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
9859            ID3D11Device * This);
9860       
9861        void ( STDMETHODCALLTYPE *GetImmediateContext )(
9862            ID3D11Device * This,
9863            /* [annotation] */
9864            __out  ID3D11DeviceContext **ppImmediateContext);
9865       
9866        HRESULT ( STDMETHODCALLTYPE *SetExceptionMode )(
9867            ID3D11Device * This,
9868            UINT RaiseFlags);
9869       
9870        UINT ( STDMETHODCALLTYPE *GetExceptionMode )(
9871            ID3D11Device * This);
9872       
9873        END_INTERFACE
9874    } ID3D11DeviceVtbl;
9875
9876    interface ID3D11Device
9877    {
9878        CONST_VTBL struct ID3D11DeviceVtbl *lpVtbl;
9879    };
9880
9881   
9882
9883#ifdef COBJMACROS
9884
9885
9886#define ID3D11Device_QueryInterface(This,riid,ppvObject)   \
9887    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9888
9889#define ID3D11Device_AddRef(This)   \
9890    ( (This)->lpVtbl -> AddRef(This) )
9891
9892#define ID3D11Device_Release(This)   \
9893    ( (This)->lpVtbl -> Release(This) )
9894
9895
9896#define ID3D11Device_CreateBuffer(This,pDesc,pInitialData,ppBuffer)   \
9897    ( (This)->lpVtbl -> CreateBuffer(This,pDesc,pInitialData,ppBuffer) )
9898
9899#define ID3D11Device_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D)   \
9900    ( (This)->lpVtbl -> CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) )
9901
9902#define ID3D11Device_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D)   \
9903    ( (This)->lpVtbl -> CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) )
9904
9905#define ID3D11Device_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D)   \
9906    ( (This)->lpVtbl -> CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) )
9907
9908#define ID3D11Device_CreateShaderResourceView(This,pResource,pDesc,ppSRView)   \
9909    ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,ppSRView) )
9910
9911#define ID3D11Device_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView)   \
9912    ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) )
9913
9914#define ID3D11Device_CreateRenderTargetView(This,pResource,pDesc,ppRTView)   \
9915    ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,ppRTView) )
9916
9917#define ID3D11Device_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView)   \
9918    ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) )
9919
9920#define ID3D11Device_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout)   \
9921    ( (This)->lpVtbl -> CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) )
9922
9923#define ID3D11Device_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader)   \
9924    ( (This)->lpVtbl -> CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) )
9925
9926#define ID3D11Device_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader)   \
9927    ( (This)->lpVtbl -> CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) )
9928
9929#define ID3D11Device_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader)   \
9930    ( (This)->lpVtbl -> CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) )
9931
9932#define ID3D11Device_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader)   \
9933    ( (This)->lpVtbl -> CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) )
9934
9935#define ID3D11Device_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader)   \
9936    ( (This)->lpVtbl -> CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) )
9937
9938#define ID3D11Device_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader)   \
9939    ( (This)->lpVtbl -> CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) )
9940
9941#define ID3D11Device_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader)   \
9942    ( (This)->lpVtbl -> CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) )
9943
9944#define ID3D11Device_CreateClassLinkage(This,ppLinkage)   \
9945    ( (This)->lpVtbl -> CreateClassLinkage(This,ppLinkage) )
9946
9947#define ID3D11Device_CreateBlendState(This,pBlendStateDesc,ppBlendState)   \
9948    ( (This)->lpVtbl -> CreateBlendState(This,pBlendStateDesc,ppBlendState) )
9949
9950#define ID3D11Device_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState)   \
9951    ( (This)->lpVtbl -> CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) )
9952
9953#define ID3D11Device_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState)   \
9954    ( (This)->lpVtbl -> CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) )
9955
9956#define ID3D11Device_CreateSamplerState(This,pSamplerDesc,ppSamplerState)   \
9957    ( (This)->lpVtbl -> CreateSamplerState(This,pSamplerDesc,ppSamplerState) )
9958
9959#define ID3D11Device_CreateQuery(This,pQueryDesc,ppQuery)   \
9960    ( (This)->lpVtbl -> CreateQuery(This,pQueryDesc,ppQuery) )
9961
9962#define ID3D11Device_CreatePredicate(This,pPredicateDesc,ppPredicate)   \
9963    ( (This)->lpVtbl -> CreatePredicate(This,pPredicateDesc,ppPredicate) )
9964
9965#define ID3D11Device_CreateCounter(This,pCounterDesc,ppCounter)   \
9966    ( (This)->lpVtbl -> CreateCounter(This,pCounterDesc,ppCounter) )
9967
9968#define ID3D11Device_CreateDeferredContext(This,ContextFlags,ppDeferredContext)   \
9969    ( (This)->lpVtbl -> CreateDeferredContext(This,ContextFlags,ppDeferredContext) )
9970
9971#define ID3D11Device_OpenSharedResource(This,hResource,ReturnedInterface,ppResource)   \
9972    ( (This)->lpVtbl -> OpenSharedResource(This,hResource,ReturnedInterface,ppResource) )
9973
9974#define ID3D11Device_CheckFormatSupport(This,Format,pFormatSupport)   \
9975    ( (This)->lpVtbl -> CheckFormatSupport(This,Format,pFormatSupport) )
9976
9977#define ID3D11Device_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)   \
9978    ( (This)->lpVtbl -> CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) )
9979
9980#define ID3D11Device_CheckCounterInfo(This,pCounterInfo)   \
9981    ( (This)->lpVtbl -> CheckCounterInfo(This,pCounterInfo) )
9982
9983#define ID3D11Device_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)   \
9984    ( (This)->lpVtbl -> CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) )
9985
9986#define ID3D11Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize)   \
9987    ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
9988
9989#define ID3D11Device_GetPrivateData(This,guid,pDataSize,pData)   \
9990    ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
9991
9992#define ID3D11Device_SetPrivateData(This,guid,DataSize,pData)   \
9993    ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
9994
9995#define ID3D11Device_SetPrivateDataInterface(This,guid,pData)   \
9996    ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
9997
9998#define ID3D11Device_GetFeatureLevel(This)   \
9999    ( (This)->lpVtbl -> GetFeatureLevel(This) )
10000
10001#define ID3D11Device_GetCreationFlags(This)   \
10002    ( (This)->lpVtbl -> GetCreationFlags(This) )
10003
10004#define ID3D11Device_GetDeviceRemovedReason(This)   \
10005    ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
10006
10007#define ID3D11Device_GetImmediateContext(This,ppImmediateContext)   \
10008    ( (This)->lpVtbl -> GetImmediateContext(This,ppImmediateContext) )
10009
10010#define ID3D11Device_SetExceptionMode(This,RaiseFlags)   \
10011    ( (This)->lpVtbl -> SetExceptionMode(This,RaiseFlags) )
10012
10013#define ID3D11Device_GetExceptionMode(This)   \
10014    ( (This)->lpVtbl -> GetExceptionMode(This) )
10015
10016#endif /* COBJMACROS */
10017
10018
10019#endif    /* C style interface */
10020
10021
10022
10023
10024#endif    /* __ID3D11Device_INTERFACE_DEFINED__ */
10025
10026
10027/* interface __MIDL_itf_d3d11_0000_0031 */
10028/* [local] */
10029
10030typedef
10031enum D3D11_CREATE_DEVICE_FLAG
10032    {   D3D11_CREATE_DEVICE_SINGLETHREADED   = 0x1,
10033   D3D11_CREATE_DEVICE_DEBUG   = 0x2,
10034   D3D11_CREATE_DEVICE_SWITCH_TO_REF   = 0x4,
10035   D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS   = 0x8,
10036   D3D11_CREATE_DEVICE_BGRA_SUPPORT   = 0x20
10037    }    D3D11_CREATE_DEVICE_FLAG;
10038
10039#define   D3D11_SDK_VERSION   ( 7 )
10040
10041#include "d3d10_1.h"
10042#if !defined( D3D11_IGNORE_SDK_LAYERS )
10043#include "d3d11sdklayers.h"
10044#endif
10045#include "d3d10misc.h"
10046#include "d3d10shader.h"
10047#include "d3d10effect.h"
10048#include "d3d10_1shader.h"
10049
10050///////////////////////////////////////////////////////////////////////////
10051// D3D11CreateDevice
10052// ------------------
10053//
10054// pAdapter
10055//      If NULL, D3D11CreateDevice will choose the primary adapter and
10056//      create a new instance from a temporarily created IDXGIFactory.
10057//      If non-NULL, D3D11CreateDevice will register the appropriate
10058//      device, if necessary (via IDXGIAdapter::RegisterDrver), before
10059//      creating the device.
10060// DriverType
10061//      Specifies the driver type to be created: hardware, reference or
10062//      null.
10063// Software
10064//      HMODULE of a DLL implementing a software rasterizer. Must be NULL for
10065//      non-Software driver types.
10066// Flags
10067//      Any of those documented for D3D11CreateDeviceAndSwapChain.
10068// pFeatureLevels
10069//      Any of those documented for D3D11CreateDeviceAndSwapChain.
10070// FeatureLevels
10071//      Size of feature levels array.
10072// SDKVersion
10073//      SDK version. Use the D3D11_SDK_VERSION macro.
10074// ppDevice
10075//      Pointer to returned interface. May be NULL.
10076// pFeatureLevel
10077//      Pointer to returned feature level. May be NULL.
10078// ppImmediateContext
10079//      Pointer to returned interface. May be NULL.
10080//
10081// Return Values
10082//  Any of those documented for
10083//          CreateDXGIFactory1
10084//          IDXGIFactory::EnumAdapters
10085//          IDXGIAdapter::RegisterDriver
10086//          D3D11CreateDevice
10087//
10088///////////////////////////////////////////////////////////////////////////
10089typedef HRESULT (WINAPI* PFN_D3D11_CREATE_DEVICE)( __in_opt IDXGIAdapter*,
10090    D3D_DRIVER_TYPE, HMODULE, UINT,
10091    __in_ecount_opt( FeatureLevels ) CONST D3D_FEATURE_LEVEL*,
10092    UINT FeatureLevels, UINT, __out_opt ID3D11Device**,
10093    __out_opt D3D_FEATURE_LEVEL*, __out_opt ID3D11DeviceContext** );
10094
10095HRESULT WINAPI D3D11CreateDevice(
10096    __in_opt IDXGIAdapter* pAdapter,
10097    D3D_DRIVER_TYPE DriverType,
10098    HMODULE Software,
10099    UINT Flags,
10100    __in_ecount_opt( FeatureLevels ) CONST D3D_FEATURE_LEVEL* pFeatureLevels,
10101    UINT FeatureLevels,
10102    UINT SDKVersion,
10103    __out_opt ID3D11Device** ppDevice,
10104    __out_opt D3D_FEATURE_LEVEL* pFeatureLevel,
10105    __out_opt ID3D11DeviceContext** ppImmediateContext );
10106
10107///////////////////////////////////////////////////////////////////////////
10108// D3D11CreateDeviceAndSwapChain
10109// ------------------------------
10110//
10111// ppAdapter
10112//      If NULL, D3D11CreateDevice will choose the primary adapter and
10113//      create a new instance from a temporarily created IDXGIFactory.
10114//      If non-NULL, D3D11CreateDevice will register the appropriate
10115//      device, if necessary (via IDXGIAdapter::RegisterDrver), before
10116//      creating the device.
10117// DriverType
10118//      Specifies the driver type to be created: hardware, reference or
10119//      null.
10120// Software
10121//      HMODULE of a DLL implementing a software rasterizer. Must be NULL for
10122//      non-Software driver types.
10123// Flags
10124//      Any of those documented for D3D11CreateDevice.
10125// pFeatureLevels
10126//      Array of any of the following:
10127//          D3D_FEATURE_LEVEL_11_0
10128//          D3D_FEATURE_LEVEL_10_1
10129//          D3D_FEATURE_LEVEL_10_0
10130//          D3D_FEATURE_LEVEL_9_3
10131//          D3D_FEATURE_LEVEL_9_2
10132//          D3D_FEATURE_LEVEL_9_1
10133//      Order indicates sequence in which instantiation will be attempted. If
10134//      NULL, then the implied order is the same as previously listed (i.e.
10135//      prefer most features available).
10136// FeatureLevels
10137//      Size of feature levels array.
10138// SDKVersion
10139//      SDK version. Use the D3D11_SDK_VERSION macro.
10140// pSwapChainDesc
10141//      Swap chain description, may be NULL.
10142// ppSwapChain
10143//      Pointer to returned interface. May be NULL.
10144// ppDevice
10145//      Pointer to returned interface. May be NULL.
10146// pFeatureLevel
10147//      Pointer to returned feature level. May be NULL.
10148// ppImmediateContext
10149//      Pointer to returned interface. May be NULL.
10150//
10151// Return Values
10152//  Any of those documented for
10153//          CreateDXGIFactory1
10154//          IDXGIFactory::EnumAdapters
10155//          IDXGIAdapter::RegisterDriver
10156//          D3D11CreateDevice
10157//          IDXGIFactory::CreateSwapChain
10158//
10159///////////////////////////////////////////////////////////////////////////
10160typedef HRESULT (WINAPI* PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)( __in_opt IDXGIAdapter*,
10161    D3D_DRIVER_TYPE, HMODULE, UINT,
10162    __in_ecount_opt( FeatureLevels ) CONST D3D_FEATURE_LEVEL*,
10163    UINT FeatureLevels, UINT, __in_opt CONST DXGI_SWAP_CHAIN_DESC*,
10164    __out_opt IDXGISwapChain**, __out_opt ID3D11Device**,
10165    __out_opt D3D_FEATURE_LEVEL*, __out_opt ID3D11DeviceContext** );
10166
10167HRESULT WINAPI D3D11CreateDeviceAndSwapChain(
10168    __in_opt IDXGIAdapter* pAdapter,
10169    D3D_DRIVER_TYPE DriverType,
10170    HMODULE Software,
10171    UINT Flags,
10172    __in_ecount_opt( FeatureLevels ) CONST D3D_FEATURE_LEVEL* pFeatureLevels,
10173    UINT FeatureLevels,
10174    UINT SDKVersion,
10175    __in_opt CONST DXGI_SWAP_CHAIN_DESC* pSwapChainDesc,
10176    __out_opt IDXGISwapChain** ppSwapChain,
10177    __out_opt ID3D11Device** ppDevice,
10178    __out_opt D3D_FEATURE_LEVEL* pFeatureLevel,
10179    __out_opt ID3D11DeviceContext** ppImmediateContext );
10180
10181DEFINE_GUID(IID_ID3D11DeviceChild,0x1841e5c8,0x16b0,0x489b,0xbc,0xc8,0x44,0xcf,0xb0,0xd5,0xde,0xae);
10182DEFINE_GUID(IID_ID3D11DepthStencilState,0x03823efb,0x8d8f,0x4e1c,0x9a,0xa2,0xf6,0x4b,0xb2,0xcb,0xfd,0xf1);
10183DEFINE_GUID(IID_ID3D11BlendState,0x75b68faa,0x347d,0x4159,0x8f,0x45,0xa0,0x64,0x0f,0x01,0xcd,0x9a);
10184DEFINE_GUID(IID_ID3D11RasterizerState,0x9bb4ab81,0xab1a,0x4d8f,0xb5,0x06,0xfc,0x04,0x20,0x0b,0x6e,0xe7);
10185DEFINE_GUID(IID_ID3D11Resource,0xdc8e63f3,0xd12b,0x4952,0xb4,0x7b,0x5e,0x45,0x02,0x6a,0x86,0x2d);
10186DEFINE_GUID(IID_ID3D11Buffer,0x48570b85,0xd1ee,0x4fcd,0xa2,0x50,0xeb,0x35,0x07,0x22,0xb0,0x37);
10187DEFINE_GUID(IID_ID3D11Texture1D,0xf8fb5c27,0xc6b3,0x4f75,0xa4,0xc8,0x43,0x9a,0xf2,0xef,0x56,0x4c);
10188DEFINE_GUID(IID_ID3D11Texture2D,0x6f15aaf2,0xd208,0x4e89,0x9a,0xb4,0x48,0x95,0x35,0xd3,0x4f,0x9c);
10189DEFINE_GUID(IID_ID3D11Texture3D,0x037e866e,0xf56d,0x4357,0xa8,0xaf,0x9d,0xab,0xbe,0x6e,0x25,0x0e);
10190DEFINE_GUID(IID_ID3D11View,0x839d1216,0xbb2e,0x412b,0xb7,0xf4,0xa9,0xdb,0xeb,0xe0,0x8e,0xd1);
10191DEFINE_GUID(IID_ID3D11ShaderResourceView,0xb0e06fe0,0x8192,0x4e1a,0xb1,0xca,0x36,0xd7,0x41,0x47,0x10,0xb2);
10192DEFINE_GUID(IID_ID3D11RenderTargetView,0xdfdba067,0x0b8d,0x4865,0x87,0x5b,0xd7,0xb4,0x51,0x6c,0xc1,0x64);
10193DEFINE_GUID(IID_ID3D11DepthStencilView,0x9fdac92a,0x1876,0x48c3,0xaf,0xad,0x25,0xb9,0x4f,0x84,0xa9,0xb6);
10194DEFINE_GUID(IID_ID3D11UnorderedAccessView,0x28acf509,0x7f5c,0x48f6,0x86,0x11,0xf3,0x16,0x01,0x0a,0x63,0x80);
10195DEFINE_GUID(IID_ID3D11VertexShader,0x3b301d64,0xd678,0x4289,0x88,0x97,0x22,0xf8,0x92,0x8b,0x72,0xf3);
10196DEFINE_GUID(IID_ID3D11HullShader,0x8e5c6061,0x628a,0x4c8e,0x82,0x64,0xbb,0xe4,0x5c,0xb3,0xd5,0xdd);
10197DEFINE_GUID(IID_ID3D11DomainShader,0xf582c508,0x0f36,0x490c,0x99,0x77,0x31,0xee,0xce,0x26,0x8c,0xfa);
10198DEFINE_GUID(IID_ID3D11GeometryShader,0x38325b96,0xeffb,0x4022,0xba,0x02,0x2e,0x79,0x5b,0x70,0x27,0x5c);
10199DEFINE_GUID(IID_ID3D11PixelShader,0xea82e40d,0x51dc,0x4f33,0x93,0xd4,0xdb,0x7c,0x91,0x25,0xae,0x8c);
10200DEFINE_GUID(IID_ID3D11ComputeShader,0x4f5b196e,0xc2bd,0x495e,0xbd,0x01,0x1f,0xde,0xd3,0x8e,0x49,0x69);
10201DEFINE_GUID(IID_ID3D11InputLayout,0xe4819ddc,0x4cf0,0x4025,0xbd,0x26,0x5d,0xe8,0x2a,0x3e,0x07,0xb7);
10202DEFINE_GUID(IID_ID3D11SamplerState,0xda6fea51,0x564c,0x4487,0x98,0x10,0xf0,0xd0,0xf9,0xb4,0xe3,0xa5);
10203DEFINE_GUID(IID_ID3D11Asynchronous,0x4b35d0cd,0x1e15,0x4258,0x9c,0x98,0x1b,0x13,0x33,0xf6,0xdd,0x3b);
10204DEFINE_GUID(IID_ID3D11Query,0xd6c00747,0x87b7,0x425e,0xb8,0x4d,0x44,0xd1,0x08,0x56,0x0a,0xfd);
10205DEFINE_GUID(IID_ID3D11Predicate,0x9eb576dd,0x9f77,0x4d86,0x81,0xaa,0x8b,0xab,0x5f,0xe4,0x90,0xe2);
10206DEFINE_GUID(IID_ID3D11Counter,0x6e8c49fb,0xa371,0x4770,0xb4,0x40,0x29,0x08,0x60,0x22,0xb7,0x41);
10207DEFINE_GUID(IID_ID3D11ClassInstance,0xa6cd7faa,0xb0b7,0x4a2f,0x94,0x36,0x86,0x62,0xa6,0x57,0x97,0xcb);
10208DEFINE_GUID(IID_ID3D11ClassLinkage,0xddf57cba,0x9543,0x46e4,0xa1,0x2b,0xf2,0x07,0xa0,0xfe,0x7f,0xed);
10209DEFINE_GUID(IID_ID3D11CommandList,0xa24bc4d1,0x769e,0x43f7,0x80,0x13,0x98,0xff,0x56,0x6c,0x18,0xe2);
10210DEFINE_GUID(IID_ID3D11DeviceContext,0xc0bfa96c,0xe089,0x44fb,0x8e,0xaf,0x26,0xf8,0x79,0x61,0x90,0xda);
10211DEFINE_GUID(IID_ID3D11Device,0xdb6f6ddb,0xac77,0x4e88,0x82,0x53,0x81,0x9d,0xf9,0xbb,0xf1,0x40);
10212
10213
10214extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0031_v0_0_c_ifspec;
10215extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0031_v0_0_s_ifspec;
10216
10217/* Additional Prototypes for ALL interfaces */
10218
10219/* end of Additional Prototypes */
10220
10221#ifdef __cplusplus
10222}
10223#endif
10224
10225#endif
10226
10227
trunk/3rdparty/dxsdk/Include/d3d11sdklayers.h
r0r243311
1
2
3/* this ALWAYS GENERATED file contains the definitions for the interfaces */
4
5
6 /* File created by MIDL compiler version 7.00.0555 */
7/* Compiler settings for d3d11sdklayers.idl:
8    Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
9    protocol : all , ms_ext, c_ext, robust
10    error checks: allocation ref bounds_check enum stub_data
11    VC __declspec() decoration level:
12         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
13         DECLSPEC_UUID(), MIDL_INTERFACE()
14*/
15/* @@MIDL_FILE_HEADING(  ) */
16
17#ifdef _MSC_VER
18#pragma warning( disable: 4049 )  /* more than 64k source lines */
19#endif // _MSC_VER
20
21
22/* verify that the <rpcndr.h> version is high enough to compile this file*/
23#ifndef __REQUIRED_RPCNDR_H_VERSION__
24#define __REQUIRED_RPCNDR_H_VERSION__ 475
25#endif
26
27/* verify that the <rpcsal.h> version is high enough to compile this file*/
28#ifndef __REQUIRED_RPCSAL_H_VERSION__
29#define __REQUIRED_RPCSAL_H_VERSION__ 100
30#endif
31
32#include "rpc.h"
33#include "rpcndr.h"
34
35#ifndef __RPCNDR_H_VERSION__
36#error this stub requires an updated version of <rpcndr.h>
37#endif // __RPCNDR_H_VERSION__
38
39#ifndef COM_NO_WINDOWS_H
40#include "windows.h"
41#include "ole2.h"
42#endif /*COM_NO_WINDOWS_H*/
43
44#ifndef __d3d11sdklayers_h__
45#define __d3d11sdklayers_h__
46
47#if defined(_MSC_VER) && (_MSC_VER >= 1020)
48#pragma once
49#endif
50
51/* Forward Declarations */
52
53#ifndef __ID3D11Debug_FWD_DEFINED__
54#define __ID3D11Debug_FWD_DEFINED__
55typedef interface ID3D11Debug ID3D11Debug;
56#endif    /* __ID3D11Debug_FWD_DEFINED__ */
57
58
59#ifndef __ID3D11SwitchToRef_FWD_DEFINED__
60#define __ID3D11SwitchToRef_FWD_DEFINED__
61typedef interface ID3D11SwitchToRef ID3D11SwitchToRef;
62#endif    /* __ID3D11SwitchToRef_FWD_DEFINED__ */
63
64
65#ifndef __ID3D11InfoQueue_FWD_DEFINED__
66#define __ID3D11InfoQueue_FWD_DEFINED__
67typedef interface ID3D11InfoQueue ID3D11InfoQueue;
68#endif    /* __ID3D11InfoQueue_FWD_DEFINED__ */
69
70
71/* header files for imported files */
72#include "oaidl.h"
73#include "ocidl.h"
74#include "d3d11.h"
75
76#ifdef __cplusplus
77extern "C"{
78#endif
79
80
81/* interface __MIDL_itf_d3d11sdklayers_0000_0000 */
82/* [local] */
83
84#define   D3D11_SDK_LAYERS_VERSION   ( 1 )
85
86#define   D3D11_DEBUG_FEATURE_FLUSH_PER_RENDER_OP   ( 0x1 )
87
88#define   D3D11_DEBUG_FEATURE_FINISH_PER_RENDER_OP   ( 0x2 )
89
90#define   D3D11_DEBUG_FEATURE_PRESENT_PER_RENDER_OP   ( 0x4 )
91
92typedef
93enum D3D11_RLDO_FLAGS
94    {   D3D11_RLDO_SUMMARY   = 0x1,
95   D3D11_RLDO_DETAIL   = 0x2
96    }    D3D11_RLDO_FLAGS;
97
98#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )
99}
100inline D3D11_RLDO_FLAGS operator~( D3D11_RLDO_FLAGS a )
101{ return D3D11_RLDO_FLAGS( ~UINT( a ) ); }
102inline D3D11_RLDO_FLAGS operator&( D3D11_RLDO_FLAGS a, D3D11_RLDO_FLAGS b )
103{ return D3D11_RLDO_FLAGS( UINT( a ) & UINT( b ) ); }
104inline D3D11_RLDO_FLAGS operator|( D3D11_RLDO_FLAGS a, D3D11_RLDO_FLAGS b )
105{ return D3D11_RLDO_FLAGS( UINT( a ) | UINT( b ) ); }
106inline D3D11_RLDO_FLAGS operator^( D3D11_RLDO_FLAGS a, D3D11_RLDO_FLAGS b )
107{ return D3D11_RLDO_FLAGS( UINT( a ) ^ UINT( b ) ); }
108inline D3D11_RLDO_FLAGS& operator&=( D3D11_RLDO_FLAGS& a, D3D11_RLDO_FLAGS b )
109{ a = a & b; return a; }
110inline D3D11_RLDO_FLAGS& operator|=( D3D11_RLDO_FLAGS& a, D3D11_RLDO_FLAGS b )
111{ a = a | b; return a; }
112inline D3D11_RLDO_FLAGS& operator^=( D3D11_RLDO_FLAGS& a, D3D11_RLDO_FLAGS b )
113{ a = a ^ b; return a; }
114extern "C"{
115#endif
116
117
118extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0000_v0_0_c_ifspec;
119extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0000_v0_0_s_ifspec;
120
121#ifndef __ID3D11Debug_INTERFACE_DEFINED__
122#define __ID3D11Debug_INTERFACE_DEFINED__
123
124/* interface ID3D11Debug */
125/* [unique][local][object][uuid] */
126
127
128EXTERN_C const IID IID_ID3D11Debug;
129
130#if defined(__cplusplus) && !defined(CINTERFACE)
131   
132    MIDL_INTERFACE("79cf2233-7536-4948-9d36-1e4692dc5760")
133    ID3D11Debug : public IUnknown
134    {
135    public:
136        virtual HRESULT STDMETHODCALLTYPE SetFeatureMask(
137            UINT Mask) = 0;
138       
139        virtual UINT STDMETHODCALLTYPE GetFeatureMask( void) = 0;
140       
141        virtual HRESULT STDMETHODCALLTYPE SetPresentPerRenderOpDelay(
142            UINT Milliseconds) = 0;
143       
144        virtual UINT STDMETHODCALLTYPE GetPresentPerRenderOpDelay( void) = 0;
145       
146        virtual HRESULT STDMETHODCALLTYPE SetSwapChain(
147            /* [annotation] */
148            __in_opt  IDXGISwapChain *pSwapChain) = 0;
149       
150        virtual HRESULT STDMETHODCALLTYPE GetSwapChain(
151            /* [annotation] */
152            __out  IDXGISwapChain **ppSwapChain) = 0;
153       
154        virtual HRESULT STDMETHODCALLTYPE ValidateContext(
155            /* [annotation] */
156            __in  ID3D11DeviceContext *pContext) = 0;
157       
158        virtual HRESULT STDMETHODCALLTYPE ReportLiveDeviceObjects(
159            D3D11_RLDO_FLAGS Flags) = 0;
160       
161        virtual HRESULT STDMETHODCALLTYPE ValidateContextForDispatch(
162            /* [annotation] */
163            __in  ID3D11DeviceContext *pContext) = 0;
164       
165    };
166   
167#else    /* C style interface */
168
169    typedef struct ID3D11DebugVtbl
170    {
171        BEGIN_INTERFACE
172       
173        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
174            ID3D11Debug * This,
175            /* [in] */ REFIID riid,
176            /* [annotation][iid_is][out] */
177            __RPC__deref_out  void **ppvObject);
178       
179        ULONG ( STDMETHODCALLTYPE *AddRef )(
180            ID3D11Debug * This);
181       
182        ULONG ( STDMETHODCALLTYPE *Release )(
183            ID3D11Debug * This);
184       
185        HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )(
186            ID3D11Debug * This,
187            UINT Mask);
188       
189        UINT ( STDMETHODCALLTYPE *GetFeatureMask )(
190            ID3D11Debug * This);
191       
192        HRESULT ( STDMETHODCALLTYPE *SetPresentPerRenderOpDelay )(
193            ID3D11Debug * This,
194            UINT Milliseconds);
195       
196        UINT ( STDMETHODCALLTYPE *GetPresentPerRenderOpDelay )(
197            ID3D11Debug * This);
198       
199        HRESULT ( STDMETHODCALLTYPE *SetSwapChain )(
200            ID3D11Debug * This,
201            /* [annotation] */
202            __in_opt  IDXGISwapChain *pSwapChain);
203       
204        HRESULT ( STDMETHODCALLTYPE *GetSwapChain )(
205            ID3D11Debug * This,
206            /* [annotation] */
207            __out  IDXGISwapChain **ppSwapChain);
208       
209        HRESULT ( STDMETHODCALLTYPE *ValidateContext )(
210            ID3D11Debug * This,
211            /* [annotation] */
212            __in  ID3D11DeviceContext *pContext);
213       
214        HRESULT ( STDMETHODCALLTYPE *ReportLiveDeviceObjects )(
215            ID3D11Debug * This,
216            D3D11_RLDO_FLAGS Flags);
217       
218        HRESULT ( STDMETHODCALLTYPE *ValidateContextForDispatch )(
219            ID3D11Debug * This,
220            /* [annotation] */
221            __in  ID3D11DeviceContext *pContext);
222       
223        END_INTERFACE
224    } ID3D11DebugVtbl;
225
226    interface ID3D11Debug
227    {
228        CONST_VTBL struct ID3D11DebugVtbl *lpVtbl;
229    };
230
231   
232
233#ifdef COBJMACROS
234
235
236#define ID3D11Debug_QueryInterface(This,riid,ppvObject)   \
237    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
238
239#define ID3D11Debug_AddRef(This)   \
240    ( (This)->lpVtbl -> AddRef(This) )
241
242#define ID3D11Debug_Release(This)   \
243    ( (This)->lpVtbl -> Release(This) )
244
245
246#define ID3D11Debug_SetFeatureMask(This,Mask)   \
247    ( (This)->lpVtbl -> SetFeatureMask(This,Mask) )
248
249#define ID3D11Debug_GetFeatureMask(This)   \
250    ( (This)->lpVtbl -> GetFeatureMask(This) )
251
252#define ID3D11Debug_SetPresentPerRenderOpDelay(This,Milliseconds)   \
253    ( (This)->lpVtbl -> SetPresentPerRenderOpDelay(This,Milliseconds) )
254
255#define ID3D11Debug_GetPresentPerRenderOpDelay(This)   \
256    ( (This)->lpVtbl -> GetPresentPerRenderOpDelay(This) )
257
258#define ID3D11Debug_SetSwapChain(This,pSwapChain)   \
259    ( (This)->lpVtbl -> SetSwapChain(This,pSwapChain) )
260
261#define ID3D11Debug_GetSwapChain(This,ppSwapChain)   \
262    ( (This)->lpVtbl -> GetSwapChain(This,ppSwapChain) )
263
264#define ID3D11Debug_ValidateContext(This,pContext)   \
265    ( (This)->lpVtbl -> ValidateContext(This,pContext) )
266
267#define ID3D11Debug_ReportLiveDeviceObjects(This,Flags)   \
268    ( (This)->lpVtbl -> ReportLiveDeviceObjects(This,Flags) )
269
270#define ID3D11Debug_ValidateContextForDispatch(This,pContext)   \
271    ( (This)->lpVtbl -> ValidateContextForDispatch(This,pContext) )
272
273#endif /* COBJMACROS */
274
275
276#endif    /* C style interface */
277
278
279
280
281#endif    /* __ID3D11Debug_INTERFACE_DEFINED__ */
282
283
284#ifndef __ID3D11SwitchToRef_INTERFACE_DEFINED__
285#define __ID3D11SwitchToRef_INTERFACE_DEFINED__
286
287/* interface ID3D11SwitchToRef */
288/* [unique][local][object][uuid] */
289
290
291EXTERN_C const IID IID_ID3D11SwitchToRef;
292
293#if defined(__cplusplus) && !defined(CINTERFACE)
294   
295    MIDL_INTERFACE("1ef337e3-58e7-4f83-a692-db221f5ed47e")
296    ID3D11SwitchToRef : public IUnknown
297    {
298    public:
299        virtual BOOL STDMETHODCALLTYPE SetUseRef(
300            BOOL UseRef) = 0;
301       
302        virtual BOOL STDMETHODCALLTYPE GetUseRef( void) = 0;
303       
304    };
305   
306#else    /* C style interface */
307
308    typedef struct ID3D11SwitchToRefVtbl
309    {
310        BEGIN_INTERFACE
311       
312        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
313            ID3D11SwitchToRef * This,
314            /* [in] */ REFIID riid,
315            /* [annotation][iid_is][out] */
316            __RPC__deref_out  void **ppvObject);
317       
318        ULONG ( STDMETHODCALLTYPE *AddRef )(
319            ID3D11SwitchToRef * This);
320       
321        ULONG ( STDMETHODCALLTYPE *Release )(
322            ID3D11SwitchToRef * This);
323       
324        BOOL ( STDMETHODCALLTYPE *SetUseRef )(
325            ID3D11SwitchToRef * This,
326            BOOL UseRef);
327       
328        BOOL ( STDMETHODCALLTYPE *GetUseRef )(
329            ID3D11SwitchToRef * This);
330       
331        END_INTERFACE
332    } ID3D11SwitchToRefVtbl;
333
334    interface ID3D11SwitchToRef
335    {
336        CONST_VTBL struct ID3D11SwitchToRefVtbl *lpVtbl;
337    };
338
339   
340
341#ifdef COBJMACROS
342
343
344#define ID3D11SwitchToRef_QueryInterface(This,riid,ppvObject)   \
345    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
346
347#define ID3D11SwitchToRef_AddRef(This)   \
348    ( (This)->lpVtbl -> AddRef(This) )
349
350#define ID3D11SwitchToRef_Release(This)   \
351    ( (This)->lpVtbl -> Release(This) )
352
353
354#define ID3D11SwitchToRef_SetUseRef(This,UseRef)   \
355    ( (This)->lpVtbl -> SetUseRef(This,UseRef) )
356
357#define ID3D11SwitchToRef_GetUseRef(This)   \
358    ( (This)->lpVtbl -> GetUseRef(This) )
359
360#endif /* COBJMACROS */
361
362
363#endif    /* C style interface */
364
365
366
367
368#endif    /* __ID3D11SwitchToRef_INTERFACE_DEFINED__ */
369
370
371/* interface __MIDL_itf_d3d11sdklayers_0000_0002 */
372/* [local] */
373
374typedef
375enum D3D11_MESSAGE_CATEGORY
376    {   D3D11_MESSAGE_CATEGORY_APPLICATION_DEFINED   = 0,
377   D3D11_MESSAGE_CATEGORY_MISCELLANEOUS   = ( D3D11_MESSAGE_CATEGORY_APPLICATION_DEFINED + 1 ) ,
378   D3D11_MESSAGE_CATEGORY_INITIALIZATION   = ( D3D11_MESSAGE_CATEGORY_MISCELLANEOUS + 1 ) ,
379   D3D11_MESSAGE_CATEGORY_CLEANUP   = ( D3D11_MESSAGE_CATEGORY_INITIALIZATION + 1 ) ,
380   D3D11_MESSAGE_CATEGORY_COMPILATION   = ( D3D11_MESSAGE_CATEGORY_CLEANUP + 1 ) ,
381   D3D11_MESSAGE_CATEGORY_STATE_CREATION   = ( D3D11_MESSAGE_CATEGORY_COMPILATION + 1 ) ,
382   D3D11_MESSAGE_CATEGORY_STATE_SETTING   = ( D3D11_MESSAGE_CATEGORY_STATE_CREATION + 1 ) ,
383   D3D11_MESSAGE_CATEGORY_STATE_GETTING   = ( D3D11_MESSAGE_CATEGORY_STATE_SETTING + 1 ) ,
384   D3D11_MESSAGE_CATEGORY_RESOURCE_MANIPULATION   = ( D3D11_MESSAGE_CATEGORY_STATE_GETTING + 1 ) ,
385   D3D11_MESSAGE_CATEGORY_EXECUTION   = ( D3D11_MESSAGE_CATEGORY_RESOURCE_MANIPULATION + 1 )
386    }    D3D11_MESSAGE_CATEGORY;
387
388typedef
389enum D3D11_MESSAGE_SEVERITY
390    {   D3D11_MESSAGE_SEVERITY_CORRUPTION   = 0,
391   D3D11_MESSAGE_SEVERITY_ERROR   = ( D3D11_MESSAGE_SEVERITY_CORRUPTION + 1 ) ,
392   D3D11_MESSAGE_SEVERITY_WARNING   = ( D3D11_MESSAGE_SEVERITY_ERROR + 1 ) ,
393   D3D11_MESSAGE_SEVERITY_INFO   = ( D3D11_MESSAGE_SEVERITY_WARNING + 1 )
394    }    D3D11_MESSAGE_SEVERITY;
395
396typedef
397enum D3D11_MESSAGE_ID
398    {   D3D11_MESSAGE_ID_UNKNOWN   = 0,
399   D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_HAZARD   = ( D3D11_MESSAGE_ID_UNKNOWN + 1 ) ,
400   D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_HAZARD + 1 ) ,
401   D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_HAZARD + 1 ) ,
402   D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_HAZARD + 1 ) ,
403   D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_HAZARD + 1 ) ,
404   D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_HAZARD + 1 ) ,
405   D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_HAZARD + 1 ) ,
406   D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_HAZARD + 1 ) ,
407   D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_HAZARD + 1 ) ,
408   D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETS_HAZARD + 1 ) ,
409   D3D11_MESSAGE_ID_STRING_FROM_APPLICATION   = ( D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_HAZARD + 1 ) ,
410   D3D11_MESSAGE_ID_CORRUPTED_THIS   = ( D3D11_MESSAGE_ID_STRING_FROM_APPLICATION + 1 ) ,
411   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER1   = ( D3D11_MESSAGE_ID_CORRUPTED_THIS + 1 ) ,
412   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER2   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER1 + 1 ) ,
413   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER3   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER2 + 1 ) ,
414   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER4   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER3 + 1 ) ,
415   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER5   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER4 + 1 ) ,
416   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER6   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER5 + 1 ) ,
417   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER7   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER6 + 1 ) ,
418   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER8   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER7 + 1 ) ,
419   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER9   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER8 + 1 ) ,
420   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER10   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER9 + 1 ) ,
421   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER11   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER10 + 1 ) ,
422   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER12   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER11 + 1 ) ,
423   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER13   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER12 + 1 ) ,
424   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER14   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER13 + 1 ) ,
425   D3D11_MESSAGE_ID_CORRUPTED_PARAMETER15   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER14 + 1 ) ,
426   D3D11_MESSAGE_ID_CORRUPTED_MULTITHREADING   = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER15 + 1 ) ,
427   D3D11_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CORRUPTED_MULTITHREADING + 1 ) ,
428   D3D11_MESSAGE_ID_IASETINPUTLAYOUT_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY + 1 ) ,
429   D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_IASETINPUTLAYOUT_UNBINDDELETINGOBJECT + 1 ) ,
430   D3D11_MESSAGE_ID_IASETINDEXBUFFER_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_UNBINDDELETINGOBJECT + 1 ) ,
431   D3D11_MESSAGE_ID_VSSETSHADER_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_IASETINDEXBUFFER_UNBINDDELETINGOBJECT + 1 ) ,
432   D3D11_MESSAGE_ID_VSSETSHADERRESOURCES_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_VSSETSHADER_UNBINDDELETINGOBJECT + 1 ) ,
433   D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_VSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) ,
434   D3D11_MESSAGE_ID_VSSETSAMPLERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) ,
435   D3D11_MESSAGE_ID_GSSETSHADER_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_VSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) ,
436   D3D11_MESSAGE_ID_GSSETSHADERRESOURCES_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_GSSETSHADER_UNBINDDELETINGOBJECT + 1 ) ,
437   D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_GSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) ,
438   D3D11_MESSAGE_ID_GSSETSAMPLERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) ,
439   D3D11_MESSAGE_ID_SOSETTARGETS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_GSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) ,
440   D3D11_MESSAGE_ID_PSSETSHADER_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_SOSETTARGETS_UNBINDDELETINGOBJECT + 1 ) ,
441   D3D11_MESSAGE_ID_PSSETSHADERRESOURCES_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_PSSETSHADER_UNBINDDELETINGOBJECT + 1 ) ,
442   D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_PSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) ,
443   D3D11_MESSAGE_ID_PSSETSAMPLERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) ,
444   D3D11_MESSAGE_ID_RSSETSTATE_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_PSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) ,
445   D3D11_MESSAGE_ID_OMSETBLENDSTATE_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_RSSETSTATE_UNBINDDELETINGOBJECT + 1 ) ,
446   D3D11_MESSAGE_ID_OMSETDEPTHSTENCILSTATE_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_OMSETBLENDSTATE_UNBINDDELETINGOBJECT + 1 ) ,
447   D3D11_MESSAGE_ID_OMSETRENDERTARGETS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_OMSETDEPTHSTENCILSTATE_UNBINDDELETINGOBJECT + 1 ) ,
448   D3D11_MESSAGE_ID_SETPREDICATION_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_UNBINDDELETINGOBJECT + 1 ) ,
449   D3D11_MESSAGE_ID_GETPRIVATEDATA_MOREDATA   = ( D3D11_MESSAGE_ID_SETPREDICATION_UNBINDDELETINGOBJECT + 1 ) ,
450   D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA   = ( D3D11_MESSAGE_ID_GETPRIVATEDATA_MOREDATA + 1 ) ,
451   D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN   = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA + 1 ) ,
452   D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN + 1 ) ,
453   D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS   = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS + 1 ) ,
454   D3D11_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS + 1 ) ,
455   D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY + 1 ) ,
456   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSAMPLES   = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDFORMAT + 1 ) ,
457   D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDUSAGE   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSAMPLES + 1 ) ,
458   D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDUSAGE + 1 ) ,
459   D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDBINDFLAGS + 1 ) ,
460   D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) ,
461   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDMISCFLAGS + 1 ) ,
462   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCPUACCESSFLAGS + 1 ) ,
463   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDINITIALDATA   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDBINDFLAGS + 1 ) ,
464   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDINITIALDATA + 1 ) ,
465   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMIPLEVELS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDDIMENSIONS + 1 ) ,
466   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMIPLEVELS + 1 ) ,
467   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMISCFLAGS + 1 ) ,
468   D3D11_MESSAGE_ID_CREATEBUFFER_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDARG_RETURN + 1 ) ,
469   D3D11_MESSAGE_ID_CREATEBUFFER_NULLDESC   = ( D3D11_MESSAGE_ID_CREATEBUFFER_OUTOFMEMORY_RETURN + 1 ) ,
470   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCONSTANTBUFFERBINDINGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_NULLDESC + 1 ) ,
471   D3D11_MESSAGE_ID_CREATEBUFFER_LARGEALLOCATION   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCONSTANTBUFFERBINDINGS + 1 ) ,
472   D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_CREATEBUFFER_LARGEALLOCATION + 1 ) ,
473   D3D11_MESSAGE_ID_CREATETEXTURE1D_UNSUPPORTEDFORMAT   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDFORMAT + 1 ) ,
474   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDSAMPLES   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNSUPPORTEDFORMAT + 1 ) ,
475   D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDUSAGE   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDSAMPLES + 1 ) ,
476   D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDUSAGE + 1 ) ,
477   D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDBINDFLAGS + 1 ) ,
478   D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) ,
479   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDMISCFLAGS + 1 ) ,
480   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDCPUACCESSFLAGS + 1 ) ,
481   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDINITIALDATA   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDBINDFLAGS + 1 ) ,
482   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDINITIALDATA + 1 ) ,
483   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMIPLEVELS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDDIMENSIONS + 1 ) ,
484   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMIPLEVELS + 1 ) ,
485   D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMISCFLAGS + 1 ) ,
486   D3D11_MESSAGE_ID_CREATETEXTURE1D_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDARG_RETURN + 1 ) ,
487   D3D11_MESSAGE_ID_CREATETEXTURE1D_NULLDESC   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_OUTOFMEMORY_RETURN + 1 ) ,
488   D3D11_MESSAGE_ID_CREATETEXTURE1D_LARGEALLOCATION   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_NULLDESC + 1 ) ,
489   D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_LARGEALLOCATION + 1 ) ,
490   D3D11_MESSAGE_ID_CREATETEXTURE2D_UNSUPPORTEDFORMAT   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDFORMAT + 1 ) ,
491   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDSAMPLES   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNSUPPORTEDFORMAT + 1 ) ,
492   D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDUSAGE   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDSAMPLES + 1 ) ,
493   D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDUSAGE + 1 ) ,
494   D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDBINDFLAGS + 1 ) ,
495   D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) ,
496   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDMISCFLAGS + 1 ) ,
497   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDCPUACCESSFLAGS + 1 ) ,
498   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDINITIALDATA   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDBINDFLAGS + 1 ) ,
499   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDINITIALDATA + 1 ) ,
500   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMIPLEVELS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDDIMENSIONS + 1 ) ,
501   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMIPLEVELS + 1 ) ,
502   D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMISCFLAGS + 1 ) ,
503   D3D11_MESSAGE_ID_CREATETEXTURE2D_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDARG_RETURN + 1 ) ,
504   D3D11_MESSAGE_ID_CREATETEXTURE2D_NULLDESC   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_OUTOFMEMORY_RETURN + 1 ) ,
505   D3D11_MESSAGE_ID_CREATETEXTURE2D_LARGEALLOCATION   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_NULLDESC + 1 ) ,
506   D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_LARGEALLOCATION + 1 ) ,
507   D3D11_MESSAGE_ID_CREATETEXTURE3D_UNSUPPORTEDFORMAT   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDFORMAT + 1 ) ,
508   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDSAMPLES   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNSUPPORTEDFORMAT + 1 ) ,
509   D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDUSAGE   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDSAMPLES + 1 ) ,
510   D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDUSAGE + 1 ) ,
511   D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDBINDFLAGS + 1 ) ,
512   D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) ,
513   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDCPUACCESSFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDMISCFLAGS + 1 ) ,
514   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDBINDFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDCPUACCESSFLAGS + 1 ) ,
515   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDINITIALDATA   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDBINDFLAGS + 1 ) ,
516   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDINITIALDATA + 1 ) ,
517   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMIPLEVELS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDDIMENSIONS + 1 ) ,
518   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMIPLEVELS + 1 ) ,
519   D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMISCFLAGS + 1 ) ,
520   D3D11_MESSAGE_ID_CREATETEXTURE3D_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDARG_RETURN + 1 ) ,
521   D3D11_MESSAGE_ID_CREATETEXTURE3D_NULLDESC   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_OUTOFMEMORY_RETURN + 1 ) ,
522   D3D11_MESSAGE_ID_CREATETEXTURE3D_LARGEALLOCATION   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_NULLDESC + 1 ) ,
523   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_LARGEALLOCATION + 1 ) ,
524   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT + 1 ) ,
525   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC + 1 ) ,
526   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT + 1 ) ,
527   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS + 1 ) ,
528   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE + 1 ) ,
529   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_TOOMANYOBJECTS + 1 ) ,
530   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN + 1 ) ,
531   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN + 1 ) ,
532   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT + 1 ) ,
533   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT + 1 ) ,
534   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC + 1 ) ,
535   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT + 1 ) ,
536   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS + 1 ) ,
537   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE + 1 ) ,
538   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_TOOMANYOBJECTS + 1 ) ,
539   D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN + 1 ) ,
540   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN + 1 ) ,
541   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT + 1 ) ,
542   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC + 1 ) ,
543   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT + 1 ) ,
544   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS + 1 ) ,
545   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE + 1 ) ,
546   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_TOOMANYOBJECTS + 1 ) ,
547   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN + 1 ) ,
548   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN + 1 ) ,
549   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY + 1 ) ,
550   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS + 1 ) ,
551   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT + 1 ) ,
552   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT + 1 ) ,
553   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT + 1 ) ,
554   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS + 1 ) ,
555   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH + 1 ) ,
556   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE + 1 ) ,
557   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE + 1 ) ,
558   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT + 1 ) ,
559   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC + 1 ) ,
560   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE + 1 ) ,
561   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC + 1 ) ,
562   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLDESC   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT + 1 ) ,
563   D3D11_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLDESC + 1 ) ,
564   D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE   = ( D3D11_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY + 1 ) ,
565   D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE   = ( D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE + 1 ) ,
566   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE + 1 ) ,
567   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY + 1 ) ,
568   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE + 1 ) ,
569   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE + 1 ) ,
570   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY + 1 ) ,
571   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE + 1 ) ,
572   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE + 1 ) ,
573   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES + 1 ) ,
574   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED + 1 ) ,
575   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL + 1 ) ,
576   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL + 1 ) ,
577   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED + 1 ) ,
578   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT + 1 ) ,
579   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT + 1 ) ,
580   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT + 1 ) ,
581   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT + 1 ) ,
582   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION + 1 ) ,
583   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT + 1 ) ,
584   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE + 1 ) ,
585   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC + 1 ) ,
586   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH + 1 ) ,
587   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS + 1 ) ,
588   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX + 1 ) ,
589   D3D11_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE + 1 ) ,
590   D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE   = ( D3D11_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY + 1 ) ,
591   D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE   = ( D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE + 1 ) ,
592   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE   = ( D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE + 1 ) ,
593   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE + 1 ) ,
594   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE + 1 ) ,
595   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP + 1 ) ,
596   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS + 1 ) ,
597   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_TOOMANYOBJECTS + 1 ) ,
598   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC + 1 ) ,
599   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK + 1 ) ,
600   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC + 1 ) ,
601   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP + 1 ) ,
602   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP + 1 ) ,
603   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP + 1 ) ,
604   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC + 1 ) ,
605   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP + 1 ) ,
606   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP + 1 ) ,
607   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP + 1 ) ,
608   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC + 1 ) ,
609   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_TOOMANYOBJECTS + 1 ) ,
610   D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC + 1 ) ,
611   D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND + 1 ) ,
612   D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND + 1 ) ,
613   D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP + 1 ) ,
614   D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA + 1 ) ,
615   D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA + 1 ) ,
616   D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA + 1 ) ,
617   D3D11_MESSAGE_ID_CREATEBLENDSTATE_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK + 1 ) ,
618   D3D11_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_TOOMANYOBJECTS + 1 ) ,
619   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC + 1 ) ,
620   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER + 1 ) ,
621   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU + 1 ) ,
622   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV + 1 ) ,
623   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW + 1 ) ,
624   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS + 1 ) ,
625   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY + 1 ) ,
626   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC + 1 ) ,
627   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD + 1 ) ,
628   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD + 1 ) ,
629   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_TOOMANYOBJECTS + 1 ) ,
630   D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDQUERY   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC + 1 ) ,
631   D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDMISCFLAGS   = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDQUERY + 1 ) ,
632   D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_UNEXPECTEDMISCFLAG   = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDMISCFLAGS + 1 ) ,
633   D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_NULLDESC   = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_UNEXPECTEDMISCFLAG + 1 ) ,
634   D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED   = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_NULLDESC + 1 ) ,
635   D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED   = ( D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED + 1 ) ,
636   D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED + 1 ) ,
637   D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_OFFSET_TOO_LARGE   = ( D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_INVALIDBUFFER + 1 ) ,
638   D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_OFFSET_TOO_LARGE + 1 ) ,
639   D3D11_MESSAGE_ID_IASETINDEXBUFFER_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_BUFFERS_EMPTY + 1 ) ,
640   D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_FORMAT_INVALID   = ( D3D11_MESSAGE_ID_IASETINDEXBUFFER_INVALIDBUFFER + 1 ) ,
641   D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_TOO_LARGE   = ( D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_FORMAT_INVALID + 1 ) ,
642   D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_UNALIGNED   = ( D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_TOO_LARGE + 1 ) ,
643   D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_UNALIGNED + 1 ) ,
644   D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
645   D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) ,
646   D3D11_MESSAGE_ID_DEVICE_VSSETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
647   D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_VSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
648   D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
649   D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) ,
650   D3D11_MESSAGE_ID_DEVICE_GSSETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
651   D3D11_MESSAGE_ID_SOSETTARGETS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_GSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
652   D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_OFFSET_UNALIGNED   = ( D3D11_MESSAGE_ID_SOSETTARGETS_INVALIDBUFFER + 1 ) ,
653   D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_OFFSET_UNALIGNED + 1 ) ,
654   D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
655   D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) ,
656   D3D11_MESSAGE_ID_DEVICE_PSSETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
657   D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT   = ( D3D11_MESSAGE_ID_DEVICE_PSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
658   D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR   = ( D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT + 1 ) ,
659   D3D11_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH   = ( D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR + 1 ) ,
660   D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH   = ( D3D11_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH + 1 ) ,
661   D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID   = ( D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH + 1 ) ,
662   D3D11_MESSAGE_ID_DEVICE_IAGETVERTEXBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID + 1 ) ,
663   D3D11_MESSAGE_ID_DEVICE_VSGETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_IAGETVERTEXBUFFERS_BUFFERS_EMPTY + 1 ) ,
664   D3D11_MESSAGE_ID_DEVICE_VSGETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_VSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
665   D3D11_MESSAGE_ID_DEVICE_VSGETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_VSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
666   D3D11_MESSAGE_ID_DEVICE_GSGETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_VSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
667   D3D11_MESSAGE_ID_DEVICE_GSGETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_GSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
668   D3D11_MESSAGE_ID_DEVICE_GSGETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_GSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
669   D3D11_MESSAGE_ID_DEVICE_SOGETTARGETS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_GSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
670   D3D11_MESSAGE_ID_DEVICE_PSGETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_SOGETTARGETS_BUFFERS_EMPTY + 1 ) ,
671   D3D11_MESSAGE_ID_DEVICE_PSGETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_PSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
672   D3D11_MESSAGE_ID_DEVICE_PSGETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_PSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
673   D3D11_MESSAGE_ID_DEVICE_RSGETVIEWPORTS_VIEWPORTS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_PSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
674   D3D11_MESSAGE_ID_DEVICE_RSGETSCISSORRECTS_RECTS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_RSGETVIEWPORTS_VIEWPORTS_EMPTY + 1 ) ,
675   D3D11_MESSAGE_ID_DEVICE_GENERATEMIPS_RESOURCE_INVALID   = ( D3D11_MESSAGE_ID_DEVICE_RSGETSCISSORRECTS_RECTS_EMPTY + 1 ) ,
676   D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSUBRESOURCE   = ( D3D11_MESSAGE_ID_DEVICE_GENERATEMIPS_RESOURCE_INVALID + 1 ) ,
677   D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESUBRESOURCE   = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSUBRESOURCE + 1 ) ,
678   D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCEBOX   = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESUBRESOURCE + 1 ) ,
679   D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCE   = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCEBOX + 1 ) ,
680   D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSTATE   = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCE + 1 ) ,
681   D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESTATE   = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSTATE + 1 ) ,
682   D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE   = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESTATE + 1 ) ,
683   D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE   = ( D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE + 1 ) ,
684   D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE   = ( D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE + 1 ) ,
685   D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE   = ( D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE + 1 ) ,
686   D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX   = ( D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE + 1 ) ,
687   D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE   = ( D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX + 1 ) ,
688   D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID   = ( D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE + 1 ) ,
689   D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID   = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID + 1 ) ,
690   D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID   = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID + 1 ) ,
691   D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID   = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID + 1 ) ,
692   D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID   = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID + 1 ) ,
693   D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE   = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID + 1 ) ,
694   D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE + 1 ) ,
695   D3D11_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED   = ( D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS + 1 ) ,
696   D3D11_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN   = ( D3D11_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED + 1 ) ,
697   D3D11_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED   = ( D3D11_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN + 1 ) ,
698   D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE   = ( D3D11_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED + 1 ) ,
699   D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE + 1 ) ,
700   D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE + 1 ) ,
701   D3D11_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED   = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS + 1 ) ,
702   D3D11_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN   = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED + 1 ) ,
703   D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN + 1 ) ,
704   D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED   = ( D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE + 1 ) ,
705   D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE   = ( D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED + 1 ) ,
706   D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE + 1 ) ,
707   D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE + 1 ) ,
708   D3D11_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED   = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS + 1 ) ,
709   D3D11_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN   = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED + 1 ) ,
710   D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN + 1 ) ,
711   D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED   = ( D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE + 1 ) ,
712   D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE   = ( D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED + 1 ) ,
713   D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE + 1 ) ,
714   D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE + 1 ) ,
715   D3D11_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED   = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS + 1 ) ,
716   D3D11_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN   = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED + 1 ) ,
717   D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN + 1 ) ,
718   D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED   = ( D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE + 1 ) ,
719   D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED   = ( D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED + 1 ) ,
720   D3D11_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED   = ( D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED + 1 ) ,
721   D3D11_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS   = ( D3D11_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED + 1 ) ,
722   D3D11_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS + 1 ) ,
723   D3D11_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN   = ( D3D11_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN + 1 ) ,
724   D3D11_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE   = ( D3D11_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN + 1 ) ,
725   D3D11_MESSAGE_ID_REF_THREADING_MODE   = ( D3D11_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE + 1 ) ,
726   D3D11_MESSAGE_ID_REF_UMDRIVER_EXCEPTION   = ( D3D11_MESSAGE_ID_REF_THREADING_MODE + 1 ) ,
727   D3D11_MESSAGE_ID_REF_KMDRIVER_EXCEPTION   = ( D3D11_MESSAGE_ID_REF_UMDRIVER_EXCEPTION + 1 ) ,
728   D3D11_MESSAGE_ID_REF_HARDWARE_EXCEPTION   = ( D3D11_MESSAGE_ID_REF_KMDRIVER_EXCEPTION + 1 ) ,
729   D3D11_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE   = ( D3D11_MESSAGE_ID_REF_HARDWARE_EXCEPTION + 1 ) ,
730   D3D11_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER   = ( D3D11_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE + 1 ) ,
731   D3D11_MESSAGE_ID_REF_OUT_OF_MEMORY   = ( D3D11_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER + 1 ) ,
732   D3D11_MESSAGE_ID_REF_INFO   = ( D3D11_MESSAGE_ID_REF_OUT_OF_MEMORY + 1 ) ,
733   D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW   = ( D3D11_MESSAGE_ID_REF_INFO + 1 ) ,
734   D3D11_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW + 1 ) ,
735   D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW + 1 ) ,
736   D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW + 1 ) ,
737   D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW + 1 ) ,
738   D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW + 1 ) ,
739   D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW + 1 ) ,
740   D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET + 1 ) ,
741   D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX   = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND + 1 ) ,
742   D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE   = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX + 1 ) ,
743   D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK   = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE + 1 ) ,
744   D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE   = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK + 1 ) ,
745   D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS   = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE + 1 ) ,
746   D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS + 1 ) ,
747   D3D11_MESSAGE_ID_DEVICE_DRAW_INPUTLAYOUT_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_NOT_SET + 1 ) ,
748   D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INPUTLAYOUT_NOT_SET + 1 ) ,
749   D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_TOO_SMALL   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_NOT_SET + 1 ) ,
750   D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_TOO_SMALL + 1 ) ,
751   D3D11_MESSAGE_ID_DEVICE_DRAW_SHADERRESOURCEVIEW_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_NOT_SET + 1 ) ,
752   D3D11_MESSAGE_ID_DEVICE_DRAW_VIEW_DIMENSION_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SHADERRESOURCEVIEW_NOT_SET + 1 ) ,
753   D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VIEW_DIMENSION_MISMATCH + 1 ) ,
754   D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL + 1 ) ,
755   D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL + 1 ) ,
756   D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_NOT_SET + 1 ) ,
757   D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID + 1 ) ,
758   D3D11_MESSAGE_ID_DEVICE_DRAW_GS_INPUT_PRIMITIVE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL + 1 ) ,
759   D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_RETURN_TYPE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_GS_INPUT_PRIMITIVE_MISMATCH + 1 ) ,
760   D3D11_MESSAGE_ID_DEVICE_DRAW_POSITION_NOT_PRESENT   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_RETURN_TYPE_MISMATCH + 1 ) ,
761   D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_POSITION_NOT_PRESENT + 1 ) ,
762   D3D11_MESSAGE_ID_DEVICE_DRAW_BOUND_RESOURCE_MAPPED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_NOT_SET + 1 ) ,
763   D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_PRIMITIVETOPOLOGY   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_BOUND_RESOURCE_MAPPED + 1 ) ,
764   D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_OFFSET_UNALIGNED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_PRIMITIVETOPOLOGY + 1 ) ,
765   D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_STRIDE_UNALIGNED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_OFFSET_UNALIGNED + 1 ) ,
766   D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_OFFSET_UNALIGNED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_STRIDE_UNALIGNED + 1 ) ,
767   D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_OFFSET_UNALIGNED + 1 ) ,
768   D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED + 1 ) ,
769   D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED + 1 ) ,
770   D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED + 1 ) ,
771   D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED + 1 ) ,
772   D3D11_MESSAGE_ID_DEVICE_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED + 1 ) ,
773   D3D11_MESSAGE_ID_DEVICE_DRAW_SO_STRIDE_LARGER_THAN_BUFFER   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE + 1 ) ,
774   D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SO_STRIDE_LARGER_THAN_BUFFER + 1 ) ,
775   D3D11_MESSAGE_ID_DEVICE_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING + 1 ) ,
776   D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 + 1 ) ,
777   D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT   = ( D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT + 1 ) ,
778   D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT   = ( D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT + 1 ) ,
779   D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT + 1 ) ,
780   D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN + 1 ) ,
781   D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN   = ( D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN + 1 ) ,
782   D3D11_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN + 1 ) ,
783   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET + 1 ) ,
784   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC + 1 ) ,
785   D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC + 1 ) ,
786   D3D11_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW   = ( D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH + 1 ) ,
787   D3D11_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW + 1 ) ,
788   D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS + 1 ) ,
789   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH + 1 ) ,
790   D3D11_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH + 1 ) ,
791   D3D11_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY   = ( D3D11_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY + 1 ) ,
792   D3D11_MESSAGE_ID_CREATEQUERY_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY + 1 ) ,
793   D3D11_MESSAGE_ID_CREATEPREDICATE_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATEQUERY_OUTOFMEMORY_RETURN + 1 ) ,
794   D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFRANGE_COUNTER   = ( D3D11_MESSAGE_ID_CREATEPREDICATE_OUTOFMEMORY_RETURN + 1 ) ,
795   D3D11_MESSAGE_ID_CREATECOUNTER_SIMULTANEOUS_ACTIVE_COUNTERS_EXHAUSTED   = ( D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFRANGE_COUNTER + 1 ) ,
796   D3D11_MESSAGE_ID_CREATECOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER   = ( D3D11_MESSAGE_ID_CREATECOUNTER_SIMULTANEOUS_ACTIVE_COUNTERS_EXHAUSTED + 1 ) ,
797   D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATECOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER + 1 ) ,
798   D3D11_MESSAGE_ID_CREATECOUNTER_NONEXCLUSIVE_RETURN   = ( D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFMEMORY_RETURN + 1 ) ,
799   D3D11_MESSAGE_ID_CREATECOUNTER_NULLDESC   = ( D3D11_MESSAGE_ID_CREATECOUNTER_NONEXCLUSIVE_RETURN + 1 ) ,
800   D3D11_MESSAGE_ID_CHECKCOUNTER_OUTOFRANGE_COUNTER   = ( D3D11_MESSAGE_ID_CREATECOUNTER_NULLDESC + 1 ) ,
801   D3D11_MESSAGE_ID_CHECKCOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER   = ( D3D11_MESSAGE_ID_CHECKCOUNTER_OUTOFRANGE_COUNTER + 1 ) ,
802   D3D11_MESSAGE_ID_SETPREDICATION_INVALID_PREDICATE_STATE   = ( D3D11_MESSAGE_ID_CHECKCOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER + 1 ) ,
803   D3D11_MESSAGE_ID_QUERY_BEGIN_UNSUPPORTED   = ( D3D11_MESSAGE_ID_SETPREDICATION_INVALID_PREDICATE_STATE + 1 ) ,
804   D3D11_MESSAGE_ID_PREDICATE_BEGIN_DURING_PREDICATION   = ( D3D11_MESSAGE_ID_QUERY_BEGIN_UNSUPPORTED + 1 ) ,
805   D3D11_MESSAGE_ID_QUERY_BEGIN_DUPLICATE   = ( D3D11_MESSAGE_ID_PREDICATE_BEGIN_DURING_PREDICATION + 1 ) ,
806   D3D11_MESSAGE_ID_QUERY_BEGIN_ABANDONING_PREVIOUS_RESULTS   = ( D3D11_MESSAGE_ID_QUERY_BEGIN_DUPLICATE + 1 ) ,
807   D3D11_MESSAGE_ID_PREDICATE_END_DURING_PREDICATION   = ( D3D11_MESSAGE_ID_QUERY_BEGIN_ABANDONING_PREVIOUS_RESULTS + 1 ) ,
808   D3D11_MESSAGE_ID_QUERY_END_ABANDONING_PREVIOUS_RESULTS   = ( D3D11_MESSAGE_ID_PREDICATE_END_DURING_PREDICATION + 1 ) ,
809   D3D11_MESSAGE_ID_QUERY_END_WITHOUT_BEGIN   = ( D3D11_MESSAGE_ID_QUERY_END_ABANDONING_PREVIOUS_RESULTS + 1 ) ,
810   D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_DATASIZE   = ( D3D11_MESSAGE_ID_QUERY_END_WITHOUT_BEGIN + 1 ) ,
811   D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_FLAGS   = ( D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_DATASIZE + 1 ) ,
812   D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_CALL   = ( D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_FLAGS + 1 ) ,
813   D3D11_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH   = ( D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_CALL + 1 ) ,
814   D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH + 1 ) ,
815   D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED + 1 ) ,
816   D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN + 1 ) ,
817   D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE   = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE + 1 ) ,
818   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT   = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE + 1 ) ,
819   D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT + 1 ) ,
820   D3D11_MESSAGE_ID_D3D10_MESSAGES_END   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH + 1 ) ,
821   D3D11_MESSAGE_ID_D3D10L9_MESSAGES_START   = 0x100000,
822   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_STENCIL_NO_TWO_SIDED   = ( D3D11_MESSAGE_ID_D3D10L9_MESSAGES_START + 1 ) ,
823   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthBiasClamp_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_STENCIL_NO_TWO_SIDED + 1 ) ,
824   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_COMPARISON_SUPPORT   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthBiasClamp_NOT_SUPPORTED + 1 ) ,
825   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_EXCESSIVE_ANISOTROPY   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_COMPARISON_SUPPORT + 1 ) ,
826   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_OUT_OF_RANGE   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_EXCESSIVE_ANISOTROPY + 1 ) ,
827   D3D11_MESSAGE_ID_VSSETSAMPLERS_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_OUT_OF_RANGE + 1 ) ,
828   D3D11_MESSAGE_ID_VSSETSAMPLERS_TOO_MANY_SAMPLERS   = ( D3D11_MESSAGE_ID_VSSETSAMPLERS_NOT_SUPPORTED + 1 ) ,
829   D3D11_MESSAGE_ID_PSSETSAMPLERS_TOO_MANY_SAMPLERS   = ( D3D11_MESSAGE_ID_VSSETSAMPLERS_TOO_MANY_SAMPLERS + 1 ) ,
830   D3D11_MESSAGE_ID_CREATERESOURCE_NO_ARRAYS   = ( D3D11_MESSAGE_ID_PSSETSAMPLERS_TOO_MANY_SAMPLERS + 1 ) ,
831   D3D11_MESSAGE_ID_CREATERESOURCE_NO_VB_AND_IB_BIND   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_ARRAYS + 1 ) ,
832   D3D11_MESSAGE_ID_CREATERESOURCE_NO_TEXTURE_1D   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_VB_AND_IB_BIND + 1 ) ,
833   D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_OUT_OF_RANGE   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_TEXTURE_1D + 1 ) ,
834   D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_SHADER_RESOURCE   = ( D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_OUT_OF_RANGE + 1 ) ,
835   D3D11_MESSAGE_ID_OMSETRENDERTARGETS_TOO_MANY_RENDER_TARGETS   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_SHADER_RESOURCE + 1 ) ,
836   D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_DIFFERING_BIT_DEPTHS   = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_TOO_MANY_RENDER_TARGETS + 1 ) ,
837   D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_BAD_BUFFER_INDEX   = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_DIFFERING_BIT_DEPTHS + 1 ) ,
838   D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_TOO_MANY_VIEWPORTS   = ( D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_BAD_BUFFER_INDEX + 1 ) ,
839   D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_ADJACENCY_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_TOO_MANY_VIEWPORTS + 1 ) ,
840   D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_TOO_MANY_SCISSORS   = ( D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_ADJACENCY_UNSUPPORTED + 1 ) ,
841   D3D11_MESSAGE_ID_COPYRESOURCE_ONLY_TEXTURE_2D_WITHIN_GPU_MEMORY   = ( D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_TOO_MANY_SCISSORS + 1 ) ,
842   D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_3D_READBACK   = ( D3D11_MESSAGE_ID_COPYRESOURCE_ONLY_TEXTURE_2D_WITHIN_GPU_MEMORY + 1 ) ,
843   D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_ONLY_READBACK   = ( D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_3D_READBACK + 1 ) ,
844   D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNSUPPORTED_FORMAT   = ( D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_ONLY_READBACK + 1 ) ,
845   D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_ALPHA_TO_COVERAGE   = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNSUPPORTED_FORMAT + 1 ) ,
846   D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthClipEnable_MUST_BE_TRUE   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_ALPHA_TO_COVERAGE + 1 ) ,
847   D3D11_MESSAGE_ID_DRAWINDEXED_STARTINDEXLOCATION_MUST_BE_POSITIVE   = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthClipEnable_MUST_BE_TRUE + 1 ) ,
848   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_MUST_USE_LOWEST_LOD   = ( D3D11_MESSAGE_ID_DRAWINDEXED_STARTINDEXLOCATION_MUST_BE_POSITIVE + 1 ) ,
849   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MINLOD_MUST_NOT_BE_FRACTIONAL   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_MUST_USE_LOWEST_LOD + 1 ) ,
850   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MAXLOD_MUST_BE_FLT_MAX   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MINLOD_MUST_NOT_BE_FRACTIONAL + 1 ) ,
851   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_FIRSTARRAYSLICE_MUST_BE_ZERO   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MAXLOD_MUST_BE_FLT_MAX + 1 ) ,
852   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_CUBES_MUST_HAVE_6_SIDES   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_FIRSTARRAYSLICE_MUST_BE_ZERO + 1 ) ,
853   D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_RENDER_TARGET   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_CUBES_MUST_HAVE_6_SIDES + 1 ) ,
854   D3D11_MESSAGE_ID_CREATERESOURCE_NO_DWORD_INDEX_BUFFER   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_RENDER_TARGET + 1 ) ,
855   D3D11_MESSAGE_ID_CREATERESOURCE_MSAA_PRECLUDES_SHADER_RESOURCE   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_DWORD_INDEX_BUFFER + 1 ) ,
856   D3D11_MESSAGE_ID_CREATERESOURCE_PRESENTATION_PRECLUDES_SHADER_RESOURCE   = ( D3D11_MESSAGE_ID_CREATERESOURCE_MSAA_PRECLUDES_SHADER_RESOURCE + 1 ) ,
857   D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_BLEND_ENABLE   = ( D3D11_MESSAGE_ID_CREATERESOURCE_PRESENTATION_PRECLUDES_SHADER_RESOURCE + 1 ) ,
858   D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_WRITE_MASKS   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_BLEND_ENABLE + 1 ) ,
859   D3D11_MESSAGE_ID_CREATERESOURCE_NO_STREAM_OUT   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_WRITE_MASKS + 1 ) ,
860   D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_VB_IB_FOR_BUFFERS   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_STREAM_OUT + 1 ) ,
861   D3D11_MESSAGE_ID_CREATERESOURCE_NO_AUTOGEN_FOR_VOLUMES   = ( D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_VB_IB_FOR_BUFFERS + 1 ) ,
862   D3D11_MESSAGE_ID_CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_AUTOGEN_FOR_VOLUMES + 1 ) ,
863   D3D11_MESSAGE_ID_VSSHADERRESOURCES_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED + 1 ) ,
864   D3D11_MESSAGE_ID_GEOMETRY_SHADER_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_VSSHADERRESOURCES_NOT_SUPPORTED + 1 ) ,
865   D3D11_MESSAGE_ID_STREAM_OUT_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_GEOMETRY_SHADER_NOT_SUPPORTED + 1 ) ,
866   D3D11_MESSAGE_ID_TEXT_FILTER_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_STREAM_OUT_NOT_SUPPORTED + 1 ) ,
867   D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_SEPARATE_ALPHA_BLEND   = ( D3D11_MESSAGE_ID_TEXT_FILTER_NOT_SUPPORTED + 1 ) ,
868   D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_MRT_BLEND   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_SEPARATE_ALPHA_BLEND + 1 ) ,
869   D3D11_MESSAGE_ID_CREATEBLENDSTATE_OPERATION_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_MRT_BLEND + 1 ) ,
870   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_MIRRORONCE   = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_OPERATION_NOT_SUPPORTED + 1 ) ,
871   D3D11_MESSAGE_ID_DRAWINSTANCED_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_MIRRORONCE + 1 ) ,
872   D3D11_MESSAGE_ID_DRAWINDEXEDINSTANCED_NOT_SUPPORTED_BELOW_9_3   = ( D3D11_MESSAGE_ID_DRAWINSTANCED_NOT_SUPPORTED + 1 ) ,
873   D3D11_MESSAGE_ID_DRAWINDEXED_POINTLIST_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DRAWINDEXEDINSTANCED_NOT_SUPPORTED_BELOW_9_3 + 1 ) ,
874   D3D11_MESSAGE_ID_SETBLENDSTATE_SAMPLE_MASK_CANNOT_BE_ZERO   = ( D3D11_MESSAGE_ID_DRAWINDEXED_POINTLIST_UNSUPPORTED + 1 ) ,
875   D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_EXCEEDS_FEATURE_LEVEL_DEFINITION   = ( D3D11_MESSAGE_ID_SETBLENDSTATE_SAMPLE_MASK_CANNOT_BE_ZERO + 1 ) ,
876   D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_SINGLE_MIP_LEVEL_DEPTH_STENCIL_SUPPORTED   = ( D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_EXCEEDS_FEATURE_LEVEL_DEFINITION + 1 ) ,
877   D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_NEGATIVESCISSOR   = ( D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_SINGLE_MIP_LEVEL_DEPTH_STENCIL_SUPPORTED + 1 ) ,
878   D3D11_MESSAGE_ID_SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA   = ( D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_NEGATIVESCISSOR + 1 ) ,
879   D3D11_MESSAGE_ID_CREATERESOURCE_NON_POW_2_MIPMAP   = ( D3D11_MESSAGE_ID_SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA + 1 ) ,
880   D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_CREATERESOURCE_NON_POW_2_MIPMAP + 1 ) ,
881   D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_SRGB_MRT   = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_NOT_SUPPORTED + 1 ) ,
882   D3D11_MESSAGE_ID_D3D10L9_MESSAGES_END   = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_SRGB_MRT + 1 ) ,
883   D3D11_MESSAGE_ID_D3D11_MESSAGES_START   = 0x200000,
884   D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_D3D11_MESSAGES_START + 1 ) ,
885   D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS + 1 ) ,
886   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE + 1 ) ,
887   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE + 1 ) ,
888   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS + 1 ) ,
889   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER + 1 ) ,
890   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS + 1 ) ,
891   D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE + 1 ) ,
892   D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_COMMANDLISTFLAGS   = ( D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE + 1 ) ,
893   D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_SINGLETHREADED   = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_COMMANDLISTFLAGS + 1 ) ,
894   D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_SINGLETHREADED + 1 ) ,
895   D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_CALL_RETURN   = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALIDARG_RETURN + 1 ) ,
896   D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_CALL_RETURN + 1 ) ,
897   D3D11_MESSAGE_ID_FINISHDISPLAYLIST_ONIMMEDIATECONTEXT   = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_OUTOFMEMORY_RETURN + 1 ) ,
898   D3D11_MESSAGE_ID_FINISHDISPLAYLIST_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_FINISHDISPLAYLIST_ONIMMEDIATECONTEXT + 1 ) ,
899   D3D11_MESSAGE_ID_FINISHDISPLAYLIST_INVALID_CALL_RETURN   = ( D3D11_MESSAGE_ID_FINISHDISPLAYLIST_OUTOFMEMORY_RETURN + 1 ) ,
900   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM   = ( D3D11_MESSAGE_ID_FINISHDISPLAYLIST_INVALID_CALL_RETURN + 1 ) ,
901   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM + 1 ) ,
902   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES + 1 ) ,
903   D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES + 1 ) ,
904   D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_HAZARD   = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES + 1 ) ,
905   D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_HAZARD + 1 ) ,
906   D3D11_MESSAGE_ID_HSSETSHADERRESOURCES_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_HAZARD + 1 ) ,
907   D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_HSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) ,
908   D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL   = ( D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) ,
909   D3D11_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL + 1 ) ,
910   D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE   = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY + 1 ) ,
911   D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE   = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE + 1 ) ,
912   D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE + 1 ) ,
913   D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE + 1 ) ,
914   D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
915   D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) ,
916   D3D11_MESSAGE_ID_DEVICE_HSSETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
917   D3D11_MESSAGE_ID_DEVICE_HSGETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_HSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
918   D3D11_MESSAGE_ID_DEVICE_HSGETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_HSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
919   D3D11_MESSAGE_ID_DEVICE_HSGETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_HSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
920   D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_HSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
921   D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_HAZARD + 1 ) ,
922   D3D11_MESSAGE_ID_DSSETSHADERRESOURCES_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_HAZARD + 1 ) ,
923   D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_DSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) ,
924   D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL   = ( D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) ,
925   D3D11_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL + 1 ) ,
926   D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE   = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY + 1 ) ,
927   D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE   = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE + 1 ) ,
928   D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE + 1 ) ,
929   D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE + 1 ) ,
930   D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
931   D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) ,
932   D3D11_MESSAGE_ID_DEVICE_DSSETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
933   D3D11_MESSAGE_ID_DEVICE_DSGETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_DSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
934   D3D11_MESSAGE_ID_DEVICE_DSGETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_DSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
935   D3D11_MESSAGE_ID_DEVICE_DSGETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_DSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
936   D3D11_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
937   D3D11_MESSAGE_ID_DEFERRED_CONTEXT_REMOVAL_PROCESS_AT_FAULT   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH + 1 ) ,
938   D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER   = ( D3D11_MESSAGE_ID_DEFERRED_CONTEXT_REMOVAL_PROCESS_AT_FAULT + 1 ) ,
939   D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER + 1 ) ,
940   D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED + 1 ) ,
941   D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE   = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW + 1 ) ,
942   D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE + 1 ) ,
943   D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE + 1 ) ,
944   D3D11_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED   = ( D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS + 1 ) ,
945   D3D11_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN   = ( D3D11_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED + 1 ) ,
946   D3D11_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN + 1 ) ,
947   D3D11_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD   = ( D3D11_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN + 1 ) ,
948   D3D11_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE   = ( D3D11_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD + 1 ) ,
949   D3D11_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED   = ( D3D11_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE + 1 ) ,
950   D3D11_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS   = ( D3D11_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED + 1 ) ,
951   D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS + 1 ) ,
952   D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED + 1 ) ,
953   D3D11_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH + 1 ) ,
954   D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH + 1 ) ,
955   D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH + 1 ) ,
956   D3D11_MESSAGE_ID_CREATE_CONTEXT   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH + 1 ) ,
957   D3D11_MESSAGE_ID_LIVE_CONTEXT   = ( D3D11_MESSAGE_ID_CREATE_CONTEXT + 1 ) ,
958   D3D11_MESSAGE_ID_DESTROY_CONTEXT   = ( D3D11_MESSAGE_ID_LIVE_CONTEXT + 1 ) ,
959   D3D11_MESSAGE_ID_CREATE_BUFFER   = ( D3D11_MESSAGE_ID_DESTROY_CONTEXT + 1 ) ,
960   D3D11_MESSAGE_ID_LIVE_BUFFER   = ( D3D11_MESSAGE_ID_CREATE_BUFFER + 1 ) ,
961   D3D11_MESSAGE_ID_DESTROY_BUFFER   = ( D3D11_MESSAGE_ID_LIVE_BUFFER + 1 ) ,
962   D3D11_MESSAGE_ID_CREATE_TEXTURE1D   = ( D3D11_MESSAGE_ID_DESTROY_BUFFER + 1 ) ,
963   D3D11_MESSAGE_ID_LIVE_TEXTURE1D   = ( D3D11_MESSAGE_ID_CREATE_TEXTURE1D + 1 ) ,
964   D3D11_MESSAGE_ID_DESTROY_TEXTURE1D   = ( D3D11_MESSAGE_ID_LIVE_TEXTURE1D + 1 ) ,
965   D3D11_MESSAGE_ID_CREATE_TEXTURE2D   = ( D3D11_MESSAGE_ID_DESTROY_TEXTURE1D + 1 ) ,
966   D3D11_MESSAGE_ID_LIVE_TEXTURE2D   = ( D3D11_MESSAGE_ID_CREATE_TEXTURE2D + 1 ) ,
967   D3D11_MESSAGE_ID_DESTROY_TEXTURE2D   = ( D3D11_MESSAGE_ID_LIVE_TEXTURE2D + 1 ) ,
968   D3D11_MESSAGE_ID_CREATE_TEXTURE3D   = ( D3D11_MESSAGE_ID_DESTROY_TEXTURE2D + 1 ) ,
969   D3D11_MESSAGE_ID_LIVE_TEXTURE3D   = ( D3D11_MESSAGE_ID_CREATE_TEXTURE3D + 1 ) ,
970   D3D11_MESSAGE_ID_DESTROY_TEXTURE3D   = ( D3D11_MESSAGE_ID_LIVE_TEXTURE3D + 1 ) ,
971   D3D11_MESSAGE_ID_CREATE_SHADERRESOURCEVIEW   = ( D3D11_MESSAGE_ID_DESTROY_TEXTURE3D + 1 ) ,
972   D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW   = ( D3D11_MESSAGE_ID_CREATE_SHADERRESOURCEVIEW + 1 ) ,
973   D3D11_MESSAGE_ID_DESTROY_SHADERRESOURCEVIEW   = ( D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW + 1 ) ,
974   D3D11_MESSAGE_ID_CREATE_RENDERTARGETVIEW   = ( D3D11_MESSAGE_ID_DESTROY_SHADERRESOURCEVIEW + 1 ) ,
975   D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW   = ( D3D11_MESSAGE_ID_CREATE_RENDERTARGETVIEW + 1 ) ,
976   D3D11_MESSAGE_ID_DESTROY_RENDERTARGETVIEW   = ( D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW + 1 ) ,
977   D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILVIEW   = ( D3D11_MESSAGE_ID_DESTROY_RENDERTARGETVIEW + 1 ) ,
978   D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW   = ( D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILVIEW + 1 ) ,
979   D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILVIEW   = ( D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW + 1 ) ,
980   D3D11_MESSAGE_ID_CREATE_VERTEXSHADER   = ( D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILVIEW + 1 ) ,
981   D3D11_MESSAGE_ID_LIVE_VERTEXSHADER   = ( D3D11_MESSAGE_ID_CREATE_VERTEXSHADER + 1 ) ,
982   D3D11_MESSAGE_ID_DESTROY_VERTEXSHADER   = ( D3D11_MESSAGE_ID_LIVE_VERTEXSHADER + 1 ) ,
983   D3D11_MESSAGE_ID_CREATE_HULLSHADER   = ( D3D11_MESSAGE_ID_DESTROY_VERTEXSHADER + 1 ) ,
984   D3D11_MESSAGE_ID_LIVE_HULLSHADER   = ( D3D11_MESSAGE_ID_CREATE_HULLSHADER + 1 ) ,
985   D3D11_MESSAGE_ID_DESTROY_HULLSHADER   = ( D3D11_MESSAGE_ID_LIVE_HULLSHADER + 1 ) ,
986   D3D11_MESSAGE_ID_CREATE_DOMAINSHADER   = ( D3D11_MESSAGE_ID_DESTROY_HULLSHADER + 1 ) ,
987   D3D11_MESSAGE_ID_LIVE_DOMAINSHADER   = ( D3D11_MESSAGE_ID_CREATE_DOMAINSHADER + 1 ) ,
988   D3D11_MESSAGE_ID_DESTROY_DOMAINSHADER   = ( D3D11_MESSAGE_ID_LIVE_DOMAINSHADER + 1 ) ,
989   D3D11_MESSAGE_ID_CREATE_GEOMETRYSHADER   = ( D3D11_MESSAGE_ID_DESTROY_DOMAINSHADER + 1 ) ,
990   D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER   = ( D3D11_MESSAGE_ID_CREATE_GEOMETRYSHADER + 1 ) ,
991   D3D11_MESSAGE_ID_DESTROY_GEOMETRYSHADER   = ( D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER + 1 ) ,
992   D3D11_MESSAGE_ID_CREATE_PIXELSHADER   = ( D3D11_MESSAGE_ID_DESTROY_GEOMETRYSHADER + 1 ) ,
993   D3D11_MESSAGE_ID_LIVE_PIXELSHADER   = ( D3D11_MESSAGE_ID_CREATE_PIXELSHADER + 1 ) ,
994   D3D11_MESSAGE_ID_DESTROY_PIXELSHADER   = ( D3D11_MESSAGE_ID_LIVE_PIXELSHADER + 1 ) ,
995   D3D11_MESSAGE_ID_CREATE_INPUTLAYOUT   = ( D3D11_MESSAGE_ID_DESTROY_PIXELSHADER + 1 ) ,
996   D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT   = ( D3D11_MESSAGE_ID_CREATE_INPUTLAYOUT + 1 ) ,
997   D3D11_MESSAGE_ID_DESTROY_INPUTLAYOUT   = ( D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT + 1 ) ,
998   D3D11_MESSAGE_ID_CREATE_SAMPLER   = ( D3D11_MESSAGE_ID_DESTROY_INPUTLAYOUT + 1 ) ,
999   D3D11_MESSAGE_ID_LIVE_SAMPLER   = ( D3D11_MESSAGE_ID_CREATE_SAMPLER + 1 ) ,
1000   D3D11_MESSAGE_ID_DESTROY_SAMPLER   = ( D3D11_MESSAGE_ID_LIVE_SAMPLER + 1 ) ,
1001   D3D11_MESSAGE_ID_CREATE_BLENDSTATE   = ( D3D11_MESSAGE_ID_DESTROY_SAMPLER + 1 ) ,
1002   D3D11_MESSAGE_ID_LIVE_BLENDSTATE   = ( D3D11_MESSAGE_ID_CREATE_BLENDSTATE + 1 ) ,
1003   D3D11_MESSAGE_ID_DESTROY_BLENDSTATE   = ( D3D11_MESSAGE_ID_LIVE_BLENDSTATE + 1 ) ,
1004   D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILSTATE   = ( D3D11_MESSAGE_ID_DESTROY_BLENDSTATE + 1 ) ,
1005   D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE   = ( D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILSTATE + 1 ) ,
1006   D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILSTATE   = ( D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE + 1 ) ,
1007   D3D11_MESSAGE_ID_CREATE_RASTERIZERSTATE   = ( D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILSTATE + 1 ) ,
1008   D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE   = ( D3D11_MESSAGE_ID_CREATE_RASTERIZERSTATE + 1 ) ,
1009   D3D11_MESSAGE_ID_DESTROY_RASTERIZERSTATE   = ( D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE + 1 ) ,
1010   D3D11_MESSAGE_ID_CREATE_QUERY   = ( D3D11_MESSAGE_ID_DESTROY_RASTERIZERSTATE + 1 ) ,
1011   D3D11_MESSAGE_ID_LIVE_QUERY   = ( D3D11_MESSAGE_ID_CREATE_QUERY + 1 ) ,
1012   D3D11_MESSAGE_ID_DESTROY_QUERY   = ( D3D11_MESSAGE_ID_LIVE_QUERY + 1 ) ,
1013   D3D11_MESSAGE_ID_CREATE_PREDICATE   = ( D3D11_MESSAGE_ID_DESTROY_QUERY + 1 ) ,
1014   D3D11_MESSAGE_ID_LIVE_PREDICATE   = ( D3D11_MESSAGE_ID_CREATE_PREDICATE + 1 ) ,
1015   D3D11_MESSAGE_ID_DESTROY_PREDICATE   = ( D3D11_MESSAGE_ID_LIVE_PREDICATE + 1 ) ,
1016   D3D11_MESSAGE_ID_CREATE_COUNTER   = ( D3D11_MESSAGE_ID_DESTROY_PREDICATE + 1 ) ,
1017   D3D11_MESSAGE_ID_LIVE_COUNTER   = ( D3D11_MESSAGE_ID_CREATE_COUNTER + 1 ) ,
1018   D3D11_MESSAGE_ID_DESTROY_COUNTER   = ( D3D11_MESSAGE_ID_LIVE_COUNTER + 1 ) ,
1019   D3D11_MESSAGE_ID_CREATE_COMMANDLIST   = ( D3D11_MESSAGE_ID_DESTROY_COUNTER + 1 ) ,
1020   D3D11_MESSAGE_ID_LIVE_COMMANDLIST   = ( D3D11_MESSAGE_ID_CREATE_COMMANDLIST + 1 ) ,
1021   D3D11_MESSAGE_ID_DESTROY_COMMANDLIST   = ( D3D11_MESSAGE_ID_LIVE_COMMANDLIST + 1 ) ,
1022   D3D11_MESSAGE_ID_CREATE_CLASSINSTANCE   = ( D3D11_MESSAGE_ID_DESTROY_COMMANDLIST + 1 ) ,
1023   D3D11_MESSAGE_ID_LIVE_CLASSINSTANCE   = ( D3D11_MESSAGE_ID_CREATE_CLASSINSTANCE + 1 ) ,
1024   D3D11_MESSAGE_ID_DESTROY_CLASSINSTANCE   = ( D3D11_MESSAGE_ID_LIVE_CLASSINSTANCE + 1 ) ,
1025   D3D11_MESSAGE_ID_CREATE_CLASSLINKAGE   = ( D3D11_MESSAGE_ID_DESTROY_CLASSINSTANCE + 1 ) ,
1026   D3D11_MESSAGE_ID_LIVE_CLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATE_CLASSLINKAGE + 1 ) ,
1027   D3D11_MESSAGE_ID_DESTROY_CLASSLINKAGE   = ( D3D11_MESSAGE_ID_LIVE_CLASSLINKAGE + 1 ) ,
1028   D3D11_MESSAGE_ID_LIVE_DEVICE   = ( D3D11_MESSAGE_ID_DESTROY_CLASSLINKAGE + 1 ) ,
1029   D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY   = ( D3D11_MESSAGE_ID_LIVE_DEVICE + 1 ) ,
1030   D3D11_MESSAGE_ID_CREATE_COMPUTESHADER   = ( D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY + 1 ) ,
1031   D3D11_MESSAGE_ID_LIVE_COMPUTESHADER   = ( D3D11_MESSAGE_ID_CREATE_COMPUTESHADER + 1 ) ,
1032   D3D11_MESSAGE_ID_DESTROY_COMPUTESHADER   = ( D3D11_MESSAGE_ID_LIVE_COMPUTESHADER + 1 ) ,
1033   D3D11_MESSAGE_ID_CREATE_UNORDEREDACCESSVIEW   = ( D3D11_MESSAGE_ID_DESTROY_COMPUTESHADER + 1 ) ,
1034   D3D11_MESSAGE_ID_LIVE_UNORDEREDACCESSVIEW   = ( D3D11_MESSAGE_ID_CREATE_UNORDEREDACCESSVIEW + 1 ) ,
1035   D3D11_MESSAGE_ID_DESTROY_UNORDEREDACCESSVIEW   = ( D3D11_MESSAGE_ID_LIVE_UNORDEREDACCESSVIEW + 1 ) ,
1036   D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACES_FEATURELEVEL   = ( D3D11_MESSAGE_ID_DESTROY_UNORDEREDACCESSVIEW + 1 ) ,
1037   D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACE_COUNT_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACES_FEATURELEVEL + 1 ) ,
1038   D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACE_COUNT_MISMATCH + 1 ) ,
1039   D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_INDEX   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE + 1 ) ,
1040   D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_TYPE   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_INDEX + 1 ) ,
1041   D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_DATA   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_TYPE + 1 ) ,
1042   D3D11_MESSAGE_ID_DEVICE_SETSHADER_UNBOUND_INSTANCE_DATA   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_DATA + 1 ) ,
1043   D3D11_MESSAGE_ID_DEVICE_SETSHADER_INSTANCE_DATA_BINDINGS   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_UNBOUND_INSTANCE_DATA + 1 ) ,
1044   D3D11_MESSAGE_ID_DEVICE_CREATESHADER_CLASSLINKAGE_FULL   = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INSTANCE_DATA_BINDINGS + 1 ) ,
1045   D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE   = ( D3D11_MESSAGE_ID_DEVICE_CREATESHADER_CLASSLINKAGE_FULL + 1 ) ,
1046   D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE   = ( D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE + 1 ) ,
1047   D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE + 1 ) ,
1048   D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN + 1 ) ,
1049   D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_HAZARD   = ( D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_HAZARD + 1 ) ,
1050   D3D11_MESSAGE_ID_CSSETSHADERRESOURCES_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_HAZARD + 1 ) ,
1051   D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_CSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) ,
1052   D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL   = ( D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) ,
1053   D3D11_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY   = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL + 1 ) ,
1054   D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE   = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY + 1 ) ,
1055   D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERTYPE   = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE + 1 ) ,
1056   D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE   = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERTYPE + 1 ) ,
1057   D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE + 1 ) ,
1058   D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER   = ( D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
1059   D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) ,
1060   D3D11_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
1061   D3D11_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
1062   D3D11_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) ,
1063   D3D11_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) ,
1064   D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) ,
1065   D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) ,
1066   D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) ,
1067   D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) ,
1068   D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) ,
1069   D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) ,
1070   D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) ,
1071   D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE   = ( D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) ,
1072   D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE + 1 ) ,
1073   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE   = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS + 1 ) ,
1074   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE + 1 ) ,
1075   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC + 1 ) ,
1076   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT + 1 ) ,
1077   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS + 1 ) ,
1078   D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_HAZARD   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT + 1 ) ,
1079   D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS   = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_HAZARD + 1 ) ,
1080   D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP   = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS + 1 ) ,
1081   D3D11_MESSAGE_ID_CSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP + 1 ) ,
1082   D3D11_MESSAGE_ID_PSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_CSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT + 1 ) ,
1083   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN   = ( D3D11_MESSAGE_ID_PSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT + 1 ) ,
1084   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN + 1 ) ,
1085   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN + 1 ) ,
1086   D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_HAZARD   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_TOOMANYOBJECTS + 1 ) ,
1087   D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH   = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_HAZARD + 1 ) ,
1088   D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH + 1 ) ,
1089   D3D11_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY   = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY + 1 ) ,
1090   D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS   = ( D3D11_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY + 1 ) ,
1091   D3D11_MESSAGE_ID_CREATESHADERRESESOURCEVIEW_TOOMANYOBJECTS   = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS + 1 ) ,
1092   D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER   = ( D3D11_MESSAGE_ID_CREATESHADERRESESOURCEVIEW_TOOMANYOBJECTS + 1 ) ,
1093   D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER + 1 ) ,
1094   D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED + 1 ) ,
1095   D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDCONTEXT   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW + 1 ) ,
1096   D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDRESOURCE   = ( D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDCONTEXT + 1 ) ,
1097   D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDMINLOD   = ( D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDRESOURCE + 1 ) ,
1098   D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDCONTEXT   = ( D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDMINLOD + 1 ) ,
1099   D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDRESOURCE   = ( D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDCONTEXT + 1 ) ,
1100   D3D11_MESSAGE_ID_OMSETDEPTHSTENCIL_UNBINDDELETINGOBJECT   = ( D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDRESOURCE + 1 ) ,
1101   D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY   = ( D3D11_MESSAGE_ID_OMSETDEPTHSTENCIL_UNBINDDELETINGOBJECT + 1 ) ,
1102   D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY   = ( D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY + 1 ) ,
1103   D3D11_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED   = ( D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY + 1 ) ,
1104   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH   = ( D3D11_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED + 1 ) ,
1105   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH + 1 ) ,
1106   D3D11_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET + 1 ) ,
1107   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP + 1 ) ,
1108   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH + 1 ) ,
1109   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED + 1 ) ,
1110   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED + 1 ) ,
1111   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH + 1 ) ,
1112   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH + 1 ) ,
1113   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED + 1 ) ,
1114   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED + 1 ) ,
1115   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED + 1 ) ,
1116   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED + 1 ) ,
1117   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED + 1 ) ,
1118   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED + 1 ) ,
1119   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED + 1 ) ,
1120   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED + 1 ) ,
1121   D3D11_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED + 1 ) ,
1122   D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED + 1 ) ,
1123   D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW + 1 ) ,
1124   D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO + 1 ) ,
1125   D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH   = ( D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH + 1 ) ,
1126   D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH + 1 ) ,
1127   D3D11_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED + 1 ) ,
1128   D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED + 1 ) ,
1129   D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET   = ( D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED + 1 ) ,
1130   D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET   = ( D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET + 1 ) ,
1131   D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE   = ( D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET + 1 ) ,
1132   D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE   = ( D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE + 1 ) ,
1133   D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED   = ( D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE + 1 ) ,
1134   D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDVIEW   = ( D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED + 1 ) ,
1135   D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDOFFSET   = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDVIEW + 1 ) ,
1136   D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_TOOMANYVIEWS   = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDOFFSET + 1 ) ,
1137   D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT   = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_TOOMANYVIEWS + 1 ) ,
1138   D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED   = ( D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT + 1 ) ,
1139   D3D11_MESSAGE_ID_REF_WARNING   = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED + 1 ) ,
1140   D3D11_MESSAGE_ID_D3D11_MESSAGES_END   = ( D3D11_MESSAGE_ID_REF_WARNING + 1 )
1141    }    D3D11_MESSAGE_ID;
1142
1143typedef struct D3D11_MESSAGE
1144    {
1145    D3D11_MESSAGE_CATEGORY Category;
1146    D3D11_MESSAGE_SEVERITY Severity;
1147    D3D11_MESSAGE_ID ID;
1148    const char *pDescription;
1149    SIZE_T DescriptionByteLength;
1150    }    D3D11_MESSAGE;
1151
1152typedef struct D3D11_INFO_QUEUE_FILTER_DESC
1153    {
1154    UINT NumCategories;
1155    D3D11_MESSAGE_CATEGORY *pCategoryList;
1156    UINT NumSeverities;
1157    D3D11_MESSAGE_SEVERITY *pSeverityList;
1158    UINT NumIDs;
1159    D3D11_MESSAGE_ID *pIDList;
1160    }    D3D11_INFO_QUEUE_FILTER_DESC;
1161
1162typedef struct D3D11_INFO_QUEUE_FILTER
1163    {
1164    D3D11_INFO_QUEUE_FILTER_DESC AllowList;
1165    D3D11_INFO_QUEUE_FILTER_DESC DenyList;
1166    }    D3D11_INFO_QUEUE_FILTER;
1167
1168#define D3D11_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024
1169
1170
1171extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0002_v0_0_c_ifspec;
1172extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0002_v0_0_s_ifspec;
1173
1174#ifndef __ID3D11InfoQueue_INTERFACE_DEFINED__
1175#define __ID3D11InfoQueue_INTERFACE_DEFINED__
1176
1177/* interface ID3D11InfoQueue */
1178/* [unique][local][object][uuid] */
1179
1180
1181EXTERN_C const IID IID_ID3D11InfoQueue;
1182
1183#if defined(__cplusplus) && !defined(CINTERFACE)
1184   
1185    MIDL_INTERFACE("6543dbb6-1b48-42f5-ab82-e97ec74326f6")
1186    ID3D11InfoQueue : public IUnknown
1187    {
1188    public:
1189        virtual HRESULT STDMETHODCALLTYPE SetMessageCountLimit(
1190            /* [annotation] */
1191            __in  UINT64 MessageCountLimit) = 0;
1192       
1193        virtual void STDMETHODCALLTYPE ClearStoredMessages( void) = 0;
1194       
1195        virtual HRESULT STDMETHODCALLTYPE GetMessage(
1196            /* [annotation] */
1197            __in  UINT64 MessageIndex,
1198            /* [annotation] */
1199            __out_bcount_opt(*pMessageByteLength)  D3D11_MESSAGE *pMessage,
1200            /* [annotation] */
1201            __inout  SIZE_T *pMessageByteLength) = 0;
1202       
1203        virtual UINT64 STDMETHODCALLTYPE GetNumMessagesAllowedByStorageFilter( void) = 0;
1204       
1205        virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDeniedByStorageFilter( void) = 0;
1206       
1207        virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessages( void) = 0;
1208       
1209        virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessagesAllowedByRetrievalFilter( void) = 0;
1210       
1211        virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDiscardedByMessageCountLimit( void) = 0;
1212       
1213        virtual UINT64 STDMETHODCALLTYPE GetMessageCountLimit( void) = 0;
1214       
1215        virtual HRESULT STDMETHODCALLTYPE AddStorageFilterEntries(
1216            /* [annotation] */
1217            __in  D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
1218       
1219        virtual HRESULT STDMETHODCALLTYPE GetStorageFilter(
1220            /* [annotation] */
1221            __out_bcount_opt(*pFilterByteLength)  D3D11_INFO_QUEUE_FILTER *pFilter,
1222            /* [annotation] */
1223            __inout  SIZE_T *pFilterByteLength) = 0;
1224       
1225        virtual void STDMETHODCALLTYPE ClearStorageFilter( void) = 0;
1226       
1227        virtual HRESULT STDMETHODCALLTYPE PushEmptyStorageFilter( void) = 0;
1228       
1229        virtual HRESULT STDMETHODCALLTYPE PushCopyOfStorageFilter( void) = 0;
1230       
1231        virtual HRESULT STDMETHODCALLTYPE PushStorageFilter(
1232            /* [annotation] */
1233            __in  D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
1234       
1235        virtual void STDMETHODCALLTYPE PopStorageFilter( void) = 0;
1236       
1237        virtual UINT STDMETHODCALLTYPE GetStorageFilterStackSize( void) = 0;
1238       
1239        virtual HRESULT STDMETHODCALLTYPE AddRetrievalFilterEntries(
1240            /* [annotation] */
1241            __in  D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
1242       
1243        virtual HRESULT STDMETHODCALLTYPE GetRetrievalFilter(
1244            /* [annotation] */
1245            __out_bcount_opt(*pFilterByteLength)  D3D11_INFO_QUEUE_FILTER *pFilter,
1246            /* [annotation] */
1247            __inout  SIZE_T *pFilterByteLength) = 0;
1248       
1249        virtual void STDMETHODCALLTYPE ClearRetrievalFilter( void) = 0;
1250       
1251        virtual HRESULT STDMETHODCALLTYPE PushEmptyRetrievalFilter( void) = 0;
1252       
1253        virtual HRESULT STDMETHODCALLTYPE PushCopyOfRetrievalFilter( void) = 0;
1254       
1255        virtual HRESULT STDMETHODCALLTYPE PushRetrievalFilter(
1256            /* [annotation] */
1257            __in  D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
1258       
1259        virtual void STDMETHODCALLTYPE PopRetrievalFilter( void) = 0;
1260       
1261        virtual UINT STDMETHODCALLTYPE GetRetrievalFilterStackSize( void) = 0;
1262       
1263        virtual HRESULT STDMETHODCALLTYPE AddMessage(
1264            /* [annotation] */
1265            __in  D3D11_MESSAGE_CATEGORY Category,
1266            /* [annotation] */
1267            __in  D3D11_MESSAGE_SEVERITY Severity,
1268            /* [annotation] */
1269            __in  D3D11_MESSAGE_ID ID,
1270            /* [annotation] */
1271            __in  LPCSTR pDescription) = 0;
1272       
1273        virtual HRESULT STDMETHODCALLTYPE AddApplicationMessage(
1274            /* [annotation] */
1275            __in  D3D11_MESSAGE_SEVERITY Severity,
1276            /* [annotation] */
1277            __in  LPCSTR pDescription) = 0;
1278       
1279        virtual HRESULT STDMETHODCALLTYPE SetBreakOnCategory(
1280            /* [annotation] */
1281            __in  D3D11_MESSAGE_CATEGORY Category,
1282            /* [annotation] */
1283            __in  BOOL bEnable) = 0;
1284       
1285        virtual HRESULT STDMETHODCALLTYPE SetBreakOnSeverity(
1286            /* [annotation] */
1287            __in  D3D11_MESSAGE_SEVERITY Severity,
1288            /* [annotation] */
1289            __in  BOOL bEnable) = 0;
1290       
1291        virtual HRESULT STDMETHODCALLTYPE SetBreakOnID(
1292            /* [annotation] */
1293            __in  D3D11_MESSAGE_ID ID,
1294            /* [annotation] */
1295            __in  BOOL bEnable) = 0;
1296       
1297        virtual BOOL STDMETHODCALLTYPE GetBreakOnCategory(
1298            /* [annotation] */
1299            __in  D3D11_MESSAGE_CATEGORY Category) = 0;
1300       
1301        virtual BOOL STDMETHODCALLTYPE GetBreakOnSeverity(
1302            /* [annotation] */
1303            __in  D3D11_MESSAGE_SEVERITY Severity) = 0;
1304       
1305        virtual BOOL STDMETHODCALLTYPE GetBreakOnID(
1306            /* [annotation] */
1307            __in  D3D11_MESSAGE_ID ID) = 0;
1308       
1309        virtual void STDMETHODCALLTYPE SetMuteDebugOutput(
1310            /* [annotation] */
1311            __in  BOOL bMute) = 0;
1312       
1313        virtual BOOL STDMETHODCALLTYPE GetMuteDebugOutput( void) = 0;
1314       
1315    };
1316   
1317#else    /* C style interface */
1318
1319    typedef struct ID3D11InfoQueueVtbl
1320    {
1321        BEGIN_INTERFACE
1322       
1323        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1324            ID3D11InfoQueue * This,
1325            /* [in] */ REFIID riid,
1326            /* [annotation][iid_is][out] */
1327            __RPC__deref_out  void **ppvObject);
1328       
1329        ULONG ( STDMETHODCALLTYPE *AddRef )(
1330            ID3D11InfoQueue * This);
1331       
1332        ULONG ( STDMETHODCALLTYPE *Release )(
1333            ID3D11InfoQueue * This);
1334       
1335        HRESULT ( STDMETHODCALLTYPE *SetMessageCountLimit )(
1336            ID3D11InfoQueue * This,
1337            /* [annotation] */
1338            __in  UINT64 MessageCountLimit);
1339       
1340        void ( STDMETHODCALLTYPE *ClearStoredMessages )(
1341            ID3D11InfoQueue * This);
1342       
1343        HRESULT ( STDMETHODCALLTYPE *GetMessage )(
1344            ID3D11InfoQueue * This,
1345            /* [annotation] */
1346            __in  UINT64 MessageIndex,
1347            /* [annotation] */
1348            __out_bcount_opt(*pMessageByteLength)  D3D11_MESSAGE *pMessage,
1349            /* [annotation] */
1350            __inout  SIZE_T *pMessageByteLength);
1351       
1352        UINT64 ( STDMETHODCALLTYPE *GetNumMessagesAllowedByStorageFilter )(
1353            ID3D11InfoQueue * This);
1354       
1355        UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDeniedByStorageFilter )(
1356            ID3D11InfoQueue * This);
1357       
1358        UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessages )(
1359            ID3D11InfoQueue * This);
1360       
1361        UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessagesAllowedByRetrievalFilter )(
1362            ID3D11InfoQueue * This);
1363       
1364        UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDiscardedByMessageCountLimit )(
1365            ID3D11InfoQueue * This);
1366       
1367        UINT64 ( STDMETHODCALLTYPE *GetMessageCountLimit )(
1368            ID3D11InfoQueue * This);
1369       
1370        HRESULT ( STDMETHODCALLTYPE *AddStorageFilterEntries )(
1371            ID3D11InfoQueue * This,
1372            /* [annotation] */
1373            __in  D3D11_INFO_QUEUE_FILTER *pFilter);
1374       
1375        HRESULT ( STDMETHODCALLTYPE *GetStorageFilter )(
1376            ID3D11InfoQueue * This,
1377            /* [annotation] */
1378            __out_bcount_opt(*pFilterByteLength)  D3D11_INFO_QUEUE_FILTER *pFilter,
1379            /* [annotation] */
1380            __inout  SIZE_T *pFilterByteLength);
1381       
1382        void ( STDMETHODCALLTYPE *ClearStorageFilter )(
1383            ID3D11InfoQueue * This);
1384       
1385        HRESULT ( STDMETHODCALLTYPE *PushEmptyStorageFilter )(
1386            ID3D11InfoQueue * This);
1387       
1388        HRESULT ( STDMETHODCALLTYPE *PushCopyOfStorageFilter )(
1389            ID3D11InfoQueue * This);
1390       
1391        HRESULT ( STDMETHODCALLTYPE *PushStorageFilter )(
1392            ID3D11InfoQueue * This,
1393            /* [annotation] */
1394            __in  D3D11_INFO_QUEUE_FILTER *pFilter);
1395       
1396        void ( STDMETHODCALLTYPE *PopStorageFilter )(
1397            ID3D11InfoQueue * This);
1398       
1399        UINT ( STDMETHODCALLTYPE *GetStorageFilterStackSize )(
1400            ID3D11InfoQueue * This);
1401       
1402        HRESULT ( STDMETHODCALLTYPE *AddRetrievalFilterEntries )(
1403            ID3D11InfoQueue * This,
1404            /* [annotation] */
1405            __in  D3D11_INFO_QUEUE_FILTER *pFilter);
1406       
1407        HRESULT ( STDMETHODCALLTYPE *GetRetrievalFilter )(
1408            ID3D11InfoQueue * This,
1409            /* [annotation] */
1410            __out_bcount_opt(*pFilterByteLength)  D3D11_INFO_QUEUE_FILTER *pFilter,
1411            /* [annotation] */
1412            __inout  SIZE_T *pFilterByteLength);
1413       
1414        void ( STDMETHODCALLTYPE *ClearRetrievalFilter )(
1415            ID3D11InfoQueue * This);
1416       
1417        HRESULT ( STDMETHODCALLTYPE *PushEmptyRetrievalFilter )(
1418            ID3D11InfoQueue * This);
1419       
1420        HRESULT ( STDMETHODCALLTYPE *PushCopyOfRetrievalFilter )(
1421            ID3D11InfoQueue * This);
1422       
1423        HRESULT ( STDMETHODCALLTYPE *PushRetrievalFilter )(
1424            ID3D11InfoQueue * This,
1425            /* [annotation] */
1426            __in  D3D11_INFO_QUEUE_FILTER *pFilter);
1427       
1428        void ( STDMETHODCALLTYPE *PopRetrievalFilter )(
1429            ID3D11InfoQueue * This);
1430       
1431        UINT ( STDMETHODCALLTYPE *GetRetrievalFilterStackSize )(
1432            ID3D11InfoQueue * This);
1433       
1434        HRESULT ( STDMETHODCALLTYPE *AddMessage )(
1435            ID3D11InfoQueue * This,
1436            /* [annotation] */
1437            __in  D3D11_MESSAGE_CATEGORY Category,
1438            /* [annotation] */
1439            __in  D3D11_MESSAGE_SEVERITY Severity,
1440            /* [annotation] */
1441            __in  D3D11_MESSAGE_ID ID,
1442            /* [annotation] */
1443            __in  LPCSTR pDescription);
1444       
1445        HRESULT ( STDMETHODCALLTYPE *AddApplicationMessage )(
1446            ID3D11InfoQueue * This,
1447            /* [annotation] */
1448            __in  D3D11_MESSAGE_SEVERITY Severity,
1449            /* [annotation] */
1450            __in  LPCSTR pDescription);
1451       
1452        HRESULT ( STDMETHODCALLTYPE *SetBreakOnCategory )(
1453            ID3D11InfoQueue * This,
1454            /* [annotation] */
1455            __in  D3D11_MESSAGE_CATEGORY Category,
1456            /* [annotation] */
1457            __in  BOOL bEnable);
1458       
1459        HRESULT ( STDMETHODCALLTYPE *SetBreakOnSeverity )(
1460            ID3D11InfoQueue * This,
1461            /* [annotation] */
1462            __in  D3D11_MESSAGE_SEVERITY Severity,
1463            /* [annotation] */
1464            __in  BOOL bEnable);
1465       
1466        HRESULT ( STDMETHODCALLTYPE *SetBreakOnID )(
1467            ID3D11InfoQueue * This,
1468            /* [annotation] */
1469            __in  D3D11_MESSAGE_ID ID,
1470            /* [annotation] */
1471            __in  BOOL bEnable);
1472       
1473        BOOL ( STDMETHODCALLTYPE *GetBreakOnCategory )(
1474            ID3D11InfoQueue * This,
1475            /* [annotation] */
1476            __in  D3D11_MESSAGE_CATEGORY Category);
1477       
1478        BOOL ( STDMETHODCALLTYPE *GetBreakOnSeverity )(
1479            ID3D11InfoQueue * This,
1480            /* [annotation] */
1481            __in  D3D11_MESSAGE_SEVERITY Severity);
1482       
1483        BOOL ( STDMETHODCALLTYPE *GetBreakOnID )(
1484            ID3D11InfoQueue * This,
1485            /* [annotation] */
1486            __in  D3D11_MESSAGE_ID ID);
1487       
1488        void ( STDMETHODCALLTYPE *SetMuteDebugOutput )(
1489            ID3D11InfoQueue * This,
1490            /* [annotation] */
1491            __in  BOOL bMute);
1492       
1493        BOOL ( STDMETHODCALLTYPE *GetMuteDebugOutput )(
1494            ID3D11InfoQueue * This);
1495       
1496        END_INTERFACE
1497    } ID3D11InfoQueueVtbl;
1498
1499    interface ID3D11InfoQueue
1500    {
1501        CONST_VTBL struct ID3D11InfoQueueVtbl *lpVtbl;
1502    };
1503
1504   
1505
1506#ifdef COBJMACROS
1507
1508
1509#define ID3D11InfoQueue_QueryInterface(This,riid,ppvObject)   \
1510    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1511
1512#define ID3D11InfoQueue_AddRef(This)   \
1513    ( (This)->lpVtbl -> AddRef(This) )
1514
1515#define ID3D11InfoQueue_Release(This)   \
1516    ( (This)->lpVtbl -> Release(This) )
1517
1518
1519#define ID3D11InfoQueue_SetMessageCountLimit(This,MessageCountLimit)   \
1520    ( (This)->lpVtbl -> SetMessageCountLimit(This,MessageCountLimit) )
1521
1522#define ID3D11InfoQueue_ClearStoredMessages(This)   \
1523    ( (This)->lpVtbl -> ClearStoredMessages(This) )
1524
1525#define ID3D11InfoQueue_GetMessage(This,MessageIndex,pMessage,pMessageByteLength)   \
1526    ( (This)->lpVtbl -> GetMessage(This,MessageIndex,pMessage,pMessageByteLength) )
1527
1528#define ID3D11InfoQueue_GetNumMessagesAllowedByStorageFilter(This)   \
1529    ( (This)->lpVtbl -> GetNumMessagesAllowedByStorageFilter(This) )
1530
1531#define ID3D11InfoQueue_GetNumMessagesDeniedByStorageFilter(This)   \
1532    ( (This)->lpVtbl -> GetNumMessagesDeniedByStorageFilter(This) )
1533
1534#define ID3D11InfoQueue_GetNumStoredMessages(This)   \
1535    ( (This)->lpVtbl -> GetNumStoredMessages(This) )
1536
1537#define ID3D11InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(This)   \
1538    ( (This)->lpVtbl -> GetNumStoredMessagesAllowedByRetrievalFilter(This) )
1539
1540#define ID3D11InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(This)   \
1541    ( (This)->lpVtbl -> GetNumMessagesDiscardedByMessageCountLimit(This) )
1542
1543#define ID3D11InfoQueue_GetMessageCountLimit(This)   \
1544    ( (This)->lpVtbl -> GetMessageCountLimit(This) )
1545
1546#define ID3D11InfoQueue_AddStorageFilterEntries(This,pFilter)   \
1547    ( (This)->lpVtbl -> AddStorageFilterEntries(This,pFilter) )
1548
1549#define ID3D11InfoQueue_GetStorageFilter(This,pFilter,pFilterByteLength)   \
1550    ( (This)->lpVtbl -> GetStorageFilter(This,pFilter,pFilterByteLength) )
1551
1552#define ID3D11InfoQueue_ClearStorageFilter(This)   \
1553    ( (This)->lpVtbl -> ClearStorageFilter(This) )
1554
1555#define ID3D11InfoQueue_PushEmptyStorageFilter(This)   \
1556    ( (This)->lpVtbl -> PushEmptyStorageFilter(This) )
1557
1558#define ID3D11InfoQueue_PushCopyOfStorageFilter(This)   \
1559    ( (This)->lpVtbl -> PushCopyOfStorageFilter(This) )
1560
1561#define ID3D11InfoQueue_PushStorageFilter(This,pFilter)   \
1562    ( (This)->lpVtbl -> PushStorageFilter(This,pFilter) )
1563
1564#define ID3D11InfoQueue_PopStorageFilter(This)   \
1565    ( (This)->lpVtbl -> PopStorageFilter(This) )
1566
1567#define ID3D11InfoQueue_GetStorageFilterStackSize(This)   \
1568    ( (This)->lpVtbl -> GetStorageFilterStackSize(This) )
1569
1570#define ID3D11InfoQueue_AddRetrievalFilterEntries(This,pFilter)   \
1571    ( (This)->lpVtbl -> AddRetrievalFilterEntries(This,pFilter) )
1572
1573#define ID3D11InfoQueue_GetRetrievalFilter(This,pFilter,pFilterByteLength)   \
1574    ( (This)->lpVtbl -> GetRetrievalFilter(This,pFilter,pFilterByteLength) )
1575
1576#define ID3D11InfoQueue_ClearRetrievalFilter(This)   \
1577    ( (This)->lpVtbl -> ClearRetrievalFilter(This) )
1578
1579#define ID3D11InfoQueue_PushEmptyRetrievalFilter(This)   \
1580    ( (This)->lpVtbl -> PushEmptyRetrievalFilter(This) )
1581
1582#define ID3D11InfoQueue_PushCopyOfRetrievalFilter(This)   \
1583    ( (This)->lpVtbl -> PushCopyOfRetrievalFilter(This) )
1584
1585#define ID3D11InfoQueue_PushRetrievalFilter(This,pFilter)   \
1586    ( (This)->lpVtbl -> PushRetrievalFilter(This,pFilter) )
1587
1588#define ID3D11InfoQueue_PopRetrievalFilter(This)   \
1589    ( (This)->lpVtbl -> PopRetrievalFilter(This) )
1590
1591#define ID3D11InfoQueue_GetRetrievalFilterStackSize(This)   \
1592    ( (This)->lpVtbl -> GetRetrievalFilterStackSize(This) )
1593
1594#define ID3D11InfoQueue_AddMessage(This,Category,Severity,ID,pDescription)   \
1595    ( (This)->lpVtbl -> AddMessage(This,Category,Severity,ID,pDescription) )
1596
1597#define ID3D11InfoQueue_AddApplicationMessage(This,Severity,pDescription)   \
1598    ( (This)->lpVtbl -> AddApplicationMessage(This,Severity,pDescription) )
1599
1600#define ID3D11InfoQueue_SetBreakOnCategory(This,Category,bEnable)   \
1601    ( (This)->lpVtbl -> SetBreakOnCategory(This,Category,bEnable) )
1602
1603#define ID3D11InfoQueue_SetBreakOnSeverity(This,Severity,bEnable)   \
1604    ( (This)->lpVtbl -> SetBreakOnSeverity(This,Severity,bEnable) )
1605
1606#define ID3D11InfoQueue_SetBreakOnID(This,ID,bEnable)   \
1607    ( (This)->lpVtbl -> SetBreakOnID(This,ID,bEnable) )
1608
1609#define ID3D11InfoQueue_GetBreakOnCategory(This,Category)   \
1610    ( (This)->lpVtbl -> GetBreakOnCategory(This,Category) )
1611
1612#define ID3D11InfoQueue_GetBreakOnSeverity(This,Severity)   \
1613    ( (This)->lpVtbl -> GetBreakOnSeverity(This,Severity) )
1614
1615#define ID3D11InfoQueue_GetBreakOnID(This,ID)   \
1616    ( (This)->lpVtbl -> GetBreakOnID(This,ID) )
1617
1618#define ID3D11InfoQueue_SetMuteDebugOutput(This,bMute)   \
1619    ( (This)->lpVtbl -> SetMuteDebugOutput(This,bMute) )
1620
1621#define ID3D11InfoQueue_GetMuteDebugOutput(This)   \
1622    ( (This)->lpVtbl -> GetMuteDebugOutput(This) )
1623
1624#endif /* COBJMACROS */
1625
1626
1627#endif    /* C style interface */
1628
1629
1630
1631
1632#endif    /* __ID3D11InfoQueue_INTERFACE_DEFINED__ */
1633
1634
1635/* interface __MIDL_itf_d3d11sdklayers_0000_0003 */
1636/* [local] */
1637
1638#define D3D11_REGKEY_PATH __TEXT("Software\\Microsoft\\Direct3D")
1639#define D3D11_MUTE_DEBUG_OUTPUT __TEXT("MuteDebugOutput")
1640#define D3D11_ENABLE_BREAK_ON_MESSAGE __TEXT("EnableBreakOnMessage")
1641#define D3D11_INFOQUEUE_STORAGE_FILTER_OVERRIDE __TEXT("InfoQueueStorageFilterOverride")
1642#define D3D11_MUTE_CATEGORY __TEXT("Mute_CATEGORY_%s")
1643#define D3D11_MUTE_SEVERITY __TEXT("Mute_SEVERITY_%s")
1644#define D3D11_MUTE_ID_STRING __TEXT("Mute_ID_%s")
1645#define D3D11_MUTE_ID_DECIMAL __TEXT("Mute_ID_%d")
1646#define D3D11_UNMUTE_SEVERITY_INFO __TEXT("Unmute_SEVERITY_INFO")
1647#define D3D11_BREAKON_CATEGORY __TEXT("BreakOn_CATEGORY_%s")
1648#define D3D11_BREAKON_SEVERITY __TEXT("BreakOn_SEVERITY_%s")
1649#define D3D11_BREAKON_ID_STRING __TEXT("BreakOn_ID_%s")
1650#define D3D11_BREAKON_ID_DECIMAL __TEXT("BreakOn_ID_%d")
1651#define D3D11_APPSIZE_STRING __TEXT("Size")
1652#define D3D11_APPNAME_STRING __TEXT("Name")
1653DEFINE_GUID(IID_ID3D11Debug,0x79cf2233,0x7536,0x4948,0x9d,0x36,0x1e,0x46,0x92,0xdc,0x57,0x60);
1654DEFINE_GUID(IID_ID3D11SwitchToRef,0x1ef337e3,0x58e7,0x4f83,0xa6,0x92,0xdb,0x22,0x1f,0x5e,0xd4,0x7e);
1655DEFINE_GUID(IID_ID3D11InfoQueue,0x6543dbb6,0x1b48,0x42f5,0xab,0x82,0xe9,0x7e,0xc7,0x43,0x26,0xf6);
1656
1657
1658extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0003_v0_0_c_ifspec;
1659extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0003_v0_0_s_ifspec;
1660
1661/* Additional Prototypes for ALL interfaces */
1662
1663/* end of Additional Prototypes */
1664
1665#ifdef __cplusplus
1666}
1667#endif
1668
1669#endif
1670
1671
trunk/3rdparty/dxsdk/Include/d3d11shader.h
r0r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (c) Microsoft Corporation.  All rights reserved.
4//
5//  File:       D3D11Shader.h
6//  Content:    D3D11 Shader Types and APIs
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#ifndef __D3D11SHADER_H__
11#define __D3D11SHADER_H__
12
13#include "d3dcommon.h"
14
15
16typedef enum D3D11_SHADER_VERSION_TYPE
17{
18    D3D11_SHVER_PIXEL_SHADER    = 0,
19    D3D11_SHVER_VERTEX_SHADER   = 1,
20    D3D11_SHVER_GEOMETRY_SHADER = 2,
21   
22    // D3D11 Shaders
23    D3D11_SHVER_HULL_SHADER     = 3,
24    D3D11_SHVER_DOMAIN_SHADER   = 4,
25    D3D11_SHVER_COMPUTE_SHADER  = 5,
26} D3D11_SHADER_VERSION_TYPE;
27
28#define D3D11_SHVER_GET_TYPE(_Version) \
29    (((_Version) >> 16) & 0xffff)
30#define D3D11_SHVER_GET_MAJOR(_Version) \
31    (((_Version) >> 4) & 0xf)
32#define D3D11_SHVER_GET_MINOR(_Version) \
33    (((_Version) >> 0) & 0xf)
34
35typedef D3D_RESOURCE_RETURN_TYPE D3D11_RESOURCE_RETURN_TYPE;
36
37typedef D3D_CBUFFER_TYPE D3D11_CBUFFER_TYPE;
38
39
40typedef struct _D3D11_SIGNATURE_PARAMETER_DESC
41{
42    LPCSTR                      SemanticName;   // Name of the semantic
43    UINT                        SemanticIndex;  // Index of the semantic
44    UINT                        Register;       // Number of member variables
45    D3D_NAME                    SystemValueType;// A predefined system value, or D3D_NAME_UNDEFINED if not applicable
46    D3D_REGISTER_COMPONENT_TYPE ComponentType;// Scalar type (e.g. uint, float, etc.)
47    BYTE                        Mask;           // Mask to indicate which components of the register
48                                                // are used (combination of D3D10_COMPONENT_MASK values)
49    BYTE                        ReadWriteMask;  // Mask to indicate whether a given component is
50                                                // never written (if this is an output signature) or
51                                                // always read (if this is an input signature).
52                                                // (combination of D3D10_COMPONENT_MASK values)
53    UINT Stream;                                // Stream index
54} D3D11_SIGNATURE_PARAMETER_DESC;
55
56typedef struct _D3D11_SHADER_BUFFER_DESC
57{
58    LPCSTR                  Name;           // Name of the constant buffer
59    D3D_CBUFFER_TYPE        Type;           // Indicates type of buffer content
60    UINT                    Variables;      // Number of member variables
61    UINT                    Size;           // Size of CB (in bytes)
62    UINT                    uFlags;         // Buffer description flags
63} D3D11_SHADER_BUFFER_DESC;
64
65typedef struct _D3D11_SHADER_VARIABLE_DESC
66{
67    LPCSTR                  Name;           // Name of the variable
68    UINT                    StartOffset;    // Offset in constant buffer's backing store
69    UINT                    Size;           // Size of variable (in bytes)
70    UINT                    uFlags;         // Variable flags
71    LPVOID                  DefaultValue;   // Raw pointer to default value
72    UINT                    StartTexture;   // First texture index (or -1 if no textures used)
73    UINT                    TextureSize;    // Number of texture slots possibly used.
74    UINT                    StartSampler;   // First sampler index (or -1 if no textures used)
75    UINT                    SamplerSize;    // Number of sampler slots possibly used.
76} D3D11_SHADER_VARIABLE_DESC;
77
78typedef struct _D3D11_SHADER_TYPE_DESC
79{
80    D3D_SHADER_VARIABLE_CLASS   Class;          // Variable class (e.g. object, matrix, etc.)
81    D3D_SHADER_VARIABLE_TYPE    Type;           // Variable type (e.g. float, sampler, etc.)
82    UINT                        Rows;           // Number of rows (for matrices, 1 for other numeric, 0 if not applicable)
83    UINT                        Columns;        // Number of columns (for vectors & matrices, 1 for other numeric, 0 if not applicable)
84    UINT                        Elements;       // Number of elements (0 if not an array)
85    UINT                        Members;        // Number of members (0 if not a structure)
86    UINT                        Offset;         // Offset from the start of structure (0 if not a structure member)
87    LPCSTR                      Name;           // Name of type, can be NULL
88} D3D11_SHADER_TYPE_DESC;
89
90typedef D3D_TESSELLATOR_DOMAIN D3D11_TESSELLATOR_DOMAIN;
91
92typedef D3D_TESSELLATOR_PARTITIONING D3D11_TESSELLATOR_PARTITIONING;
93
94typedef D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D11_TESSELLATOR_OUTPUT_PRIMITIVE;
95
96typedef struct _D3D11_SHADER_DESC
97{
98    UINT                    Version;                     // Shader version
99    LPCSTR                  Creator;                     // Creator string
100    UINT                    Flags;                       // Shader compilation/parse flags
101   
102    UINT                    ConstantBuffers;             // Number of constant buffers
103    UINT                    BoundResources;              // Number of bound resources
104    UINT                    InputParameters;             // Number of parameters in the input signature
105    UINT                    OutputParameters;            // Number of parameters in the output signature
106
107    UINT                    InstructionCount;            // Number of emitted instructions
108    UINT                    TempRegisterCount;           // Number of temporary registers used
109    UINT                    TempArrayCount;              // Number of temporary arrays used
110    UINT                    DefCount;                    // Number of constant defines
111    UINT                    DclCount;                    // Number of declarations (input + output)
112    UINT                    TextureNormalInstructions;   // Number of non-categorized texture instructions
113    UINT                    TextureLoadInstructions;     // Number of texture load instructions
114    UINT                    TextureCompInstructions;     // Number of texture comparison instructions
115    UINT                    TextureBiasInstructions;     // Number of texture bias instructions
116    UINT                    TextureGradientInstructions; // Number of texture gradient instructions
117    UINT                    FloatInstructionCount;       // Number of floating point arithmetic instructions used
118    UINT                    IntInstructionCount;         // Number of signed integer arithmetic instructions used
119    UINT                    UintInstructionCount;        // Number of unsigned integer arithmetic instructions used
120    UINT                    StaticFlowControlCount;      // Number of static flow control instructions used
121    UINT                    DynamicFlowControlCount;     // Number of dynamic flow control instructions used
122    UINT                    MacroInstructionCount;       // Number of macro instructions used
123    UINT                    ArrayInstructionCount;       // Number of array instructions used
124    UINT                    CutInstructionCount;         // Number of cut instructions used
125    UINT                    EmitInstructionCount;        // Number of emit instructions used
126    D3D_PRIMITIVE_TOPOLOGY   GSOutputTopology;           // Geometry shader output topology
127    UINT                    GSMaxOutputVertexCount;      // Geometry shader maximum output vertex count
128    D3D_PRIMITIVE           InputPrimitive;              // GS/HS input primitive
129    UINT                    PatchConstantParameters;     // Number of parameters in the patch constant signature
130    UINT                    cGSInstanceCount;            // Number of Geometry shader instances
131    UINT                    cControlPoints;              // Number of control points in the HS->DS stage
132    D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;  // Primitive output by the tessellator
133    D3D_TESSELLATOR_PARTITIONING HSPartitioning;         // Partitioning mode of the tessellator
134    D3D_TESSELLATOR_DOMAIN  TessellatorDomain;           // Domain of the tessellator (quad, tri, isoline)
135    // instruction counts
136    UINT cBarrierInstructions;                           // Number of barrier instructions in a compute shader
137    UINT cInterlockedInstructions;                       // Number of interlocked instructions
138    UINT cTextureStoreInstructions;                      // Number of texture writes
139} D3D11_SHADER_DESC;
140
141typedef struct _D3D11_SHADER_INPUT_BIND_DESC
142{
143    LPCSTR                      Name;           // Name of the resource
144    D3D_SHADER_INPUT_TYPE       Type;           // Type of resource (e.g. texture, cbuffer, etc.)
145    UINT                        BindPoint;      // Starting bind point
146    UINT                        BindCount;      // Number of contiguous bind points (for arrays)
147   
148    UINT                        uFlags;         // Input binding flags
149    D3D_RESOURCE_RETURN_TYPE    ReturnType;     // Return type (if texture)
150    D3D_SRV_DIMENSION           Dimension;      // Dimension (if texture)
151    UINT                        NumSamples;     // Number of samples (0 if not MS texture)
152} D3D11_SHADER_INPUT_BIND_DESC;
153
154
155//////////////////////////////////////////////////////////////////////////////
156// Interfaces ////////////////////////////////////////////////////////////////
157//////////////////////////////////////////////////////////////////////////////
158
159typedef interface ID3D11ShaderReflectionType ID3D11ShaderReflectionType;
160typedef interface ID3D11ShaderReflectionType *LPD3D11SHADERREFLECTIONTYPE;
161
162typedef interface ID3D11ShaderReflectionVariable ID3D11ShaderReflectionVariable;
163typedef interface ID3D11ShaderReflectionVariable *LPD3D11SHADERREFLECTIONVARIABLE;
164
165typedef interface ID3D11ShaderReflectionConstantBuffer ID3D11ShaderReflectionConstantBuffer;
166typedef interface ID3D11ShaderReflectionConstantBuffer *LPD3D11SHADERREFLECTIONCONSTANTBUFFER;
167
168typedef interface ID3D11ShaderReflection ID3D11ShaderReflection;
169typedef interface ID3D11ShaderReflection *LPD3D11SHADERREFLECTION;
170
171// {6E6FFA6A-9BAE-4613-A51E-91652D508C21}
172DEFINE_GUID(IID_ID3D11ShaderReflectionType,
1730x6e6ffa6a, 0x9bae, 0x4613, 0xa5, 0x1e, 0x91, 0x65, 0x2d, 0x50, 0x8c, 0x21);
174
175#undef INTERFACE
176#define INTERFACE ID3D11ShaderReflectionType
177
178DECLARE_INTERFACE(ID3D11ShaderReflectionType)
179{
180    STDMETHOD(GetDesc)(THIS_ __out D3D11_SHADER_TYPE_DESC *pDesc) PURE;
181   
182    STDMETHOD_(ID3D11ShaderReflectionType*, GetMemberTypeByIndex)(THIS_ __in UINT Index) PURE;
183    STDMETHOD_(ID3D11ShaderReflectionType*, GetMemberTypeByName)(THIS_ __in LPCSTR Name) PURE;
184    STDMETHOD_(LPCSTR, GetMemberTypeName)(THIS_ __in UINT Index) PURE;
185
186    STDMETHOD(IsEqual)(THIS_ __in ID3D11ShaderReflectionType* pType) PURE;
187    STDMETHOD_(ID3D11ShaderReflectionType*, GetSubType)(THIS) PURE;
188    STDMETHOD_(ID3D11ShaderReflectionType*, GetBaseClass)(THIS) PURE;
189    STDMETHOD_(UINT, GetNumInterfaces)(THIS) PURE;
190    STDMETHOD_(ID3D11ShaderReflectionType*, GetInterfaceByIndex)(THIS_ __in UINT uIndex) PURE;
191    STDMETHOD(IsOfType)(THIS_ __in ID3D11ShaderReflectionType* pType) PURE;
192    STDMETHOD(ImplementsInterface)(THIS_ __in ID3D11ShaderReflectionType* pBase) PURE;
193};
194
195// {51F23923-F3E5-4BD1-91CB-606177D8DB4C}
196DEFINE_GUID(IID_ID3D11ShaderReflectionVariable,
1970x51f23923, 0xf3e5, 0x4bd1, 0x91, 0xcb, 0x60, 0x61, 0x77, 0xd8, 0xdb, 0x4c);
198
199#undef INTERFACE
200#define INTERFACE ID3D11ShaderReflectionVariable
201
202DECLARE_INTERFACE(ID3D11ShaderReflectionVariable)
203{
204    STDMETHOD(GetDesc)(THIS_ __out D3D11_SHADER_VARIABLE_DESC *pDesc) PURE;
205   
206    STDMETHOD_(ID3D11ShaderReflectionType*, GetType)(THIS) PURE;
207    STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetBuffer)(THIS) PURE;
208
209    STDMETHOD_(UINT, GetInterfaceSlot)(THIS_ __in UINT uArrayIndex) PURE;
210};
211
212// {EB62D63D-93DD-4318-8AE8-C6F83AD371B8}
213DEFINE_GUID(IID_ID3D11ShaderReflectionConstantBuffer,
2140xeb62d63d, 0x93dd, 0x4318, 0x8a, 0xe8, 0xc6, 0xf8, 0x3a, 0xd3, 0x71, 0xb8);
215
216#undef INTERFACE
217#define INTERFACE ID3D11ShaderReflectionConstantBuffer
218
219DECLARE_INTERFACE(ID3D11ShaderReflectionConstantBuffer)
220{
221    STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_BUFFER_DESC *pDesc) PURE;
222   
223    STDMETHOD_(ID3D11ShaderReflectionVariable*, GetVariableByIndex)(THIS_ __in UINT Index) PURE;
224    STDMETHOD_(ID3D11ShaderReflectionVariable*, GetVariableByName)(THIS_ __in LPCSTR Name) PURE;
225};
226
227// The ID3D11ShaderReflection IID may change from SDK version to SDK version
228// if the reflection API changes.  This prevents new code with the new API
229// from working with an old binary.  Recompiling with the new header
230// will pick up the new IID.
231
232// 0a233719-3960-4578-9d7c-203b8b1d9cc1
233DEFINE_GUID(IID_ID3D11ShaderReflection,
2340x0a233719, 0x3960, 0x4578, 0x9d, 0x7c, 0x20, 0x3b, 0x8b, 0x1d, 0x9c, 0xc1);
235
236#undef INTERFACE
237#define INTERFACE ID3D11ShaderReflection
238
239DECLARE_INTERFACE_(ID3D11ShaderReflection, IUnknown)
240{
241    STDMETHOD(QueryInterface)(THIS_ __in REFIID iid,
242                              __out LPVOID *ppv) PURE;
243    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
244    STDMETHOD_(ULONG, Release)(THIS) PURE;
245
246    STDMETHOD(GetDesc)(THIS_ __out D3D11_SHADER_DESC *pDesc) PURE;
247   
248    STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetConstantBufferByIndex)(THIS_ __in UINT Index) PURE;
249    STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetConstantBufferByName)(THIS_ __in LPCSTR Name) PURE;
250   
251    STDMETHOD(GetResourceBindingDesc)(THIS_ __in UINT ResourceIndex,
252                                      __out D3D11_SHADER_INPUT_BIND_DESC *pDesc) PURE;
253   
254    STDMETHOD(GetInputParameterDesc)(THIS_ __in UINT ParameterIndex,
255                                     __out D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
256    STDMETHOD(GetOutputParameterDesc)(THIS_ __in UINT ParameterIndex,
257                                      __out D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
258    STDMETHOD(GetPatchConstantParameterDesc)(THIS_ __in UINT ParameterIndex,
259                                             __out D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
260
261    STDMETHOD_(ID3D11ShaderReflectionVariable*, GetVariableByName)(THIS_ __in LPCSTR Name) PURE;
262
263    STDMETHOD(GetResourceBindingDescByName)(THIS_ __in LPCSTR Name,
264                                            __out D3D11_SHADER_INPUT_BIND_DESC *pDesc) PURE;
265
266    STDMETHOD_(UINT, GetMovInstructionCount)(THIS) PURE;
267    STDMETHOD_(UINT, GetMovcInstructionCount)(THIS) PURE;
268    STDMETHOD_(UINT, GetConversionInstructionCount)(THIS) PURE;
269    STDMETHOD_(UINT, GetBitwiseInstructionCount)(THIS) PURE;
270   
271    STDMETHOD_(D3D_PRIMITIVE, GetGSInputPrimitive)(THIS) PURE;
272    STDMETHOD_(BOOL, IsSampleFrequencyShader)(THIS) PURE;
273
274    STDMETHOD_(UINT, GetNumInterfaceSlots)(THIS) PURE;
275    STDMETHOD(GetMinFeatureLevel)(THIS_ __out enum D3D_FEATURE_LEVEL* pLevel) PURE;
276
277    STDMETHOD_(UINT, GetThreadGroupSize)(THIS_
278                                         __out_opt UINT* pSizeX,
279                                         __out_opt UINT* pSizeY,
280                                         __out_opt UINT* pSizeZ) PURE;
281};
282
283//////////////////////////////////////////////////////////////////////////////
284// APIs //////////////////////////////////////////////////////////////////////
285//////////////////////////////////////////////////////////////////////////////
286
287#ifdef __cplusplus
288extern "C" {
289#endif //__cplusplus
290
291#ifdef __cplusplus
292}
293#endif //__cplusplus
294   
295#endif //__D3D11SHADER_H__
296
trunk/3rdparty/dxsdk/Include/d3dcommon.h
r0r243311
1
2
3/* this ALWAYS GENERATED file contains the definitions for the interfaces */
4
5
6 /* File created by MIDL compiler version 7.00.0555 */
7/* @@MIDL_FILE_HEADING(  ) */
8
9#ifdef _MSC_VER
10#pragma warning( disable: 4049 )  /* more than 64k source lines */
11#endif // _MSC_VER
12
13
14/* verify that the <rpcndr.h> version is high enough to compile this file*/
15#ifndef __REQUIRED_RPCNDR_H_VERSION__
16#define __REQUIRED_RPCNDR_H_VERSION__ 475
17#endif
18
19/* verify that the <rpcsal.h> version is high enough to compile this file*/
20#ifndef __REQUIRED_RPCSAL_H_VERSION__
21#define __REQUIRED_RPCSAL_H_VERSION__ 100
22#endif
23
24#include "rpc.h"
25#include "rpcndr.h"
26
27#ifndef __RPCNDR_H_VERSION__
28#error this stub requires an updated version of <rpcndr.h>
29#endif // __RPCNDR_H_VERSION__
30
31#ifndef COM_NO_WINDOWS_H
32#include "windows.h"
33#include "ole2.h"
34#endif /*COM_NO_WINDOWS_H*/
35
36#ifndef __d3dcommon_h__
37#define __d3dcommon_h__
38
39#if defined(_MSC_VER) && (_MSC_VER >= 1020)
40#pragma once
41#endif
42
43/* Forward Declarations */
44
45#ifndef __ID3D10Blob_FWD_DEFINED__
46#define __ID3D10Blob_FWD_DEFINED__
47typedef interface ID3D10Blob ID3D10Blob;
48#endif    /* __ID3D10Blob_FWD_DEFINED__ */
49
50
51/* header files for imported files */
52#include "oaidl.h"
53#include "ocidl.h"
54
55#ifdef __cplusplus
56extern "C"{
57#endif
58
59
60/* interface __MIDL_itf_d3dcommon_0000_0000 */
61/* [local] */
62
63typedef
64enum D3D_DRIVER_TYPE
65    {   D3D_DRIVER_TYPE_UNKNOWN   = 0,
66   D3D_DRIVER_TYPE_HARDWARE   = ( D3D_DRIVER_TYPE_UNKNOWN + 1 ) ,
67   D3D_DRIVER_TYPE_REFERENCE   = ( D3D_DRIVER_TYPE_HARDWARE + 1 ) ,
68   D3D_DRIVER_TYPE_NULL   = ( D3D_DRIVER_TYPE_REFERENCE + 1 ) ,
69   D3D_DRIVER_TYPE_SOFTWARE   = ( D3D_DRIVER_TYPE_NULL + 1 ) ,
70   D3D_DRIVER_TYPE_WARP   = ( D3D_DRIVER_TYPE_SOFTWARE + 1 )
71    }    D3D_DRIVER_TYPE;
72
73typedef
74enum D3D_FEATURE_LEVEL
75    {   D3D_FEATURE_LEVEL_9_1   = 0x9100,
76   D3D_FEATURE_LEVEL_9_2   = 0x9200,
77   D3D_FEATURE_LEVEL_9_3   = 0x9300,
78   D3D_FEATURE_LEVEL_10_0   = 0xa000,
79   D3D_FEATURE_LEVEL_10_1   = 0xa100,
80   D3D_FEATURE_LEVEL_11_0   = 0xb000
81    }    D3D_FEATURE_LEVEL;
82
83typedef
84enum D3D_PRIMITIVE_TOPOLOGY
85    {   D3D_PRIMITIVE_TOPOLOGY_UNDEFINED   = 0,
86   D3D_PRIMITIVE_TOPOLOGY_POINTLIST   = 1,
87   D3D_PRIMITIVE_TOPOLOGY_LINELIST   = 2,
88   D3D_PRIMITIVE_TOPOLOGY_LINESTRIP   = 3,
89   D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST   = 4,
90   D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP   = 5,
91   D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ   = 10,
92   D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ   = 11,
93   D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ   = 12,
94   D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ   = 13,
95   D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST   = 33,
96   D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST   = 34,
97   D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST   = 35,
98   D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST   = 36,
99   D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST   = 37,
100   D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST   = 38,
101   D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST   = 39,
102   D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST   = 40,
103   D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST   = 41,
104   D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST   = 42,
105   D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST   = 43,
106   D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST   = 44,
107   D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST   = 45,
108   D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST   = 46,
109   D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST   = 47,
110   D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST   = 48,
111   D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST   = 49,
112   D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST   = 50,
113   D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST   = 51,
114   D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST   = 52,
115   D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST   = 53,
116   D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST   = 54,
117   D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST   = 55,
118   D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST   = 56,
119   D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST   = 57,
120   D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST   = 58,
121   D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST   = 59,
122   D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST   = 60,
123   D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST   = 61,
124   D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST   = 62,
125   D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST   = 63,
126   D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST   = 64,
127   D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED   = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED,
128   D3D10_PRIMITIVE_TOPOLOGY_POINTLIST   = D3D_PRIMITIVE_TOPOLOGY_POINTLIST,
129   D3D10_PRIMITIVE_TOPOLOGY_LINELIST   = D3D_PRIMITIVE_TOPOLOGY_LINELIST,
130   D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP   = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP,
131   D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
132   D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
133   D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ   = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
134   D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ   = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
135   D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
136   D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
137   D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED   = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED,
138   D3D11_PRIMITIVE_TOPOLOGY_POINTLIST   = D3D_PRIMITIVE_TOPOLOGY_POINTLIST,
139   D3D11_PRIMITIVE_TOPOLOGY_LINELIST   = D3D_PRIMITIVE_TOPOLOGY_LINELIST,
140   D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP   = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP,
141   D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
142   D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
143   D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ   = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
144   D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ   = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
145   D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
146   D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ   = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
147   D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST,
148   D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST,
149   D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST,
150   D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST,
151   D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST,
152   D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST,
153   D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST,
154   D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST,
155   D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST,
156   D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST,
157   D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST,
158   D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST,
159   D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST,
160   D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST,
161   D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST,
162   D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST,
163   D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST,
164   D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST,
165   D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST,
166   D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST,
167   D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST,
168   D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST,
169   D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST,
170   D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST,
171   D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST,
172   D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST,
173   D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST,
174   D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST,
175   D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST,
176   D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST,
177   D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST,
178   D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST   = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST
179    }    D3D_PRIMITIVE_TOPOLOGY;
180
181typedef
182enum D3D_PRIMITIVE
183    {   D3D_PRIMITIVE_UNDEFINED   = 0,
184   D3D_PRIMITIVE_POINT   = 1,
185   D3D_PRIMITIVE_LINE   = 2,
186   D3D_PRIMITIVE_TRIANGLE   = 3,
187   D3D_PRIMITIVE_LINE_ADJ   = 6,
188   D3D_PRIMITIVE_TRIANGLE_ADJ   = 7,
189   D3D_PRIMITIVE_1_CONTROL_POINT_PATCH   = 8,
190   D3D_PRIMITIVE_2_CONTROL_POINT_PATCH   = 9,
191   D3D_PRIMITIVE_3_CONTROL_POINT_PATCH   = 10,
192   D3D_PRIMITIVE_4_CONTROL_POINT_PATCH   = 11,
193   D3D_PRIMITIVE_5_CONTROL_POINT_PATCH   = 12,
194   D3D_PRIMITIVE_6_CONTROL_POINT_PATCH   = 13,
195   D3D_PRIMITIVE_7_CONTROL_POINT_PATCH   = 14,
196   D3D_PRIMITIVE_8_CONTROL_POINT_PATCH   = 15,
197   D3D_PRIMITIVE_9_CONTROL_POINT_PATCH   = 16,
198   D3D_PRIMITIVE_10_CONTROL_POINT_PATCH   = 17,
199   D3D_PRIMITIVE_11_CONTROL_POINT_PATCH   = 18,
200   D3D_PRIMITIVE_12_CONTROL_POINT_PATCH   = 19,
201   D3D_PRIMITIVE_13_CONTROL_POINT_PATCH   = 20,
202   D3D_PRIMITIVE_14_CONTROL_POINT_PATCH   = 21,
203   D3D_PRIMITIVE_15_CONTROL_POINT_PATCH   = 22,
204   D3D_PRIMITIVE_16_CONTROL_POINT_PATCH   = 23,
205   D3D_PRIMITIVE_17_CONTROL_POINT_PATCH   = 24,
206   D3D_PRIMITIVE_18_CONTROL_POINT_PATCH   = 25,
207   D3D_PRIMITIVE_19_CONTROL_POINT_PATCH   = 26,
208   D3D_PRIMITIVE_20_CONTROL_POINT_PATCH   = 28,
209   D3D_PRIMITIVE_21_CONTROL_POINT_PATCH   = 29,
210   D3D_PRIMITIVE_22_CONTROL_POINT_PATCH   = 30,
211   D3D_PRIMITIVE_23_CONTROL_POINT_PATCH   = 31,
212   D3D_PRIMITIVE_24_CONTROL_POINT_PATCH   = 32,
213   D3D_PRIMITIVE_25_CONTROL_POINT_PATCH   = 33,
214   D3D_PRIMITIVE_26_CONTROL_POINT_PATCH   = 34,
215   D3D_PRIMITIVE_27_CONTROL_POINT_PATCH   = 35,
216   D3D_PRIMITIVE_28_CONTROL_POINT_PATCH   = 36,
217   D3D_PRIMITIVE_29_CONTROL_POINT_PATCH   = 37,
218   D3D_PRIMITIVE_30_CONTROL_POINT_PATCH   = 38,
219   D3D_PRIMITIVE_31_CONTROL_POINT_PATCH   = 39,
220   D3D_PRIMITIVE_32_CONTROL_POINT_PATCH   = 40,
221   D3D10_PRIMITIVE_UNDEFINED   = D3D_PRIMITIVE_UNDEFINED,
222   D3D10_PRIMITIVE_POINT   = D3D_PRIMITIVE_POINT,
223   D3D10_PRIMITIVE_LINE   = D3D_PRIMITIVE_LINE,
224   D3D10_PRIMITIVE_TRIANGLE   = D3D_PRIMITIVE_TRIANGLE,
225   D3D10_PRIMITIVE_LINE_ADJ   = D3D_PRIMITIVE_LINE_ADJ,
226   D3D10_PRIMITIVE_TRIANGLE_ADJ   = D3D_PRIMITIVE_TRIANGLE_ADJ,
227   D3D11_PRIMITIVE_UNDEFINED   = D3D_PRIMITIVE_UNDEFINED,
228   D3D11_PRIMITIVE_POINT   = D3D_PRIMITIVE_POINT,
229   D3D11_PRIMITIVE_LINE   = D3D_PRIMITIVE_LINE,
230   D3D11_PRIMITIVE_TRIANGLE   = D3D_PRIMITIVE_TRIANGLE,
231   D3D11_PRIMITIVE_LINE_ADJ   = D3D_PRIMITIVE_LINE_ADJ,
232   D3D11_PRIMITIVE_TRIANGLE_ADJ   = D3D_PRIMITIVE_TRIANGLE_ADJ,
233   D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_1_CONTROL_POINT_PATCH,
234   D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_2_CONTROL_POINT_PATCH,
235   D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_3_CONTROL_POINT_PATCH,
236   D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_4_CONTROL_POINT_PATCH,
237   D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_5_CONTROL_POINT_PATCH,
238   D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_6_CONTROL_POINT_PATCH,
239   D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_7_CONTROL_POINT_PATCH,
240   D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_8_CONTROL_POINT_PATCH,
241   D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_9_CONTROL_POINT_PATCH,
242   D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_10_CONTROL_POINT_PATCH,
243   D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_11_CONTROL_POINT_PATCH,
244   D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_12_CONTROL_POINT_PATCH,
245   D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_13_CONTROL_POINT_PATCH,
246   D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_14_CONTROL_POINT_PATCH,
247   D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_15_CONTROL_POINT_PATCH,
248   D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_16_CONTROL_POINT_PATCH,
249   D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_17_CONTROL_POINT_PATCH,
250   D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_18_CONTROL_POINT_PATCH,
251   D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_19_CONTROL_POINT_PATCH,
252   D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_20_CONTROL_POINT_PATCH,
253   D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_21_CONTROL_POINT_PATCH,
254   D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_22_CONTROL_POINT_PATCH,
255   D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_23_CONTROL_POINT_PATCH,
256   D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_24_CONTROL_POINT_PATCH,
257   D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_25_CONTROL_POINT_PATCH,
258   D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_26_CONTROL_POINT_PATCH,
259   D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_27_CONTROL_POINT_PATCH,
260   D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_28_CONTROL_POINT_PATCH,
261   D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_29_CONTROL_POINT_PATCH,
262   D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_30_CONTROL_POINT_PATCH,
263   D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_31_CONTROL_POINT_PATCH,
264   D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH   = D3D_PRIMITIVE_32_CONTROL_POINT_PATCH
265    }    D3D_PRIMITIVE;
266
267typedef
268enum D3D_SRV_DIMENSION
269    {   D3D_SRV_DIMENSION_UNKNOWN   = 0,
270   D3D_SRV_DIMENSION_BUFFER   = 1,
271   D3D_SRV_DIMENSION_TEXTURE1D   = 2,
272   D3D_SRV_DIMENSION_TEXTURE1DARRAY   = 3,
273   D3D_SRV_DIMENSION_TEXTURE2D   = 4,
274   D3D_SRV_DIMENSION_TEXTURE2DARRAY   = 5,
275   D3D_SRV_DIMENSION_TEXTURE2DMS   = 6,
276   D3D_SRV_DIMENSION_TEXTURE2DMSARRAY   = 7,
277   D3D_SRV_DIMENSION_TEXTURE3D   = 8,
278   D3D_SRV_DIMENSION_TEXTURECUBE   = 9,
279   D3D_SRV_DIMENSION_TEXTURECUBEARRAY   = 10,
280   D3D_SRV_DIMENSION_BUFFEREX   = 11,
281   D3D10_SRV_DIMENSION_UNKNOWN   = D3D_SRV_DIMENSION_UNKNOWN,
282   D3D10_SRV_DIMENSION_BUFFER   = D3D_SRV_DIMENSION_BUFFER,
283   D3D10_SRV_DIMENSION_TEXTURE1D   = D3D_SRV_DIMENSION_TEXTURE1D,
284   D3D10_SRV_DIMENSION_TEXTURE1DARRAY   = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
285   D3D10_SRV_DIMENSION_TEXTURE2D   = D3D_SRV_DIMENSION_TEXTURE2D,
286   D3D10_SRV_DIMENSION_TEXTURE2DARRAY   = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
287   D3D10_SRV_DIMENSION_TEXTURE2DMS   = D3D_SRV_DIMENSION_TEXTURE2DMS,
288   D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY   = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
289   D3D10_SRV_DIMENSION_TEXTURE3D   = D3D_SRV_DIMENSION_TEXTURE3D,
290   D3D10_SRV_DIMENSION_TEXTURECUBE   = D3D_SRV_DIMENSION_TEXTURECUBE,
291   D3D10_1_SRV_DIMENSION_UNKNOWN   = D3D_SRV_DIMENSION_UNKNOWN,
292   D3D10_1_SRV_DIMENSION_BUFFER   = D3D_SRV_DIMENSION_BUFFER,
293   D3D10_1_SRV_DIMENSION_TEXTURE1D   = D3D_SRV_DIMENSION_TEXTURE1D,
294   D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY   = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
295   D3D10_1_SRV_DIMENSION_TEXTURE2D   = D3D_SRV_DIMENSION_TEXTURE2D,
296   D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY   = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
297   D3D10_1_SRV_DIMENSION_TEXTURE2DMS   = D3D_SRV_DIMENSION_TEXTURE2DMS,
298   D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY   = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
299   D3D10_1_SRV_DIMENSION_TEXTURE3D   = D3D_SRV_DIMENSION_TEXTURE3D,
300   D3D10_1_SRV_DIMENSION_TEXTURECUBE   = D3D_SRV_DIMENSION_TEXTURECUBE,
301   D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY   = D3D_SRV_DIMENSION_TEXTURECUBEARRAY,
302   D3D11_SRV_DIMENSION_UNKNOWN   = D3D_SRV_DIMENSION_UNKNOWN,
303   D3D11_SRV_DIMENSION_BUFFER   = D3D_SRV_DIMENSION_BUFFER,
304   D3D11_SRV_DIMENSION_TEXTURE1D   = D3D_SRV_DIMENSION_TEXTURE1D,
305   D3D11_SRV_DIMENSION_TEXTURE1DARRAY   = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
306   D3D11_SRV_DIMENSION_TEXTURE2D   = D3D_SRV_DIMENSION_TEXTURE2D,
307   D3D11_SRV_DIMENSION_TEXTURE2DARRAY   = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
308   D3D11_SRV_DIMENSION_TEXTURE2DMS   = D3D_SRV_DIMENSION_TEXTURE2DMS,
309   D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY   = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
310   D3D11_SRV_DIMENSION_TEXTURE3D   = D3D_SRV_DIMENSION_TEXTURE3D,
311   D3D11_SRV_DIMENSION_TEXTURECUBE   = D3D_SRV_DIMENSION_TEXTURECUBE,
312   D3D11_SRV_DIMENSION_TEXTURECUBEARRAY   = D3D_SRV_DIMENSION_TEXTURECUBEARRAY,
313   D3D11_SRV_DIMENSION_BUFFEREX   = D3D_SRV_DIMENSION_BUFFEREX
314    }    D3D_SRV_DIMENSION;
315
316typedef struct _D3D_SHADER_MACRO
317    {
318    LPCSTR Name;
319    LPCSTR Definition;
320    }    D3D_SHADER_MACRO;
321
322typedef struct _D3D_SHADER_MACRO *LPD3D_SHADER_MACRO;
323
324DEFINE_GUID(IID_ID3D10Blob, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2);
325
326
327extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0000_v0_0_c_ifspec;
328extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0000_v0_0_s_ifspec;
329
330#ifndef __ID3D10Blob_INTERFACE_DEFINED__
331#define __ID3D10Blob_INTERFACE_DEFINED__
332
333/* interface ID3D10Blob */
334/* [unique][local][object][uuid] */
335
336
337EXTERN_C const IID IID_ID3D10Blob;
338
339#if defined(__cplusplus) && !defined(CINTERFACE)
340   
341    MIDL_INTERFACE("8BA5FB08-5195-40e2-AC58-0D989C3A0102")
342    ID3D10Blob : public IUnknown
343    {
344    public:
345        virtual LPVOID STDMETHODCALLTYPE GetBufferPointer( void) = 0;
346       
347        virtual SIZE_T STDMETHODCALLTYPE GetBufferSize( void) = 0;
348       
349    };
350   
351#else    /* C style interface */
352
353    typedef struct ID3D10BlobVtbl
354    {
355        BEGIN_INTERFACE
356       
357        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
358            ID3D10Blob * This,
359            /* [in] */ REFIID riid,
360            /* [annotation][iid_is][out] */
361            __RPC__deref_out  void **ppvObject);
362       
363        ULONG ( STDMETHODCALLTYPE *AddRef )(
364            ID3D10Blob * This);
365       
366        ULONG ( STDMETHODCALLTYPE *Release )(
367            ID3D10Blob * This);
368       
369        LPVOID ( STDMETHODCALLTYPE *GetBufferPointer )(
370            ID3D10Blob * This);
371       
372        SIZE_T ( STDMETHODCALLTYPE *GetBufferSize )(
373            ID3D10Blob * This);
374       
375        END_INTERFACE
376    } ID3D10BlobVtbl;
377
378    interface ID3D10Blob
379    {
380        CONST_VTBL struct ID3D10BlobVtbl *lpVtbl;
381    };
382
383   
384
385#ifdef COBJMACROS
386
387
388#define ID3D10Blob_QueryInterface(This,riid,ppvObject)   \
389    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
390
391#define ID3D10Blob_AddRef(This)   \
392    ( (This)->lpVtbl -> AddRef(This) )
393
394#define ID3D10Blob_Release(This)   \
395    ( (This)->lpVtbl -> Release(This) )
396
397
398#define ID3D10Blob_GetBufferPointer(This)   \
399    ( (This)->lpVtbl -> GetBufferPointer(This) )
400
401#define ID3D10Blob_GetBufferSize(This)   \
402    ( (This)->lpVtbl -> GetBufferSize(This) )
403
404#endif /* COBJMACROS */
405
406
407#endif    /* C style interface */
408
409
410
411
412#endif    /* __ID3D10Blob_INTERFACE_DEFINED__ */
413
414
415/* interface __MIDL_itf_d3dcommon_0000_0001 */
416/* [local] */
417
418typedef interface ID3D10Blob* LPD3D10BLOB;
419typedef ID3D10Blob ID3DBlob;
420typedef ID3DBlob* LPD3DBLOB;
421#define IID_ID3DBlob IID_ID3D10Blob
422typedef
423enum _D3D_INCLUDE_TYPE
424    {   D3D_INCLUDE_LOCAL   = 0,
425   D3D_INCLUDE_SYSTEM   = ( D3D_INCLUDE_LOCAL + 1 ) ,
426   D3D10_INCLUDE_LOCAL   = D3D_INCLUDE_LOCAL,
427   D3D10_INCLUDE_SYSTEM   = D3D_INCLUDE_SYSTEM,
428   D3D_INCLUDE_FORCE_DWORD   = 0x7fffffff
429    }    D3D_INCLUDE_TYPE;
430
431typedef interface ID3DInclude ID3DInclude;
432#undef INTERFACE
433#define INTERFACE ID3DInclude
434DECLARE_INTERFACE(ID3DInclude)
435{
436    STDMETHOD(Open)(THIS_ D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) PURE;
437    STDMETHOD(Close)(THIS_ LPCVOID pData) PURE;
438};
439typedef ID3DInclude* LPD3DINCLUDE;
440typedef
441enum _D3D_SHADER_VARIABLE_CLASS
442    {   D3D_SVC_SCALAR   = 0,
443   D3D_SVC_VECTOR   = ( D3D_SVC_SCALAR + 1 ) ,
444   D3D_SVC_MATRIX_ROWS   = ( D3D_SVC_VECTOR + 1 ) ,
445   D3D_SVC_MATRIX_COLUMNS   = ( D3D_SVC_MATRIX_ROWS + 1 ) ,
446   D3D_SVC_OBJECT   = ( D3D_SVC_MATRIX_COLUMNS + 1 ) ,
447   D3D_SVC_STRUCT   = ( D3D_SVC_OBJECT + 1 ) ,
448   D3D_SVC_INTERFACE_CLASS   = ( D3D_SVC_STRUCT + 1 ) ,
449   D3D_SVC_INTERFACE_POINTER   = ( D3D_SVC_INTERFACE_CLASS + 1 ) ,
450   D3D10_SVC_SCALAR   = D3D_SVC_SCALAR,
451   D3D10_SVC_VECTOR   = D3D_SVC_VECTOR,
452   D3D10_SVC_MATRIX_ROWS   = D3D_SVC_MATRIX_ROWS,
453   D3D10_SVC_MATRIX_COLUMNS   = D3D_SVC_MATRIX_COLUMNS,
454   D3D10_SVC_OBJECT   = D3D_SVC_OBJECT,
455   D3D10_SVC_STRUCT   = D3D_SVC_STRUCT,
456   D3D11_SVC_INTERFACE_CLASS   = D3D_SVC_INTERFACE_CLASS,
457   D3D11_SVC_INTERFACE_POINTER   = D3D_SVC_INTERFACE_POINTER,
458   D3D_SVC_FORCE_DWORD   = 0x7fffffff
459    }    D3D_SHADER_VARIABLE_CLASS;
460
461typedef
462enum _D3D_SHADER_VARIABLE_FLAGS
463    {   D3D_SVF_USERPACKED   = 1,
464   D3D_SVF_USED   = 2,
465   D3D_SVF_INTERFACE_POINTER   = 4,
466   D3D_SVF_INTERFACE_PARAMETER   = 8,
467   D3D10_SVF_USERPACKED   = D3D_SVF_USERPACKED,
468   D3D10_SVF_USED   = D3D_SVF_USED,
469   D3D11_SVF_INTERFACE_POINTER   = D3D_SVF_INTERFACE_POINTER,
470   D3D11_SVF_INTERFACE_PARAMETER   = D3D_SVF_INTERFACE_PARAMETER,
471   D3D_SVF_FORCE_DWORD   = 0x7fffffff
472    }    D3D_SHADER_VARIABLE_FLAGS;
473
474typedef
475enum _D3D_SHADER_VARIABLE_TYPE
476    {   D3D_SVT_VOID   = 0,
477   D3D_SVT_BOOL   = 1,
478   D3D_SVT_INT   = 2,
479   D3D_SVT_FLOAT   = 3,
480   D3D_SVT_STRING   = 4,
481   D3D_SVT_TEXTURE   = 5,
482   D3D_SVT_TEXTURE1D   = 6,
483   D3D_SVT_TEXTURE2D   = 7,
484   D3D_SVT_TEXTURE3D   = 8,
485   D3D_SVT_TEXTURECUBE   = 9,
486   D3D_SVT_SAMPLER   = 10,
487   D3D_SVT_SAMPLER1D   = 11,
488   D3D_SVT_SAMPLER2D   = 12,
489   D3D_SVT_SAMPLER3D   = 13,
490   D3D_SVT_SAMPLERCUBE   = 14,
491   D3D_SVT_PIXELSHADER   = 15,
492   D3D_SVT_VERTEXSHADER   = 16,
493   D3D_SVT_PIXELFRAGMENT   = 17,
494   D3D_SVT_VERTEXFRAGMENT   = 18,
495   D3D_SVT_UINT   = 19,
496   D3D_SVT_UINT8   = 20,
497   D3D_SVT_GEOMETRYSHADER   = 21,
498   D3D_SVT_RASTERIZER   = 22,
499   D3D_SVT_DEPTHSTENCIL   = 23,
500   D3D_SVT_BLEND   = 24,
501   D3D_SVT_BUFFER   = 25,
502   D3D_SVT_CBUFFER   = 26,
503   D3D_SVT_TBUFFER   = 27,
504   D3D_SVT_TEXTURE1DARRAY   = 28,
505   D3D_SVT_TEXTURE2DARRAY   = 29,
506   D3D_SVT_RENDERTARGETVIEW   = 30,
507   D3D_SVT_DEPTHSTENCILVIEW   = 31,
508   D3D_SVT_TEXTURE2DMS   = 32,
509   D3D_SVT_TEXTURE2DMSARRAY   = 33,
510   D3D_SVT_TEXTURECUBEARRAY   = 34,
511   D3D_SVT_HULLSHADER   = 35,
512   D3D_SVT_DOMAINSHADER   = 36,
513   D3D_SVT_INTERFACE_POINTER   = 37,
514   D3D_SVT_COMPUTESHADER   = 38,
515   D3D_SVT_DOUBLE   = 39,
516   D3D_SVT_RWTEXTURE1D   = 40,
517   D3D_SVT_RWTEXTURE1DARRAY   = 41,
518   D3D_SVT_RWTEXTURE2D   = 42,
519   D3D_SVT_RWTEXTURE2DARRAY   = 43,
520   D3D_SVT_RWTEXTURE3D   = 44,
521   D3D_SVT_RWBUFFER   = 45,
522   D3D_SVT_BYTEADDRESS_BUFFER   = 46,
523   D3D_SVT_RWBYTEADDRESS_BUFFER   = 47,
524   D3D_SVT_STRUCTURED_BUFFER   = 48,
525   D3D_SVT_RWSTRUCTURED_BUFFER   = 49,
526   D3D_SVT_APPEND_STRUCTURED_BUFFER   = 50,
527   D3D_SVT_CONSUME_STRUCTURED_BUFFER   = 51,
528   D3D10_SVT_VOID   = D3D_SVT_VOID,
529   D3D10_SVT_BOOL   = D3D_SVT_BOOL,
530   D3D10_SVT_INT   = D3D_SVT_INT,
531   D3D10_SVT_FLOAT   = D3D_SVT_FLOAT,
532   D3D10_SVT_STRING   = D3D_SVT_STRING,
533   D3D10_SVT_TEXTURE   = D3D_SVT_TEXTURE,
534   D3D10_SVT_TEXTURE1D   = D3D_SVT_TEXTURE1D,
535   D3D10_SVT_TEXTURE2D   = D3D_SVT_TEXTURE2D,
536   D3D10_SVT_TEXTURE3D   = D3D_SVT_TEXTURE3D,
537   D3D10_SVT_TEXTURECUBE   = D3D_SVT_TEXTURECUBE,
538   D3D10_SVT_SAMPLER   = D3D_SVT_SAMPLER,
539   D3D10_SVT_SAMPLER1D   = D3D_SVT_SAMPLER1D,
540   D3D10_SVT_SAMPLER2D   = D3D_SVT_SAMPLER2D,
541   D3D10_SVT_SAMPLER3D   = D3D_SVT_SAMPLER3D,
542   D3D10_SVT_SAMPLERCUBE   = D3D_SVT_SAMPLERCUBE,
543   D3D10_SVT_PIXELSHADER   = D3D_SVT_PIXELSHADER,
544   D3D10_SVT_VERTEXSHADER   = D3D_SVT_VERTEXSHADER,
545   D3D10_SVT_PIXELFRAGMENT   = D3D_SVT_PIXELFRAGMENT,
546   D3D10_SVT_VERTEXFRAGMENT   = D3D_SVT_VERTEXFRAGMENT,
547   D3D10_SVT_UINT   = D3D_SVT_UINT,
548   D3D10_SVT_UINT8   = D3D_SVT_UINT8,
549   D3D10_SVT_GEOMETRYSHADER   = D3D_SVT_GEOMETRYSHADER,
550   D3D10_SVT_RASTERIZER   = D3D_SVT_RASTERIZER,
551   D3D10_SVT_DEPTHSTENCIL   = D3D_SVT_DEPTHSTENCIL,
552   D3D10_SVT_BLEND   = D3D_SVT_BLEND,
553   D3D10_SVT_BUFFER   = D3D_SVT_BUFFER,
554   D3D10_SVT_CBUFFER   = D3D_SVT_CBUFFER,
555   D3D10_SVT_TBUFFER   = D3D_SVT_TBUFFER,
556   D3D10_SVT_TEXTURE1DARRAY   = D3D_SVT_TEXTURE1DARRAY,
557   D3D10_SVT_TEXTURE2DARRAY   = D3D_SVT_TEXTURE2DARRAY,
558   D3D10_SVT_RENDERTARGETVIEW   = D3D_SVT_RENDERTARGETVIEW,
559   D3D10_SVT_DEPTHSTENCILVIEW   = D3D_SVT_DEPTHSTENCILVIEW,
560   D3D10_SVT_TEXTURE2DMS   = D3D_SVT_TEXTURE2DMS,
561   D3D10_SVT_TEXTURE2DMSARRAY   = D3D_SVT_TEXTURE2DMSARRAY,
562   D3D10_SVT_TEXTURECUBEARRAY   = D3D_SVT_TEXTURECUBEARRAY,
563   D3D11_SVT_HULLSHADER   = D3D_SVT_HULLSHADER,
564   D3D11_SVT_DOMAINSHADER   = D3D_SVT_DOMAINSHADER,
565   D3D11_SVT_INTERFACE_POINTER   = D3D_SVT_INTERFACE_POINTER,
566   D3D11_SVT_COMPUTESHADER   = D3D_SVT_COMPUTESHADER,
567   D3D11_SVT_DOUBLE   = D3D_SVT_DOUBLE,
568   D3D11_SVT_RWTEXTURE1D   = D3D_SVT_RWTEXTURE1D,
569   D3D11_SVT_RWTEXTURE1DARRAY   = D3D_SVT_RWTEXTURE1DARRAY,
570   D3D11_SVT_RWTEXTURE2D   = D3D_SVT_RWTEXTURE2D,
571   D3D11_SVT_RWTEXTURE2DARRAY   = D3D_SVT_RWTEXTURE2DARRAY,
572   D3D11_SVT_RWTEXTURE3D   = D3D_SVT_RWTEXTURE3D,
573   D3D11_SVT_RWBUFFER   = D3D_SVT_RWBUFFER,
574   D3D11_SVT_BYTEADDRESS_BUFFER   = D3D_SVT_BYTEADDRESS_BUFFER,
575   D3D11_SVT_RWBYTEADDRESS_BUFFER   = D3D_SVT_RWBYTEADDRESS_BUFFER,
576   D3D11_SVT_STRUCTURED_BUFFER   = D3D_SVT_STRUCTURED_BUFFER,
577   D3D11_SVT_RWSTRUCTURED_BUFFER   = D3D_SVT_RWSTRUCTURED_BUFFER,
578   D3D11_SVT_APPEND_STRUCTURED_BUFFER   = D3D_SVT_APPEND_STRUCTURED_BUFFER,
579   D3D11_SVT_CONSUME_STRUCTURED_BUFFER   = D3D_SVT_CONSUME_STRUCTURED_BUFFER,
580   D3D_SVT_FORCE_DWORD   = 0x7fffffff
581    }    D3D_SHADER_VARIABLE_TYPE;
582
583typedef
584enum _D3D_SHADER_INPUT_FLAGS
585    {   D3D_SIF_USERPACKED   = 1,
586   D3D_SIF_COMPARISON_SAMPLER   = 2,
587   D3D_SIF_TEXTURE_COMPONENT_0   = 4,
588   D3D_SIF_TEXTURE_COMPONENT_1   = 8,
589   D3D_SIF_TEXTURE_COMPONENTS   = 12,
590   D3D10_SIF_USERPACKED   = D3D_SIF_USERPACKED,
591   D3D10_SIF_COMPARISON_SAMPLER   = D3D_SIF_COMPARISON_SAMPLER,
592   D3D10_SIF_TEXTURE_COMPONENT_0   = D3D_SIF_TEXTURE_COMPONENT_0,
593   D3D10_SIF_TEXTURE_COMPONENT_1   = D3D_SIF_TEXTURE_COMPONENT_1,
594   D3D10_SIF_TEXTURE_COMPONENTS   = D3D_SIF_TEXTURE_COMPONENTS,
595   D3D_SIF_FORCE_DWORD   = 0x7fffffff
596    }    D3D_SHADER_INPUT_FLAGS;
597
598typedef
599enum _D3D_SHADER_INPUT_TYPE
600    {   D3D_SIT_CBUFFER   = 0,
601   D3D_SIT_TBUFFER   = ( D3D_SIT_CBUFFER + 1 ) ,
602   D3D_SIT_TEXTURE   = ( D3D_SIT_TBUFFER + 1 ) ,
603   D3D_SIT_SAMPLER   = ( D3D_SIT_TEXTURE + 1 ) ,
604   D3D_SIT_UAV_RWTYPED   = ( D3D_SIT_SAMPLER + 1 ) ,
605   D3D_SIT_STRUCTURED   = ( D3D_SIT_UAV_RWTYPED + 1 ) ,
606   D3D_SIT_UAV_RWSTRUCTURED   = ( D3D_SIT_STRUCTURED + 1 ) ,
607   D3D_SIT_BYTEADDRESS   = ( D3D_SIT_UAV_RWSTRUCTURED + 1 ) ,
608   D3D_SIT_UAV_RWBYTEADDRESS   = ( D3D_SIT_BYTEADDRESS + 1 ) ,
609   D3D_SIT_UAV_APPEND_STRUCTURED   = ( D3D_SIT_UAV_RWBYTEADDRESS + 1 ) ,
610   D3D_SIT_UAV_CONSUME_STRUCTURED   = ( D3D_SIT_UAV_APPEND_STRUCTURED + 1 ) ,
611   D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER   = ( D3D_SIT_UAV_CONSUME_STRUCTURED + 1 ) ,
612   D3D10_SIT_CBUFFER   = D3D_SIT_CBUFFER,
613   D3D10_SIT_TBUFFER   = D3D_SIT_TBUFFER,
614   D3D10_SIT_TEXTURE   = D3D_SIT_TEXTURE,
615   D3D10_SIT_SAMPLER   = D3D_SIT_SAMPLER,
616   D3D11_SIT_UAV_RWTYPED   = D3D_SIT_UAV_RWTYPED,
617   D3D11_SIT_STRUCTURED   = D3D_SIT_STRUCTURED,
618   D3D11_SIT_UAV_RWSTRUCTURED   = D3D_SIT_UAV_RWSTRUCTURED,
619   D3D11_SIT_BYTEADDRESS   = D3D_SIT_BYTEADDRESS,
620   D3D11_SIT_UAV_RWBYTEADDRESS   = D3D_SIT_UAV_RWBYTEADDRESS,
621   D3D11_SIT_UAV_APPEND_STRUCTURED   = D3D_SIT_UAV_APPEND_STRUCTURED,
622   D3D11_SIT_UAV_CONSUME_STRUCTURED   = D3D_SIT_UAV_CONSUME_STRUCTURED,
623   D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER   = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER
624    }    D3D_SHADER_INPUT_TYPE;
625
626typedef
627enum _D3D_SHADER_CBUFFER_FLAGS
628    {   D3D_CBF_USERPACKED   = 1,
629   D3D10_CBF_USERPACKED   = D3D_CBF_USERPACKED,
630   D3D_CBF_FORCE_DWORD   = 0x7fffffff
631    }    D3D_SHADER_CBUFFER_FLAGS;
632
633typedef
634enum _D3D_CBUFFER_TYPE
635    {   D3D_CT_CBUFFER   = 0,
636   D3D_CT_TBUFFER   = ( D3D_CT_CBUFFER + 1 ) ,
637   D3D_CT_INTERFACE_POINTERS   = ( D3D_CT_TBUFFER + 1 ) ,
638   D3D_CT_RESOURCE_BIND_INFO   = ( D3D_CT_INTERFACE_POINTERS + 1 ) ,
639   D3D10_CT_CBUFFER   = D3D_CT_CBUFFER,
640   D3D10_CT_TBUFFER   = D3D_CT_TBUFFER,
641   D3D11_CT_CBUFFER   = D3D_CT_CBUFFER,
642   D3D11_CT_TBUFFER   = D3D_CT_TBUFFER,
643   D3D11_CT_INTERFACE_POINTERS   = D3D_CT_INTERFACE_POINTERS,
644   D3D11_CT_RESOURCE_BIND_INFO   = D3D_CT_RESOURCE_BIND_INFO
645    }    D3D_CBUFFER_TYPE;
646
647typedef
648enum D3D_NAME
649    {   D3D_NAME_UNDEFINED   = 0,
650   D3D_NAME_POSITION   = 1,
651   D3D_NAME_CLIP_DISTANCE   = 2,
652   D3D_NAME_CULL_DISTANCE   = 3,
653   D3D_NAME_RENDER_TARGET_ARRAY_INDEX   = 4,
654   D3D_NAME_VIEWPORT_ARRAY_INDEX   = 5,
655   D3D_NAME_VERTEX_ID   = 6,
656   D3D_NAME_PRIMITIVE_ID   = 7,
657   D3D_NAME_INSTANCE_ID   = 8,
658   D3D_NAME_IS_FRONT_FACE   = 9,
659   D3D_NAME_SAMPLE_INDEX   = 10,
660   D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR   = 11,
661   D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR   = 12,
662   D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR   = 13,
663   D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR   = 14,
664   D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR   = 15,
665   D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR   = 16,
666   D3D_NAME_TARGET   = 64,
667   D3D_NAME_DEPTH   = 65,
668   D3D_NAME_COVERAGE   = 66,
669   D3D_NAME_DEPTH_GREATER_EQUAL   = 67,
670   D3D_NAME_DEPTH_LESS_EQUAL   = 68,
671   D3D10_NAME_UNDEFINED   = D3D_NAME_UNDEFINED,
672   D3D10_NAME_POSITION   = D3D_NAME_POSITION,
673   D3D10_NAME_CLIP_DISTANCE   = D3D_NAME_CLIP_DISTANCE,
674   D3D10_NAME_CULL_DISTANCE   = D3D_NAME_CULL_DISTANCE,
675   D3D10_NAME_RENDER_TARGET_ARRAY_INDEX   = D3D_NAME_RENDER_TARGET_ARRAY_INDEX,
676   D3D10_NAME_VIEWPORT_ARRAY_INDEX   = D3D_NAME_VIEWPORT_ARRAY_INDEX,
677   D3D10_NAME_VERTEX_ID   = D3D_NAME_VERTEX_ID,
678   D3D10_NAME_PRIMITIVE_ID   = D3D_NAME_PRIMITIVE_ID,
679   D3D10_NAME_INSTANCE_ID   = D3D_NAME_INSTANCE_ID,
680   D3D10_NAME_IS_FRONT_FACE   = D3D_NAME_IS_FRONT_FACE,
681   D3D10_NAME_SAMPLE_INDEX   = D3D_NAME_SAMPLE_INDEX,
682   D3D10_NAME_TARGET   = D3D_NAME_TARGET,
683   D3D10_NAME_DEPTH   = D3D_NAME_DEPTH,
684   D3D10_NAME_COVERAGE   = D3D_NAME_COVERAGE,
685   D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR   = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR,
686   D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR   = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR,
687   D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR   = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR,
688   D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR   = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR,
689   D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR   = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR,
690   D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR   = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR,
691   D3D11_NAME_DEPTH_GREATER_EQUAL   = D3D_NAME_DEPTH_GREATER_EQUAL,
692   D3D11_NAME_DEPTH_LESS_EQUAL   = D3D_NAME_DEPTH_LESS_EQUAL
693    }    D3D_NAME;
694
695typedef
696enum D3D_RESOURCE_RETURN_TYPE
697    {   D3D_RETURN_TYPE_UNORM   = 1,
698   D3D_RETURN_TYPE_SNORM   = 2,
699   D3D_RETURN_TYPE_SINT   = 3,
700   D3D_RETURN_TYPE_UINT   = 4,
701   D3D_RETURN_TYPE_FLOAT   = 5,
702   D3D_RETURN_TYPE_MIXED   = 6,
703   D3D_RETURN_TYPE_DOUBLE   = 7,
704   D3D_RETURN_TYPE_CONTINUED   = 8,
705   D3D10_RETURN_TYPE_UNORM   = D3D_RETURN_TYPE_UNORM,
706   D3D10_RETURN_TYPE_SNORM   = D3D_RETURN_TYPE_SNORM,
707   D3D10_RETURN_TYPE_SINT   = D3D_RETURN_TYPE_SINT,
708   D3D10_RETURN_TYPE_UINT   = D3D_RETURN_TYPE_UINT,
709   D3D10_RETURN_TYPE_FLOAT   = D3D_RETURN_TYPE_FLOAT,
710   D3D10_RETURN_TYPE_MIXED   = D3D_RETURN_TYPE_MIXED,
711   D3D11_RETURN_TYPE_UNORM   = D3D_RETURN_TYPE_UNORM,
712   D3D11_RETURN_TYPE_SNORM   = D3D_RETURN_TYPE_SNORM,
713   D3D11_RETURN_TYPE_SINT   = D3D_RETURN_TYPE_SINT,
714   D3D11_RETURN_TYPE_UINT   = D3D_RETURN_TYPE_UINT,
715   D3D11_RETURN_TYPE_FLOAT   = D3D_RETURN_TYPE_FLOAT,
716   D3D11_RETURN_TYPE_MIXED   = D3D_RETURN_TYPE_MIXED,
717   D3D11_RETURN_TYPE_DOUBLE   = D3D_RETURN_TYPE_DOUBLE,
718   D3D11_RETURN_TYPE_CONTINUED   = D3D_RETURN_TYPE_CONTINUED
719    }    D3D_RESOURCE_RETURN_TYPE;
720
721typedef
722enum D3D_REGISTER_COMPONENT_TYPE
723    {   D3D_REGISTER_COMPONENT_UNKNOWN   = 0,
724   D3D_REGISTER_COMPONENT_UINT32   = 1,
725   D3D_REGISTER_COMPONENT_SINT32   = 2,
726   D3D_REGISTER_COMPONENT_FLOAT32   = 3,
727   D3D10_REGISTER_COMPONENT_UNKNOWN   = D3D_REGISTER_COMPONENT_UNKNOWN,
728   D3D10_REGISTER_COMPONENT_UINT32   = D3D_REGISTER_COMPONENT_UINT32,
729   D3D10_REGISTER_COMPONENT_SINT32   = D3D_REGISTER_COMPONENT_SINT32,
730   D3D10_REGISTER_COMPONENT_FLOAT32   = D3D_REGISTER_COMPONENT_FLOAT32
731    }    D3D_REGISTER_COMPONENT_TYPE;
732
733typedef
734enum D3D_TESSELLATOR_DOMAIN
735    {   D3D_TESSELLATOR_DOMAIN_UNDEFINED   = 0,
736   D3D_TESSELLATOR_DOMAIN_ISOLINE   = 1,
737   D3D_TESSELLATOR_DOMAIN_TRI   = 2,
738   D3D_TESSELLATOR_DOMAIN_QUAD   = 3,
739   D3D11_TESSELLATOR_DOMAIN_UNDEFINED   = D3D_TESSELLATOR_DOMAIN_UNDEFINED,
740   D3D11_TESSELLATOR_DOMAIN_ISOLINE   = D3D_TESSELLATOR_DOMAIN_ISOLINE,
741   D3D11_TESSELLATOR_DOMAIN_TRI   = D3D_TESSELLATOR_DOMAIN_TRI,
742   D3D11_TESSELLATOR_DOMAIN_QUAD   = D3D_TESSELLATOR_DOMAIN_QUAD
743    }    D3D_TESSELLATOR_DOMAIN;
744
745typedef
746enum D3D_TESSELLATOR_PARTITIONING
747    {   D3D_TESSELLATOR_PARTITIONING_UNDEFINED   = 0,
748   D3D_TESSELLATOR_PARTITIONING_INTEGER   = 1,
749   D3D_TESSELLATOR_PARTITIONING_POW2   = 2,
750   D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD   = 3,
751   D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN   = 4,
752   D3D11_TESSELLATOR_PARTITIONING_UNDEFINED   = D3D_TESSELLATOR_PARTITIONING_UNDEFINED,
753   D3D11_TESSELLATOR_PARTITIONING_INTEGER   = D3D_TESSELLATOR_PARTITIONING_INTEGER,
754   D3D11_TESSELLATOR_PARTITIONING_POW2   = D3D_TESSELLATOR_PARTITIONING_POW2,
755   D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD   = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD,
756   D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN   = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN
757    }    D3D_TESSELLATOR_PARTITIONING;
758
759typedef
760enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE
761    {   D3D_TESSELLATOR_OUTPUT_UNDEFINED   = 0,
762   D3D_TESSELLATOR_OUTPUT_POINT   = 1,
763   D3D_TESSELLATOR_OUTPUT_LINE   = 2,
764   D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW   = 3,
765   D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW   = 4,
766   D3D11_TESSELLATOR_OUTPUT_UNDEFINED   = D3D_TESSELLATOR_OUTPUT_UNDEFINED,
767   D3D11_TESSELLATOR_OUTPUT_POINT   = D3D_TESSELLATOR_OUTPUT_POINT,
768   D3D11_TESSELLATOR_OUTPUT_LINE   = D3D_TESSELLATOR_OUTPUT_LINE,
769   D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW   = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW,
770   D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW   = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW
771    }    D3D_TESSELLATOR_OUTPUT_PRIMITIVE;
772
773DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00);
774
775
776extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_c_ifspec;
777extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_s_ifspec;
778
779/* Additional Prototypes for ALL interfaces */
780
781/* end of Additional Prototypes */
782
783#ifdef __cplusplus
784}
785#endif
786
787#endif
788
789
trunk/3rdparty/dxsdk/Include/d3dcompiler.h
r0r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (c) Microsoft Corporation.  All rights reserved.
4//
5//  File:       D3DCompiler.h
6//  Content:    D3D Compilation Types and APIs
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#ifndef __D3DCOMPILER_H__
11#define __D3DCOMPILER_H__
12
13// Current name of the DLL shipped in the same SDK as this header.
14
15
16#define D3DCOMPILER_DLL_W L"d3dcompiler_43.dll"
17#define D3DCOMPILER_DLL_A "d3dcompiler_43.dll"
18
19#ifdef UNICODE
20    #define D3DCOMPILER_DLL D3DCOMPILER_DLL_W
21#else
22    #define D3DCOMPILER_DLL D3DCOMPILER_DLL_A
23#endif
24
25#include "d3d11shader.h"
26
27//////////////////////////////////////////////////////////////////////////////
28// APIs //////////////////////////////////////////////////////////////////////
29//////////////////////////////////////////////////////////////////////////////
30
31#ifdef __cplusplus
32extern "C" {
33#endif //__cplusplus
34
35//----------------------------------------------------------------------------
36// D3DCOMPILE flags:
37// -----------------
38// D3DCOMPILE_DEBUG
39//   Insert debug file/line/type/symbol information.
40//
41// D3DCOMPILE_SKIP_VALIDATION
42//   Do not validate the generated code against known capabilities and
43//   constraints.  This option is only recommended when compiling shaders
44//   you KNOW will work.  (ie. have compiled before without this option.)
45//   Shaders are always validated by D3D before they are set to the device.
46//
47// D3DCOMPILE_SKIP_OPTIMIZATION
48//   Instructs the compiler to skip optimization steps during code generation.
49//   Unless you are trying to isolate a problem in your code using this option
50//   is not recommended.
51//
52// D3DCOMPILE_PACK_MATRIX_ROW_MAJOR
53//   Unless explicitly specified, matrices will be packed in row-major order
54//   on input and output from the shader.
55//
56// D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR
57//   Unless explicitly specified, matrices will be packed in column-major
58//   order on input and output from the shader.  This is generally more
59//   efficient, since it allows vector-matrix multiplication to be performed
60//   using a series of dot-products.
61//
62// D3DCOMPILE_PARTIAL_PRECISION
63//   Force all computations in resulting shader to occur at partial precision.
64//   This may result in faster evaluation of shaders on some hardware.
65//
66// D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT
67//   Force compiler to compile against the next highest available software
68//   target for vertex shaders.  This flag also turns optimizations off,
69//   and debugging on. 
70//
71// D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT
72//   Force compiler to compile against the next highest available software
73//   target for pixel shaders.  This flag also turns optimizations off,
74//   and debugging on.
75//
76// D3DCOMPILE_NO_PRESHADER
77//   Disables Preshaders. Using this flag will cause the compiler to not
78//   pull out static expression for evaluation on the host cpu
79//
80// D3DCOMPILE_AVOID_FLOW_CONTROL
81//   Hint compiler to avoid flow-control constructs where possible.
82//
83// D3DCOMPILE_PREFER_FLOW_CONTROL
84//   Hint compiler to prefer flow-control constructs where possible.
85//
86// D3DCOMPILE_ENABLE_STRICTNESS
87//   By default, the HLSL/Effect compilers are not strict on deprecated syntax.
88//   Specifying this flag enables the strict mode. Deprecated syntax may be
89//   removed in a future release, and enabling syntax is a good way to make
90//   sure your shaders comply to the latest spec.
91//
92// D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY
93//   This enables older shaders to compile to 4_0 targets.
94//
95//----------------------------------------------------------------------------
96
97#define D3DCOMPILE_DEBUG                          (1 << 0)
98#define D3DCOMPILE_SKIP_VALIDATION                (1 << 1)
99#define D3DCOMPILE_SKIP_OPTIMIZATION              (1 << 2)
100#define D3DCOMPILE_PACK_MATRIX_ROW_MAJOR          (1 << 3)
101#define D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR       (1 << 4)
102#define D3DCOMPILE_PARTIAL_PRECISION              (1 << 5)
103#define D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT       (1 << 6)
104#define D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT       (1 << 7)
105#define D3DCOMPILE_NO_PRESHADER                   (1 << 8)
106#define D3DCOMPILE_AVOID_FLOW_CONTROL             (1 << 9)
107#define D3DCOMPILE_PREFER_FLOW_CONTROL            (1 << 10)
108#define D3DCOMPILE_ENABLE_STRICTNESS              (1 << 11)
109#define D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY (1 << 12)
110#define D3DCOMPILE_IEEE_STRICTNESS                (1 << 13)
111#define D3DCOMPILE_OPTIMIZATION_LEVEL0            (1 << 14)
112#define D3DCOMPILE_OPTIMIZATION_LEVEL1            0
113#define D3DCOMPILE_OPTIMIZATION_LEVEL2            ((1 << 14) | (1 << 15))
114#define D3DCOMPILE_OPTIMIZATION_LEVEL3            (1 << 15)
115#define D3DCOMPILE_RESERVED16                     (1 << 16)
116#define D3DCOMPILE_RESERVED17                     (1 << 17)
117#define D3DCOMPILE_WARNINGS_ARE_ERRORS            (1 << 18)
118
119//----------------------------------------------------------------------------
120// D3DCOMPILE_EFFECT flags:
121// -------------------------------------
122// These flags are passed in when creating an effect, and affect
123// either compilation behavior or runtime effect behavior
124//
125// D3DCOMPILE_EFFECT_CHILD_EFFECT
126//   Compile this .fx file to a child effect. Child effects have no
127//   initializers for any shared values as these are initialied in the
128//   master effect (pool).
129//
130// D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS
131//   By default, performance mode is enabled.  Performance mode
132//   disallows mutable state objects by preventing non-literal
133//   expressions from appearing in state object definitions.
134//   Specifying this flag will disable the mode and allow for mutable
135//   state objects.
136//
137//----------------------------------------------------------------------------
138
139#define D3DCOMPILE_EFFECT_CHILD_EFFECT              (1 << 0)
140#define D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS            (1 << 1)
141
142//----------------------------------------------------------------------------
143// D3DCompile:
144// ----------
145// Compile source text into bytecode appropriate for the given target.
146//----------------------------------------------------------------------------
147
148HRESULT WINAPI
149D3DCompile(__in_bcount(SrcDataSize) LPCVOID pSrcData,
150           __in SIZE_T SrcDataSize,
151           __in_opt LPCSTR pSourceName,
152           __in_xcount_opt(pDefines->Name != NULL) CONST D3D_SHADER_MACRO* pDefines,
153           __in_opt ID3DInclude* pInclude,
154           __in LPCSTR pEntrypoint,
155           __in LPCSTR pTarget,
156           __in UINT Flags1,
157           __in UINT Flags2,
158           __out ID3DBlob** ppCode,
159           __out_opt ID3DBlob** ppErrorMsgs);
160
161typedef HRESULT (WINAPI *pD3DCompile)
162    (LPCVOID                         pSrcData,
163     SIZE_T                          SrcDataSize,
164     LPCSTR                          pFileName,
165     CONST D3D_SHADER_MACRO*         pDefines,
166     ID3DInclude*                    pInclude,
167     LPCSTR                          pEntrypoint,
168     LPCSTR                          pTarget,
169     UINT                            Flags1,
170     UINT                            Flags2,
171     ID3DBlob**                      ppCode,
172     ID3DBlob**                      ppErrorMsgs);
173     
174//----------------------------------------------------------------------------
175// D3DPreprocess:
176// ----------
177// Process source text with the compiler's preprocessor and return
178// the resulting text.
179//----------------------------------------------------------------------------
180
181HRESULT WINAPI
182D3DPreprocess(__in_bcount(SrcDataSize) LPCVOID pSrcData,
183              __in SIZE_T SrcDataSize,
184              __in_opt LPCSTR pSourceName,
185              __in_opt CONST D3D_SHADER_MACRO* pDefines,
186              __in_opt ID3DInclude* pInclude,
187              __out ID3DBlob** ppCodeText,
188              __out_opt ID3DBlob** ppErrorMsgs);
189
190typedef HRESULT (WINAPI *pD3DPreprocess)
191    (LPCVOID                      pSrcData,
192     SIZE_T                       SrcDataSize,
193     LPCSTR                       pFileName,
194     CONST D3D_SHADER_MACRO*      pDefines,
195     ID3DInclude*                 pInclude,
196     ID3DBlob**                   ppCodeText,
197     ID3DBlob**                   ppErrorMsgs);
198
199//----------------------------------------------------------------------------
200// D3DGetDebugInfo:
201// -----------------------
202// Gets shader debug info.  Debug info is generated by D3DCompile and is
203// embedded in the body of the shader.
204//----------------------------------------------------------------------------
205
206HRESULT WINAPI
207D3DGetDebugInfo(__in_bcount(SrcDataSize) LPCVOID pSrcData,
208                __in SIZE_T SrcDataSize,
209                __out ID3DBlob** ppDebugInfo);
210
211//----------------------------------------------------------------------------
212// D3DReflect:
213// ----------
214// Shader code contains metadata that can be inspected via the
215// reflection APIs.
216//----------------------------------------------------------------------------
217
218HRESULT WINAPI
219D3DReflect(__in_bcount(SrcDataSize) LPCVOID pSrcData,
220           __in SIZE_T SrcDataSize,
221      __in REFIID pInterface,
222           __out void** ppReflector);
223
224//----------------------------------------------------------------------------
225// D3DDisassemble:
226// ----------------------
227// Takes a binary shader and returns a buffer containing text assembly.
228//----------------------------------------------------------------------------
229
230#define D3D_DISASM_ENABLE_COLOR_CODE            0x00000001
231#define D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS  0x00000002
232#define D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING 0x00000004
233#define D3D_DISASM_ENABLE_INSTRUCTION_CYCLE     0x00000008
234#define D3D_DISASM_DISABLE_DEBUG_INFO           0x00000010
235
236HRESULT WINAPI
237D3DDisassemble(__in_bcount(SrcDataSize) LPCVOID pSrcData,
238               __in SIZE_T SrcDataSize,
239               __in UINT Flags,
240               __in_opt LPCSTR szComments,
241               __out ID3DBlob** ppDisassembly);
242
243typedef HRESULT (WINAPI *pD3DDisassemble)
244    (__in_bcount(SrcDataSize) LPCVOID pSrcData,
245     __in SIZE_T SrcDataSize,
246     __in UINT Flags,
247     __in_opt LPCSTR szComments,
248     __out ID3DBlob** ppDisassembly);
249
250//----------------------------------------------------------------------------
251// D3DDisassemble10Effect:
252// -----------------------
253// Takes a D3D10 effect interface and returns a
254// buffer containing text assembly.
255//----------------------------------------------------------------------------
256
257HRESULT WINAPI
258D3DDisassemble10Effect(__in interface ID3D10Effect *pEffect,
259                       __in UINT Flags,
260                       __out ID3DBlob** ppDisassembly);
261
262//----------------------------------------------------------------------------
263// D3DGetInputSignatureBlob:
264// -----------------------
265// Retrieve the input signature from a compilation result.
266//----------------------------------------------------------------------------
267
268HRESULT WINAPI
269D3DGetInputSignatureBlob(__in_bcount(SrcDataSize) LPCVOID pSrcData,
270                         __in SIZE_T SrcDataSize,
271                         __out ID3DBlob** ppSignatureBlob);
272
273//----------------------------------------------------------------------------
274// D3DGetOutputSignatureBlob:
275// -----------------------
276// Retrieve the output signature from a compilation result.
277//----------------------------------------------------------------------------
278
279HRESULT WINAPI
280D3DGetOutputSignatureBlob(__in_bcount(SrcDataSize) LPCVOID pSrcData,
281                          __in SIZE_T SrcDataSize,
282                          __out ID3DBlob** ppSignatureBlob);
283
284//----------------------------------------------------------------------------
285// D3DGetInputAndOutputSignatureBlob:
286// -----------------------
287// Retrieve the input and output signatures from a compilation result.
288//----------------------------------------------------------------------------
289
290HRESULT WINAPI
291D3DGetInputAndOutputSignatureBlob(__in_bcount(SrcDataSize) LPCVOID pSrcData,
292                                  __in SIZE_T SrcDataSize,
293                                  __out ID3DBlob** ppSignatureBlob);
294
295//----------------------------------------------------------------------------
296// D3DStripShader:
297// -----------------------
298// Removes unwanted blobs from a compilation result
299//----------------------------------------------------------------------------
300
301typedef enum D3DCOMPILER_STRIP_FLAGS
302{
303    D3DCOMPILER_STRIP_REFLECTION_DATA = 1,
304    D3DCOMPILER_STRIP_DEBUG_INFO      = 2,
305    D3DCOMPILER_STRIP_TEST_BLOBS      = 4,
306    D3DCOMPILER_STRIP_FORCE_DWORD     = 0x7fffffff,
307} D3DCOMPILER_STRIP_FLAGS;
308
309HRESULT WINAPI
310D3DStripShader(__in_bcount(BytecodeLength) LPCVOID pShaderBytecode,
311               __in SIZE_T BytecodeLength,
312               __in UINT uStripFlags,
313               __out ID3DBlob** ppStrippedBlob);
314
315//----------------------------------------------------------------------------
316// D3DGetBlobPart:
317// -----------------------
318// Extracts information from a compilation result.
319//----------------------------------------------------------------------------
320
321typedef enum D3D_BLOB_PART
322{
323    D3D_BLOB_INPUT_SIGNATURE_BLOB,
324    D3D_BLOB_OUTPUT_SIGNATURE_BLOB,
325    D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB,
326    D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB,
327    D3D_BLOB_ALL_SIGNATURE_BLOB,
328    D3D_BLOB_DEBUG_INFO,
329    D3D_BLOB_LEGACY_SHADER,
330    D3D_BLOB_XNA_PREPASS_SHADER,
331    D3D_BLOB_XNA_SHADER,
332
333    // Test parts are only produced by special compiler versions and so
334    // are usually not present in shaders.
335    D3D_BLOB_TEST_ALTERNATE_SHADER = 0x8000,
336    D3D_BLOB_TEST_COMPILE_DETAILS,
337    D3D_BLOB_TEST_COMPILE_PERF,
338} D3D_BLOB_PART;
339
340HRESULT WINAPI
341D3DGetBlobPart(__in_bcount(SrcDataSize) LPCVOID pSrcData,
342               __in SIZE_T SrcDataSize,
343               __in D3D_BLOB_PART Part,
344               __in UINT Flags,
345               __out ID3DBlob** ppPart);
346
347//----------------------------------------------------------------------------
348// D3DCompressShaders:
349// -----------------------
350// Compresses a set of shaders into a more compact form.
351//----------------------------------------------------------------------------
352
353typedef struct _D3D_SHADER_DATA
354{
355    LPCVOID pBytecode;
356    SIZE_T BytecodeLength;
357} D3D_SHADER_DATA;
358
359#define D3D_COMPRESS_SHADER_KEEP_ALL_PARTS 0x00000001
360
361HRESULT WINAPI
362D3DCompressShaders(__in UINT uNumShaders,
363                   __in_ecount(uNumShaders) D3D_SHADER_DATA* pShaderData,
364                   __in UINT uFlags,
365                   __out ID3DBlob** ppCompressedData);
366
367//----------------------------------------------------------------------------
368// D3DDecompressShaders:
369// -----------------------
370// Decompresses one or more shaders from a compressed set.
371//----------------------------------------------------------------------------
372
373HRESULT WINAPI
374D3DDecompressShaders(__in_bcount(SrcDataSize) LPCVOID pSrcData,
375                     __in SIZE_T SrcDataSize,
376                     __in UINT uNumShaders,         
377                     __in UINT uStartIndex,
378                     __in_ecount_opt(uNumShaders) UINT* pIndices,
379                     __in UINT uFlags,
380                     __out_ecount(uNumShaders) ID3DBlob** ppShaders,
381           __out_opt UINT* pTotalShaders);
382
383//----------------------------------------------------------------------------
384// D3DCreateBlob:
385// -----------------------
386// Create an ID3DBlob instance.
387//----------------------------------------------------------------------------
388
389HRESULT WINAPI
390D3DCreateBlob(__in SIZE_T Size,
391              __out ID3DBlob** ppBlob);
392
393#ifdef __cplusplus
394}
395#endif //__cplusplus
396   
397#endif // #ifndef __D3DCOMPILER_H__
trunk/3rdparty/dxsdk/Include/d3dcsx.h
r0r243311
1
2//////////////////////////////////////////////////////////////////////////////
3//
4//  Copyright (c) Microsoft Corporation.  All rights reserved.
5//
6//  File:       D3DX11GPGPU.h
7//  Content:    D3DX11 General Purpose GPU computing algorithms
8//
9//////////////////////////////////////////////////////////////////////////////
10
11#include "d3dx11.h"
12
13#ifndef __D3DX11GPGPU_H__
14#define __D3DX11GPGPU_H__
15
16// Current name of the DLL shipped in the same SDK as this header.
17
18
19#define D3DCSX_DLL_W L"d3dcsx_43.dll"
20#define D3DCSX_DLL_A "d3dcsx_43.dll"
21
22#ifdef UNICODE
23    #define D3DCSX_DLL D3DCSX_DLL_W
24#else
25    #define D3DCSX_DLL D3DCSX_DLL_A
26#endif
27
28
29#ifdef __cplusplus
30extern "C" {
31#endif //__cplusplus
32
33
34
35
36
37
38//////////////////////////////////////////////////////////////////////////////
39
40typedef enum D3DX11_SCAN_DATA_TYPE
41{
42    D3DX11_SCAN_DATA_TYPE_FLOAT = 1,
43    D3DX11_SCAN_DATA_TYPE_INT,
44    D3DX11_SCAN_DATA_TYPE_UINT,
45} D3DX11_SCAN_DATA_TYPE;
46
47typedef enum D3DX11_SCAN_OPCODE
48{
49    D3DX11_SCAN_OPCODE_ADD = 1,
50    D3DX11_SCAN_OPCODE_MIN,
51    D3DX11_SCAN_OPCODE_MAX,
52    D3DX11_SCAN_OPCODE_MUL,
53    D3DX11_SCAN_OPCODE_AND,
54    D3DX11_SCAN_OPCODE_OR,
55    D3DX11_SCAN_OPCODE_XOR,
56} D3DX11_SCAN_OPCODE;
57
58typedef enum D3DX11_SCAN_DIRECTION
59{
60    D3DX11_SCAN_DIRECTION_FORWARD = 1,
61    D3DX11_SCAN_DIRECTION_BACKWARD,
62} D3DX11_SCAN_DIRECTION;
63
64
65//////////////////////////////////////////////////////////////////////////////
66// ID3DX11Scan:
67//////////////////////////////////////////////////////////////////////////////
68
69// {5089b68f-e71d-4d38-be8e-f363b95a9405}
70DEFINE_GUID(IID_ID3DX11Scan, 0x5089b68f, 0xe71d, 0x4d38, 0xbe, 0x8e, 0xf3, 0x63, 0xb9, 0x5a, 0x94, 0x05);
71
72#undef INTERFACE
73#define INTERFACE ID3DX11Scan
74
75DECLARE_INTERFACE_(ID3DX11Scan, IUnknown)
76{
77    // IUnknown
78    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
79    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
80    STDMETHOD_(ULONG, Release)(THIS) PURE;
81
82    // ID3DX11Scan
83
84    STDMETHOD(SetScanDirection)(THIS_ D3DX11_SCAN_DIRECTION Direction) PURE;
85
86    //=============================================================================
87    // Performs an unsegmented scan of a sequence in-place or out-of-place
88    //  ElementType         element type
89    //  OpCode              binary operation
90    //  Direction           scan direction
91    //  ElementScanSize     size of scan, in elements
92    //  pSrc                input sequence on the device. pSrc==pDst for in-place scans
93    //  pDst                output sequence on the device
94    //=============================================================================
95    STDMETHOD(Scan)( THIS_
96        D3DX11_SCAN_DATA_TYPE               ElementType,
97        D3DX11_SCAN_OPCODE                  OpCode,
98        UINT                                ElementScanSize,
99        __in ID3D11UnorderedAccessView*     pSrc,
100        __in ID3D11UnorderedAccessView*     pDst
101    ) PURE;
102
103    //=============================================================================
104    // Performs a multiscan of a sequence in-place or out-of-place
105    //  ElementType         element type
106    //  OpCode              binary operation
107    //  Direction           scan direction
108    //  ElementScanSize     size of scan, in elements
109    //  ElementScanPitch    pitch of the next scan, in elements
110    //  ScanCount           number of scans in a multiscan
111    //  pSrc                input sequence on the device. pSrc==pDst for in-place scans
112    //  pDst                output sequence on the device
113    //=============================================================================
114    STDMETHOD(Multiscan)( THIS_
115        D3DX11_SCAN_DATA_TYPE               ElementType,
116        D3DX11_SCAN_OPCODE                  OpCode,
117        UINT                                ElementScanSize,
118        UINT                                ElementScanPitch,
119        UINT                                ScanCount,
120        __in ID3D11UnorderedAccessView*     pSrc,
121        __in ID3D11UnorderedAccessView*     pDst
122    ) PURE;
123};
124
125
126//=============================================================================
127// Creates a scan context
128//  pDevice             the device context
129//  MaxElementScanSize  maximum single scan size, in elements (FLOAT, UINT, or INT)
130//  MaxScanCount        maximum number of scans in multiscan
131//  ppScanContext       new scan context
132//=============================================================================
133HRESULT WINAPI D3DX11CreateScan(
134    __in ID3D11DeviceContext* pDeviceContext,
135    UINT MaxElementScanSize,
136    UINT MaxScanCount,
137    __out ID3DX11Scan** ppScan );
138
139
140
141//////////////////////////////////////////////////////////////////////////////
142// ID3DX11SegmentedScan:
143//////////////////////////////////////////////////////////////////////////////
144
145// {a915128c-d954-4c79-bfe1-64db923194d6}
146DEFINE_GUID(IID_ID3DX11SegmentedScan, 0xa915128c, 0xd954, 0x4c79, 0xbf, 0xe1, 0x64, 0xdb, 0x92, 0x31, 0x94, 0xd6);
147
148#undef INTERFACE
149#define INTERFACE ID3DX11SegmentedScan
150
151DECLARE_INTERFACE_(ID3DX11SegmentedScan, IUnknown)
152{
153    // IUnknown
154    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
155    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
156    STDMETHOD_(ULONG, Release)(THIS) PURE;
157
158    // ID3DX11SegmentedScan
159
160    STDMETHOD(SetScanDirection)(THIS_ D3DX11_SCAN_DIRECTION Direction) PURE;
161
162    //=============================================================================
163    // Performs a segscan of a sequence in-place or out-of-place
164    //  ElementType         element type
165    //  OpCode              binary operation
166    //  Direction           scan direction
167    //  pSrcElementFlags    compact array of bits, one per element of pSrc.  A set value
168    //                      indicates the start of a new segment.
169    //  ElementScanSize     size of scan, in elements
170    //  pSrc                input sequence on the device. pSrc==pDst for in-place scans
171    //  pDst                output sequence on the device
172    //=============================================================================
173    STDMETHOD(SegScan)( THIS_
174        D3DX11_SCAN_DATA_TYPE               ElementType,
175        D3DX11_SCAN_OPCODE                  OpCode,
176        UINT                                ElementScanSize,
177        __in_opt ID3D11UnorderedAccessView* pSrc,
178        __in ID3D11UnorderedAccessView*     pSrcElementFlags,
179        __in ID3D11UnorderedAccessView*     pDst
180    ) PURE;
181};
182
183
184//=============================================================================
185// Creates a segmented scan context
186//  pDevice             the device context
187//  MaxElementScanSize  maximum single scan size, in elements (FLOAT, UINT, or INT)
188//  ppScanContext       new scan context
189//=============================================================================
190HRESULT WINAPI D3DX11CreateSegmentedScan(
191    __in ID3D11DeviceContext* pDeviceContext,
192    UINT MaxElementScanSize,
193    __out ID3DX11SegmentedScan** ppScan );
194
195
196
197//////////////////////////////////////////////////////////////////////////////
198
199#define D3DX11_FFT_MAX_PRECOMPUTE_BUFFERS 4
200#define D3DX11_FFT_MAX_TEMP_BUFFERS 4
201#define D3DX11_FFT_MAX_DIMENSIONS 32
202
203
204
205//////////////////////////////////////////////////////////////////////////////
206// ID3DX11FFT:
207//////////////////////////////////////////////////////////////////////////////
208
209// {b3f7a938-4c93-4310-a675-b30d6de50553}
210DEFINE_GUID(IID_ID3DX11FFT, 0xb3f7a938, 0x4c93, 0x4310, 0xa6, 0x75, 0xb3, 0x0d, 0x6d, 0xe5, 0x05, 0x53);
211
212#undef INTERFACE
213#define INTERFACE ID3DX11FFT
214
215DECLARE_INTERFACE_(ID3DX11FFT, IUnknown)
216{
217    // IUnknown
218    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
219    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
220    STDMETHOD_(ULONG, Release)(THIS) PURE;
221
222    // ID3DX11FFT
223
224    // scale for forward transform (defaults to 1 if set to 0)
225    STDMETHOD(SetForwardScale)(THIS_ FLOAT ForwardScale) PURE;
226    STDMETHOD_(FLOAT, GetForwardScale)(THIS) PURE;
227
228    // scale for inverse transform (defaults to 1/N if set to 0, where N is
229    // the product of the transformed dimension lengths
230    STDMETHOD(SetInverseScale)(THIS_ FLOAT InverseScale) PURE;
231    STDMETHOD_(FLOAT, GetInverseScale)(THIS) PURE;
232
233    //------------------------------------------------------------------------------
234    // Attaches buffers to the context and performs any required precomputation.
235    // The buffers must be no smaller than the corresponding buffer sizes returned
236    // by D3DX11CreateFFT*(). Temp buffers may beshared between multiple contexts,
237    // though care should be taken to concurrently execute multiple FFTs which share
238    // temp buffers.
239    //
240    // NumTempBuffers               number of buffers in ppTempBuffers
241    // ppTempBuffers                temp buffers to attach
242    // NumPrecomputeBuffers         number of buffers in ppPrecomputeBufferSizes
243    // ppPrecomputeBufferSizes      buffers to hold precomputed data
244    STDMETHOD(AttachBuffersAndPrecompute)(  THIS_
245        __in_range(0,D3DX11_FFT_MAX_TEMP_BUFFERS) UINT NumTempBuffers,
246        __in_ecount(NumTempBuffers) ID3D11UnorderedAccessView*const* ppTempBuffers,   
247        __in_range(0,D3DX11_FFT_MAX_PRECOMPUTE_BUFFERS) UINT NumPrecomputeBuffers,
248        __in_ecount(NumPrecomputeBuffers) ID3D11UnorderedAccessView*const* ppPrecomputeBufferSizes ) PURE;
249
250    //------------------------------------------------------------------------------
251    // Call after buffers have been attached to the context, pInput and *ppOuput can
252    // be one of the temp buffers.  If *ppOutput == NULL, then the computation will ping-pong
253    // between temp buffers and the last buffer written to is stored at *ppOutput.
254    // Otherwise, *ppOutput is used as the output buffer (which may incur an extra copy).
255    //
256    // The format of complex data is interleaved components, e.g. (Real0, Imag0),
257    // (Real1, Imag1) ... etc. Data is stored in row major order
258    //
259    // pInputBuffer         view onto input buffer
260    // ppOutpuBuffert       pointer to view of output buffer
261    STDMETHOD(ForwardTransform)( THIS_
262        __in const ID3D11UnorderedAccessView* pInputBuffer,
263        __inout ID3D11UnorderedAccessView** ppOutputBuffer ) PURE;
264
265    STDMETHOD(InverseTransform)( THIS_
266        __in const ID3D11UnorderedAccessView* pInputBuffer,
267        __inout ID3D11UnorderedAccessView** ppOutputBuffer ) PURE;
268};
269
270
271//////////////////////////////////////////////////////////////////////////////
272// ID3DX11FFT Creation Routines
273//////////////////////////////////////////////////////////////////////////////
274
275typedef enum D3DX11_FFT_DATA_TYPE
276{
277    D3DX11_FFT_DATA_TYPE_REAL,
278    D3DX11_FFT_DATA_TYPE_COMPLEX,
279} D3DX11_FFT_DATA_TYPE;
280
281typedef enum D3DX11_FFT_DIM_MASK
282{
283    D3DX11_FFT_DIM_MASK_1D   = 0x1,
284    D3DX11_FFT_DIM_MASK_2D   = 0x3,
285    D3DX11_FFT_DIM_MASK_3D   = 0x7,
286} D3DX11_FFT_DIM_MASK;
287
288typedef struct D3DX11_FFT_DESC
289{
290    UINT NumDimensions;                             // number of dimensions
291    UINT ElementLengths[D3DX11_FFT_MAX_DIMENSIONS]; // length of each dimension
292    UINT DimensionMask;                             // a bit set for each dimensions to transform
293                                                    //     (see D3DX11_FFT_DIM_MASK for common masks)
294    D3DX11_FFT_DATA_TYPE Type;                      // type of the elements in spatial domain
295} D3DX11_FFT_DESC;
296
297
298//------------------------------------------------------------------------------
299// NumTempBufferSizes           Number of temporary buffers needed
300// pTempBufferSizes             Minimum sizes (in FLOATs) of temporary buffers
301// NumPrecomputeBufferSizes     Number of precompute buffers needed
302// pPrecomputeBufferSizes       minimum sizes (in FLOATs) for precompute buffers
303//------------------------------------------------------------------------------
304
305typedef struct D3DX11_FFT_BUFFER_INFO
306{
307    __range(0,D3DX11_FFT_MAX_TEMP_BUFFERS) UINT NumTempBufferSizes;
308    UINT TempBufferFloatSizes[D3DX11_FFT_MAX_TEMP_BUFFERS];
309    __range(0,D3DX11_FFT_MAX_PRECOMPUTE_BUFFERS) UINT NumPrecomputeBufferSizes;
310    UINT PrecomputeBufferFloatSizes[D3DX11_FFT_MAX_PRECOMPUTE_BUFFERS];   
311} D3DX11_FFT_BUFFER_INFO;
312
313
314typedef enum D3DX11_FFT_CREATE_FLAG
315{
316    D3DX11_FFT_CREATE_FLAG_NO_PRECOMPUTE_BUFFERS = 0x01L,   // do not precompute values and store into buffers
317} D3DX11_FFT_CREATE_FLAG;
318
319
320//------------------------------------------------------------------------------
321// Creates an ID3DX11FFT COM interface object and returns a pointer to it at *ppFFT.
322// The descriptor describes the shape of the data as well as the scaling factors
323// that should be used for forward and inverse transforms.
324// The FFT computation may require temporaries that act as ping-pong buffers
325// and for other purposes. aTempSizes is a list of the sizes required for
326// temporaries. Likewise, some data may need to be precomputed and the sizes
327// of those sizes are returned in aPrecomputedBufferSizes.
328//
329// To perform a computation, follow these steps:
330// 1) Create the FFT context object
331// 2) Precompute (and Attach temp working buffers of at least the required size)
332// 3) Call Compute() on some input data
333//
334// Compute() may be called repeatedly with different inputs and transform
335// directions. When finished with the FFT work, release the FFT interface()
336//
337// Device                     Direct3DDeviceContext to use                      in
338// pDesc                      Descriptor for FFT transform                      in
339// Count                      the number of 1D FFTs to perform                  in
340// Flags                      See D3DX11_FFT_CREATE_FLAG                        in
341// pBufferInfo                Pointer to BUFFER_INFO struct, filled by funciton out
342// ppFFT                      Pointer to returned context pointer               out
343//------------------------------------------------------------------------------
344
345HRESULT WINAPI D3DX11CreateFFT(
346   ID3D11DeviceContext* pDeviceContext,
347   __in const D3DX11_FFT_DESC* pDesc,
348   UINT Flags,
349   __out D3DX11_FFT_BUFFER_INFO* pBufferInfo,
350   __out ID3DX11FFT** ppFFT
351 );
352
353HRESULT WINAPI D3DX11CreateFFT1DReal(
354   ID3D11DeviceContext* pDeviceContext,
355   UINT X,
356   UINT Flags,
357   __out D3DX11_FFT_BUFFER_INFO* pBufferInfo,
358   __out ID3DX11FFT** ppFFT
359 );
360HRESULT WINAPI D3DX11CreateFFT1DComplex(
361   ID3D11DeviceContext* pDeviceContext,
362   UINT X,
363   UINT Flags,
364   __out D3DX11_FFT_BUFFER_INFO* pBufferInfo,
365   __out ID3DX11FFT** ppFFT
366 );
367HRESULT WINAPI D3DX11CreateFFT2DReal(
368   ID3D11DeviceContext* pDeviceContext,
369   UINT X,
370   UINT Y,
371   UINT Flags,
372   __out D3DX11_FFT_BUFFER_INFO* pBufferInfo,
373   __out ID3DX11FFT** ppFFT
374 );
375HRESULT WINAPI D3DX11CreateFFT2DComplex(
376   ID3D11DeviceContext* pDeviceContext,
377   UINT X,
378   UINT Y,
379   UINT Flags,
380   __out D3DX11_FFT_BUFFER_INFO* pBufferInfo,
381   __out ID3DX11FFT** ppFFT
382 );
383HRESULT WINAPI D3DX11CreateFFT3DReal(
384   ID3D11DeviceContext* pDeviceContext,
385   UINT X,
386   UINT Y,
387   UINT Z,
388   UINT Flags,
389   __out D3DX11_FFT_BUFFER_INFO* pBufferInfo,
390   __out ID3DX11FFT** ppFFT
391 );
392HRESULT WINAPI D3DX11CreateFFT3DComplex(
393   ID3D11DeviceContext* pDeviceContext,
394   UINT X,
395   UINT Y,
396   UINT Z,
397   UINT Flags,
398   __out D3DX11_FFT_BUFFER_INFO* pBufferInfo,
399   __out ID3DX11FFT** ppFFT
400 );
401
402
403#ifdef __cplusplus
404}
405#endif //__cplusplus
406
407#endif //__D3DX11GPGPU_H__
408
409
trunk/3rdparty/dxsdk/Include/d3dx10.h
r0r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       d3dx10.h
6//  Content:    D3DX10 utility library
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#ifdef  __D3DX10_INTERNAL__
11#error Incorrect D3DX10 header used
12#endif
13
14#ifndef __D3DX10_H__
15#define __D3DX10_H__
16
17
18// Defines
19#include <limits.h>
20#include <float.h>
21
22#define D3DX10_DEFAULT            ((UINT) -1)
23#define D3DX10_FROM_FILE          ((UINT) -3)
24#define DXGI_FORMAT_FROM_FILE     ((DXGI_FORMAT) -3)
25
26#ifndef D3DX10INLINE
27#ifdef _MSC_VER
28  #if (_MSC_VER >= 1200)
29  #define D3DX10INLINE __forceinline
30  #else
31  #define D3DX10INLINE __inline
32  #endif
33#else
34  #ifdef __cplusplus
35  #define D3DX10INLINE inline
36  #else
37  #define D3DX10INLINE
38  #endif
39#endif
40#endif
41
42
43
44// Includes
45#include "d3d10.h"
46#include "d3dx10.h"
47#include "d3dx10math.h"
48#include "d3dx10core.h"
49#include "d3dx10tex.h"
50#include "d3dx10mesh.h"
51#include "d3dx10async.h"
52
53
54// Errors
55#define _FACDD  0x876
56#define MAKE_DDHRESULT( code )  MAKE_HRESULT( 1, _FACDD, code )
57
58enum _D3DX10_ERR {
59    D3DX10_ERR_CANNOT_MODIFY_INDEX_BUFFER       = MAKE_DDHRESULT(2900),
60    D3DX10_ERR_INVALID_MESH                     = MAKE_DDHRESULT(2901),
61    D3DX10_ERR_CANNOT_ATTR_SORT                 = MAKE_DDHRESULT(2902),
62    D3DX10_ERR_SKINNING_NOT_SUPPORTED           = MAKE_DDHRESULT(2903),
63    D3DX10_ERR_TOO_MANY_INFLUENCES              = MAKE_DDHRESULT(2904),
64    D3DX10_ERR_INVALID_DATA                     = MAKE_DDHRESULT(2905),
65    D3DX10_ERR_LOADED_MESH_HAS_NO_DATA          = MAKE_DDHRESULT(2906),
66    D3DX10_ERR_DUPLICATE_NAMED_FRAGMENT         = MAKE_DDHRESULT(2907),
67    D3DX10_ERR_CANNOT_REMOVE_LAST_ITEM          = MAKE_DDHRESULT(2908),
68};
69
70
71#endif //__D3DX10_H__
72
trunk/3rdparty/dxsdk/Include/d3dx10core.h
r0r243311
1///////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       d3dx10core.h
6//  Content:    D3DX10 core types and functions
7//
8///////////////////////////////////////////////////////////////////////////
9
10#include "d3dx10.h"
11
12#ifndef __D3DX10CORE_H__
13#define __D3DX10CORE_H__
14
15// Current name of the DLL shipped in the same SDK as this header.
16
17
18#define D3DX10_DLL_W L"d3dx10_43.dll"
19#define D3DX10_DLL_A "d3dx10_43.dll"
20
21#ifdef UNICODE
22    #define D3DX10_DLL D3DX10_DLL_W
23#else
24    #define D3DX10_DLL D3DX10_DLL_A
25#endif
26
27#ifdef __cplusplus
28extern "C" {
29#endif //__cplusplus
30
31///////////////////////////////////////////////////////////////////////////
32// D3DX10_SDK_VERSION:
33// -----------------
34// This identifier is passed to D3DX10CheckVersion in order to ensure that an
35// application was built against the correct header files and lib files.
36// This number is incremented whenever a header (or other) change would
37// require applications to be rebuilt. If the version doesn't match,
38// D3DX10CreateVersion will return FALSE. (The number itself has no meaning.)
39///////////////////////////////////////////////////////////////////////////
40
41
42#define D3DX10_SDK_VERSION 43
43
44
45///////////////////////////////////////////////////////////////////////////
46// D3DX10CreateDevice
47// D3DX10CreateDeviceAndSwapChain
48// D3DX10GetFeatureLevel1
49///////////////////////////////////////////////////////////////////////////
50HRESULT WINAPI D3DX10CreateDevice(IDXGIAdapter *pAdapter,
51                                  D3D10_DRIVER_TYPE DriverType,
52                                  HMODULE Software,
53                                  UINT Flags,
54                                  ID3D10Device **ppDevice);
55
56HRESULT WINAPI D3DX10CreateDeviceAndSwapChain(IDXGIAdapter *pAdapter,
57                                              D3D10_DRIVER_TYPE DriverType,
58                                              HMODULE Software,
59                                              UINT Flags,
60                                              DXGI_SWAP_CHAIN_DESC *pSwapChainDesc,
61                                              IDXGISwapChain **ppSwapChain,   
62                                              ID3D10Device **ppDevice);
63
64typedef interface ID3D10Device1 ID3D10Device1;
65HRESULT WINAPI D3DX10GetFeatureLevel1(ID3D10Device *pDevice, ID3D10Device1 **ppDevice1);
66
67
68#ifdef D3D_DIAG_DLL
69BOOL WINAPI D3DX10DebugMute(BOOL Mute); 
70#endif
71HRESULT WINAPI D3DX10CheckVersion(UINT D3DSdkVersion, UINT D3DX10SdkVersion);
72
73#ifdef __cplusplus
74}
75#endif //__cplusplus
76
77
78//////////////////////////////////////////////////////////////////////////////
79// D3DX10_SPRITE flags:
80// -----------------
81// D3DX10_SPRITE_SAVE_STATE
82//   Specifies device state should be saved and restored in Begin/End.
83// D3DX10SPRITE_SORT_TEXTURE
84//   Sprites are sorted by texture prior to drawing.  This is recommended when
85//   drawing non-overlapping sprites of uniform depth.  For example, drawing
86//   screen-aligned text with ID3DX10Font.
87// D3DX10SPRITE_SORT_DEPTH_FRONT_TO_BACK
88//   Sprites are sorted by depth front-to-back prior to drawing.  This is
89//   recommended when drawing opaque sprites of varying depths.
90// D3DX10SPRITE_SORT_DEPTH_BACK_TO_FRONT
91//   Sprites are sorted by depth back-to-front prior to drawing.  This is
92//   recommended when drawing transparent sprites of varying depths.
93// D3DX10SPRITE_ADDREF_TEXTURES
94//   AddRef/Release all textures passed in to DrawSpritesBuffered
95//////////////////////////////////////////////////////////////////////////////
96
97typedef enum _D3DX10_SPRITE_FLAG
98{
99    D3DX10_SPRITE_SORT_TEXTURE              = 0x01,
100    D3DX10_SPRITE_SORT_DEPTH_BACK_TO_FRONT  = 0x02,
101    D3DX10_SPRITE_SORT_DEPTH_FRONT_TO_BACK  = 0x04,
102    D3DX10_SPRITE_SAVE_STATE                = 0x08,
103    D3DX10_SPRITE_ADDREF_TEXTURES           = 0x10,
104} D3DX10_SPRITE_FLAG;
105
106typedef struct _D3DX10_SPRITE
107{
108    D3DXMATRIX  matWorld;
109
110    D3DXVECTOR2 TexCoord;
111    D3DXVECTOR2 TexSize;
112
113    D3DXCOLOR   ColorModulate;
114
115    ID3D10ShaderResourceView *pTexture;
116    UINT        TextureIndex;
117} D3DX10_SPRITE;
118
119
120//////////////////////////////////////////////////////////////////////////////
121// ID3DX10Sprite:
122// ------------
123// This object intends to provide an easy way to drawing sprites using D3D.
124//
125// Begin -
126//    Prepares device for drawing sprites.
127//
128// Draw -
129//    Draws a sprite
130//
131// Flush -
132//    Forces all batched sprites to submitted to the device.
133//
134// End -
135//    Restores device state to how it was when Begin was called.
136//
137//////////////////////////////////////////////////////////////////////////////
138
139typedef interface ID3DX10Sprite ID3DX10Sprite;
140typedef interface ID3DX10Sprite *LPD3DX10SPRITE;
141
142
143// {BA0B762D-8D28-43ec-B9DC-2F84443B0614}
144DEFINE_GUID(IID_ID3DX10Sprite,
1450xba0b762d, 0x8d28, 0x43ec, 0xb9, 0xdc, 0x2f, 0x84, 0x44, 0x3b, 0x6, 0x14);
146
147
148#undef INTERFACE
149#define INTERFACE ID3DX10Sprite
150
151DECLARE_INTERFACE_(ID3DX10Sprite, IUnknown)
152{
153    // IUnknown
154    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
155    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
156    STDMETHOD_(ULONG, Release)(THIS) PURE;
157
158    // ID3DX10Sprite
159    STDMETHOD(Begin)(THIS_ UINT flags) PURE;
160   
161    STDMETHOD(DrawSpritesBuffered)(THIS_ D3DX10_SPRITE *pSprites, UINT cSprites) PURE;
162    STDMETHOD(Flush)(THIS) PURE;
163
164    STDMETHOD(DrawSpritesImmediate)(THIS_ D3DX10_SPRITE *pSprites, UINT cSprites, UINT cbSprite, UINT flags) PURE;
165    STDMETHOD(End)(THIS) PURE;
166
167    STDMETHOD(GetViewTransform)(THIS_ D3DXMATRIX *pViewTransform) PURE;
168    STDMETHOD(SetViewTransform)(THIS_ D3DXMATRIX *pViewTransform) PURE;
169    STDMETHOD(GetProjectionTransform)(THIS_ D3DXMATRIX *pProjectionTransform) PURE;
170    STDMETHOD(SetProjectionTransform)(THIS_ D3DXMATRIX *pProjectionTransform) PURE;
171
172    STDMETHOD(GetDevice)(THIS_ ID3D10Device** ppDevice) PURE;
173};
174
175
176#ifdef __cplusplus
177extern "C" {
178#endif //__cplusplus
179
180HRESULT WINAPI
181    D3DX10CreateSprite(
182        ID3D10Device*         pDevice,
183        UINT                  cDeviceBufferSize,
184        LPD3DX10SPRITE*       ppSprite);
185
186#ifdef __cplusplus
187}
188#endif //__cplusplus
189
190
191//////////////////////////////////////////////////////////////////////////////
192// ID3DX10ThreadPump:
193//////////////////////////////////////////////////////////////////////////////
194
195#undef INTERFACE
196#define INTERFACE ID3DX10DataLoader
197
198DECLARE_INTERFACE(ID3DX10DataLoader)
199{
200   STDMETHOD(Load)(THIS) PURE;
201   STDMETHOD(Decompress)(THIS_ void **ppData, SIZE_T *pcBytes) PURE;
202   STDMETHOD(Destroy)(THIS) PURE;
203};
204
205#undef INTERFACE
206#define INTERFACE ID3DX10DataProcessor
207
208DECLARE_INTERFACE(ID3DX10DataProcessor)
209{
210   STDMETHOD(Process)(THIS_ void *pData, SIZE_T cBytes) PURE;
211   STDMETHOD(CreateDeviceObject)(THIS_ void **ppDataObject) PURE;
212   STDMETHOD(Destroy)(THIS) PURE;
213};
214
215// {C93FECFA-6967-478a-ABBC-402D90621FCB}
216DEFINE_GUID(IID_ID3DX10ThreadPump,
2170xc93fecfa, 0x6967, 0x478a, 0xab, 0xbc, 0x40, 0x2d, 0x90, 0x62, 0x1f, 0xcb);
218
219#undef INTERFACE
220#define INTERFACE ID3DX10ThreadPump
221
222DECLARE_INTERFACE_(ID3DX10ThreadPump, IUnknown)
223{
224    // IUnknown
225    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
226    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
227    STDMETHOD_(ULONG, Release)(THIS) PURE;
228
229    // ID3DX10ThreadPump
230    STDMETHOD(AddWorkItem)(THIS_ ID3DX10DataLoader *pDataLoader, ID3DX10DataProcessor *pDataProcessor, HRESULT *pHResult, void **ppDeviceObject) PURE;
231    STDMETHOD_(UINT, GetWorkItemCount)(THIS) PURE;
232     
233    STDMETHOD(WaitForAllItems)(THIS) PURE;
234    STDMETHOD(ProcessDeviceWorkItems)(THIS_ UINT iWorkItemCount);
235
236    STDMETHOD(PurgeAllItems)(THIS) PURE;
237    STDMETHOD(GetQueueStatus)(THIS_ UINT *pIoQueue, UINT *pProcessQueue, UINT *pDeviceQueue) PURE;
238   
239};
240
241HRESULT WINAPI D3DX10CreateThreadPump(UINT cIoThreads, UINT cProcThreads, ID3DX10ThreadPump **ppThreadPump);
242
243
244//////////////////////////////////////////////////////////////////////////////
245// ID3DX10Font:
246// ----------
247// Font objects contain the textures and resources needed to render a specific
248// font on a specific device.
249//
250// GetGlyphData -
251//    Returns glyph cache data, for a given glyph.
252//
253// PreloadCharacters/PreloadGlyphs/PreloadText -
254//    Preloads glyphs into the glyph cache textures.
255//
256// DrawText -
257//    Draws formatted text on a D3D device.  Some parameters are
258//    surprisingly similar to those of GDI's DrawText function.  See GDI
259//    documentation for a detailed description of these parameters.
260//    If pSprite is NULL, an internal sprite object will be used.
261//
262//////////////////////////////////////////////////////////////////////////////
263
264typedef struct _D3DX10_FONT_DESCA
265{
266    INT Height;
267    UINT Width;
268    UINT Weight;
269    UINT MipLevels;
270    BOOL Italic;
271    BYTE CharSet;
272    BYTE OutputPrecision;
273    BYTE Quality;
274    BYTE PitchAndFamily;
275    CHAR FaceName[LF_FACESIZE];
276
277} D3DX10_FONT_DESCA, *LPD3DX10_FONT_DESCA;
278
279typedef struct _D3DX10_FONT_DESCW
280{
281    INT Height;
282    UINT Width;
283    UINT Weight;
284    UINT MipLevels;
285    BOOL Italic;
286    BYTE CharSet;
287    BYTE OutputPrecision;
288    BYTE Quality;
289    BYTE PitchAndFamily;
290    WCHAR FaceName[LF_FACESIZE];
291
292} D3DX10_FONT_DESCW, *LPD3DX10_FONT_DESCW;
293
294#ifdef UNICODE
295typedef D3DX10_FONT_DESCW D3DX10_FONT_DESC;
296typedef LPD3DX10_FONT_DESCW LPD3DX10_FONT_DESC;
297#else
298typedef D3DX10_FONT_DESCA D3DX10_FONT_DESC;
299typedef LPD3DX10_FONT_DESCA LPD3DX10_FONT_DESC;
300#endif
301
302
303typedef interface ID3DX10Font ID3DX10Font;
304typedef interface ID3DX10Font *LPD3DX10FONT;
305
306
307// {D79DBB70-5F21-4d36-BBC2-FF525C213CDC}
308DEFINE_GUID(IID_ID3DX10Font,
3090xd79dbb70, 0x5f21, 0x4d36, 0xbb, 0xc2, 0xff, 0x52, 0x5c, 0x21, 0x3c, 0xdc);
310
311
312#undef INTERFACE
313#define INTERFACE ID3DX10Font
314
315DECLARE_INTERFACE_(ID3DX10Font, IUnknown)
316{
317    // IUnknown
318    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
319    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
320    STDMETHOD_(ULONG, Release)(THIS) PURE;
321
322    // ID3DX10Font
323    STDMETHOD(GetDevice)(THIS_ ID3D10Device** ppDevice) PURE;
324    STDMETHOD(GetDescA)(THIS_ D3DX10_FONT_DESCA *pDesc) PURE;
325    STDMETHOD(GetDescW)(THIS_ D3DX10_FONT_DESCW *pDesc) PURE;
326    STDMETHOD_(BOOL, GetTextMetricsA)(THIS_ TEXTMETRICA *pTextMetrics) PURE;
327    STDMETHOD_(BOOL, GetTextMetricsW)(THIS_ TEXTMETRICW *pTextMetrics) PURE;
328
329    STDMETHOD_(HDC, GetDC)(THIS) PURE;
330    STDMETHOD(GetGlyphData)(THIS_ UINT Glyph, ID3D10ShaderResourceView** ppTexture, RECT *pBlackBox, POINT *pCellInc) PURE;
331
332    STDMETHOD(PreloadCharacters)(THIS_ UINT First, UINT Last) PURE;
333    STDMETHOD(PreloadGlyphs)(THIS_ UINT First, UINT Last) PURE;
334    STDMETHOD(PreloadTextA)(THIS_ LPCSTR pString, INT Count) PURE;
335    STDMETHOD(PreloadTextW)(THIS_ LPCWSTR pString, INT Count) PURE;
336
337    STDMETHOD_(INT, DrawTextA)(THIS_ LPD3DX10SPRITE pSprite, LPCSTR pString, INT Count, LPRECT pRect, UINT Format, D3DXCOLOR Color) PURE;
338    STDMETHOD_(INT, DrawTextW)(THIS_ LPD3DX10SPRITE pSprite, LPCWSTR pString, INT Count, LPRECT pRect, UINT Format, D3DXCOLOR Color) PURE;
339
340#ifdef __cplusplus
341#ifdef UNICODE
342    HRESULT WINAPI_INLINE GetDesc(D3DX10_FONT_DESCW *pDesc) { return GetDescW(pDesc); }
343    HRESULT WINAPI_INLINE PreloadText(LPCWSTR pString, INT Count) { return PreloadTextW(pString, Count); }
344#else
345    HRESULT WINAPI_INLINE GetDesc(D3DX10_FONT_DESCA *pDesc) { return GetDescA(pDesc); }
346    HRESULT WINAPI_INLINE PreloadText(LPCSTR pString, INT Count) { return PreloadTextA(pString, Count); }
347#endif
348#endif //__cplusplus
349};
350
351#ifndef GetTextMetrics
352#ifdef UNICODE
353#define GetTextMetrics GetTextMetricsW
354#else
355#define GetTextMetrics GetTextMetricsA
356#endif
357#endif
358
359#ifndef DrawText
360#ifdef UNICODE
361#define DrawText DrawTextW
362#else
363#define DrawText DrawTextA
364#endif
365#endif
366
367
368#ifdef __cplusplus
369extern "C" {
370#endif //__cplusplus
371
372
373HRESULT WINAPI
374    D3DX10CreateFontA(
375        ID3D10Device*           pDevice, 
376        INT                     Height,
377        UINT                    Width,
378        UINT                    Weight,
379        UINT                    MipLevels,
380        BOOL                    Italic,
381        UINT                    CharSet,
382        UINT                    OutputPrecision,
383        UINT                    Quality,
384        UINT                    PitchAndFamily,
385        LPCSTR                  pFaceName,
386        LPD3DX10FONT*           ppFont);
387
388HRESULT WINAPI
389    D3DX10CreateFontW(
390        ID3D10Device*           pDevice, 
391        INT                     Height,
392        UINT                    Width,
393        UINT                    Weight,
394        UINT                    MipLevels,
395        BOOL                    Italic,
396        UINT                    CharSet,
397        UINT                    OutputPrecision,
398        UINT                    Quality,
399        UINT                    PitchAndFamily,
400        LPCWSTR                 pFaceName,
401        LPD3DX10FONT*           ppFont);
402
403#ifdef UNICODE
404#define D3DX10CreateFont D3DX10CreateFontW
405#else
406#define D3DX10CreateFont D3DX10CreateFontA
407#endif
408
409
410HRESULT WINAPI
411    D3DX10CreateFontIndirectA(
412        ID3D10Device*             pDevice, 
413        CONST D3DX10_FONT_DESCA*   pDesc,
414        LPD3DX10FONT*             ppFont);
415
416HRESULT WINAPI
417    D3DX10CreateFontIndirectW(
418        ID3D10Device*             pDevice, 
419        CONST D3DX10_FONT_DESCW*   pDesc,
420        LPD3DX10FONT*             ppFont);
421
422#ifdef UNICODE
423#define D3DX10CreateFontIndirect D3DX10CreateFontIndirectW
424#else
425#define D3DX10CreateFontIndirect D3DX10CreateFontIndirectA
426#endif
427
428HRESULT WINAPI D3DX10UnsetAllDeviceObjects(ID3D10Device *pDevice);
429
430#ifdef __cplusplus
431}
432#endif //__cplusplus
433
434///////////////////////////////////////////////////////////////////////////
435
436#define _FACD3D  0x876
437#define MAKE_D3DHRESULT( code )  MAKE_HRESULT( 1, _FACD3D, code )
438#define MAKE_D3DSTATUS( code )  MAKE_HRESULT( 0, _FACD3D, code )
439
440#define D3DERR_INVALIDCALL                      MAKE_D3DHRESULT(2156)
441#define D3DERR_WASSTILLDRAWING                  MAKE_D3DHRESULT(540)
442
443#endif //__D3DX10CORE_H__
444
trunk/3rdparty/dxsdk/Include/d3dx10math.h
r0r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       D3DX10math.h
6//  Content:    D3DX10 math types and functions
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#include "D3DX10.h"
11
12// D3DX10 and D3DX9 math look the same. You can include either one into your project.
13// We are intentionally using the header define from D3DX9 math to prevent double-inclusion.
14#ifndef __D3DX9MATH_H__
15#define __D3DX9MATH_H__
16
17#include <math.h>
18#if _MSC_VER >= 1200
19#pragma warning(push)
20#endif
21#pragma warning(disable:4201) // anonymous unions warning
22
23//===========================================================================
24//
25// Type definitions from D3D9
26//
27//===========================================================================
28
29#ifndef D3DVECTOR_DEFINED
30typedef struct _D3DVECTOR {
31    float x;
32    float y;
33    float z;
34} D3DVECTOR;
35#define D3DVECTOR_DEFINED
36#endif
37
38#ifndef D3DMATRIX_DEFINED
39typedef struct _D3DMATRIX {
40    union {
41        struct {
42            float        _11, _12, _13, _14;
43            float        _21, _22, _23, _24;
44            float        _31, _32, _33, _34;
45            float        _41, _42, _43, _44;
46
47        };
48        float m[4][4];
49    };
50} D3DMATRIX;
51#define D3DMATRIX_DEFINED
52#endif
53
54//===========================================================================
55//
56// General purpose utilities
57//
58//===========================================================================
59#define D3DX_PI    (3.14159265358979323846)
60#define D3DX_1BYPI ( 1.0 / D3DX_PI )
61
62#define D3DXToRadian( degree ) ((degree) * (D3DX_PI / 180.0))
63#define D3DXToDegree( radian ) ((radian) * (180.0 / D3DX_PI))
64
65
66
67//===========================================================================
68//
69// 16 bit floating point numbers
70//
71//===========================================================================
72
73#define D3DX_16F_DIG          3                // # of decimal digits of precision
74#define D3DX_16F_EPSILON      4.8875809e-4f    // smallest such that 1.0 + epsilon != 1.0
75#define D3DX_16F_MANT_DIG     11               // # of bits in mantissa
76#define D3DX_16F_MAX          6.550400e+004    // max value
77#define D3DX_16F_MAX_10_EXP   4                // max decimal exponent
78#define D3DX_16F_MAX_EXP      15               // max binary exponent
79#define D3DX_16F_MIN          6.1035156e-5f    // min positive value
80#define D3DX_16F_MIN_10_EXP   (-4)             // min decimal exponent
81#define D3DX_16F_MIN_EXP      (-14)            // min binary exponent
82#define D3DX_16F_RADIX        2                // exponent radix
83#define D3DX_16F_ROUNDS       1                // addition rounding: near
84#define D3DX_16F_SIGN_MASK    0x8000
85#define D3DX_16F_EXP_MASK     0x7C00
86#define D3DX_16F_FRAC_MASK    0x03FF
87
88typedef struct D3DXFLOAT16
89{
90#ifdef __cplusplus
91public:
92    D3DXFLOAT16() {};
93    D3DXFLOAT16( FLOAT );
94    D3DXFLOAT16( CONST D3DXFLOAT16& );
95
96    // casting
97    operator FLOAT ();
98
99    // binary operators
100    BOOL operator == ( CONST D3DXFLOAT16& ) const;
101    BOOL operator != ( CONST D3DXFLOAT16& ) const;
102
103protected:
104#endif //__cplusplus
105    WORD value;
106} D3DXFLOAT16, *LPD3DXFLOAT16;
107
108
109
110//===========================================================================
111//
112// Vectors
113//
114//===========================================================================
115
116
117//--------------------------
118// 2D Vector
119//--------------------------
120typedef struct D3DXVECTOR2
121{
122#ifdef __cplusplus
123public:
124    D3DXVECTOR2() {};
125    D3DXVECTOR2( CONST FLOAT * );
126    D3DXVECTOR2( CONST D3DXFLOAT16 * );
127    D3DXVECTOR2( FLOAT x, FLOAT y );
128
129    // casting
130    operator FLOAT* ();
131    operator CONST FLOAT* () const;
132
133    // assignment operators
134    D3DXVECTOR2& operator += ( CONST D3DXVECTOR2& );
135    D3DXVECTOR2& operator -= ( CONST D3DXVECTOR2& );
136    D3DXVECTOR2& operator *= ( FLOAT );
137    D3DXVECTOR2& operator /= ( FLOAT );
138
139    // unary operators
140    D3DXVECTOR2 operator + () const;
141    D3DXVECTOR2 operator - () const;
142
143    // binary operators
144    D3DXVECTOR2 operator + ( CONST D3DXVECTOR2& ) const;
145    D3DXVECTOR2 operator - ( CONST D3DXVECTOR2& ) const;
146    D3DXVECTOR2 operator * ( FLOAT ) const;
147    D3DXVECTOR2 operator / ( FLOAT ) const;
148
149    friend D3DXVECTOR2 operator * ( FLOAT, CONST D3DXVECTOR2& );
150
151    BOOL operator == ( CONST D3DXVECTOR2& ) const;
152    BOOL operator != ( CONST D3DXVECTOR2& ) const;
153
154
155public:
156#endif //__cplusplus
157    FLOAT x, y;
158} D3DXVECTOR2, *LPD3DXVECTOR2;
159
160
161
162//--------------------------
163// 2D Vector (16 bit)
164//--------------------------
165
166typedef struct D3DXVECTOR2_16F
167{
168#ifdef __cplusplus
169public:
170    D3DXVECTOR2_16F() {};
171    D3DXVECTOR2_16F( CONST FLOAT * );
172    D3DXVECTOR2_16F( CONST D3DXFLOAT16 * );
173    D3DXVECTOR2_16F( CONST D3DXFLOAT16 &x, CONST D3DXFLOAT16 &y );
174
175    // casting
176    operator D3DXFLOAT16* ();
177    operator CONST D3DXFLOAT16* () const;
178
179    // binary operators
180    BOOL operator == ( CONST D3DXVECTOR2_16F& ) const;
181    BOOL operator != ( CONST D3DXVECTOR2_16F& ) const;
182
183public:
184#endif //__cplusplus
185    D3DXFLOAT16 x, y;
186
187} D3DXVECTOR2_16F, *LPD3DXVECTOR2_16F;
188
189
190
191//--------------------------
192// 3D Vector
193//--------------------------
194#ifdef __cplusplus
195typedef struct D3DXVECTOR3 : public D3DVECTOR
196{
197public:
198    D3DXVECTOR3() {};
199    D3DXVECTOR3( CONST FLOAT * );
200    D3DXVECTOR3( CONST D3DVECTOR& );
201    D3DXVECTOR3( CONST D3DXFLOAT16 * );
202    D3DXVECTOR3( FLOAT x, FLOAT y, FLOAT z );
203
204    // casting
205    operator FLOAT* ();
206    operator CONST FLOAT* () const;
207
208    // assignment operators
209    D3DXVECTOR3& operator += ( CONST D3DXVECTOR3& );
210    D3DXVECTOR3& operator -= ( CONST D3DXVECTOR3& );
211    D3DXVECTOR3& operator *= ( FLOAT );
212    D3DXVECTOR3& operator /= ( FLOAT );
213
214    // unary operators
215    D3DXVECTOR3 operator + () const;
216    D3DXVECTOR3 operator - () const;
217
218    // binary operators
219    D3DXVECTOR3 operator + ( CONST D3DXVECTOR3& ) const;
220    D3DXVECTOR3 operator - ( CONST D3DXVECTOR3& ) const;
221    D3DXVECTOR3 operator * ( FLOAT ) const;
222    D3DXVECTOR3 operator / ( FLOAT ) const;
223
224    friend D3DXVECTOR3 operator * ( FLOAT, CONST struct D3DXVECTOR3& );
225
226    BOOL operator == ( CONST D3DXVECTOR3& ) const;
227    BOOL operator != ( CONST D3DXVECTOR3& ) const;
228
229} D3DXVECTOR3, *LPD3DXVECTOR3;
230
231#else //!__cplusplus
232typedef struct _D3DVECTOR D3DXVECTOR3, *LPD3DXVECTOR3;
233#endif //!__cplusplus
234
235
236
237//--------------------------
238// 3D Vector (16 bit)
239//--------------------------
240typedef struct D3DXVECTOR3_16F
241{
242#ifdef __cplusplus
243public:
244    D3DXVECTOR3_16F() {};
245    D3DXVECTOR3_16F( CONST FLOAT * );
246    D3DXVECTOR3_16F( CONST D3DVECTOR& );
247    D3DXVECTOR3_16F( CONST D3DXFLOAT16 * );
248    D3DXVECTOR3_16F( CONST D3DXFLOAT16 &x, CONST D3DXFLOAT16 &y, CONST D3DXFLOAT16 &z );
249
250    // casting
251    operator D3DXFLOAT16* ();
252    operator CONST D3DXFLOAT16* () const;
253
254    // binary operators
255    BOOL operator == ( CONST D3DXVECTOR3_16F& ) const;
256    BOOL operator != ( CONST D3DXVECTOR3_16F& ) const;
257
258public:
259#endif //__cplusplus
260    D3DXFLOAT16 x, y, z;
261
262} D3DXVECTOR3_16F, *LPD3DXVECTOR3_16F;
263
264
265
266//--------------------------
267// 4D Vector
268//--------------------------
269typedef struct D3DXVECTOR4
270{
271#ifdef __cplusplus
272public:
273    D3DXVECTOR4() {};
274    D3DXVECTOR4( CONST FLOAT* );
275    D3DXVECTOR4( CONST D3DXFLOAT16* );
276    D3DXVECTOR4( CONST D3DVECTOR& xyz, FLOAT w );
277    D3DXVECTOR4( FLOAT x, FLOAT y, FLOAT z, FLOAT w );
278
279    // casting
280    operator FLOAT* ();
281    operator CONST FLOAT* () const;
282
283    // assignment operators
284    D3DXVECTOR4& operator += ( CONST D3DXVECTOR4& );
285    D3DXVECTOR4& operator -= ( CONST D3DXVECTOR4& );
286    D3DXVECTOR4& operator *= ( FLOAT );
287    D3DXVECTOR4& operator /= ( FLOAT );
288
289    // unary operators
290    D3DXVECTOR4 operator + () const;
291    D3DXVECTOR4 operator - () const;
292
293    // binary operators
294    D3DXVECTOR4 operator + ( CONST D3DXVECTOR4& ) const;
295    D3DXVECTOR4 operator - ( CONST D3DXVECTOR4& ) const;
296    D3DXVECTOR4 operator * ( FLOAT ) const;
297    D3DXVECTOR4 operator / ( FLOAT ) const;
298
299    friend D3DXVECTOR4 operator * ( FLOAT, CONST D3DXVECTOR4& );
300
301    BOOL operator == ( CONST D3DXVECTOR4& ) const;
302    BOOL operator != ( CONST D3DXVECTOR4& ) const;
303
304public:
305#endif //__cplusplus
306    FLOAT x, y, z, w;
307} D3DXVECTOR4, *LPD3DXVECTOR4;
308
309
310//--------------------------
311// 4D Vector (16 bit)
312//--------------------------
313typedef struct D3DXVECTOR4_16F
314{
315#ifdef __cplusplus
316public:
317    D3DXVECTOR4_16F() {};
318    D3DXVECTOR4_16F( CONST FLOAT * );
319    D3DXVECTOR4_16F( CONST D3DXFLOAT16* );
320    D3DXVECTOR4_16F( CONST D3DXVECTOR3_16F& xyz, CONST D3DXFLOAT16& w );
321    D3DXVECTOR4_16F( CONST D3DXFLOAT16& x, CONST D3DXFLOAT16& y, CONST D3DXFLOAT16& z, CONST D3DXFLOAT16& w );
322
323    // casting
324    operator D3DXFLOAT16* ();
325    operator CONST D3DXFLOAT16* () const;
326
327    // binary operators
328    BOOL operator == ( CONST D3DXVECTOR4_16F& ) const;
329    BOOL operator != ( CONST D3DXVECTOR4_16F& ) const;
330
331public:
332#endif //__cplusplus
333    D3DXFLOAT16 x, y, z, w;
334
335} D3DXVECTOR4_16F, *LPD3DXVECTOR4_16F;
336
337
338
339//===========================================================================
340//
341// Matrices
342//
343//===========================================================================
344#ifdef __cplusplus
345typedef struct D3DXMATRIX : public D3DMATRIX
346{
347public:
348    D3DXMATRIX() {};
349    D3DXMATRIX( CONST FLOAT * );
350    D3DXMATRIX( CONST D3DMATRIX& );
351    D3DXMATRIX( CONST D3DXFLOAT16 * );
352    D3DXMATRIX( FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14,
353                FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24,
354                FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34,
355                FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44 );
356
357
358    // access grants
359    FLOAT& operator () ( UINT Row, UINT Col );
360    FLOAT  operator () ( UINT Row, UINT Col ) const;
361
362    // casting operators
363    operator FLOAT* ();
364    operator CONST FLOAT* () const;
365
366    // assignment operators
367    D3DXMATRIX& operator *= ( CONST D3DXMATRIX& );
368    D3DXMATRIX& operator += ( CONST D3DXMATRIX& );
369    D3DXMATRIX& operator -= ( CONST D3DXMATRIX& );
370    D3DXMATRIX& operator *= ( FLOAT );
371    D3DXMATRIX& operator /= ( FLOAT );
372
373    // unary operators
374    D3DXMATRIX operator + () const;
375    D3DXMATRIX operator - () const;
376
377    // binary operators
378    D3DXMATRIX operator * ( CONST D3DXMATRIX& ) const;
379    D3DXMATRIX operator + ( CONST D3DXMATRIX& ) const;
380    D3DXMATRIX operator - ( CONST D3DXMATRIX& ) const;
381    D3DXMATRIX operator * ( FLOAT ) const;
382    D3DXMATRIX operator / ( FLOAT ) const;
383
384    friend D3DXMATRIX operator * ( FLOAT, CONST D3DXMATRIX& );
385
386    BOOL operator == ( CONST D3DXMATRIX& ) const;
387    BOOL operator != ( CONST D3DXMATRIX& ) const;
388
389} D3DXMATRIX, *LPD3DXMATRIX;
390
391#else //!__cplusplus
392typedef struct _D3DMATRIX D3DXMATRIX, *LPD3DXMATRIX;
393#endif //!__cplusplus
394
395
396//---------------------------------------------------------------------------
397// Aligned Matrices
398//
399// This class helps keep matrices 16-byte aligned as preferred by P4 cpus.
400// It aligns matrices on the stack and on the heap or in global scope.
401// It does this using __declspec(align(16)) which works on VC7 and on VC 6
402// with the processor pack. Unfortunately there is no way to detect the
403// latter so this is turned on only on VC7. On other compilers this is the
404// the same as D3DXMATRIX.
405//
406// Using this class on a compiler that does not actually do the alignment
407// can be dangerous since it will not expose bugs that ignore alignment.
408// E.g if an object of this class in inside a struct or class, and some code
409// memcopys data in it assuming tight packing. This could break on a compiler
410// that eventually start aligning the matrix.
411//---------------------------------------------------------------------------
412#ifdef __cplusplus
413typedef struct _D3DXMATRIXA16 : public D3DXMATRIX
414{
415    _D3DXMATRIXA16() {};
416    _D3DXMATRIXA16( CONST FLOAT * );
417    _D3DXMATRIXA16( CONST D3DMATRIX& );
418    _D3DXMATRIXA16( CONST D3DXFLOAT16 * );
419    _D3DXMATRIXA16( FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14,
420                    FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24,
421                    FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34,
422                    FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44 );
423
424    // new operators
425    void* operator new   ( size_t );
426    void* operator new[] ( size_t );
427
428    // delete operators
429    void operator delete   ( void* );   // These are NOT virtual; Do not
430    void operator delete[] ( void* );   // cast to D3DXMATRIX and delete.
431   
432    // assignment operators
433    _D3DXMATRIXA16& operator = ( CONST D3DXMATRIX& );
434
435} _D3DXMATRIXA16;
436
437#else //!__cplusplus
438typedef D3DXMATRIX  _D3DXMATRIXA16;
439#endif //!__cplusplus
440
441
442
443#if _MSC_VER >= 1300  // VC7
444#define D3DX_ALIGN16 __declspec(align(16))
445#else
446#define D3DX_ALIGN16  // Earlier compiler may not understand this, do nothing.
447#endif
448
449typedef D3DX_ALIGN16 _D3DXMATRIXA16 D3DXMATRIXA16, *LPD3DXMATRIXA16;
450
451
452
453//===========================================================================
454//
455//    Quaternions
456//
457//===========================================================================
458typedef struct D3DXQUATERNION
459{
460#ifdef __cplusplus
461public:
462    D3DXQUATERNION() {};
463    D3DXQUATERNION( CONST FLOAT * );
464    D3DXQUATERNION( CONST D3DXFLOAT16 * );
465    D3DXQUATERNION( FLOAT x, FLOAT y, FLOAT z, FLOAT w );
466
467    // casting
468    operator FLOAT* ();
469    operator CONST FLOAT* () const;
470
471    // assignment operators
472    D3DXQUATERNION& operator += ( CONST D3DXQUATERNION& );
473    D3DXQUATERNION& operator -= ( CONST D3DXQUATERNION& );
474    D3DXQUATERNION& operator *= ( CONST D3DXQUATERNION& );
475    D3DXQUATERNION& operator *= ( FLOAT );
476    D3DXQUATERNION& operator /= ( FLOAT );
477
478    // unary operators
479    D3DXQUATERNION  operator + () const;
480    D3DXQUATERNION  operator - () const;
481
482    // binary operators
483    D3DXQUATERNION operator + ( CONST D3DXQUATERNION& ) const;
484    D3DXQUATERNION operator - ( CONST D3DXQUATERNION& ) const;
485    D3DXQUATERNION operator * ( CONST D3DXQUATERNION& ) const;
486    D3DXQUATERNION operator * ( FLOAT ) const;
487    D3DXQUATERNION operator / ( FLOAT ) const;
488
489    friend D3DXQUATERNION operator * (FLOAT, CONST D3DXQUATERNION& );
490
491    BOOL operator == ( CONST D3DXQUATERNION& ) const;
492    BOOL operator != ( CONST D3DXQUATERNION& ) const;
493
494#endif //__cplusplus
495    FLOAT x, y, z, w;
496} D3DXQUATERNION, *LPD3DXQUATERNION;
497
498
499//===========================================================================
500//
501// Planes
502//
503//===========================================================================
504typedef struct D3DXPLANE
505{
506#ifdef __cplusplus
507public:
508    D3DXPLANE() {};
509    D3DXPLANE( CONST FLOAT* );
510    D3DXPLANE( CONST D3DXFLOAT16* );
511    D3DXPLANE( FLOAT a, FLOAT b, FLOAT c, FLOAT d );
512
513    // casting
514    operator FLOAT* ();
515    operator CONST FLOAT* () const;
516
517    // assignment operators
518    D3DXPLANE& operator *= ( FLOAT );
519    D3DXPLANE& operator /= ( FLOAT );
520
521    // unary operators
522    D3DXPLANE operator + () const;
523    D3DXPLANE operator - () const;
524
525    // binary operators
526    D3DXPLANE operator * ( FLOAT ) const;
527    D3DXPLANE operator / ( FLOAT ) const;
528
529    friend D3DXPLANE operator * ( FLOAT, CONST D3DXPLANE& );
530
531    BOOL operator == ( CONST D3DXPLANE& ) const;
532    BOOL operator != ( CONST D3DXPLANE& ) const;
533
534#endif //__cplusplus
535    FLOAT a, b, c, d;
536} D3DXPLANE, *LPD3DXPLANE;
537
538
539//===========================================================================
540//
541// Colors
542//
543//===========================================================================
544
545typedef struct D3DXCOLOR
546{
547#ifdef __cplusplus
548public:
549    D3DXCOLOR() {};
550    D3DXCOLOR( UINT  argb );
551    D3DXCOLOR( CONST FLOAT * );
552    D3DXCOLOR( CONST D3DXFLOAT16 * );
553    D3DXCOLOR( FLOAT r, FLOAT g, FLOAT b, FLOAT a );
554
555    // casting
556    operator UINT  () const;
557
558    operator FLOAT* ();
559    operator CONST FLOAT* () const;
560
561    // assignment operators
562    D3DXCOLOR& operator += ( CONST D3DXCOLOR& );
563    D3DXCOLOR& operator -= ( CONST D3DXCOLOR& );
564    D3DXCOLOR& operator *= ( FLOAT );
565    D3DXCOLOR& operator /= ( FLOAT );
566
567    // unary operators
568    D3DXCOLOR operator + () const;
569    D3DXCOLOR operator - () const;
570
571    // binary operators
572    D3DXCOLOR operator + ( CONST D3DXCOLOR& ) const;
573    D3DXCOLOR operator - ( CONST D3DXCOLOR& ) const;
574    D3DXCOLOR operator * ( FLOAT ) const;
575    D3DXCOLOR operator / ( FLOAT ) const;
576
577    friend D3DXCOLOR operator * ( FLOAT, CONST D3DXCOLOR& );
578
579    BOOL operator == ( CONST D3DXCOLOR& ) const;
580    BOOL operator != ( CONST D3DXCOLOR& ) const;
581
582#endif //__cplusplus
583    FLOAT r, g, b, a;
584} D3DXCOLOR, *LPD3DXCOLOR;
585
586
587
588//===========================================================================
589//
590// D3DX math functions:
591//
592// NOTE:
593//  * All these functions can take the same object as in and out parameters.
594//
595//  * Out parameters are typically also returned as return values, so that
596//    the output of one function may be used as a parameter to another.
597//
598//===========================================================================
599
600//--------------------------
601// Float16
602//--------------------------
603
604// non-inline
605#ifdef __cplusplus
606extern "C" {
607#endif
608
609// Converts an array 32-bit floats to 16-bit floats
610D3DXFLOAT16* WINAPI D3DXFloat32To16Array
611    ( D3DXFLOAT16 *pOut, CONST FLOAT *pIn, UINT n );
612
613// Converts an array 16-bit floats to 32-bit floats
614FLOAT* WINAPI D3DXFloat16To32Array
615    ( __out_ecount(n) FLOAT *pOut, __in_ecount(n) CONST D3DXFLOAT16 *pIn, UINT n );
616
617#ifdef __cplusplus
618}
619#endif
620
621
622//--------------------------
623// 2D Vector
624//--------------------------
625
626// inline
627
628FLOAT D3DXVec2Length
629    ( CONST D3DXVECTOR2 *pV );
630
631FLOAT D3DXVec2LengthSq
632    ( CONST D3DXVECTOR2 *pV );
633
634FLOAT D3DXVec2Dot
635    ( CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2 );
636
637// Z component of ((x1,y1,0) cross (x2,y2,0))
638FLOAT D3DXVec2CCW
639    ( CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2 );
640
641D3DXVECTOR2* D3DXVec2Add
642    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2 );
643
644D3DXVECTOR2* D3DXVec2Subtract
645    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2 );
646
647// Minimize each component.  x = min(x1, x2), y = min(y1, y2)
648D3DXVECTOR2* D3DXVec2Minimize
649    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2 );
650
651// Maximize each component.  x = max(x1, x2), y = max(y1, y2)
652D3DXVECTOR2* D3DXVec2Maximize
653    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2 );
654
655D3DXVECTOR2* D3DXVec2Scale
656    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV, FLOAT s );
657
658// Linear interpolation. V1 + s(V2-V1)
659D3DXVECTOR2* D3DXVec2Lerp
660    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2,
661      FLOAT s );
662
663// non-inline
664#ifdef __cplusplus
665extern "C" {
666#endif
667
668D3DXVECTOR2* WINAPI D3DXVec2Normalize
669    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV );
670
671// Hermite interpolation between position V1, tangent T1 (when s == 0)
672// and position V2, tangent T2 (when s == 1).
673D3DXVECTOR2* WINAPI D3DXVec2Hermite
674    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pT1,
675      CONST D3DXVECTOR2 *pV2, CONST D3DXVECTOR2 *pT2, FLOAT s );
676
677// CatmullRom interpolation between V1 (when s == 0) and V2 (when s == 1)
678D3DXVECTOR2* WINAPI D3DXVec2CatmullRom
679    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV0, CONST D3DXVECTOR2 *pV1,
680      CONST D3DXVECTOR2 *pV2, CONST D3DXVECTOR2 *pV3, FLOAT s );
681
682// Barycentric coordinates.  V1 + f(V2-V1) + g(V3-V1)
683D3DXVECTOR2* WINAPI D3DXVec2BaryCentric
684    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV1, CONST D3DXVECTOR2 *pV2,
685      CONST D3DXVECTOR2 *pV3, FLOAT f, FLOAT g);
686
687// Transform (x, y, 0, 1) by matrix.
688D3DXVECTOR4* WINAPI D3DXVec2Transform
689    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR2 *pV, CONST D3DXMATRIX *pM );
690
691// Transform (x, y, 0, 1) by matrix, project result back into w=1.
692D3DXVECTOR2* WINAPI D3DXVec2TransformCoord
693    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV, CONST D3DXMATRIX *pM );
694
695// Transform (x, y, 0, 0) by matrix.
696D3DXVECTOR2* WINAPI D3DXVec2TransformNormal
697    ( D3DXVECTOR2 *pOut, CONST D3DXVECTOR2 *pV, CONST D3DXMATRIX *pM );
698     
699// Transform Array (x, y, 0, 1) by matrix.
700D3DXVECTOR4* WINAPI D3DXVec2TransformArray
701    ( D3DXVECTOR4 *pOut, UINT OutStride, CONST D3DXVECTOR2 *pV, UINT VStride, CONST D3DXMATRIX *pM, UINT n);
702
703// Transform Array (x, y, 0, 1) by matrix, project result back into w=1.
704D3DXVECTOR2* WINAPI D3DXVec2TransformCoordArray
705    ( D3DXVECTOR2 *pOut, UINT OutStride, CONST D3DXVECTOR2 *pV, UINT VStride, CONST D3DXMATRIX *pM, UINT n );
706
707// Transform Array (x, y, 0, 0) by matrix.
708D3DXVECTOR2* WINAPI D3DXVec2TransformNormalArray
709    ( D3DXVECTOR2 *pOut, UINT OutStride, CONST D3DXVECTOR2 *pV, UINT VStride, CONST D3DXMATRIX *pM, UINT n );
710   
711   
712
713#ifdef __cplusplus
714}
715#endif
716
717
718//--------------------------
719// 3D Vector
720//--------------------------
721
722// inline
723
724FLOAT D3DXVec3Length
725    ( CONST D3DXVECTOR3 *pV );
726
727FLOAT D3DXVec3LengthSq
728    ( CONST D3DXVECTOR3 *pV );
729
730FLOAT D3DXVec3Dot
731    ( CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2 );
732
733D3DXVECTOR3* D3DXVec3Cross
734    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2 );
735
736D3DXVECTOR3* D3DXVec3Add
737    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2 );
738
739D3DXVECTOR3* D3DXVec3Subtract
740    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2 );
741
742// Minimize each component.  x = min(x1, x2), y = min(y1, y2), ...
743D3DXVECTOR3* D3DXVec3Minimize
744    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2 );
745
746// Maximize each component.  x = max(x1, x2), y = max(y1, y2), ...
747D3DXVECTOR3* D3DXVec3Maximize
748    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2 );
749
750D3DXVECTOR3* D3DXVec3Scale
751    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV, FLOAT s);
752
753// Linear interpolation. V1 + s(V2-V1)
754D3DXVECTOR3* D3DXVec3Lerp
755    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2,
756      FLOAT s );
757
758// non-inline
759#ifdef __cplusplus
760extern "C" {
761#endif
762
763D3DXVECTOR3* WINAPI D3DXVec3Normalize
764    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV );
765
766// Hermite interpolation between position V1, tangent T1 (when s == 0)
767// and position V2, tangent T2 (when s == 1).
768D3DXVECTOR3* WINAPI D3DXVec3Hermite
769    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pT1,
770      CONST D3DXVECTOR3 *pV2, CONST D3DXVECTOR3 *pT2, FLOAT s );
771
772// CatmullRom interpolation between V1 (when s == 0) and V2 (when s == 1)
773D3DXVECTOR3* WINAPI D3DXVec3CatmullRom
774    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV0, CONST D3DXVECTOR3 *pV1,
775      CONST D3DXVECTOR3 *pV2, CONST D3DXVECTOR3 *pV3, FLOAT s );
776
777// Barycentric coordinates.  V1 + f(V2-V1) + g(V3-V1)
778D3DXVECTOR3* WINAPI D3DXVec3BaryCentric
779    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2,
780      CONST D3DXVECTOR3 *pV3, FLOAT f, FLOAT g);
781
782// Transform (x, y, z, 1) by matrix.
783D3DXVECTOR4* WINAPI D3DXVec3Transform
784    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR3 *pV, CONST D3DXMATRIX *pM );
785
786// Transform (x, y, z, 1) by matrix, project result back into w=1.
787D3DXVECTOR3* WINAPI D3DXVec3TransformCoord
788    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV, CONST D3DXMATRIX *pM );
789
790// Transform (x, y, z, 0) by matrix.  If you transforming a normal by a
791// non-affine matrix, the matrix you pass to this function should be the
792// transpose of the inverse of the matrix you would use to transform a coord.
793D3DXVECTOR3* WINAPI D3DXVec3TransformNormal
794    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV, CONST D3DXMATRIX *pM );
795   
796   
797// Transform Array (x, y, z, 1) by matrix.
798D3DXVECTOR4* WINAPI D3DXVec3TransformArray
799    ( D3DXVECTOR4 *pOut, UINT OutStride, CONST D3DXVECTOR3 *pV, UINT VStride, CONST D3DXMATRIX *pM, UINT n );
800
801// Transform Array (x, y, z, 1) by matrix, project result back into w=1.
802D3DXVECTOR3* WINAPI D3DXVec3TransformCoordArray
803    ( D3DXVECTOR3 *pOut, UINT OutStride, CONST D3DXVECTOR3 *pV, UINT VStride, CONST D3DXMATRIX *pM, UINT n );
804
805// Transform (x, y, z, 0) by matrix.  If you transforming a normal by a
806// non-affine matrix, the matrix you pass to this function should be the
807// transpose of the inverse of the matrix you would use to transform a coord.
808D3DXVECTOR3* WINAPI D3DXVec3TransformNormalArray
809    ( D3DXVECTOR3 *pOut, UINT OutStride, CONST D3DXVECTOR3 *pV, UINT VStride, CONST D3DXMATRIX *pM, UINT n );
810
811// Project vector from object space into screen space
812D3DXVECTOR3* WINAPI D3DXVec3Project
813    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV, CONST D3D10_VIEWPORT *pViewport,
814      CONST D3DXMATRIX *pProjection, CONST D3DXMATRIX *pView, CONST D3DXMATRIX *pWorld);
815
816// Project vector from screen space into object space
817D3DXVECTOR3* WINAPI D3DXVec3Unproject
818    ( D3DXVECTOR3 *pOut, CONST D3DXVECTOR3 *pV, CONST D3D10_VIEWPORT *pViewport,
819      CONST D3DXMATRIX *pProjection, CONST D3DXMATRIX *pView, CONST D3DXMATRIX *pWorld);
820     
821// Project vector Array from object space into screen space
822D3DXVECTOR3* WINAPI D3DXVec3ProjectArray
823    ( D3DXVECTOR3 *pOut, UINT OutStride,CONST D3DXVECTOR3 *pV, UINT VStride,CONST D3D10_VIEWPORT *pViewport,
824      CONST D3DXMATRIX *pProjection, CONST D3DXMATRIX *pView, CONST D3DXMATRIX *pWorld, UINT n);
825
826// Project vector Array from screen space into object space
827D3DXVECTOR3* WINAPI D3DXVec3UnprojectArray
828    ( D3DXVECTOR3 *pOut, UINT OutStride, CONST D3DXVECTOR3 *pV, UINT VStride, CONST D3D10_VIEWPORT *pViewport,
829      CONST D3DXMATRIX *pProjection, CONST D3DXMATRIX *pView, CONST D3DXMATRIX *pWorld, UINT n);
830
831
832#ifdef __cplusplus
833}
834#endif
835
836
837
838//--------------------------
839// 4D Vector
840//--------------------------
841
842// inline
843
844FLOAT D3DXVec4Length
845    ( CONST D3DXVECTOR4 *pV );
846
847FLOAT D3DXVec4LengthSq
848    ( CONST D3DXVECTOR4 *pV );
849
850FLOAT D3DXVec4Dot
851    ( CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2 );
852
853D3DXVECTOR4* D3DXVec4Add
854    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2);
855
856D3DXVECTOR4* D3DXVec4Subtract
857    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2);
858
859// Minimize each component.  x = min(x1, x2), y = min(y1, y2), ...
860D3DXVECTOR4* D3DXVec4Minimize
861    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2);
862
863// Maximize each component.  x = max(x1, x2), y = max(y1, y2), ...
864D3DXVECTOR4* D3DXVec4Maximize
865    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2);
866
867D3DXVECTOR4* D3DXVec4Scale
868    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV, FLOAT s);
869
870// Linear interpolation. V1 + s(V2-V1)
871D3DXVECTOR4* D3DXVec4Lerp
872    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2,
873      FLOAT s );
874
875// non-inline
876#ifdef __cplusplus
877extern "C" {
878#endif
879
880// Cross-product in 4 dimensions.
881D3DXVECTOR4* WINAPI D3DXVec4Cross
882    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2,
883      CONST D3DXVECTOR4 *pV3);
884
885D3DXVECTOR4* WINAPI D3DXVec4Normalize
886    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV );
887
888// Hermite interpolation between position V1, tangent T1 (when s == 0)
889// and position V2, tangent T2 (when s == 1).
890D3DXVECTOR4* WINAPI D3DXVec4Hermite
891    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pT1,
892      CONST D3DXVECTOR4 *pV2, CONST D3DXVECTOR4 *pT2, FLOAT s );
893
894// CatmullRom interpolation between V1 (when s == 0) and V2 (when s == 1)
895D3DXVECTOR4* WINAPI D3DXVec4CatmullRom
896    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV0, CONST D3DXVECTOR4 *pV1,
897      CONST D3DXVECTOR4 *pV2, CONST D3DXVECTOR4 *pV3, FLOAT s );
898
899// Barycentric coordinates.  V1 + f(V2-V1) + g(V3-V1)
900D3DXVECTOR4* WINAPI D3DXVec4BaryCentric
901    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV1, CONST D3DXVECTOR4 *pV2,
902      CONST D3DXVECTOR4 *pV3, FLOAT f, FLOAT g);
903
904// Transform vector by matrix.
905D3DXVECTOR4* WINAPI D3DXVec4Transform
906    ( D3DXVECTOR4 *pOut, CONST D3DXVECTOR4 *pV, CONST D3DXMATRIX *pM );
907   
908// Transform vector array by matrix.
909D3DXVECTOR4* WINAPI D3DXVec4TransformArray
910    ( D3DXVECTOR4 *pOut, UINT OutStride, CONST D3DXVECTOR4 *pV, UINT VStride, CONST D3DXMATRIX *pM, UINT n );
911
912#ifdef __cplusplus
913}
914#endif
915
916
917//--------------------------
918// 4D Matrix
919//--------------------------
920
921// inline
922
923D3DXMATRIX* D3DXMatrixIdentity
924    ( D3DXMATRIX *pOut );
925
926BOOL D3DXMatrixIsIdentity
927    ( CONST D3DXMATRIX *pM );
928
929
930// non-inline
931#ifdef __cplusplus
932extern "C" {
933#endif
934
935FLOAT WINAPI D3DXMatrixDeterminant
936    ( CONST D3DXMATRIX *pM );
937
938HRESULT WINAPI D3DXMatrixDecompose
939    ( D3DXVECTOR3 *pOutScale, D3DXQUATERNION *pOutRotation,
940     D3DXVECTOR3 *pOutTranslation, CONST D3DXMATRIX *pM );
941
942D3DXMATRIX* WINAPI D3DXMatrixTranspose
943    ( D3DXMATRIX *pOut, CONST D3DXMATRIX *pM );
944
945// Matrix multiplication.  The result represents the transformation M2
946// followed by the transformation M1.  (Out = M1 * M2)
947D3DXMATRIX* WINAPI D3DXMatrixMultiply
948    ( D3DXMATRIX *pOut, CONST D3DXMATRIX *pM1, CONST D3DXMATRIX *pM2 );
949
950// Matrix multiplication, followed by a transpose. (Out = T(M1 * M2))
951D3DXMATRIX* WINAPI D3DXMatrixMultiplyTranspose
952    ( D3DXMATRIX *pOut, CONST D3DXMATRIX *pM1, CONST D3DXMATRIX *pM2 );
953
954// Calculate inverse of matrix.  Inversion my fail, in which case NULL will
955// be returned.  The determinant of pM is also returned it pfDeterminant
956// is non-NULL.
957D3DXMATRIX* WINAPI D3DXMatrixInverse
958    ( D3DXMATRIX *pOut, FLOAT *pDeterminant, CONST D3DXMATRIX *pM );
959
960// Build a matrix which scales by (sx, sy, sz)
961D3DXMATRIX* WINAPI D3DXMatrixScaling
962    ( D3DXMATRIX *pOut, FLOAT sx, FLOAT sy, FLOAT sz );
963
964// Build a matrix which translates by (x, y, z)
965D3DXMATRIX* WINAPI D3DXMatrixTranslation
966    ( D3DXMATRIX *pOut, FLOAT x, FLOAT y, FLOAT z );
967
968// Build a matrix which rotates around the X axis
969D3DXMATRIX* WINAPI D3DXMatrixRotationX
970    ( D3DXMATRIX *pOut, FLOAT Angle );
971
972// Build a matrix which rotates around the Y axis
973D3DXMATRIX* WINAPI D3DXMatrixRotationY
974    ( D3DXMATRIX *pOut, FLOAT Angle );
975
976// Build a matrix which rotates around the Z axis
977D3DXMATRIX* WINAPI D3DXMatrixRotationZ
978    ( D3DXMATRIX *pOut, FLOAT Angle );
979
980// Build a matrix which rotates around an arbitrary axis
981D3DXMATRIX* WINAPI D3DXMatrixRotationAxis
982    ( D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pV, FLOAT Angle );
983
984// Build a matrix from a quaternion
985D3DXMATRIX* WINAPI D3DXMatrixRotationQuaternion
986    ( D3DXMATRIX *pOut, CONST D3DXQUATERNION *pQ);
987
988// Yaw around the Y axis, a pitch around the X axis,
989// and a roll around the Z axis.
990D3DXMATRIX* WINAPI D3DXMatrixRotationYawPitchRoll
991    ( D3DXMATRIX *pOut, FLOAT Yaw, FLOAT Pitch, FLOAT Roll );
992
993// Build transformation matrix.  NULL arguments are treated as identity.
994// Mout = Msc-1 * Msr-1 * Ms * Msr * Msc * Mrc-1 * Mr * Mrc * Mt
995D3DXMATRIX* WINAPI D3DXMatrixTransformation
996    ( D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pScalingCenter,
997      CONST D3DXQUATERNION *pScalingRotation, CONST D3DXVECTOR3 *pScaling,
998      CONST D3DXVECTOR3 *pRotationCenter, CONST D3DXQUATERNION *pRotation,
999      CONST D3DXVECTOR3 *pTranslation);
1000
1001// Build 2D transformation matrix in XY plane.  NULL arguments are treated as identity.
1002// Mout = Msc-1 * Msr-1 * Ms * Msr * Msc * Mrc-1 * Mr * Mrc * Mt
1003D3DXMATRIX* WINAPI D3DXMatrixTransformation2D
1004    ( D3DXMATRIX *pOut, CONST D3DXVECTOR2* pScalingCenter,
1005      FLOAT ScalingRotation, CONST D3DXVECTOR2* pScaling,
1006      CONST D3DXVECTOR2* pRotationCenter, FLOAT Rotation,
1007      CONST D3DXVECTOR2* pTranslation);
1008
1009// Build affine transformation matrix.  NULL arguments are treated as identity.
1010// Mout = Ms * Mrc-1 * Mr * Mrc * Mt
1011D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation
1012    ( D3DXMATRIX *pOut, FLOAT Scaling, CONST D3DXVECTOR3 *pRotationCenter,
1013      CONST D3DXQUATERNION *pRotation, CONST D3DXVECTOR3 *pTranslation);
1014
1015// Build 2D affine transformation matrix in XY plane.  NULL arguments are treated as identity.
1016// Mout = Ms * Mrc-1 * Mr * Mrc * Mt
1017D3DXMATRIX* WINAPI D3DXMatrixAffineTransformation2D
1018    ( D3DXMATRIX *pOut, FLOAT Scaling, CONST D3DXVECTOR2* pRotationCenter,
1019      FLOAT Rotation, CONST D3DXVECTOR2* pTranslation);
1020
1021// Build a lookat matrix. (right-handed)
1022D3DXMATRIX* WINAPI D3DXMatrixLookAtRH
1023    ( D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pEye, CONST D3DXVECTOR3 *pAt,
1024      CONST D3DXVECTOR3 *pUp );
1025
1026// Build a lookat matrix. (left-handed)
1027D3DXMATRIX* WINAPI D3DXMatrixLookAtLH
1028    ( D3DXMATRIX *pOut, CONST D3DXVECTOR3 *pEye, CONST D3DXVECTOR3 *pAt,
1029      CONST D3DXVECTOR3 *pUp );
1030
1031// Build a perspective projection matrix. (right-handed)
1032D3DXMATRIX* WINAPI D3DXMatrixPerspectiveRH
1033    ( D3DXMATRIX *pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf );
1034
1035// Build a perspective projection matrix. (left-handed)
1036D3DXMATRIX* WINAPI D3DXMatrixPerspectiveLH
1037    ( D3DXMATRIX *pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf );
1038
1039// Build a perspective projection matrix. (right-handed)
1040D3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovRH
1041    ( D3DXMATRIX *pOut, FLOAT fovy, FLOAT Aspect, FLOAT zn, FLOAT zf );
1042
1043// Build a perspective projection matrix. (left-handed)
1044D3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovLH
1045    ( D3DXMATRIX *pOut, FLOAT fovy, FLOAT Aspect, FLOAT zn, FLOAT zf );
1046
1047// Build a perspective projection matrix. (right-handed)
1048D3DXMATRIX* WINAPI D3DXMatrixPerspectiveOffCenterRH
1049    ( D3DXMATRIX *pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn,
1050      FLOAT zf );
1051
1052// Build a perspective projection matrix. (left-handed)
1053D3DXMATRIX* WINAPI D3DXMatrixPerspectiveOffCenterLH
1054    ( D3DXMATRIX *pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn,
1055      FLOAT zf );
1056
1057// Build an ortho projection matrix. (right-handed)
1058D3DXMATRIX* WINAPI D3DXMatrixOrthoRH
1059    ( D3DXMATRIX *pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf );
1060
1061// Build an ortho projection matrix. (left-handed)
1062D3DXMATRIX* WINAPI D3DXMatrixOrthoLH
1063    ( D3DXMATRIX *pOut, FLOAT w, FLOAT h, FLOAT zn, FLOAT zf );
1064
1065// Build an ortho projection matrix. (right-handed)
1066D3DXMATRIX* WINAPI D3DXMatrixOrthoOffCenterRH
1067    ( D3DXMATRIX *pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn,
1068      FLOAT zf );
1069
1070// Build an ortho projection matrix. (left-handed)
1071D3DXMATRIX* WINAPI D3DXMatrixOrthoOffCenterLH
1072    ( D3DXMATRIX *pOut, FLOAT l, FLOAT r, FLOAT b, FLOAT t, FLOAT zn,
1073      FLOAT zf );
1074
1075// Build a matrix which flattens geometry into a plane, as if casting
1076// a shadow from a light.
1077D3DXMATRIX* WINAPI D3DXMatrixShadow
1078    ( D3DXMATRIX *pOut, CONST D3DXVECTOR4 *pLight,
1079      CONST D3DXPLANE *pPlane );
1080
1081// Build a matrix which reflects the coordinate system about a plane
1082D3DXMATRIX* WINAPI D3DXMatrixReflect
1083    ( D3DXMATRIX *pOut, CONST D3DXPLANE *pPlane );
1084
1085#ifdef __cplusplus
1086}
1087#endif
1088
1089
1090//--------------------------
1091// Quaternion
1092//--------------------------
1093
1094// inline
1095
1096FLOAT D3DXQuaternionLength
1097    ( CONST D3DXQUATERNION *pQ );
1098
1099// Length squared, or "norm"
1100FLOAT D3DXQuaternionLengthSq
1101    ( CONST D3DXQUATERNION *pQ );
1102
1103FLOAT D3DXQuaternionDot
1104    ( CONST D3DXQUATERNION *pQ1, CONST D3DXQUATERNION *pQ2 );
1105
1106// (0, 0, 0, 1)
1107D3DXQUATERNION* D3DXQuaternionIdentity
1108    ( D3DXQUATERNION *pOut );
1109
1110BOOL D3DXQuaternionIsIdentity
1111    ( CONST D3DXQUATERNION *pQ );
1112
1113// (-x, -y, -z, w)
1114D3DXQUATERNION* D3DXQuaternionConjugate
1115    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ );
1116
1117
1118// non-inline
1119#ifdef __cplusplus
1120extern "C" {
1121#endif
1122
1123// Compute a quaternin's axis and angle of rotation. Expects unit quaternions.
1124void WINAPI D3DXQuaternionToAxisAngle
1125    ( CONST D3DXQUATERNION *pQ, D3DXVECTOR3 *pAxis, FLOAT *pAngle );
1126
1127// Build a quaternion from a rotation matrix.
1128D3DXQUATERNION* WINAPI D3DXQuaternionRotationMatrix
1129    ( D3DXQUATERNION *pOut, CONST D3DXMATRIX *pM);
1130
1131// Rotation about arbitrary axis.
1132D3DXQUATERNION* WINAPI D3DXQuaternionRotationAxis
1133    ( D3DXQUATERNION *pOut, CONST D3DXVECTOR3 *pV, FLOAT Angle );
1134
1135// Yaw around the Y axis, a pitch around the X axis,
1136// and a roll around the Z axis.
1137D3DXQUATERNION* WINAPI D3DXQuaternionRotationYawPitchRoll
1138    ( D3DXQUATERNION *pOut, FLOAT Yaw, FLOAT Pitch, FLOAT Roll );
1139
1140// Quaternion multiplication.  The result represents the rotation Q2
1141// followed by the rotation Q1.  (Out = Q2 * Q1)
1142D3DXQUATERNION* WINAPI D3DXQuaternionMultiply
1143    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ1,
1144      CONST D3DXQUATERNION *pQ2 );
1145
1146D3DXQUATERNION* WINAPI D3DXQuaternionNormalize
1147    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ );
1148
1149// Conjugate and re-norm
1150D3DXQUATERNION* WINAPI D3DXQuaternionInverse
1151    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ );
1152
1153// Expects unit quaternions.
1154// if q = (cos(theta), sin(theta) * v); ln(q) = (0, theta * v)
1155D3DXQUATERNION* WINAPI D3DXQuaternionLn
1156    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ );
1157
1158// Expects pure quaternions. (w == 0)  w is ignored in calculation.
1159// if q = (0, theta * v); exp(q) = (cos(theta), sin(theta) * v)
1160D3DXQUATERNION* WINAPI D3DXQuaternionExp
1161    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ );
1162     
1163// Spherical linear interpolation between Q1 (t == 0) and Q2 (t == 1).
1164// Expects unit quaternions.
1165D3DXQUATERNION* WINAPI D3DXQuaternionSlerp
1166    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ1,
1167      CONST D3DXQUATERNION *pQ2, FLOAT t );
1168
1169// Spherical quadrangle interpolation.
1170// Slerp(Slerp(Q1, C, t), Slerp(A, B, t), 2t(1-t))
1171D3DXQUATERNION* WINAPI D3DXQuaternionSquad
1172    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ1,
1173      CONST D3DXQUATERNION *pA, CONST D3DXQUATERNION *pB,
1174      CONST D3DXQUATERNION *pC, FLOAT t );
1175
1176// Setup control points for spherical quadrangle interpolation
1177// from Q1 to Q2.  The control points are chosen in such a way
1178// to ensure the continuity of tangents with adjacent segments.
1179void WINAPI D3DXQuaternionSquadSetup
1180    ( D3DXQUATERNION *pAOut, D3DXQUATERNION *pBOut, D3DXQUATERNION *pCOut,
1181      CONST D3DXQUATERNION *pQ0, CONST D3DXQUATERNION *pQ1,
1182      CONST D3DXQUATERNION *pQ2, CONST D3DXQUATERNION *pQ3 );
1183
1184// Barycentric interpolation.
1185// Slerp(Slerp(Q1, Q2, f+g), Slerp(Q1, Q3, f+g), g/(f+g))
1186D3DXQUATERNION* WINAPI D3DXQuaternionBaryCentric
1187    ( D3DXQUATERNION *pOut, CONST D3DXQUATERNION *pQ1,
1188      CONST D3DXQUATERNION *pQ2, CONST D3DXQUATERNION *pQ3,
1189      FLOAT f, FLOAT g );
1190
1191#ifdef __cplusplus
1192}
1193#endif
1194
1195
1196//--------------------------
1197// Plane
1198//--------------------------
1199
1200// inline
1201
1202// ax + by + cz + dw
1203FLOAT D3DXPlaneDot
1204    ( CONST D3DXPLANE *pP, CONST D3DXVECTOR4 *pV);
1205
1206// ax + by + cz + d
1207FLOAT D3DXPlaneDotCoord
1208    ( CONST D3DXPLANE *pP, CONST D3DXVECTOR3 *pV);
1209
1210// ax + by + cz
1211FLOAT D3DXPlaneDotNormal
1212    ( CONST D3DXPLANE *pP, CONST D3DXVECTOR3 *pV);
1213
1214D3DXPLANE* D3DXPlaneScale
1215    (D3DXPLANE *pOut, CONST D3DXPLANE *pP, FLOAT s);
1216
1217// non-inline
1218#ifdef __cplusplus
1219extern "C" {
1220#endif
1221
1222// Normalize plane (so that |a,b,c| == 1)
1223D3DXPLANE* WINAPI D3DXPlaneNormalize
1224    ( D3DXPLANE *pOut, CONST D3DXPLANE *pP);
1225
1226// Find the intersection between a plane and a line.  If the line is
1227// parallel to the plane, NULL is returned.
1228D3DXVECTOR3* WINAPI D3DXPlaneIntersectLine
1229    ( D3DXVECTOR3 *pOut, CONST D3DXPLANE *pP, CONST D3DXVECTOR3 *pV1,
1230      CONST D3DXVECTOR3 *pV2);
1231
1232// Construct a plane from a point and a normal
1233D3DXPLANE* WINAPI D3DXPlaneFromPointNormal
1234    ( D3DXPLANE *pOut, CONST D3DXVECTOR3 *pPoint, CONST D3DXVECTOR3 *pNormal);
1235
1236// Construct a plane from 3 points
1237D3DXPLANE* WINAPI D3DXPlaneFromPoints
1238    ( D3DXPLANE *pOut, CONST D3DXVECTOR3 *pV1, CONST D3DXVECTOR3 *pV2,
1239      CONST D3DXVECTOR3 *pV3);
1240
1241// Transform a plane by a matrix.  The vector (a,b,c) must be normal.
1242// M should be the inverse transpose of the transformation desired.
1243D3DXPLANE* WINAPI D3DXPlaneTransform
1244    ( D3DXPLANE *pOut, CONST D3DXPLANE *pP, CONST D3DXMATRIX *pM );
1245   
1246// Transform an array of planes by a matrix.  The vectors (a,b,c) must be normal.
1247// M should be the inverse transpose of the transformation desired.
1248D3DXPLANE* WINAPI D3DXPlaneTransformArray
1249    ( D3DXPLANE *pOut, UINT OutStride, CONST D3DXPLANE *pP, UINT PStride, CONST D3DXMATRIX *pM, UINT n );
1250
1251#ifdef __cplusplus
1252}
1253#endif
1254
1255
1256//--------------------------
1257// Color
1258//--------------------------
1259
1260// inline
1261
1262// (1-r, 1-g, 1-b, a)
1263D3DXCOLOR* D3DXColorNegative
1264    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC);
1265
1266D3DXCOLOR* D3DXColorAdd
1267    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC1, CONST D3DXCOLOR *pC2);
1268
1269D3DXCOLOR* D3DXColorSubtract
1270    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC1, CONST D3DXCOLOR *pC2);
1271
1272D3DXCOLOR* D3DXColorScale
1273    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC, FLOAT s);
1274
1275// (r1*r2, g1*g2, b1*b2, a1*a2)
1276D3DXCOLOR* D3DXColorModulate
1277    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC1, CONST D3DXCOLOR *pC2);
1278
1279// Linear interpolation of r,g,b, and a. C1 + s(C2-C1)
1280D3DXCOLOR* D3DXColorLerp
1281    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC1, CONST D3DXCOLOR *pC2, FLOAT s);
1282
1283// non-inline
1284#ifdef __cplusplus
1285extern "C" {
1286#endif
1287
1288// Interpolate r,g,b between desaturated color and color.
1289// DesaturatedColor + s(Color - DesaturatedColor)
1290D3DXCOLOR* WINAPI D3DXColorAdjustSaturation
1291    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC, FLOAT s);
1292
1293// Interpolate r,g,b between 50% grey and color.  Grey + s(Color - Grey)
1294D3DXCOLOR* WINAPI D3DXColorAdjustContrast
1295    (D3DXCOLOR *pOut, CONST D3DXCOLOR *pC, FLOAT c);
1296
1297#ifdef __cplusplus
1298}
1299#endif
1300
1301
1302
1303
1304//--------------------------
1305// Misc
1306//--------------------------
1307
1308#ifdef __cplusplus
1309extern "C" {
1310#endif
1311
1312// Calculate Fresnel term given the cosine of theta (likely obtained by
1313// taking the dot of two normals), and the refraction index of the material.
1314FLOAT WINAPI D3DXFresnelTerm
1315    (FLOAT CosTheta, FLOAT RefractionIndex);     
1316
1317#ifdef __cplusplus
1318}
1319#endif
1320
1321
1322
1323//===========================================================================
1324//
1325//    Matrix Stack
1326//
1327//===========================================================================
1328
1329typedef interface ID3DXMatrixStack ID3DXMatrixStack;
1330typedef interface ID3DXMatrixStack *LPD3DXMATRIXSTACK;
1331
1332// {C7885BA7-F990-4fe7-922D-8515E477DD85}
1333DEFINE_GUID(IID_ID3DXMatrixStack,
13340xc7885ba7, 0xf990, 0x4fe7, 0x92, 0x2d, 0x85, 0x15, 0xe4, 0x77, 0xdd, 0x85);
1335
1336
1337#undef INTERFACE
1338#define INTERFACE ID3DXMatrixStack
1339
1340DECLARE_INTERFACE_(ID3DXMatrixStack, IUnknown)
1341{
1342    //
1343    // IUnknown methods
1344    //
1345    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
1346    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1347    STDMETHOD_(ULONG,Release)(THIS) PURE;
1348
1349    //
1350    // ID3DXMatrixStack methods
1351    //
1352
1353    // Pops the top of the stack, returns the current top
1354    // *after* popping the top.
1355    STDMETHOD(Pop)(THIS) PURE;
1356
1357    // Pushes the stack by one, duplicating the current matrix.
1358    STDMETHOD(Push)(THIS) PURE;
1359
1360    // Loads identity in the current matrix.
1361    STDMETHOD(LoadIdentity)(THIS) PURE;
1362
1363    // Loads the given matrix into the current matrix
1364    STDMETHOD(LoadMatrix)(THIS_ CONST D3DXMATRIX* pM ) PURE;
1365
1366    // Right-Multiplies the given matrix to the current matrix.
1367    // (transformation is about the current world origin)
1368    STDMETHOD(MultMatrix)(THIS_ CONST D3DXMATRIX* pM ) PURE;
1369
1370    // Left-Multiplies the given matrix to the current matrix
1371    // (transformation is about the local origin of the object)
1372    STDMETHOD(MultMatrixLocal)(THIS_ CONST D3DXMATRIX* pM ) PURE;
1373
1374    // Right multiply the current matrix with the computed rotation
1375    // matrix, counterclockwise about the given axis with the given angle.
1376    // (rotation is about the current world origin)
1377    STDMETHOD(RotateAxis)
1378        (THIS_ CONST D3DXVECTOR3* pV, FLOAT Angle) PURE;
1379
1380    // Left multiply the current matrix with the computed rotation
1381    // matrix, counterclockwise about the given axis with the given angle.
1382    // (rotation is about the local origin of the object)
1383    STDMETHOD(RotateAxisLocal)
1384        (THIS_ CONST D3DXVECTOR3* pV, FLOAT Angle) PURE;
1385
1386    // Right multiply the current matrix with the computed rotation
1387    // matrix. All angles are counterclockwise. (rotation is about the
1388    // current world origin)
1389
1390    // The rotation is composed of a yaw around the Y axis, a pitch around
1391    // the X axis, and a roll around the Z axis.
1392    STDMETHOD(RotateYawPitchRoll)
1393        (THIS_ FLOAT Yaw, FLOAT Pitch, FLOAT Roll) PURE;
1394
1395    // Left multiply the current matrix with the computed rotation
1396    // matrix. All angles are counterclockwise. (rotation is about the
1397    // local origin of the object)
1398
1399    // The rotation is composed of a yaw around the Y axis, a pitch around
1400    // the X axis, and a roll around the Z axis.
1401    STDMETHOD(RotateYawPitchRollLocal)
1402        (THIS_ FLOAT Yaw, FLOAT Pitch, FLOAT Roll) PURE;
1403
1404    // Right multiply the current matrix with the computed scale
1405    // matrix. (transformation is about the current world origin)
1406    STDMETHOD(Scale)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
1407
1408    // Left multiply the current matrix with the computed scale
1409    // matrix. (transformation is about the local origin of the object)
1410    STDMETHOD(ScaleLocal)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
1411
1412    // Right multiply the current matrix with the computed translation
1413    // matrix. (transformation is about the current world origin)
1414    STDMETHOD(Translate)(THIS_ FLOAT x, FLOAT y, FLOAT z ) PURE;
1415
1416    // Left multiply the current matrix with the computed translation
1417    // matrix. (transformation is about the local origin of the object)
1418    STDMETHOD(TranslateLocal)(THIS_ FLOAT x, FLOAT y, FLOAT z) PURE;
1419
1420    // Obtain the current matrix at the top of the stack
1421    STDMETHOD_(D3DXMATRIX*, GetTop)(THIS) PURE;
1422};
1423
1424#ifdef __cplusplus
1425extern "C" {
1426#endif
1427
1428HRESULT WINAPI
1429    D3DXCreateMatrixStack(
1430        UINT                Flags,
1431        LPD3DXMATRIXSTACK*  ppStack);
1432
1433#ifdef __cplusplus
1434}
1435#endif
1436
1437// non-inline
1438#ifdef __cplusplus
1439extern "C" {
1440#endif
1441
1442//============================================================================
1443//
1444//  Basic Spherical Harmonic math routines
1445//
1446//============================================================================
1447
1448#define D3DXSH_MINORDER 2
1449#define D3DXSH_MAXORDER 6
1450
1451//============================================================================
1452//
1453//  D3DXSHEvalDirection:
1454//  --------------------
1455//  Evaluates the Spherical Harmonic basis functions
1456//
1457//  Parameters:
1458//   pOut
1459//      Output SH coefficients - basis function Ylm is stored at l*l + m+l
1460//      This is the pointer that is returned.
1461//   Order
1462//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1463//   pDir
1464//      Direction to evaluate in - assumed to be normalized
1465//
1466//============================================================================
1467
1468FLOAT* WINAPI D3DXSHEvalDirection
1469    (  FLOAT *pOut, UINT Order, CONST D3DXVECTOR3 *pDir );
1470   
1471//============================================================================
1472//
1473//  D3DXSHRotate:
1474//  --------------------
1475//  Rotates SH vector by a rotation matrix
1476//
1477//  Parameters:
1478//   pOut
1479//      Output SH coefficients - basis function Ylm is stored at l*l + m+l
1480//      This is the pointer that is returned (should not alias with pIn.)
1481//   Order
1482//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1483//   pMatrix
1484//      Matrix used for rotation - rotation sub matrix should be orthogonal
1485//      and have a unit determinant.
1486//   pIn
1487//      Input SH coeffs (rotated), incorect results if this is also output.
1488//
1489//============================================================================
1490
1491FLOAT* WINAPI D3DXSHRotate
1492    ( __out_ecount(Order*Order) FLOAT *pOut, UINT Order, CONST D3DXMATRIX *pMatrix, CONST FLOAT *pIn );
1493   
1494//============================================================================
1495//
1496//  D3DXSHRotateZ:
1497//  --------------------
1498//  Rotates the SH vector in the Z axis by an angle
1499//
1500//  Parameters:
1501//   pOut
1502//      Output SH coefficients - basis function Ylm is stored at l*l + m+l
1503//      This is the pointer that is returned (should not alias with pIn.)
1504//   Order
1505//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1506//   Angle
1507//      Angle in radians to rotate around the Z axis.
1508//   pIn
1509//      Input SH coeffs (rotated), incorect results if this is also output.
1510//
1511//============================================================================
1512
1513
1514FLOAT* WINAPI D3DXSHRotateZ
1515    ( FLOAT *pOut, UINT Order, FLOAT Angle, CONST FLOAT *pIn );
1516   
1517//============================================================================
1518//
1519//  D3DXSHAdd:
1520//  --------------------
1521//  Adds two SH vectors, pOut[i] = pA[i] + pB[i];
1522//
1523//  Parameters:
1524//   pOut
1525//      Output SH coefficients - basis function Ylm is stored at l*l + m+l
1526//      This is the pointer that is returned.
1527//   Order
1528//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1529//   pA
1530//      Input SH coeffs.
1531//   pB
1532//      Input SH coeffs (second vector.)
1533//
1534//============================================================================
1535
1536FLOAT* WINAPI D3DXSHAdd
1537    ( __out_ecount(Order*Order) FLOAT *pOut, UINT Order, CONST FLOAT *pA, CONST FLOAT *pB );
1538
1539//============================================================================
1540//
1541//  D3DXSHScale:
1542//  --------------------
1543//  Adds two SH vectors, pOut[i] = pA[i]*Scale;
1544//
1545//  Parameters:
1546//   pOut
1547//      Output SH coefficients - basis function Ylm is stored at l*l + m+l
1548//      This is the pointer that is returned.
1549//   Order
1550//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1551//   pIn
1552//      Input SH coeffs.
1553//   Scale
1554//      Scale factor.
1555//
1556//============================================================================
1557
1558FLOAT* WINAPI D3DXSHScale
1559    ( __out_ecount(Order*Order) FLOAT *pOut, UINT Order, CONST FLOAT *pIn, CONST FLOAT Scale );
1560   
1561//============================================================================
1562//
1563//  D3DXSHDot:
1564//  --------------------
1565//  Computes the dot product of two SH vectors
1566//
1567//  Parameters:
1568//   Order
1569//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1570//   pA
1571//      Input SH coeffs.
1572//   pB
1573//      Second set of input SH coeffs.
1574//
1575//============================================================================
1576
1577FLOAT WINAPI D3DXSHDot
1578    ( UINT Order, CONST FLOAT *pA, CONST FLOAT *pB );
1579
1580//============================================================================
1581//
1582//  D3DXSHMultiply[O]:
1583//  --------------------
1584//  Computes the product of two functions represented using SH (f and g), where:
1585//  pOut[i] = int(y_i(s) * f(s) * g(s)), where y_i(s) is the ith SH basis
1586//  function, f(s) and g(s) are SH functions (sum_i(y_i(s)*c_i)).  The order O
1587//  determines the lengths of the arrays, where there should always be O^2
1588//  coefficients.  In general the product of two SH functions of order O generates
1589//  and SH function of order 2*O - 1, but we truncate the result.  This means
1590//  that the product commutes (f*g == g*f) but doesn't associate
1591//  (f*(g*h) != (f*g)*h.
1592//
1593//  Parameters:
1594//   pOut
1595//      Output SH coefficients - basis function Ylm is stored at l*l + m+l
1596//      This is the pointer that is returned.
1597//   pF
1598//      Input SH coeffs for first function.
1599//   pG
1600//      Second set of input SH coeffs.
1601//
1602//============================================================================
1603
1604__out_ecount(4)  FLOAT* WINAPI D3DXSHMultiply2(__out_ecount(4)  FLOAT *pOut,__in_ecount(4)  CONST FLOAT *pF,__in_ecount(4)  CONST FLOAT *pG);
1605__out_ecount(9)  FLOAT* WINAPI D3DXSHMultiply3(__out_ecount(9)  FLOAT *pOut,__in_ecount(9)  CONST FLOAT *pF,__in_ecount(9)  CONST FLOAT *pG);
1606__out_ecount(16) FLOAT* WINAPI D3DXSHMultiply4(__out_ecount(16) FLOAT *pOut,__in_ecount(16) CONST FLOAT *pF,__in_ecount(16) CONST FLOAT *pG);
1607__out_ecount(25) FLOAT* WINAPI D3DXSHMultiply5(__out_ecount(25) FLOAT *pOut,__in_ecount(25) CONST FLOAT *pF,__in_ecount(25) CONST FLOAT *pG);
1608__out_ecount(36) FLOAT* WINAPI D3DXSHMultiply6(__out_ecount(36) FLOAT *pOut,__in_ecount(36) CONST FLOAT *pF,__in_ecount(36) CONST FLOAT *pG);
1609
1610
1611//============================================================================
1612//
1613//  Basic Spherical Harmonic lighting routines
1614//
1615//============================================================================
1616
1617//============================================================================
1618//
1619//  D3DXSHEvalDirectionalLight:
1620//  --------------------
1621//  Evaluates a directional light and returns spectral SH data.  The output
1622//  vector is computed so that if the intensity of R/G/B is unit the resulting
1623//  exit radiance of a point directly under the light on a diffuse object with
1624//  an albedo of 1 would be 1.0.  This will compute 3 spectral samples, pROut
1625//  has to be specified, while pGout and pBout are optional.
1626//
1627//  Parameters:
1628//   Order
1629//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1630//   pDir
1631//      Direction light is coming from (assumed to be normalized.)
1632//   RIntensity
1633//      Red intensity of light.
1634//   GIntensity
1635//      Green intensity of light.
1636//   BIntensity
1637//      Blue intensity of light.
1638//   pROut
1639//      Output SH vector for Red.
1640//   pGOut
1641//      Output SH vector for Green (optional.)
1642//   pBOut
1643//      Output SH vector for Blue (optional.)       
1644//
1645//============================================================================
1646
1647HRESULT WINAPI D3DXSHEvalDirectionalLight
1648    ( UINT Order, CONST D3DXVECTOR3 *pDir,
1649      FLOAT RIntensity, FLOAT GIntensity, FLOAT BIntensity,
1650      __out_ecount_opt(Order*Order) FLOAT *pROut,
1651      __out_ecount_opt(Order*Order) FLOAT *pGOut,
1652      __out_ecount_opt(Order*Order) FLOAT *pBOut );
1653
1654//============================================================================
1655//
1656//  D3DXSHEvalSphericalLight:
1657//  --------------------
1658//  Evaluates a spherical light and returns spectral SH data.  There is no
1659//  normalization of the intensity of the light like there is for directional
1660//  lights, care has to be taken when specifiying the intensities.  This will
1661//  compute 3 spectral samples, pROut has to be specified, while pGout and
1662//  pBout are optional.
1663//
1664//  Parameters:
1665//   Order
1666//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1667//   pPos
1668//      Position of light - reciever is assumed to be at the origin.
1669//   Radius
1670//      Radius of the spherical light source.
1671//   RIntensity
1672//      Red intensity of light.
1673//   GIntensity
1674//      Green intensity of light.
1675//   BIntensity
1676//      Blue intensity of light.
1677//   pROut
1678//      Output SH vector for Red.
1679//   pGOut
1680//      Output SH vector for Green (optional.)
1681//   pBOut
1682//      Output SH vector for Blue (optional.)       
1683//
1684//============================================================================
1685
1686HRESULT WINAPI D3DXSHEvalSphericalLight
1687    ( UINT Order, CONST D3DXVECTOR3 *pPos, FLOAT Radius,
1688      FLOAT RIntensity, FLOAT GIntensity, FLOAT BIntensity,
1689      __out_ecount_opt(Order*Order) FLOAT *pROut,
1690      __out_ecount_opt(Order*Order) FLOAT *pGOut,
1691      __out_ecount_opt(Order*Order) FLOAT *pBOut );
1692
1693//============================================================================
1694//
1695//  D3DXSHEvalConeLight:
1696//  --------------------
1697//  Evaluates a light that is a cone of constant intensity and returns spectral
1698//  SH data.  The output vector is computed so that if the intensity of R/G/B is
1699//  unit the resulting exit radiance of a point directly under the light oriented
1700//  in the cone direction on a diffuse object with an albedo of 1 would be 1.0.
1701//  This will compute 3 spectral samples, pROut has to be specified, while pGout
1702//  and pBout are optional.
1703//
1704//  Parameters:
1705//   Order
1706//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1707//   pDir
1708//      Direction light is coming from (assumed to be normalized.)
1709//   Radius
1710//      Radius of cone in radians.
1711//   RIntensity
1712//      Red intensity of light.
1713//   GIntensity
1714//      Green intensity of light.
1715//   BIntensity
1716//      Blue intensity of light.
1717//   pROut
1718//      Output SH vector for Red.
1719//   pGOut
1720//      Output SH vector for Green (optional.)
1721//   pBOut
1722//      Output SH vector for Blue (optional.)       
1723//
1724//============================================================================
1725
1726HRESULT WINAPI D3DXSHEvalConeLight
1727    ( UINT Order, CONST D3DXVECTOR3 *pDir, FLOAT Radius,
1728      FLOAT RIntensity, FLOAT GIntensity, FLOAT BIntensity,
1729      __out_ecount_opt(Order*Order) FLOAT *pROut,
1730      __out_ecount_opt(Order*Order) FLOAT *pGOut,
1731      __out_ecount_opt(Order*Order) FLOAT *pBOut );
1732     
1733//============================================================================
1734//
1735//  D3DXSHEvalHemisphereLight:
1736//  --------------------
1737//  Evaluates a light that is a linear interpolant between two colors over the
1738//  sphere.  The interpolant is linear along the axis of the two points, not
1739//  over the surface of the sphere (ie: if the axis was (0,0,1) it is linear in
1740//  Z, not in the azimuthal angle.)  The resulting spherical lighting function
1741//  is normalized so that a point on a perfectly diffuse surface with no
1742//  shadowing and a normal pointed in the direction pDir would result in exit
1743//  radiance with a value of 1 if the top color was white and the bottom color
1744//  was black.  This is a very simple model where Top represents the intensity
1745//  of the "sky" and Bottom represents the intensity of the "ground".
1746//
1747//  Parameters:
1748//   Order
1749//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
1750//   pDir
1751//      Axis of the hemisphere.
1752//   Top
1753//      Color of the upper hemisphere.
1754//   Bottom
1755//      Color of the lower hemisphere.
1756//   pROut
1757//      Output SH vector for Red.
1758//   pGOut
1759//      Output SH vector for Green
1760//   pBOut
1761//      Output SH vector for Blue       
1762//
1763//============================================================================
1764
1765HRESULT WINAPI D3DXSHEvalHemisphereLight
1766    ( UINT Order, CONST D3DXVECTOR3 *pDir, D3DXCOLOR Top, D3DXCOLOR Bottom,
1767      __out_ecount_opt(Order*Order) FLOAT *pROut,
1768      __out_ecount_opt(Order*Order) FLOAT *pGOut,
1769      __out_ecount_opt(Order*Order) FLOAT *pBOut );
1770
1771// Math intersection functions
1772
1773BOOL WINAPI D3DXIntersectTri
1774(
1775    CONST D3DXVECTOR3 *p0,           // Triangle vertex 0 position
1776    CONST D3DXVECTOR3 *p1,           // Triangle vertex 1 position
1777    CONST D3DXVECTOR3 *p2,           // Triangle vertex 2 position
1778    CONST D3DXVECTOR3 *pRayPos,      // Ray origin
1779    CONST D3DXVECTOR3 *pRayDir,      // Ray direction
1780    FLOAT *pU,                         // Barycentric Hit Coordinates
1781    FLOAT *pV,                         // Barycentric Hit Coordinates
1782    FLOAT *pDist);                     // Ray-Intersection Parameter Distance
1783
1784BOOL WINAPI
1785    D3DXSphereBoundProbe(
1786        CONST D3DXVECTOR3 *pCenter,
1787        FLOAT Radius,
1788        CONST D3DXVECTOR3 *pRayPosition,
1789        CONST D3DXVECTOR3 *pRayDirection);
1790
1791BOOL WINAPI
1792    D3DXBoxBoundProbe(
1793        CONST D3DXVECTOR3 *pMin,
1794        CONST D3DXVECTOR3 *pMax,
1795        CONST D3DXVECTOR3 *pRayPosition,
1796        CONST D3DXVECTOR3 *pRayDirection);
1797
1798HRESULT WINAPI
1799    D3DXComputeBoundingSphere(
1800        CONST D3DXVECTOR3 *pFirstPosition,   // pointer to first position
1801        DWORD NumVertices,
1802        DWORD dwStride,                     // count in bytes to subsequent position vectors
1803        D3DXVECTOR3 *pCenter,
1804        FLOAT *pRadius);
1805
1806HRESULT WINAPI
1807    D3DXComputeBoundingBox(
1808        CONST D3DXVECTOR3 *pFirstPosition,   // pointer to first position
1809        DWORD NumVertices,
1810        DWORD dwStride,                     // count in bytes to subsequent position vectors
1811        D3DXVECTOR3 *pMin,
1812        D3DXVECTOR3 *pMax);
1813
1814
1815///////////////////////////////////////////////////////////////////////////
1816// CPU Optimization:
1817///////////////////////////////////////////////////////////////////////////
1818
1819//-------------------------------------------------------------------------
1820// D3DX_CPU_OPTIMIZATION flags:
1821// ----------------------------
1822// D3DX_NOT_OPTIMIZED       Use Intel Pentium optimizations
1823// D3DX_3DNOW_OPTIMIZED     Use AMD 3DNow optimizations
1824// D3DX_SSE_OPTIMIZED       Use Intel Pentium III SSE optimizations
1825// D3DX_SSE2_OPTIMIZED      Use Intel Pentium IV SSE2 optimizations
1826//-------------------------------------------------------------------------
1827
1828
1829typedef enum _D3DX_CPU_OPTIMIZATION
1830{
1831    D3DX_NOT_OPTIMIZED = 0,
1832    D3DX_3DNOW_OPTIMIZED,
1833    D3DX_SSE2_OPTIMIZED,
1834    D3DX_SSE_OPTIMIZED
1835} D3DX_CPU_OPTIMIZATION;
1836
1837
1838//-------------------------------------------------------------------------
1839// D3DXCpuOptimizations:
1840// ---------------------
1841// Enables or disables CPU optimizations. Returns the type of CPU, which
1842// was detected, and for which optimizations exist.
1843//
1844// Parameters:
1845//  Enable
1846//      TRUE to enable CPU optimizations. FALSE to disable.
1847//-------------------------------------------------------------------------
1848
1849D3DX_CPU_OPTIMIZATION WINAPI
1850    D3DXCpuOptimizations(BOOL Enable);
1851
1852#ifdef __cplusplus
1853}
1854#endif
1855
1856
1857#include "D3DX10math.inl"
1858
1859#if _MSC_VER >= 1200
1860#pragma warning(pop)
1861#else
1862#pragma warning(default:4201)
1863#endif
1864
1865#endif // __D3DX9MATH_H__
1866
trunk/3rdparty/dxsdk/Include/d3dx10mesh.h
r0r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       d3dx10mesh.h
6//  Content:    D3DX10 mesh types and functions
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#include "d3dx10.h"
11
12#ifndef __D3DX10MESH_H__
13#define __D3DX10MESH_H__
14
15// {7ED943DD-52E8-40b5-A8D8-76685C406330}
16DEFINE_GUID(IID_ID3DX10BaseMesh,
170x7ed943dd, 0x52e8, 0x40b5, 0xa8, 0xd8, 0x76, 0x68, 0x5c, 0x40, 0x63, 0x30);
18
19// {04B0D117-1041-46b1-AA8A-3952848BA22E}
20DEFINE_GUID(IID_ID3DX10MeshBuffer,
210x4b0d117, 0x1041, 0x46b1, 0xaa, 0x8a, 0x39, 0x52, 0x84, 0x8b, 0xa2, 0x2e);
22
23// {4020E5C2-1403-4929-883F-E2E849FAC195}
24DEFINE_GUID(IID_ID3DX10Mesh,
250x4020e5c2, 0x1403, 0x4929, 0x88, 0x3f, 0xe2, 0xe8, 0x49, 0xfa, 0xc1, 0x95);
26
27// {8875769A-D579-4088-AAEB-534D1AD84E96}
28DEFINE_GUID(IID_ID3DX10PMesh,
290x8875769a, 0xd579, 0x4088, 0xaa, 0xeb, 0x53, 0x4d, 0x1a, 0xd8, 0x4e, 0x96);
30
31// {667EA4C7-F1CD-4386-B523-7C0290B83CC5}
32DEFINE_GUID(IID_ID3DX10SPMesh,
330x667ea4c7, 0xf1cd, 0x4386, 0xb5, 0x23, 0x7c, 0x2, 0x90, 0xb8, 0x3c, 0xc5);
34
35// {3CE6CC22-DBF2-44f4-894D-F9C34A337139}
36DEFINE_GUID(IID_ID3DX10PatchMesh,
370x3ce6cc22, 0xdbf2, 0x44f4, 0x89, 0x4d, 0xf9, 0xc3, 0x4a, 0x33, 0x71, 0x39);
38
39
40// Mesh options - lower 3 bytes only, upper byte used by _D3DX10MESHOPT option flags
41enum _D3DX10_MESH {
42    D3DX10_MESH_32_BIT                  = 0x001, // If set, then use 32 bit indices, if not set use 16 bit indices.
43    D3DX10_MESH_GS_ADJACENCY         = 0x004, // If set, mesh contains GS adjacency info. Not valid on input.
44
45};
46
47typedef struct _D3DX10_ATTRIBUTE_RANGE
48{
49    UINT  AttribId;
50    UINT  FaceStart;
51    UINT  FaceCount;
52    UINT  VertexStart;
53    UINT  VertexCount;
54} D3DX10_ATTRIBUTE_RANGE;
55
56typedef D3DX10_ATTRIBUTE_RANGE* LPD3DX10_ATTRIBUTE_RANGE;
57
58typedef enum _D3DX10_MESH_DISCARD_FLAGS
59{
60    D3DX10_MESH_DISCARD_ATTRIBUTE_BUFFER = 0x01,
61    D3DX10_MESH_DISCARD_ATTRIBUTE_TABLE = 0x02,
62    D3DX10_MESH_DISCARD_POINTREPS = 0x04,
63    D3DX10_MESH_DISCARD_ADJACENCY = 0x08,
64    D3DX10_MESH_DISCARD_DEVICE_BUFFERS = 0x10,
65
66} D3DX10_MESH_DISCARD_FLAGS;
67
68typedef struct _D3DX10_WELD_EPSILONS
69{
70    FLOAT Position;                 // NOTE: This does NOT replace the epsilon in GenerateAdjacency
71                                            // in general, it should be the same value or greater than the one passed to GeneratedAdjacency
72    FLOAT BlendWeights;
73    FLOAT Normal;
74    FLOAT PSize;
75    FLOAT Specular;
76    FLOAT Diffuse;
77    FLOAT Texcoord[8];
78    FLOAT Tangent;
79    FLOAT Binormal;
80    FLOAT TessFactor;
81} D3DX10_WELD_EPSILONS;
82
83typedef D3DX10_WELD_EPSILONS* LPD3DX10_WELD_EPSILONS;
84
85typedef struct _D3DX10_INTERSECT_INFO
86{
87    UINT  FaceIndex;                // index of face intersected
88    FLOAT U;                        // Barycentric Hit Coordinates   
89    FLOAT V;                        // Barycentric Hit Coordinates
90    FLOAT Dist;                     // Ray-Intersection Parameter Distance
91} D3DX10_INTERSECT_INFO, *LPD3DX10_INTERSECT_INFO;
92
93// ID3DX10MeshBuffer is used by D3DX10Mesh vertex and index buffers
94#undef INTERFACE
95#define INTERFACE ID3DX10MeshBuffer
96
97DECLARE_INTERFACE_(ID3DX10MeshBuffer, IUnknown)
98{
99    // IUnknown
100    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
101    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
102    STDMETHOD_(ULONG, Release)(THIS) PURE;
103   
104    // ID3DX10MeshBuffer
105    STDMETHOD(Map)(THIS_ void **ppData, SIZE_T *pSize) PURE;
106    STDMETHOD(Unmap)(THIS) PURE;
107    STDMETHOD_(SIZE_T, GetSize)(THIS) PURE;
108};
109
110// D3DX10 Mesh interfaces
111#undef INTERFACE
112#define INTERFACE ID3DX10Mesh
113
114DECLARE_INTERFACE_(ID3DX10Mesh, IUnknown)
115{
116    // IUnknown
117    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
118    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
119    STDMETHOD_(ULONG, Release)(THIS) PURE;
120
121    // ID3DX10Mesh
122    STDMETHOD_(UINT, GetFaceCount)(THIS) PURE;
123    STDMETHOD_(UINT, GetVertexCount)(THIS) PURE;
124    STDMETHOD_(UINT, GetVertexBufferCount)(THIS) PURE;
125    STDMETHOD_(UINT, GetFlags)(THIS) PURE;
126    STDMETHOD(GetVertexDescription)(THIS_ CONST D3D10_INPUT_ELEMENT_DESC **ppDesc, UINT *pDeclCount) PURE;
127
128    STDMETHOD(SetVertexData)(THIS_ UINT iBuffer, CONST void *pData) PURE;
129    STDMETHOD(GetVertexBuffer)(THIS_ UINT iBuffer, ID3DX10MeshBuffer **ppVertexBuffer) PURE;
130
131    STDMETHOD(SetIndexData)(THIS_ CONST void *pData, UINT cIndices) PURE;
132    STDMETHOD(GetIndexBuffer)(THIS_ ID3DX10MeshBuffer **ppIndexBuffer) PURE;
133
134    STDMETHOD(SetAttributeData)(THIS_ CONST UINT *pData) PURE;
135    STDMETHOD(GetAttributeBuffer)(THIS_ ID3DX10MeshBuffer **ppAttributeBuffer) PURE;
136
137    STDMETHOD(SetAttributeTable)(THIS_ CONST D3DX10_ATTRIBUTE_RANGE *pAttribTable, UINT  cAttribTableSize) PURE;
138    STDMETHOD(GetAttributeTable)(THIS_ D3DX10_ATTRIBUTE_RANGE *pAttribTable, UINT  *pAttribTableSize) PURE;
139
140    STDMETHOD(GenerateAdjacencyAndPointReps)(THIS_ FLOAT Epsilon) PURE;
141    STDMETHOD(GenerateGSAdjacency)(THIS) PURE;
142
143    STDMETHOD(SetAdjacencyData)(THIS_ CONST UINT *pAdjacency) PURE;
144    STDMETHOD(GetAdjacencyBuffer)(THIS_ ID3DX10MeshBuffer **ppAdjacency) PURE;
145
146    STDMETHOD(SetPointRepData)(THIS_ CONST UINT *pPointReps) PURE;
147    STDMETHOD(GetPointRepBuffer)(THIS_ ID3DX10MeshBuffer **ppPointReps) PURE;
148   
149    STDMETHOD(Discard)(THIS_ D3DX10_MESH_DISCARD_FLAGS dwDiscard) PURE;
150    STDMETHOD(CloneMesh)(THIS_ UINT Flags, LPCSTR pPosSemantic, CONST D3D10_INPUT_ELEMENT_DESC *pDesc, UINT  DeclCount, ID3DX10Mesh** ppCloneMesh) PURE;
151
152    STDMETHOD(Optimize)(THIS_ UINT Flags, UINT * pFaceRemap, LPD3D10BLOB *ppVertexRemap) PURE;
153    STDMETHOD(GenerateAttributeBufferFromTable)(THIS) PURE;
154   
155   STDMETHOD(Intersect)(THIS_ D3DXVECTOR3 *pRayPos, D3DXVECTOR3 *pRayDir,
156                                        UINT *pHitCount, UINT *pFaceIndex, float *pU, float *pV, float *pDist, ID3D10Blob **ppAllHits);
157    STDMETHOD(IntersectSubset)(THIS_ UINT AttribId, D3DXVECTOR3 *pRayPos, D3DXVECTOR3 *pRayDir,
158                                        UINT *pHitCount, UINT *pFaceIndex, float *pU, float *pV, float *pDist, ID3D10Blob **ppAllHits);
159   
160    // ID3DX10Mesh - Device functions
161    STDMETHOD(CommitToDevice)(THIS) PURE;
162    STDMETHOD(DrawSubset)(THIS_ UINT AttribId) PURE;
163    STDMETHOD(DrawSubsetInstanced)(THIS_ UINT AttribId, UINT InstanceCount, UINT StartInstanceLocation) PURE;
164
165    STDMETHOD(GetDeviceVertexBuffer)(THIS_ UINT iBuffer, ID3D10Buffer **ppVertexBuffer) PURE;
166    STDMETHOD(GetDeviceIndexBuffer)(THIS_ ID3D10Buffer **ppIndexBuffer) PURE;
167};
168
169
170// Flat API
171#ifdef __cplusplus
172extern "C" {
173#endif //__cplusplus
174
175HRESULT WINAPI
176    D3DX10CreateMesh(
177        ID3D10Device *pDevice,
178        CONST D3D10_INPUT_ELEMENT_DESC *pDeclaration,
179        UINT  DeclCount,
180        LPCSTR pPositionSemantic,
181        UINT  VertexCount,
182        UINT  FaceCount,
183        UINT  Options,
184        ID3DX10Mesh **ppMesh);
185
186#ifdef __cplusplus
187}
188#endif //__cplusplus
189
190
191// ID3DX10Mesh::Optimize options - upper byte only, lower 3 bytes used from _D3DX10MESH option flags
192enum _D3DX10_MESHOPT {
193    D3DX10_MESHOPT_COMPACT       = 0x01000000,
194    D3DX10_MESHOPT_ATTR_SORT     = 0x02000000,
195    D3DX10_MESHOPT_VERTEX_CACHE   = 0x04000000,
196    D3DX10_MESHOPT_STRIP_REORDER  = 0x08000000,
197    D3DX10_MESHOPT_IGNORE_VERTS   = 0x10000000,  // optimize faces only, don't touch vertices
198    D3DX10_MESHOPT_DO_NOT_SPLIT    = 0x20000000,  // do not split vertices shared between attribute groups when attribute sorting
199    D3DX10_MESHOPT_DEVICE_INDEPENDENT = 0x00400000,  // Only affects VCache.  uses a static known good cache size for all cards
200                           
201    // D3DX10_MESHOPT_SHAREVB has been removed, please use D3DX10MESH_VB_SHARE instead
202
203};
204
205
206//////////////////////////////////////////////////////////////////////////
207// ID3DXSkinInfo
208//////////////////////////////////////////////////////////////////////////
209
210// {420BD604-1C76-4a34-A466-E45D0658A32C}
211DEFINE_GUID(IID_ID3DX10SkinInfo,
2120x420bd604, 0x1c76, 0x4a34, 0xa4, 0x66, 0xe4, 0x5d, 0x6, 0x58, 0xa3, 0x2c);
213
214// scaling modes for ID3DX10SkinInfo::Compact() & ID3DX10SkinInfo::UpdateMesh()
215#define D3DX10_SKININFO_NO_SCALING 0
216#define D3DX10_SKININFO_SCALE_TO_1 1
217#define D3DX10_SKININFO_SCALE_TO_TOTAL 2
218
219typedef struct _D3DX10_SKINNING_CHANNEL
220{
221    UINT            SrcOffset;
222    UINT            DestOffset;
223    BOOL            IsNormal;
224} D3DX10_SKINNING_CHANNEL;
225
226#undef INTERFACE
227#define INTERFACE ID3DX10SkinInfo
228
229typedef struct ID3DX10SkinInfo *LPD3DX10SKININFO;
230
231DECLARE_INTERFACE_(ID3DX10SkinInfo, IUnknown)
232{
233    // IUnknown
234    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
235    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
236    STDMETHOD_(ULONG, Release)(THIS) PURE;
237
238    STDMETHOD_(UINT , GetNumVertices)(THIS) PURE;
239    STDMETHOD_(UINT , GetNumBones)(THIS) PURE;
240    STDMETHOD_(UINT , GetMaxBoneInfluences)(THIS) PURE;
241
242    STDMETHOD(AddVertices)(THIS_ UINT  Count) PURE;
243    STDMETHOD(RemapVertices)(THIS_ UINT  NewVertexCount, UINT  *pVertexRemap) PURE;
244
245    STDMETHOD(AddBones)(THIS_ UINT  Count) PURE;
246    STDMETHOD(RemoveBone)(THIS_ UINT  Index) PURE;
247    STDMETHOD(RemapBones)(THIS_ UINT  NewBoneCount, UINT  *pBoneRemap) PURE;
248
249    STDMETHOD(AddBoneInfluences)(THIS_ UINT  BoneIndex, UINT  InfluenceCount, UINT  *pIndices, float *pWeights) PURE;
250    STDMETHOD(ClearBoneInfluences)(THIS_ UINT  BoneIndex) PURE;
251    STDMETHOD_(UINT , GetBoneInfluenceCount)(THIS_ UINT  BoneIndex) PURE;
252    STDMETHOD(GetBoneInfluences)(THIS_ UINT  BoneIndex, UINT  Offset, UINT  Count, UINT  *pDestIndices, float *pDestWeights) PURE;
253    STDMETHOD(FindBoneInfluenceIndex)(THIS_ UINT  BoneIndex, UINT  VertexIndex, UINT  *pInfluenceIndex) PURE;
254    STDMETHOD(SetBoneInfluence)(THIS_ UINT  BoneIndex, UINT  InfluenceIndex, float Weight) PURE;
255    STDMETHOD(GetBoneInfluence)(THIS_ UINT  BoneIndex, UINT  InfluenceIndex, float *pWeight) PURE;
256
257    STDMETHOD(Compact)(THIS_ UINT  MaxPerVertexInfluences, UINT  ScaleMode, float MinWeight) PURE;
258    STDMETHOD(DoSoftwareSkinning)(UINT  StartVertex, UINT  VertexCount, void *pSrcVertices, UINT  SrcStride, void *pDestVertices, UINT  DestStride, D3DXMATRIX *pBoneMatrices, D3DXMATRIX *pInverseTransposeBoneMatrices, D3DX10_SKINNING_CHANNEL *pChannelDescs, UINT  NumChannels) PURE;
259};
260
261#ifdef __cplusplus
262extern "C" {
263#endif //__cplusplus
264
265HRESULT WINAPI
266    D3DX10CreateSkinInfo(LPD3DX10SKININFO* ppSkinInfo);
267       
268#ifdef __cplusplus
269}
270#endif //__cplusplus
271
272typedef struct _D3DX10_ATTRIBUTE_WEIGHTS
273{
274    FLOAT Position;
275    FLOAT Boundary;
276    FLOAT Normal;
277    FLOAT Diffuse;
278    FLOAT Specular;
279    FLOAT Texcoord[8];
280    FLOAT Tangent;
281    FLOAT Binormal;
282} D3DX10_ATTRIBUTE_WEIGHTS, *LPD3DX10_ATTRIBUTE_WEIGHTS;
283
284#endif //__D3DX10MESH_H__
285
286
trunk/3rdparty/dxsdk/Include/d3dx10tex.h
r0r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       d3dx10tex.h
6//  Content:    D3DX10 texturing APIs
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#include "d3dx10.h"
11
12#ifndef __D3DX10TEX_H__
13#define __D3DX10TEX_H__
14
15
16//----------------------------------------------------------------------------
17// D3DX10_FILTER flags:
18// ------------------
19//
20// A valid filter must contain one of these values:
21//
22//  D3DX10_FILTER_NONE
23//      No scaling or filtering will take place.  Pixels outside the bounds
24//      of the source image are assumed to be transparent black.
25//  D3DX10_FILTER_POINT
26//      Each destination pixel is computed by sampling the nearest pixel
27//      from the source image.
28//  D3DX10_FILTER_LINEAR
29//      Each destination pixel is computed by linearly interpolating between
30//      the nearest pixels in the source image.  This filter works best
31//      when the scale on each axis is less than 2.
32//  D3DX10_FILTER_TRIANGLE
33//      Every pixel in the source image contributes equally to the
34//      destination image.  This is the slowest of all the filters.
35//  D3DX10_FILTER_BOX
36//      Each pixel is computed by averaging a 2x2(x2) box pixels from
37//      the source image. Only works when the dimensions of the
38//      destination are half those of the source. (as with mip maps)
39//
40// And can be OR'd with any of these optional flags:
41//
42//  D3DX10_FILTER_MIRROR_U
43//      Indicates that pixels off the edge of the texture on the U-axis
44//      should be mirrored, not wraped.
45//  D3DX10_FILTER_MIRROR_V
46//      Indicates that pixels off the edge of the texture on the V-axis
47//      should be mirrored, not wraped.
48//  D3DX10_FILTER_MIRROR_W
49//      Indicates that pixels off the edge of the texture on the W-axis
50//      should be mirrored, not wraped.
51//  D3DX10_FILTER_MIRROR
52//      Same as specifying D3DX10_FILTER_MIRROR_U | D3DX10_FILTER_MIRROR_V |
53//      D3DX10_FILTER_MIRROR_V
54//  D3DX10_FILTER_DITHER
55//      Dithers the resulting image using a 4x4 order dither pattern.
56//  D3DX10_FILTER_SRGB_IN
57//      Denotes that the input data is in sRGB (gamma 2.2) colorspace.
58//  D3DX10_FILTER_SRGB_OUT
59//      Denotes that the output data is in sRGB (gamma 2.2) colorspace.
60//  D3DX10_FILTER_SRGB
61//      Same as specifying D3DX10_FILTER_SRGB_IN | D3DX10_FILTER_SRGB_OUT
62//
63//----------------------------------------------------------------------------
64
65typedef enum D3DX10_FILTER_FLAG
66{
67    D3DX10_FILTER_NONE            =   (1 << 0),
68    D3DX10_FILTER_POINT           =   (2 << 0),
69    D3DX10_FILTER_LINEAR          =   (3 << 0),
70    D3DX10_FILTER_TRIANGLE        =   (4 << 0),
71    D3DX10_FILTER_BOX             =   (5 << 0),
72
73    D3DX10_FILTER_MIRROR_U        =   (1 << 16),
74    D3DX10_FILTER_MIRROR_V        =   (2 << 16),
75    D3DX10_FILTER_MIRROR_W        =   (4 << 16),
76    D3DX10_FILTER_MIRROR          =   (7 << 16),
77
78    D3DX10_FILTER_DITHER          =   (1 << 19),
79    D3DX10_FILTER_DITHER_DIFFUSION=   (2 << 19),
80
81    D3DX10_FILTER_SRGB_IN         =   (1 << 21),
82    D3DX10_FILTER_SRGB_OUT        =   (2 << 21),
83    D3DX10_FILTER_SRGB            =   (3 << 21),
84} D3DX10_FILTER_FLAG;
85
86//----------------------------------------------------------------------------
87// D3DX10_NORMALMAP flags:
88// ---------------------
89// These flags are used to control how D3DX10ComputeNormalMap generates normal
90// maps.  Any number of these flags may be OR'd together in any combination.
91//
92//  D3DX10_NORMALMAP_MIRROR_U
93//      Indicates that pixels off the edge of the texture on the U-axis
94//      should be mirrored, not wraped.
95//  D3DX10_NORMALMAP_MIRROR_V
96//      Indicates that pixels off the edge of the texture on the V-axis
97//      should be mirrored, not wraped.
98//  D3DX10_NORMALMAP_MIRROR
99//      Same as specifying D3DX10_NORMALMAP_MIRROR_U | D3DX10_NORMALMAP_MIRROR_V
100//  D3DX10_NORMALMAP_INVERTSIGN
101//      Inverts the direction of each normal
102//  D3DX10_NORMALMAP_COMPUTE_OCCLUSION
103//      Compute the per pixel Occlusion term and encodes it into the alpha.
104//      An Alpha of 1 means that the pixel is not obscured in anyway, and
105//      an alpha of 0 would mean that the pixel is completly obscured.
106//
107//----------------------------------------------------------------------------
108
109typedef enum D3DX10_NORMALMAP_FLAG
110{
111    D3DX10_NORMALMAP_MIRROR_U          =   (1 << 16),
112    D3DX10_NORMALMAP_MIRROR_V          =   (2 << 16),
113    D3DX10_NORMALMAP_MIRROR            =   (3 << 16),
114    D3DX10_NORMALMAP_INVERTSIGN        =   (8 << 16),
115    D3DX10_NORMALMAP_COMPUTE_OCCLUSION =   (16 << 16),
116} D3DX10_NORMALMAP_FLAG;
117
118//----------------------------------------------------------------------------
119// D3DX10_CHANNEL flags:
120// -------------------
121// These flags are used by functions which operate on or more channels
122// in a texture.
123//
124// D3DX10_CHANNEL_RED
125//     Indicates the red channel should be used
126// D3DX10_CHANNEL_BLUE
127//     Indicates the blue channel should be used
128// D3DX10_CHANNEL_GREEN
129//     Indicates the green channel should be used
130// D3DX10_CHANNEL_ALPHA
131//     Indicates the alpha channel should be used
132// D3DX10_CHANNEL_LUMINANCE
133//     Indicates the luminaces of the red green and blue channels should be
134//     used.
135//
136//----------------------------------------------------------------------------
137
138typedef enum D3DX10_CHANNEL_FLAG
139{
140    D3DX10_CHANNEL_RED           =    (1 << 0),
141    D3DX10_CHANNEL_BLUE          =    (1 << 1),
142    D3DX10_CHANNEL_GREEN         =    (1 << 2),
143    D3DX10_CHANNEL_ALPHA         =    (1 << 3),
144    D3DX10_CHANNEL_LUMINANCE     =    (1 << 4),
145} D3DX10_CHANNEL_FLAG;
146
147
148
149//----------------------------------------------------------------------------
150// D3DX10_IMAGE_FILE_FORMAT:
151// ---------------------
152// This enum is used to describe supported image file formats.
153//
154//----------------------------------------------------------------------------
155
156typedef enum D3DX10_IMAGE_FILE_FORMAT
157{
158    D3DX10_IFF_BMP         = 0,
159    D3DX10_IFF_JPG         = 1,
160    D3DX10_IFF_PNG         = 3,
161    D3DX10_IFF_DDS         = 4,
162    D3DX10_IFF_TIFF        = 10,
163    D3DX10_IFF_GIF        = 11,
164    D3DX10_IFF_WMP        = 12,
165    D3DX10_IFF_FORCE_DWORD = 0x7fffffff
166
167} D3DX10_IMAGE_FILE_FORMAT;
168
169
170//----------------------------------------------------------------------------
171// D3DX10_SAVE_TEXTURE_FLAG:
172// ---------------------
173// This enum is used to support texture saving options.
174//
175//----------------------------------------------------------------------------
176
177typedef enum D3DX10_SAVE_TEXTURE_FLAG
178{
179    D3DX10_STF_USEINPUTBLOB      = 0x0001,
180} D3DX10_SAVE_TEXTURE_FLAG;
181
182
183
184//----------------------------------------------------------------------------
185// D3DX10_IMAGE_INFO:
186// ---------------
187// This structure is used to return a rough description of what the
188// the original contents of an image file looked like.
189//
190//  Width
191//      Width of original image in pixels
192//  Height
193//      Height of original image in pixels
194//  Depth
195//      Depth of original image in pixels
196//  ArraySize
197//      Array size in textures
198//  MipLevels
199//      Number of mip levels in original image
200//  MiscFlags
201//      Miscellaneous flags
202//  Format
203//      D3D format which most closely describes the data in original image
204//  ResourceDimension
205//      D3D10_RESOURCE_DIMENSION representing the dimension of texture stored in the file.
206//      D3D10_RESOURCE_DIMENSION_TEXTURE1D, 2D, 3D
207//  ImageFileFormat
208//      D3DX10_IMAGE_FILE_FORMAT representing the format of the image file.
209//----------------------------------------------------------------------------
210
211typedef struct D3DX10_IMAGE_INFO
212{
213    UINT                        Width;
214    UINT                        Height;
215    UINT                        Depth;
216    UINT                        ArraySize;
217    UINT                        MipLevels;
218    UINT                        MiscFlags;
219    DXGI_FORMAT                 Format;
220    D3D10_RESOURCE_DIMENSION    ResourceDimension;
221    D3DX10_IMAGE_FILE_FORMAT    ImageFileFormat;
222} D3DX10_IMAGE_INFO;
223
224
225
226
227
228#ifdef __cplusplus
229extern "C" {
230#endif //__cplusplus
231
232
233
234//////////////////////////////////////////////////////////////////////////////
235// Image File APIs ///////////////////////////////////////////////////////////
236//////////////////////////////////////////////////////////////////////////////
237
238//----------------------------------------------------------------------------
239// D3DX10_IMAGE_LOAD_INFO:
240// ---------------
241// This structure can be optionally passed in to texture loader APIs to
242// control how textures get loaded. Pass in D3DX10_DEFAULT for any of these
243// to have D3DX automatically pick defaults based on the source file.
244//
245//  Width
246//      Rescale texture to Width texels wide
247//  Height
248//      Rescale texture to Height texels high
249//  Depth
250//      Rescale texture to Depth texels deep
251//  FirstMipLevel
252//      First mip level to load
253//  MipLevels
254//      Number of mip levels to load after the first level
255//  Usage
256//      D3D10_USAGE flag for the new texture
257//  BindFlags
258//      D3D10 Bind flags for the new texture
259//  CpuAccessFlags
260//      D3D10 CPU Access flags for the new texture
261//  MiscFlags
262//      Reserved. Must be 0
263//  Format
264//      Resample texture to the specified format
265//  Filter
266//      Filter the texture using the specified filter (only when resampling)
267//  MipFilter
268//      Filter the texture mip levels using the specified filter (only if
269//      generating mips)
270//  pSrcInfo
271//      (optional) pointer to a D3DX10_IMAGE_INFO structure that will get
272//      populated with source image information
273//----------------------------------------------------------------------------
274
275
276typedef struct D3DX10_IMAGE_LOAD_INFO
277{
278    UINT                       Width;
279    UINT                       Height;
280    UINT                       Depth;
281    UINT                       FirstMipLevel;
282    UINT                       MipLevels;
283    D3D10_USAGE                Usage;
284    UINT                       BindFlags;
285    UINT                       CpuAccessFlags;
286    UINT                       MiscFlags;
287    DXGI_FORMAT                Format;
288    UINT                       Filter;
289    UINT                       MipFilter;
290    D3DX10_IMAGE_INFO*         pSrcInfo;
291   
292#ifdef __cplusplus
293    D3DX10_IMAGE_LOAD_INFO()
294    {
295        Width = D3DX10_DEFAULT;
296        Height = D3DX10_DEFAULT;
297        Depth = D3DX10_DEFAULT;
298        FirstMipLevel = D3DX10_DEFAULT;
299        MipLevels = D3DX10_DEFAULT;
300        Usage = (D3D10_USAGE) D3DX10_DEFAULT;
301        BindFlags = D3DX10_DEFAULT;
302        CpuAccessFlags = D3DX10_DEFAULT;
303        MiscFlags = D3DX10_DEFAULT;
304        Format = DXGI_FORMAT_FROM_FILE;
305        Filter = D3DX10_DEFAULT;
306        MipFilter = D3DX10_DEFAULT;
307        pSrcInfo = NULL;
308    } 
309#endif
310
311} D3DX10_IMAGE_LOAD_INFO;
312
313//-------------------------------------------------------------------------------
314// GetImageInfoFromFile/Resource/Memory:
315// ------------------------------
316// Fills in a D3DX10_IMAGE_INFO struct with information about an image file.
317//
318// Parameters:
319//  pSrcFile
320//      File name of the source image.
321//  pSrcModule
322//      Module where resource is located, or NULL for module associated
323//      with image the os used to create the current process.
324//  pSrcResource
325//      Resource name.
326//  pSrcData
327//      Pointer to file in memory.
328//  SrcDataSize
329//      Size in bytes of file in memory.
330//  pPump
331//      Optional pointer to a thread pump object to use.
332//  pSrcInfo
333//      Pointer to a D3DX10_IMAGE_INFO structure to be filled in with the
334//      description of the data in the source image file.
335//  pHResult
336//      Pointer to a memory location to receive the return value upon completion.
337//      Maybe NULL if not needed.
338//      If pPump != NULL, pHResult must be a valid memory location until the
339//      the asynchronous execution completes.
340//-------------------------------------------------------------------------------
341
342HRESULT WINAPI
343    D3DX10GetImageInfoFromFileA(
344        LPCSTR                    pSrcFile,
345        ID3DX10ThreadPump*        pPump,
346        D3DX10_IMAGE_INFO*        pSrcInfo,
347        HRESULT*                  pHResult);
348
349HRESULT WINAPI
350    D3DX10GetImageInfoFromFileW(
351        LPCWSTR                   pSrcFile,
352        ID3DX10ThreadPump*        pPump,
353        D3DX10_IMAGE_INFO*        pSrcInfo,
354        HRESULT*                  pHResult);
355
356#ifdef UNICODE
357#define D3DX10GetImageInfoFromFile D3DX10GetImageInfoFromFileW
358#else
359#define D3DX10GetImageInfoFromFile D3DX10GetImageInfoFromFileA
360#endif
361
362
363HRESULT WINAPI
364    D3DX10GetImageInfoFromResourceA(
365        HMODULE                   hSrcModule,
366        LPCSTR                    pSrcResource,
367        ID3DX10ThreadPump*        pPump,
368        D3DX10_IMAGE_INFO*        pSrcInfo,
369        HRESULT*                  pHResult);
370
371HRESULT WINAPI
372    D3DX10GetImageInfoFromResourceW(
373        HMODULE                   hSrcModule,
374        LPCWSTR                   pSrcResource,
375        ID3DX10ThreadPump*        pPump,
376        D3DX10_IMAGE_INFO*        pSrcInfo,
377        HRESULT*                  pHResult);
378
379#ifdef UNICODE
380#define D3DX10GetImageInfoFromResource D3DX10GetImageInfoFromResourceW
381#else
382#define D3DX10GetImageInfoFromResource D3DX10GetImageInfoFromResourceA
383#endif
384
385
386HRESULT WINAPI
387    D3DX10GetImageInfoFromMemory(
388        LPCVOID                   pSrcData,
389        SIZE_T                    SrcDataSize,
390        ID3DX10ThreadPump*        pPump,
391        D3DX10_IMAGE_INFO*        pSrcInfo,
392        HRESULT*                  pHResult);
393
394
395//////////////////////////////////////////////////////////////////////////////
396// Create/Save Texture APIs //////////////////////////////////////////////////
397//////////////////////////////////////////////////////////////////////////////
398
399//----------------------------------------------------------------------------
400// D3DX10CreateTextureFromFile/Resource/Memory:
401// D3DX10CreateShaderResourceViewFromFile/Resource/Memory:
402// -----------------------------------
403// Create a texture object from a file or resource.
404//
405// Parameters:
406//
407//  pDevice
408//      The D3D device with which the texture is going to be used.
409//  pSrcFile
410//      File name.
411//  hSrcModule
412//      Module handle. if NULL, current module will be used.
413//  pSrcResource
414//      Resource name in module
415//  pvSrcData
416//      Pointer to file in memory.
417//  SrcDataSize
418//      Size in bytes of file in memory.
419//  pLoadInfo
420//      Optional pointer to a D3DX10_IMAGE_LOAD_INFO structure that
421//      contains additional loader parameters.
422//  pPump
423//      Optional pointer to a thread pump object to use.
424//  ppTexture
425//      [out] Created texture object.
426//  ppShaderResourceView
427//      [out] Shader resource view object created.
428//  pHResult
429//      Pointer to a memory location to receive the return value upon completion.
430//      Maybe NULL if not needed.
431//      If pPump != NULL, pHResult must be a valid memory location until the
432//      the asynchronous execution completes.
433//
434//----------------------------------------------------------------------------
435
436
437// FromFile
438
439HRESULT WINAPI
440    D3DX10CreateShaderResourceViewFromFileA(
441        ID3D10Device*               pDevice,
442        LPCSTR                      pSrcFile,
443        D3DX10_IMAGE_LOAD_INFO      *pLoadInfo,
444        ID3DX10ThreadPump*          pPump,
445        ID3D10ShaderResourceView**  ppShaderResourceView,
446        HRESULT*                    pHResult);
447
448HRESULT WINAPI
449    D3DX10CreateShaderResourceViewFromFileW(
450        ID3D10Device*               pDevice,
451        LPCWSTR                     pSrcFile,
452        D3DX10_IMAGE_LOAD_INFO      *pLoadInfo,
453        ID3DX10ThreadPump*          pPump,
454        ID3D10ShaderResourceView**  ppShaderResourceView,
455        HRESULT*                    pHResult);
456
457#ifdef UNICODE
458#define D3DX10CreateShaderResourceViewFromFile D3DX10CreateShaderResourceViewFromFileW
459#else
460#define D3DX10CreateShaderResourceViewFromFile D3DX10CreateShaderResourceViewFromFileA
461#endif
462
463HRESULT WINAPI
464    D3DX10CreateTextureFromFileA(
465        ID3D10Device*               pDevice,
466        LPCSTR                      pSrcFile,
467        D3DX10_IMAGE_LOAD_INFO      *pLoadInfo,
468        ID3DX10ThreadPump*          pPump,
469        ID3D10Resource**            ppTexture,
470        HRESULT*                    pHResult);
471
472HRESULT WINAPI
473    D3DX10CreateTextureFromFileW(
474        ID3D10Device*               pDevice,
475        LPCWSTR                     pSrcFile,
476        D3DX10_IMAGE_LOAD_INFO      *pLoadInfo,
477        ID3DX10ThreadPump*          pPump,
478        ID3D10Resource**            ppTexture,
479        HRESULT*                    pHResult);
480
481#ifdef UNICODE
482#define D3DX10CreateTextureFromFile D3DX10CreateTextureFromFileW
483#else
484#define D3DX10CreateTextureFromFile D3DX10CreateTextureFromFileA
485#endif
486
487
488// FromResource (resources in dll/exes)
489
490HRESULT WINAPI
491    D3DX10CreateShaderResourceViewFromResourceA(
492        ID3D10Device*              pDevice,
493        HMODULE                    hSrcModule,
494        LPCSTR                     pSrcResource,
495        D3DX10_IMAGE_LOAD_INFO*    pLoadInfo,
496        ID3DX10ThreadPump*         pPump,
497        ID3D10ShaderResourceView** ppShaderResourceView,
498        HRESULT*                   pHResult);
499
500HRESULT WINAPI
501    D3DX10CreateShaderResourceViewFromResourceW(
502        ID3D10Device*              pDevice,
503        HMODULE                    hSrcModule,
504        LPCWSTR                    pSrcResource,
505        D3DX10_IMAGE_LOAD_INFO*    pLoadInfo,
506        ID3DX10ThreadPump*         pPump,
507        ID3D10ShaderResourceView** ppShaderResourceView,
508        HRESULT*                   pHResult);
509
510#ifdef UNICODE
511#define D3DX10CreateShaderResourceViewFromResource D3DX10CreateShaderResourceViewFromResourceW
512#else
513#define D3DX10CreateShaderResourceViewFromResource D3DX10CreateShaderResourceViewFromResourceA
514#endif
515
516HRESULT WINAPI
517    D3DX10CreateTextureFromResourceA(
518        ID3D10Device*            pDevice,
519        HMODULE                  hSrcModule,
520        LPCSTR                   pSrcResource,
521        D3DX10_IMAGE_LOAD_INFO   *pLoadInfo, 
522        ID3DX10ThreadPump*       pPump,   
523        ID3D10Resource**         ppTexture,
524        HRESULT*                 pHResult);
525
526HRESULT WINAPI
527    D3DX10CreateTextureFromResourceW(
528        ID3D10Device*           pDevice,
529        HMODULE                 hSrcModule,
530        LPCWSTR                 pSrcResource,
531        D3DX10_IMAGE_LOAD_INFO* pLoadInfo,
532        ID3DX10ThreadPump*      pPump,
533        ID3D10Resource**        ppTexture,
534        HRESULT*                pHResult);
535
536#ifdef UNICODE
537#define D3DX10CreateTextureFromResource D3DX10CreateTextureFromResourceW
538#else
539#define D3DX10CreateTextureFromResource D3DX10CreateTextureFromResourceA
540#endif
541
542
543// FromFileInMemory
544
545HRESULT WINAPI
546    D3DX10CreateShaderResourceViewFromMemory(
547        ID3D10Device*              pDevice,
548        LPCVOID                    pSrcData,
549        SIZE_T                     SrcDataSize,
550        D3DX10_IMAGE_LOAD_INFO*    pLoadInfo,
551        ID3DX10ThreadPump*         pPump,       
552        ID3D10ShaderResourceView** ppShaderResourceView,
553        HRESULT*                   pHResult);
554
555HRESULT WINAPI
556    D3DX10CreateTextureFromMemory(
557        ID3D10Device*             pDevice,
558        LPCVOID                   pSrcData,
559        SIZE_T                    SrcDataSize,
560        D3DX10_IMAGE_LOAD_INFO*   pLoadInfo,   
561        ID3DX10ThreadPump*        pPump,   
562        ID3D10Resource**          ppTexture,
563        HRESULT*                  pHResult);
564
565
566//////////////////////////////////////////////////////////////////////////////
567// Misc Texture APIs /////////////////////////////////////////////////////////
568//////////////////////////////////////////////////////////////////////////////
569
570//----------------------------------------------------------------------------
571// D3DX10_TEXTURE_LOAD_INFO:
572// ------------------------
573//
574//----------------------------------------------------------------------------
575
576typedef struct _D3DX10_TEXTURE_LOAD_INFO
577{
578    D3D10_BOX       *pSrcBox;
579    D3D10_BOX       *pDstBox;
580    UINT            SrcFirstMip;
581    UINT            DstFirstMip;
582    UINT            NumMips;
583    UINT            SrcFirstElement;
584    UINT            DstFirstElement;
585    UINT            NumElements;
586    UINT            Filter;
587    UINT            MipFilter;
588   
589#ifdef __cplusplus
590    _D3DX10_TEXTURE_LOAD_INFO()
591    {
592        pSrcBox = NULL;
593        pDstBox = NULL;
594        SrcFirstMip = 0;
595        DstFirstMip = 0;
596        NumMips = D3DX10_DEFAULT;
597        SrcFirstElement = 0;
598        DstFirstElement = 0;
599        NumElements = D3DX10_DEFAULT;
600        Filter = D3DX10_DEFAULT;
601        MipFilter = D3DX10_DEFAULT;
602    } 
603#endif
604
605} D3DX10_TEXTURE_LOAD_INFO;
606
607
608//----------------------------------------------------------------------------
609// D3DX10LoadTextureFromTexture:
610// ----------------------------
611// Load a texture from a texture.
612//
613// Parameters:
614//
615//----------------------------------------------------------------------------
616
617
618HRESULT WINAPI
619    D3DX10LoadTextureFromTexture(
620        ID3D10Resource            *pSrcTexture,
621        D3DX10_TEXTURE_LOAD_INFO  *pLoadInfo,
622        ID3D10Resource            *pDstTexture);
623
624
625//----------------------------------------------------------------------------
626// D3DX10FilterTexture:
627// ------------------
628// Filters mipmaps levels of a texture.
629//
630// Parameters:
631//  pBaseTexture
632//      The texture object to be filtered
633//  SrcLevel
634//      The level whose image is used to generate the subsequent levels.
635//  MipFilter
636//      D3DX10_FILTER flags controlling how each miplevel is filtered.
637//      Or D3DX10_DEFAULT for D3DX10_FILTER_BOX,
638//
639//----------------------------------------------------------------------------
640
641HRESULT WINAPI
642    D3DX10FilterTexture(
643        ID3D10Resource            *pTexture,
644        UINT                      SrcLevel,
645        UINT                      MipFilter);
646
647
648//----------------------------------------------------------------------------
649// D3DX10SaveTextureToFile:
650// ----------------------
651// Save a texture to a file.
652//
653// Parameters:
654//  pDestFile
655//      File name of the destination file
656//  DestFormat
657//      D3DX10_IMAGE_FILE_FORMAT specifying file format to use when saving.
658//  pSrcTexture
659//      Source texture, containing the image to be saved
660//
661//----------------------------------------------------------------------------
662
663HRESULT WINAPI
664    D3DX10SaveTextureToFileA(
665        ID3D10Resource            *pSrcTexture,
666        D3DX10_IMAGE_FILE_FORMAT    DestFormat,
667        LPCSTR                    pDestFile);
668
669HRESULT WINAPI
670    D3DX10SaveTextureToFileW(
671        ID3D10Resource            *pSrcTexture,
672        D3DX10_IMAGE_FILE_FORMAT    DestFormat,
673        LPCWSTR                   pDestFile);
674
675#ifdef UNICODE
676#define D3DX10SaveTextureToFile D3DX10SaveTextureToFileW
677#else
678#define D3DX10SaveTextureToFile D3DX10SaveTextureToFileA
679#endif
680
681
682//----------------------------------------------------------------------------
683// D3DX10SaveTextureToMemory:
684// ----------------------
685// Save a texture to a blob.
686//
687// Parameters:
688//  pSrcTexture
689//      Source texture, containing the image to be saved
690//  DestFormat
691//      D3DX10_IMAGE_FILE_FORMAT specifying file format to use when saving.
692//  ppDestBuf
693//      address of a d3dxbuffer pointer to return the image data
694//  Flags
695//      optional flags
696//----------------------------------------------------------------------------
697
698HRESULT WINAPI
699    D3DX10SaveTextureToMemory(
700        ID3D10Resource*            pSrcTexture,
701        D3DX10_IMAGE_FILE_FORMAT   DestFormat,
702        LPD3D10BLOB*               ppDestBuf,
703        UINT                       Flags);
704
705
706//----------------------------------------------------------------------------
707// D3DX10ComputeNormalMap:
708// ---------------------
709// Converts a height map into a normal map.  The (x,y,z) components of each
710// normal are mapped to the (r,g,b) channels of the output texture.
711//
712// Parameters
713//  pSrcTexture
714//      Pointer to the source heightmap texture
715//  Flags
716//      D3DX10_NORMALMAP flags
717//  Channel
718//      D3DX10_CHANNEL specifying source of height information
719//  Amplitude
720//      The constant value which the height information is multiplied by.
721//  pDestTexture
722//      Pointer to the destination texture
723//---------------------------------------------------------------------------
724
725HRESULT WINAPI
726    D3DX10ComputeNormalMap(
727        ID3D10Texture2D           *pSrcTexture,
728        UINT                      Flags,
729        UINT                      Channel,
730        FLOAT                     Amplitude,
731        ID3D10Texture2D           *pDestTexture);
732
733
734//----------------------------------------------------------------------------
735// D3DX10SHProjectCubeMap:
736// ----------------------
737//  Projects a function represented in a cube map into spherical harmonics.
738//
739//  Parameters:
740//   Order
741//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
742//   pCubeMap
743//      CubeMap that is going to be projected into spherical harmonics
744//   pROut
745//      Output SH vector for Red.
746//   pGOut
747//      Output SH vector for Green
748//   pBOut
749//      Output SH vector for Blue       
750//
751//---------------------------------------------------------------------------
752
753HRESULT WINAPI
754    D3DX10SHProjectCubeMap(
755        __in_range(2,6) UINT                                Order,
756        ID3D10Texture2D                                    *pCubeMap,
757        __out_ecount(Order*Order) FLOAT                    *pROut,
758        __out_ecount_opt(Order*Order) FLOAT                *pGOut,
759        __out_ecount_opt(Order*Order) FLOAT                *pBOut);
760
761#ifdef __cplusplus
762}
763#endif //__cplusplus
764
765#endif //__D3DX10TEX_H__
766
trunk/3rdparty/dxsdk/Include/d3dx11.h
r0r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       d3dx11.h
6//  Content:    D3DX11 utility library
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#ifdef  __D3DX11_INTERNAL__
11#error Incorrect D3DX11 header used
12#endif
13
14#ifndef __D3DX11_H__
15#define __D3DX11_H__
16
17
18// Defines
19#include <limits.h>
20#include <float.h>
21
22#ifdef ALLOW_THROWING_NEW
23#include <new>
24#endif
25
26#define D3DX11_DEFAULT            ((UINT) -1)
27#define D3DX11_FROM_FILE          ((UINT) -3)
28#define DXGI_FORMAT_FROM_FILE     ((DXGI_FORMAT) -3)
29
30#ifndef D3DX11INLINE
31#ifdef _MSC_VER
32  #if (_MSC_VER >= 1200)
33  #define D3DX11INLINE __forceinline
34  #else
35  #define D3DX11INLINE __inline
36  #endif
37#else
38  #ifdef __cplusplus
39  #define D3DX11INLINE inline
40  #else
41  #define D3DX11INLINE
42  #endif
43#endif
44#endif
45
46
47
48// Includes
49#include "d3d11.h"
50#include "d3dx11.h"
51#include "d3dx11core.h"
52#include "d3dx11tex.h"
53#include "d3dx11async.h"
54
55
56// Errors
57#define _FACDD  0x876
58#define MAKE_DDHRESULT( code )  MAKE_HRESULT( 1, _FACDD, code )
59
60enum _D3DX11_ERR {
61    D3DX11_ERR_CANNOT_MODIFY_INDEX_BUFFER       = MAKE_DDHRESULT(2900),
62    D3DX11_ERR_INVALID_MESH                     = MAKE_DDHRESULT(2901),
63    D3DX11_ERR_CANNOT_ATTR_SORT                 = MAKE_DDHRESULT(2902),
64    D3DX11_ERR_SKINNING_NOT_SUPPORTED           = MAKE_DDHRESULT(2903),
65    D3DX11_ERR_TOO_MANY_INFLUENCES              = MAKE_DDHRESULT(2904),
66    D3DX11_ERR_INVALID_DATA                     = MAKE_DDHRESULT(2905),
67    D3DX11_ERR_LOADED_MESH_HAS_NO_DATA          = MAKE_DDHRESULT(2906),
68    D3DX11_ERR_DUPLICATE_NAMED_FRAGMENT         = MAKE_DDHRESULT(2907),
69    D3DX11_ERR_CANNOT_REMOVE_LAST_ITEM          = MAKE_DDHRESULT(2908),
70};
71
72
73#endif //__D3DX11_H__
74
trunk/3rdparty/dxsdk/Include/d3dx11async.h
r0r243311
1
2//////////////////////////////////////////////////////////////////////////////
3//
4//  Copyright (c) Microsoft Corporation.  All rights reserved.
5//
6//  File:       D3DX11Async.h
7//  Content:    D3DX11 Asynchronous Shader loaders / compilers
8//
9//////////////////////////////////////////////////////////////////////////////
10
11#ifndef __D3DX11ASYNC_H__
12#define __D3DX11ASYNC_H__
13
14#include "d3dx11.h"
15
16#ifdef __cplusplus
17extern "C" {
18#endif //__cplusplus
19
20
21//----------------------------------------------------------------------------
22// D3DX11Compile:
23// ------------------
24// Compiles an effect or shader.
25//
26// Parameters:
27//  pSrcFile
28//      Source file name.
29//  hSrcModule
30//      Module handle. if NULL, current module will be used.
31//  pSrcResource
32//      Resource name in module.
33//  pSrcData
34//      Pointer to source code.
35//  SrcDataLen
36//      Size of source code, in bytes.
37//  pDefines
38//      Optional NULL-terminated array of preprocessor macro definitions.
39//  pInclude
40//      Optional interface pointer to use for handling #include directives.
41//      If this parameter is NULL, #includes will be honored when compiling
42//      from file, and will error when compiling from resource or memory.
43//  pFunctionName
44//      Name of the entrypoint function where execution should begin.
45//  pProfile
46//      Instruction set to be used when generating code.  Currently supported
47//      profiles are "vs_1_1",  "vs_2_0", "vs_2_a", "vs_2_sw", "vs_3_0",
48//                   "vs_3_sw", "vs_4_0", "vs_4_1",
49//                   "ps_2_0",  "ps_2_a", "ps_2_b", "ps_2_sw", "ps_3_0",
50//                   "ps_3_sw", "ps_4_0", "ps_4_1",
51//                   "gs_4_0",  "gs_4_1",
52//                   "tx_1_0",
53//                   "fx_4_0",  "fx_4_1"
54//      Note that this entrypoint does not compile fx_2_0 targets, for that
55//      you need to use the D3DX9 function.
56//  Flags1
57//      See D3D10_SHADER_xxx flags.
58//  Flags2
59//      See D3D10_EFFECT_xxx flags.
60//  ppShader
61//      Returns a buffer containing the created shader.  This buffer contains
62//      the compiled shader code, as well as any embedded debug and symbol
63//      table info.  (See D3D10GetShaderConstantTable)
64//  ppErrorMsgs
65//      Returns a buffer containing a listing of errors and warnings that were
66//      encountered during the compile.  If you are running in a debugger,
67//      these are the same messages you will see in your debug output.
68//  pHResult
69//      Pointer to a memory location to receive the return value upon completion.
70//      Maybe NULL if not needed.
71//      If pPump != NULL, pHResult must be a valid memory location until the
72//      the asynchronous execution completes.
73//----------------------------------------------------------------------------
74
75HRESULT WINAPI D3DX11CompileFromFileA(LPCSTR pSrcFile,CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
76        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
77
78HRESULT WINAPI D3DX11CompileFromFileW(LPCWSTR pSrcFile, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
79        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
80
81#ifdef UNICODE
82#define D3DX11CompileFromFile D3DX11CompileFromFileW
83#else
84#define D3DX11CompileFromFile D3DX11CompileFromFileA
85#endif
86
87HRESULT WINAPI D3DX11CompileFromResourceA(HMODULE hSrcModule, LPCSTR pSrcResource, LPCSTR pSrcFileName, CONST D3D10_SHADER_MACRO* pDefines,
88    LPD3D10INCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
89
90HRESULT WINAPI D3DX11CompileFromResourceW(HMODULE hSrcModule, LPCWSTR pSrcResource, LPCWSTR pSrcFileName, CONST D3D10_SHADER_MACRO* pDefines,
91    LPD3D10INCLUDE pInclude, LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
92
93#ifdef UNICODE
94#define D3DX11CompileFromResource D3DX11CompileFromResourceW
95#else
96#define D3DX11CompileFromResource D3DX11CompileFromResourceA
97#endif
98
99HRESULT WINAPI D3DX11CompileFromMemory(LPCSTR pSrcData, SIZE_T SrcDataLen, LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
100    LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2, ID3DX11ThreadPump* pPump, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
101
102HRESULT WINAPI D3DX11PreprocessShaderFromFileA(LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines,
103    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
104
105HRESULT WINAPI D3DX11PreprocessShaderFromFileW(LPCWSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines,
106    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
107
108HRESULT WINAPI D3DX11PreprocessShaderFromMemory(LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines,
109    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
110
111HRESULT WINAPI D3DX11PreprocessShaderFromResourceA(HMODULE hModule, LPCSTR pResourceName, LPCSTR pSrcFileName, CONST D3D10_SHADER_MACRO* pDefines,
112    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
113
114HRESULT WINAPI D3DX11PreprocessShaderFromResourceW(HMODULE hModule, LPCWSTR pResourceName, LPCWSTR pSrcFileName, CONST D3D10_SHADER_MACRO* pDefines,
115    LPD3D10INCLUDE pInclude, ID3DX11ThreadPump *pPump, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs, HRESULT* pHResult);
116
117#ifdef UNICODE
118#define D3DX11PreprocessShaderFromFile      D3DX11PreprocessShaderFromFileW
119#define D3DX11PreprocessShaderFromResource  D3DX11PreprocessShaderFromResourceW
120#else
121#define D3DX11PreprocessShaderFromFile      D3DX11PreprocessShaderFromFileA
122#define D3DX11PreprocessShaderFromResource  D3DX11PreprocessShaderFromResourceA
123#endif
124
125//----------------------------------------------------------------------------
126// Async processors
127//----------------------------------------------------------------------------
128
129HRESULT WINAPI D3DX11CreateAsyncCompilerProcessor(LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
130        LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags1, UINT Flags2,
131        ID3D10Blob **ppCompiledShader, ID3D10Blob **ppErrorBuffer, ID3DX11DataProcessor **ppProcessor);
132
133HRESULT WINAPI D3DX11CreateAsyncShaderPreprocessProcessor(LPCSTR pFileName, CONST D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude,
134        ID3D10Blob** ppShaderText, ID3D10Blob **ppErrorBuffer, ID3DX11DataProcessor **ppProcessor);
135
136//----------------------------------------------------------------------------
137// D3DX11 Asynchronous texture I/O (advanced mode)
138//----------------------------------------------------------------------------
139
140HRESULT WINAPI D3DX11CreateAsyncFileLoaderW(LPCWSTR pFileName, ID3DX11DataLoader **ppDataLoader);
141HRESULT WINAPI D3DX11CreateAsyncFileLoaderA(LPCSTR pFileName, ID3DX11DataLoader **ppDataLoader);
142HRESULT WINAPI D3DX11CreateAsyncMemoryLoader(LPCVOID pData, SIZE_T cbData, ID3DX11DataLoader **ppDataLoader);
143HRESULT WINAPI D3DX11CreateAsyncResourceLoaderW(HMODULE hSrcModule, LPCWSTR pSrcResource, ID3DX11DataLoader **ppDataLoader);
144HRESULT WINAPI D3DX11CreateAsyncResourceLoaderA(HMODULE hSrcModule, LPCSTR pSrcResource, ID3DX11DataLoader **ppDataLoader);
145
146#ifdef UNICODE
147#define D3DX11CreateAsyncFileLoader D3DX11CreateAsyncFileLoaderW
148#define D3DX11CreateAsyncResourceLoader D3DX11CreateAsyncResourceLoaderW
149#else
150#define D3DX11CreateAsyncFileLoader D3DX11CreateAsyncFileLoaderA
151#define D3DX11CreateAsyncResourceLoader D3DX11CreateAsyncResourceLoaderA
152#endif
153
154HRESULT WINAPI D3DX11CreateAsyncTextureProcessor(ID3D11Device *pDevice, D3DX11_IMAGE_LOAD_INFO *pLoadInfo, ID3DX11DataProcessor **ppDataProcessor);
155HRESULT WINAPI D3DX11CreateAsyncTextureInfoProcessor(D3DX11_IMAGE_INFO *pImageInfo, ID3DX11DataProcessor **ppDataProcessor);
156HRESULT WINAPI D3DX11CreateAsyncShaderResourceViewProcessor(ID3D11Device *pDevice, D3DX11_IMAGE_LOAD_INFO *pLoadInfo, ID3DX11DataProcessor **ppDataProcessor);
157
158#ifdef __cplusplus
159}
160#endif //__cplusplus
161
162#endif //__D3DX11ASYNC_H__
163
164
trunk/3rdparty/dxsdk/Include/d3dx11core.h
r0r243311
1///////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       d3dx11core.h
6//  Content:    D3DX11 core types and functions
7//
8///////////////////////////////////////////////////////////////////////////
9
10#include "d3dx11.h"
11
12#ifndef __D3DX11CORE_H__
13#define __D3DX11CORE_H__
14
15// Current name of the DLL shipped in the same SDK as this header.
16
17
18#define D3DX11_DLL_W L"d3dx11_43.dll"
19#define D3DX11_DLL_A "d3dx11_43.dll"
20
21#ifdef UNICODE
22    #define D3DX11_DLL D3DX11_DLL_W
23#else
24    #define D3DX11_DLL D3DX11_DLL_A
25#endif
26
27#ifdef __cplusplus
28extern "C" {
29#endif //__cplusplus
30
31///////////////////////////////////////////////////////////////////////////
32// D3DX11_SDK_VERSION:
33// -----------------
34// This identifier is passed to D3DX11CheckVersion in order to ensure that an
35// application was built against the correct header files and lib files.
36// This number is incremented whenever a header (or other) change would
37// require applications to be rebuilt. If the version doesn't match,
38// D3DX11CreateVersion will return FALSE. (The number itself has no meaning.)
39///////////////////////////////////////////////////////////////////////////
40
41
42#define D3DX11_SDK_VERSION 43
43
44
45#ifdef D3D_DIAG_DLL
46BOOL WINAPI D3DX11DebugMute(BOOL Mute); 
47#endif
48HRESULT WINAPI D3DX11CheckVersion(UINT D3DSdkVersion, UINT D3DX11SdkVersion);
49
50#ifdef __cplusplus
51}
52#endif //__cplusplus
53
54
55
56//////////////////////////////////////////////////////////////////////////////
57// ID3DX11ThreadPump:
58//////////////////////////////////////////////////////////////////////////////
59
60#undef INTERFACE
61#define INTERFACE ID3DX11DataLoader
62
63DECLARE_INTERFACE(ID3DX11DataLoader)
64{
65   STDMETHOD(Load)(THIS) PURE;
66   STDMETHOD(Decompress)(THIS_ void **ppData, SIZE_T *pcBytes) PURE;
67   STDMETHOD(Destroy)(THIS) PURE;
68};
69
70#undef INTERFACE
71#define INTERFACE ID3DX11DataProcessor
72
73DECLARE_INTERFACE(ID3DX11DataProcessor)
74{
75   STDMETHOD(Process)(THIS_ void *pData, SIZE_T cBytes) PURE;
76   STDMETHOD(CreateDeviceObject)(THIS_ void **ppDataObject) PURE;
77   STDMETHOD(Destroy)(THIS) PURE;
78};
79
80// {C93FECFA-6967-478a-ABBC-402D90621FCB}
81DEFINE_GUID(IID_ID3DX11ThreadPump,
820xc93fecfa, 0x6967, 0x478a, 0xab, 0xbc, 0x40, 0x2d, 0x90, 0x62, 0x1f, 0xcb);
83
84#undef INTERFACE
85#define INTERFACE ID3DX11ThreadPump
86
87DECLARE_INTERFACE_(ID3DX11ThreadPump, IUnknown)
88{
89    // IUnknown
90    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
91    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
92    STDMETHOD_(ULONG, Release)(THIS) PURE;
93
94    // ID3DX11ThreadPump
95    STDMETHOD(AddWorkItem)(THIS_ ID3DX11DataLoader *pDataLoader, ID3DX11DataProcessor *pDataProcessor, HRESULT *pHResult, void **ppDeviceObject) PURE;
96    STDMETHOD_(UINT, GetWorkItemCount)(THIS) PURE;
97     
98    STDMETHOD(WaitForAllItems)(THIS) PURE;
99    STDMETHOD(ProcessDeviceWorkItems)(THIS_ UINT iWorkItemCount);
100
101    STDMETHOD(PurgeAllItems)(THIS) PURE;
102    STDMETHOD(GetQueueStatus)(THIS_ UINT *pIoQueue, UINT *pProcessQueue, UINT *pDeviceQueue) PURE;
103   
104};
105
106#ifdef __cplusplus
107extern "C" {
108#endif //__cplusplus
109
110HRESULT WINAPI D3DX11CreateThreadPump(UINT cIoThreads, UINT cProcThreads, ID3DX11ThreadPump **ppThreadPump);
111
112HRESULT WINAPI D3DX11UnsetAllDeviceObjects(ID3D11DeviceContext *pContext);
113
114#ifdef __cplusplus
115}
116#endif //__cplusplus
117
118///////////////////////////////////////////////////////////////////////////
119
120#define _FACD3D  0x876
121#define MAKE_D3DHRESULT( code )  MAKE_HRESULT( 1, _FACD3D, code )
122#define MAKE_D3DSTATUS( code )  MAKE_HRESULT( 0, _FACD3D, code )
123
124#define D3DERR_INVALIDCALL                      MAKE_D3DHRESULT(2156)
125#define D3DERR_WASSTILLDRAWING                  MAKE_D3DHRESULT(540)
126
127#endif //__D3DX11CORE_H__
128
trunk/3rdparty/dxsdk/Include/d3dx11tex.h
r0r243311
1//////////////////////////////////////////////////////////////////////////////
2//
3//  Copyright (C) Microsoft Corporation.  All Rights Reserved.
4//
5//  File:       d3dx11tex.h
6//  Content:    D3DX11 texturing APIs
7//
8//////////////////////////////////////////////////////////////////////////////
9
10#include "d3dx11.h"
11
12#ifndef __D3DX11TEX_H__
13#define __D3DX11TEX_H__
14
15
16//----------------------------------------------------------------------------
17// D3DX11_FILTER flags:
18// ------------------
19//
20// A valid filter must contain one of these values:
21//
22//  D3DX11_FILTER_NONE
23//      No scaling or filtering will take place.  Pixels outside the bounds
24//      of the source image are assumed to be transparent black.
25//  D3DX11_FILTER_POINT
26//      Each destination pixel is computed by sampling the nearest pixel
27//      from the source image.
28//  D3DX11_FILTER_LINEAR
29//      Each destination pixel is computed by linearly interpolating between
30//      the nearest pixels in the source image.  This filter works best
31//      when the scale on each axis is less than 2.
32//  D3DX11_FILTER_TRIANGLE
33//      Every pixel in the source image contributes equally to the
34//      destination image.  This is the slowest of all the filters.
35//  D3DX11_FILTER_BOX
36//      Each pixel is computed by averaging a 2x2(x2) box pixels from
37//      the source image. Only works when the dimensions of the
38//      destination are half those of the source. (as with mip maps)
39//
40// And can be OR'd with any of these optional flags:
41//
42//  D3DX11_FILTER_MIRROR_U
43//      Indicates that pixels off the edge of the texture on the U-axis
44//      should be mirrored, not wraped.
45//  D3DX11_FILTER_MIRROR_V
46//      Indicates that pixels off the edge of the texture on the V-axis
47//      should be mirrored, not wraped.
48//  D3DX11_FILTER_MIRROR_W
49//      Indicates that pixels off the edge of the texture on the W-axis
50//      should be mirrored, not wraped.
51//  D3DX11_FILTER_MIRROR
52//      Same as specifying D3DX11_FILTER_MIRROR_U | D3DX11_FILTER_MIRROR_V |
53//      D3DX11_FILTER_MIRROR_V
54//  D3DX11_FILTER_DITHER
55//      Dithers the resulting image using a 4x4 order dither pattern.
56//  D3DX11_FILTER_SRGB_IN
57//      Denotes that the input data is in sRGB (gamma 2.2) colorspace.
58//  D3DX11_FILTER_SRGB_OUT
59//      Denotes that the output data is in sRGB (gamma 2.2) colorspace.
60//  D3DX11_FILTER_SRGB
61//      Same as specifying D3DX11_FILTER_SRGB_IN | D3DX11_FILTER_SRGB_OUT
62//
63//----------------------------------------------------------------------------
64
65typedef enum D3DX11_FILTER_FLAG
66{
67    D3DX11_FILTER_NONE            =   (1 << 0),
68    D3DX11_FILTER_POINT           =   (2 << 0),
69    D3DX11_FILTER_LINEAR          =   (3 << 0),
70    D3DX11_FILTER_TRIANGLE        =   (4 << 0),
71    D3DX11_FILTER_BOX             =   (5 << 0),
72
73    D3DX11_FILTER_MIRROR_U        =   (1 << 16),
74    D3DX11_FILTER_MIRROR_V        =   (2 << 16),
75    D3DX11_FILTER_MIRROR_W        =   (4 << 16),
76    D3DX11_FILTER_MIRROR          =   (7 << 16),
77
78    D3DX11_FILTER_DITHER          =   (1 << 19),
79    D3DX11_FILTER_DITHER_DIFFUSION=   (2 << 19),
80
81    D3DX11_FILTER_SRGB_IN         =   (1 << 21),
82    D3DX11_FILTER_SRGB_OUT        =   (2 << 21),
83    D3DX11_FILTER_SRGB            =   (3 << 21),
84} D3DX11_FILTER_FLAG;
85
86//----------------------------------------------------------------------------
87// D3DX11_NORMALMAP flags:
88// ---------------------
89// These flags are used to control how D3DX11ComputeNormalMap generates normal
90// maps.  Any number of these flags may be OR'd together in any combination.
91//
92//  D3DX11_NORMALMAP_MIRROR_U
93//      Indicates that pixels off the edge of the texture on the U-axis
94//      should be mirrored, not wraped.
95//  D3DX11_NORMALMAP_MIRROR_V
96//      Indicates that pixels off the edge of the texture on the V-axis
97//      should be mirrored, not wraped.
98//  D3DX11_NORMALMAP_MIRROR
99//      Same as specifying D3DX11_NORMALMAP_MIRROR_U | D3DX11_NORMALMAP_MIRROR_V
100//  D3DX11_NORMALMAP_INVERTSIGN
101//      Inverts the direction of each normal
102//  D3DX11_NORMALMAP_COMPUTE_OCCLUSION
103//      Compute the per pixel Occlusion term and encodes it into the alpha.
104//      An Alpha of 1 means that the pixel is not obscured in anyway, and
105//      an alpha of 0 would mean that the pixel is completly obscured.
106//
107//----------------------------------------------------------------------------
108
109typedef enum D3DX11_NORMALMAP_FLAG
110{
111    D3DX11_NORMALMAP_MIRROR_U          =   (1 << 16),
112    D3DX11_NORMALMAP_MIRROR_V          =   (2 << 16),
113    D3DX11_NORMALMAP_MIRROR            =   (3 << 16),
114    D3DX11_NORMALMAP_INVERTSIGN        =   (8 << 16),
115    D3DX11_NORMALMAP_COMPUTE_OCCLUSION =   (16 << 16),
116} D3DX11_NORMALMAP_FLAG;
117
118//----------------------------------------------------------------------------
119// D3DX11_CHANNEL flags:
120// -------------------
121// These flags are used by functions which operate on or more channels
122// in a texture.
123//
124// D3DX11_CHANNEL_RED
125//     Indicates the red channel should be used
126// D3DX11_CHANNEL_BLUE
127//     Indicates the blue channel should be used
128// D3DX11_CHANNEL_GREEN
129//     Indicates the green channel should be used
130// D3DX11_CHANNEL_ALPHA
131//     Indicates the alpha channel should be used
132// D3DX11_CHANNEL_LUMINANCE
133//     Indicates the luminaces of the red green and blue channels should be
134//     used.
135//
136//----------------------------------------------------------------------------
137
138typedef enum D3DX11_CHANNEL_FLAG
139{
140    D3DX11_CHANNEL_RED           =    (1 << 0),
141    D3DX11_CHANNEL_BLUE          =    (1 << 1),
142    D3DX11_CHANNEL_GREEN         =    (1 << 2),
143    D3DX11_CHANNEL_ALPHA         =    (1 << 3),
144    D3DX11_CHANNEL_LUMINANCE     =    (1 << 4),
145} D3DX11_CHANNEL_FLAG;
146
147
148
149//----------------------------------------------------------------------------
150// D3DX11_IMAGE_FILE_FORMAT:
151// ---------------------
152// This enum is used to describe supported image file formats.
153//
154//----------------------------------------------------------------------------
155
156typedef enum D3DX11_IMAGE_FILE_FORMAT
157{
158    D3DX11_IFF_BMP         = 0,
159    D3DX11_IFF_JPG         = 1,
160    D3DX11_IFF_PNG         = 3,
161    D3DX11_IFF_DDS         = 4,
162    D3DX11_IFF_TIFF        = 10,
163    D3DX11_IFF_GIF        = 11,
164    D3DX11_IFF_WMP        = 12,
165    D3DX11_IFF_FORCE_DWORD = 0x7fffffff
166
167} D3DX11_IMAGE_FILE_FORMAT;
168
169
170//----------------------------------------------------------------------------
171// D3DX11_SAVE_TEXTURE_FLAG:
172// ---------------------
173// This enum is used to support texture saving options.
174//
175//----------------------------------------------------------------------------
176
177typedef enum D3DX11_SAVE_TEXTURE_FLAG
178{
179    D3DX11_STF_USEINPUTBLOB      = 0x0001,
180} D3DX11_SAVE_TEXTURE_FLAG;
181
182
183//----------------------------------------------------------------------------
184// D3DX11_IMAGE_INFO:
185// ---------------
186// This structure is used to return a rough description of what the
187// the original contents of an image file looked like.
188//
189//  Width
190//      Width of original image in pixels
191//  Height
192//      Height of original image in pixels
193//  Depth
194//      Depth of original image in pixels
195//  ArraySize
196//      Array size in textures
197//  MipLevels
198//      Number of mip levels in original image
199//  MiscFlags
200//      Miscellaneous flags
201//  Format
202//      D3D format which most closely describes the data in original image
203//  ResourceDimension
204//      D3D11_RESOURCE_DIMENSION representing the dimension of texture stored in the file.
205//      D3D11_RESOURCE_DIMENSION_TEXTURE1D, 2D, 3D
206//  ImageFileFormat
207//      D3DX11_IMAGE_FILE_FORMAT representing the format of the image file.
208//----------------------------------------------------------------------------
209
210typedef struct D3DX11_IMAGE_INFO
211{
212    UINT                        Width;
213    UINT                        Height;
214    UINT                        Depth;
215    UINT                        ArraySize;
216    UINT                        MipLevels;
217    UINT                        MiscFlags;
218    DXGI_FORMAT                 Format;
219    D3D11_RESOURCE_DIMENSION    ResourceDimension;
220    D3DX11_IMAGE_FILE_FORMAT    ImageFileFormat;
221} D3DX11_IMAGE_INFO;
222
223
224
225
226
227#ifdef __cplusplus
228extern "C" {
229#endif //__cplusplus
230
231
232
233//////////////////////////////////////////////////////////////////////////////
234// Image File APIs ///////////////////////////////////////////////////////////
235//////////////////////////////////////////////////////////////////////////////
236
237//----------------------------------------------------------------------------
238// D3DX11_IMAGE_LOAD_INFO:
239// ---------------
240// This structure can be optionally passed in to texture loader APIs to
241// control how textures get loaded. Pass in D3DX11_DEFAULT for any of these
242// to have D3DX automatically pick defaults based on the source file.
243//
244//  Width
245//      Rescale texture to Width texels wide
246//  Height
247//      Rescale texture to Height texels high
248//  Depth
249//      Rescale texture to Depth texels deep
250//  FirstMipLevel
251//      First mip level to load
252//  MipLevels
253//      Number of mip levels to load after the first level
254//  Usage
255//      D3D11_USAGE flag for the new texture
256//  BindFlags
257//      D3D11 Bind flags for the new texture
258//  CpuAccessFlags
259//      D3D11 CPU Access flags for the new texture
260//  MiscFlags
261//      Reserved. Must be 0
262//  Format
263//      Resample texture to the specified format
264//  Filter
265//      Filter the texture using the specified filter (only when resampling)
266//  MipFilter
267//      Filter the texture mip levels using the specified filter (only if
268//      generating mips)
269//  pSrcInfo
270//      (optional) pointer to a D3DX11_IMAGE_INFO structure that will get
271//      populated with source image information
272//----------------------------------------------------------------------------
273
274
275typedef struct D3DX11_IMAGE_LOAD_INFO
276{
277    UINT                       Width;
278    UINT                       Height;
279    UINT                       Depth;
280    UINT                       FirstMipLevel;
281    UINT                       MipLevels;
282    D3D11_USAGE                Usage;
283    UINT                       BindFlags;
284    UINT                       CpuAccessFlags;
285    UINT                       MiscFlags;
286    DXGI_FORMAT                Format;
287    UINT                       Filter;
288    UINT                       MipFilter;
289    D3DX11_IMAGE_INFO*         pSrcInfo;
290   
291#ifdef __cplusplus
292    D3DX11_IMAGE_LOAD_INFO()
293    {
294        Width = D3DX11_DEFAULT;
295        Height = D3DX11_DEFAULT;
296        Depth = D3DX11_DEFAULT;
297        FirstMipLevel = D3DX11_DEFAULT;
298        MipLevels = D3DX11_DEFAULT;
299        Usage = (D3D11_USAGE) D3DX11_DEFAULT;
300        BindFlags = D3DX11_DEFAULT;
301        CpuAccessFlags = D3DX11_DEFAULT;
302        MiscFlags = D3DX11_DEFAULT;
303        Format = DXGI_FORMAT_FROM_FILE;
304        Filter = D3DX11_DEFAULT;
305        MipFilter = D3DX11_DEFAULT;
306        pSrcInfo = NULL;
307    } 
308#endif
309
310} D3DX11_IMAGE_LOAD_INFO;
311
312//-------------------------------------------------------------------------------
313// GetImageInfoFromFile/Resource/Memory:
314// ------------------------------
315// Fills in a D3DX11_IMAGE_INFO struct with information about an image file.
316//
317// Parameters:
318//  pSrcFile
319//      File name of the source image.
320//  pSrcModule
321//      Module where resource is located, or NULL for module associated
322//      with image the os used to create the current process.
323//  pSrcResource
324//      Resource name.
325//  pSrcData
326//      Pointer to file in memory.
327//  SrcDataSize
328//      Size in bytes of file in memory.
329//  pPump
330//      Optional pointer to a thread pump object to use.
331//  pSrcInfo
332//      Pointer to a D3DX11_IMAGE_INFO structure to be filled in with the
333//      description of the data in the source image file.
334//  pHResult
335//      Pointer to a memory location to receive the return value upon completion.
336//      Maybe NULL if not needed.
337//      If pPump != NULL, pHResult must be a valid memory location until the
338//      the asynchronous execution completes.
339//-------------------------------------------------------------------------------
340
341HRESULT WINAPI
342    D3DX11GetImageInfoFromFileA(
343        LPCSTR                    pSrcFile,
344        ID3DX11ThreadPump*        pPump,
345        D3DX11_IMAGE_INFO*        pSrcInfo,
346        HRESULT*                  pHResult);
347
348HRESULT WINAPI
349    D3DX11GetImageInfoFromFileW(
350        LPCWSTR                   pSrcFile,
351        ID3DX11ThreadPump*        pPump,
352        D3DX11_IMAGE_INFO*        pSrcInfo,
353        HRESULT*                  pHResult);
354
355#ifdef UNICODE
356#define D3DX11GetImageInfoFromFile D3DX11GetImageInfoFromFileW
357#else
358#define D3DX11GetImageInfoFromFile D3DX11GetImageInfoFromFileA
359#endif
360
361
362HRESULT WINAPI
363    D3DX11GetImageInfoFromResourceA(
364        HMODULE                   hSrcModule,
365        LPCSTR                    pSrcResource,
366        ID3DX11ThreadPump*        pPump,
367        D3DX11_IMAGE_INFO*        pSrcInfo,
368        HRESULT*                  pHResult);
369
370HRESULT WINAPI
371    D3DX11GetImageInfoFromResourceW(
372        HMODULE                   hSrcModule,
373        LPCWSTR                   pSrcResource,
374        ID3DX11ThreadPump*        pPump,
375        D3DX11_IMAGE_INFO*        pSrcInfo,
376        HRESULT*                  pHResult);
377
378#ifdef UNICODE
379#define D3DX11GetImageInfoFromResource D3DX11GetImageInfoFromResourceW
380#else
381#define D3DX11GetImageInfoFromResource D3DX11GetImageInfoFromResourceA
382#endif
383
384
385HRESULT WINAPI
386    D3DX11GetImageInfoFromMemory(
387        LPCVOID                   pSrcData,
388        SIZE_T                    SrcDataSize,
389        ID3DX11ThreadPump*        pPump,
390        D3DX11_IMAGE_INFO*        pSrcInfo,
391        HRESULT*                  pHResult);
392
393
394//////////////////////////////////////////////////////////////////////////////
395// Create/Save Texture APIs //////////////////////////////////////////////////
396//////////////////////////////////////////////////////////////////////////////
397
398//----------------------------------------------------------------------------
399// D3DX11CreateTextureFromFile/Resource/Memory:
400// D3DX11CreateShaderResourceViewFromFile/Resource/Memory:
401// -----------------------------------
402// Create a texture object from a file or resource.
403//
404// Parameters:
405//
406//  pDevice
407//      The D3D device with which the texture is going to be used.
408//  pSrcFile
409//      File name.
410//  hSrcModule
411//      Module handle. if NULL, current module will be used.
412//  pSrcResource
413//      Resource name in module
414//  pvSrcData
415//      Pointer to file in memory.
416//  SrcDataSize
417//      Size in bytes of file in memory.
418//  pLoadInfo
419//      Optional pointer to a D3DX11_IMAGE_LOAD_INFO structure that
420//      contains additional loader parameters.
421//  pPump
422//      Optional pointer to a thread pump object to use.
423//  ppTexture
424//      [out] Created texture object.
425//  ppShaderResourceView
426//      [out] Shader resource view object created.
427//  pHResult
428//      Pointer to a memory location to receive the return value upon completion.
429//      Maybe NULL if not needed.
430//      If pPump != NULL, pHResult must be a valid memory location until the
431//      the asynchronous execution completes.
432//
433//----------------------------------------------------------------------------
434
435
436// FromFile
437
438HRESULT WINAPI
439    D3DX11CreateShaderResourceViewFromFileA(
440        ID3D11Device*               pDevice,
441        LPCSTR                      pSrcFile,
442        D3DX11_IMAGE_LOAD_INFO      *pLoadInfo,
443        ID3DX11ThreadPump*          pPump,
444        ID3D11ShaderResourceView**  ppShaderResourceView,
445        HRESULT*                    pHResult);
446
447HRESULT WINAPI
448    D3DX11CreateShaderResourceViewFromFileW(
449        ID3D11Device*               pDevice,
450        LPCWSTR                     pSrcFile,
451        D3DX11_IMAGE_LOAD_INFO      *pLoadInfo,
452        ID3DX11ThreadPump*          pPump,
453        ID3D11ShaderResourceView**  ppShaderResourceView,
454        HRESULT*                    pHResult);
455
456#ifdef UNICODE
457#define D3DX11CreateShaderResourceViewFromFile D3DX11CreateShaderResourceViewFromFileW
458#else
459#define D3DX11CreateShaderResourceViewFromFile D3DX11CreateShaderResourceViewFromFileA
460#endif
461
462HRESULT WINAPI
463    D3DX11CreateTextureFromFileA(
464        ID3D11Device*               pDevice,
465        LPCSTR                      pSrcFile,
466        D3DX11_IMAGE_LOAD_INFO      *pLoadInfo,
467        ID3DX11ThreadPump*          pPump,
468        ID3D11Resource**            ppTexture,
469        HRESULT*                    pHResult);
470
471HRESULT WINAPI
472    D3DX11CreateTextureFromFileW(
473        ID3D11Device*               pDevice,
474        LPCWSTR                     pSrcFile,
475        D3DX11_IMAGE_LOAD_INFO      *pLoadInfo,
476        ID3DX11ThreadPump*          pPump,
477        ID3D11Resource**            ppTexture,
478        HRESULT*                    pHResult);
479
480#ifdef UNICODE
481#define D3DX11CreateTextureFromFile D3DX11CreateTextureFromFileW
482#else
483#define D3DX11CreateTextureFromFile D3DX11CreateTextureFromFileA
484#endif
485
486
487// FromResource (resources in dll/exes)
488
489HRESULT WINAPI
490    D3DX11CreateShaderResourceViewFromResourceA(
491        ID3D11Device*              pDevice,
492        HMODULE                    hSrcModule,
493        LPCSTR                     pSrcResource,
494        D3DX11_IMAGE_LOAD_INFO*    pLoadInfo,
495        ID3DX11ThreadPump*         pPump,
496        ID3D11ShaderResourceView** ppShaderResourceView,
497        HRESULT*                   pHResult);
498
499HRESULT WINAPI
500    D3DX11CreateShaderResourceViewFromResourceW(
501        ID3D11Device*              pDevice,
502        HMODULE                    hSrcModule,
503        LPCWSTR                    pSrcResource,
504        D3DX11_IMAGE_LOAD_INFO*    pLoadInfo,
505        ID3DX11ThreadPump*         pPump,
506        ID3D11ShaderResourceView** ppShaderResourceView,
507        HRESULT*                   pHResult);
508
509#ifdef UNICODE
510#define D3DX11CreateShaderResourceViewFromResource D3DX11CreateShaderResourceViewFromResourceW
511#else
512#define D3DX11CreateShaderResourceViewFromResource D3DX11CreateShaderResourceViewFromResourceA
513#endif
514
515HRESULT WINAPI
516    D3DX11CreateTextureFromResourceA(
517        ID3D11Device*            pDevice,
518        HMODULE                  hSrcModule,
519        LPCSTR                   pSrcResource,
520        D3DX11_IMAGE_LOAD_INFO   *pLoadInfo, 
521        ID3DX11ThreadPump*       pPump,   
522        ID3D11Resource**         ppTexture,
523        HRESULT*                 pHResult);
524
525HRESULT WINAPI
526    D3DX11CreateTextureFromResourceW(
527        ID3D11Device*           pDevice,
528        HMODULE                 hSrcModule,
529        LPCWSTR                 pSrcResource,
530        D3DX11_IMAGE_LOAD_INFO* pLoadInfo,
531        ID3DX11ThreadPump*      pPump,
532        ID3D11Resource**        ppTexture,
533        HRESULT*                pHResult);
534
535#ifdef UNICODE
536#define D3DX11CreateTextureFromResource D3DX11CreateTextureFromResourceW
537#else
538#define D3DX11CreateTextureFromResource D3DX11CreateTextureFromResourceA
539#endif
540
541
542// FromFileInMemory
543
544HRESULT WINAPI
545    D3DX11CreateShaderResourceViewFromMemory(
546        ID3D11Device*              pDevice,
547        LPCVOID                    pSrcData,
548        SIZE_T                     SrcDataSize,
549        D3DX11_IMAGE_LOAD_INFO*    pLoadInfo,
550        ID3DX11ThreadPump*         pPump,       
551        ID3D11ShaderResourceView** ppShaderResourceView,
552        HRESULT*                   pHResult);
553
554HRESULT WINAPI
555    D3DX11CreateTextureFromMemory(
556        ID3D11Device*             pDevice,
557        LPCVOID                   pSrcData,
558        SIZE_T                    SrcDataSize,
559        D3DX11_IMAGE_LOAD_INFO*   pLoadInfo,   
560        ID3DX11ThreadPump*        pPump,   
561        ID3D11Resource**          ppTexture,
562        HRESULT*                  pHResult);
563
564
565//////////////////////////////////////////////////////////////////////////////
566// Misc Texture APIs /////////////////////////////////////////////////////////
567//////////////////////////////////////////////////////////////////////////////
568
569//----------------------------------------------------------------------------
570// D3DX11_TEXTURE_LOAD_INFO:
571// ------------------------
572//
573//----------------------------------------------------------------------------
574
575typedef struct _D3DX11_TEXTURE_LOAD_INFO
576{
577    D3D11_BOX       *pSrcBox;
578    D3D11_BOX       *pDstBox;
579    UINT            SrcFirstMip;
580    UINT            DstFirstMip;
581    UINT            NumMips;
582    UINT            SrcFirstElement;
583    UINT            DstFirstElement;
584    UINT            NumElements;
585    UINT            Filter;
586    UINT            MipFilter;
587   
588#ifdef __cplusplus
589    _D3DX11_TEXTURE_LOAD_INFO()
590    {
591        pSrcBox = NULL;
592        pDstBox = NULL;
593        SrcFirstMip = 0;
594        DstFirstMip = 0;
595        NumMips = D3DX11_DEFAULT;
596        SrcFirstElement = 0;
597        DstFirstElement = 0;
598        NumElements = D3DX11_DEFAULT;
599        Filter = D3DX11_DEFAULT;
600        MipFilter = D3DX11_DEFAULT;
601    } 
602#endif
603
604} D3DX11_TEXTURE_LOAD_INFO;
605
606
607//----------------------------------------------------------------------------
608// D3DX11LoadTextureFromTexture:
609// ----------------------------
610// Load a texture from a texture.
611//
612// Parameters:
613//
614//----------------------------------------------------------------------------
615
616
617HRESULT WINAPI
618    D3DX11LoadTextureFromTexture(
619      ID3D11DeviceContext       *pContext,
620        ID3D11Resource            *pSrcTexture,
621        D3DX11_TEXTURE_LOAD_INFO  *pLoadInfo,
622        ID3D11Resource            *pDstTexture);
623
624
625//----------------------------------------------------------------------------
626// D3DX11FilterTexture:
627// ------------------
628// Filters mipmaps levels of a texture.
629//
630// Parameters:
631//  pBaseTexture
632//      The texture object to be filtered
633//  SrcLevel
634//      The level whose image is used to generate the subsequent levels.
635//  MipFilter
636//      D3DX11_FILTER flags controlling how each miplevel is filtered.
637//      Or D3DX11_DEFAULT for D3DX11_FILTER_BOX,
638//
639//----------------------------------------------------------------------------
640
641HRESULT WINAPI
642    D3DX11FilterTexture(
643      ID3D11DeviceContext       *pContext,
644        ID3D11Resource            *pTexture,
645        UINT                      SrcLevel,
646        UINT                      MipFilter);
647
648
649//----------------------------------------------------------------------------
650// D3DX11SaveTextureToFile:
651// ----------------------
652// Save a texture to a file.
653//
654// Parameters:
655//  pDestFile
656//      File name of the destination file
657//  DestFormat
658//      D3DX11_IMAGE_FILE_FORMAT specifying file format to use when saving.
659//  pSrcTexture
660//      Source texture, containing the image to be saved
661//
662//----------------------------------------------------------------------------
663
664HRESULT WINAPI
665    D3DX11SaveTextureToFileA(
666      ID3D11DeviceContext       *pContext,
667        ID3D11Resource            *pSrcTexture,
668        D3DX11_IMAGE_FILE_FORMAT    DestFormat,
669        LPCSTR                    pDestFile);
670
671HRESULT WINAPI
672    D3DX11SaveTextureToFileW(
673      ID3D11DeviceContext       *pContext,
674        ID3D11Resource            *pSrcTexture,
675        D3DX11_IMAGE_FILE_FORMAT    DestFormat,
676        LPCWSTR                   pDestFile);
677
678#ifdef UNICODE
679#define D3DX11SaveTextureToFile D3DX11SaveTextureToFileW
680#else
681#define D3DX11SaveTextureToFile D3DX11SaveTextureToFileA
682#endif
683
684
685//----------------------------------------------------------------------------
686// D3DX11SaveTextureToMemory:
687// ----------------------
688// Save a texture to a blob.
689//
690// Parameters:
691//  pSrcTexture
692//      Source texture, containing the image to be saved
693//  DestFormat
694//      D3DX11_IMAGE_FILE_FORMAT specifying file format to use when saving.
695//  ppDestBuf
696//      address of a d3dxbuffer pointer to return the image data
697//  Flags
698//      optional flags
699//----------------------------------------------------------------------------
700
701HRESULT WINAPI
702    D3DX11SaveTextureToMemory(
703      ID3D11DeviceContext       *pContext,
704        ID3D11Resource*            pSrcTexture,
705        D3DX11_IMAGE_FILE_FORMAT   DestFormat,
706        ID3D10Blob**               ppDestBuf,
707        UINT                       Flags);
708
709
710//----------------------------------------------------------------------------
711// D3DX11ComputeNormalMap:
712// ---------------------
713// Converts a height map into a normal map.  The (x,y,z) components of each
714// normal are mapped to the (r,g,b) channels of the output texture.
715//
716// Parameters
717//  pSrcTexture
718//      Pointer to the source heightmap texture
719//  Flags
720//      D3DX11_NORMALMAP flags
721//  Channel
722//      D3DX11_CHANNEL specifying source of height information
723//  Amplitude
724//      The constant value which the height information is multiplied by.
725//  pDestTexture
726//      Pointer to the destination texture
727//---------------------------------------------------------------------------
728
729HRESULT WINAPI
730    D3DX11ComputeNormalMap(
731        ID3D11DeviceContext      *pContext,
732        ID3D11Texture2D           *pSrcTexture,
733        UINT                      Flags,
734        UINT                      Channel,
735        FLOAT                     Amplitude,
736        ID3D11Texture2D           *pDestTexture);
737
738
739//----------------------------------------------------------------------------
740// D3DX11SHProjectCubeMap:
741// ----------------------
742//  Projects a function represented in a cube map into spherical harmonics.
743//
744//  Parameters:
745//   Order
746//      Order of the SH evaluation, generates Order^2 coefs, degree is Order-1
747//   pCubeMap
748//      CubeMap that is going to be projected into spherical harmonics
749//   pROut
750//      Output SH vector for Red.
751//   pGOut
752//      Output SH vector for Green
753//   pBOut
754//      Output SH vector for Blue       
755//
756//---------------------------------------------------------------------------
757
758HRESULT WINAPI
759    D3DX11SHProjectCubeMap(
760        ID3D11DeviceContext                                *pContext,
761        __in_range(2,6) UINT                                Order,
762        ID3D11Texture2D                                    *pCubeMap,
763        __out_ecount(Order*Order) FLOAT                    *pROut,
764        __out_ecount_opt(Order*Order) FLOAT                *pGOut,
765        __out_ecount_opt(Order*Order) FLOAT                *pBOut);
766
767#ifdef __cplusplus
768}
769#endif //__cplusplus
770
771#endif //__D3DX11TEX_H__
772


Previous 199869 Revisions Next


© 1997-2024 The MAME Team