1 module aurora.directx.d3d11.d3d11_0;
2 
3 version(Windows):
4 
5 public import std.bitmanip;
6 public import aurora.directx.com;
7 public import aurora.directx.dxgi;
8 public import aurora.directx.d3d.d3dcommon;
9 public import aurora.directx.d3d11.d3d11shader;
10 public import aurora.directx.d3d11.d3d11sdklayers;
11 public import aurora.directx.d3d11.d3d11shadertracing;
12 
13 public: 
14 
15 ///
16 /// Constants
17 ///
18 enum int D3D11_16BIT_INDEX_STRIP_CUT_VALUE	= 0xffff;
19 enum int D3D11_32BIT_INDEX_STRIP_CUT_VALUE	= 0xffffffff;
20 enum int D3D11_8BIT_INDEX_STRIP_CUT_VALUE	= 0xff;
21 enum int D3D11_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT	= 9;
22 enum int D3D11_CLIP_OR_CULL_DISTANCE_COUNT	= 8;
23 enum int D3D11_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT	= 2;
24 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT	= 14;
25 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS	= 4;
26 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT	= 32;
27 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT	= 15;
28 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT	= 16;
29 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS	= 4;
30 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT	= 15;
31 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST	= 1;
32 enum int D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS	= 1;
33 enum int D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT	= 64;
34 enum int D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS	= 4;
35 enum int D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT	= 1;
36 enum int D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST	= 1;
37 enum int D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS	= 1;
38 enum int D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT	= 32;
39 enum int D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS	= 1;
40 enum int D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT	= 128;
41 enum int D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST	= 1;
42 enum int D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS	= 1;
43 enum int D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT	= 128;
44 enum int D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS	= 1;
45 enum int D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT	= 16;
46 enum int D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST	= 1;
47 enum int D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS	= 1;
48 enum int D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT	= 16;
49 enum int D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT	= 32;
50 enum int D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS	= 4;
51 enum int D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT	= 32;
52 enum int D3D11_COMMONSHADER_TEMP_REGISTER_COUNT	= 4096;
53 enum int D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST	= 3;
54 enum int D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS	= 3;
55 enum int D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX	= 10;
56 enum int D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN	= -10;
57 enum int D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE	= -8;
58 enum int D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE	= 7;
59 enum int D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 256;
60 enum int D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP	= 64;
61 enum int D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 240;
62 enum int D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP	= 68;
63 enum int D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 224;
64 enum int D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP	= 72;
65 enum int D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 208;
66 enum int D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP	= 76;
67 enum int D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 192;
68 enum int D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP	= 84;
69 enum int D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 176;
70 enum int D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP	= 92;
71 enum int D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 160;
72 enum int D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP	= 100;
73 enum int D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 144;
74 enum int D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP	= 112;
75 enum int D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 128;
76 enum int D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP	= 128;
77 enum int D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 112;
78 enum int D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP	= 144;
79 enum int D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 96;
80 enum int D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP	= 168;
81 enum int D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 80;
82 enum int D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP	= 204;
83 enum int D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 64;
84 enum int D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP	= 256;
85 enum int D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 48;
86 enum int D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP	= 34;
87 enum int D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 32;
88 enum int D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP	= 512;
89 enum int D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD	= 16;
90 enum int D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP	= 768;
91 enum int D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION	= 1;
92 enum int D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT	= 256;
93 enum int D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP	= 768;
94 enum int D3D11_CS_4_X_THREAD_GROUP_MAX_X	= 768;
95 enum int D3D11_CS_4_X_THREAD_GROUP_MAX_Y	= 768;
96 enum int D3D11_CS_4_X_UAV_REGISTER_COUNT	= 1;
97 enum int D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION	= 65535;
98 enum int D3D11_CS_TGSM_REGISTER_COUNT	= 8192;
99 enum int D3D11_CS_TGSM_REGISTER_READS_PER_INST = 1;
100 enum int D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS = 1;
101 enum int D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS = 1;
102 enum int D3D11_CS_THREADGROUPID_REGISTER_COMPONENTS = 3;
103 enum int D3D11_CS_THREADGROUPID_REGISTER_COUNT = 1;
104 enum int D3D11_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS = 1;
105 enum int D3D11_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT = 1;
106 enum int D3D11_CS_THREADIDINGROUP_REGISTER_COMPONENTS = 3;
107 enum int D3D11_CS_THREADIDINGROUP_REGISTER_COUNT = 1;
108 enum int D3D11_CS_THREADID_REGISTER_COMPONENTS = 3;
109 enum int D3D11_CS_THREADID_REGISTER_COUNT = 1;
110 enum int D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP = 1024;
111 enum int D3D11_CS_THREAD_GROUP_MAX_X = 1024;
112 enum int D3D11_CS_THREAD_GROUP_MAX_Y = 1024;
113 enum int D3D11_CS_THREAD_GROUP_MAX_Z = 64;
114 enum int D3D11_CS_THREAD_GROUP_MIN_X = 1;
115 enum int D3D11_CS_THREAD_GROUP_MIN_Y = 1;
116 enum int D3D11_CS_THREAD_GROUP_MIN_Z = 1;
117 enum int D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL = 16384;
118 enum float D3D11_DEFAULT_BLEND_FACTOR_ALPHA = 1.0f;
119 enum float D3D11_DEFAULT_BLEND_FACTOR_BLUE = 1.0f;
120 enum float D3D11_DEFAULT_BLEND_FACTOR_GREEN = 1.0f;
121 enum float D3D11_DEFAULT_BLEND_FACTOR_RED = 1.0f;
122 enum float D3D11_DEFAULT_BORDER_COLOR_COMPONENT = 0.0f;
123 enum int D3D11_DEFAULT_DEPTH_BIAS = 0;
124 enum float D3D11_DEFAULT_DEPTH_BIAS_CLAMP = 0.0f;
125 enum int D3D11_DEFAULT_MAX_ANISOTROPY = 16;
126 enum float D3D11_DEFAULT_MIP_LOD_BIAS = 0.0f;
127 enum int D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0;
128 enum int D3D11_DEFAULT_SAMPLE_MASK = 0xffffffff;
129 enum int D3D11_DEFAULT_SCISSOR_ENDX = 0;
130 enum int D3D11_DEFAULT_SCISSOR_ENDY = 0;
131 enum int D3D11_DEFAULT_SCISSOR_STARTX = 0;
132 enum int D3D11_DEFAULT_SCISSOR_STARTY = 0;
133 enum float D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS = 0.0f;
134 enum int D3D11_DEFAULT_STENCIL_READ_MASK = 0xff;
135 enum int D3D11_DEFAULT_STENCIL_REFERENCE = 0;
136 enum int D3D11_DEFAULT_STENCIL_WRITE_MASK = 0xff;
137 enum int D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX	= 0;
138 enum int D3D11_DEFAULT_VIEWPORT_HEIGHT	= 0;
139 enum float D3D11_DEFAULT_VIEWPORT_MAX_DEPTH = 0.0f;
140 enum float D3D11_DEFAULT_VIEWPORT_MIN_DEPTH = 0.0f;
141 enum int D3D11_DEFAULT_VIEWPORT_TOPLEFTX	= 0;
142 enum int D3D11_DEFAULT_VIEWPORT_TOPLEFTY	= 0;
143 enum int D3D11_DEFAULT_VIEWPORT_WIDTH	= 0;
144 enum int D3D11_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS	= 3968;
145 enum int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS	= 4;
146 enum int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT	= 32;
147 enum int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT	= 32;
148 enum int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST	= 2;
149 enum int D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS	= 1;
150 enum int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS	= 3;
151 enum int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT	= 32;
152 enum int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT	= 1;
153 enum int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST	= 2;
154 enum int D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS	= 1;
155 enum int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS	= 4;
156 enum int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT	= 32;
157 enum int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT	= 32;
158 enum int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST	= 2;
159 enum int D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS	= 1;
160 enum int D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS	= 1;
161 enum int D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT	= 32;
162 enum int D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT	= 1;
163 enum int D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST	= 2;
164 enum int D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS	= 1;
165 enum int D3D11_DS_OUTPUT_REGISTER_COMPONENTS	= 4;
166 enum int D3D11_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT	= 32;
167 enum int D3D11_DS_OUTPUT_REGISTER_COUNT	= 32;
168 enum float D3D11_FLOAT16_FUSED_TOLERANCE_IN_ULP	= 0.6f;
169 enum float D3D11_FLOAT32_MAX = 3.402823466e+38f;
170 enum float D3D11_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = 0.6f;
171 enum float D3D11_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR = 2.4f;
172 enum float D3D11_FLOAT_TO_SRGB_EXPONENT_NUMERATOR = 1.0f;
173 enum float D3D11_FLOAT_TO_SRGB_OFFSET = 0.055f;
174 enum float D3D11_FLOAT_TO_SRGB_SCALE_1 = 12.92f;
175 enum float D3D11_FLOAT_TO_SRGB_SCALE_2 = 1.055f;
176 enum float D3D11_FLOAT_TO_SRGB_THRESHOLD = 0.0031308f;
177 enum float D3D11_FTOI_INSTRUCTION_MAX_INPUT = 2147483647.999f;
178 enum float D3D11_FTOI_INSTRUCTION_MIN_INPUT = -2147483648.999f;
179 enum float D3D11_FTOU_INSTRUCTION_MAX_INPUT = 4294967295.999f;
180 enum float D3D11_FTOU_INSTRUCTION_MIN_INPUT = 0.0f;
181 enum int D3D11_GS_INPUT_INSTANCE_ID_READS_PER_INST	= 2;
182 enum int D3D11_GS_INPUT_INSTANCE_ID_READ_PORTS	= 1;
183 enum int D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS	= 1;
184 enum int D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT	= 32;
185 enum int D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COUNT	= 1;
186 enum int D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS	= 1;
187 enum int D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT	= 32;
188 enum int D3D11_GS_INPUT_PRIM_CONST_REGISTER_COUNT	= 1;
189 enum int D3D11_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST	= 2;
190 enum int D3D11_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS	= 1;
191 enum int D3D11_GS_INPUT_REGISTER_COMPONENTS	= 4;
192 enum int D3D11_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT	= 32;
193 enum int D3D11_GS_INPUT_REGISTER_COUNT	= 32;
194 enum int D3D11_GS_INPUT_REGISTER_READS_PER_INST	= 2;
195 enum int D3D11_GS_INPUT_REGISTER_READ_PORTS	= 1;
196 enum int D3D11_GS_INPUT_REGISTER_VERTICES	= 32;
197 enum int D3D11_GS_MAX_INSTANCE_COUNT	= 32;
198 enum int D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES	= 1024;
199 enum int D3D11_GS_OUTPUT_ELEMENTS	= 32;
200 enum int D3D11_GS_OUTPUT_REGISTER_COMPONENTS	= 4;
201 enum int D3D11_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT	= 32;
202 enum int D3D11_GS_OUTPUT_REGISTER_COUNT	= 32;
203 enum int D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT	= 32;
204 enum int D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT	= 32;
205 enum int D3D11_HS_CONTROL_POINT_REGISTER_COMPONENTS	= 4;
206 enum int D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT	= 32;
207 enum int D3D11_HS_CONTROL_POINT_REGISTER_READS_PER_INST	= 2;
208 enum int D3D11_HS_CONTROL_POINT_REGISTER_READ_PORTS	= 1;
209 enum int D3D11_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND	= 0xffffffff;
210 enum int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS	= 1;
211 enum int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT	= 32;
212 enum int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT	= 1;
213 enum int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST	= 2;
214 enum int D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS	= 1;
215 enum int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS	= 1;
216 enum int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT	= 32;
217 enum int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT	= 1;
218 enum int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST	= 2;
219 enum int D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS	= 1;
220 enum int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS	= 1;
221 enum int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT	= 32;
222 enum int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT	= 1;
223 enum int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST	= 2;
224 enum int D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS	= 1;
225 enum int D3D11_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND	= 0xffffffff;
226 enum float D3D11_HS_MAXTESSFACTOR_LOWER_BOUND = 1.0f;
227 enum float D3D11_HS_MAXTESSFACTOR_UPPER_BOUND = 64.0f;
228 enum int D3D11_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS	= 3968;
229 enum int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS	= 1;
230 enum int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT	= 32;
231 enum int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT	= 1;
232 enum int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST	= 2;
233 enum int D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS	= 1;
234 enum int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS	= 4;
235 enum int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT	= 32;
236 enum int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT	= 32;
237 enum int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST	= 2;
238 enum int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS	= 1;
239 enum int D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS	= 128;
240 enum int D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES	= 0;
241 enum int D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY	= 0;
242 enum int D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES	= 0;
243 enum int D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT	= 1;
244 enum int D3D11_IA_INSTANCE_ID_BIT_COUNT	= 32;
245 enum int D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT	= 32;
246 enum int D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT	= 32;
247 enum int D3D11_IA_PRIMITIVE_ID_BIT_COUNT	= 32;
248 enum int D3D11_IA_VERTEX_ID_BIT_COUNT	= 32;
249 enum int D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT	= 32;
250 enum int D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS	= 128;
251 enum int D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT	= 32;
252 enum int D3D11_INTEGER_DIVIDE_BY_ZERO_QUOTIENT	= 0xffffffff;
253 enum int D3D11_INTEGER_DIVIDE_BY_ZERO_REMAINDER	= 0xffffffff;
254 enum int D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL	= 0xffffffff;
255 enum int D3D11_KEEP_UNORDERED_ACCESS_VIEWS	= 0xffffffff;
256 enum float D3D11_LINEAR_GAMMA	= 1.0f;
257 enum int D3D11_MAJOR_VERSION	= 11;
258 enum float D3D11_MAX_BORDER_COLOR_COMPONENT	= 1.0f;
259 enum float D3D11_MAX_DEPTH	= 1.0f;
260 enum int D3D11_MAX_MAXANISOTROPY	= 16;
261 enum int D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT	= 32;
262 enum float D3D11_MAX_POSITION_VALUE	= 3.402823466e+34f;
263 enum int D3D11_MAX_TEXTURE_DIMENSION_2_TO_EXP	= 17;
264 enum int D3D11_MINOR_VERSION	= 0;
265 enum float D3D11_MIN_BORDER_COLOR_COMPONENT	= 0.0f;
266 enum float D3D11_MIN_DEPTH	= 0.0f;
267 enum int D3D11_MIN_MAXANISOTROPY	= 0;
268 enum float D3D11_MIP_LOD_BIAS_MAX	= 15.99f;
269 enum float D3D11_MIP_LOD_BIAS_MIN	= -16.0f;
270 enum int D3D11_MIP_LOD_FRACTIONAL_BIT_COUNT	= 8;
271 enum int D3D11_MIP_LOD_RANGE_BIT_COUNT	= 8;
272 enum float D3D11_MULTISAMPLE_ANTIALIAS_LINE_WIDTH	= 1.4f;
273 enum int D3D11_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT	= 0;
274 enum int D3D11_PIXEL_ADDRESS_RANGE_BIT_COUNT	= 15;
275 enum int D3D11_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT	= 16;
276 enum int D3D11_PS_CS_UAV_REGISTER_COMPONENTS	= 1;
277 enum int D3D11_PS_CS_UAV_REGISTER_COUNT	= 8;
278 enum int D3D11_PS_CS_UAV_REGISTER_READS_PER_INST	= 1;
279 enum int D3D11_PS_CS_UAV_REGISTER_READ_PORTS	= 1;
280 enum int D3D11_PS_FRONTFACING_DEFAULT_VALUE	= 0xffffffff;
281 enum int D3D11_PS_FRONTFACING_FALSE_VALUE	= 0;
282 enum int D3D11_PS_FRONTFACING_TRUE_VALUE	= 0xffffffff;
283 enum int D3D11_PS_INPUT_REGISTER_COMPONENTS	= 4;
284 enum int D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT	= 32;
285 enum int D3D11_PS_INPUT_REGISTER_COUNT	= 32;
286 enum int D3D11_PS_INPUT_REGISTER_READS_PER_INST	= 2;
287 enum int D3D11_PS_INPUT_REGISTER_READ_PORTS	= 1;
288 enum float D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT	= 0.0f;
289 enum int D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS	= 1;
290 enum int D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT	= 32;
291 enum int D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT	= 1;
292 enum int D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS	= 1;
293 enum int D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT	= 32;
294 enum int D3D11_PS_OUTPUT_MASK_REGISTER_COUNT	= 1;
295 enum int D3D11_PS_OUTPUT_REGISTER_COMPONENTS	= 4;
296 enum int D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT	= 32;
297 enum int D3D11_PS_OUTPUT_REGISTER_COUNT	= 8;
298 enum float D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT	= 0.5f;
299 enum int D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT	= 16;
300 enum int D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE	= 4096;
301 enum int D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP	= 27;
302 enum int D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT	= 4096;
303 enum int D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE	= 4096;
304 enum int D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP	= 32;
305 enum int D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP	= 32;
306 enum int D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION	= 16384;
307 enum int D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT	= 1024;
308 enum int D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT	= 4096;
309 enum int D3D11_REQ_MAXANISOTROPY	= 16;
310 enum int D3D11_REQ_MIP_LEVELS	= 15;
311 enum int D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES	= 2048;
312 enum int D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE	= 4096;
313 enum int D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH	= 16384;
314 enum int D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM	= 128;
315 enum float D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM	= 0.25f;
316 enum int D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM	= 2048;
317 enum int D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP	= 20;
318 enum int D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE	= 4096;
319 enum int D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION	= 2048;
320 enum int D3D11_REQ_TEXTURE1D_U_DIMENSION	= 16384;
321 enum int D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION	= 2048;
322 enum int D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION	= 16384;
323 enum int D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION	= 2048;
324 enum int D3D11_REQ_TEXTURECUBE_DIMENSION	= 16384;
325 enum int D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL	= 0;
326 enum int D3D11_SHADER_MAJOR_VERSION	= 5;
327 enum int D3D11_SHADER_MAX_INSTANCES	= 65535;
328 enum int D3D11_SHADER_MAX_INTERFACES	= 253;
329 enum int D3D11_SHADER_MAX_INTERFACE_CALL_SITES	= 4096;
330 enum int D3D11_SHADER_MAX_TYPES	= 65535;
331 enum int D3D11_SHADER_MINOR_VERSION	= 0;
332 enum int D3D11_SHIFT_INSTRUCTION_PAD_VALUE	= 0;
333 enum int D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT	= 5;
334 enum int D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT	= 8;
335 enum int D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES	= 2048;
336 enum int D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES	= 512;
337 enum int D3D11_SO_BUFFER_SLOT_COUNT	= 4;
338 enum int D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP	= 0xffffffff;
339 enum int D3D11_SO_NO_RASTERIZED_STREAM	= 0xffffffff;
340 enum int D3D11_SO_OUTPUT_COMPONENT_COUNT	= 128;
341 enum int D3D11_SO_STREAM_COUNT	= 4;
342 enum int D3D11_SPEC_DATE_DAY	= 16;
343 enum int D3D11_SPEC_DATE_MONTH	= 05;
344 enum int D3D11_SPEC_DATE_YEAR	= 2011;
345 enum float D3D11_SPEC_VERSION	= 1.07f;
346 enum float D3D11_SRGB_GAMMA	= 2.2f;
347 enum float D3D11_SRGB_TO_FLOAT_DENOMINATOR_1	= 12.92f;
348 enum float D3D11_SRGB_TO_FLOAT_DENOMINATOR_2	= 1.055f;
349 enum float D3D11_SRGB_TO_FLOAT_EXPONENT	= 2.4f;
350 enum float D3D11_SRGB_TO_FLOAT_OFFSET	= 0.055f;
351 enum float D3D11_SRGB_TO_FLOAT_THRESHOLD	= 0.04045f;
352 enum float D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP	= 0.5f;
353 enum int D3D11_STANDARD_COMPONENT_BIT_COUNT	= 32;
354 enum int D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED	= 64;
355 enum int D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE	= 4;
356 enum int D3D11_STANDARD_PIXEL_COMPONENT_COUNT	= 128;
357 enum int D3D11_STANDARD_PIXEL_ELEMENT_COUNT	= 32;
358 enum int D3D11_STANDARD_VECTOR_SIZE	= 4;
359 enum int D3D11_STANDARD_VERTEX_ELEMENT_COUNT	= 32;
360 enum int D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT	= 64;
361 enum int D3D11_SUBPIXEL_FRACTIONAL_BIT_COUNT	= 8;
362 enum int D3D11_SUBTEXEL_FRACTIONAL_BIT_COUNT	= 8;
363 enum int D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR	= 64;
364 enum int D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR	= 64;
365 enum int D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR	= 63;
366 enum int D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR	= 64;
367 enum int D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR	= 2;
368 enum int D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR	= 1;
369 enum int D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR	= 1;
370 enum int D3D11_TEXEL_ADDRESS_RANGE_BIT_COUNT	= 16;
371 enum int D3D11_UNBOUND_MEMORY_ACCESS_RESULT	= 0;
372 enum int D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX	= 15;
373 enum int D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE	= 16;
374 enum int D3D11_VIEWPORT_BOUNDS_MAX	= 32767;
375 enum int D3D11_VIEWPORT_BOUNDS_MIN	= -32768;
376 enum int D3D11_VS_INPUT_REGISTER_COMPONENTS	= 4;
377 enum int D3D11_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT	= 3;
378 enum int D3D11_VS_INPUT_REGISTER_COUNT	= 32;
379 enum int D3D11_VS_INPUT_REGISTER_READS_PER_INST	= 2;
380 enum int D3D11_VS_INPUT_REGISTER_READ_PORTS	= 1;
381 enum int D3D11_VS_OUTPUT_REGISTER_COMPONENTS	= 4;
382 enum int D3D11_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT	= 32;
383 enum int D3D11_VS_OUTPUT_REGISTER_COUNT	= 32;
384 enum int D3D11_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT	= 10;
385 enum int D3D11_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP	= 25;
386 enum int D3D11_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP	= 25;
387 enum int D3D11_APPEND_ALIGNED_ELEMENT = 0xffffffff;
388 
389 enum int D3D11_FILTER_REDUCTION_TYPE_MASK = 0x3;
390 enum int D3D11_FILTER_REDUCTION_TYPE_SHIFT = 7;
391 enum int D3D11_FILTER_TYPE_MASK = 0x3;
392 enum int D3D11_MIN_FILTER_SHIFT = 4;
393 enum int D3D11_MAG_FILTER_SHIFT = 2;
394 enum int D3D11_MIP_FILTER_SHIFT = 0;
395 enum int D3D11_COMPARISON_FILTERING_BIT = 0x80;
396 enum int D3D11_ANISOTROPIC_FILTERING_BIT = 0x40;
397 
398 const IID D3D11_KEY_EXCHANGE_RSAES_OAEP = {0xc1949895, 0xd72a, 0x4a1d, [0x8e, 0x5d, 0xed, 0x85, 0x7d, 0x17, 0x15, 0x20]};
399 const IID D3D11_CRYPTO_TYPE_AES128_CTR = {0x9b6bd711, 0x4f74, 0x41c9, [0x9e, 0x7b, 0xb, 0xe2, 0xd7, 0xd9, 0x3b, 0x4f]};
400 const IID D3D11_DECODER_ENCRYPTION_HW_CENC = {0x89d6ac4f, 0x9f2, 0x4229, [0xb2, 0xcd, 0x37, 0x74, 0xa, 0x6d, 0xfd, 0x81]};
401 const IID D3D11_KEY_EXCHANGE_HW_PROTECTION = {0xb1170d8a, 0x628d, 0x4da3, [0xad, 0x3b, 0x82, 0xdd, 0xb0, 0x8b, 0x49, 0x70]};
402 const IID D3D11_DECODER_PROFILE_MPEG2_MOCOMP = {0xe6a9f44b, 0x61b0, 0x4563, [0x9e, 0xa4, 0x63, 0xd2, 0xa3, 0xc6, 0xfe, 0x66]};
403 const IID D3D11_DECODER_PROFILE_MPEG2_IDCT = {0xbf22ad00, 0x03ea, 0x4690, [0x80, 0x77, 0x47, 0x33, 0x46, 0x20, 0x9b, 0x7e]};
404 const IID D3D11_DECODER_PROFILE_MPEG2_VLD = {0xee27417f, 0x5e28, 0x4e65, [0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9]};
405 const IID D3D11_DECODER_PROFILE_MPEG1_VLD = {0x6f3ec719, 0x3735, 0x42cc, [0x80, 0x63, 0x65, 0xcc, 0x3c, 0xb3, 0x66, 0x16]};
406 const IID D3D11_DECODER_PROFILE_MPEG2and1_VLD = {0x86695f12, 0x340e, 0x4f04, [0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60]};
407 const IID D3D11_DECODER_PROFILE_H264_MOCOMP_NOFGT = {0x1b81be64, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
408 const IID D3D11_DECODER_PROFILE_H264_MOCOMP_FGT = {0x1b81be65, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
409 const IID D3D11_DECODER_PROFILE_H264_IDCT_NOFGT = {0x1b81be66, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
410 const IID D3D11_DECODER_PROFILE_H264_IDCT_FGT = {0x1b81be67, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
411 const IID D3D11_DECODER_PROFILE_H264_VLD_NOFGT = {0x1b81be68, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
412 const IID D3D11_DECODER_PROFILE_H264_VLD_FGT = {0x1b81be69, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
413 const IID D3D11_DECODER_PROFILE_H264_VLD_WITHFMOASO_NOFGT = {0xd5f04ff9, 0x3418, 0x45d8, [0x95, 0x61, 0x32, 0xa7, 0x6a, 0xae, 0x2d, 0xdd]};
414 const IID D3D11_DECODER_PROFILE_H264_VLD_STEREO_PROGRESSIVE_NOFGT = {0xd79be8da, 0x0cf1, 0x4c81, [0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d]};
415 const IID D3D11_DECODER_PROFILE_H264_VLD_STEREO_NOFGT = {0xf9aaccbb, 0xc2b6, 0x4cfc, [0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52]};
416 const IID D3D11_DECODER_PROFILE_H264_VLD_MULTIVIEW_NOFGT = {0x705b9d82, 0x76cf, 0x49d6, [0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c]};
417 const IID D3D11_DECODER_PROFILE_WMV8_POSTPROC = {0x1b81be80, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
418 const IID D3D11_DECODER_PROFILE_WMV8_MOCOMP = {0x1b81be81, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
419 const IID D3D11_DECODER_PROFILE_WMV9_POSTPROC = {0x1b81be90, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
420 const IID D3D11_DECODER_PROFILE_WMV9_MOCOMP = {0x1b81be91, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
421 const IID D3D11_DECODER_PROFILE_WMV9_IDCT = {0x1b81be94, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
422 const IID D3D11_DECODER_PROFILE_VC1_POSTPROC = {0x1b81beA0, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
423 const IID D3D11_DECODER_PROFILE_VC1_MOCOMP = {0x1b81beA1, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
424 const IID D3D11_DECODER_PROFILE_VC1_IDCT = {0x1b81beA2, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
425 const IID D3D11_DECODER_PROFILE_VC1_VLD = {0x1b81beA3, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
426 const IID D3D11_DECODER_PROFILE_VC1_D2010 = {0x1b81beA4, 0xa0c7, 0x11d3, [0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5]};
427 const IID D3D11_DECODER_PROFILE_MPEG4PT2_VLD_SIMPLE = {0xefd64d74, 0xc9e8, 0x41d7, [0xa5, 0xe9, 0xe9, 0xb0, 0xe3, 0x9f, 0xa3, 0x19]};
428 const IID D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_NOGMC = {0xed418a9f, 0x010d, 0x4eda, [0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e]};
429 const IID D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_GMC = {0xab998b5b, 0x4258, 0x44a9, [0x9f, 0xeb, 0x94, 0xe5, 0x97, 0xa6, 0xba, 0xae]};
430 const IID D3D11_DECODER_PROFILE_HEVC_VLD_MAIN = {0x5b11d51b, 0x2f4c, 0x4452, [0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0]};
431 const IID D3D11_DECODER_PROFILE_HEVC_VLD_MAIN10 = {0x107af0e0, 0xef1a, 0x4d19, [0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13]};
432 const IID D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0 = {0x463707f8, 0xa1d0, 0x4585, [0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e]};
433 const IID D3D11_DECODER_PROFILE_VP9_VLD_10BIT_PROFILE2 = {0xa4c749ef, 0x6ecf, 0x48aa, [0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7]};
434 const IID D3D11_DECODER_PROFILE_VP8_VLD = {0x90b899ea, 0x3a62, 0x4705, [0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7]};
435 const IID D3D11_AUTHENTICATED_QUERY_PROTECTION = {0xa84eb584, 0xc495, 0x48aa, [0xb9, 0x4d, 0x8b, 0xd2, 0xd6, 0xfb, 0xce, 0x5]};
436 const IID D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE = {0xbc1b18a5, 0xb1fb, 0x42ab, [0xbd, 0x94, 0xb5, 0x82, 0x8b, 0x4b, 0xf7, 0xbe]};
437 const IID D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE = {0xec1c539d, 0x8cff, 0x4e2a, [0xbc, 0xc4, 0xf5, 0x69, 0x2f, 0x99, 0xf4, 0x80]};
438 const IID D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION = {0x2634499e, 0xd018, 0x4d74, [0xac, 0x17, 0x7f, 0x72, 0x40, 0x59, 0x52, 0x8d]};
439 const IID D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT = {0xdb207b3, 0x9450, 0x46a6, [0x82, 0xde, 0x1b, 0x96, 0xd4, 0x4f, 0x9c, 0xf2]};
440 const IID D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS = {0x649bbadb, 0xf0f4, 0x4639, [0xa1, 0x5b, 0x24, 0x39, 0x3f, 0xc3, 0xab, 0xac]};
441 const IID D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT = {0x12f0bd6, 0xe662, 0x4474, [0xbe, 0xfd, 0xaa, 0x53, 0xe5, 0x14, 0x3c, 0x6d]};
442 const IID D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT = {0x2c042b5e, 0x8c07, 0x46d5, [0xaa, 0xbe, 0x8f, 0x75, 0xcb, 0xad, 0x4c, 0x31]};
443 const IID D3D11_AUTHENTICATED_QUERY_OUTPUT_ID = {0x839ddca3, 0x9b4e, 0x41e4, [0xb0, 0x53, 0x89, 0x2b, 0xd2, 0xa1, 0x1e, 0xe7]};
444 const IID D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ATTRIBUTES = {0x6214d9d2, 0x432c, 0x4abb, [0x9f, 0xce, 0x21, 0x6e, 0xea, 0x26, 0x9e, 0x3b]};
445 const IID D3D11_AUTHENTICATED_QUERY_ENCRYPTION_WHEN_ACCESSIBLE_GUID_COUNT = {0xb30f7066, 0x203c, 0x4b07, [0x93, 0xfc, 0xce, 0xaa, 0xfd, 0x61, 0x24, 0x1e]};
446 const IID D3D11_AUTHENTICATED_QUERY_ENCRYPTION_WHEN_ACCESSIBLE_GUID = {0xf83a5958, 0xe986, 0x4bda, [0xbe, 0xb0, 0x41, 0x1f, 0x6a, 0x7a, 0x1, 0xb7]};
447 const IID D3D11_AUTHENTICATED_QUERY_CURRENT_ENCRYPTION_WHEN_ACCESSIBLE = {0xec1791c7, 0xdad3, 0x4f15, [0x9e, 0xc3, 0xfa, 0xa9, 0x3d, 0x60, 0xd4, 0xf0]};
448 const IID D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE = {0x6114bdb, 0x3523, 0x470a, [0x8d, 0xca, 0xfb, 0xc2, 0x84, 0x51, 0x54, 0xf0]};
449 const IID D3D11_AUTHENTICATED_CONFIGURE_PROTECTION = {0x50455658, 0x3f47, 0x4362, [0xbf, 0x99, 0xbf, 0xdf, 0xcd, 0xe9, 0xed, 0x29]};
450 const IID D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION = {0x6346cc54, 0x2cfc, 0x4ad4, [0x82, 0x24, 0xd1, 0x58, 0x37, 0xde, 0x77, 0x0]};
451 const IID D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE = {0x772d047, 0x1b40, 0x48e8, [0x9c, 0xa6, 0xb5, 0xf5, 0x10, 0xde, 0x9f, 0x1]};
452 const IID D3D11_AUTHENTICATED_CONFIGURE_ENCRYPTION_WHEN_ACCESSIBLE = {0x41fff286, 0x6ae0, 0x4d43, [0x9d, 0x55, 0xa4, 0x6e, 0x9e, 0xfd, 0x15, 0x8a]};
453 
454 ///
455 /// Mixins
456 ///
457 
458 ///The following macros have not been converted to mixins yet
459 /*
460 #define D3D11_ENCODE_BASIC_FILTER( min, mag, mip, reduction )                                                     \
461                                    ( ( D3D11_FILTER ) (                                                           \
462                                    ( ( ( min ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIN_FILTER_SHIFT ) |           \
463                                    ( ( ( mag ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MAG_FILTER_SHIFT ) |           \
464                                    ( ( ( mip ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIP_FILTER_SHIFT ) |           \
465                                    ( ( ( reduction ) & D3D11_FILTER_REDUCTION_TYPE_MASK ) << D3D11_FILTER_REDUCTION_TYPE_SHIFT ) ) ) 
466 #define D3D11_ENCODE_ANISOTROPIC_FILTER( reduction )                                                  \
467                                          ( ( D3D11_FILTER ) (                                         \
468                                          D3D11_ANISOTROPIC_FILTERING_BIT |                            \
469                                          D3D11_ENCODE_BASIC_FILTER( D3D11_FILTER_TYPE_LINEAR,         \
470                                                                     D3D11_FILTER_TYPE_LINEAR,         \
471                                                                     D3D11_FILTER_TYPE_LINEAR,         \
472                                                                     reduction ) ) )                     
473 #define D3D11_DECODE_MIN_FILTER( d3d11Filter )                                                              \
474                                  ( ( D3D11_FILTER_TYPE )                                                    \
475                                  ( ( ( d3d11Filter ) >> D3D11_MIN_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ) 
476 #define D3D11_DECODE_MAG_FILTER( d3d11Filter )                                                              \
477                                  ( ( D3D11_FILTER_TYPE )                                                    \
478                                  ( ( ( d3d11Filter ) >> D3D11_MAG_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ) 
479 #define D3D11_DECODE_MIP_FILTER( d3d11Filter )                                                              \
480                                  ( ( D3D11_FILTER_TYPE )                                                    \
481                                  ( ( ( d3d11Filter ) >> D3D11_MIP_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ) 
482 #define D3D11_DECODE_FILTER_REDUCTION( d3d11Filter )                                                        \
483                                  ( ( D3D11_FILTER_REDUCTION_TYPE )                                                      \
484                                  ( ( ( d3d11Filter ) >> D3D11_FILTER_REDUCTION_TYPE_SHIFT ) & D3D11_FILTER_REDUCTION_TYPE_MASK ) ) 
485 #define D3D11_DECODE_IS_COMPARISON_FILTER( d3d11Filter )                                                    \
486                                  ( D3D11_DECODE_FILTER_REDUCTION( d3d11Filter ) == D3D11_FILTER_REDUCTION_TYPE_COMPARISON ) 
487 #define D3D11_DECODE_IS_ANISOTROPIC_FILTER( d3d11Filter )                                               \
488                             ( ( ( d3d11Filter ) & D3D11_ANISOTROPIC_FILTERING_BIT ) &&                  \
489                             ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIN_FILTER( d3d11Filter ) ) &&   \
490                             ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MAG_FILTER( d3d11Filter ) ) &&   \
491                             ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIP_FILTER( d3d11Filter ) ) )
492 */ 
493 
494 ///
495 /// Functions
496 ///
497 
498 extern (Windows) {
499 	HRESULT D3D11CreateDevice(IDXGIAdapter pAdapter, D3D_DRIVER_TYPE DriverType, HMODULE Software, UINT Flags, const D3D_FEATURE_LEVEL *pFeatureLevels, UINT FeatureLevels, UINT SDKVersion, ID3D11Device *ppDevice, D3D_FEATURE_LEVEL *pFeatureLevel, ID3D11DeviceContext *ppImmediateContext);
500 	HRESULT D3D11CreateDeviceAndSwapChain(IDXGIAdapter pAdapter, D3D_DRIVER_TYPE DriverType, HMODULE Software, UINT Flags, const D3D_FEATURE_LEVEL *pFeatureLevels, UINT FeatureLevels, UINT SDKVersion, const DXGI_SWAP_CHAIN_DESC *pSwapChainDesc, IDXGISwapChain *ppSwapChain, ID3D11Device *ppDevice, D3D_FEATURE_LEVEL *pFeatureLevel, ID3D11DeviceContext *ppImmediateContext);
501 }
502 uint D3D11CalcSubresource(uint MipSlice, uint ArraySlice, uint MipLevels ) { return MipSlice + ArraySlice * MipLevels; }
503 
504 ///
505 /// Enumerations
506 ///
507 
508 alias D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY;
509 alias D3D_PRIMITIVE D3D11_PRIMITIVE;
510 alias D3D_SRV_DIMENSION D3D11_SRV_DIMENSION;
511 
512 enum D3D11_INPUT_CLASSIFICATION : uint
513 {
514 	VERTEX_DATA	= 0,
515 	INSTANCE_DATA = 1
516 }
517 
518 enum D3D11_FILL_MODE : uint
519 {
520 	WIREFRAME = 2,
521 	SOLID = 3
522 }
523 
524 enum D3D11_CULL_MODE : uint
525 {
526 	NONE = 1,
527 	FRONT = 2,
528 	BACK = 3
529 }
530 
531 enum D3D11_RESOURCE_DIMENSION : uint
532 {
533 	UNKNOWN	= 0,
534 	BUFFER	= 1,
535 	TEXTURE1D	= 2,
536 	TEXTURE2D	= 3,
537 	TEXTURE3D	= 4
538 }
539 
540 enum D3D11_DSV_DIMENSION : uint
541 {
542 	UNKNOWN	= 0,
543 	TEXTURE1D = 1,
544 	TEXTURE1DARRAY = 2,
545 	TEXTURE2D = 3,
546 	TEXTURE2DARRAY = 4,
547 	TEXTURE2DMS = 5,
548 	TEXTURE2DMSARRAY = 6
549 }
550 
551 enum D3D11_RTV_DIMENSION : uint
552 {
553 	UNKNOWN	= 0,
554 	BUFFER	= 1,
555 	TEXTURE1D	= 2,
556 	TEXTURE1DARRAY	= 3,
557 	TEXTURE2D	= 4,
558 	TEXTURE2DARRAY	= 5,
559 	TEXTURE2DMS	= 6,
560 	TEXTURE2DMSARRAY	= 7,
561 	TEXTURE3D	= 8
562 }
563 
564 enum D3D11_UAV_DIMENSION : uint
565 {
566 	UNKNOWN	= 0,
567 	BUFFER	= 1,
568 	TEXTURE1D	= 2,
569 	TEXTURE1DARRAY	= 3,
570 	TEXTURE2D	= 4,
571 	TEXTURE2DARRAY	= 5,
572 	TEXTURE3D	= 8
573 }
574 
575 enum D3D11_USAGE : uint
576 {
577 	DEFAULT	= 0,
578 	IMMUTABLE = 1,
579 	DYNAMIC	= 2,
580 	STAGING	= 3
581 }
582 
583 enum D3D11_BIND_FLAG : uint
584 {
585 	VERTEX_BUFFER	= 0x1L,
586 	INDEX_BUFFER	= 0x2L,
587 	CONSTANT_BUFFER	= 0x4L,
588 	SHADER_RESOURCE	= 0x8L,
589 	STREAM_OUTPUT	= 0x10L,
590 	RENDER_TARGET	= 0x20L,
591 	DEPTH_STENCIL	= 0x40L,
592 	UNORDERED_ACCESS	= 0x80L,
593 	DECODER	= 0x200L,
594 	VIDEO_ENCODER	= 0x400L
595 }
596 
597 enum D3D11_CPU_ACCESS_FLAG : uint
598 {
599 	WRITE	= 0x10000L,
600 	READ	= 0x20000L
601 }
602 
603 enum D3D11_RESOURCE_MISC_FLAG : uint
604 {
605 	GENERATE_MIPS	= 0x1L,
606 	SHARED	= 0x2L,
607 	TEXTURECUBE	= 0x4L,
608 	DRAWINDIRECT_ARGS	= 0x10L,
609 	BUFFER_ALLOW_RAW_VIEWS	= 0x20L,
610 	BUFFER_STRUCTURED	= 0x40L,
611 	RESOURCE_CLAMP	= 0x80L,
612 	SHARED_KEYEDMUTEX	= 0x100L,
613 	GDI_COMPATIBLE	= 0x200L,
614 	SHARED_NTHANDLE	= 0x800L,
615 	RESTRICTED_CONTENT	= 0x1000L,
616 	RESTRICT_SHARED_RESOURCE	= 0x2000L,
617 	RESTRICT_SHARED_RESOURCE_DRIVER	= 0x4000L,
618 	GUARDED	= 0x8000L,
619 	TILE_POOL	= 0x20000L,
620 	TILED	= 0x40000L,
621 	HW_PROTECTED	= 0x80000L
622 }
623 
624 enum D3D11_MAP : uint
625 {
626 	READ	= 1,
627 	WRITE	= 2,
628 	READ_WRITE	= 3,
629 	WRITE_DISCARD	= 4,
630 	WRITE_NO_OVERWRITE	= 5
631 }
632 
633 enum D3D11_MAP_FLAG : uint
634 {
635 	DO_NOT_WAIT	= 0x100000L
636 }
637 
638 enum D3D11_RAISE_FLAG : uint
639 {
640 	DRIVER_INTERNAL_ERROR	= 0x1L
641 }
642 
643 enum D3D11_CLEAR_FLAG : uint
644 {
645 	DEPTH	= 0x1L,
646 	STENCIL	= 0x2L
647 }
648 
649 enum D3D11_COMPARISON_FUNC : uint
650 {
651 	NEVER	= 1,
652 	LESS	= 2,
653 	EQUAL	= 3,
654 	LESS_EQUAL	= 4,
655 	GREATER	= 5,
656 	NOT_EQUAL	= 6,
657 	GREATER_EQUAL	= 7,
658 	ALWAYS	= 8
659 }
660 
661 enum D3D11_DEPTH_WRITE_MASK : uint
662 {
663 	ZERO	= 0,
664 	ALL	= 1
665 }
666 
667 enum D3D11_STENCIL_OP : uint
668 {
669 	KEEP	= 1,
670 	ZERO	= 2,
671 	REPLACE	= 3,
672 	INCR_SAT	= 4,
673 	DECR_SAT	= 5,
674 	INVERT	= 6,
675 	INCR	= 7,
676 	DECR	= 8
677 }
678 
679 enum D3D11_BLEND : uint
680 {
681 	ZERO	= 1,
682 	ONE	= 2,
683 	SRC_COLOR	= 3,
684 	INV_SRC_COLOR	= 4,
685 	SRC_ALPHA	= 5,
686 	INV_SRC_ALPHA	= 6,
687 	DEST_ALPHA	= 7,
688 	INV_DEST_ALPHA	= 8,
689 	DEST_COLOR	= 9,
690 	INV_DEST_COLOR	= 10,
691 	SRC_ALPHA_SAT	= 11,
692 	BLEND_FACTOR	= 14,
693 	INV_BLEND_FACTOR	= 15,
694 	SRC1_COLOR	= 16,
695 	INV_SRC1_COLOR	= 17,
696 	SRC1_ALPHA	= 18,
697 	INV_SRC1_ALPHA	= 19
698 }
699 
700 enum D3D11_BLEND_OP : uint
701 {
702 	ADD	= 1,
703 	SUBTRACT = 2,
704 	REV_SUBTRACT = 3,
705 	MIN	= 4,
706 	MAX	= 5
707 }
708 
709 enum D3D11_COLOR_WRITE_ENABLE : uint
710 {
711 	RED	= 1,
712 	GREEN = 2,
713 	BLUE = 4,
714 	ALPHA = 8,
715 	ALL	= ( ( ( RED | GREEN )  | BLUE )  | ALPHA ) 
716 }
717 
718 enum D3D11_TEXTURECUBE_FACE : uint
719 {
720 	POSITIVE_X	= 0,
721 	NEGATIVE_X	= 1,
722 	POSITIVE_Y	= 2,
723 	NEGATIVE_Y	= 3,
724 	POSITIVE_Z	= 4,
725 	NEGATIVE_Z	= 5
726 }
727 
728 enum D3D11_BUFFEREX_SRV_FLAG : uint
729 {
730 	RAW	= 0x1
731 }
732 
733 enum D3D11_DSV_FLAG : uint
734 {
735 	DEPTH	= 0x1L,
736 	STENCIL	= 0x2L
737 }
738 
739 enum D3D11_BUFFER_UAV_FLAG : uint
740 {
741 	RAW	= 0x1,
742 	APPEND	= 0x2,
743 	COUNTER	= 0x4
744 }
745 
746 enum D3D11_FILTER : uint
747 {
748 	MIN_MAG_MIP_POINT	= 0,
749 	MIN_MAG_POINT_MIP_LINEAR	= 0x1,
750 	MIN_POINT_MAG_LINEAR_MIP_POINT	= 0x4,
751 	MIN_POINT_MAG_MIP_LINEAR	= 0x5,
752 	MIN_LINEAR_MAG_MIP_POINT	= 0x10,
753 	MIN_LINEAR_MAG_POINT_MIP_LINEAR	= 0x11,
754 	MIN_MAG_LINEAR_MIP_POINT	= 0x14,
755 	MIN_MAG_MIP_LINEAR	= 0x15,
756 	ANISOTROPIC	= 0x55,
757 	COMPARISON_MIN_MAG_MIP_POINT	= 0x80,
758 	COMPARISON_MIN_MAG_POINT_MIP_LINEAR	= 0x81,
759 	COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT	= 0x84,
760 	COMPARISON_MIN_POINT_MAG_MIP_LINEAR	= 0x85,
761 	COMPARISON_MIN_LINEAR_MAG_MIP_POINT	= 0x90,
762 	COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR	= 0x91,
763 	COMPARISON_MIN_MAG_LINEAR_MIP_POINT	= 0x94,
764 	COMPARISON_MIN_MAG_MIP_LINEAR	= 0x95,
765 	COMPARISON_ANISOTROPIC	= 0xd5,
766 	MINIMUM_MIN_MAG_MIP_POINT	= 0x100,
767 	MINIMUM_MIN_MAG_POINT_MIP_LINEAR	= 0x101,
768 	MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT	= 0x104,
769 	MINIMUM_MIN_POINT_MAG_MIP_LINEAR	= 0x105,
770 	MINIMUM_MIN_LINEAR_MAG_MIP_POINT	= 0x110,
771 	MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR	= 0x111,
772 	MINIMUM_MIN_MAG_LINEAR_MIP_POINT	= 0x114,
773 	MINIMUM_MIN_MAG_MIP_LINEAR	= 0x115,
774 	MINIMUM_ANISOTROPIC	= 0x155,
775 	MAXIMUM_MIN_MAG_MIP_POINT	= 0x180,
776 	MAXIMUM_MIN_MAG_POINT_MIP_LINEAR	= 0x181,
777 	MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT	= 0x184,
778 	MAXIMUM_MIN_POINT_MAG_MIP_LINEAR	= 0x185,
779 	MAXIMUM_MIN_LINEAR_MAG_MIP_POINT	= 0x190,
780 	MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR	= 0x191,
781 	MAXIMUM_MIN_MAG_LINEAR_MIP_POINT	= 0x194,
782 	MAXIMUM_MIN_MAG_MIP_LINEAR	= 0x195,
783 	MAXIMUM_ANISOTROPIC	= 0x1d5
784 }
785 
786 enum D3D11_FILTER_TYPE : uint
787 {
788 	POINT = 0,
789 	LINEAR = 1
790 }
791 
792 enum D3D11_FILTER_REDUCTION_TYPE : uint
793 {
794 	STANDARD = 0,
795 	COMPARISON = 1,
796 	MINIMUM	= 2,
797 	MAXIMUM	= 3
798 }
799 
800 enum D3D11_TEXTURE_ADDRESS_MODE : uint
801 {
802 	WRAP	= 1,
803 	MIRROR	= 2,
804 	CLAMP	= 3,
805 	BORDER	= 4,
806 	MIRROR_ONCE	= 5
807 }
808 
809 enum D3D11_FORMAT_SUPPORT : uint
810 {
811 	BUFFER	= 0x1,
812 	IA_VERTEX_BUFFER	= 0x2,
813 	IA_INDEX_BUFFER	= 0x4,
814 	SO_BUFFER	= 0x8,
815 	TEXTURE1D	= 0x10,
816 	TEXTURE2D	= 0x20,
817 	TEXTURE3D	= 0x40,
818 	TEXTURECUBE	= 0x80,
819 	SHADER_LOAD	= 0x100,
820 	SHADER_SAMPLE	= 0x200,
821 	SHADER_SAMPLE_COMPARISON	= 0x400,
822 	SHADER_SAMPLE_MONO_TEXT	= 0x800,
823 	MIP	= 0x1000,
824 	MIP_AUTOGEN	= 0x2000,
825 	RENDER_TARGET	= 0x4000,
826 	BLENDABLE	= 0x8000,
827 	DEPTH_STENCIL	= 0x10000,
828 	CPU_LOCKABLE	= 0x20000,
829 	MULTISAMPLE_RESOLVE	= 0x40000,
830 	DISPLAY	= 0x80000,
831 	CAST_WITHIN_BIT_LAYOUT	= 0x100000,
832 	MULTISAMPLE_RENDERTARGET	= 0x200000,
833 	MULTISAMPLE_LOAD	= 0x400000,
834 	SHADER_GATHER	= 0x800000,
835 	BACK_BUFFER_CAST	= 0x1000000,
836 	TYPED_UNORDERED_ACCESS_VIEW	= 0x2000000,
837 	SHADER_GATHER_COMPARISON	= 0x4000000,
838 	DECODER_OUTPUT	= 0x8000000,
839 	VIDEO_PROCESSOR_OUTPUT	= 0x10000000,
840 	VIDEO_PROCESSOR_INPUT	= 0x20000000,
841 	VIDEO_ENCODER	= 0x40000000
842 }
843 
844 enum D3D11_FORMAT_SUPPORT2 : uint
845 {
846 	UAV_ATOMIC_ADD	= 0x1,
847 	UAV_ATOMIC_BITWISE_OPS	= 0x2,
848 	UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE	= 0x4,
849 	UAV_ATOMIC_EXCHANGE	= 0x8,
850 	UAV_ATOMIC_SIGNED_MIN_OR_MAX	= 0x10,
851 	UAV_ATOMIC_UNSIGNED_MIN_OR_MAX	= 0x20,
852 	UAV_TYPED_LOAD	= 0x40,
853 	UAV_TYPED_STORE	= 0x80,
854 	OUTPUT_MERGER_LOGIC_OP	= 0x100,
855 	TILED	= 0x200,
856 	SHAREABLE	= 0x400,
857 	MULTIPLANE_OVERLAY	= 0x4000
858 }
859 
860 enum D3D11_ASYNC_GETDATA_FLAG : uint
861 {
862 	DONOTFLUSH	= 0x1
863 }
864 
865 enum D3D11_QUERY : uint
866 {
867 	EVENT	= 0,
868 	OCCLUSION	= ( EVENT + 1 ) ,
869 	TIMESTAMP	= ( OCCLUSION + 1 ) ,
870 	TIMESTAMP_DISJOINT	= ( TIMESTAMP + 1 ) ,
871 	PIPELINE_STATISTICS	= ( TIMESTAMP_DISJOINT + 1 ) ,
872 	OCCLUSION_PREDICATE	= ( PIPELINE_STATISTICS + 1 ) ,
873 	SO_STATISTICS	= ( OCCLUSION_PREDICATE + 1 ) ,
874 	SO_OVERFLOW_PREDICATE	= ( SO_STATISTICS + 1 ) ,
875 	SO_STATISTICS_STREAM0	= ( SO_OVERFLOW_PREDICATE + 1 ) ,
876 	SO_OVERFLOW_PREDICATE_STREAM0	= ( SO_STATISTICS_STREAM0 + 1 ) ,
877 	SO_STATISTICS_STREAM1	= ( SO_OVERFLOW_PREDICATE_STREAM0 + 1 ) ,
878 	SO_OVERFLOW_PREDICATE_STREAM1	= ( SO_STATISTICS_STREAM1 + 1 ) ,
879 	SO_STATISTICS_STREAM2	= ( SO_OVERFLOW_PREDICATE_STREAM1 + 1 ) ,
880 	SO_OVERFLOW_PREDICATE_STREAM2	= ( SO_STATISTICS_STREAM2 + 1 ) ,
881 	SO_STATISTICS_STREAM3	= ( SO_OVERFLOW_PREDICATE_STREAM2 + 1 ) ,
882 	SO_OVERFLOW_PREDICATE_STREAM3	= ( SO_STATISTICS_STREAM3 + 1 ) 
883 }
884 
885 enum D3D11_QUERY_MISC_FLAG : uint
886 {
887 	PREDICATEHINT	= 0x1
888 }
889 
890 enum D3D11_COUNTER : uint
891 {
892 	DEVICE_DEPENDENT_0	= 0x40000000
893 }
894 
895 enum D3D11_COUNTER_TYPE : uint
896 {
897 	FLOAT32	= 0,
898 	UINT16	= ( FLOAT32 + 1 ) ,
899 	UINT32	= ( UINT16 + 1 ) ,
900 	UINT64	= ( UINT32 + 1 ) 
901 }
902 
903 enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS : uint
904 {
905 	STANDARD_MULTISAMPLE_PATTERN	= 0xffffffff,
906 	CENTER_MULTISAMPLE_PATTERN	= 0xfffffffe
907 }
908 
909 enum D3D11_DEVICE_CONTEXT_TYPE : uint
910 {
911 	IMMEDIATE	= 0,
912 	DEFERRED	= ( IMMEDIATE + 1 ) 
913 } 
914 
915 enum D3D11_FEATURE : uint
916 {
917 	THREADING	= 0,
918 	DOUBLES	= ( THREADING + 1 ) ,
919 	FORMAT_SUPPORT	= ( DOUBLES + 1 ) ,
920 	FORMAT_SUPPORT2	= ( FORMAT_SUPPORT + 1 ) ,
921 	D3D10_X_HARDWARE_OPTIONS	= ( FORMAT_SUPPORT2 + 1 ) ,
922 	D3D11_OPTIONS	= ( D3D10_X_HARDWARE_OPTIONS + 1 ) ,
923 	ARCHITECTURE_INFO	= ( D3D11_OPTIONS + 1 ) ,
924 	D3D9_OPTIONS	= ( ARCHITECTURE_INFO + 1 ) ,
925 	SHADER_MIN_PRECISION_SUPPORT	= ( D3D9_OPTIONS + 1 ) ,
926 	D3D9_SHADOW_SUPPORT	= ( SHADER_MIN_PRECISION_SUPPORT + 1 ) ,
927 	D3D11_OPTIONS1	= ( D3D9_SHADOW_SUPPORT + 1 ) ,
928 	D3D9_SIMPLE_INSTANCING_SUPPORT	= ( D3D11_OPTIONS1 + 1 ) ,
929 	MARKER_SUPPORT	= ( D3D9_SIMPLE_INSTANCING_SUPPORT + 1 ) ,
930 	D3D9_OPTIONS1	= ( MARKER_SUPPORT + 1 ) ,
931 	D3D11_OPTIONS2	= ( D3D9_OPTIONS1 + 1 ) ,
932 	D3D11_OPTIONS3	= ( D3D11_OPTIONS2 + 1 ) ,
933 	GPU_VIRTUAL_ADDRESS_SUPPORT	= ( D3D11_OPTIONS3 + 1 ) ,
934 	D3D11_OPTIONS4	= ( GPU_VIRTUAL_ADDRESS_SUPPORT + 1 ) ,
935 	SHADER_CACHE	= ( D3D11_OPTIONS4 + 1 ) 
936 }
937 
938 enum D3D11_SHADER_MIN_PRECISION_SUPPORT : uint
939 {
940 	PRECISION_10_BIT	= 0x1,
941 	PRECISION_16_BIT	= 0x2
942 }
943 
944 enum D3D11_TILED_RESOURCES_TIER : uint
945 {
946 	NOT_SUPPORTED	= 0,
947 	TIER_1	= 1,
948 	TIER_2	= 2,
949 	TIER_3	= 3
950 }
951 
952 enum D3D11_CONSERVATIVE_RASTERIZATION_TIER : uint
953 {
954 	NOT_SUPPORTED	= 0,
955 	TIER_1	= 1,
956 	TIER_2	= 2,
957 	TIER_3	= 3
958 }
959 
960 enum D3D11_SHADER_CACHE_SUPPORT_FLAGS : uint
961 {
962 	NONE	= 0,
963 	AUTOMATIC_INPROC_CACHE	= 0x1,
964 	AUTOMATIC_DISK_CACHE	= 0x2
965 }
966 
967 enum D3D11_VIDEO_DECODER_BUFFER_TYPE : uint
968 {
969 	PICTURE_PARAMETERS	= 0,
970 	MACROBLOCK_CONTROL	= 1,
971 	RESIDUAL_DIFFERENCE	= 2,
972 	DEBLOCKING_CONTROL	= 3,
973 	INVERSE_QUANTIZATION_MATRIX	= 4,
974 	SLICE_CONTROL	= 5,
975 	BITSTREAM	= 6,
976 	MOTION_VECTOR	= 7,
977 	FILM_GRAIN	= 8
978 }
979 
980 enum D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT : uint
981 {
982 	INPUT	= 0x1,
983 	OUTPUT	= 0x2
984 }
985 
986 enum D3D11_VIDEO_PROCESSOR_DEVICE_CAPS : uint
987 {
988 	LINEAR_SPACE	= 0x1,
989 	xvYCC	= 0x2,
990 	RGB_RANGE_CONVERSION	= 0x4,
991 	YCbCr_MATRIX_CONVERSION	= 0x8,
992 	NOMINAL_RANGE	= 0x10
993 }
994 
995 enum D3D11_VIDEO_PROCESSOR_FEATURE_CAPS : uint
996 {
997 	ALPHA_FILL	= 0x1,
998 	CONSTRICTION	= 0x2,
999 	LUMA_KEY	= 0x4,
1000 	ALPHA_PALETTE	= 0x8,
1001 	LEGACY	= 0x10,
1002 	STEREO	= 0x20,
1003 	ROTATION	= 0x40,
1004 	ALPHA_STREAM	= 0x80,
1005 	PIXEL_ASPECT_RATIO	= 0x100,
1006 	MIRROR	= 0x200,
1007 	SHADER_USAGE	= 0x400,
1008 	METADATA_HDR10	= 0x800
1009 }
1010 
1011 enum CAPS : uint
1012 {
1013 	BRIGHTNESS	= 0x1,
1014 	CONTRAST	= 0x2,
1015 	HUE	= 0x4,
1016 	SATURATION	= 0x8,
1017 	NOISE_REDUCTION	= 0x10,
1018 	EDGE_ENHANCEMENT	= 0x20,
1019 	ANAMORPHIC_SCALING	= 0x40,
1020 	STEREO_ADJUSTMENT	= 0x80
1021 }
1022 
1023 enum D3D11_VIDEO_PROCESSOR_FORMAT_CAPS : uint
1024 {
1025 	RGB_INTERLACED	= 0x1,
1026 	RGB_PROCAMP	= 0x2,
1027 	RGB_LUMA_KEY	= 0x4,
1028 	PALETTE_INTERLACED	= 0x8
1029 }
1030 
1031 enum D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS : uint
1032 {
1033 	DENOISE	= 0x1,
1034 	DERINGING	= 0x2,
1035 	EDGE_ENHANCEMENT	= 0x4,
1036 	COLOR_CORRECTION	= 0x8,
1037 	FLESH_TONE_MAPPING	= 0x10,
1038 	IMAGE_STABILIZATION	= 0x20,
1039 	SUPER_RESOLUTION	= 0x40,
1040 	ANAMORPHIC_SCALING	= 0x80
1041 }
1042 
1043 enum D3D11_VIDEO_PROCESSOR_STEREO_CAPS : uint
1044 {
1045 	MONO_OFFSET	= 0x1,
1046 	ROW_INTERLEAVED	= 0x2,
1047 	COLUMN_INTERLEAVED	= 0x4,
1048 	CHECKERBOARD	= 0x8,
1049 	FLIP_MODE	= 0x10
1050 }
1051 
1052 enum D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS : uint
1053 {
1054 	DEINTERLACE_BLEND	= 0x1,
1055 	DEINTERLACE_BOB	= 0x2,
1056 	DEINTERLACE_ADAPTIVE	= 0x4,
1057 	DEINTERLACE_MOTION_COMPENSATION	= 0x8,
1058 	INVERSE_TELECINE	= 0x10,
1059 	FRAME_RATE_CONVERSION	= 0x20
1060 }
1061 
1062 enum D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS : uint
1063 {
1064 	CAPS_32	= 0x1,
1065 	CAPS_22	= 0x2,
1066 	CAPS_2224	= 0x4,
1067 	CAPS_2332	= 0x8,
1068 	CAPS_32322	= 0x10,
1069 	CAPS_55	= 0x20,
1070 	CAPS_64	= 0x40,
1071 	CAPS_87	= 0x80,
1072 	CAPS_222222222223	= 0x100,
1073 	CAPS_OTHER	= 0x80000000
1074 }
1075 
1076 enum D3D11_CONTENT_PROTECTION_CAPS : uint
1077 {
1078 	SOFTWARE	= 0x1,
1079 	HARDWARE	= 0x2,
1080 	PROTECTION_ALWAYS_ON	= 0x4,
1081 	PARTIAL_DECRYPTION	= 0x8,
1082 	CONTENT_KEY	= 0x10,
1083 	FRESHEN_SESSION_KEY	= 0x20,
1084 	ENCRYPTED_READ_BACK	= 0x40,
1085 	ENCRYPTED_READ_BACK_KEY	= 0x80,
1086 	SEQUENTIAL_CTR_IV	= 0x100,
1087 	ENCRYPT_SLICEDATA_ONLY	= 0x200,
1088 	DECRYPTION_BLT	= 0x400,
1089 	HARDWARE_PROTECT_UNCOMPRESSED	= 0x800,
1090 	HARDWARE_PROTECTED_MEMORY_PAGEABLE	= 0x1000,
1091 	HARDWARE_TEARDOWN	= 0x2000,
1092 	HARDWARE_DRM_COMMUNICATION	= 0x4000
1093 }
1094 
1095 enum D3D11_VIDEO_PROCESSOR_FILTER : uint
1096 {
1097 	BRIGHTNESS	= 0,
1098 	CONTRAST	= 1,
1099 	HUE	= 2,
1100 	SATURATION	= 3,
1101 	NOISE_REDUCTION	= 4,
1102 	EDGE_ENHANCEMENT	= 5,
1103 	ANAMORPHIC_SCALING	= 6,
1104 	STEREO_ADJUSTMENT	= 7
1105 }
1106 
1107 enum D3D11_VIDEO_FRAME_FORMAT : uint
1108 {
1109 	PROGRESSIVE	= 0,
1110 	INTERLACED_TOP_FIELD_FIRST	= 1,
1111 	INTERLACED_BOTTOM_FIELD_FIRST	= 2
1112 }
1113 
1114 enum D3D11_VIDEO_USAGE : uint
1115 {
1116 	D3D11_VIDEO_USAGE_PLAYBACK_NORMAL	= 0,
1117 	D3D11_VIDEO_USAGE_OPTIMAL_SPEED	= 1,
1118 	D3D11_VIDEO_USAGE_OPTIMAL_QUALITY	= 2
1119 }
1120 
1121 enum D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE : uint
1122 {
1123 	RANGE_UNDEFINED	= 0,
1124 	RANGE_16_235	= 1,
1125 	RANGE_0_255	= 2
1126 }
1127 
1128 enum D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE : uint
1129 {
1130 	OPAQUE	= 0,
1131 	BACKGROUND	= 1,
1132 	DESTINATION	= 2,
1133 	SOURCE_STREAM	= 3
1134 }
1135 
1136 enum D3D11_VIDEO_PROCESSOR_OUTPUT_RATE : uint
1137 {
1138 	NORMAL	= 0,
1139 	HALF	= 1,
1140 	CUSTOM	= 2
1141 }
1142 
1143 enum D3D11_VIDEO_PROCESSOR_STEREO_FORMAT : uint
1144 {
1145 	MONO	= 0,
1146 	HORIZONTAL	= 1,
1147 	VERTICAL	= 2,
1148 	SEPARATE	= 3,
1149 	MONO_OFFSET	= 4,
1150 	ROW_INTERLEAVED	= 5,
1151 	COLUMN_INTERLEAVED	= 6,
1152 	CHECKERBOARD	= 7
1153 }
1154 
1155 enum D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE : uint
1156 {
1157 	NONE	= 0,
1158 	FRAME0	= 1,
1159 	FRAME1	= 2
1160 }
1161 
1162 enum D3D11_VIDEO_PROCESSOR_ROTATION : uint
1163 {
1164 	ROTATION_IDENTITY	= 0,
1165 	ROTATION_90	= 1,
1166 	ROTATION_180	= 2,
1167 	ROTATION_270	= 3
1168 }
1169 
1170 enum D3D11_AUTHENTICATED_CHANNEL_TYPE : uint
1171 {
1172 	D3D11	= 1,
1173 	DRIVER_SOFTWARE	= 2,
1174 	DRIVER_HARDWARE	= 3
1175 }
1176 
1177 enum D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE : uint
1178 {
1179 	UNKNOWN	= 0,
1180 	DWM	= 1,
1181 	HANDLE	= 2
1182 }
1183 
1184 enum D3D11_BUS_TYPE : uint
1185 {
1186 	TYPE_OTHER	= 0,
1187 	TYPE_PCI	= 0x1,
1188 	TYPE_PCIX	= 0x2,
1189 	TYPE_PCIEXPRESS	= 0x3,
1190 	TYPE_AGP	= 0x4,
1191 	IMPL_MODIFIER_INSIDE_OF_CHIPSET	= 0x10000,
1192 	IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP	= 0x20000,
1193 	IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET	= 0x30000,
1194 	IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR	= 0x40000,
1195 	IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE	= 0x50000,
1196 	IMPL_MODIFIER_NON_STANDARD	= 0x80000000
1197 }
1198 
1199 enum D3D11_VDOV_DIMENSION : uint
1200 {
1201 	UNKNOWN	= 0,
1202 	TEXTURE2D	= 1
1203 }
1204 
1205 enum D3D11_VPIV_DIMENSION : uint
1206 {
1207 	UNKNOWN	= 0,
1208 	TEXTURE2D	= 1
1209 }
1210 
1211 enum D3D11_VPOV_DIMENSION : uint
1212 {
1213 	UNKNOWN	= 0,
1214 	TEXTURE2D	= 1,
1215 	TEXTURE2DARRAY	= 2
1216 }
1217 
1218 enum D3D11_CREATE_DEVICE_FLAG : uint
1219 {
1220 	SINGLETHREADED	= 0x1,
1221 	DEBUG	= 0x2,
1222 	SWITCH_TO_REF	= 0x4,
1223 	PREVENT_INTERNAL_THREADING_OPTIMIZATIONS	= 0x8,
1224 	BGRA_SUPPORT	= 0x20,
1225 	DEBUGGABLE	= 0x40,
1226 	PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY	= 0x80,
1227 	DISABLE_GPU_TIMEOUT	= 0x100,
1228 	VIDEO_SUPPORT	= 0x800
1229 }
1230 
1231 ///
1232 /// Structures
1233 ///
1234 
1235 alias RECT D3D11_RECT;
1236 
1237 struct CD3D11_DEFAULT {};
1238 
1239 struct D3D11_BOX {
1240 	uint left;
1241 	uint top;
1242 	uint front;
1243 	uint right;
1244 	uint bottom;
1245 	uint back;
1246 }
1247 
1248 struct D3D11_COUNTER_DESC {
1249 	D3D11_COUNTER Counter;
1250 	uint MiscFlags;
1251 }
1252 
1253 struct D3D11_COUNTER_INFO {
1254 	D3D11_COUNTER LastDeviceDependentCounter;
1255 	uint          NumSimultaneousCounters;
1256 	ubyte         NumDetectableParallelUnits;
1257 }
1258 
1259 struct D3D11_DEPTH_STENCIL_DESC {
1260 	bool                       DepthEnable;
1261 	D3D11_DEPTH_WRITE_MASK     DepthWriteMask;
1262 	D3D11_COMPARISON_FUNC      DepthFunc;
1263 	bool                       StencilEnable;
1264 	ubyte                      StencilReadMask;
1265 	ubyte                      StencilWriteMask;
1266 	D3D11_DEPTH_STENCILOP_DESC FrontFace;
1267 	D3D11_DEPTH_STENCILOP_DESC BackFace;
1268 }
1269 
1270 struct D3D11_DEPTH_STENCILOP_DESC {
1271 	D3D11_STENCIL_OP      StencilFailOp;
1272 	D3D11_STENCIL_OP      StencilDepthFailOp;
1273 	D3D11_STENCIL_OP      StencilPassOp;
1274 	D3D11_COMPARISON_FUNC StencilFunc;
1275 }
1276 
1277 struct DATA_D3D10_X_HARDWARE_OPTIONS {
1278 	bool ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x;
1279 }
1280 
1281 struct DATA_DOUBLES {
1282 	bool DoublePrecisionFloatShaderOps;
1283 }
1284 
1285 struct DATA_FORMAT_SUPPORT {
1286 	DXGI_FORMAT InFormat;
1287 	uint OutFormatSupport;
1288 }
1289 
1290 struct DATA_FORMAT_SUPPORT2 {
1291 	DXGI_FORMAT InFormat;
1292 	uint OutFormatSupport2;
1293 }
1294 
1295 struct DATA_THREADING {
1296 	bool DriverConcurrentCreates;
1297 	bool DriverCommandLists;
1298 }
1299 
1300 struct D3D11_INPUT_ELEMENT_DESC {
1301 	const(char)*			   SemanticName;
1302 	uint                       SemanticIndex;
1303 	DXGI_FORMAT                Format;
1304 	uint                       InputSlot;
1305 	uint                       AlignedByteOffset;
1306 	D3D11_INPUT_CLASSIFICATION InputSlotClass;
1307 	uint                       InstanceDataStepRate;
1308 }
1309 
1310 struct DATA_PIPELINE_STATISTICS {
1311 	ulong IAVertices;
1312 	ulong IAPrimitives;
1313 	ulong VSInvocations;
1314 	ulong GSInvocations;
1315 	ulong GSPrimitives;
1316 	ulong CInvocations;
1317 	ulong CPrimitives;
1318 	ulong PSInvocations;
1319 	ulong HSInvocations;
1320 	ulong DSInvocations;
1321 	ulong CSInvocations;
1322 }
1323 
1324 struct DATA_SO_STATISTICS {
1325 	ulong NumPrimitivesWritten;
1326 	ulong PrimitivesStorageNeeded;
1327 }
1328 
1329 struct DATA_TIMESTAMP_DISJOINT {
1330 	ulong Frequency;
1331 	bool Disjoint;
1332 }
1333 
1334 struct D3D11_QUERY_DESC {
1335 	D3D11_QUERY Query;
1336 	uint MiscFlags;
1337 }
1338 
1339 struct D3D11_RASTERIZER_DESC {
1340 	D3D11_FILL_MODE FillMode;
1341 	D3D11_CULL_MODE CullMode;
1342 	bool            FrontCounterClockwise;
1343 	int             DepthBias;
1344 	float           DepthBiasClamp;
1345 	float           SlopeScaledDepthBias;
1346 	bool            DepthClipEnable;
1347 	bool            ScissorEnable;
1348 	bool            MultisampleEnable;
1349 	bool            AntialiasedLineEnable;
1350 }
1351 
1352 struct D3D11_RENDER_TARGET_BLEND_DESC {
1353 	bool           BlendEnable;
1354 	D3D11_BLEND    SrcBlend;
1355 	D3D11_BLEND    DestBlend;
1356 	D3D11_BLEND_OP BlendOp;
1357 	D3D11_BLEND    SrcBlendAlpha;
1358 	D3D11_BLEND    DestBlendAlpha;
1359 	D3D11_BLEND_OP BlendOpAlpha;
1360 	ubyte          RenderTargetWriteMask;
1361 }
1362 
1363 struct D3D11_BLEND_DESC {
1364 	bool AlphaToCoverageEnable;
1365 	bool IndependentBlendEnable;
1366 	D3D11_RENDER_TARGET_BLEND_DESC[8] RenderTarget;
1367 }
1368 
1369 struct D3D11_SAMPLER_DESC {
1370 	D3D11_FILTER               Filter;
1371 	D3D11_TEXTURE_ADDRESS_MODE AddressU;
1372 	D3D11_TEXTURE_ADDRESS_MODE AddressV;
1373 	D3D11_TEXTURE_ADDRESS_MODE AddressW;
1374 	float                      MipLODBias;
1375 	uint                       MaxAnisotropy;
1376 	D3D11_COMPARISON_FUNC      ComparisonFunc;
1377 	float[4]                   BorderColor;
1378 	float                      MinLOD;
1379 	float                      MaxLOD;
1380 }
1381 
1382 struct D3D11_SO_DECLARATION_ENTRY {
1383 	uint   Stream;
1384 	const(char)* SemanticName;
1385 	uint   SemanticIndex;
1386 	ubyte   StartComponent;
1387 	ubyte   ComponentCount;
1388 	ubyte   OutputSlot;
1389 }
1390 
1391 struct D3D11_VIEWPORT {
1392 	float TopLeftX;
1393 	float TopLeftY;
1394 	float Width;
1395 	float Height;
1396 	float MinDepth;
1397 	float MaxDepth;
1398 }
1399 
1400 struct DATA_ARCHITECTURE_INFO {
1401 	bool TileBasedDeferredRenderer;
1402 }
1403 
1404 struct DATA_D3D9_OPTIONS {
1405 	bool FullNonPow2TextureSupport;
1406 }
1407 
1408 struct DATA_D3D9_SHADOW_SUPPORT {
1409 	bool SupportsDepthAsTextureWithLessEqualComparisonFilter;
1410 }
1411 
1412 struct DATA_D3D11_OPTIONS {
1413 	bool OutputMergerLogicOp;
1414 	bool UAVOnlyRenderingForcedSampleCount;
1415 	bool DiscardAPIsSeenByDriver;
1416 	bool FlagsForUpdateAndCopySeenByDriver;
1417 	bool ClearView;
1418 	bool CopyWithOverlap;
1419 	bool ConstantBufferPartialUpdate;
1420 	bool ConstantBufferOffsetting;
1421 	bool MapNoOverwriteOnDynamicConstantBuffer;
1422 	bool MapNoOverwriteOnDynamicBufferSRV;
1423 	bool MultisampleRTVWithForcedSampleCountOne;
1424 	bool SAD4ShaderInstructions;
1425 	bool ExtendedDoublesShaderInstructions;
1426 	bool ExtendedResourceSharing;
1427 }
1428 
1429 struct DATA_SHADER_MIN_PRECISION_SUPPORT {
1430 	uint PixelShaderMinPrecision;
1431 	uint AllOtherShaderStagesMinPrecision;
1432 }
1433 
1434 struct DATA_D3D9_SIMPLE_INSTANCING_SUPPORT {
1435 	bool SimpleInstancingSupported;
1436 }
1437 
1438 struct DATA_D3D11_OPTIONS1 {
1439 	D3D11_TILED_RESOURCES_TIER TiledResourcesTier;
1440 	bool MinMaxFiltering;
1441 	bool ClearViewAlsoSupportsDepthOnlyFormats;
1442 	bool MapOnDefaultBuffers;
1443 }
1444 
1445 struct DATA_MARKER_SUPPORT {
1446 	bool Profile;
1447 }
1448 
1449 struct D3D11_BUFFER_DESC {
1450 	uint ByteWidth;
1451 	D3D11_USAGE Usage;
1452 	uint BindFlags;
1453 	uint CPUAccessFlags;
1454 	uint MiscFlags;
1455 	uint StructureByteStride;
1456 }
1457 
1458 struct D3D11_BUFFER_RTV {
1459 	union {
1460 		uint FirstElement;
1461 		uint ElementOffset;
1462 	};
1463 	union {
1464 		uint NumElements;
1465 		uint ElementWidth;
1466 	};
1467 }
1468 
1469 struct D3D11_BUFFER_SRV {
1470 	union {
1471 		uint FirstElement;
1472 		uint ElementOffset;
1473 	};
1474 	union {
1475 		uint NumElements;
1476 		uint ElementWidth;
1477 	};
1478 }
1479 
1480 struct D3D11_BUFFER_UAV {
1481 	uint FirstElement;
1482 	uint NumElements;
1483 	uint Flags;
1484 }
1485 
1486 struct D3D11_BUFFEREX_SRV {
1487 	uint FirstElement;
1488 	uint NumElements;
1489 	uint Flags;
1490 }
1491 
1492 struct D3D11_DEPTH_STENCIL_VIEW_DESC {
1493 	DXGI_FORMAT         Format;
1494 	D3D11_DSV_DIMENSION ViewDimension;
1495 	uint                Flags;
1496 	union {
1497 		D3D11_TEX1D_DSV         Texture1D;
1498 		D3D11_TEX1D_ARRAY_DSV   Texture1DArray;
1499 		D3D11_TEX2D_DSV         Texture2D;
1500 		D3D11_TEX2D_ARRAY_DSV   Texture2DArray;
1501 		D3D11_TEX2DMS_DSV       Texture2DMS;
1502 		D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray;
1503 	};
1504 }
1505 
1506 struct D3D11_MAPPED_SUBRESOURCE {
1507 	void *pData;
1508 	uint RowPitch;
1509 	uint DepthPitch;
1510 }
1511 
1512 struct D3D11_RENDER_TARGET_VIEW_DESC {
1513 	DXGI_FORMAT         Format;
1514 	D3D11_RTV_DIMENSION ViewDimension;
1515 	union {
1516 		D3D11_BUFFER_RTV        Buffer;
1517 		D3D11_TEX1D_RTV         Texture1D;
1518 		D3D11_TEX1D_ARRAY_RTV   Texture1DArray;
1519 		D3D11_TEX2D_RTV         Texture2D;
1520 		D3D11_TEX2D_ARRAY_RTV   Texture2DArray;
1521 		D3D11_TEX2DMS_RTV       Texture2DMS;
1522 		D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray;
1523 		D3D11_TEX3D_RTV         Texture3D;
1524 	};
1525 }
1526 
1527 struct D3D11_SHADER_RESOURCE_VIEW_DESC {
1528 	DXGI_FORMAT         Format;
1529 	D3D11_SRV_DIMENSION ViewDimension;
1530 	union {
1531 		D3D11_BUFFER_SRV        Buffer;
1532 		D3D11_TEX1D_SRV         Texture1D;
1533 		D3D11_TEX1D_ARRAY_SRV   Texture1DArray;
1534 		D3D11_TEX2D_SRV         Texture2D;
1535 		D3D11_TEX2D_ARRAY_SRV   Texture2DArray;
1536 		D3D11_TEX2DMS_SRV       Texture2DMS;
1537 		D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray;
1538 		D3D11_TEX3D_SRV         Texture3D;
1539 		D3D11_TEXCUBE_SRV       TextureCube;
1540 		D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray;
1541 		D3D11_BUFFEREX_SRV      BufferEx;
1542 	};
1543 }
1544 
1545 struct D3D11_SUBRESOURCE_DATA {
1546 	const void *pSysMem;
1547 	uint SysMemPitch;
1548 	uint SysMemSlicePitch;
1549 }
1550 
1551 struct D3D11_TEX1D_ARRAY_DSV {
1552 	uint MipSlice;
1553 	uint FirstArraySlice;
1554 	uint ArraySize;
1555 }
1556 
1557 struct D3D11_TEX1D_ARRAY_RTV {
1558 	uint MipSlice;
1559 	uint FirstArraySlice;
1560 	uint ArraySize;
1561 }
1562 
1563 struct D3D11_TEX1D_ARRAY_SRV {
1564 	uint MostDetailedMip;
1565 	uint MipLevels;
1566 	uint FirstArraySlice;
1567 	uint ArraySize;
1568 }
1569 
1570 struct D3D11_TEX1D_ARRAY_UAV {
1571 	uint MipSlice;
1572 	uint FirstArraySlice;
1573 	uint ArraySize;
1574 }
1575 
1576 struct D3D11_TEX1D_DSV {
1577 	uint MipSlice;
1578 }
1579 
1580 struct D3D11_TEX1D_RTV {
1581 	uint MipSlice;
1582 }
1583 
1584 struct D3D11_TEX1D_SRV {
1585 	uint MostDetailedMip;
1586 	uint MipLevels;
1587 }
1588 
1589 struct D3D11_TEX1D_UAV {
1590 	uint MipSlice;
1591 }
1592 
1593 struct D3D11_TEX2D_ARRAY_DSV {
1594 	uint MipSlice;
1595 	uint FirstArraySlice;
1596 	uint ArraySize;
1597 }
1598 
1599 struct D3D11_TEX2D_ARRAY_RTV {
1600 	uint MipSlice;
1601 	uint FirstArraySlice;
1602 	uint ArraySize;
1603 }
1604 
1605 struct D3D11_TEX2D_ARRAY_SRV {
1606 	uint MostDetailedMip;
1607 	uint MipLevels;
1608 	uint FirstArraySlice;
1609 	uint ArraySize;
1610 }
1611 
1612 struct D3D11_TEX2D_ARRAY_UAV {
1613 	uint MipSlice;
1614 	uint FirstArraySlice;
1615 	uint ArraySize;
1616 }
1617 
1618 struct D3D11_TEX2D_DSV {
1619 	uint MipSlice;
1620 }
1621 
1622 struct D3D11_TEX2D_RTV {
1623 	uint MipSlice;
1624 }
1625 
1626 struct D3D11_TEX2D_SRV {
1627 	uint MostDetailedMip;
1628 	uint MipLevels;
1629 }
1630 
1631 struct D3D11_TEX2D_UAV {
1632 	uint MipSlice;
1633 }
1634 
1635 struct D3D11_TEX2DMS_ARRAY_DSV {
1636 	uint FirstArraySlice;
1637 	uint ArraySize;
1638 }
1639 
1640 struct D3D11_TEX2DMS_ARRAY_RTV {
1641 	uint FirstArraySlice;
1642 	uint ArraySize;
1643 }
1644 
1645 struct D3D11_TEX2DMS_ARRAY_SRV {
1646 	uint FirstArraySlice;
1647 	uint ArraySize;
1648 }
1649 
1650 struct D3D11_TEX2DMS_DSV {
1651 	uint UnusedField_NothingToDefine;
1652 }
1653 
1654 struct D3D11_TEX2DMS_RTV {
1655 	uint UnusedField_NothingToDefine;
1656 }
1657 
1658 struct D3D11_TEX2DMS_SRV {
1659 	uint UnusedField_NothingToDefine;
1660 }
1661 
1662 struct D3D11_TEX3D_RTV {
1663 	uint MipSlice;
1664 	uint FirstWSlice;
1665 	uint WSize;
1666 }
1667 
1668 struct D3D11_TEX3D_SRV {
1669 	uint MostDetailedMip;
1670 	uint MipLevels;
1671 }
1672 
1673 struct D3D11_TEX3D_UAV {
1674 	uint MipSlice;
1675 	uint FirstWSlice;
1676 	uint WSize;
1677 }
1678 
1679 struct D3D11_TEXCUBE_ARRAY_SRV {
1680 	uint MostDetailedMip;
1681 	uint MipLevels;
1682 	uint First2DArrayFace;
1683 	uint NumCubes;
1684 }
1685 
1686 struct D3D11_TEXCUBE_SRV {
1687 	uint MostDetailedMip;
1688 	uint MipLevels;
1689 }
1690 
1691 struct D3D11_TEXTURE1D_DESC {
1692 	uint Width;
1693 	uint MipLevels;
1694 	uint ArraySize;
1695 	DXGI_FORMAT Format;
1696 	D3D11_USAGE Usage;
1697 	uint BindFlags;
1698 	uint CPUAccessFlags;
1699 	uint MiscFlags;
1700 }
1701 
1702 struct D3D11_TEXTURE2D_DESC {
1703 	uint Width;
1704 	uint Height;
1705 	uint MipLevels;
1706 	uint ArraySize;
1707 	DXGI_FORMAT Format;
1708 	DXGI_SAMPLE_DESC SampleDesc;
1709 	D3D11_USAGE Usage;
1710 	uint BindFlags;
1711 	uint CPUAccessFlags;
1712 	uint MiscFlags;
1713 }
1714 
1715 struct D3D11_TEXTURE3D_DESC {
1716 	uint Width;
1717 	uint Height;
1718 	uint Depth;
1719 	uint MipLevels;
1720 	DXGI_FORMAT Format;
1721 	D3D11_USAGE Usage;
1722 	uint BindFlags;
1723 	uint CPUAccessFlags;
1724 	uint MiscFlags;
1725 }
1726 
1727 struct D3D11_UNORDERED_ACCESS_VIEW_DESC {
1728 	DXGI_FORMAT         Format;
1729 	D3D11_UAV_DIMENSION ViewDimension;
1730 	union {
1731 		D3D11_BUFFER_UAV      Buffer;
1732 		D3D11_TEX1D_UAV       Texture1D;
1733 		D3D11_TEX1D_ARRAY_UAV Texture1DArray;
1734 		D3D11_TEX2D_UAV       Texture2D;
1735 		D3D11_TEX2D_ARRAY_UAV Texture2DArray;
1736 		D3D11_TEX3D_UAV       Texture3D;
1737 	};
1738 }
1739 
1740 struct D3D11_CLASS_INSTANCE_DESC {
1741 	uint InstanceId;
1742 	uint InstanceIndex;
1743 	uint TypeId;
1744 	uint ConstantBuffer;
1745 	uint BaseConstantBufferOffset;
1746 	uint BaseTexture;
1747 	uint BaseSampler;
1748 	bool Created;
1749 }
1750 
1751 struct D3D11_VIDEO_DECODER_DESC
1752 {
1753     GUID Guid;
1754     uint SampleWidth;
1755     uint SampleHeight;
1756     DXGI_FORMAT OutputFormat;
1757 }
1758 
1759 struct D3D11_VIDEO_DECODER_CONFIG
1760 {
1761     GUID guidConfigBitstreamEncryption;
1762     GUID guidConfigMBcontrolEncryption;
1763     GUID guidConfigResidDiffEncryption;
1764     uint ConfigBitstreamRaw;
1765     uint ConfigMBcontrolRasterOrder;
1766     uint ConfigResidDiffHost;
1767     uint ConfigSpatialResid8;
1768     uint ConfigResid8Subtraction;
1769     uint ConfigSpatialHost8or9Clipping;
1770     uint ConfigSpatialResidInterleaved;
1771     uint ConfigIntraResidUnsigned;
1772     uint ConfigResidDiffAccelerator;
1773     uint ConfigHostInverseScan;
1774     uint ConfigSpecificIDCT;
1775     uint Config4GroupedCoefs;
1776     ushort ConfigMinRenderTargetBuffCount;
1777     ushort ConfigDecoderSpecific;
1778 }
1779 
1780 struct D3D11_ENCRYPTED_BLOCK_INFO
1781 {
1782     uint NumEncryptedBytesAtBeginning;
1783     uint NumBytesInSkipPattern;
1784     uint NumBytesInEncryptPattern;
1785 }
1786 
1787 struct D3D11_VIDEO_DECODER_BUFFER_DESC
1788 {
1789     D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType;
1790     uint BufferIndex;
1791     uint DataOffset;
1792     uint DataSize;
1793     uint FirstMBaddress;
1794     uint NumMBsInBuffer;
1795     uint Width;
1796     uint Height;
1797     uint Stride;
1798     uint ReservedBits;
1799 	void *pIV;
1800     uint IVSize;
1801     bool PartialEncryption;
1802     D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo;
1803 }
1804 
1805 struct D3D11_VIDEO_DECODER_EXTENSION
1806 {
1807     uint Function;
1808 	void *pPrivateInputData;
1809     uint PrivateInputDataSize;
1810 	void *pPrivateOutputData;
1811     uint PrivateOutputDataSize;
1812     uint ResourceCount;
1813 	ID3D11Resource *ppResourceList;
1814 }
1815 
1816 struct D3D11_VIDEO_PROCESSOR_CAPS
1817 {
1818     uint DeviceCaps;
1819     uint FeatureCaps;
1820     uint FilterCaps;
1821     uint InputFormatCaps;
1822     uint AutoStreamCaps;
1823     uint StereoCaps;
1824     uint RateConversionCapsCount;
1825     uint MaxInputStreams;
1826     uint MaxStreamStates;
1827 }
1828 
1829 struct D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS
1830 {
1831     uint PastFrames;
1832     uint FutureFrames;
1833     uint ProcessorCaps;
1834     uint ITelecineCaps;
1835 	uint CustomRateCount;
1836 }
1837 
1838 struct D3D11_VIDEO_CONTENT_PROTECTION_CAPS
1839 {
1840     uint Caps;
1841     uint KeyExchangeTypeCount;
1842     uint BlockAlignmentSize;
1843     ulong ProtectedMemorySize;
1844 }
1845 
1846 struct D3D11_VIDEO_PROCESSOR_CUSTOM_RATE
1847 {
1848     DXGI_RATIONAL CustomRate;
1849     uint OutputFrames;
1850     bool InputInterlaced;
1851     uint InputFramesOrFields;
1852 }
1853 
1854 struct D3D11_VIDEO_PROCESSOR_FILTER_RANGE
1855 {
1856     int Minimum;
1857     int Maximum;
1858     int Default;
1859     float Multiplier;
1860 }
1861 
1862 struct D3D11_VIDEO_PROCESSOR_CONTENT_DESC
1863 {
1864     D3D11_VIDEO_FRAME_FORMAT InputFrameFormat;
1865     DXGI_RATIONAL InputFrameRate;
1866     uint InputWidth;
1867     uint InputHeight;
1868     DXGI_RATIONAL OutputFrameRate;
1869     uint OutputWidth;
1870     uint OutputHeight;
1871     D3D11_VIDEO_USAGE Usage;
1872 }
1873 
1874 struct D3D11_VIDEO_COLOR_RGBA
1875 {
1876     float R;
1877     float G;
1878     float B;
1879     float A;
1880 }
1881 
1882 struct D3D11_VIDEO_COLOR_YCbCrA
1883     {
1884     float Y;
1885     float Cb;
1886     float Cr;
1887     float A;
1888 }
1889 
1890 struct D3D11_VIDEO_COLOR
1891 {
1892     union 
1893     {
1894         D3D11_VIDEO_COLOR_YCbCrA YCbCr;
1895         D3D11_VIDEO_COLOR_RGBA RGBA;
1896 	};
1897 }
1898 
1899 struct D3D11_VIDEO_PROCESSOR_COLOR_SPACE
1900 {
1901     uint Usage = 1;
1902     uint RGB_Range = 1;
1903     uint YCbCr_Matrix = 1;
1904     uint YCbCr_xvYCC = 1;
1905     uint Nominal_Range = 2;
1906     uint Reserved = 26;
1907 }
1908 
1909 struct D3D11_VIDEO_PROCESSOR_STREAM
1910 {
1911     bool Enable;
1912     uint OutputIndex;
1913     uint InputFrameOrField;
1914     uint PastFrames;
1915     uint FutureFrames;
1916 	ID3D11VideoProcessorInputView *ppPastSurfaces;
1917     ID3D11VideoProcessorInputView pInputSurface;
1918 	ID3D11VideoProcessorInputView *ppFutureSurfaces;
1919 	ID3D11VideoProcessorInputView *ppPastSurfacesRight;
1920     ID3D11VideoProcessorInputView pInputSurfaceRight;
1921 	ID3D11VideoProcessorInputView *ppFutureSurfacesRight;
1922 }
1923 
1924 struct D3D11_OMAC
1925 {
1926     ubyte[16] Omac;
1927 }
1928 
1929 struct D3D11_AUTHENTICATED_QUERY_INPUT
1930 {
1931     GUID QueryType;
1932     HANDLE hChannel;
1933     uint SequenceNumber;
1934 }
1935 
1936 struct D3D11_AUTHENTICATED_QUERY_OUTPUT
1937 {
1938     D3D11_OMAC omac;
1939     GUID QueryType;
1940     HANDLE hChannel;
1941     uint SequenceNumber;
1942     HRESULT ReturnCode;
1943 }
1944 
1945 union D3D11_AUTHENTICATED_PROTECTION_FLAGS
1946 {
1947     struct Flags
1948 	{
1949         uint ProtectionEnabled = 1;
1950         uint OverlayOrFullscreenRequired = 1;
1951         uint Reserved = 30;
1952 	};
1953     uint Value;
1954 }
1955 
1956 struct D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT
1957 {
1958     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
1959     D3D11_AUTHENTICATED_PROTECTION_FLAGS ProtectionFlags;
1960 }
1961 
1962 struct D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT
1963 {
1964     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
1965     D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType;
1966 }
1967 
1968 struct D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT
1969 {
1970     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
1971     HANDLE DeviceHandle;
1972 }
1973 
1974 struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT
1975 {
1976     D3D11_AUTHENTICATED_QUERY_INPUT Input;
1977     HANDLE DecoderHandle;
1978 }
1979 
1980 struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT
1981 {
1982     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
1983     HANDLE DecoderHandle;
1984     HANDLE CryptoSessionHandle;
1985     HANDLE DeviceHandle;
1986 }
1987 
1988 struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT
1989 {
1990     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
1991     uint RestrictedSharedResourceProcessCount;
1992 }
1993 
1994 struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT
1995 {
1996     D3D11_AUTHENTICATED_QUERY_INPUT Input;
1997     uint ProcessIndex;
1998 }
1999 
2000 struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT
2001 {
2002     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2003     uint ProcessIndex;
2004     D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE ProcessIdentifier;
2005     HANDLE ProcessHandle;
2006 }
2007 
2008 struct D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT
2009 {
2010 	D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2011     uint UnrestrictedProtectedSharedResourceCount;
2012 }
2013 
2014 struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT
2015 {
2016     D3D11_AUTHENTICATED_QUERY_INPUT Input;
2017     HANDLE DeviceHandle;
2018     HANDLE CryptoSessionHandle;
2019 }
2020 
2021 struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT
2022 {
2023     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2024     HANDLE DeviceHandle;
2025     HANDLE CryptoSessionHandle;
2026     uint OutputIDCount;
2027 }
2028 
2029 struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT
2030 {
2031     D3D11_AUTHENTICATED_QUERY_INPUT Input;
2032     HANDLE DeviceHandle;
2033     HANDLE CryptoSessionHandle;
2034     uint OutputIDIndex;
2035 }
2036 
2037 struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT
2038 {
2039     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2040     HANDLE DeviceHandle;
2041     HANDLE CryptoSessionHandle;
2042     uint OutputIDIndex;
2043     ulong OutputID;
2044 }
2045 
2046 struct D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT
2047 {
2048     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2049     D3D11_BUS_TYPE BusType;
2050     BOOL AccessibleInContiguousBlocks;
2051     BOOL AccessibleInNonContiguousBlocks;
2052 }
2053 
2054 struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT
2055 {
2056     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2057     uint EncryptionGuidCount;
2058 }
2059 
2060 struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT
2061 {
2062     D3D11_AUTHENTICATED_QUERY_INPUT Input;
2063     uint EncryptionGuidIndex;
2064 }
2065 
2066 struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT
2067 {
2068     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2069     uint EncryptionGuidIndex;
2070     GUID EncryptionGuid;
2071 }
2072 
2073 struct D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT
2074 {
2075     D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
2076     GUID EncryptionGuid;
2077 }
2078 
2079 struct D3D11_AUTHENTICATED_CONFIGURE_INPUT
2080 {
2081     D3D11_OMAC omac;
2082     GUID ConfigureType;
2083     HANDLE hChannel;
2084     uint SequenceNumber;
2085 }
2086 
2087 struct D3D11_AUTHENTICATED_CONFIGURE_OUTPUT
2088 {
2089     D3D11_OMAC omac;
2090     GUID ConfigureType;
2091     HANDLE hChannel;
2092     uint SequenceNumber;
2093     HRESULT ReturnCode;
2094 }
2095 
2096 struct D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT
2097 {
2098     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
2099     uint StartSequenceQuery;
2100     uint StartSequenceConfigure;
2101 }
2102 
2103 struct D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT
2104 {
2105     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
2106     D3D11_AUTHENTICATED_PROTECTION_FLAGS Protections;
2107 }
2108 
2109 struct D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT
2110 {
2111     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
2112     HANDLE DecoderHandle;
2113     HANDLE CryptoSessionHandle;
2114     HANDLE DeviceHandle;
2115 }
2116 
2117 struct D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT
2118 {
2119     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
2120     D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE ProcessType;
2121     HANDLE ProcessHandle;
2122     BOOL AllowAccess;
2123 }
2124 
2125 struct D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT
2126 {
2127     D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
2128     GUID EncryptionGuid;
2129 }
2130 
2131 struct D3D11_TEX2D_VDOV
2132 {
2133     uint ArraySlice;
2134 }
2135 
2136 struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC
2137 {
2138     GUID DecodeProfile;
2139     D3D11_VDOV_DIMENSION ViewDimension;
2140     union 
2141 	{
2142         D3D11_TEX2D_VDOV Texture2D;
2143 	};
2144 }
2145 
2146 struct D3D11_TEX2D_VPIV
2147 {
2148     uint MipSlice;
2149     uint ArraySlice;
2150 }
2151 
2152 struct D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC
2153 {
2154     uint FourCC;
2155     D3D11_VPIV_DIMENSION ViewDimension;
2156     union 
2157 	{
2158         D3D11_TEX2D_VPIV Texture2D;
2159 	};
2160 }
2161 
2162 struct D3D11_TEX2D_VPOV
2163 {
2164     uint MipSlice;
2165 }
2166 
2167 struct D3D11_TEX2D_ARRAY_VPOV
2168 {
2169     uint MipSlice;
2170     uint FirstArraySlice;
2171     uint ArraySize;
2172 }
2173 
2174 struct D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC
2175 {
2176     D3D11_VPOV_DIMENSION ViewDimension;
2177     union 
2178 	{
2179         D3D11_TEX2D_VPOV Texture2D;
2180         D3D11_TEX2D_ARRAY_VPOV Texture2DArray;
2181 	};
2182 }
2183 
2184 ///
2185 /// Interfaces
2186 ///
2187 
2188 mixin(uuid!(ID3D11Asynchronous, "4b35d0cd-1e15-4258-9c98-1b1333f6dd3b"));
2189 public interface ID3D11Asynchronous : ID3D11DeviceChild
2190 {
2191 extern(Windows):
2192 	uint GetDataSize();
2193 }
2194 
2195 mixin(uuid!(ID3D11BlendState, "75b68faa-347d-4159-8f45-a0640f01cd9a"));
2196 public interface ID3D11BlendState : ID3D11DeviceChild
2197 {
2198 extern(Windows):
2199 	void GetDesc(D3D11_BLEND_DESC *pDesc);
2200 }
2201 
2202 mixin(uuid!(ID3D11Counter, "6e8c49fb-a371-4770-b440-29086022b741"));
2203 public interface ID3D11Counter : ID3D11Asynchronous
2204 {
2205 extern(Windows):
2206 	void GetDesc(D3D11_COUNTER_DESC *pDesc);
2207 }
2208 
2209 mixin(uuid!(ID3D11CommandList, "a24bc4d1-769e-43f7-8013-98ff566c18e2"));
2210 public interface ID3D11CommandList : ID3D11DeviceChild
2211 {
2212 extern(Windows):
2213 	uint GetContextFlags();
2214 }
2215 
2216 mixin(uuid!(ID3D11DepthStencilState, "03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1"));
2217 public interface ID3D11DepthStencilState : ID3D11DeviceChild
2218 {
2219 extern(Windows):
2220 	void GetDesc(D3D11_DEPTH_STENCIL_DESC *pDesc);
2221 }
2222 
2223 mixin(uuid!(ID3D11Device, "db6f6ddb-ac77-4e88-8253-819df9bbf140"));
2224 public interface ID3D11Device : IUnknown
2225 {
2226 extern(Windows):
2227 	void GetDesc(D3D11_DEPTH_STENCIL_DESC *pDesc);
2228 	HRESULT CheckCounter(const D3D11_COUNTER_DESC *pDesc, D3D11_COUNTER_TYPE *pType, uint *pActiveCounters, char* szName, uint* pNameLength, char* szUnits, uint* pUnitsLength, char* szDescription, uint* pDescriptionLength);
2229 	void CheckCounterInfo(D3D11_COUNTER_INFO *pCounterInfo);
2230 	HRESULT CheckFeatureSupport(D3D11_FEATURE Feature, void *pFeatureSupportData, uint FeatureSupportDataSize);
2231 	HRESULT CheckFormatSupport(DXGI_FORMAT Format, uint* pFormatSupport);
2232 	HRESULT CheckMultisampleQualityLevels(DXGI_FORMAT Format, uint SampleCount, uint *pNumQualityLevels);
2233 	HRESULT CreateBlendState(const D3D11_BLEND_DESC *pBlendStateDesc, ID3D11BlendState *ppBlendState);
2234 	HRESULT CreateBuffer(const D3D11_BUFFER_DESC *pDesc, const D3D11_SUBRESOURCE_DATA *pInitialData, ID3D11Buffer *ppBuffer);
2235 	HRESULT CreateClassLinkage(ID3D11ClassLinkage *ppLinkage);
2236 	HRESULT CreateComputeShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage pClassLinkage, ID3D11ComputeShader *ppComputeShader);
2237 	HRESULT CreateCounter(const D3D11_COUNTER_DESC *pCounterDesc, ID3D11Counter *ppCounter);
2238 	HRESULT CreateDeferredContext(uint ContextFlags, ID3D11DeviceContext *ppDeferredContext);
2239 	HRESULT CreateDepthStencilState(const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, ID3D11DepthStencilState *ppDepthStencilState);
2240 	HRESULT CreateDepthStencilView(ID3D11Resource pResource, const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, ID3D11DepthStencilView *ppDepthStencilView);
2241 	HRESULT CreateDomainShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage pClassLinkage, ID3D11DomainShader *ppDomainShader);
2242 	HRESULT CreateGeometryShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage pClassLinkage, ID3D11GeometryShader *ppGeometryShader);
2243 	HRESULT CreateGeometryShaderWithStreamOutput(const void *pShaderBytecode, SIZE_T BytecodeLength, const D3D11_SO_DECLARATION_ENTRY *pSODeclaration, UINT NumEntries, const UINT *pBufferStrides, UINT NumStrides, UINT RasterizedStream, ID3D11ClassLinkage pClassLinkage, ID3D11GeometryShader *ppGeometryShader);
2244 	HRESULT CreateHullShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage pClassLinkage, ID3D11HullShader *ppHullShader);
2245 	HRESULT CreateInputLayout(const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs, UINT NumElements, const void *pShaderBytecodeWithInputSignature, SIZE_T BytecodeLength, ID3D11InputLayout *ppInputLayout);
2246 	HRESULT CreatePixelShader(const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage pClassLinkage, ID3D11PixelShader *ppPixelShader);
2247 	HRESULT CreatePredicate(const D3D11_QUERY_DESC *pPredicateDesc, ID3D11Predicate *ppPredicate);
2248 	HRESULT CreateQuery(const D3D11_QUERY_DESC *pQueryDesc, ID3D11Query *ppQuery);
2249 	HRESULT CreateRasterizerState(const D3D11_RASTERIZER_DESC *pRasterizerDesc, ID3D11RasterizerState *ppRasterizerState);
2250 	HRESULT CreateRenderTargetView(ID3D11Resource pResource, const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, ID3D11RenderTargetView *ppRTView);
2251 	HRESULT CreateSamplerState(const D3D11_SAMPLER_DESC *pSamplerDesc, ID3D11SamplerState *ppSamplerState);
2252 	HRESULT CreateShaderResourceView(ID3D11Resource pResource, const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, ID3D11ShaderResourceView **ppSRView);
2253 	HRESULT CreateTexture1D(const D3D11_TEXTURE1D_DESC *pDesc, const D3D11_SUBRESOURCE_DATA *pInitialData, ID3D11Texture1D *ppTexture1D);
2254 	HRESULT CreateTexture2D(const D3D11_TEXTURE2D_DESC *pDesc, const D3D11_SUBRESOURCE_DATA *pInitialData, ID3D11Texture2D *ppTexture2D);
2255 	HRESULT CreateTexture3D(const D3D11_TEXTURE3D_DESC *pDesc, const D3D11_SUBRESOURCE_DATA *pInitialData, ID3D11Texture3D *ppTexture3D);
2256 	HRESULT CreateUnorderedAccessView(ID3D11Resource *pResource, const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, ID3D11UnorderedAccessView **ppUAView);
2257 	HRESULT CreateVertexShader(const void *pShaderBytecode, uint BytecodeLength, ID3D11ClassLinkage pClassLinkage, ID3D11VertexShader *ppVertexShader);
2258 	uint GetCreationFlags();
2259 	HRESULT GetDeviceRemovedReason();
2260 	uint GetExceptionMode();
2261 	D3D_FEATURE_LEVEL GetFeatureLevel();
2262 	void GetImmediateContext(ID3D11DeviceContext *ppImmediateContext);
2263 	HRESULT GetPrivateData(GUID* guid, uint* pDataSize, void* pData);
2264 	HRESULT OpenSharedResource(HANDLE hResource, IID* ReturnedInterface, void **ppResource);
2265 	HRESULT SetExceptionMode(uint RaiseFlags);
2266 	HRESULT SetPrivateData(GUID* guid, uint DataSize, const void *pData);
2267 	HRESULT SetPrivateDataInterface(GUID* guid, const IUnknown *pData);
2268 }
2269 
2270 mixin(uuid!(ID3D11DeviceChild, "1841e5c8-16b0-489b-bcc8-44cfb0d5deae"));
2271 public interface ID3D11DeviceChild : IUnknown
2272 {
2273 extern(Windows):
2274 	void GetDevice(ID3D11Device **ppDevice);
2275 	HRESULT GetPrivateData(GUID* guid, uint* pDataSize, void *pData);
2276 	HRESULT SetPrivateData(GUID* guid, uint DataSize, const void *pData);
2277 	HRESULT SetPrivateDataInterface(GUID* guid, const IUnknown pData);
2278 }
2279 
2280 mixin(uuid!(ID3D11DeviceContext, "c0bfa96c-e089-44fb-8eaf-26f8796190da"));
2281 public interface ID3D11DeviceContext : ID3D11DeviceChild
2282 {
2283 extern(Windows):
2284 	void Begin(ID3D11Asynchronous *pAsync);
2285 	void ClearDepthStencilView(ID3D11DepthStencilView pDepthStencilView, uint ClearFlags, float Depth, ubyte Stencil);
2286 	void ClearRenderTargetView(ID3D11RenderTargetView pRenderTargetView, const float[4] ColorRGBA);
2287 	void ClearState();
2288 	void ClearUnorderedAccessViewFloat(ID3D11UnorderedAccessView pUnorderedAccessView, const float[4] Values);
2289 	void ClearUnorderedAccessViewUint(ID3D11UnorderedAccessView pUnorderedAccessView, const uint[4] Values);
2290 	void CopyResource(ID3D11Resource pDstResource, ID3D11Resource pSrcResource);
2291 	void CopyStructureCount(ID3D11Buffer pDstBuffer, uint DstAlignedByteOffset, ID3D11UnorderedAccessView pSrcView);
2292 	void CopySubresourceRegion(ID3D11Resource pDstResource, uint DstSubresource, uint DstX, uint DstY, uint DstZ, ID3D11Resource pSrcResource, uint SrcSubresource, const D3D11_BOX *pSrcBox);
2293 	void CSGetConstantBuffers(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers);
2294 	void CSGetSamplers(uint StartSlot, uint NumSamplers, ID3D11SamplerState *ppSamplers);
2295 	void CSGetShader(ID3D11ComputeShader *ppComputeShader, ID3D11ClassInstance *ppClassInstances, uint* pNumClassInstances);
2296 	void CSGetShaderResources(uint StartSlot, uint NumViews, ID3D11ShaderResourceView *ppShaderResourceViews);
2297 	void CSGetUnorderedAccessViews(uint StartSlot, uint NumUAVs, const(ID3D11UnorderedAccessView) *ppUnorderedAccessViews);
2298 	void CSSetConstantBuffers(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers);
2299 	void CSSetSamplers(uint StartSlot, uint NumSamplers, const(ID3D11SamplerState) *ppSamplers);
2300 	void CSSetShader(ID3D11ComputeShader pShader, const(ID3D11ClassInstance) *ppClassInstances, uint NumClassInstances);
2301 	void CSSetShaderResources(uint StartSlot, uint NumViews, const(ID3D11ShaderResourceView) *ppShaderResourceViews);
2302 	void CSSetUnorderedAccessViews(uint StartSlot, uint NumUAVs, const(ID3D11UnorderedAccessView) *ppUnorderedAccessViews, const(uint) *pUAVInitialCounts);
2303 	void Dispatch(uint ThreadGroupCountX, uint ThreadGroupCountY, uint ThreadGroupCountZ);
2304 	void DispatchIndirect(ID3D11Buffer pBufferForArgs, uint AlignedOffsetForArgs);
2305 	void Draw(uint VertexCount, uint StartVertexLocation);
2306 	void DrawAuto();
2307 	void DrawIndexed(uint IndexCount, uint StartIndexLocation, int BaseVertexLocation);
2308 	void DrawIndexedInstanced(uint IndexCountPerInstance, uint InstanceCount, uint StartIndexLocation, int BaseVertexLocation, uint StartInstanceLocation);
2309 	void DrawIndexedInstancedIndirect(ID3D11Buffer pBufferForArgs, uint AlignedByteOffsetForArgs);
2310 	void DrawInstanced(uint VertexCountPerInstance, uint InstanceCount, uint StartVertexLocation, uint StartInstanceLocation);
2311 	void DrawInstancedIndirect(ID3D11Buffer pBufferForArgs, uint AlignedByteOffsetForArgs);
2312 	void DSGetConstantBuffers(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers);
2313 	void DSGetSamplers(uint StartSlot, uint NumSamplers, ID3D11SamplerState *ppSamplers);
2314 	void DSGetShader(ID3D11DomainShader *ppDomainShader, ID3D11ClassInstance *ppClassInstances, uint* pNumClassInstances);
2315 	void DSGetShaderResources(uint StartSlot, uint NumViews, ID3D11ShaderResourceView *ppShaderResourceViews);
2316 	void DSSetConstantBuffers(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers);
2317 	void DSSetSamplers(uint StartSlot, uint NumSamplers, const(ID3D11SamplerState) *ppSamplers);
2318 	void DSSetShader(ID3D11DomainShader *pShader, const(ID3D11ClassInstance) *ppClassInstances, uint NumClassInstances);
2319 	void DSSetShaderResources(uint StartSlot, uint NumViews, const(ID3D11ShaderResourceView) *ppShaderResourceViews);
2320 	void End(ID3D11Asynchronous *pAsync);
2321 	void ExecuteCommandList(ID3D11CommandList pCommandList, bool RestoreContextState);
2322 	HRESULT FinishCommandList(bool RestoreDeferredContextState, ID3D11CommandList *ppCommandList);
2323 	void Flush();
2324 	void GenerateMips(ID3D11ShaderResourceView pShaderResourceView);
2325 	uint GetContextFlags();
2326 	HRESULT GetData(ID3D11Asynchronous *pAsync, void *pData, uint DataSize, uint GetDataFlags);
2327 	void GetPredication(ID3D11Predicate *ppPredicate, bool* pPredicateValue);
2328 	float GetResourceMinLOD(ID3D11Resource pResource);
2329 	D3D11_DEVICE_CONTEXT_TYPE GetType();
2330 	void GSGetConstantBuffers(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers);
2331 	void GSGetSamplers(uint StartSlot, uint NumSamplers, ID3D11SamplerState *ppSamplers);
2332 	void GSGetShader(ID3D11GeometryShader *ppGeometryShader, ID3D11ClassInstance *ppClassInstances, uint* pNumClassInstances);
2333 	void GSGetShaderResources(uint StartSlot, uint NumViews, ID3D11ShaderResourceView *ppShaderResourceViews);
2334 	void GSSetConstantBuffers(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers);
2335 	void GSSetSamplers(uint StartSlot, uint NumSamplers, const(ID3D11SamplerState) *ppSamplers);
2336 	void GSSetShader(ID3D11GeometryShader *pShader, const(ID3D11ClassInstance) *ppClassInstances, uint NumClassInstances);
2337 	void GSSetShaderResources(uint StartSlot, uint NumViews, const(ID3D11ShaderResourceView) *ppShaderResourceViews);
2338 	void HSGetConstantBuffers(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers);
2339 	void HSGetSamplers(uint StartSlot, uint NumSamplers, ID3D11SamplerState *ppSamplers);
2340 	void HSGetShader(ID3D11HullShader *ppHullShader, ID3D11ClassInstance *ppClassInstances, uint* pNumClassInstances);
2341 	void HSGetShaderResources(uint StartSlot, uint NumViews, ID3D11ShaderResourceView *ppShaderResourceViews);
2342 	void HSSetConstantBuffers(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers);
2343 	void HSSetSamplers(uint StartSlot, uint NumSamplers, const(ID3D11SamplerState) *ppSamplers);
2344 	void HSSetShader(ID3D11HullShader *pShader, const(ID3D11ClassInstance) *ppClassInstances, uint NumClassInstances);
2345 	void HSSetShaderResources(uint StartSlot, uint NumViews, const(ID3D11ShaderResourceView) *ppShaderResourceViews);
2346 	void IAGetIndexBuffer(ID3D11Buffer *pIndexBuffer, DXGI_FORMAT *Format, uint* Offset);
2347 	void IAGetInputLayout(ID3D11InputLayout *ppInputLayout);
2348 	void IAGetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY *pTopology);
2349 	void IAGetVertexBuffers(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppVertexBuffers, uint *pStrides, uint *pOffsets);
2350 	void IASetIndexBuffer(ID3D11Buffer pIndexBuffer, DXGI_FORMAT Format, uint Offset);
2351 	void IASetInputLayout(ID3D11InputLayout pInputLayout);
2352 	void IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY Topology);
2353 	void IASetVertexBuffers(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppVertexBuffers, const(uint) *pStrides, const(uint) *pOffsets);
2354 	HRESULT Map(ID3D11Resource pResource, uint Subresource, D3D11_MAP MapType, uint MapFlags, D3D11_MAPPED_SUBRESOURCE *pMappedResource);
2355 	void OMGetBlendState(ID3D11BlendState *ppBlendState, float[4] BlendFactor, uint* pSampleMask);
2356 	void OMGetDepthStencilState(ID3D11DepthStencilState *ppDepthStencilState, uint* pStencilRef);
2357 	void OMGetRenderTargets(uint NumViews, ID3D11RenderTargetView *ppRenderTargetViews, ID3D11DepthStencilView *ppDepthStencilView);
2358 	void OMGetRenderTargetsAndUnorderedAccessViews(uint NumViews, ID3D11RenderTargetView *ppRenderTargetViews, ID3D11DepthStencilView *ppDepthStencilView, uint UAVStartSlot, uint NumUAVs, ID3D11UnorderedAccessView *ppUnorderedAccessViews);
2359 	void OMSetBlendState(ID3D11BlendState pBlendState, const float[4] BlendFactor, uint SampleMask);
2360 	void OMSetDepthStencilState(ID3D11DepthStencilState pDepthStencilState, uint StencilRef);
2361 	void OMSetRenderTargets(uint NumViews, const(ID3D11RenderTargetView) *ppRenderTargetViews, ID3D11DepthStencilView pDepthStencilView);
2362 	void OMSetRenderTargetsAndUnorderedAccessViews(uint NumViews, const(ID3D11RenderTargetView) *ppRenderTargetViews, ID3D11DepthStencilView pDepthStencilView, uint UAVStartSlot, uint NumUAVs, const(ID3D11UnorderedAccessView) *ppUnorderedAccessView, const(uint) *pUAVInitialCounts);
2363 	void PSGetConstantBuffers(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers);
2364 	void PSGetSamplers(uint StartSlot, uint NumSamplers, ID3D11SamplerState *ppSamplers);
2365 	void PSGetShader(ID3D11PixelShader *ppPixelShader, ID3D11ClassInstance *ppClassInstances, uint* pNumClassInstances);
2366 	void PSGetShaderResources(uint StartSlot, uint NumViews, ID3D11ShaderResourceView *ppShaderResourceViews);
2367 	void PSSetConstantBuffers(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers);
2368 	void PSSetSamplers(uint StartSlot, uint NumSamplers, const(ID3D11SamplerState) *ppSamplers);
2369 	void PSSetShader(ID3D11PixelShader *pShader, const(ID3D11ClassInstance) *ppClassInstances, uint NumClassInstances);
2370 	void PSSetShaderResources(uint StartSlot, uint NumViews, const(ID3D11ShaderResourceView) *ppShaderResourceViews);
2371 	void ResolveSubresource(ID3D11Resource pDstResource, uint DstSubresource, ID3D11Resource pSrcResource, uint SrcSubresource, DXGI_FORMAT Format);
2372 	void RSGetScissorRects(uint* pNumRects, D3D11_RECT *pRects);
2373 	void RSGetState(ID3D11RasterizerState *ppRasterizerState);
2374 	void RSGetViewports(uint* pNumViewports, D3D11_VIEWPORT *pViewports);
2375 	void RSSetScissorRects(uint NumRects, const D3D11_RECT *pRects);
2376 	void RSSetState(ID3D11RasterizerState pRasterizerState);
2377 	void RSSetViewports(uint NumViewports, const D3D11_VIEWPORT *pViewports);
2378 	void SetPredication(ID3D11Predicate pPredicate, bool PredicateValue);
2379 	void SetResourceMinLOD(ID3D11Resource pResource, float MinLOD);
2380 	void SOGetTargets(uint NumBuffers, ID3D11Buffer *ppSOTargets);
2381 	void SOSetTargets(uint NumBuffers, const(ID3D11Buffer) *ppSOTargets, const(uint) *pOffsets);
2382 	void Unmap(ID3D11Resource pResource, uint Subresource);
2383 	void UpdateSubresource(ID3D11Resource pDstResource, uint DstSubresource, const(D3D11_BOX) *pDstBox, const(void) *pSrcData, uint SrcRowPitch, uint SrcDepthPitch);
2384 	void VSGetConstantBuffers(uint StartSlot, uint NumBuffers, ID3D11Buffer *ppConstantBuffers);
2385 	void VSGetSamplers(uint StartSlot, uint NumSamplers, ID3D11SamplerState *ppSamplers);
2386 	void VSGetShader(ID3D11VertexShader *ppVertexShader, ID3D11ClassInstance *ppClassInstances, uint* pNumClassInstances);
2387 	void VSGetShaderResources(uint StartSlot, uint NumViews, ID3D11ShaderResourceView *ppShaderResourceViews);
2388 	void VSSetConstantBuffers(uint StartSlot, uint NumBuffers, const(ID3D11Buffer) *ppConstantBuffers);
2389 	void VSSetSamplers(uint StartSlot, uint NumSamplers, const(ID3D11SamplerState) *ppSamplers);
2390 	void VSSetShader(ID3D11VertexShader *pShader, const(ID3D11ClassInstance) *ppClassInstances, uint NumClassInstances);
2391 	void VSSetShaderResources(uint StartSlot, uint NumViews, const(ID3D11ShaderResourceView) *ppShaderResourceViews);
2392 }
2393 
2394 mixin(uuid!(ID3D11InputLayout, "e4819ddc-4cf0-4025-bd26-5de82a3e07b7"));
2395 public interface ID3D11InputLayout : ID3D11DeviceChild
2396 {
2397 extern(Windows):
2398 }
2399 
2400 mixin(uuid!(ID3D11Predicate, "9eb576dd-9f77-4d86-81aa-8bab5fe490e2"));
2401 public interface ID3D11Predicate : ID3D11Query
2402 {
2403 extern(Windows):
2404 }
2405 
2406 mixin(uuid!(ID3D11Query, "d6c00747-87b7-425e-b84d-44d108560afd"));
2407 public interface ID3D11Query : ID3D11Asynchronous
2408 {
2409 extern(Windows):
2410 	void GetDesc(D3D11_QUERY_DESC *pDesc);
2411 }
2412 
2413 mixin(uuid!(ID3D11RasterizerState, "9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7"));
2414 public interface ID3D11RasterizerState : ID3D11DeviceChild
2415 {
2416 extern(Windows):
2417 	void GetDesc(D3D11_RASTERIZER_DESC *pDesc);
2418 }
2419 
2420 mixin(uuid!(ID3D11SamplerState, "da6fea51-564c-4487-9810-f0d0f9b4e3a5"));
2421 public interface ID3D11SamplerState : ID3D11DeviceChild
2422 {
2423 extern(Windows):
2424 	void GetDesc(D3D11_SAMPLER_DESC *pDesc);
2425 }
2426 
2427 mixin(uuid!(ID3D11Buffer, "48570b85-d1ee-4fcd-a250-eb350722b037"));
2428 public interface ID3D11Buffer : ID3D11Resource
2429 {
2430 extern(Windows):
2431 	void GetDesc(D3D11_BUFFER_DESC *pDesc);
2432 }
2433 
2434 mixin(uuid!(ID3D11Resource, "dc8e63f3-d12b-4952-b47b-5e45026a862d"));
2435 public interface ID3D11Resource : ID3D11DeviceChild
2436 {
2437 extern(Windows):
2438 	uint GetEvictionPriority();
2439 	void GetType(D3D11_RESOURCE_DIMENSION *rType);
2440 	void SetEvictionPriority(uint EvictionPriority);
2441 }
2442 
2443 mixin(uuid!(ID3D11Texture1D, "f8fb5c27-c6b3-4f75-a4c8-439af2ef564c"));
2444 public interface ID3D11Texture1D : ID3D11Resource
2445 {
2446 extern(Windows):
2447 	void GetDesc(D3D11_TEXTURE1D_DESC *pDesc);
2448 }
2449 
2450 mixin(uuid!(ID3D11Texture2D, "6f15aaf2-d208-4e89-9ab4-489535d34f9c"));
2451 public interface ID3D11Texture2D : ID3D11Resource
2452 {
2453 extern(Windows):
2454 	void GetDesc(D3D11_TEXTURE2D_DESC *pDesc);
2455 }
2456 
2457 mixin(uuid!(ID3D11Texture3D, "037e866e-f56d-4357-a8af-9dabbe6e250e"));
2458 public interface ID3D11Texture3D : ID3D11Resource
2459 {
2460 extern(Windows):
2461 	void GetDesc(D3D11_TEXTURE3D_DESC *pDesc);
2462 }
2463 
2464 mixin(uuid!(ID3D11DepthStencilView, "9fdac92a-1876-48c3-afad-25b94f84a9b6"));
2465 public interface ID3D11DepthStencilView : ID3D11View
2466 {
2467 extern(Windows):
2468 	void GetDesc(D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc);
2469 }
2470 
2471 mixin(uuid!(ID3D11RenderTargetView, "dfdba067-0b8d-4865-875b-d7b4516cc164"));
2472 public interface ID3D11RenderTargetView : ID3D11View
2473 {
2474 extern(Windows):
2475 	void GetDesc(D3D11_RENDER_TARGET_VIEW_DESC *pDesc);
2476 }
2477 
2478 mixin(uuid!(ID3D11ShaderResourceView, "b0e06fe0-8192-4e1a-b1ca-36d7414710b2"));
2479 public interface ID3D11ShaderResourceView : ID3D11View
2480 {
2481 extern(Windows):
2482 	void GetDesc(D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc);
2483 }
2484 
2485 mixin(uuid!(ID3D11UnorderedAccessView, "28acf509-7f5c-48f6-8611-f316010a6380"));
2486 public interface ID3D11UnorderedAccessView : ID3D11View
2487 {
2488 extern(Windows):
2489 	void GetDesc(D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc);
2490 }
2491 
2492 mixin(uuid!(ID3D11View, "839d1216-bb2e-412b-b7f4-a9dbebe08ed1"));
2493 public interface ID3D11View : ID3D11DeviceChild
2494 {
2495 extern(Windows):
2496 	void GetResource(ID3D11Resource **ppResource);
2497 }
2498 
2499 mixin(uuid!(ID3D11ClassInstance, "a6cd7faa-b0b7-4a2f-9436-8662a65797cb"));
2500 public interface ID3D11ClassInstance : ID3D11DeviceChild
2501 {
2502 extern(Windows):
2503 	void GetClassLinkage(ID3D11ClassLinkage *ppLinkage);
2504 	void GetDesc(D3D11_CLASS_INSTANCE_DESC *pDesc);
2505 	void GetInstanceName(wchar* pInstanceName, uint *pBufferLength);
2506 	void GetTypeName(const(char)* pTypeName, uint *pBufferLength);
2507 }
2508 
2509 mixin(uuid!(ID3D11ClassLinkage, "ddf57cba-9543-46e4-a12b-f207a0fe7fed"));
2510 public interface ID3D11ClassLinkage : ID3D11DeviceChild
2511 {
2512 extern(Windows):
2513 	HRESULT CreateClassInstance(const(char)* pszClassTypeName, uint ConstantBufferOffset, uint ConstantVectorOffset, uint TextureOffset, uint SamplerOffset, ID3D11ClassInstance *ppInstance);
2514 	HRESULT GetClassInstance(const(wchar)* pClassInstanceName, uint InstanceIndex, ID3D11ClassInstance *ppInstance);
2515 }
2516 
2517 mixin(uuid!(ID3D11ComputeShader, "4f5b196e-c2bd-495e-bd01-1fded38e4969"));
2518 public interface ID3D11ComputeShader : ID3D11DeviceChild
2519 {
2520 extern(Windows):
2521 }
2522 
2523 mixin(uuid!(ID3D11DomainShader, "f582c508-0f36-490c-9977-31eece268cfa"));
2524 public interface ID3D11DomainShader : ID3D11DeviceChild
2525 {
2526 extern(Windows):
2527 }
2528 
2529 mixin(uuid!(ID3D11GeometryShader, "38325b96-effb-4022-ba02-2e795b70275c"));
2530 public interface ID3D11GeometryShader : ID3D11DeviceChild
2531 {
2532 extern(Windows):
2533 }
2534 
2535 mixin(uuid!(ID3D11HullShader, "8e5c6061-628a-4c8e-8264-bbe45cb3d5dd"));
2536 public interface ID3D11HullShader : ID3D11DeviceChild
2537 {
2538 extern(Windows):
2539 }
2540 
2541 mixin(uuid!(ID3D11PixelShader, "ea82e40d-51dc-4f33-93d4-db7c9125ae8c"));
2542 public interface ID3D11PixelShader : ID3D11DeviceChild
2543 {
2544 extern(Windows):
2545 }
2546 
2547 mixin(uuid!(ID3D11VertexShader, "3b301d64-d678-4289-8897-22f8928b72f3"));
2548 public interface ID3D11VertexShader : ID3D11DeviceChild
2549 {
2550 extern(Windows):
2551 }
2552 
2553 mixin(uuid!(ID3D11VideoDecoder, "3C9C5B51-995D-48d1-9B8D-FA5CAEDED65C"));
2554 public interface ID3D11VideoDecoder : ID3D11DeviceChild
2555 {
2556 extern(Windows):
2557 	HRESULT GetCreationParameters(D3D11_VIDEO_DECODER_DESC *pVideoDesc, D3D11_VIDEO_DECODER_CONFIG *pConfig);
2558 	HRESULT GetDriverHandle(HANDLE *pDriverHandle);
2559 }
2560 
2561 mixin(uuid!(ID3D11VideoProcessorEnumerator, "31627037-53AB-4200-9061-05FAA9AB45F9"));
2562 public interface ID3D11VideoProcessorEnumerator : ID3D11DeviceChild
2563 {
2564 extern(Windows):
2565 	HRESULT CheckVideoProcessorFormat(DXGI_FORMAT Format, uint *pFlags);
2566 	HRESULT GetVideoProcessorCaps(D3D11_VIDEO_PROCESSOR_CAPS *pCaps);
2567 	HRESULT GetVideoProcessorContentDesc(D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc);
2568 	HRESULT GetVideoProcessorCustomRate(uint TypeIndex, uint CustomRateIndex, D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate);
2569 	HRESULT GetVideoProcessorFilterRange(D3D11_VIDEO_PROCESSOR_FILTER Filter, D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange);
2570 	HRESULT GetVideoProcessorRateConversionCaps(uint TypeIndex, D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps);
2571 }
2572 
2573 mixin(uuid!(ID3D11VideoProcessor, "1D7B0652-185F-41c6-85CE-0C5BE3D4AE6C"));
2574 public interface ID3D11VideoProcessor : ID3D11DeviceChild
2575 {
2576 extern(Windows):
2577 	void GetContentDesc(D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc);
2578 	void GetRateConversionCaps(D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps);
2579 }
2580 
2581 mixin(uuid!(ID3D11AuthenticatedChannel, "3015A308-DCBD-47aa-A747-192486D14D4A"));
2582 public interface ID3D11AuthenticatedChannel : IUnknown
2583 {
2584 extern(Windows):
2585 	HRESULT GetCertificate(uint CertificateSize, ubyte *pCertificate);
2586 	HRESULT GetCertificateSize(uint *pCertificateSize);
2587 	void GetChannelHandle(HANDLE *pChannelHandle);
2588 }
2589 
2590 mixin(uuid!(ID3D11CryptoSession, "9B32F9AD-BDCC-40a6-A39D-D5C865845720"));
2591 public interface ID3D11CryptoSession : ID3D11DeviceChild
2592 {
2593 extern(Windows):
2594 	HRESULT GetCertificate(uint CertificateSize, ubyte *pCertificate);
2595 	HRESULT GetCertificateSize(uint *pCertificateSize);
2596 	void GetCryptoSessionHandle(HANDLE *pCryptoSessionHandle);
2597 	void GetCryptoType(GUID *pCryptoType);
2598 	void GetDecoderProfile(GUID *pDecoderProfile);
2599 }
2600 
2601 mixin(uuid!(ID3D11VideoDecoderOutputView, "C2931AEA-2A85-4f20-860F-FBA1FD256E18"));
2602 public interface ID3D11VideoDecoderOutputView : ID3D11View
2603 {
2604 extern(Windows):
2605 	void GetDesc(D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc);
2606 }
2607 
2608 mixin(uuid!(ID3D11VideoProcessorInputView, "11EC5A5F-51DC-4945-AB34-6E8C21300EA5"));
2609 public interface ID3D11VideoProcessorInputView : ID3D11View
2610 {
2611 extern(Windows):
2612 	void GetDesc(D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc);
2613 }
2614 
2615 mixin(uuid!(ID3D11VideoProcessorOutputView, "A048285E-25A9-4527-BD93-D68B68C44254"));
2616 public interface ID3D11VideoProcessorOutputView : ID3D11View
2617 {
2618 extern(Windows):
2619 	void GetDesc(D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc);
2620 }
2621 
2622 mixin(uuid!(ID3D11VideoContext, "61F21C45-3C0E-4a74-9CEA-67100D9AD5E4"));
2623 public interface ID3D11VideoContext : ID3D11DeviceChild
2624 {
2625 extern(Windows):
2626 	HRESULT ConfigureAuthenticatedChannel(ID3D11AuthenticatedChannel pChannel, uint InputSize, const void *pInput, D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *pOutput);
2627 	HRESULT DecoderBeginFrame(ID3D11VideoDecoder pDecoder, ID3D11VideoDecoderOutputView pView, uint ContentKeySize, const void*pContentKey);
2628 	HRESULT DecoderEndFrame(ID3D11VideoDecoder pDecoder);
2629 	HRESULT DecoderExtension(ID3D11VideoDecoder pDecoder, const D3D11_VIDEO_DECODER_EXTENSION *pExtensionData);
2630 	HRESULT DecryptionBlt(ID3D11CryptoSession pCryptoSession, ID3D11Texture2D pSrcSurface, ID3D11Texture2D pDstSurface, D3D11_ENCRYPTED_BLOCK_INFO *pEncryptedBlockInfo, const void *pContentKey, uint ContentKeySize, void *pIV, uint IVSize);
2631 	HRESULT EncryptionBlt(ID3D11CryptoSession pCryptoSession, ID3D11Texture2D pSrcSurface, ID3D11Texture2D pDstSurface, void *pIV, uint IVSize);
2632 	HRESULT FinishSessionKeyRefresh(ID3D11CryptoSession pCryptoSession);
2633 	HRESULT GetDecoderBuffer(ID3D11VideoDecoder pDecoder, D3D11_VIDEO_DECODER_BUFFER_TYPE Type, uint *pBufferSize,void **ppBuffer);
2634 	HRESULT GetEncryptionBltKey(ID3D11CryptoSession pCryptoSession, uint KeySize, void *pReadbackKey);
2635 	HRESULT NegotiateAuthenticatedChannelKeyExchange(ID3D11AuthenticatedChannel pChannel, uint DataSize, void *pData);
2636 	HRESULT NegotiateCryptoSessionKeyExchange(ID3D11CryptoSession pCryptoSession, uint *DataSize, void *pData);
2637 	HRESULT QueryAuthenticatedChannel(ID3D11AuthenticatedChannel pChannel, uint InputSize, const void *pInput, uint OutputSize, void *pOutput);
2638 	HRESULT ReleaseDecoderBuffer(ID3D11VideoDecoder pDecoder, D3D11_VIDEO_DECODER_BUFFER_TYPE Type);
2639 	HRESULT StartSessionKeyRefresh(ID3D11CryptoSession pCryptoSession, uint RandomNumberSize, void *pRandomNumber);
2640 	HRESULT SubmitDecoderBuffers(ID3D11VideoDecoder pDecoder, uint NumBuffers, const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc);
2641 	HRESULT VideoProcessorBlt(ID3D11VideoProcessor pVideoProcessor, ID3D11VideoProcessorOutputView pView, uint OutputFrame, uint StreamCount, const D3D11_VIDEO_PROCESSOR_STREAM *pStreams);
2642 	void VideoProcessorGetOutputAlphaFillMode(ID3D11VideoProcessor pVideoProcessor, D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *pAlphaFillMode, uint *pStreamIndex);
2643 	void VideoProcessorGetOutputBackgroundColor(ID3D11VideoProcessor pVideoProcessor, bool *pYCbCr, D3D11_VIDEO_COLOR *pColor);
2644 	void VideoProcessorGetOutputColorSpace(ID3D11VideoProcessor pVideoProcessor, D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
2645 	void VideoProcessorGetOutputConstriction(ID3D11VideoProcessor pVideoProcessor, bool *Enabled, SIZE *pSize);
2646 	HRESULT VideoProcessorGetOutputExtension(ID3D11VideoProcessor pVideoProcessor, const GUID *pExtensionGuid, uint DataSize, void *pData);
2647 	void VideoProcessorGetOutputStereoMode(ID3D11VideoProcessor pVideoProcessor, bool *pEnabled);
2648 	void VideoProcessorGetOutputTargetRect(ID3D11VideoProcessor pVideoProcessor, bool *Enabled, RECT*pRect);
2649 	void VideoProcessorGetStreamAlpha(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnabled, float *pAlpha);
2650 	void VideoProcessorGetStreamAutoProcessingMode(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnabled);
2651 	void VideoProcessorGetStreamColorSpace(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
2652 	void VideoProcessorGetStreamDestRect(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnabled, RECT *pRect);
2653 	HRESULT VideoProcessorGetStreamExtension(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, const GUID *pExtensionGuid, uint DataSize, void *pData);
2654 	void VideoProcessorGetStreamFilter(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex,D3D11_VIDEO_PROCESSOR_FILTER Filter, bool *pEnabled, int*pLevel);
2655 	void VideoProcessorGetStreamFrameFormat(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, D3D11_VIDEO_FRAME_FORMAT *pFrameFormat);
2656 	void VideoProcessorGetStreamLumaKey(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnabled, float *pLower, float *pUpper);
2657 	void VideoProcessorGetStreamOutputRate(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *pOutputRate, bool *pRepeatFrame, DXGI_RATIONAL *pCustomRate);
2658 	void VideoProcessorGetStreamPalette(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, uint Count, uint *pEntries);
2659 	void VideoProcessorGetStreamPixelAspectRatio(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnabled, DXGI_RATIONAL *pSourceAspectRatio, DXGI_RATIONAL *pDestinationAspectRatio);
2660 	void VideoProcessorGetStreamRotation(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnable, D3D11_VIDEO_PROCESSOR_ROTATION *pRotation);
2661 	void VideoProcessorGetStreamSourceRect(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnabled, RECT *pRect);
2662 	void VideoProcessorGetStreamStereoFormat(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool *pEnabled, D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *pFormat, bool *pLeftViewFrame0, bool *pBaseViewFrame0, D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *pFlipMode, int *MonoOffset);
2663 	void VideoProcessorSetOutputAlphaFillMode(ID3D11VideoProcessor pVideoProcessor, D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE AlphaFillMode, uint StreamIndex);
2664 	void VideoProcessorSetOutputBackgroundColor(ID3D11VideoProcessor pVideoProcessor, bool YCbCr, const D3D11_VIDEO_COLOR *pColor);
2665 	void VideoProcessorSetOutputColorSpace(ID3D11VideoProcessor pVideoProcessor, const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
2666 	void VideoProcessorSetOutputConstriction(ID3D11VideoProcessor pVideoProcessor, bool Enable, SIZE Size);
2667 	HRESULT VideoProcessorSetOutputExtension(ID3D11VideoProcessor pVideoProcessor, const GUID *pExtensionGuid, uint DataSize, void *pData);
2668 	void VideoProcessorSetOutputStereoMode(ID3D11VideoProcessor pVideoProcessor, bool Enable);
2669 	void VideoProcessorSetOutputTargetRect(ID3D11VideoProcessor pVideoProcessor, bool Enable, const RECT *pRect);
2670 	void VideoProcessorSetStreamAlpha(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, float Alpha);
2671 	void VideoProcessorSetStreamAutoProcessingMode(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable);
2672 	void VideoProcessorSetStreamColorSpace(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
2673 	void VideoProcessorSetStreamDestRect(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, const RECT *pRect);
2674 	HRESULT VideoProcessorSetStreamExtension(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, const GUID *pExtensionGuid, uint DataSize, void *pData);
2675 	void VideoProcessorSetStreamFilter(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, D3D11_VIDEO_PROCESSOR_FILTER Filter, bool Enable, int Level);
2676 	void VideoProcessorSetStreamFrameFormat(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, D3D11_VIDEO_FRAME_FORMAT FrameFormat);
2677 	void VideoProcessorSetStreamLumaKey(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, float Lower, float Upper);
2678 	void VideoProcessorSetStreamOutputRate(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, D3D11_VIDEO_PROCESSOR_OUTPUT_RATE OutputRate, bool RepeatFrame, const DXGI_RATIONAL *pCustomRate);
2679 	void VideoProcessorSetStreamPalette(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, uint Count, const uint *pEntries);
2680 	void VideoProcessorSetStreamPixelAspectRatio(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, const DXGI_RATIONAL *pSourceAspectRatio, const DXGI_RATIONAL *pDestinationAspectRatio);
2681 	void VideoProcessorSetStreamRotation(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, D3D11_VIDEO_PROCESSOR_ROTATION Rotation);
2682 	void VideoProcessorSetStreamSourceRect(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, const RECT *pRect);
2683 	void VideoProcessorSetStreamStereoFormat(ID3D11VideoProcessor pVideoProcessor, uint StreamIndex, bool Enable, D3D11_VIDEO_PROCESSOR_STEREO_FORMAT Format, bool LeftViewFrame0, bool BaseViewFrame0, D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE FlipMode, int MonoOffset);
2684 }
2685 
2686 mixin(uuid!(ID3D11VideoDevice, "10EC4D5B-975A-4689-B9E4-D0AAC30FE333"));
2687 public interface ID3D11VideoDevice : IUnknown
2688 {
2689 extern(Windows):
2690 	HRESULT CheckCryptoKeyExchange(const GUID *pCryptoType, const GUID *pDecoderProfile, uint Index, GUID *pKeyExchangeType);
2691 	HRESULT CheckVideoDecoderFormat(GUID pDecoderProfile, DXGI_FORMAT Format, bool *pSupported);
2692 	HRESULT CreateAuthenticatedChannel(D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, ID3D11AuthenticatedChannel *ppAuthenticatedChannel);
2693 	HRESULT CreateCryptoSession(const GUID *pCryptoType, const GUID *pDecoderProfile, const GUID *pKeyExchangeType, ID3D11CryptoSession *ppCryptoSession);
2694 	HRESULT CreateVideoDecoder(const D3D11_VIDEO_DECODER_DESC *pVideoDesc, const D3D11_VIDEO_DECODER_CONFIG *pConfig, ID3D11VideoDecoder **ppDecoder);
2695 	HRESULT CreateVideoDecoderOutputView(ID3D11Resource pResource, const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, ID3D11VideoDecoderOutputView *ppVDOVView);
2696 	HRESULT CreateVideoProcessor(ID3D11VideoProcessorEnumerator pEnum, uint RateConversionIndex, ID3D11VideoProcessor *ppVideoProcessor);
2697 	HRESULT CreateVideoProcessorEnumerator(const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc, ID3D11VideoProcessorEnumerator *ppEnum);
2698 	HRESULT CreateVideoProcessorInputView(ID3D11Resource pResource, ID3D11VideoProcessorEnumerator pEnum, const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc, ID3D11VideoProcessorInputView *ppVPIView);
2699 	HRESULT CreateVideoProcessorOutputView(ID3D11Resource pResource, ID3D11VideoProcessorEnumerator pEnum, const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc, ID3D11VideoProcessorOutputView *ppVPOView);
2700 	HRESULT GetContentProtectionCaps(const GUID *pCryptoType, const GUID *pDecoderProfile, D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps);
2701 	HRESULT GetVideoDecoderConfig(const D3D11_VIDEO_DECODER_DESC *pDesc, uint Index, D3D11_VIDEO_DECODER_CONFIG *pConfig);
2702 	HRESULT GetVideoDecoderConfigCount(const D3D11_VIDEO_DECODER_DESC *pDesc, uint *pCount);
2703 	HRESULT GetVideoDecoderProfile(uint Index, GUID *pDecoderProfile);
2704 	uint GetVideoDecoderProfileCount();
2705 	HRESULT SetPrivateData(REFGUID guid, uint DataSize, const void *pData);
2706 	HRESULT SetPrivateDataInterface(REFGUID guid, const IUnknown *pData);
2707 }