winemac: Consolidate mouse move handling into -[WineApplicationController handleMouse...
[wine.git] / include / d3d11.idl
blob4f4c3e3922f54b7c813f35be4a4ac2d4094dc3a6
1 /*
2 * Copyright 2010 Rico Schüller
3 * Copyright 2013 Austin English
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 import "oaidl.idl";
21 import "ocidl.idl";
22 import "dxgi.idl";
23 import "d3dcommon.idl";
25 typedef D3D_PRIMITIVE D3D11_PRIMITIVE;
26 typedef D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY;
27 typedef D3D_SRV_DIMENSION D3D11_SRV_DIMENSION;
28 typedef RECT D3D11_RECT;
30 const unsigned int D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT = 8;
32 typedef enum D3D11_BLEND
34 D3D11_BLEND_ZERO = 1,
35 D3D11_BLEND_ONE = 2,
36 D3D11_BLEND_SRC_COLOR = 3,
37 D3D11_BLEND_INV_SRC_COLOR = 4,
38 D3D11_BLEND_SRC_ALPHA = 5,
39 D3D11_BLEND_INV_SRC_ALPHA = 6,
40 D3D11_BLEND_DEST_ALPHA = 7,
41 D3D11_BLEND_INV_DEST_ALPHA = 8,
42 D3D11_BLEND_DEST_COLOR = 9,
43 D3D11_BLEND_INV_DEST_COLOR = 10,
44 D3D11_BLEND_SRC_ALPHA_SAT = 11,
45 D3D11_BLEND_BLEND_FACTOR = 14,
46 D3D11_BLEND_INV_BLEND_FACTOR = 15,
47 D3D11_BLEND_SRC1_COLOR = 16,
48 D3D11_BLEND_INV_SRC1_COLOR = 17,
49 D3D11_BLEND_SRC1_ALPHA = 18,
50 D3D11_BLEND_INV_SRC1_ALPHA = 19,
51 } D3D11_BLEND;
53 typedef enum D3D11_BLEND_OP
55 D3D11_BLEND_OP_ADD = 1,
56 D3D11_BLEND_OP_SUBTRACT,
57 D3D11_BLEND_OP_REV_SUBTRACT,
58 D3D11_BLEND_OP_MIN,
59 D3D11_BLEND_OP_MAX
60 } D3D11_BLEND_OP;
62 typedef struct D3D11_BOX
64 UINT left;
65 UINT top;
66 UINT front;
67 UINT right;
68 UINT bottom;
69 UINT back;
70 } D3D11_BOX;
72 typedef struct D3D11_BUFFER_RTV
74 union
76 UINT FirstElement;
77 UINT ElementOffset;
79 union
81 UINT NumElements;
82 UINT ElementWidth;
84 } D3D11_BUFFER_RTV;
86 typedef struct D3D11_BUFFER_SRV
88 union
90 UINT FirstElement;
91 UINT ElementOffset;
93 union
95 UINT NumElements;
96 UINT ElementWidth;
98 } D3D11_BUFFER_SRV;
100 typedef struct D3D11_BUFFER_UAV
102 UINT FirstElement;
103 UINT NumElements;
104 UINT Flags;
105 } D3D11_BUFFER_UAV;
107 typedef struct D3D11_BUFFEREX_SRV
109 UINT FirstElement;
110 UINT NumElements;
111 UINT Flags;
112 } D3D11_BUFFEREX_SRV;
114 typedef struct D3D11_CLASS_INSTANCE_DESC
116 UINT InstanceId;
117 UINT InstanceIndex;
118 UINT TypeId;
119 UINT ConstantBuffer;
120 UINT BaseConstantBufferOffset;
121 UINT BaseTexture;
122 UINT BaseSampler;
123 BOOL Created;
124 } D3D11_CLASS_INSTANCE_DESC;
126 typedef enum D3D11_COMPARISON_FUNC
128 D3D11_COMPARISON_NEVER = 1,
129 D3D11_COMPARISON_LESS,
130 D3D11_COMPARISON_EQUAL,
131 D3D11_COMPARISON_LESS_EQUAL,
132 D3D11_COMPARISON_GREATER,
133 D3D11_COMPARISON_NOT_EQUAL,
134 D3D11_COMPARISON_GREATER_EQUAL,
135 D3D11_COMPARISON_ALWAYS
136 } D3D11_COMPARISON_FUNC;
138 typedef enum D3D11_COUNTER
140 D3D11_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000,
141 } D3D11_COUNTER;
143 typedef struct D3D11_COUNTER_DESC
145 D3D11_COUNTER Counter;
146 UINT MiscFlags;
147 } D3D11_COUNTER_DESC;
149 typedef struct D3D11_COUNTER_INFO
151 D3D11_COUNTER LastDeviceDependentCounter;
152 UINT NumSimultaneousCounters;
153 UINT8 NumDetectableParallelUnits;
154 } D3D11_COUNTER_INFO;
156 typedef enum D3D11_COUNTER_TYPE
158 D3D11_COUNTER_TYPE_FLOAT32,
159 D3D11_COUNTER_TYPE_UINT16,
160 D3D11_COUNTER_TYPE_UINT32,
161 D3D11_COUNTER_TYPE_UINT64,
162 } D3D11_COUNTER_TYPE;
164 typedef enum D3D11_CULL_MODE
166 D3D11_CULL_NONE = 1,
167 D3D11_CULL_FRONT,
168 D3D11_CULL_BACK
169 } D3D11_CULL_MODE;
171 typedef enum D3D11_DEPTH_WRITE_MASK
173 D3D11_DEPTH_WRITE_MASK_ZERO,
174 D3D11_DEPTH_WRITE_MASK_ALL,
175 } D3D11_DEPTH_WRITE_MASK;
177 typedef enum D3D11_DEVICE_CONTEXT_TYPE
179 D3D11_DEVICE_CONTEXT_IMMEDIATE,
180 D3D11_DEVICE_CONTEXT_DEFERRED,
181 } D3D11_DEVICE_CONTEXT_TYPE;
183 typedef enum D3D11_DSV_DIMENSION
185 D3D11_DSV_DIMENSION_UNKNOWN,
186 D3D11_DSV_DIMENSION_TEXTURE1D,
187 D3D11_DSV_DIMENSION_TEXTURE1DARRAY,
188 D3D11_DSV_DIMENSION_TEXTURE2D,
189 D3D11_DSV_DIMENSION_TEXTURE2DARRAY,
190 D3D11_DSV_DIMENSION_TEXTURE2DMS,
191 D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY,
192 } D3D11_DSV_DIMENSION;
194 typedef enum D3D11_FEATURE
196 D3D11_FEATURE_THREADING,
197 D3D11_FEATURE_DOUBLES,
198 D3D11_FEATURE_FORMAT_SUPPORT,
199 D3D11_FEATURE_FORMAT_SUPPORT2,
200 D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS,
201 } D3D11_FEATURE;
203 typedef enum D3D11_FILL_MODE
205 D3D11_FILL_WIREFRAME = 2,
206 D3D11_FILL_SOLID
207 } D3D11_FILL_MODE;
209 typedef enum D3D11_FILTER
211 D3D11_FILTER_MIN_MAG_MIP_POINT = 0x00,
212 D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x01,
213 D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x04,
214 D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x05,
215 D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
216 D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
217 D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
218 D3D11_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
219 D3D11_FILTER_ANISOTROPIC = 0x55,
220 D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
221 D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
222 D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
223 D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
224 D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
225 D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
226 D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
227 D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
228 D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5
229 } D3D11_FILTER;
231 typedef enum D3D11_DSV_FLAG
233 D3D11_DSV_READ_ONLY_DEPTH = 0x1,
234 D3D11_DSV_READ_ONLY_STENCIL = 0x2,
235 } D3D11_DSV_FLAG;
237 typedef enum D3D11_INPUT_CLASSIFICATION
239 D3D11_INPUT_PER_VERTEX_DATA,
240 D3D11_INPUT_PER_INSTANCE_DATA,
241 } D3D11_INPUT_CLASSIFICATION;
243 typedef struct D3D11_INPUT_ELEMENT_DESC
245 LPCSTR SemanticName;
246 UINT SemanticIndex;
247 DXGI_FORMAT Format;
248 UINT InputSlot;
249 UINT AlignedByteOffset;
250 D3D11_INPUT_CLASSIFICATION InputSlotClass;
251 UINT InstanceDataStepRate;
252 } D3D11_INPUT_ELEMENT_DESC;
254 typedef enum D3D11_MAP
256 D3D11_MAP_READ = 1,
257 D3D11_MAP_WRITE,
258 D3D11_MAP_READ_WRITE,
259 D3D11_MAP_WRITE_DISCARD,
260 D3D11_MAP_WRITE_NO_OVERWRITE
261 } D3D11_MAP;
263 typedef struct D3D11_MAPPED_SUBRESOURCE
265 void *pData;
266 UINT RowPitch;
267 UINT DepthPitch;
268 } D3D11_MAPPED_SUBRESOURCE;
270 typedef enum D3D11_QUERY
272 D3D11_QUERY_EVENT,
273 D3D11_QUERY_OCCLUSION,
274 D3D11_QUERY_TIMESTAMP,
275 D3D11_QUERY_TIMESTAMP_DISJOINT,
276 D3D11_QUERY_PIPELINE_STATISTICS,
277 D3D11_QUERY_OCCLUSION_PREDICATE,
278 D3D11_QUERY_SO_STATISTICS,
279 D3D11_QUERY_SO_OVERFLOW_PREDICATE,
280 D3D11_QUERY_SO_STATISTICS_STREAM0,
281 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0,
282 D3D11_QUERY_SO_STATISTICS_STREAM1,
283 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1,
284 D3D11_QUERY_SO_STATISTICS_STREAM2,
285 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2,
286 D3D11_QUERY_SO_STATISTICS_STREAM3,
287 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3,
288 } D3D11_QUERY;
290 typedef struct D3D11_QUERY_DESC
292 D3D11_QUERY Query;
293 UINT MiscFlags;
294 } D3D11_QUERY_DESC;
296 typedef struct D3D11_RASTERIZER_DESC
298 D3D11_FILL_MODE FillMode;
299 D3D11_CULL_MODE CullMode;
300 BOOL FrontCounterClockwise;
301 INT DepthBias;
302 FLOAT DepthBiasClamp;
303 FLOAT SlopeScaledDepthBias;
304 BOOL DepthClipEnable;
305 BOOL ScissorEnable;
306 BOOL MultisampleEnable;
307 BOOL AntialiasedLineEnable;
308 } D3D11_RASTERIZER_DESC;
310 typedef enum D3D11_RESOURCE_DIMENSION
312 D3D11_RESOURCE_DIMENSION_UNKNOWN,
313 D3D11_RESOURCE_DIMENSION_BUFFER,
314 D3D11_RESOURCE_DIMENSION_TEXTURE1D,
315 D3D11_RESOURCE_DIMENSION_TEXTURE2D,
316 D3D11_RESOURCE_DIMENSION_TEXTURE3D,
317 } D3D11_RESOURCE_DIMENSION;
319 typedef enum D3D11_RTV_DIMENSION
321 D3D11_RTV_DIMENSION_UNKNOWN,
322 D3D11_RTV_DIMENSION_BUFFER,
323 D3D11_RTV_DIMENSION_TEXTURE1D,
324 D3D11_RTV_DIMENSION_TEXTURE1DARRAY,
325 D3D11_RTV_DIMENSION_TEXTURE2D,
326 D3D11_RTV_DIMENSION_TEXTURE2DARRAY,
327 D3D11_RTV_DIMENSION_TEXTURE2DMS,
328 D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY,
329 D3D11_RTV_DIMENSION_TEXTURE3D,
330 } D3D11_RTV_DIMENSION;
332 typedef struct D3D11_SO_DECLARATION_ENTRY
334 UINT Stream;
335 LPCSTR SemanticName;
336 UINT SemanticIndex;
337 BYTE StartComponent;
338 BYTE ComponentCount;
339 BYTE OutputSlot;
340 } D3D11_SO_DECLARATION_ENTRY;
342 typedef enum D3D11_STENCIL_OP
344 D3D11_STENCIL_OP_KEEP = 1,
345 D3D11_STENCIL_OP_ZERO,
346 D3D11_STENCIL_OP_REPLACE,
347 D3D11_STENCIL_OP_INCR_SAT,
348 D3D11_STENCIL_OP_DECR_SAT,
349 D3D11_STENCIL_OP_INVERT,
350 D3D11_STENCIL_OP_INCR,
351 D3D11_STENCIL_OP_DECR
352 } D3D11_STENCIL_OP;
354 typedef struct D3D11_SUBRESOURCE_DATA
356 const void *pSysMem;
357 UINT SysMemPitch;
358 UINT SysMemSlicePitch;
359 } D3D11_SUBRESOURCE_DATA;
361 typedef struct D3D11_TEX1D_ARRAY_DSV
363 UINT MipSlice;
364 UINT FirstArraySlice;
365 UINT ArraySize;
366 } D3D11_TEX1D_ARRAY_DSV;
368 typedef struct D3D11_TEX1D_ARRAY_RTV
370 UINT MipSlice;
371 UINT FirstArraySlice;
372 UINT ArraySize;
373 } D3D11_TEX1D_ARRAY_RTV;
375 typedef struct D3D11_TEX1D_ARRAY_SRV
377 UINT MostDetailedMip;
378 UINT MipLevels;
379 UINT FirstArraySlice;
380 UINT ArraySize;
381 } D3D11_TEX1D_ARRAY_SRV;
383 typedef struct D3D11_TEX1D_ARRAY_UAV
385 UINT MipSlice;
386 UINT FirstArraySlice;
387 UINT ArraySize;
388 } D3D11_TEX1D_ARRAY_UAV;
390 typedef struct D3D11_TEX1D_DSV
392 UINT MipSlice;
393 } D3D11_TEX1D_DSV;
395 typedef struct D3D11_TEX1D_RTV
397 UINT MipSlice;
398 } D3D11_TEX1D_RTV;
400 typedef struct D3D11_TEX1D_SRV
402 UINT MostDetailedMip;
403 UINT MipLevels;
404 } D3D11_TEX1D_SRV;
406 typedef struct D3D11_TEX1D_UAV
408 UINT MipSlice;
409 } D3D11_TEX1D_UAV;
411 typedef struct D3D11_TEX2D_ARRAY_DSV
413 UINT MipSlice;
414 UINT FirstArraySlice;
415 UINT ArraySize;
416 } D3D11_TEX2D_ARRAY_DSV;
418 typedef struct D3D11_TEX2D_ARRAY_RTV
420 UINT MipSlice;
421 UINT FirstArraySlice;
422 UINT ArraySize;
423 } D3D11_TEX2D_ARRAY_RTV;
425 typedef struct D3D11_TEX2D_ARRAY_SRV
427 UINT MostDetailedMip;
428 UINT MipLevels;
429 UINT FirstArraySlice;
430 UINT ArraySize;
431 } D3D11_TEX2D_ARRAY_SRV;
433 typedef struct D3D11_TEX2D_ARRAY_UAV
435 UINT MipSlice;
436 UINT FirstArraySlice;
437 UINT ArraySize;
438 } D3D11_TEX2D_ARRAY_UAV;
440 typedef struct D3D11_TEX2D_DSV
442 UINT MipSlice;
443 } D3D11_TEX2D_DSV;
445 typedef struct D3D11_TEX2D_RTV
447 UINT MipSlice;
448 } D3D11_TEX2D_RTV;
450 typedef struct D3D11_TEX2D_SRV
452 UINT MostDetailedMip;
453 UINT MipLevels;
454 } D3D11_TEX2D_SRV;
456 typedef struct D3D11_TEX2D_UAV
458 UINT MipSlice;
459 } D3D11_TEX2D_UAV;
461 typedef struct D3D11_TEX2DMS_ARRAY_DSV
463 UINT FirstArraySlice;
464 UINT ArraySize;
465 } D3D11_TEX2DMS_ARRAY_DSV;
467 typedef struct D3D11_TEX2DMS_ARRAY_RTV
469 UINT FirstArraySlice;
470 UINT ArraySize;
471 } D3D11_TEX2DMS_ARRAY_RTV;
473 typedef struct D3D11_TEX2DMS_ARRAY_SRV
475 UINT FirstArraySlice;
476 UINT ArraySize;
477 } D3D11_TEX2DMS_ARRAY_SRV;
479 typedef struct D3D11_TEX2DMS_DSV
481 UINT UnusedField_NothingToDefine;
482 } D3D11_TEX2DMS_DSV;
484 typedef struct D3D11_TEX2DMS_RTV
486 UINT UnusedField_NothingToDefine;
487 } D3D11_TEX2DMS_RTV;
489 typedef struct D3D11_TEX2DMS_SRV
491 UINT UnusedField_NothingToDefine;
492 } D3D11_TEX2DMS_SRV;
494 typedef struct D3D11_TEX3D_RTV
496 UINT MipSlice;
497 UINT FirstWSlice;
498 UINT WSize;
499 } D3D11_TEX3D_RTV;
501 typedef struct D3D11_TEX3D_SRV
503 UINT MostDetailedMip;
504 UINT MipLevels;
505 } D3D11_TEX3D_SRV;
507 typedef struct D3D11_TEX3D_UAV
509 UINT MipSlice;
510 UINT FirstWSlice;
511 UINT WSize;
512 } D3D11_TEX3D_UAV;
514 typedef struct D3D11_TEXCUBE_ARRAY_SRV
516 UINT MostDetailedMip;
517 UINT MipLevels;
518 UINT First2DArrayFace;
519 UINT NumCubes;
520 } D3D11_TEXCUBE_ARRAY_SRV;
522 typedef struct D3D11_TEXCUBE_SRV
524 UINT MostDetailedMip;
525 UINT MipLevels;
526 } D3D11_TEXCUBE_SRV;
528 typedef enum D3D11_TEXTURE_ADDRESS_MODE
530 D3D11_TEXTURE_ADDRESS_WRAP = 1,
531 D3D11_TEXTURE_ADDRESS_MIRROR,
532 D3D11_TEXTURE_ADDRESS_CLAMP,
533 D3D11_TEXTURE_ADDRESS_BORDER,
534 D3D11_TEXTURE_ADDRESS_MIRROR_ONCE
535 } D3D11_TEXTURE_ADDRESS_MODE;
537 typedef enum D3D11_UAV_DIMENSION
539 D3D11_UAV_DIMENSION_UNKNOWN,
540 D3D11_UAV_DIMENSION_BUFFER,
541 D3D11_UAV_DIMENSION_TEXTURE1D,
542 D3D11_UAV_DIMENSION_TEXTURE1DARRAY,
543 D3D11_UAV_DIMENSION_TEXTURE2D,
544 D3D11_UAV_DIMENSION_TEXTURE2DARRAY,
545 D3D11_UAV_DIMENSION_TEXTURE3D = 8,
546 } D3D11_UAV_DIMENSION;
548 typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC
550 DXGI_FORMAT Format;
551 D3D11_UAV_DIMENSION ViewDimension;
553 union
555 D3D11_BUFFER_UAV Buffer;
556 D3D11_TEX1D_UAV Texture1D;
557 D3D11_TEX1D_ARRAY_UAV Texture1DArray;
558 D3D11_TEX2D_UAV Texture2D;
559 D3D11_TEX2D_ARRAY_UAV Texture2DArray;
560 D3D11_TEX3D_UAV Texture3D;
562 } D3D11_UNORDERED_ACCESS_VIEW_DESC;
564 typedef enum D3D11_USAGE
566 D3D11_USAGE_DEFAULT,
567 D3D11_USAGE_IMMUTABLE,
568 D3D11_USAGE_DYNAMIC,
569 D3D11_USAGE_STAGING,
570 } D3D11_USAGE;
572 typedef struct D3D11_VIEWPORT
574 FLOAT TopLeftX;
575 FLOAT TopLeftY;
576 FLOAT Width;
577 FLOAT Height;
578 FLOAT MinDepth;
579 FLOAT MaxDepth;
580 } D3D11_VIEWPORT;
582 typedef struct D3D11_RENDER_TARGET_BLEND_DESC
584 BOOL BlendEnable;
585 D3D11_BLEND SrcBlend;
586 D3D11_BLEND DestBlend;
587 D3D11_BLEND_OP BlendOp;
588 D3D11_BLEND SrcBlendAlpha;
589 D3D11_BLEND DestBlendAlpha;
590 D3D11_BLEND_OP BlendOpAlpha;
591 UINT8 RenderTargetWriteMask;
592 } D3D11_RENDER_TARGET_BLEND_DESC;
594 typedef struct D3D11_BLEND_DESC
596 BOOL AlphaToCoverageEnable;
597 BOOL IndependentBlendEnable;
598 D3D11_RENDER_TARGET_BLEND_DESC RenderTarget[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT];
599 } D3D11_BLEND_DESC;
601 typedef struct D3D11_BUFFER_DESC
603 UINT ByteWidth;
604 D3D11_USAGE Usage;
605 UINT BindFlags;
606 UINT CPUAccessFlags;
607 UINT MiscFlags;
608 UINT StructureByteStride;
609 } D3D11_BUFFER_DESC;
611 typedef struct D3D11_DEPTH_STENCIL_VIEW_DESC
613 DXGI_FORMAT Format;
614 D3D11_DSV_DIMENSION ViewDimension;
615 UINT Flags;
617 union
619 D3D11_TEX1D_DSV Texture1D;
620 D3D11_TEX1D_ARRAY_DSV Texture1DArray;
621 D3D11_TEX2D_DSV Texture2D;
622 D3D11_TEX2D_ARRAY_DSV Texture2DArray;
623 D3D11_TEX2DMS_DSV Texture2DMS;
624 D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray;
626 } D3D11_DEPTH_STENCIL_VIEW_DESC;
628 typedef struct D3D11_DEPTH_STENCILOP_DESC
630 D3D11_STENCIL_OP StencilFailOp;
631 D3D11_STENCIL_OP StencilDepthFailOp;
632 D3D11_STENCIL_OP StencilPassOp;
633 D3D11_COMPARISON_FUNC StencilFunc;
634 } D3D11_DEPTH_STENCILOP_DESC;
636 typedef struct D3D11_DEPTH_STENCIL_DESC
638 BOOL DepthEnable;
639 D3D11_DEPTH_WRITE_MASK DepthWriteMask;
640 D3D11_COMPARISON_FUNC DepthFunc;
641 BOOL StencilEnable;
642 UINT8 StencilReadMask;
643 UINT8 StencilWriteMask;
644 D3D11_DEPTH_STENCILOP_DESC FrontFace;
645 D3D11_DEPTH_STENCILOP_DESC BackFace;
646 } D3D11_DEPTH_STENCIL_DESC;
648 typedef struct D3D11_RENDER_TARGET_VIEW_DESC
650 DXGI_FORMAT Format;
651 D3D11_RTV_DIMENSION ViewDimension;
653 union
655 D3D11_BUFFER_RTV Buffer;
656 D3D11_TEX1D_RTV Texture1D;
657 D3D11_TEX1D_ARRAY_RTV Texture1DArray;
658 D3D11_TEX2D_RTV Texture2D;
659 D3D11_TEX2D_ARRAY_RTV Texture2DArray;
660 D3D11_TEX2DMS_RTV Texture2DMS;
661 D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray;
662 D3D11_TEX3D_RTV Texture3D;
664 } D3D11_RENDER_TARGET_VIEW_DESC;
666 typedef struct D3D11_SAMPLER_DESC
668 D3D11_FILTER Filter;
669 D3D11_TEXTURE_ADDRESS_MODE AddressU;
670 D3D11_TEXTURE_ADDRESS_MODE AddressV;
671 D3D11_TEXTURE_ADDRESS_MODE AddressW;
672 FLOAT MipLODBias;
673 UINT MaxAnisotropy;
674 D3D11_COMPARISON_FUNC ComparisonFunc;
675 FLOAT BorderColor[4];
676 FLOAT MinLOD;
677 FLOAT MaxLOD;
678 } D3D11_SAMPLER_DESC;
680 typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC
682 DXGI_FORMAT Format;
683 D3D11_SRV_DIMENSION ViewDimension;
685 union
687 D3D11_BUFFER_SRV Buffer;
688 D3D11_TEX1D_SRV Texture1D;
689 D3D11_TEX1D_ARRAY_SRV Texture1DArray;
690 D3D11_TEX2D_SRV Texture2D;
691 D3D11_TEX2D_ARRAY_SRV Texture2DArray;
692 D3D11_TEX2DMS_SRV Texture2DMS;
693 D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray;
694 D3D11_TEX3D_SRV Texture3D;
695 D3D11_TEXCUBE_SRV TextureCube;
696 D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray;
697 D3D11_BUFFEREX_SRV BufferEx;
699 } D3D11_SHADER_RESOURCE_VIEW_DESC;
701 typedef struct D3D11_TEXTURE1D_DESC
703 UINT Width;
704 UINT MipLevels;
705 UINT ArraySize;
706 DXGI_FORMAT Format;
707 D3D11_USAGE Usage;
708 UINT BindFlags;
709 UINT CPUAccessFlags;
710 UINT MiscFlags;
711 } D3D11_TEXTURE1D_DESC;
713 typedef struct D3D11_TEXTURE2D_DESC
715 UINT Width;
716 UINT Height;
717 UINT MipLevels;
718 UINT ArraySize;
719 DXGI_FORMAT Format;
720 DXGI_SAMPLE_DESC SampleDesc;
721 D3D11_USAGE Usage;
722 UINT BindFlags;
723 UINT CPUAccessFlags;
724 UINT MiscFlags;
725 } D3D11_TEXTURE2D_DESC;
727 typedef struct D3D11_TEXTURE3D_DESC
729 UINT Width;
730 UINT Height;
731 UINT Depth;
732 UINT MipLevels;
733 DXGI_FORMAT Format;
734 D3D11_USAGE Usage;
735 UINT BindFlags;
736 UINT CPUAccessFlags;
737 UINT MiscFlags;
738 } D3D11_TEXTURE3D_DESC;
740 /* A couple forward declarations are needed */
741 interface ID3D11Device;
742 interface ID3D11ClassLinkage;
745 object,
746 local,
747 uuid(1841e5c8-16b0-489b-bcc8-44cfb0d5deae)
749 interface ID3D11DeviceChild : IUnknown
751 void GetDevice(
752 [out] ID3D11Device **ppDevice);
753 HRESULT GetPrivateData(
754 [in] REFGUID guid,
755 [in, out] UINT *pDataSize,
756 [out] void *pData);
757 HRESULT SetPrivateData(
758 [in] REFGUID guid,
759 [in] UINT DataSize,
760 [in] const void *pData);
761 HRESULT SetPrivateDataInterface(
762 [in] REFGUID guid,
763 [in] const IUnknown *pData);
767 object,
768 local,
769 uuid(4b35d0cd-1e15-4258-9c98-1b1333f6dd3b)
771 interface ID3D11Asynchronous : ID3D11DeviceChild
773 UINT GetDataSize();
777 object,
778 local,
779 uuid(d6c00747-87b7-425e-b84d-44d108560afd)
781 interface ID3D11Query : ID3D11Asynchronous
783 void GetDesc(
784 [out] D3D11_QUERY_DESC *pDesc);
788 object,
789 local,
790 uuid(dc8e63f3-d12b-4952-b47b-5e45026a862d)
792 interface ID3D11Resource : ID3D11DeviceChild
794 void GetType(
795 [out] D3D11_RESOURCE_DIMENSION *pResourceDimension);
796 void SetEvictionPriority(
797 [in] UINT EvictionPriority);
798 UINT GetEvictionPriority();
802 object,
803 local,
804 uuid(839d1216-bb2e-412b-b7f4-a9dbebe08ed1)
806 interface ID3D11View : ID3D11DeviceChild
808 void GetResource(
809 [out] ID3D11Resource **ppResource);
813 object,
814 local,
815 uuid(75b68faa-347d-4159-8f45-a0640f01cd9a)
817 interface ID3D11BlendState : ID3D11DeviceChild
819 void GetDesc(
820 [out] D3D11_BLEND_DESC *pDesc);
824 object,
825 local,
826 uuid(48570b85-d1ee-4fcd-a250-eb350722b037)
828 interface ID3D11Buffer : ID3D11Resource
830 void GetDesc(
831 [out] D3D11_BUFFER_DESC *pDesc);
835 object,
836 local,
837 uuid(a6cd7faa-b0b7-4a2f-9436-8662a65797cb)
839 interface ID3D11ClassInstance : ID3D11DeviceChild
841 void GetClassLinkage(
842 [out] ID3D11ClassLinkage **ppLinkage);
843 void GetDesc(
844 [out] D3D11_CLASS_INSTANCE_DESC *pDesc);
845 void GetInstanceName(
846 [out] LPSTR pInstanceName,
847 [in, out] SIZE_T *pBufferLength);
848 void GetTypeName(
849 [out] LPSTR pTypeName,
850 [in, out] SIZE_T *pBufferLength);
854 object,
855 local,
856 uuid(ddf57cba-9543-46e4-a12b-f207a0fe7fed)
858 interface ID3D11ClassLinkage : ID3D11DeviceChild
860 HRESULT GetClassInstance(
861 [in] LPCSTR pClassInstanceName,
862 [in] UINT InstanceIndex,
863 [out] ID3D11ClassInstance **ppInstance);
864 HRESULT CreateClassInstance(
865 [in] LPCSTR pClassTypeName,
866 [in] UINT ConstantBufferOffset,
867 [in] UINT ConstantVectorOffset,
868 [in] UINT TextureOffset,
869 [in] UINT SamplerOffset,
870 [out] ID3D11ClassInstance **ppInstance);
874 object,
875 local,
876 uuid(a24bc4d1-769e-43f7-8013-98ff566c18e2)
878 interface ID3D11CommandList : ID3D11DeviceChild
880 UINT GetContextFlags();
884 object,
885 local,
886 uuid(4f5b196e-c2bd-495e-bd01-1fded38e4969)
888 interface ID3D11ComputeShader : ID3D11DeviceChild
893 object,
894 local,
895 uuid(6e8c49fb-a371-4770-b440-29086022b741)
897 interface ID3D11Counter : ID3D11Asynchronous
899 void GetDesc(
900 [out] D3D11_COUNTER_DESC *pDesc);
904 object,
905 local,
906 uuid(03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1)
908 interface ID3D11DepthStencilState : ID3D11DeviceChild
910 void GetDesc(
911 [out] D3D11_DEPTH_STENCIL_DESC *pDesc);
915 object,
916 local,
917 uuid(9fdac92a-1876-48c3-afad-25b94f84a9b6)
919 interface ID3D11DepthStencilView : ID3D11View
921 void GetDesc(
922 [out] D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc);
926 object,
927 local,
928 uuid(f582c508-0f36-490c-9977-31eece268cfa)
930 interface ID3D11DomainShader : ID3D11DeviceChild
935 object,
936 local,
937 uuid(38325b96-effb-4022-ba02-2e795b70275c)
939 interface ID3D11GeometryShader : ID3D11DeviceChild
944 object,
945 local,
946 uuid(8e5c6061-628a-4c8e-8264-bbe45cb3d5dd)
948 interface ID3D11HullShader : ID3D11DeviceChild
953 object,
954 local,
955 uuid(e4819ddc-4cf0-4025-bd26-5de82a3e07b7)
957 interface ID3D11InputLayout : ID3D11DeviceChild
962 object,
963 local,
964 uuid(ea82e40d-51dc-4f33-93d4-db7c9125ae8c)
966 interface ID3D11PixelShader : ID3D11DeviceChild
971 object,
972 local,
973 uuid(9eb576dd-9f77-4d86-81aa-8bab5fe490e2)
975 interface ID3D11Predicate : ID3D11Query
980 object,
981 local,
982 uuid(9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7)
984 interface ID3D11RasterizerState : ID3D11DeviceChild
986 void GetDesc(
987 [out] D3D11_RASTERIZER_DESC *pDesc);
991 object,
992 local,
993 uuid(dfdba067-0b8d-4865-875b-d7b4516cc164)
995 interface ID3D11RenderTargetView : ID3D11View
997 void GetDesc(
998 [out] D3D11_RENDER_TARGET_VIEW_DESC *pDesc);
1002 object,
1003 local,
1004 uuid(da6fea51-564c-4487-9810-f0d0f9b4e3a5)
1006 interface ID3D11SamplerState : ID3D11DeviceChild
1008 void GetDesc(
1009 [out] D3D11_SAMPLER_DESC *pDesc);
1013 object,
1014 local,
1015 uuid(b0e06fe0-8192-4e1a-b1ca-36d7414710b2)
1017 interface ID3D11ShaderResourceView : ID3D11View
1019 void GetDesc(
1020 [out] D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc);
1024 object,
1025 local,
1026 uuid(f8fb5c27-c6b3-4f75-a4c8-439af2ef564c),
1028 interface ID3D11Texture1D : ID3D11Resource
1030 void GetDesc(
1031 [out] D3D11_TEXTURE1D_DESC *pDesc);
1035 object,
1036 local,
1037 uuid(6f15aaf2-d208-4e89-9ab4-489535d34f9c)
1039 interface ID3D11Texture2D : ID3D11Resource
1041 void GetDesc(
1042 [out] D3D11_TEXTURE2D_DESC *pDesc);
1046 object,
1047 local,
1048 uuid(037e866e-f56d-4357-a8af-9dabbe6e250e)
1050 interface ID3D11Texture3D : ID3D11Resource
1052 void GetDesc(
1053 [out] D3D11_TEXTURE3D_DESC *pDesc);
1057 object,
1058 local,
1059 uuid(28acf509-7f5c-48f6-8611-f316010a6380)
1061 interface ID3D11UnorderedAccessView : ID3D11View
1063 void GetDesc(
1064 [out] D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc);
1068 object,
1069 local,
1070 uuid(3b301d64-d678-4289-8897-22f8928b72f3)
1072 interface ID3D11VertexShader : ID3D11DeviceChild
1077 object,
1078 local,
1079 uuid(c0bfa96c-e089-44fb-8eaf-26f8796190da)
1081 interface ID3D11DeviceContext : ID3D11DeviceChild
1083 void VSSetConstantBuffers(
1084 [in] UINT StartSlot,
1085 [in] UINT NumBuffers,
1086 [in] ID3D11Buffer *const *ppConstantBuffers);
1087 void PSSetShaderResources(
1088 [in] UINT StartSlot,
1089 [in] UINT NumViews,
1090 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews);
1091 void PSSetShader(
1092 [in] ID3D11PixelShader *pPixelShader,
1093 [in] ID3D11ClassInstance *const *ppClassInstances,
1094 UINT NumClassInstances);
1095 void PSSetSamplers(
1096 [in] UINT StartSlot,
1097 [in] UINT NumSamplers,
1098 [in] ID3D11SamplerState *const *ppSamplers);
1099 void VSSetShader(
1100 [in] ID3D11VertexShader *pVertexShader,
1101 [in] ID3D11ClassInstance *const *ppClassInstances,
1102 UINT NumClassInstances);
1103 void DrawIndexed(
1104 [in] UINT IndexCount,
1105 [in] UINT StartIndexLocation,
1106 [in] INT BaseVertexLocation);
1107 void Draw(
1108 [in] UINT VertexCount,
1109 [in] UINT StartVertexLocation);
1110 HRESULT Map(
1111 [in] ID3D11Resource *pResource,
1112 [in] UINT Subresource,
1113 [in] D3D11_MAP MapType,
1114 [in] UINT MapFlags,
1115 [out] D3D11_MAPPED_SUBRESOURCE *pMappedResource);
1116 void Unmap(
1117 [in] ID3D11Resource *pResource,
1118 [in] UINT Subresource);
1119 void PSSetConstantBuffers(
1120 [in] UINT StartSlot,
1121 [in] UINT NumBuffers,
1122 [in] ID3D11Buffer *const *ppConstantBuffers);
1123 void IASetInputLayout(
1124 [in] ID3D11InputLayout *pInputLayout);
1125 void IASetVertexBuffers(
1126 [in] UINT StartSlot,
1127 [in] UINT NumBuffers,
1128 [in] ID3D11Buffer *const *ppVertexBuffers,
1129 [in] const UINT *pStrides,
1130 [in] const UINT *pOffsets);
1131 void IASetIndexBuffer(
1132 [in] ID3D11Buffer *pIndexBuffer,
1133 [in] DXGI_FORMAT Format,
1134 [in] UINT Offset);
1135 void DrawIndexedInstanced(
1136 [in] UINT IndexCountPerInstance,
1137 [in] UINT InstanceCount,
1138 [in] UINT StartIndexLocation,
1139 [in] INT BaseVertexLocation,
1140 [in] UINT StartInstanceLocation);
1141 void DrawInstanced(
1142 [in] UINT VertexCountPerInstance,
1143 [in] UINT InstanceCount,
1144 [in] UINT StartVertexLocation,
1145 [in] UINT StartInstanceLocation);
1146 void GSSetConstantBuffers(
1147 [in] UINT StartSlot,
1148 [in] UINT NumBuffers,
1149 [in] ID3D11Buffer *const *ppConstantBuffers);
1150 void GSSetShader(
1151 [in] ID3D11GeometryShader *pShader,
1152 [in] ID3D11ClassInstance *const *ppClassInstances,
1153 UINT NumClassInstances);
1154 void IASetPrimitiveTopology(
1155 [in] D3D11_PRIMITIVE_TOPOLOGY Topology);
1156 void VSSetShaderResources(
1157 [in] UINT StartSlot,
1158 [in] UINT NumViews,
1159 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews);
1160 void VSSetSamplers(
1161 [in] UINT StartSlot,
1162 [in] UINT NumSamplers,
1163 [in] ID3D11SamplerState *const *ppSamplers);
1164 void Begin(
1165 [in] ID3D11Asynchronous *pAsync);
1166 void End(
1167 [in] ID3D11Asynchronous *pAsync);
1168 HRESULT GetData(
1169 [in] ID3D11Asynchronous *pAsync,
1170 [in] void *pData,
1171 [in] UINT DataSize,
1172 [in] UINT GetDataFlags);
1173 void SetPredication(
1174 [in] ID3D11Predicate *pPredicate,
1175 [in] BOOL PredicateValue);
1176 void GSSetShaderResources(
1177 [in] UINT StartSlot,
1178 [in] UINT NumViews,
1179 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews);
1180 void GSSetSamplers(
1181 [in] UINT StartSlot,
1182 [in] UINT NumSamplers,
1183 [in] ID3D11SamplerState *const *ppSamplers);
1184 void OMSetRenderTargets(
1185 [in] UINT NumViews,
1186 [in] ID3D11RenderTargetView *const *ppRenderTargetViews,
1187 [in] ID3D11DepthStencilView *pDepthStencilView);
1188 void OMSetRenderTargetsAndUnorderedAccessViews(
1189 [in] UINT NumRTVs,
1190 [in] ID3D11RenderTargetView *const *ppRenderTargetViews,
1191 [in] ID3D11DepthStencilView *pDepthStencilView,
1192 [in] UINT UAVStartSlot,
1193 [in] UINT NumUAVs,
1194 [in] ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
1195 [in] const UINT *pUAVInitialCounts);
1196 void OMSetBlendState(
1197 [in] ID3D11BlendState *pBlendState,
1198 [in] const FLOAT BlendFactor[4],
1199 [in] UINT SampleMask);
1200 void OMSetDepthStencilState(
1201 [in] ID3D11DepthStencilState *pDepthStencilState,
1202 [in] UINT StencilRef);
1203 void SOSetTargets(
1204 [in] UINT NumBuffers,
1205 [in] ID3D11Buffer *const *ppSOTargets,
1206 [in] const UINT *pOffsets);
1207 void DrawAuto();
1208 void DrawIndexedInstancedIndirect(
1209 [in] ID3D11Buffer *pBufferForArgs,
1210 [in] UINT AlignedByteOffsetForArgs);
1211 void DrawInstancedIndirect(
1212 [in] ID3D11Buffer *pBufferForArgs,
1213 [in] UINT AlignedByteOffsetForArgs);
1214 void Dispatch(
1215 [in] UINT ThreadGroupCountX,
1216 [in] UINT ThreadGroupCountY,
1217 [in] UINT ThreadGroupCountZ);
1218 void DispatchIndirect(
1219 [in] ID3D11Buffer *pBufferForArgs,
1220 [in] UINT AlignedByteOffsetForArgs);
1221 void RSSetState(
1222 [in] ID3D11RasterizerState *pRasterizerState);
1223 void RSSetViewports(
1224 [in] UINT NumViewports,
1225 [in] const D3D11_VIEWPORT *pViewports);
1226 void RSSetScissorRects(
1227 [in] UINT NumRects,
1228 [in] const D3D11_RECT *pRects);
1229 void CopySubresourceRegion(
1230 [in] ID3D11Resource *pDstResource,
1231 [in] UINT DstSubresource,
1232 [in] UINT DstX,
1233 [in] UINT DstY,
1234 [in] UINT DstZ,
1235 [in] ID3D11Resource *pSrcResource,
1236 [in] UINT SrcSubresource,
1237 [in] const D3D11_BOX *pSrcBox);
1238 void CopyResource(
1239 [in] ID3D11Resource *pDstResource,
1240 [in] ID3D11Resource *pSrcResource);
1241 void UpdateSubresource(
1242 [in] ID3D11Resource *pDstResource,
1243 [in] UINT DstSubresource,
1244 [in] const D3D11_BOX *pDstBox,
1245 [in] const void *pSrcData,
1246 [in] UINT SrcRowPitch,
1247 [in] UINT SrcDepthPitch);
1248 void CopyStructureCount(
1249 [in] ID3D11Buffer *pDstBuffer,
1250 [in] UINT DstAlignedByteOffset,
1251 [in] ID3D11UnorderedAccessView *pSrcView);
1252 void ClearRenderTargetView(
1253 [in] ID3D11RenderTargetView *pRenderTargetView,
1254 [in] const FLOAT ColorRGBA[4]);
1255 void ClearUnorderedAccessViewUint(
1256 [in] ID3D11UnorderedAccessView *pUnorderedAccessView,
1257 [in] const UINT Values[4]);
1258 void ClearUnorderedAccessViewFloat(
1259 [in] ID3D11UnorderedAccessView *pUnorderedAccessView,
1260 [in] const FLOAT Values[4]);
1261 void ClearDepthStencilView(
1262 [in] ID3D11DepthStencilView *pDepthStencilView,
1263 [in] UINT ClearFlags,
1264 [in] FLOAT Depth,
1265 [in] UINT8 Stencil);
1266 void GenerateMips(
1267 [in] ID3D11ShaderResourceView *pShaderResourceView);
1268 void SetResourceMinLOD(
1269 [in] ID3D11Resource *pResource, FLOAT MinLOD);
1270 FLOAT GetResourceMinLOD(
1271 [in] ID3D11Resource *pResource);
1272 void ResolveSubresource(
1273 [in] ID3D11Resource *pDstResource,
1274 [in] UINT DstSubresource,
1275 [in] ID3D11Resource *pSrcResource,
1276 [in] UINT SrcSubresource,
1277 [in] DXGI_FORMAT Format);
1278 void ExecuteCommandList(
1279 [in] ID3D11CommandList *pCommandList,
1280 BOOL RestoreContextState);
1281 void HSSetShaderResources(
1282 [in] UINT StartSlot,
1283 [in] UINT NumViews,
1284 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews);
1285 void HSSetShader(
1286 [in] ID3D11HullShader *pHullShader,
1287 [in] ID3D11ClassInstance *const *ppClassInstances,
1288 UINT NumClassInstances);
1289 void HSSetSamplers(
1290 [in] UINT StartSlot,
1291 [in] UINT NumSamplers,
1292 [in] ID3D11SamplerState *const *ppSamplers);
1293 void HSSetConstantBuffers(
1294 [in] UINT StartSlot,
1295 [in] UINT NumBuffers,
1296 [in] ID3D11Buffer *const *ppConstantBuffers);
1297 void DSSetShaderResources(
1298 [in] UINT StartSlot,
1299 [in] UINT NumViews,
1300 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews);
1301 void DSSetShader(
1302 [in] ID3D11DomainShader *pDomainShader,
1303 [in] ID3D11ClassInstance *const *ppClassInstances,
1304 UINT NumClassInstances);
1305 void DSSetSamplers(
1306 [in] UINT StartSlot,
1307 [in] UINT NumSamplers,
1308 [in] ID3D11SamplerState *const *ppSamplers);
1309 void DSSetConstantBuffers(
1310 [in] UINT StartSlot,
1311 [in] UINT NumBuffers,
1312 [in] ID3D11Buffer *const *ppConstantBuffers);
1313 void CSSetShaderResources(
1314 [in] UINT StartSlot,
1315 [in] UINT NumViews,
1316 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews);
1317 void CSSetUnorderedAccessViews(
1318 [in] UINT StartSlot,
1319 [in] UINT NumUAVs,
1320 [in] ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
1321 [in] const UINT *pUAVInitialCounts);
1322 void CSSetShader(
1323 [in] ID3D11ComputeShader *pComputeShader,
1324 [in] ID3D11ClassInstance *const *ppClassInstances,
1325 UINT NumClassInstances);
1326 void CSSetSamplers(
1327 [in] UINT StartSlot,
1328 [in] UINT NumSamplers,
1329 [in] ID3D11SamplerState *const *ppSamplers);
1330 void CSSetConstantBuffers(
1331 [in] UINT StartSlot,
1332 [in] UINT NumBuffers,
1333 [in] ID3D11Buffer *const *ppConstantBuffers);
1334 void VSGetConstantBuffers(
1335 [in] UINT StartSlot,
1336 [in] UINT NumBuffers,
1337 [out] ID3D11Buffer **ppConstantBuffers);
1338 void PSGetShaderResources(
1339 [in] UINT StartSlot,
1340 [in] UINT NumViews,
1341 [out] ID3D11ShaderResourceView **ppShaderResourceViews);
1342 void PSGetShader(
1343 [out] ID3D11PixelShader **ppPixelShader,
1344 [out] ID3D11ClassInstance **ppClassInstances,
1345 [in, out] UINT *pNumClassInstances);
1346 void PSGetSamplers(
1347 [in] UINT StartSlot,
1348 [in] UINT NumSamplers,
1349 [out] ID3D11SamplerState **ppSamplers);
1350 void VSGetShader(
1351 [out] ID3D11VertexShader **ppVertexShader,
1352 [out] ID3D11ClassInstance **ppClassInstances,
1353 [in, out] UINT *pNumClassInstances);
1354 void PSGetConstantBuffers(
1355 [in] UINT StartSlot,
1356 [in] UINT NumBuffers,
1357 [out] ID3D11Buffer **ppConstantBuffers);
1358 void IAGetInputLayout(
1359 [out] ID3D11InputLayout **ppInputLayout);
1360 void IAGetVertexBuffers(
1361 [in] UINT StartSlot,
1362 [in] UINT NumBuffers,
1363 [out] ID3D11Buffer **ppVertexBuffers,
1364 [out] UINT *pStrides,
1365 [out] UINT *pOffsets);
1366 void IAGetIndexBuffer(
1367 [out] ID3D11Buffer **pIndexBuffer,
1368 [out] DXGI_FORMAT* Format,
1369 [out] UINT* Offset);
1370 void GSGetConstantBuffers(
1371 [in] UINT StartSlot,
1372 [in] UINT NumBuffers,
1373 [out] ID3D11Buffer **ppConstantBuffers);
1374 void GSGetShader(
1375 [out] ID3D11GeometryShader **ppGeometryShader,
1376 [out] ID3D11ClassInstance **ppClassInstances,
1377 [in, out] UINT *pNumClassInstances);
1378 void IAGetPrimitiveTopology(
1379 [out] D3D11_PRIMITIVE_TOPOLOGY *pTopology);
1380 void VSGetShaderResources(
1381 [in] UINT StartSlot,
1382 [in] UINT NumViews,
1383 [out] ID3D11ShaderResourceView **ppShaderResourceViews);
1384 void VSGetSamplers(
1385 [in] UINT StartSlot,
1386 [in] UINT NumSamplers,
1387 [out] ID3D11SamplerState **ppSamplers);
1388 void GetPredication(
1389 [out] ID3D11Predicate **ppPredicate,
1390 [out] BOOL *pPredicateValue);
1391 void GSGetShaderResources(
1392 [in] UINT StartSlot,
1393 [in] UINT NumViews,
1394 [out] ID3D11ShaderResourceView **ppShaderResourceViews);
1395 void GSGetSamplers(
1396 [in] UINT StartSlot,
1397 [in] UINT NumSamplers,
1398 [out] ID3D11SamplerState **ppSamplers);
1399 void OMGetRenderTargets(
1400 [in] UINT NumViews,
1401 [out] ID3D11RenderTargetView **ppRenderTargetViews,
1402 [out] ID3D11DepthStencilView **ppDepthStencilView);
1403 void OMGetRenderTargetsAndUnorderedAccessViews(
1404 [in] UINT NumRTVs,
1405 [out] ID3D11RenderTargetView **ppRenderTargetViews,
1406 [out] ID3D11DepthStencilView **ppDepthStencilView,
1407 [in] UINT UAVStartSlot,
1408 [out] UINT NumUAVs,
1409 [out] ID3D11UnorderedAccessView **ppUnorderedAccessViews);
1410 void OMGetBlendState(
1411 [out] ID3D11BlendState **ppBlendState,
1412 [out] FLOAT BlendFactor[4],
1413 [out] UINT *pSampleMask);
1414 void OMGetDepthStencilState(
1415 [out] ID3D11DepthStencilState **ppDepthStencilState,
1416 [out] UINT *pStencilRef);
1417 void SOGetTargets(
1418 [in] UINT NumBuffers,
1419 [out] ID3D11Buffer **ppSOTargets);
1420 void RSGetState(
1421 [out] ID3D11RasterizerState **ppRasterizerState);
1422 void RSGetViewports(
1423 [in, out] UINT *pNumViewports,
1424 [out] D3D11_VIEWPORT *pViewports);
1425 void RSGetScissorRects(
1426 [in, out] UINT *pNumRects,
1427 [out] D3D11_RECT *pRects);
1428 void HSGetShaderResources(
1429 [in] UINT StartSlot,
1430 [in] UINT NumViews,
1431 [out] ID3D11ShaderResourceView **ppShaderResourceViews);
1432 void HSGetShader(
1433 [out] ID3D11HullShader **ppHullShader,
1434 [out] ID3D11ClassInstance **ppClassInstances,
1435 [in, out] UINT *pNumClassInstances);
1436 void HSGetSamplers(
1437 [in] UINT StartSlot,
1438 [in] UINT NumSamplers,
1439 [out] ID3D11SamplerState **ppSamplers);
1440 void HSGetConstantBuffers(
1441 [in] UINT StartSlot,
1442 [in] UINT NumBuffers,
1443 [out] ID3D11Buffer **ppConstantBuffers);
1444 void DSGetShaderResources(
1445 [in] UINT StartSlot,
1446 [in] UINT NumViews,
1447 [out] ID3D11ShaderResourceView **ppShaderResourceViews);
1448 void DSGetShader(
1449 [out] ID3D11DomainShader **ppDomainShader,
1450 [out] ID3D11ClassInstance **ppClassInstances,
1451 [in, out] UINT *pNumClassInstances);
1452 void DSGetSamplers(
1453 [in] UINT StartSlot,
1454 [in] UINT NumSamplers,
1455 [out] ID3D11SamplerState **ppSamplers);
1456 void DSGetConstantBuffers(
1457 [in] UINT StartSlot,
1458 [in] UINT NumBuffers,
1459 [out] ID3D11Buffer **ppConstantBuffers);
1460 void CSGetShaderResources(
1461 [in] UINT StartSlot,
1462 [in] UINT NumViews,
1463 [out] ID3D11ShaderResourceView **ppShaderResourceViews);
1464 void CSGetUnorderedAccessViews(
1465 [in] UINT StartSlot,
1466 [in] UINT NumUAVs,
1467 [out] ID3D11UnorderedAccessView **ppUnorderedAccessViews);
1468 void CSGetShader(
1469 [out] ID3D11ComputeShader **ppComputeShader,
1470 [out] ID3D11ClassInstance **ppClassInstances,
1471 [in, out] UINT *pNumClassInstances);
1472 void CSGetSamplers(
1473 [in] UINT StartSlot,
1474 [in] UINT NumSamplers,
1475 [out] ID3D11SamplerState **ppSamplers);
1476 void CSGetConstantBuffers(
1477 [in] UINT StartSlot,
1478 [in] UINT NumBuffers,
1479 [out] ID3D11Buffer **ppConstantBuffers);
1480 void ClearState();
1481 void Flush();
1482 D3D11_DEVICE_CONTEXT_TYPE GetType();
1483 UINT GetContextFlags();
1484 HRESULT FinishCommandList(
1485 BOOL RestoreDeferredContextState,
1486 [out] ID3D11CommandList **ppCommandList);
1490 object,
1491 local,
1492 uuid(db6f6ddb-ac77-4e88-8253-819df9bbf140)
1494 interface ID3D11Device : IUnknown
1496 HRESULT CreateBuffer(
1497 [in] const D3D11_BUFFER_DESC *pDesc,
1498 [in] const D3D11_SUBRESOURCE_DATA *pInitialData,
1499 [out] ID3D11Buffer **ppBuffer);
1500 HRESULT CreateTexture1D(
1501 [in] const D3D11_TEXTURE1D_DESC *pDesc,
1502 [in] const D3D11_SUBRESOURCE_DATA *pInitialData,
1503 [out] ID3D11Texture1D **ppTexture1D);
1504 HRESULT CreateTexture2D(
1505 [in] const D3D11_TEXTURE2D_DESC *pDesc,
1506 [in] const D3D11_SUBRESOURCE_DATA *pInitialData,
1507 [out] ID3D11Texture2D **ppTexture2D);
1508 HRESULT CreateTexture3D(
1509 [in] const D3D11_TEXTURE3D_DESC *pDesc,
1510 [in] const D3D11_SUBRESOURCE_DATA *pInitialData,
1511 [out] ID3D11Texture3D **ppTexture3D);
1512 HRESULT CreateShaderResourceView(
1513 [in] ID3D11Resource *pResource,
1514 [in] const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
1515 [out] ID3D11ShaderResourceView **ppSRView);
1516 HRESULT CreateUnorderedAccessView(
1517 [in] ID3D11Resource *pResource,
1518 [in] const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
1519 [out] ID3D11UnorderedAccessView **ppUAView);
1520 HRESULT CreateRenderTargetView(
1521 [in] ID3D11Resource *pResource,
1522 [in] const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
1523 [out] ID3D11RenderTargetView **ppRTView);
1524 HRESULT CreateDepthStencilView(
1525 [in] ID3D11Resource *pResource,
1526 [in] const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
1527 [out] ID3D11DepthStencilView **ppDepthStencilView);
1528 HRESULT CreateInputLayout(
1529 [in] const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
1530 [in] UINT NumElements,
1531 [in] const void *pShaderBytecodeWithInputSignature,
1532 [in] SIZE_T BytecodeLength,
1533 [out] ID3D11InputLayout **ppInputLayout);
1534 HRESULT CreateVertexShader(
1535 [in] const void *pShaderBytecode,
1536 [in] SIZE_T BytecodeLength,
1537 [in] ID3D11ClassLinkage *pClassLinkage,
1538 [out] ID3D11VertexShader **ppVertexShader);
1539 HRESULT CreateGeometryShader(
1540 [in] const void *pShaderBytecode,
1541 [in] SIZE_T BytecodeLength,
1542 [in] ID3D11ClassLinkage *pClassLinkage,
1543 [out] ID3D11GeometryShader **ppGeometryShader);
1544 HRESULT CreateGeometryShaderWithStreamOutput(
1545 [in] const void *pShaderBytecode,
1546 [in] SIZE_T BytecodeLength,
1547 [in] const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
1548 [in] UINT NumEntries,
1549 [in] const UINT *pBufferStrides,
1550 [in] UINT NumStrides,
1551 [in] UINT RasterizedStream,
1552 [in] ID3D11ClassLinkage *pClassLinkage,
1553 [out] ID3D11GeometryShader **ppGeometryShader);
1554 HRESULT CreatePixelShader(
1555 [in] const void *pShaderBytecode,
1556 [in] SIZE_T BytecodeLength,
1557 [in] ID3D11ClassLinkage *pClassLinkage,
1558 [out] ID3D11PixelShader **ppPixelShader);
1559 HRESULT CreateHullShader(
1560 [in] const void *pShaderBytecode,
1561 [in] SIZE_T BytecodeLength,
1562 [in] ID3D11ClassLinkage *pClassLinkage,
1563 [out] ID3D11HullShader **ppHullShader);
1564 HRESULT CreateDomainShader(
1565 [in] const void *pShaderBytecode,
1566 [in] SIZE_T BytecodeLength,
1567 [in] ID3D11ClassLinkage *pClassLinkage,
1568 [out] ID3D11DomainShader **ppDomainShader);
1569 HRESULT CreateComputeShader(
1570 [in] const void *pShaderBytecode,
1571 [in] SIZE_T BytecodeLength,
1572 [in] ID3D11ClassLinkage *pClassLinkage,
1573 [out] ID3D11ComputeShader **ppComputeShader);
1574 HRESULT CreateClassLinkage(
1575 [out] ID3D11ClassLinkage **ppLinkage);
1576 HRESULT CreateBlendState(
1577 [in] const D3D11_BLEND_DESC *pBlendStateDesc,
1578 [out] ID3D11BlendState **ppBlendState);
1579 HRESULT CreateDepthStencilState(
1580 [in] const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
1581 [out] ID3D11DepthStencilState **ppDepthStencilState);
1582 HRESULT CreateRasterizerState(
1583 [in] const D3D11_RASTERIZER_DESC *pRasterizerDesc,
1584 [out] ID3D11RasterizerState **ppRasterizerState);
1585 HRESULT CreateSamplerState(
1586 [in] const D3D11_SAMPLER_DESC *pSamplerDesc,
1587 [out] ID3D11SamplerState **ppSamplerState);
1588 HRESULT CreateQuery(
1589 [in] const D3D11_QUERY_DESC *pQueryDesc,
1590 [out] ID3D11Query **ppQuery);
1591 HRESULT CreatePredicate(
1592 [in] const D3D11_QUERY_DESC *pPredicateDesc,
1593 [out] ID3D11Predicate **ppPredicate);
1594 HRESULT CreateCounter(
1595 [in] const D3D11_COUNTER_DESC *pCounterDesc,
1596 [out] ID3D11Counter **ppCounter);
1597 HRESULT CreateDeferredContext(
1598 UINT ContextFlags,
1599 [out] ID3D11DeviceContext **ppDeferredContext);
1600 HRESULT OpenSharedResource(
1601 [in] HANDLE hResource,
1602 [in] REFIID ReturnedInterface,
1603 [out] void **ppResource);
1604 HRESULT CheckFormatSupport(
1605 [in] DXGI_FORMAT Format,
1606 [out] UINT *pFormatSupport);
1607 HRESULT CheckMultisampleQualityLevels(
1608 [in] DXGI_FORMAT Format,
1609 [in] UINT SampleCount,
1610 [out] UINT *pNumQualityLevels);
1611 void CheckCounterInfo(
1612 [out] D3D11_COUNTER_INFO *pCounterInfo);
1613 HRESULT CheckCounter(
1614 [in] const D3D11_COUNTER_DESC *pDesc,
1615 [out] D3D11_COUNTER_TYPE *pType,
1616 [out] UINT *pActiveCounters,
1617 [out] LPSTR szName,
1618 [in, out] UINT *pNameLength,
1619 [out] LPSTR szUnits,
1620 [in, out] UINT *pUnitsLength,
1621 [out] LPSTR szDescription,
1622 [in, out] UINT *pDescriptionLength);
1623 HRESULT CheckFeatureSupport(
1624 D3D11_FEATURE Feature,
1625 [out] void *pFeatureSupportData,
1626 UINT FeatureSupportDataSize);
1627 HRESULT GetPrivateData(
1628 [in] REFGUID guid,
1629 [in, out] UINT *pDataSize,
1630 [out] void *pData);
1631 HRESULT SetPrivateData(
1632 [in] REFGUID guid,
1633 [in] UINT DataSize,
1634 [in] const void *pData);
1635 HRESULT SetPrivateDataInterface(
1636 [in] REFGUID guid,
1637 [in] const IUnknown *pData);
1638 D3D_FEATURE_LEVEL GetFeatureLevel();
1639 UINT GetCreationFlags();
1640 HRESULT GetDeviceRemovedReason();
1641 void GetImmediateContext(
1642 [out] ID3D11DeviceContext **ppImmediateContext);
1643 HRESULT SetExceptionMode(UINT RaiseFlags);
1644 UINT GetExceptionMode();
1647 cpp_quote("#include <d3d10_1.h>")
1648 cpp_quote("#ifndef D3D11_IGNORE_SDK_LAYERS")
1649 cpp_quote("/* FIXME: # include <d3d11sdklayers.h> */")
1650 cpp_quote("#endif")
1651 cpp_quote("#include <d3d10misc.h>")
1652 cpp_quote("#include <d3d10shader.h>")
1653 cpp_quote("#include <d3d10effect.h>")
1654 cpp_quote("#include <d3d10_1shader.h>")