d3d11.idl revision 6b485d85188f7a0499b921fbce4f05f1f5f4882b
1/**************************************************************************
2 *
3 * Copyright 2010 Luca Barbieri
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining
6 * a copy of this software and associated documentation files (the
7 * "Software"), to deal in the Software without restriction, including
8 * without limitation the rights to use, copy, modify, merge, publish,
9 * distribute, sublicense, and/or sell copies of the Software, and to
10 * permit persons to whom the Software is furnished to do so, subject to
11 * the following conditions:
12 *
13 * The above copyright notice and this permission notice (including the
14 * next paragraph) shall be included in all copies or substantial
15 * portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20 * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
21 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 *
25 **************************************************************************/
26
27import "oaidl.idl";
28import "ocidl.idl";
29import "dxgi.idl";
30import "d3dcommon.idl";
31
32const unsigned int D3D11_SDK_VERSION = 7;
33
34cpp_quote("#ifndef _D3D11_CONSTANTS")
35cpp_quote("#define _D3D11_CONSTANTS")
36const unsigned int D3D11_16BIT_INDEX_STRIP_CUT_VALUE = 0xffff;
37const unsigned int D3D11_32BIT_INDEX_STRIP_CUT_VALUE = 0xffffffff;
38const unsigned int D3D11_8BIT_INDEX_STRIP_CUT_VALUE = 0xff;
39const unsigned int D3D11_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT = 9;
40const unsigned int D3D11_CLIP_OR_CULL_DISTANCE_COUNT = 8;
41const unsigned int D3D11_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT = 2;
42const unsigned int D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = 14;
43const unsigned int D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32;
44const unsigned int D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = 4;
45const unsigned int D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = 15;
46const unsigned int D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4;
47const unsigned int D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15;
48const unsigned int D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1;
49const unsigned int D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
50const unsigned int D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = 64;
51const unsigned int D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4;
52const unsigned int D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = 1;
53const unsigned int D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1;
54const unsigned int D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
55const unsigned int D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = 32;
56const unsigned int D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = 1;
57const unsigned int D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = 128;
58const unsigned int D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = 1;
59const unsigned int D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = 1;
60const unsigned int D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = 128;
61const unsigned int D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = 1;
62const unsigned int D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT = 16;
63const unsigned int D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = 1;
64const unsigned int D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = 1;
65const unsigned int D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT = 16;
66const unsigned int D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = 32;
67const unsigned int D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = 32;
68const unsigned int D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS = 4;
69const unsigned int D3D11_COMMONSHADER_TEMP_REGISTER_COUNT = 4096;
70const unsigned int D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS = 3;
71const unsigned int D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = 3;
72const unsigned int D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = 10;
73const int D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = -10;
74const int D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = -8;
75const unsigned int D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = 7;
76const unsigned int D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 256;
77const unsigned int D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP = 64;
78const unsigned int D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 240;
79const unsigned int D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP = 68;
80const unsigned int D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 224;
81const unsigned int D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP = 72;
82const unsigned int D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 208;
83const unsigned int D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP = 76;
84const unsigned int D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 192;
85const unsigned int D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP = 84;
86const unsigned int D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 176;
87const unsigned int D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP = 92;
88const unsigned int D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 160;
89const unsigned int D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP = 100;
90const unsigned int D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 144;
91const unsigned int D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP = 112;
92const unsigned int D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 128;
93const unsigned int D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP = 128;
94const unsigned int D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 112;
95const unsigned int D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP = 144;
96const unsigned int D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 96;
97const unsigned int D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP = 168;
98const unsigned int D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 80;
99const unsigned int D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP = 204;
100const unsigned int D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 64;
101const unsigned int D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP = 256;
102const unsigned int D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 48;
103const unsigned int D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP = 340;
104const unsigned int D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 32;
105const unsigned int D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP = 512;
106const unsigned int D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 16;
107const unsigned int D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP = 768;
108const unsigned int D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION = 1;
109const unsigned int D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT = 256;
110const unsigned int D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP = 768;
111const unsigned int D3D11_CS_4_X_THREAD_GROUP_MAX_X = 768;
112const unsigned int D3D11_CS_4_X_THREAD_GROUP_MAX_Y = 768;
113const unsigned int D3D11_CS_4_X_UAV_REGISTER_COUNT = 1;
114const unsigned int D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION = 65535;
115const unsigned int D3D11_CS_TGSM_REGISTER_COUNT = 8192;
116const unsigned int D3D11_CS_TGSM_REGISTER_READS_PER_INST = 1;
117const unsigned int D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS = 1;
118const unsigned int D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS = 1;
119const unsigned int D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP = 1024;
120const unsigned int D3D11_CS_THREAD_GROUP_MAX_X = 1024;
121const unsigned int D3D11_CS_THREAD_GROUP_MAX_Y = 1024;
122const unsigned int D3D11_CS_THREAD_GROUP_MAX_Z = 64;
123const unsigned int D3D11_CS_THREAD_GROUP_MIN_X = 1;
124const unsigned int D3D11_CS_THREAD_GROUP_MIN_Y = 1;
125const unsigned int D3D11_CS_THREAD_GROUP_MIN_Z = 1;
126const unsigned int D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL = 16384;
127const float D3D11_DEFAULT_BLEND_FACTOR_ALPHA = 1.0;
128const float D3D11_DEFAULT_BLEND_FACTOR_BLUE = 1.0;
129const float D3D11_DEFAULT_BLEND_FACTOR_GREEN = 1.0;
130const float D3D11_DEFAULT_BLEND_FACTOR_RED = 1.0;
131const float D3D11_DEFAULT_BORDER_COLOR_COMPONENT = 0.0;
132const unsigned int D3D11_DEFAULT_DEPTH_BIAS = 0;
133const float D3D11_DEFAULT_DEPTH_BIAS_CLAMP = 0.0;
134const unsigned int D3D11_DEFAULT_MAX_ANISOTROPY = 16;
135const float D3D11_DEFAULT_MIP_LOD_BIAS = 0.0;
136const unsigned int D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0;
137const unsigned int D3D11_DEFAULT_SAMPLE_MASK = 0xffffffff;
138const unsigned int D3D11_DEFAULT_SCISSOR_ENDX = 0;
139const unsigned int D3D11_DEFAULT_SCISSOR_ENDY = 0;
140const unsigned int D3D11_DEFAULT_SCISSOR_STARTX = 0;
141const unsigned int D3D11_DEFAULT_SCISSOR_STARTY = 0;
142const float D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS = 0.0;
143const unsigned int D3D11_DEFAULT_STENCIL_READ_MASK = 0xff;
144const unsigned int D3D11_DEFAULT_STENCIL_REFERENCE = 0;
145const unsigned int D3D11_DEFAULT_STENCIL_WRITE_MASK = 0xff;
146const unsigned int D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0;
147const unsigned int D3D11_DEFAULT_VIEWPORT_HEIGHT = 0;
148const float D3D11_DEFAULT_VIEWPORT_MAX_DEPTH = 0.0;
149const float D3D11_DEFAULT_VIEWPORT_MIN_DEPTH = 0.0;
150const unsigned int D3D11_DEFAULT_VIEWPORT_TOPLEFTX = 0;
151const unsigned int D3D11_DEFAULT_VIEWPORT_TOPLEFTY = 0;
152const unsigned int D3D11_DEFAULT_VIEWPORT_WIDTH = 0;
153const unsigned int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = 32;
154const unsigned int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS = 4;
155const unsigned int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT = 32;
156const unsigned int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS = 1;
157const unsigned int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST = 2;
158const unsigned int D3D11_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = 3968;
159const unsigned int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT = 32;
160const unsigned int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS = 3;
161const unsigned int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT = 1;
162const unsigned int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS = 1;
163const unsigned int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST = 2;
164const unsigned int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = 32;
165const unsigned int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = 4;
166const unsigned int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT = 32;
167const unsigned int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = 1;
168const unsigned int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = 2;
169const unsigned int D3D11_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
170const unsigned int D3D11_DS_OUTPUT_REGISTER_COMPONENTS = 4;
171const unsigned int D3D11_DS_OUTPUT_REGISTER_COUNT = 32;
172const unsigned int D3D11_FLOAT16_FUSED_TOLERANCE_IN_ULP = 0.6;
173const float D3D11_FLOAT32_MAX = 3.402823466e+38;
174const float D3D11_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = 0.6;
175const float D3D11_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR = 2.4;
176const float D3D11_FLOAT_TO_SRGB_EXPONENT_NUMERATOR = 1.0;
177const float D3D11_FLOAT_TO_SRGB_OFFSET = 0.055;
178const float D3D11_FLOAT_TO_SRGB_SCALE_1 = 12.92;
179const float D3D11_FLOAT_TO_SRGB_SCALE_2 = 1.055;
180const float D3D11_FLOAT_TO_SRGB_THRESHOLD = 0.0031308;
181const float D3D11_FTOI_INSTRUCTION_MAX_INPUT = 2147483647.999;
182const float D3D11_FTOI_INSTRUCTION_MIN_INPUT = -2147483648.999;
183const float D3D11_FTOU_INSTRUCTION_MAX_INPUT = 4294967295.999;
184const float D3D11_FTOU_INSTRUCTION_MIN_INPUT = 0.0;
185const unsigned int D3D11_GS_INPUT_INSTANCE_ID_READ_PORTS = 1;
186const unsigned int D3D11_GS_INPUT_INSTANCE_ID_READS_PER_INST = 2;
187const unsigned int D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
188const unsigned int D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS = 1;
189const unsigned int D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COUNT = 1;
190const unsigned int D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT = 32;
191const unsigned int D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS = 1;
192const unsigned int D3D11_GS_INPUT_PRIM_CONST_REGISTER_COUNT = 1;
193const unsigned int D3D11_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS = 1;
194const unsigned int D3D11_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST = 2;
195const unsigned int D3D11_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
196const unsigned int D3D11_GS_INPUT_REGISTER_COMPONENTS = 4;
197const unsigned int D3D11_GS_INPUT_REGISTER_COUNT = 32;
198const unsigned int D3D11_GS_INPUT_REGISTER_READ_PORTS = 1;
199const unsigned int D3D11_GS_INPUT_REGISTER_READS_PER_INST = 2;
200const unsigned int D3D11_GS_INPUT_REGISTER_VERTICES = 32;
201const unsigned int D3D11_GS_MAX_INSTANCE_COUNT = 32;
202const unsigned int D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES = 1024;
203const unsigned int D3D11_GS_OUTPUT_ELEMENTS = 32;
204const unsigned int D3D11_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
205const unsigned int D3D11_GS_OUTPUT_REGISTER_COMPONENTS = 4;
206const unsigned int D3D11_GS_OUTPUT_REGISTER_COUNT = 32;
207const unsigned int D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT = 32;
208const unsigned int D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT = 32;
209const unsigned int D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = 32;
210const unsigned int D3D11_HS_CONTROL_POINT_REGISTER_COMPONENTS = 4;
211const unsigned int D3D11_HS_CONTROL_POINT_REGISTER_READ_PORTS = 1;
212const unsigned int D3D11_HS_CONTROL_POINT_REGISTER_READS_PER_INST = 2;
213const unsigned int D3D11_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND = 0xffffffff;
214const unsigned int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
215const unsigned int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS = 1;
216const unsigned int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT = 1;
217const unsigned int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS = 1;
218const unsigned int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST = 2;
219const unsigned int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
220const unsigned int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS = 1;
221const unsigned int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT = 1;
222const unsigned int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS = 1;
223const unsigned int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST = 2;
224const unsigned int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
225const unsigned int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS = 1;
226const unsigned int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT = 1;
227const unsigned int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS = 1;
228const unsigned int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST = 2;
229const unsigned int D3D11_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND = 0xffffffff;
230const float D3D11_HS_MAXTESSFACTOR_LOWER_BOUND = 1.0;
231const float D3D11_HS_MAXTESSFACTOR_UPPER_BOUND = 64.0;
232const unsigned int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
233const unsigned int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS = 1;
234const unsigned int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT = 1;
235const unsigned int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS = 1;
236const unsigned int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST = 2;
237const unsigned int D3D11_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = 3968;
238const unsigned int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = 32;
239const unsigned int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = 4;
240const unsigned int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT = 32;
241const unsigned int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = 1;
242const unsigned int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = 2;
243const unsigned int D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = 0;
244const unsigned int D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY = 0;
245const unsigned int D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = 0;
246const unsigned int D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = 1;
247const unsigned int D3D11_IA_INSTANCE_ID_BIT_COUNT = 32;
248const unsigned int D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT = 32;
249const unsigned int D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT = 32;
250const unsigned int D3D11_IA_PRIMITIVE_ID_BIT_COUNT = 32;
251const unsigned int D3D11_IA_VERTEX_ID_BIT_COUNT = 32;
252const unsigned int D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32;
253const unsigned int D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 32;
254const unsigned int D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128;
255const unsigned int D3D11_INTEGER_DIVIDE_BY_ZERO_QUOTIENT = 0xffffffff;
256const unsigned int D3D11_INTEGER_DIVIDE_BY_ZERO_REMAINDER = 0xffffffff;
257const unsigned int D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL = 0xffffffff;
258const unsigned int D3D11_KEEP_UNORDERED_ACCESS_VIEWS = 0xffffffff;
259const float D3D11_LINEAR_GAMMA = 1.0;
260const unsigned int D3D11_MAJOR_VERSION = 11;
261const float D3D11_MAX_BORDER_COLOR_COMPONENT = 1.0;
262const float D3D11_MAX_DEPTH = 1.0;
263const unsigned int D3D11_MAX_MAXANISOTROPY = 16;
264const unsigned int D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT = 32;
265const float D3D11_MAX_POSITION_VALUE = 3.402823466e+34;
266const unsigned int D3D11_MAX_TEXTURE_DIMENSION_2_TO_EXP = 17;
267const float D3D11_MIN_BORDER_COLOR_COMPONENT = 0.0;
268const float D3D11_MIN_DEPTH = 0.0;
269const unsigned int D3D11_MIN_MAXANISOTROPY = 0;
270const unsigned int D3D11_MINOR_VERSION = 0;
271const float D3D11_MIP_LOD_BIAS_MAX = 15.99;
272const float D3D11_MIP_LOD_BIAS_MIN = -16.0;
273const unsigned int D3D11_MIP_LOD_FRACTIONAL_BIT_COUNT = 8;
274const unsigned int D3D11_MIP_LOD_RANGE_BIT_COUNT = 8;
275const float D3D11_MULTISAMPLE_ANTIALIAS_LINE_WIDTH = 1.4;
276const unsigned int D3D11_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT = 0;
277const unsigned int D3D11_PIXEL_ADDRESS_RANGE_BIT_COUNT = 15;
278const unsigned int D3D11_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = 16;
279const unsigned int D3D11_PS_CS_UAV_REGISTER_COMPONENTS = 1;
280const unsigned int D3D11_PS_CS_UAV_REGISTER_COUNT = 8;
281const unsigned int D3D11_PS_CS_UAV_REGISTER_READ_PORTS = 1;
282const unsigned int D3D11_PS_CS_UAV_REGISTER_READS_PER_INST = 1;
283const unsigned int D3D11_PS_FRONTFACING_DEFAULT_VALUE = 0xffffffff;
284const unsigned int D3D11_PS_FRONTFACING_FALSE_VALUE = 0;
285const unsigned int D3D11_PS_FRONTFACING_TRUE_VALUE = 0xffffffff;
286const unsigned int D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
287const unsigned int D3D11_PS_INPUT_REGISTER_COMPONENTS = 4;
288const unsigned int D3D11_PS_INPUT_REGISTER_COUNT = 32;
289const unsigned int D3D11_PS_INPUT_REGISTER_READ_PORTS = 1;
290const unsigned int D3D11_PS_INPUT_REGISTER_READS_PER_INST = 2;
291const float D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.0;
292const unsigned int D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = 32;
293const unsigned int D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = 1;
294const unsigned int D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT = 1;
295const unsigned int D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32;
296const unsigned int D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS = 1;
297const unsigned int D3D11_PS_OUTPUT_MASK_REGISTER_COUNT = 1;
298const unsigned int D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
299const unsigned int D3D11_PS_OUTPUT_REGISTER_COMPONENTS = 4;
300const unsigned int D3D11_PS_OUTPUT_REGISTER_COUNT = 8;
301const float D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.5;
302const unsigned int D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT = 16;
303const unsigned int D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE = 4096;
304const unsigned int D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27;
305const unsigned int D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
306const unsigned int D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE = 4096;
307const unsigned int D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 32;
308const unsigned int D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = 32;
309const unsigned int D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = 16384;
310const unsigned int D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = 1024;
311const unsigned int D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
312const unsigned int D3D11_REQ_MAXANISOTROPY = 16;
313const unsigned int D3D11_REQ_MIP_LEVELS = 15;
314const unsigned int D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = 2048;
315const unsigned int D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE = 4096;
316const unsigned int D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = 16384;
317const unsigned int D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM = 128;
318const float D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM = 0.25;
319const unsigned int D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP = 20;
320const unsigned int D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE = 4096;
321const unsigned int D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 2048;
322const unsigned int D3D11_REQ_TEXTURE1D_U_DIMENSION = 16384;
323const unsigned int D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 2048;
324const unsigned int D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION = 16384;
325const unsigned int D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048;
326const unsigned int D3D11_REQ_TEXTURECUBE_DIMENSION = 16384;
327const unsigned int D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = 0;
328const unsigned int D3D11_SHADER_MAJOR_VERSION = 5;
329const unsigned int D3D11_SHADER_MAX_INSTANCES = 65535;
330const unsigned int D3D11_SHADER_MAX_INTERFACE_CALL_SITES = 4096;
331const unsigned int D3D11_SHADER_MAX_INTERFACES = 253;
332const unsigned int D3D11_SHADER_MAX_TYPES = 65535;
333const unsigned int D3D11_SHADER_MINOR_VERSION = 0;
334const unsigned int D3D11_SHIFT_INSTRUCTION_PAD_VALUE = 0;
335const unsigned int D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5;
336const unsigned int D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT = 8;
337const unsigned int D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048;
338const unsigned int D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 512;
339const unsigned int D3D11_SO_BUFFER_SLOT_COUNT = 4;
340const unsigned int D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP = 0xffffffff;
341const unsigned int D3D11_SO_NO_RASTERIZED_STREAM = 0xffffffff;
342const unsigned int D3D11_SO_OUTPUT_COMPONENT_COUNT = 128;
343const unsigned int D3D11_SO_STREAM_COUNT = 4;
344const unsigned int D3D11_SPEC_DATE_DAY = 04;
345const unsigned int D3D11_SPEC_DATE_MONTH = 06;
346const unsigned int D3D11_SPEC_DATE_YEAR = 2009;
347const unsigned int D3D11_SPEC_VERSION = 1.0;
348const float D3D11_SRGB_GAMMA = 2.2;
349const float D3D11_SRGB_TO_FLOAT_DENOMINATOR_1 = 12.92;
350const float D3D11_SRGB_TO_FLOAT_DENOMINATOR_2 = 1.055;
351const float D3D11_SRGB_TO_FLOAT_EXPONENT = 2.4;
352const float D3D11_SRGB_TO_FLOAT_OFFSET = 0.055;
353const float D3D11_SRGB_TO_FLOAT_THRESHOLD = 0.04045;
354const float D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP = 0.5;
355const unsigned int D3D11_STANDARD_COMPONENT_BIT_COUNT = 32;
356const unsigned int D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = 64;
357const unsigned int D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4;
358const unsigned int D3D11_STANDARD_PIXEL_COMPONENT_COUNT = 128;
359const unsigned int D3D11_STANDARD_PIXEL_ELEMENT_COUNT = 32;
360const unsigned int D3D11_STANDARD_VECTOR_SIZE = 4;
361const unsigned int D3D11_STANDARD_VERTEX_ELEMENT_COUNT = 32;
362const unsigned int D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = 64;
363const unsigned int D3D11_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8;
364const unsigned int D3D11_SUBTEXEL_FRACTIONAL_BIT_COUNT = 8;
365const unsigned int D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR = 64;
366const unsigned int D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR = 64;
367const unsigned int D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR = 63;
368const unsigned int D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR = 64;
369const unsigned int D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR = 2;
370const unsigned int D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR = 1;
371const unsigned int D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR = 1;
372const unsigned int D3D11_TEXEL_ADDRESS_RANGE_BIT_COUNT = 16;
373const unsigned int D3D11_UNBOUND_MEMORY_ACCESS_RESULT = 0;
374const unsigned int D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = 15;
375const unsigned int D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16;
376const unsigned int D3D11_VIEWPORT_BOUNDS_MAX = 32767;
377const int D3D11_VIEWPORT_BOUNDS_MIN = -32768;
378const unsigned int D3D11_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
379const unsigned int D3D11_VS_INPUT_REGISTER_COMPONENTS = 4;
380const unsigned int D3D11_VS_INPUT_REGISTER_COUNT = 32;
381const unsigned int D3D11_VS_INPUT_REGISTER_READ_PORTS = 1;
382const unsigned int D3D11_VS_INPUT_REGISTER_READS_PER_INST = 2;
383const unsigned int D3D11_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
384const unsigned int D3D11_VS_OUTPUT_REGISTER_COMPONENTS = 4;
385const unsigned int D3D11_VS_OUTPUT_REGISTER_COUNT = 32;
386const unsigned int D3D11_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT = 10;
387const unsigned int D3D11_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 25;
388const unsigned int D3D11_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP = 25;
389cpp_quote("#endif")
390
391const unsigned int _FACD3D11 = 0x87C;
392const unsigned int _FACD3D11DEBUG = _FACD3D11 + 1;
393
394cpp_quote("#define MAKE_D3D11_HRESULT(c) MAKE_HRESULT(1, _FACD3D11, (c))")
395cpp_quote("#define MAKE_D3D11_STATUS(c) MAKE_HRESULT(0, _FACD3D11, (c))")
396cpp_quote("#define D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS MAKE_D3D11_HRESULT(1)")
397cpp_quote("#define D3D11_ERROR_FILE_NOT_FOUND MAKE_D3D11_HRESULT(2)")
398cpp_quote("#define D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS MAKE_D3D11_HRESULT(3)")
399cpp_quote("#define D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD MAKE_D3D11_HRESULT(4)")
400
401typedef enum D3D11_INPUT_CLASSIFICATION
402{
403	D3D11_INPUT_PER_VERTEX_DATA,
404	D3D11_INPUT_PER_INSTANCE_DATA
405} D3D11_INPUT_CLASSIFICATION;
406
407const unsigned int D3D11_APPEND_ALIGNED_ELEMENT = 0xffffffff;
408
409typedef struct D3D11_INPUT_ELEMENT_DESC
410{
411	LPCSTR SemanticName;
412	UINT SemanticIndex;
413	DXGI_FORMAT Format;
414	UINT InputSlot;
415	UINT AlignedByteOffset;
416	D3D11_INPUT_CLASSIFICATION InputSlotClass;
417	UINT InstanceDataStepRate;
418} D3D11_INPUT_ELEMENT_DESC;
419
420typedef enum D3D11_FILL_MODE
421{
422	D3D11_FILL_WIREFRAME = 2,
423	D3D11_FILL_SOLID = 3
424} D3D11_FILL_MODE;
425
426typedef D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY;
427
428typedef D3D_PRIMITIVE D3D11_PRIMITIVE;
429
430typedef enum D3D11_CULL_MODE
431{
432	D3D11_CULL_NONE = 1,
433	D3D11_CULL_FRONT = 2,
434	D3D11_CULL_BACK = 3
435} D3D11_CULL_MODE;
436
437typedef struct D3D11_SO_DECLARATION_ENTRY
438{
439	UINT Stream;
440	LPCSTR SemanticName;
441	UINT SemanticIndex;
442	BYTE StartComponent;
443	BYTE ComponentCount;
444	BYTE OutputSlot;
445} D3D11_SO_DECLARATION_ENTRY;
446
447typedef struct D3D11_VIEWPORT
448{
449	FLOAT TopLeftX;
450	FLOAT TopLeftY;
451	FLOAT Width;
452	FLOAT Height;
453	FLOAT MinDepth;
454	FLOAT MaxDepth;
455} D3D11_VIEWPORT;
456
457typedef enum D3D11_RESOURCE_DIMENSION
458{
459	D3D11_RESOURCE_DIMENSION_UNKNOWN,
460	D3D11_RESOURCE_DIMENSION_BUFFER,
461	D3D11_RESOURCE_DIMENSION_TEXTURE1D,
462	D3D11_RESOURCE_DIMENSION_TEXTURE2D,
463	D3D11_RESOURCE_DIMENSION_TEXTURE3D,
464} D3D11_RESOURCE_DIMENSION;
465
466typedef D3D_SRV_DIMENSION D3D11_SRV_DIMENSION;
467
468typedef enum D3D11_DSV_DIMENSION
469{
470	D3D11_DSV_DIMENSION_UNKNOWN,
471	D3D11_DSV_DIMENSION_TEXTURE1D,
472	D3D11_DSV_DIMENSION_TEXTURE1DARRAY,
473	D3D11_DSV_DIMENSION_TEXTURE2D,
474	D3D11_DSV_DIMENSION_TEXTURE2DARRAY,
475	D3D11_DSV_DIMENSION_TEXTURE2DMS,
476	D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY,
477} D3D11_DSV_DIMENSION;
478
479
480typedef enum D3D11_RTV_DIMENSION
481{
482	D3D11_RTV_DIMENSION_UNKNOWN,
483	D3D11_RTV_DIMENSION_BUFFER,
484	D3D11_RTV_DIMENSION_TEXTURE1D,
485	D3D11_RTV_DIMENSION_TEXTURE1DARRAY,
486	D3D11_RTV_DIMENSION_TEXTURE2D,
487	D3D11_RTV_DIMENSION_TEXTURE2DARRAY,
488	D3D11_RTV_DIMENSION_TEXTURE2DMS,
489	D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY,
490	D3D11_RTV_DIMENSION_TEXTURE3D
491} D3D11_RTV_DIMENSION;
492
493typedef enum D3D11_UAV_DIMENSION
494{
495	D3D11_UAV_DIMENSION_UNKNOWN,
496	D3D11_UAV_DIMENSION_BUFFER,
497	D3D11_UAV_DIMENSION_TEXTURE1D,
498	D3D11_UAV_DIMENSION_TEXTURE1DARRAY,
499	D3D11_UAV_DIMENSION_TEXTURE2D,
500	D3D11_UAV_DIMENSION_TEXTURE2DARRAY,
501	D3D11_UAV_DIMENSION_TEXTURE3D = 8
502} D3D11_UAV_DIMENSION;
503
504typedef enum D3D11_USAGE
505{
506	D3D11_USAGE_DEFAULT,
507	D3D11_USAGE_IMMUTABLE,
508	D3D11_USAGE_DYNAMIC,
509	D3D11_USAGE_STAGING
510} D3D11_USAGE;
511
512typedef enum D3D11_BIND_FLAG
513{
514	D3D11_BIND_VERTEX_BUFFER = 1,
515	D3D11_BIND_INDEX_BUFFER = 2,
516	D3D11_BIND_CONSTANT_BUFFER = 4,
517	D3D11_BIND_SHADER_RESOURCE = 8,
518	D3D11_BIND_STREAM_OUTPUT = 0x10,
519	D3D11_BIND_RENDER_TARGET = 0x20,
520	D3D11_BIND_DEPTH_STENCIL = 0x40,
521	D3D11_BIND_UNORDERED_ACCESS = 0x80
522} D3D11_BIND_FLAG;
523
524typedef enum D3D11_CPU_ACCESS_FLAG
525{
526	D3D11_CPU_ACCESS_WRITE = 0x10000,
527	D3D11_CPU_ACCESS_READ = 0x20000
528} D3D11_CPU_ACCESS_FLAG;
529
530typedef enum D3D11_RESOURCE_MISC_FLAG
531{
532	D3D11_RESOURCE_MISC_GENERATE_MIPS = 1,
533	D3D11_RESOURCE_MISC_SHARED = 2,
534	D3D11_RESOURCE_MISC_TEXTURECUBE = 4,
535	D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10,
536	D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20,
537	D3D11_RESOURCE_MISC_BUFFER_STRUCTURED	= 0x40,
538	D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80,
539	D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100,
540	D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200
541} D3D11_RESOURCE_MISC_FLAG;
542
543typedef enum D3D11_MAP
544{
545	D3D11_MAP_READ = 1,
546	D3D11_MAP_WRITE,
547	D3D11_MAP_READ_WRITE,
548	D3D11_MAP_WRITE_DISCARD,
549	D3D11_MAP_WRITE_NO_OVERWRITE
550} D3D11_MAP;
551
552typedef enum D3D11_MAP_FLAG
553{
554	D3D11_MAP_FLAG_DO_NOT_WAIT = 0x100000
555} D3D11_MAP_FLAG;
556
557typedef enum D3D11_RAISE_FLAG
558{
559	D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 1
560} D3D11_RAISE_FLAG;
561
562typedef
563enum D3D11_CLEAR_FLAG
564{
565	D3D11_CLEAR_DEPTH = 1,
566	D3D11_CLEAR_STENCIL = 2
567} D3D11_CLEAR_FLAG;
568
569typedef RECT D3D11_RECT;
570
571typedef struct D3D11_BOX
572{
573	UINT left;
574	UINT top;
575	UINT front;
576	UINT right;
577	UINT bottom;
578	UINT back;
579} D3D11_BOX;
580
581typedef enum D3D11_COMPARISON_FUNC
582{
583	D3D11_COMPARISON_NEVER = 1,
584	D3D11_COMPARISON_LESS,
585	D3D11_COMPARISON_EQUAL,
586	D3D11_COMPARISON_LESS_EQUAL,
587	D3D11_COMPARISON_GREATER,
588	D3D11_COMPARISON_NOT_EQUAL,
589	D3D11_COMPARISON_GREATER_EQUAL,
590	D3D11_COMPARISON_ALWAYS
591} D3D11_COMPARISON_FUNC;
592
593typedef enum D3D11_DEPTH_WRITE_MASK
594{
595	D3D11_DEPTH_WRITE_MASK_ZERO,
596	D3D11_DEPTH_WRITE_MASK_ALL
597} D3D11_DEPTH_WRITE_MASK;
598
599typedef enum D3D11_STENCIL_OP
600{
601	D3D11_STENCIL_OP_KEEP = 1,
602	D3D11_STENCIL_OP_ZERO,
603	D3D11_STENCIL_OP_REPLACE,
604	D3D11_STENCIL_OP_INCR_SAT,
605	D3D11_STENCIL_OP_DECR_SAT,
606	D3D11_STENCIL_OP_INVERT,
607	D3D11_STENCIL_OP_INCR,
608	D3D11_STENCIL_OP_DECR
609} D3D11_STENCIL_OP;
610
611typedef struct D3D11_DEPTH_STENCILOP_DESC
612{
613	D3D11_STENCIL_OP StencilFailOp;
614	D3D11_STENCIL_OP StencilDepthFailOp;
615	D3D11_STENCIL_OP StencilPassOp;
616	D3D11_COMPARISON_FUNC StencilFunc;
617} D3D11_DEPTH_STENCILOP_DESC;
618
619typedef struct D3D11_DEPTH_STENCIL_DESC
620{
621	BOOL DepthEnable;
622	D3D11_DEPTH_WRITE_MASK DepthWriteMask;
623	D3D11_COMPARISON_FUNC DepthFunc;
624	BOOL StencilEnable;
625	UINT8 StencilReadMask;
626	UINT8 StencilWriteMask;
627	D3D11_DEPTH_STENCILOP_DESC FrontFace;
628	D3D11_DEPTH_STENCILOP_DESC BackFace;
629} D3D11_DEPTH_STENCIL_DESC;
630
631
632typedef enum D3D11_BLEND
633{
634	D3D11_BLEND_ZERO = 1,
635	D3D11_BLEND_ONE,
636	D3D11_BLEND_SRC_COLOR,
637	D3D11_BLEND_INV_SRC_COLOR,
638	D3D11_BLEND_SRC_ALPHA,
639	D3D11_BLEND_INV_SRC_ALPHA,
640	D3D11_BLEND_DEST_ALPHA,
641	D3D11_BLEND_INV_DEST_ALPHA,
642	D3D11_BLEND_DEST_COLOR,
643	D3D11_BLEND_INV_DEST_COLOR ,
644	D3D11_BLEND_SRC_ALPHA_SAT,
645
646	D3D11_BLEND_BLEND_FACTOR = 14,
647	D3D11_BLEND_INV_BLEND_FACTOR,
648	D3D11_BLEND_SRC1_COLOR,
649	D3D11_BLEND_INV_SRC1_COLOR ,
650	D3D11_BLEND_SRC1_ALPHA,
651	D3D11_BLEND_INV_SRC1_ALPHA
652} D3D11_BLEND;
653
654typedef enum D3D11_BLEND_OP
655{
656	D3D11_BLEND_OP_ADD = 1,
657	D3D11_BLEND_OP_SUBTRACT,
658	D3D11_BLEND_OP_REV_SUBTRACT,
659	D3D11_BLEND_OP_MIN,
660	D3D11_BLEND_OP_MAX
661} D3D11_BLEND_OP;
662
663typedef enum D3D11_COLOR_WRITE_ENABLE
664{
665	D3D11_COLOR_WRITE_ENABLE_RED = 1,
666	D3D11_COLOR_WRITE_ENABLE_GREEN = 2,
667	D3D11_COLOR_WRITE_ENABLE_BLUE = 4,
668	D3D11_COLOR_WRITE_ENABLE_ALPHA = 8,
669	D3D11_COLOR_WRITE_ENABLE_ALL = 0xf
670} D3D11_COLOR_WRITE_ENABLE;
671
672typedef struct D3D11_RENDER_TARGET_BLEND_DESC
673{
674	BOOL BlendEnable;
675	D3D11_BLEND SrcBlend;
676	D3D11_BLEND DestBlend;
677	D3D11_BLEND_OP BlendOp;
678	D3D11_BLEND SrcBlendAlpha;
679	D3D11_BLEND DestBlendAlpha;
680	D3D11_BLEND_OP BlendOpAlpha;
681	UINT8 RenderTargetWriteMask;
682} D3D11_RENDER_TARGET_BLEND_DESC;
683
684typedef struct D3D11_BLEND_DESC
685{
686	BOOL AlphaToCoverageEnable;
687	BOOL IndependentBlendEnable;
688	D3D11_RENDER_TARGET_BLEND_DESC RenderTarget[8];
689} D3D11_BLEND_DESC;
690
691typedef struct D3D11_RASTERIZER_DESC
692{
693	D3D11_FILL_MODE FillMode;
694	D3D11_CULL_MODE CullMode;
695	BOOL FrontCounterClockwise;
696	INT DepthBias;
697	FLOAT DepthBiasClamp;
698	FLOAT SlopeScaledDepthBias;
699	BOOL DepthClipEnable;
700	BOOL ScissorEnable;
701	BOOL MultisampleEnable;
702	BOOL AntialiasedLineEnable;
703} D3D11_RASTERIZER_DESC;
704
705typedef struct D3D11_SUBRESOURCE_DATA
706{
707	const void *pSysMem;
708	UINT SysMemPitch;
709	UINT SysMemSlicePitch;
710} D3D11_SUBRESOURCE_DATA;
711
712typedef struct D3D11_MAPPED_SUBRESOURCE
713{
714	void *pData;
715	UINT RowPitch;
716	UINT DepthPitch;
717} D3D11_MAPPED_SUBRESOURCE;
718
719typedef struct D3D11_BUFFER_DESC
720{
721	UINT ByteWidth;
722	D3D11_USAGE Usage;
723	UINT BindFlags;
724	UINT CPUAccessFlags;
725	UINT MiscFlags;
726	UINT StructureByteStride;
727} D3D11_BUFFER_DESC;
728
729typedef struct D3D11_TEXTURE1D_DESC
730{
731	UINT Width;
732	UINT MipLevels;
733	UINT ArraySize;
734	DXGI_FORMAT Format;
735	D3D11_USAGE Usage;
736	UINT BindFlags;
737	UINT CPUAccessFlags;
738	UINT MiscFlags;
739} D3D11_TEXTURE1D_DESC;
740
741typedef struct D3D11_TEXTURE2D_DESC
742{
743	UINT Width;
744	UINT Height;
745	UINT MipLevels;
746	UINT ArraySize;
747	DXGI_FORMAT Format;
748	DXGI_SAMPLE_DESC SampleDesc;
749	D3D11_USAGE Usage;
750	UINT BindFlags;
751	UINT CPUAccessFlags;
752	UINT MiscFlags;
753} D3D11_TEXTURE2D_DESC;
754
755typedef struct D3D11_TEXTURE3D_DESC
756{
757	UINT Width;
758	UINT Height;
759	UINT Depth;
760	UINT MipLevels;
761	DXGI_FORMAT Format;
762	D3D11_USAGE Usage;
763	UINT BindFlags;
764	UINT CPUAccessFlags;
765	UINT MiscFlags;
766} D3D11_TEXTURE3D_DESC;
767
768typedef enum D3D11_TEXTURECUBE_FACE
769{
770	D3D11_TEXTURECUBE_FACE_POSITIVE_X,
771	D3D11_TEXTURECUBE_FACE_NEGATIVE_X,
772	D3D11_TEXTURECUBE_FACE_POSITIVE_Y,
773	D3D11_TEXTURECUBE_FACE_NEGATIVE_Y,
774	D3D11_TEXTURECUBE_FACE_POSITIVE_Z,
775	D3D11_TEXTURECUBE_FACE_NEGATIVE_Z
776} D3D11_TEXTURECUBE_FACE;
777
778typedef struct D3D11_BUFFER_SRV
779{
780	union
781	{
782		UINT FirstElement;
783		UINT ElementOffset;
784	};
785	union
786	{
787		UINT NumElements;
788		UINT ElementWidth;
789	};
790} D3D11_BUFFER_SRV;
791
792typedef enum D3D11_BUFFEREX_SRV_FLAG
793{
794	D3D11_BUFFEREX_SRV_FLAG_RAW = 1
795} D3D11_BUFFEREX_SRV_FLAG;
796
797typedef struct D3D11_BUFFEREX_SRV
798{
799	UINT FirstElement;
800	UINT NumElements;
801	UINT Flags;
802} D3D11_BUFFEREX_SRV;
803
804typedef struct D3D11_TEX1D_SRV
805{
806	UINT MostDetailedMip;
807	UINT MipLevels;
808} D3D11_TEX1D_SRV;
809
810typedef struct D3D11_TEX1D_ARRAY_SRV
811{
812	UINT MostDetailedMip;
813	UINT MipLevels;
814	UINT FirstArraySlice;
815	UINT ArraySize;
816} D3D11_TEX1D_ARRAY_SRV;
817
818typedef struct D3D11_TEX2D_SRV
819{
820	UINT MostDetailedMip;
821	UINT MipLevels;
822} D3D11_TEX2D_SRV;
823
824typedef struct D3D11_TEX2D_ARRAY_SRV
825{
826	UINT MostDetailedMip;
827	UINT MipLevels;
828	UINT FirstArraySlice;
829	UINT ArraySize;
830} D3D11_TEX2D_ARRAY_SRV;
831
832typedef struct D3D11_TEX3D_SRV
833{
834	UINT MostDetailedMip;
835	UINT MipLevels;
836} D3D11_TEX3D_SRV;
837
838typedef struct D3D11_TEXCUBE_SRV
839{
840	UINT MostDetailedMip;
841	UINT MipLevels;
842} D3D11_TEXCUBE_SRV;
843
844typedef struct D3D11_TEXCUBE_ARRAY_SRV
845{
846	UINT MostDetailedMip;
847	UINT MipLevels;
848	UINT First2DArrayFace;
849	UINT NumCubes;
850} D3D11_TEXCUBE_ARRAY_SRV;
851
852typedef struct D3D11_TEX2DMS_SRV
853{
854	UINT UnusedField_NothingToDefine;
855} D3D11_TEX2DMS_SRV;
856
857typedef struct D3D11_TEX2DMS_ARRAY_SRV
858{
859	UINT FirstArraySlice;
860	UINT ArraySize;
861} D3D11_TEX2DMS_ARRAY_SRV;
862
863typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC
864{
865	DXGI_FORMAT Format;
866	D3D11_SRV_DIMENSION ViewDimension;
867	union
868	{
869		D3D11_BUFFER_SRV Buffer;
870		D3D11_TEX1D_SRV Texture1D;
871		D3D11_TEX1D_ARRAY_SRV Texture1DArray;
872		D3D11_TEX2D_SRV Texture2D;
873		D3D11_TEX2D_ARRAY_SRV Texture2DArray;
874		D3D11_TEX2DMS_SRV Texture2DMS;
875		D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray;
876		D3D11_TEX3D_SRV Texture3D;
877		D3D11_TEXCUBE_SRV TextureCube;
878		D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray;
879		D3D11_BUFFEREX_SRV BufferEx;
880	};
881} D3D11_SHADER_RESOURCE_VIEW_DESC;
882
883
884typedef struct D3D11_BUFFER_RTV
885{
886	union
887	{
888		UINT FirstElement;
889		UINT ElementOffset;
890	};
891	union
892	{
893		UINT NumElements;
894		UINT ElementWidth;
895	};
896} D3D11_BUFFER_RTV;
897
898typedef struct D3D11_TEX1D_RTV
899{
900	UINT MipSlice;
901} D3D11_TEX1D_RTV;
902
903typedef struct D3D11_TEX1D_ARRAY_RTV
904{
905	UINT MipSlice;
906	UINT FirstArraySlice;
907	UINT ArraySize;
908} D3D11_TEX1D_ARRAY_RTV;
909
910typedef struct D3D11_TEX2D_RTV
911{
912	UINT MipSlice;
913} D3D11_TEX2D_RTV;
914
915typedef struct D3D11_TEX2DMS_RTV
916{
917	UINT UnusedField_NothingToDefine;
918} D3D11_TEX2DMS_RTV;
919
920typedef struct D3D11_TEX2D_ARRAY_RTV
921{
922	UINT MipSlice;
923	UINT FirstArraySlice;
924	UINT ArraySize;
925} D3D11_TEX2D_ARRAY_RTV;
926
927typedef struct D3D11_TEX2DMS_ARRAY_RTV
928{
929	UINT FirstArraySlice;
930	UINT ArraySize;
931} D3D11_TEX2DMS_ARRAY_RTV;
932
933typedef struct D3D11_TEX3D_RTV
934{
935	UINT MipSlice;
936	UINT FirstWSlice;
937	UINT WSize;
938} D3D11_TEX3D_RTV;
939
940typedef struct D3D11_RENDER_TARGET_VIEW_DESC
941{
942	DXGI_FORMAT Format;
943	D3D11_RTV_DIMENSION ViewDimension;
944	union
945	{
946		D3D11_BUFFER_RTV Buffer;
947		D3D11_TEX1D_RTV Texture1D;
948		D3D11_TEX1D_ARRAY_RTV Texture1DArray;
949		D3D11_TEX2D_RTV Texture2D;
950		D3D11_TEX2D_ARRAY_RTV Texture2DArray;
951		D3D11_TEX2DMS_RTV Texture2DMS;
952		D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray;
953		D3D11_TEX3D_RTV Texture3D;
954	};
955} D3D11_RENDER_TARGET_VIEW_DESC;
956
957typedef struct D3D11_TEX1D_DSV
958{
959	UINT MipSlice;
960} D3D11_TEX1D_DSV;
961
962typedef struct D3D11_TEX1D_ARRAY_DSV
963{
964	UINT MipSlice;
965	UINT FirstArraySlice;
966	UINT ArraySize;
967} D3D11_TEX1D_ARRAY_DSV;
968
969typedef struct D3D11_TEX2D_DSV
970{
971	UINT MipSlice;
972} D3D11_TEX2D_DSV;
973
974typedef struct D3D11_TEX2D_ARRAY_DSV
975{
976	UINT MipSlice;
977	UINT FirstArraySlice;
978	UINT ArraySize;
979} D3D11_TEX2D_ARRAY_DSV;
980
981typedef struct D3D11_TEX2DMS_DSV
982{
983	UINT UnusedField_NothingToDefine;
984} D3D11_TEX2DMS_DSV;
985
986typedef struct D3D11_TEX2DMS_ARRAY_DSV
987{
988	UINT FirstArraySlice;
989	UINT ArraySize;
990} D3D11_TEX2DMS_ARRAY_DSV;
991
992typedef enum D3D11_DSV_FLAG
993{
994	D3D11_DSV_READ_ONLY_DEPTH = 1L,
995	D3D11_DSV_READ_ONLY_STENCIL = 2L
996} D3D11_DSV_FLAG;
997
998typedef struct D3D11_DEPTH_STENCIL_VIEW_DESC
999{
1000	DXGI_FORMAT Format;
1001	D3D11_DSV_DIMENSION ViewDimension;
1002	UINT Flags;
1003	union
1004	{
1005		D3D11_TEX1D_DSV Texture1D;
1006		D3D11_TEX1D_ARRAY_DSV Texture1DArray;
1007		D3D11_TEX2D_DSV Texture2D;
1008		D3D11_TEX2D_ARRAY_DSV Texture2DArray;
1009		D3D11_TEX2DMS_DSV Texture2DMS;
1010		D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray;
1011	};
1012} D3D11_DEPTH_STENCIL_VIEW_DESC;
1013
1014typedef enum D3D11_BUFFER_UAV_FLAG
1015{
1016	D3D11_BUFFER_UAV_FLAG_RAW = 1,
1017	D3D11_BUFFER_UAV_FLAG_APPEND = 2,
1018	D3D11_BUFFER_UAV_FLAG_COUNTER = 4
1019} D3D11_BUFFER_UAV_FLAG;
1020
1021typedef struct D3D11_BUFFER_UAV
1022{
1023	UINT FirstElement;
1024	UINT NumElements;
1025	UINT Flags;
1026} D3D11_BUFFER_UAV;
1027
1028typedef struct D3D11_TEX1D_UAV
1029{
1030	UINT MipSlice;
1031} D3D11_TEX1D_UAV;
1032
1033typedef struct D3D11_TEX1D_ARRAY_UAV
1034{
1035	UINT MipSlice;
1036	UINT FirstArraySlice;
1037	UINT ArraySize;
1038} D3D11_TEX1D_ARRAY_UAV;
1039
1040typedef struct D3D11_TEX2D_UAV
1041{
1042	UINT MipSlice;
1043} D3D11_TEX2D_UAV;
1044
1045typedef struct D3D11_TEX2D_ARRAY_UAV
1046{
1047	UINT MipSlice;
1048	UINT FirstArraySlice;
1049	UINT ArraySize;
1050} D3D11_TEX2D_ARRAY_UAV;
1051
1052typedef struct D3D11_TEX3D_UAV
1053{
1054	UINT MipSlice;
1055	UINT FirstWSlice;
1056	UINT WSize;
1057} D3D11_TEX3D_UAV;
1058
1059typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC
1060{
1061	DXGI_FORMAT Format;
1062	D3D11_UAV_DIMENSION ViewDimension;
1063	union
1064	{
1065		D3D11_BUFFER_UAV Buffer;
1066		D3D11_TEX1D_UAV Texture1D;
1067		D3D11_TEX1D_ARRAY_UAV Texture1DArray;
1068		D3D11_TEX2D_UAV Texture2D;
1069		D3D11_TEX2D_ARRAY_UAV Texture2DArray;
1070		D3D11_TEX3D_UAV Texture3D;
1071	};
1072} D3D11_UNORDERED_ACCESS_VIEW_DESC;
1073
1074typedef enum D3D11_FILTER
1075{
1076	D3D11_FILTER_MIN_MAG_MIP_POINT = 0,
1077	D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR = 1,
1078	D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 4,
1079	D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR = 5,
1080	D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
1081	D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
1082	D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
1083	D3D11_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
1084	D3D11_FILTER_ANISOTROPIC = 0x55,
1085	D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
1086	D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
1087	D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
1088	D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
1089	D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
1090	D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
1091	D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
1092	D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
1093	D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5
1094} D3D11_FILTER;
1095
1096typedef enum D3D11_FILTER_TYPE
1097{
1098	D3D11_FILTER_TYPE_POINT,
1099	D3D11_FILTER_TYPE_LINEAR
1100} D3D11_FILTER_TYPE;
1101
1102const unsigned int D3D11_FILTER_TYPE_MASK = 3;
1103const unsigned int D3D11_MIN_FILTER_SHIFT = 4;
1104const unsigned int D3D11_MAG_FILTER_SHIFT = 2;
1105const unsigned int D3D11_MIP_FILTER_SHIFT = 0;
1106const unsigned int D3D11_COMPARISON_FILTERING_BIT = 0x80;
1107const unsigned int D3D11_ANISOTROPIC_FILTERING_BIT = 0x40;
1108
1109cpp_quote("#define D3D11_ENCODE_BASIC_FILTER(min, mag, mip, comp) ((D3D11_FILTER) (((comp) ? D3D11_COMPARISON_FILTERING_BIT : 0 ) | (((min) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIN_FILTER_SHIFT ) | (((mag) & D3D11_FILTER_TYPE_MASK ) << D3D11_MAG_FILTER_SHIFT ) | (((mip) & D3D11_FILTER_TYPE_MASK) << D3D11_MIP_FILTER_SHIFT)))")
1110cpp_quote("#define D3D11_ENCODE_ANISOTROPIC_FILTER(comp) ((D3D11_FILTER)(D3D11_ANISOTROPIC_FILTERING_BIT | D3D11_ENCODE_BASIC_FILTER(D3D11_FILTER_TYPE_LINEAR, D3D11_FILTER_TYPE_LINEAR, D3D11_FILTER_TYPE_LINEAR, comp)))")
1111cpp_quote("#define D3D11_DECODE_MIN_FILTER(f) ((D3D11_FILTER_TYPE)(((f) >> D3D11_MIN_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))")
1112cpp_quote("#define D3D11_DECODE_MAG_FILTER(f) ((D3D11_FILTER_TYPE)(((f) >> D3D11_MAG_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))")
1113cpp_quote("#define D3D11_DECODE_MIP_FILTER(f) ((D3D11_FILTER_TYPE)(((f) >> D3D11_MIP_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))")
1114cpp_quote("#define D3D11_DECODE_IS_COMPARISON_FILTER(f) ((f) & D3D11_COMPARISON_FILTERING_BIT)")
1115cpp_quote("#define D3D11_DECODE_IS_ANISOTROPIC_FILTER(f) (((f) & D3D11_ANISOTROPIC_FILTERING_BIT) && (D3D11_DECODE_MIN_FILTER(f) == D3D11_FILTER_TYPE_LINEAR) && (D3D11_DECODE_MAG_FILTER(f) == D3D11_FILTER_TYPE_LINEAR) && (D3D11_DECODE_MIP_FILTER( f ) == D3D11_FILTER_TYPE_LINEAR))")
1116
1117typedef enum D3D11_TEXTURE_ADDRESS_MODE
1118{
1119	D3D11_TEXTURE_ADDRESS_WRAP = 1,
1120	D3D11_TEXTURE_ADDRESS_MIRROR = 2,
1121	D3D11_TEXTURE_ADDRESS_CLAMP = 3,
1122	D3D11_TEXTURE_ADDRESS_BORDER = 4,
1123	D3D11_TEXTURE_ADDRESS_MIRROR_ONCE = 5
1124} D3D11_TEXTURE_ADDRESS_MODE;
1125
1126typedef struct D3D11_SAMPLER_DESC
1127{
1128	D3D11_FILTER Filter;
1129	D3D11_TEXTURE_ADDRESS_MODE AddressU;
1130	D3D11_TEXTURE_ADDRESS_MODE AddressV;
1131	D3D11_TEXTURE_ADDRESS_MODE AddressW;
1132	FLOAT MipLODBias;
1133	UINT MaxAnisotropy;
1134	D3D11_COMPARISON_FUNC ComparisonFunc;
1135	FLOAT BorderColor[ 4 ];
1136	FLOAT MinLOD;
1137	FLOAT MaxLOD;
1138} D3D11_SAMPLER_DESC;
1139
1140typedef enum D3D11_FORMAT_SUPPORT
1141{
1142	D3D11_FORMAT_SUPPORT_BUFFER = 0x1,
1143	D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x2,
1144	D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x4,
1145	D3D11_FORMAT_SUPPORT_SO_BUFFER = 0x8,
1146	D3D11_FORMAT_SUPPORT_TEXTURE1D = 0x10,
1147	D3D11_FORMAT_SUPPORT_TEXTURE2D = 0x20,
1148	D3D11_FORMAT_SUPPORT_TEXTURE3D = 0x40,
1149	D3D11_FORMAT_SUPPORT_TEXTURECUBE = 0x80,
1150	D3D11_FORMAT_SUPPORT_SHADER_LOAD = 0x100,
1151	D3D11_FORMAT_SUPPORT_SHADER_SAMPLE = 0x200,
1152	D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x400,
1153	D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x800,
1154	D3D11_FORMAT_SUPPORT_MIP = 0x1000,
1155	D3D11_FORMAT_SUPPORT_MIP_AUTOGEN = 0x2000,
1156	D3D11_FORMAT_SUPPORT_RENDER_TARGET = 0x4000,
1157	D3D11_FORMAT_SUPPORT_BLENDABLE = 0x8000,
1158	D3D11_FORMAT_SUPPORT_DEPTH_STENCIL = 0x10000,
1159	D3D11_FORMAT_SUPPORT_CPU_LOCKABLE = 0x20000,
1160	D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x40000,
1161	D3D11_FORMAT_SUPPORT_DISPLAY = 0x80000,
1162	D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000,
1163	D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000,
1164	D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000,
1165	D3D11_FORMAT_SUPPORT_SHADER_GATHER = 0x800000,
1166	D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST = 0x1000000,
1167	D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
1168	D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON = 0x4000000
1169} D3D11_FORMAT_SUPPORT;
1170
1171typedef enum D3D11_FORMAT_SUPPORT2
1172{
1173	D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 1,
1174	D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 2,
1175	D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 4,
1176	D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 8,
1177	D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
1178	D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
1179	D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
1180	D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80
1181} D3D11_FORMAT_SUPPORT2;
1182
1183typedef enum D3D11_ASYNC_GETDATA_FLAG
1184{
1185	D3D11_ASYNC_GETDATA_DONOTFLUSH = 1
1186} D3D11_ASYNC_GETDATA_FLAG;
1187
1188typedef enum D3D11_QUERY
1189{
1190	D3D11_QUERY_EVENT,
1191	D3D11_QUERY_OCCLUSION,
1192	D3D11_QUERY_TIMESTAMP,
1193	D3D11_QUERY_TIMESTAMP_DISJOINT,
1194	D3D11_QUERY_PIPELINE_STATISTICS,
1195	D3D11_QUERY_OCCLUSION_PREDICATE,
1196	D3D11_QUERY_SO_STATISTICS,
1197	D3D11_QUERY_SO_OVERFLOW_PREDICATE,
1198	D3D11_QUERY_SO_STATISTICS_STREAM0,
1199	D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0,
1200	D3D11_QUERY_SO_STATISTICS_STREAM1,
1201	D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1,
1202	D3D11_QUERY_SO_STATISTICS_STREAM2,
1203	D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2,
1204	D3D11_QUERY_SO_STATISTICS_STREAM3,
1205	D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3,
1206} D3D11_QUERY;
1207
1208typedef enum D3D11_QUERY_MISC_FLAG
1209{
1210	D3D11_QUERY_MISC_PREDICATEHINT = 1
1211} D3D11_QUERY_MISC_FLAG;
1212
1213typedef struct D3D11_QUERY_DESC
1214{
1215	D3D11_QUERY Query;
1216	UINT MiscFlags;
1217} D3D11_QUERY_DESC;
1218
1219typedef struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT
1220{
1221	UINT64 Frequency;
1222	BOOL Disjoint;
1223} D3D11_QUERY_DATA_TIMESTAMP_DISJOINT;
1224
1225typedef struct D3D11_QUERY_DATA_PIPELINE_STATISTICS
1226{
1227	UINT64 IAVertices;
1228	UINT64 IAPrimitives;
1229	UINT64 VSInvocations;
1230	UINT64 GSInvocations;
1231	UINT64 GSPrimitives;
1232	UINT64 CInvocations;
1233	UINT64 CPrimitives;
1234	UINT64 PSInvocations;
1235	UINT64 HSInvocations;
1236	UINT64 DSInvocations;
1237	UINT64 CSInvocations;
1238} D3D11_QUERY_DATA_PIPELINE_STATISTICS;
1239
1240typedef struct D3D11_QUERY_DATA_SO_STATISTICS
1241{
1242	UINT64 NumPrimitivesWritten;
1243	UINT64 PrimitivesStorageNeeded;
1244} D3D11_QUERY_DATA_SO_STATISTICS;
1245
1246typedef enum D3D11_COUNTER
1247{
1248	D3D11_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000
1249} D3D11_COUNTER;
1250
1251typedef enum D3D11_COUNTER_TYPE
1252{
1253	D3D11_COUNTER_TYPE_FLOAT32,
1254	D3D11_COUNTER_TYPE_UINT16,
1255	D3D11_COUNTER_TYPE_UINT32,
1256	D3D11_COUNTER_TYPE_UINT64,
1257} D3D11_COUNTER_TYPE;
1258
1259typedef struct D3D11_COUNTER_DESC
1260{
1261	D3D11_COUNTER Counter;
1262	UINT MiscFlags;
1263} D3D11_COUNTER_DESC;
1264
1265typedef struct D3D11_COUNTER_INFO
1266{
1267	D3D11_COUNTER LastDeviceDependentCounter;
1268	UINT NumSimultaneousCounters;
1269	UINT8 NumDetectableParallelUnits;
1270} D3D11_COUNTER_INFO;
1271
1272typedef enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS
1273{
1274	D3D11_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff,
1275	D3D11_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe
1276} D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
1277
1278typedef enum D3D11_DEVICE_CONTEXT_TYPE
1279{
1280	D3D11_DEVICE_CONTEXT_IMMEDIATE,
1281	D3D11_DEVICE_CONTEXT_DEFERRED,
1282} D3D11_DEVICE_CONTEXT_TYPE;
1283
1284typedef struct D3D11_CLASS_INSTANCE_DESC
1285{
1286	UINT InstanceId;
1287	UINT InstanceIndex;
1288	UINT TypeId;
1289	UINT ConstantBuffer;
1290	UINT BaseConstantBufferOffset;
1291	UINT BaseTexture;
1292	UINT BaseSampler;
1293	BOOL Created;
1294} D3D11_CLASS_INSTANCE_DESC;
1295
1296typedef enum D3D11_FEATURE
1297{
1298	D3D11_FEATURE_THREADING,
1299	D3D11_FEATURE_DOUBLES,
1300	D3D11_FEATURE_FORMAT_SUPPORT,
1301	D3D11_FEATURE_FORMAT_SUPPORT2,
1302	D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS,
1303} D3D11_FEATURE;
1304
1305typedef struct D3D11_FEATURE_DATA_THREADING
1306{
1307	BOOL DriverConcurrentCreates;
1308	BOOL DriverCommandLists;
1309} D3D11_FEATURE_DATA_THREADING;
1310
1311typedef struct D3D11_FEATURE_DATA_DOUBLES
1312{
1313	BOOL DoublePrecisionFloatShaderOps;
1314} D3D11_FEATURE_DATA_DOUBLES;
1315
1316typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT
1317{
1318	DXGI_FORMAT InFormat;
1319	UINT OutFormatSupport;
1320} D3D11_FEATURE_DATA_FORMAT_SUPPORT;
1321
1322typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2
1323{
1324	DXGI_FORMAT InFormat;
1325	UINT OutFormatSupport2;
1326} D3D11_FEATURE_DATA_FORMAT_SUPPORT2;
1327
1328typedef struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS
1329{
1330	BOOL ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x;
1331} D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS;
1332
1333interface ID3D11Device;
1334
1335[object, local, uuid("1841e5c8-16b0-489b-bcc8-44cfb0d5deae")]
1336interface ID3D11DeviceChild : IUnknown {
1337	void GetDevice(
1338		[out] ID3D11Device **ppDevice
1339	);
1340
1341	HRESULT GetPrivateData(
1342		[in] REFGUID guid,
1343		[in, out] UINT *pDataSize,
1344		[out] void *pData
1345	);
1346
1347	HRESULT SetPrivateData(
1348		[in] REFGUID guid,
1349		[in] UINT DataSize,
1350		[in] const void *pData
1351	);
1352
1353	HRESULT SetPrivateDataInterface(
1354		[in] REFGUID guid,
1355		[in] const IUnknown *pData
1356	);
1357};
1358
1359[object, local, uuid("e4819ddc-4cf0-4025-bd26-5de82a3e07b7")]
1360interface ID3D11InputLayout : ID3D11DeviceChild
1361{
1362};
1363
1364[object, local, uuid("03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1")]
1365interface ID3D11DepthStencilState : ID3D11DeviceChild {
1366	void GetDesc(
1367		[out] D3D11_DEPTH_STENCIL_DESC *pDesc
1368	);
1369};
1370
1371[object, local, uuid("75b68faa-347d-4159-8f45-a0640f01cd9a")]
1372interface ID3D11BlendState : ID3D11DeviceChild {
1373	void GetDesc(
1374		[out] D3D11_BLEND_DESC *pDesc
1375	);
1376};
1377
1378[object, local, uuid("9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7")]
1379interface ID3D11RasterizerState : ID3D11DeviceChild {
1380	void GetDesc(
1381		[out] D3D11_RASTERIZER_DESC *pDesc
1382	);
1383};
1384
1385[object, local, uuid("da6fea51-564c-4487-9810-f0d0f9b4e3a5")]
1386interface ID3D11SamplerState : ID3D11DeviceChild
1387{
1388	void GetDesc(
1389		[out] D3D11_SAMPLER_DESC *pDesc
1390	);
1391
1392};
1393
1394[object, local, uuid("dc8e63f3-d12b-4952-b47b-5e45026a862d")]
1395interface ID3D11Resource : ID3D11DeviceChild {
1396	void GetType(
1397		[out] D3D11_RESOURCE_DIMENSION *pResourceDimension
1398	);
1399
1400	void SetEvictionPriority(
1401		[in] UINT EvictionPriority
1402	);
1403
1404	UINT GetEvictionPriority(
1405	);
1406};
1407
1408[object, local, uuid("48570b85-d1ee-4fcd-a250-eb350722b037")]
1409interface ID3D11Buffer : ID3D11Resource {
1410	void GetDesc(
1411		[out] D3D11_BUFFER_DESC *pDesc
1412	);
1413
1414};
1415
1416[object, local, uuid("f8fb5c27-c6b3-4f75-a4c8-439af2ef564c")]
1417interface ID3D11Texture1D : ID3D11Resource {
1418	void GetDesc(
1419		[out] D3D11_TEXTURE1D_DESC *pDesc
1420	);
1421};
1422
1423[object, local, uuid("6f15aaf2-d208-4e89-9ab4-489535d34f9c")]
1424interface ID3D11Texture2D : ID3D11Resource {
1425	void GetDesc(
1426		[out] D3D11_TEXTURE2D_DESC *pDesc
1427	);
1428};
1429
1430[object, local, uuid("037e866e-f56d-4357-a8af-9dabbe6e250e")]
1431interface ID3D11Texture3D : ID3D11Resource {
1432	void GetDesc(
1433		[out] D3D11_TEXTURE3D_DESC *pDesc
1434	);
1435};
1436
1437[object, local, uuid("839d1216-bb2e-412b-b7f4-a9dbebe08ed1")]
1438interface ID3D11View : ID3D11DeviceChild {
1439	void GetResource(
1440		[out] ID3D11Resource **ppResource
1441	);
1442
1443};
1444
1445[object, local, uuid("b0e06fe0-8192-4e1a-b1ca-36d7414710b2")]
1446interface ID3D11ShaderResourceView : ID3D11View {
1447	void GetDesc(
1448		[out] D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc
1449	);
1450};
1451
1452[object, local, uuid("dfdba067-0b8d-4865-875b-d7b4516cc164")]
1453interface ID3D11RenderTargetView : ID3D11View
1454{
1455	void GetDesc(
1456		[out] D3D11_RENDER_TARGET_VIEW_DESC *pDesc
1457	);
1458};
1459
1460[object, local, uuid("9fdac92a-1876-48c3-afad-25b94f84a9b6")]
1461interface ID3D11DepthStencilView : ID3D11View
1462{
1463	void GetDesc(
1464		[out] D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc
1465	);
1466};
1467
1468[object, local, uuid("28acf509-7f5c-48f6-8611-f316010a6380")]
1469interface ID3D11UnorderedAccessView : ID3D11View
1470{
1471	void GetDesc(
1472		[out] D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc
1473	);
1474};
1475
1476[object, local, uuid("3b301d64-d678-4289-8897-22f8928b72f3")]
1477interface ID3D11VertexShader : ID3D11DeviceChild
1478{
1479};
1480
1481[object, local, uuid("8e5c6061-628a-4c8e-8264-bbe45cb3d5dd")]
1482interface ID3D11HullShader : ID3D11DeviceChild
1483{
1484};
1485
1486[object, local, uuid("f582c508-0f36-490c-9977-31eece268cfa")]
1487interface ID3D11DomainShader : ID3D11DeviceChild
1488{
1489};
1490
1491
1492[object, local, uuid("38325b96-effb-4022-ba02-2e795b70275c")]
1493interface ID3D11GeometryShader : ID3D11DeviceChild
1494{
1495};
1496
1497[object, local, uuid("ea82e40d-51dc-4f33-93d4-db7c9125ae8c")]
1498interface ID3D11PixelShader : ID3D11DeviceChild
1499{
1500};
1501
1502[object, local, uuid("4f5b196e-c2bd-495e-bd01-1fded38e4969")]
1503interface ID3D11ComputeShader : ID3D11DeviceChild
1504{
1505};
1506
1507[object, local, uuid("4b35d0cd-1e15-4258-9c98-1b1333f6dd3b")]
1508interface ID3D11Asynchronous : ID3D11DeviceChild
1509{
1510	UINT GetDataSize();
1511};
1512
1513[object, local, uuid("d6c00747-87b7-425e-b84d-44d108560afd")]
1514interface ID3D11Query : ID3D11Asynchronous
1515{
1516	void GetDesc(
1517		[out] D3D11_QUERY_DESC *pDesc
1518	);
1519};
1520
1521[object, local, uuid("9eb576dd-9f77-4d86-81aa-8bab5fe490e2")]
1522interface ID3D11Predicate : ID3D11Query
1523{
1524};
1525
1526[object, local, uuid("6e8c49fb-a371-4770-b440-29086022b741")]
1527interface ID3D11Counter : ID3D11Asynchronous
1528{
1529	void GetDesc(
1530		[out] D3D11_COUNTER_DESC *pDesc
1531	);
1532};
1533
1534interface ID3D11ClassLinkage;
1535
1536[object, local, uuid("a6cd7faa-b0b7-4a2f-9436-8662a65797cb")]
1537interface ID3D11ClassInstance : ID3D11DeviceChild
1538{
1539	void GetClassLinkage(
1540		[out] ID3D11ClassLinkage **ppLinkage
1541	);
1542
1543	void GetDesc(
1544		[out] D3D11_CLASS_INSTANCE_DESC *pDesc
1545	);
1546
1547	void GetInstanceName(
1548		[out] LPSTR pInstanceName,
1549		[in, out] SIZE_T *pBufferLength
1550	);
1551
1552	void GetTypeName(
1553		[out] LPSTR pTypeName,
1554		[in, out] SIZE_T *pBufferLength
1555	);
1556};
1557
1558[object, local, uuid("ddf57cba-9543-46e4-a12b-f207a0fe7fed")]
1559interface ID3D11ClassLinkage : ID3D11DeviceChild
1560{
1561	HRESULT GetClassInstance(
1562		[in] LPCSTR pClassInstanceName,
1563		[in] UINT InstanceIndex,
1564		[out] ID3D11ClassInstance **ppInstance
1565	);
1566
1567	HRESULT CreateClassInstance(
1568		[in] LPCSTR pClassTypeName,
1569		[in] UINT ConstantBufferOffset,
1570		[in] UINT ConstantVectorOffset,
1571		[in] UINT TextureOffset,
1572		[in] UINT SamplerOffset,
1573		[out] ID3D11ClassInstance **ppInstance
1574	);
1575};
1576
1577[object, local, uuid("a24bc4d1-769e-43f7-8013-98ff566c18e2")]
1578interface ID3D11CommandList : ID3D11DeviceChild
1579{
1580	UINT GetContextFlags();
1581};
1582
1583interface ID3D11DeviceContext;
1584
1585[object, local, uuid("db6f6ddb-ac77-4e88-8253-819df9bbf140")]
1586interface ID3D11Device : IUnknown
1587{
1588	HRESULT CreateBuffer(
1589		[in] const D3D11_BUFFER_DESC *pDesc,
1590		[in] const D3D11_SUBRESOURCE_DATA *pInitialData,
1591		[out] ID3D11Buffer **ppBuffer
1592	);
1593
1594	HRESULT CreateTexture1D(
1595		[in] const D3D11_TEXTURE1D_DESC *pDesc,
1596		[in] const D3D11_SUBRESOURCE_DATA *pInitialData,
1597		[out] ID3D11Texture1D **ppTexture1D
1598	);
1599
1600	HRESULT CreateTexture2D(
1601		[in] const D3D11_TEXTURE2D_DESC *pDesc,
1602		[in] const D3D11_SUBRESOURCE_DATA *pInitialData,
1603		[out] ID3D11Texture2D **ppTexture2D
1604	);
1605
1606	HRESULT CreateTexture3D(
1607		[in] const D3D11_TEXTURE3D_DESC *pDesc,
1608		[in] const D3D11_SUBRESOURCE_DATA *pInitialData,
1609		[out] ID3D11Texture3D **ppTexture3D
1610	);
1611
1612	HRESULT CreateShaderResourceView(
1613		[in] ID3D11Resource *pResource,
1614		[in] const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
1615		[out] ID3D11ShaderResourceView **ppSRView
1616	);
1617
1618	HRESULT CreateUnorderedAccessView(
1619		[in] ID3D11Resource *pResource,
1620		[in] const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
1621		[out] ID3D11UnorderedAccessView **ppUAView
1622	);
1623
1624	HRESULT CreateRenderTargetView(
1625		[in] ID3D11Resource *pResource,
1626		[in] const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
1627		[out] ID3D11RenderTargetView **ppRTView
1628	);
1629
1630	HRESULT CreateDepthStencilView(
1631		[in] ID3D11Resource *pResource,
1632		[in] const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
1633		[out] ID3D11DepthStencilView **ppDepthStencilView
1634	);
1635
1636	HRESULT CreateInputLayout(
1637		[in] const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
1638		[in] UINT NumElements,
1639		[in] const void *pShaderBytecodeWithInputSignature,
1640		[in] SIZE_T BytecodeLength,
1641		[out] ID3D11InputLayout **ppInputLayout
1642	);
1643
1644	HRESULT CreateVertexShader(
1645		[in] const void *pShaderBytecode,
1646		[in] SIZE_T BytecodeLength,
1647		[in] ID3D11ClassLinkage *pClassLinkage,
1648		[out] ID3D11VertexShader **ppVertexShader
1649	);
1650
1651	HRESULT CreateGeometryShader(
1652		[in] const void *pShaderBytecode,
1653		[in] SIZE_T BytecodeLength,
1654		[in] ID3D11ClassLinkage *pClassLinkage,
1655		[out] ID3D11GeometryShader **ppGeometryShader
1656	);
1657
1658	HRESULT CreateGeometryShaderWithStreamOutput(
1659		[in] const void *pShaderBytecode,
1660		[in] SIZE_T BytecodeLength,
1661		[in] const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
1662		[in] UINT NumEntries,
1663		[in] const UINT *pBufferStrides,
1664		[in] UINT NumStrides,
1665		[in] UINT RasterizedStream,
1666		[in] ID3D11ClassLinkage *pClassLinkage,
1667		[out] ID3D11GeometryShader **ppGeometryShader
1668	);
1669
1670	HRESULT CreatePixelShader(
1671		[in] const void *pShaderBytecode,
1672		[in] SIZE_T BytecodeLength,
1673		[in] ID3D11ClassLinkage *pClassLinkage,
1674		[out] ID3D11PixelShader **ppPixelShader
1675	);
1676
1677	HRESULT CreateHullShader(
1678		[in] const void *pShaderBytecode,
1679		[in] SIZE_T BytecodeLength,
1680		[in] ID3D11ClassLinkage *pClassLinkage,
1681		[out] ID3D11HullShader **ppHullShader
1682	);
1683
1684	HRESULT CreateDomainShader(
1685		[in] const void *pShaderBytecode,
1686		[in] SIZE_T BytecodeLength,
1687		[in] ID3D11ClassLinkage *pClassLinkage,
1688		[out] ID3D11DomainShader **ppDomainShader
1689	);
1690
1691	HRESULT CreateComputeShader(
1692		[in] const void *pShaderBytecode,
1693		[in] SIZE_T BytecodeLength,
1694		[in] ID3D11ClassLinkage *pClassLinkage,
1695		[out] ID3D11ComputeShader **ppComputeShader
1696	);
1697
1698	HRESULT CreateClassLinkage(
1699		[out] ID3D11ClassLinkage **ppLinkage
1700	);
1701
1702	HRESULT CreateBlendState(
1703		[in] const D3D11_BLEND_DESC *pBlendStateDesc,
1704		[out] ID3D11BlendState **ppBlendState
1705	);
1706
1707	HRESULT CreateDepthStencilState(
1708		[in] const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
1709		[out] ID3D11DepthStencilState **ppDepthStencilState
1710	);
1711
1712	HRESULT CreateRasterizerState(
1713		[in] const D3D11_RASTERIZER_DESC *pRasterizerDesc,
1714		[out] ID3D11RasterizerState **ppRasterizerState
1715	);
1716
1717	HRESULT CreateSamplerState(
1718		[in] const D3D11_SAMPLER_DESC *pSamplerDesc,
1719		[out] ID3D11SamplerState **ppSamplerState
1720	);
1721
1722	HRESULT CreateQuery(
1723		[in] const D3D11_QUERY_DESC *pQueryDesc,
1724		[out] ID3D11Query **ppQuery
1725	);
1726
1727	HRESULT CreatePredicate(
1728		[in] const D3D11_QUERY_DESC *pPredicateDesc,
1729		[out] ID3D11Predicate **ppPredicate
1730	);
1731
1732	HRESULT CreateCounter(
1733		[in] const D3D11_COUNTER_DESC *pCounterDesc,
1734		[out] ID3D11Counter **ppCounter
1735	);
1736
1737	HRESULT CreateDeferredContext(
1738		[in] UINT ContextFlags,
1739		[out] ID3D11DeviceContext **ppDeferredContext
1740	);
1741
1742	HRESULT OpenSharedResource(
1743		[in] HANDLE hResource,
1744		[in] REFIID ReturnedInterface,
1745		[out] void **ppResource
1746	);
1747
1748	HRESULT CheckFormatSupport(
1749		[in] DXGI_FORMAT Format,
1750		[out] UINT *pFormatSupport
1751	);
1752
1753	HRESULT CheckMultisampleQualityLevels(
1754		[in] DXGI_FORMAT Format,
1755		[in] UINT SampleCount,
1756		[out] UINT *pNumQualityLevels
1757	);
1758
1759	void CheckCounterInfo(
1760		[out] D3D11_COUNTER_INFO *pCounterInfo
1761	);
1762
1763	HRESULT CheckCounter(
1764		[in] const D3D11_COUNTER_DESC *pDesc,
1765		[out] D3D11_COUNTER_TYPE *pType,
1766		[out] UINT *pActiveCounters,
1767		[out] LPSTR szName,
1768		[in, out, optional] UINT *pNameLength,
1769		[out] LPSTR szUnits,
1770		[in, out, optional] UINT *pUnitsLength,
1771		[out] LPSTR szDescription,
1772		[in, out, optional] UINT *pDescriptionLength
1773	);
1774
1775	HRESULT CheckFeatureSupport(
1776		[in] D3D11_FEATURE Feature,
1777		[out] void *pFeatureSupportData,
1778		[in] UINT FeatureSupportDataSize
1779	);
1780
1781	HRESULT GetPrivateData(
1782		[in] REFGUID guid,
1783		[in, out] UINT *pDataSize,
1784		[out] void *pData
1785	);
1786
1787	HRESULT SetPrivateData(
1788		[in] REFGUID guid,
1789		[in] UINT DataSize,
1790		[in] const void *pData
1791	);
1792
1793	HRESULT SetPrivateDataInterface(
1794		[in] REFGUID guid,
1795		[in] const IUnknown *pData
1796	);
1797
1798	D3D_FEATURE_LEVEL GetFeatureLevel();
1799
1800	UINT GetCreationFlags();
1801
1802	HRESULT GetDeviceRemovedReason();
1803
1804	void GetImmediateContext(
1805		[out] ID3D11DeviceContext **ppImmediateContext
1806	);
1807
1808	HRESULT SetExceptionMode(
1809		[in] UINT RaiseFlags
1810	);
1811
1812	UINT GetExceptionMode();
1813};
1814
1815[object, local, uuid("c0bfa96c-e089-44fb-8eaf-26f8796190da")]
1816interface ID3D11DeviceContext : ID3D11DeviceChild
1817{
1818	void VSSetConstantBuffers(
1819		[in] UINT StartSlot,
1820		[in] UINT NumBuffers,
1821		[in] ID3D11Buffer *const *ppConstantBuffers
1822	);
1823
1824	void PSSetShaderResources(
1825		[in] UINT StartSlot,
1826		[in] UINT NumViews,
1827		[in] ID3D11ShaderResourceView *const *ppShaderResourceViews
1828	);
1829
1830	void PSSetShader(
1831		[in] ID3D11PixelShader *pPixelShader,
1832		[in] ID3D11ClassInstance *const *ppClassInstances,
1833		[in] UINT NumClassInstances
1834	);
1835
1836	void PSSetSamplers(
1837		[in] UINT StartSlot,
1838		[in] UINT NumSamplers,
1839		[in] ID3D11SamplerState *const *ppSamplers
1840	);
1841
1842	void VSSetShader(
1843		[in] ID3D11VertexShader *pVertexShader,
1844		[in] ID3D11ClassInstance *const *ppClassInstances,
1845		[in] UINT NumClassInstances
1846	);
1847
1848	void DrawIndexed(
1849		[in] UINT IndexCount,
1850		[in] UINT StartIndexLocation,
1851		[in] INT BaseVertexLocation
1852	);
1853
1854	void Draw(
1855		[in] UINT VertexCount,
1856		[in] UINT StartVertexLocation
1857	);
1858
1859	HRESULT Map(
1860		[in] ID3D11Resource *pResource,
1861		[in] UINT Subresource,
1862		[in] D3D11_MAP MapType,
1863		[in] UINT MapFlags,
1864		[out] D3D11_MAPPED_SUBRESOURCE *pMappedResource
1865	);
1866
1867	void Unmap(
1868		[in] ID3D11Resource *pResource,
1869		[in] UINT Subresource
1870	);
1871
1872	void PSSetConstantBuffers(
1873		[in] UINT StartSlot,
1874		[in] UINT NumBuffers,
1875		[in] ID3D11Buffer *const *ppConstantBuffers
1876	);
1877
1878	void IASetInputLayout(
1879		[in] ID3D11InputLayout *pInputLayout
1880	);
1881
1882	void IASetVertexBuffers(
1883		[in] UINT StartSlot,
1884		[in] UINT NumBuffers,
1885		[in] ID3D11Buffer *const *ppVertexBuffers,
1886		[in] const UINT *pStrides,
1887		[in] const UINT *pOffsets
1888	);
1889
1890	void IASetIndexBuffer(
1891		[in] ID3D11Buffer *pIndexBuffer,
1892		[in] DXGI_FORMAT Format,
1893		[in] UINT Offset
1894	);
1895
1896	void DrawIndexedInstanced(
1897		[in] UINT IndexCountPerInstance,
1898		[in] UINT InstanceCount,
1899		[in] UINT StartIndexLocation,
1900		[in] INT BaseVertexLocation,
1901		[in] UINT StartInstanceLocation
1902	);
1903
1904	void DrawInstanced(
1905		[in] UINT VertexCountPerInstance,
1906		[in] UINT InstanceCount,
1907		[in] UINT StartVertexLocation,
1908		[in] UINT StartInstanceLocation
1909	);
1910
1911	void GSSetConstantBuffers(
1912		[in] UINT StartSlot,
1913		[in] UINT NumBuffers,
1914		[in] ID3D11Buffer *const *ppConstantBuffers
1915	);
1916
1917	void GSSetShader(
1918		[in] ID3D11GeometryShader *pShader,
1919		[in] ID3D11ClassInstance *const *ppClassInstances,
1920		[in] UINT NumClassInstances
1921	);
1922
1923	void IASetPrimitiveTopology(
1924		[in] D3D11_PRIMITIVE_TOPOLOGY Topology
1925	);
1926
1927	void VSSetShaderResources(
1928		[in] UINT StartSlot,
1929		[in] UINT NumViews,
1930		[in] ID3D11ShaderResourceView *const *ppShaderResourceViews
1931	);
1932
1933	void VSSetSamplers(
1934		[in] UINT StartSlot,
1935		[in] UINT NumSamplers,
1936		[in] ID3D11SamplerState *const *ppSamplers
1937	);
1938
1939	void Begin(
1940		[in] ID3D11Asynchronous *pAsync
1941	);
1942
1943	void End(
1944		[in] ID3D11Asynchronous *pAsync
1945	);
1946
1947	HRESULT GetData(
1948		[in] ID3D11Asynchronous *pAsync,
1949		[out] void *pData,
1950		[in] UINT DataSize,
1951		[in] UINT GetDataFlags
1952	);
1953
1954	void SetPredication(
1955		[in] ID3D11Predicate *pPredicate,
1956		[in] BOOL PredicateValue
1957	);
1958
1959	void GSSetShaderResources(
1960		[in] UINT StartSlot,
1961		[in] UINT NumViews,
1962		[in] ID3D11ShaderResourceView *const *ppShaderResourceViews
1963	);
1964
1965	void GSSetSamplers(
1966		[in] UINT StartSlot,
1967		[in] UINT NumSamplers,
1968		[in] ID3D11SamplerState *const *ppSamplers
1969	);
1970
1971	void OMSetRenderTargets(
1972		[in] UINT NumViews,
1973		[in] ID3D11RenderTargetView *const *ppRenderTargetViews,
1974		[in] ID3D11DepthStencilView *pDepthStencilView
1975	);
1976
1977	void OMSetRenderTargetsAndUnorderedAccessViews(
1978		[in] UINT NumRTVs,
1979		[in] ID3D11RenderTargetView *const *ppRenderTargetViews,
1980		[in] ID3D11DepthStencilView *pDepthStencilView,
1981		[in] UINT UAVStartSlot,
1982		[in] UINT NumUAVs,
1983		[in] ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
1984		[in] const UINT *pUAVInitialCounts
1985	);
1986
1987	void OMSetBlendState(
1988		[in] ID3D11BlendState *pBlendState,
1989		[in] const FLOAT BlendFactor[ 4 ],
1990		[in] UINT SampleMask
1991	);
1992
1993	void OMSetDepthStencilState(
1994		[in] ID3D11DepthStencilState *pDepthStencilState,
1995		[in] UINT StencilRef
1996	);
1997
1998	void SOSetTargets(
1999		[in] UINT NumBuffers,
2000		[in] ID3D11Buffer *const *ppSOTargets,
2001		[in] const UINT *pOffsets
2002	);
2003
2004	void DrawAuto(
2005	);
2006
2007	void DrawIndexedInstancedIndirect(
2008		[in] ID3D11Buffer *pBufferForArgs,
2009		[in] UINT AlignedByteOffsetForArgs
2010	);
2011
2012	void DrawInstancedIndirect(
2013		[in] ID3D11Buffer *pBufferForArgs,
2014		[in] UINT AlignedByteOffsetForArgs
2015	);
2016
2017	void Dispatch(
2018		[in] UINT ThreadGroupCountX,
2019		[in] UINT ThreadGroupCountY,
2020		[in] UINT ThreadGroupCountZ
2021	);
2022
2023	void DispatchIndirect(
2024		[in] ID3D11Buffer *pBufferForArgs,
2025		[in] UINT AlignedByteOffsetForArgs
2026	);
2027
2028	void RSSetState(
2029		[in] ID3D11RasterizerState *pRasterizerState
2030	);
2031
2032	void RSSetViewports(
2033		[in] UINT NumViewports,
2034		[in] const D3D11_VIEWPORT *pViewports
2035	);
2036
2037	void RSSetScissorRects(
2038		[in] UINT NumRects,
2039		[in] const D3D11_RECT *pRects
2040	);
2041
2042	void CopySubresourceRegion(
2043		[in] ID3D11Resource *pDstResource,
2044		[in] UINT DstSubresource,
2045		[in] UINT DstX,
2046		[in] UINT DstY,
2047		[in] UINT DstZ,
2048		[in] ID3D11Resource *pSrcResource,
2049		[in] UINT SrcSubresource,
2050		[in] const D3D11_BOX *pSrcBox
2051	);
2052
2053	void CopyResource(
2054		[in] ID3D11Resource *pDstResource,
2055		[in] ID3D11Resource *pSrcResource
2056	);
2057
2058	void UpdateSubresource(
2059		[in] ID3D11Resource *pDstResource,
2060		[in] UINT DstSubresource,
2061		[in] const D3D11_BOX *pDstBox,
2062		[in] const void *pSrcData,
2063		[in] UINT SrcRowPitch,
2064		[in] UINT SrcDepthPitch
2065	);
2066
2067	void CopyStructureCount(
2068		[in] ID3D11Buffer *pDstBuffer,
2069		[in] UINT DstAlignedByteOffset,
2070		[in] ID3D11UnorderedAccessView *pSrcView
2071	);
2072
2073	void ClearRenderTargetView(
2074		[in] ID3D11RenderTargetView *pRenderTargetView,
2075		[in] const FLOAT ColorRGBA[ 4 ]
2076	);
2077
2078	void ClearUnorderedAccessViewUint(
2079		[in] ID3D11UnorderedAccessView *pUnorderedAccessView,
2080		[in] const UINT Values[ 4 ]
2081	);
2082
2083	void ClearUnorderedAccessViewFloat(
2084		[in] ID3D11UnorderedAccessView *pUnorderedAccessView,
2085		[in] const FLOAT Values[ 4 ]
2086	);
2087
2088	void ClearDepthStencilView(
2089		[in] ID3D11DepthStencilView *pDepthStencilView,
2090		[in] UINT ClearFlags,
2091		[in] FLOAT Depth,
2092		[in] UINT8 Stencil
2093	);
2094
2095	void GenerateMips(
2096		[in] ID3D11ShaderResourceView *pShaderResourceView
2097	);
2098
2099	void SetResourceMinLOD(
2100		[in] ID3D11Resource *pResource,
2101		[in] FLOAT MinLOD
2102	);
2103
2104	FLOAT GetResourceMinLOD(
2105		[in] ID3D11Resource *pResource
2106	);
2107
2108	void ResolveSubresource(
2109		[in] ID3D11Resource *pDstResource,
2110		[in] UINT DstSubresource,
2111		[in] ID3D11Resource *pSrcResource,
2112		[in] UINT SrcSubresource,
2113		[in] DXGI_FORMAT Format
2114	);
2115
2116	void ExecuteCommandList(
2117		[in] ID3D11CommandList *pCommandList,
2118		[in] BOOL RestoreContextState
2119	);
2120
2121	void HSSetShaderResources(
2122		[in] UINT StartSlot,
2123		[in] UINT NumViews,
2124		[in] ID3D11ShaderResourceView *const *ppShaderResourceViews
2125	);
2126
2127	void HSSetShader(
2128		[in] ID3D11HullShader *pHullShader,
2129		[in] ID3D11ClassInstance *const *ppClassInstances,
2130		[in] UINT NumClassInstances
2131	);
2132
2133	void HSSetSamplers(
2134		[in] UINT StartSlot,
2135		[in] UINT NumSamplers,
2136		[in] ID3D11SamplerState *const *ppSamplers
2137	);
2138
2139	void HSSetConstantBuffers(
2140		[in] UINT StartSlot,
2141		[in] UINT NumBuffers,
2142		[in] ID3D11Buffer *const *ppConstantBuffers
2143	);
2144
2145	void DSSetShaderResources(
2146		[in] UINT StartSlot,
2147		[in] UINT NumViews,
2148		[in] ID3D11ShaderResourceView *const *ppShaderResourceViews
2149	);
2150
2151	void DSSetShader(
2152		[in] ID3D11DomainShader *pDomainShader,
2153		[in] ID3D11ClassInstance *const *ppClassInstances,
2154		[in] UINT NumClassInstances
2155	);
2156
2157	void DSSetSamplers(
2158		[in] UINT StartSlot,
2159		[in] UINT NumSamplers,
2160		[in] ID3D11SamplerState *const *ppSamplers
2161	);
2162
2163	void DSSetConstantBuffers(
2164		[in] UINT StartSlot,
2165		[in] UINT NumBuffers,
2166		[in] ID3D11Buffer *const *ppConstantBuffers
2167	);
2168
2169	void CSSetShaderResources(
2170		[in] UINT StartSlot,
2171		[in] UINT NumViews,
2172		[in] ID3D11ShaderResourceView *const *ppShaderResourceViews
2173	);
2174
2175	void CSSetUnorderedAccessViews(
2176		[in] UINT StartSlot,
2177		[in] UINT NumUAVs,
2178		[in] ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
2179		[in] const UINT *pUAVInitialCounts
2180	);
2181
2182	void CSSetShader(
2183		[in] ID3D11ComputeShader *pComputeShader,
2184		[in] ID3D11ClassInstance *const *ppClassInstances,
2185		[in] UINT NumClassInstances
2186	);
2187
2188	void CSSetSamplers(
2189		[in] UINT StartSlot,
2190		[in] UINT NumSamplers,
2191		[in] ID3D11SamplerState *const *ppSamplers
2192	);
2193
2194	void CSSetConstantBuffers(
2195		[in] UINT StartSlot,
2196		[in] UINT NumBuffers,
2197		[in] ID3D11Buffer *const *ppConstantBuffers
2198	);
2199
2200	void VSGetConstantBuffers(
2201		[in] UINT StartSlot,
2202		[in] UINT NumBuffers,
2203		[out] ID3D11Buffer **ppConstantBuffers
2204	);
2205
2206	void PSGetShaderResources(
2207		[in] UINT StartSlot,
2208		[in] UINT NumViews,
2209		[out] ID3D11ShaderResourceView **ppShaderResourceViews
2210	);
2211
2212	void PSGetShader(
2213		[out] ID3D11PixelShader **ppPixelShader,
2214		[out] ID3D11ClassInstance **ppClassInstances,
2215		[in, out, optional] UINT *pNumClassInstances
2216	);
2217
2218	void PSGetSamplers(
2219		[in] UINT StartSlot,
2220		[in] UINT NumSamplers,
2221		[out] ID3D11SamplerState **ppSamplers
2222	);
2223
2224	void VSGetShader(
2225		[out] ID3D11VertexShader **ppVertexShader,
2226		[out] ID3D11ClassInstance **ppClassInstances,
2227		[in, out, optional] UINT *pNumClassInstances
2228	);
2229
2230	void PSGetConstantBuffers(
2231		[in] UINT StartSlot,
2232		[in] UINT NumBuffers,
2233		[out] ID3D11Buffer **ppConstantBuffers
2234	);
2235
2236	void IAGetInputLayout(
2237		[out] ID3D11InputLayout **ppInputLayout
2238	);
2239
2240	void IAGetVertexBuffers(
2241		[in] UINT StartSlot,
2242		[in] UINT NumBuffers,
2243		[out] ID3D11Buffer **ppVertexBuffers,
2244		[out] UINT *pStrides,
2245		[out] UINT *pOffsets
2246	);
2247
2248	void IAGetIndexBuffer(
2249		[out] ID3D11Buffer **pIndexBuffer,
2250		[out] DXGI_FORMAT *Format,
2251		[out] UINT *Offset
2252	);
2253
2254	void GSGetConstantBuffers(
2255		[in] UINT StartSlot,
2256		[in] UINT NumBuffers,
2257		[out] ID3D11Buffer **ppConstantBuffers
2258	);
2259
2260	void GSGetShader(
2261		[out] ID3D11GeometryShader **ppGeometryShader,
2262		[out] ID3D11ClassInstance **ppClassInstances,
2263		[in, out, optional] UINT *pNumClassInstances
2264	);
2265
2266	void IAGetPrimitiveTopology(
2267		[out] D3D11_PRIMITIVE_TOPOLOGY *pTopology
2268	);
2269
2270	void VSGetShaderResources(
2271		[in] UINT StartSlot,
2272		[in] UINT NumViews,
2273		[out] ID3D11ShaderResourceView **ppShaderResourceViews
2274	);
2275
2276	void VSGetSamplers(
2277		[in] UINT StartSlot,
2278		[in] UINT NumSamplers,
2279		[out] ID3D11SamplerState **ppSamplers
2280	);
2281
2282	void GetPredication(
2283		[out] ID3D11Predicate **ppPredicate,
2284		[out] BOOL *pPredicateValue
2285	);
2286
2287	void GSGetShaderResources(
2288		[in] UINT StartSlot,
2289		[in] UINT NumViews,
2290		[out] ID3D11ShaderResourceView **ppShaderResourceViews
2291	);
2292
2293	void GSGetSamplers(
2294		[in] UINT StartSlot,
2295		[in] UINT NumSamplers,
2296		[out] ID3D11SamplerState **ppSamplers
2297	);
2298
2299	void OMGetRenderTargets(
2300		[in] UINT NumViews,
2301		[out] ID3D11RenderTargetView **ppRenderTargetViews,
2302		[out] ID3D11DepthStencilView **ppDepthStencilView
2303	);
2304
2305	void OMGetRenderTargetsAndUnorderedAccessViews(
2306		[in] UINT NumRTVs,
2307		[out] ID3D11RenderTargetView **ppRenderTargetViews,
2308		[out] ID3D11DepthStencilView **ppDepthStencilView,
2309		[in] UINT UAVStartSlot,
2310		[in] UINT NumUAVs,
2311		[out] ID3D11UnorderedAccessView **ppUnorderedAccessViews
2312	);
2313
2314	void OMGetBlendState(
2315		[out] ID3D11BlendState **ppBlendState,
2316		[out] FLOAT BlendFactor[ 4 ],
2317		[out] UINT *pSampleMask
2318	);
2319
2320	void OMGetDepthStencilState(
2321		[out] ID3D11DepthStencilState **ppDepthStencilState,
2322		[out] UINT *pStencilRef
2323	);
2324
2325	void SOGetTargets(
2326		[in] UINT NumBuffers,
2327		[out] ID3D11Buffer **ppSOTargets
2328	);
2329
2330	void RSGetState(
2331		[out] ID3D11RasterizerState **ppRasterizerState
2332	);
2333
2334	void RSGetViewports(
2335		[in, out] /*_range*/ UINT *pNumViewports,
2336		[out] D3D11_VIEWPORT *pViewports
2337	);
2338
2339	void RSGetScissorRects(
2340		[in, out] /*_range*/ UINT *pNumRects,
2341		[out] D3D11_RECT *pRects
2342	);
2343
2344	void HSGetShaderResources(
2345		[in] UINT StartSlot,
2346		[in] UINT NumViews,
2347		[out] ID3D11ShaderResourceView **ppShaderResourceViews
2348	);
2349
2350	void HSGetShader(
2351		[out] ID3D11HullShader **ppHullShader,
2352		[out] ID3D11ClassInstance **ppClassInstances,
2353		[in, out, optional] UINT *pNumClassInstances
2354	);
2355
2356	void HSGetSamplers(
2357		[in] UINT StartSlot,
2358		[in] UINT NumSamplers,
2359		[out] ID3D11SamplerState **ppSamplers
2360	);
2361
2362	void HSGetConstantBuffers(
2363		[in] UINT StartSlot,
2364		[in] UINT NumBuffers,
2365		[out] ID3D11Buffer **ppConstantBuffers
2366	);
2367
2368	void DSGetShaderResources(
2369		[in] UINT StartSlot,
2370		[in] UINT NumViews,
2371		[out] ID3D11ShaderResourceView **ppShaderResourceViews
2372	);
2373
2374	void DSGetShader(
2375		[out] ID3D11DomainShader **ppDomainShader,
2376		[out] ID3D11ClassInstance **ppClassInstances,
2377		[in, out, optional] UINT *pNumClassInstances
2378	);
2379
2380	void DSGetSamplers(
2381		[in] UINT StartSlot,
2382		[in] UINT NumSamplers,
2383		[out] ID3D11SamplerState **ppSamplers
2384	);
2385
2386	void DSGetConstantBuffers(
2387		[in] UINT StartSlot,
2388		[in] UINT NumBuffers,
2389		[out] ID3D11Buffer **ppConstantBuffers
2390	);
2391
2392	void CSGetShaderResources(
2393		[in] UINT StartSlot,
2394		[in] UINT NumViews,
2395		[out] ID3D11ShaderResourceView **ppShaderResourceViews
2396	);
2397
2398	void CSGetUnorderedAccessViews(
2399		[in] UINT StartSlot,
2400		[in] UINT NumUAVs,
2401		[out] ID3D11UnorderedAccessView **ppUnorderedAccessViews
2402	);
2403
2404	void CSGetShader(
2405		[out] ID3D11ComputeShader **ppComputeShader,
2406		[out] ID3D11ClassInstance **ppClassInstances,
2407		[in, out, optional] UINT *pNumClassInstances
2408	);
2409
2410	void CSGetSamplers(
2411		[in] UINT StartSlot,
2412		[in] UINT NumSamplers,
2413		[out] ID3D11SamplerState **ppSamplers
2414	);
2415
2416	void CSGetConstantBuffers(
2417		[in] UINT StartSlot,
2418		[in] UINT NumBuffers,
2419		[out] ID3D11Buffer **ppConstantBuffers
2420	);
2421
2422	void ClearState();
2423
2424	void Flush();
2425
2426	D3D11_DEVICE_CONTEXT_TYPE GetType();
2427
2428	UINT GetContextFlags();
2429
2430	HRESULT FinishCommandList(
2431		[in] BOOL RestoreDeferredContextState,
2432		[out] ID3D11CommandList **ppCommandList
2433	);
2434};
2435
2436cpp_quote("#include \"d3d10_1.h\"")
2437cpp_quote("#include \"d3d10shader.h\"")
2438cpp_quote("#include \"d3d10effect.h\"")
2439/*cpp_quote("#include \"d3d10_1shader.h\"") */
2440
2441typedef enum D3D11_CREATE_DEVICE_FLAG
2442{
2443	D3D11_CREATE_DEVICE_SINGLETHREADED = 1,
2444	D3D11_CREATE_DEVICE_DEBUG = 2,
2445	D3D11_CREATE_DEVICE_SWITCH_TO_REF = 4,
2446	D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 8,
2447	D3D11_CREATE_DEVICE_BGRA_SUPPORT = 0x20
2448} D3D11_CREATE_DEVICE_FLAG;
2449
2450
2451HRESULT D3D11CreateDevice(
2452	[in,optional] IDXGIAdapter* pAdapter,
2453	[in] D3D_DRIVER_TYPE DriverType,
2454	[in] HMODULE Software,
2455	[in] UINT Flags,
2456	[in,optional] const D3D_FEATURE_LEVEL* pFeatureLevels,
2457	[in] UINT FeatureLevels,
2458	[in] UINT SDKVersion,
2459	[out,optional] ID3D11Device** ppDevice,
2460	[out,optional] D3D_FEATURE_LEVEL* pFeatureLevel,
2461	[out,optional] ID3D11DeviceContext** ppImmediateContext
2462);
2463
2464typedef HRESULT (* PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(
2465	[in,optional] IDXGIAdapter*,
2466	D3D_DRIVER_TYPE,
2467	HMODULE,
2468	UINT,
2469	[in,optional] const D3D_FEATURE_LEVEL*,
2470	UINT,
2471	UINT,
2472	[in, optional] const DXGI_SWAP_CHAIN_DESC*,
2473	[out,optional] IDXGISwapChain**,
2474	[out,optional] ID3D11Device**,
2475	[out,optional] D3D_FEATURE_LEVEL*,
2476	[out,optional] ID3D11DeviceContext**
2477);
2478
2479HRESULT D3D11CreateDeviceAndSwapChain(
2480	[in,optional] IDXGIAdapter* pAdapter,
2481	[in] D3D_DRIVER_TYPE DriverType,
2482	[in] HMODULE Software,
2483	[in] UINT Flags,
2484	[in,optional] const D3D_FEATURE_LEVEL* pFeatureLevels,
2485	[in] UINT FeatureLevels,
2486	[in] UINT SDKVersion,
2487	[in,optional] const DXGI_SWAP_CHAIN_DESC* pSwapChainDesc,
2488	[out,optional] IDXGISwapChain** ppSwapChain,
2489	[out,optional] ID3D11Device** ppDevice,
2490	[out,optional] D3D_FEATURE_LEVEL* pFeatureLevel,
2491	[out,optional] ID3D11DeviceContext** ppImmediateContext
2492);
2493