Halide  17.0.2
Halide compiler and libraries
mini_d3d12.h
Go to the documentation of this file.
1 #ifndef __mini_d3d12_h__
2 #define __mini_d3d12_h__
3 
4 #ifdef __clang__
5 // #define __stdcall __attribute__ ((stdcall))
6 #pragma clang diagnostic push
7 #pragma clang diagnostic ignored "-Wunknown-pragmas"
8 #pragma clang diagnostic ignored "-Wunused-value"
9 #define __export
10 #ifndef _WIN32
11 #define _WIN32 1
12 #endif //_WIN32
13 #ifdef BITS_64 // <- Halide back-end compilation flag (-DBITS_${j})
14 #ifndef _WIN64
15 #define _WIN64 1
16 #endif //_WIN64
17 #else
18 #define _STDCALL_SUPPORTED
19 #endif
20 #endif
21 
22 #ifndef __midl
23 #define __midl
24 #endif //__midl
25 
26 /* sal.h */
27 // Clear-out SAL macros (Source-code Annotation Language)
28 #ifndef _In_
29 #define _In_
30 #endif //_In_
31 
32 #ifndef _In_z_
33 #define _In_z_
34 #endif //_In_z_
35 
36 #ifndef _In_opt_
37 #define _In_opt_
38 #endif //_In_opt_
39 
40 #ifndef _Out_
41 #define _Out_
42 #endif //_Out_
43 
44 #ifndef _Out_opt_
45 #define _Out_opt_
46 #endif //_Out_opt_
47 
48 #ifndef _Inout_
49 #define _Inout_
50 #endif //_Inout_
51 
52 #ifndef _Inout_opt_
53 #define _Inout_opt_
54 #endif //_Inout_opt_
55 
56 #ifndef _COM_Outptr_
57 #define _COM_Outptr_
58 #endif //_COM_Outptr_
59 
60 #ifndef _COM_Outptr_opt_
61 #define _COM_Outptr_opt_
62 #endif //_COM_Outptr_opt_
63 
64 #ifndef _Check_return_
65 #define _Check_return_
66 #endif //_Check_return_
67 
68 #ifndef _Null_terminated_
69 #define _Null_terminated_
70 #endif //_Null_terminated_
71 
72 #ifndef _Return_type_success_
73 #define _Return_type_success_(expr)
74 #endif //_Return_type_success_
75 
76 #ifndef _Post_equal_to_
77 #define _Post_equal_to_(e)
78 #endif //_Post_equal_to_
79 
80 #ifndef _Post_satisfies_
81 #define _Post_satisfies_(expr)
82 #endif //_Post_satisfies_
83 
84 #ifndef _In_range_
85 #define _In_range_(lb, ub)
86 #endif //_In_range_
87 
88 #ifndef _In_reads_
89 #define _In_reads_(size)
90 #endif //_In_reads_
91 
92 #ifndef _In_reads_opt_
93 #define _In_reads_opt_(size)
94 #endif //_In_reads_opt_
95 
96 #ifndef _In_reads_bytes_
97 #define _In_reads_bytes_(size)
98 #endif //_In_reads_bytes_
99 
100 #ifndef _In_reads_bytes_opt_
101 #define _In_reads_bytes_opt_(size)
102 #endif //_In_reads_bytes_opt_
103 
104 #ifndef _Out_writes_
105 #define _Out_writes_(size)
106 #endif //_Out_writes_
107 
108 #ifndef _Out_writes_opt_
109 #define _Out_writes_opt_(size)
110 #endif //_Out_writes_opt_
111 
112 #ifndef _Out_writes_bytes_
113 #define _Out_writes_bytes_(size)
114 #endif //_Out_writes_bytes_
115 
116 #ifndef _Out_writes_bytes_opt_
117 #define _Out_writes_bytes_opt_(size)
118 #endif //_Out_writes_bytes_opt_
119 
120 #ifndef _Inout_updates_bytes_
121 #define _Inout_updates_bytes_(size)
122 #endif //_Inout_updates_bytes_
123 
124 #ifndef _Field_size_full_
125 #define _Field_size_full_(size)
126 #endif //_Field_size_full_
127 
128 #ifndef _Field_size_bytes_full_
129 #define _Field_size_bytes_full_(size)
130 #endif //_Field_size_bytes_full_
131 
132 #ifndef _Outptr_opt_result_bytebuffer_
133 #define _Outptr_opt_result_bytebuffer_(size)
134 #endif //_Outptr_opt_result_bytebuffer_
135 
136 #ifndef _Must_inspect_result_
137 #define _Must_inspect_result_
138 #endif //_Must_inspect_result_
139 
140 #ifndef __specstrings
141 #define __specstrings
142 #endif //__specstrings
143 
144 #ifndef _Always_
145 #define _Always_(annos)
146 #endif //_Always_
147 
148 /* rpcsal.h */
149 #ifndef __RPC_string
150 #define __RPC_string
151 #endif //__RPC_string
152 
153 #ifndef __RPC__deref_out
154 #define __RPC__deref_out
155 #endif //__RPC__deref_out
156 
157 /* minwindef.h */
158 /*
159  * On ARM and x64 processors, __stdcall is accepted and ignored by the compiler;
160  * on ARM and x64 architectures, by convention, arguments are passed in registers
161  * when possible, and subsequent arguments are passed on the stack.
162  */
163 #define WINAPI __stdcall
164 
165 #define VOID void
166 typedef char CHAR;
167 typedef short SHORT;
168 typedef unsigned char BYTE;
169 typedef unsigned short WORD;
170 #ifdef __clang__
171 // must enforce LLP64 for Windows x64 ...
172 typedef int32_t LONG; // long is 64bits on clang-x64
173 typedef int32_t INT; // and so is int as well...
174 typedef uint32_t ULONG;
175 typedef uint32_t UINT;
176 typedef uint32_t DWORD;
177 #else
178 typedef long LONG;
179 typedef int INT;
180 typedef unsigned long ULONG;
181 typedef unsigned int UINT;
182 typedef unsigned long DWORD;
183 #endif
184 typedef float FLOAT;
185 
186 #define CONST const
187 #define far
188 #define near
189 typedef CONST void far *LPCVOID;
190 typedef void far *LPVOID;
191 
192 typedef INT BOOL;
193 
194 #ifdef __clang__
195 typedef unsigned short WCHAR; // clang's wchar_t is 32bits by default...
196 #else
197 #ifndef _MAC
198 typedef wchar_t WCHAR; // Windows wchar_t : 16-bit UNICODE character
199 #else
200 // some Macintosh compilers don't define wchar_t in a convenient location, or define it as a char
201 typedef unsigned short WCHAR; // wc, 16-bit UNICODE character
202 #endif
203 #endif
207 
208 #define FAR far
209 #define NEAR near
210 
211 #ifndef FALSE
212 #define FALSE 0
213 #endif
214 
215 #ifndef TRUE
216 #define TRUE 1
217 #endif
218 
219 /* basestd.h */
220 typedef CHAR INT8, *PINT8;
221 typedef SHORT INT16, *PINT16;
222 typedef INT INT32, *PINT32;
223 typedef BYTE UINT8, *PUINT8;
224 typedef WORD UINT16, *PUINT16;
225 typedef UINT UINT32, *PUINT32;
226 #ifdef __clang__
227 typedef int64_t INT64, *PINT64;
228 typedef uint64_t UINT64, *PUINT64;
229 #else
230 typedef __int64 INT64, *PINT64;
231 typedef unsigned __int64 UINT64, *PUINT64;
232 #endif
233 #if !defined(_W64)
234 #if !defined(__midl) && (defined(_X86_) || defined(_M_IX86) || defined(_ARM_) || defined(_M_ARM)) && _MSC_VER >= 1300
235 #define _W64 __w64
236 #else
237 #define _W64
238 #endif
239 #endif
240 #if defined(_WIN64)
241 typedef INT64 INT_PTR, *PINT_PTR;
242 typedef UINT64 UINT_PTR, *PUINT_PTR;
243 
244 typedef INT64 LONG_PTR, *PLONG_PTR;
245 typedef UINT64 ULONG_PTR, *PULONG_PTR;
246 
247 #define __int3264 INT64
248 
249 #else
252 
255 
256 #define __int3264 INT32
257 
258 #endif
261 
262 #ifndef NO_STRICT
263 #ifndef STRICT
264 #define STRICT 1
265 #endif
266 #endif /* NO_STRICT */
267 
268 /* minwinbase.h */
269 typedef struct _SECURITY_ATTRIBUTES {
274 
275 /* winnt.h */
276 #ifdef __clang__
277 typedef int64_t LONGLONG;
278 #else
279 typedef __int64 LONGLONG;
280 #endif
281 
282 typedef _Return_type_success_(return >= 0) LONG HRESULT;
283 
284 #if defined(_WIN32) || defined(_MPPC_)
285 
286 // Win32 doesn't support __export
287 
288 #ifdef _68K_
289 #define STDMETHODCALLTYPE __cdecl
290 #else
291 #define STDMETHODCALLTYPE __stdcall
292 #endif
293 #define STDMETHODVCALLTYPE __cdecl
294 
295 #define STDAPICALLTYPE __stdcall
296 #define STDAPIVCALLTYPE __cdecl
297 
298 #else
299 
300 #define STDMETHODCALLTYPE __export __stdcall
301 #define STDMETHODVCALLTYPE __export __cdecl
302 
303 #define STDAPICALLTYPE __export __stdcall
304 #define STDAPIVCALLTYPE __export __cdecl
305 
306 #endif
307 
308 #define DUMMYSTRUCTNAME
309 
310 typedef union _LARGE_INTEGER {
311  struct {
314  } DUMMYSTRUCTNAME;
315  struct {
316  DWORD LowPart;
317  LONG HighPart;
318  } u;
320 } LARGE_INTEGER;
321 
322 #ifdef __cplusplus
323 #define EXTERN_C extern "C"
324 #define EXTERN_C_START extern "C" {
325 #define EXTERN_C_END }
326 #else
327 #define EXTERN_C extern
328 #define EXTERN_C_START
329 #define EXTERN_C_END
330 #endif
331 
332 #if (defined(_M_IX86) || defined(_M_IA64) || defined(_M_AMD64) || defined(_M_ARM) || defined(_M_ARM64)) && !defined(MIDL_PASS)
333 #define DECLSPEC_IMPORT __declspec(dllimport)
334 #else
335 #define DECLSPEC_IMPORT
336 #endif
337 
338 #ifdef __cplusplus
339 
340 // Define operator overloads to enable bit operations on enum values that are
341 // used to define flags. Use DEFINE_ENUM_FLAG_OPERATORS(YOUR_TYPE) to enable these
342 // operators on YOUR_TYPE.
343 
344 // Moved here from objbase.w.
345 
346 // Templates are defined here in order to avoid a dependency on C++ <type_traits> header file,
347 // or on compiler-specific contructs.
348 extern "C++" {
349 
350 template<size_t S>
351 struct _ENUM_FLAG_INTEGER_FOR_SIZE;
352 
353 template<>
354 struct _ENUM_FLAG_INTEGER_FOR_SIZE<1> {
355  typedef INT8 type;
356 };
357 
358 template<>
359 struct _ENUM_FLAG_INTEGER_FOR_SIZE<2> {
360  typedef INT16 type;
361 };
362 
363 template<>
364 struct _ENUM_FLAG_INTEGER_FOR_SIZE<4> {
365  typedef INT32 type;
366 };
367 
368 // used as an approximation of std::underlying_type<T>
369 template<class T>
370 struct _ENUM_FLAG_SIZED_INTEGER {
371  typedef typename _ENUM_FLAG_INTEGER_FOR_SIZE<sizeof(T)>::type type;
372 };
373 }
374 
375 #define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE) \
376  extern "C++" { \
377  /* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
378  inline ENUMTYPE operator|(ENUMTYPE a, ENUMTYPE b) { \
379  /* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
380  return ENUMTYPE(((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)a) | ((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)b)); \
381  } \
382  /* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
383  inline ENUMTYPE &operator|=(ENUMTYPE &a, ENUMTYPE b) { \
384  /* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
385  return (ENUMTYPE &)(((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)b)); \
386  } \
387  /* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
388  inline ENUMTYPE operator&(ENUMTYPE a, ENUMTYPE b) { \
389  /* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
390  return ENUMTYPE(((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)a) & ((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)b)); \
391  } \
392  /* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
393  inline ENUMTYPE &operator&=(ENUMTYPE &a, ENUMTYPE b) { \
394  /* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
395  return (ENUMTYPE &)(((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)b)); \
396  } \
397  /* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
398  inline ENUMTYPE operator~(ENUMTYPE a) { \
399  /* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
400  return ENUMTYPE(~((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)a)); \
401  } \
402  /* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
403  inline ENUMTYPE operator^(ENUMTYPE a, ENUMTYPE b) { \
404  /* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
405  return ENUMTYPE(((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)b)); \
406  } \
407  /* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
408  inline ENUMTYPE &operator^=(ENUMTYPE &a, ENUMTYPE b) { \
409  /* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
410  return (ENUMTYPE &)(((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)b)); \
411  } \
412  }
413 #else
414 #define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE) // NOP, C allows these operators.
415 #endif
416 
417 #ifndef DECLSPEC_NOTHROW
418 #if (_MSC_VER >= 1200) && !defined(MIDL_PASS)
419 #define DECLSPEC_NOTHROW __declspec(nothrow)
420 #else
421 #define DECLSPEC_NOTHROW
422 #endif
423 #endif
424 
425 #ifdef STRICT
426 typedef void *HANDLE;
427 #if 0 && (_MSC_VER > 1000)
428 #define DECLARE_HANDLE(name) \
429  struct name##__; \
430  typedef struct name##__ *name
431 #else
432 #define DECLARE_HANDLE(name) \
433  struct name##__ { \
434  int unused; \
435  }; \
436  typedef struct name##__ *name
437 #endif
438 #else
439 typedef PVOID HANDLE;
440 #define DECLARE_HANDLE(name) typedef HANDLE name
441 #endif
442 typedef HANDLE *PHANDLE;
443 
444 /* windef.h */
445 typedef struct tagRECT {
450 } RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;
451 
452 DECLARE_HANDLE(HWND);
453 
454 /* minwindef.h (2) */
455 DECLARE_HANDLE(HINSTANCE);
456 typedef HINSTANCE HMODULE; /* HMODULEs can be used in place of HINSTANCEs */
457 
458 /* winerror.h */
459 #define _HRESULT_TYPEDEF_(_sc) ((HRESULT)(_sc))
460 #define S_OK _HRESULT_TYPEDEF_(0x0L)
461 #define E_UNEXPECTED _HRESULT_TYPEDEF_(0x8000FFFFL)
462 #define DXGI_ERROR_NOT_FOUND _HRESULT_TYPEDEF_(0x887a0002)
463 #define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0)
464 #define FAILED(hr) (((HRESULT)(hr)) < 0)
465 
466 /* guiddef.h */
467 typedef struct _GUID {
472 } GUID;
473 typedef GUID IID;
474 typedef IID *LPIID;
475 
476 #ifdef __midl_proxy
477 #define __MIDL_CONST
478 #else
479 #define __MIDL_CONST const
480 #endif
481 
482 #ifdef __cplusplus
483 #define REFIID const IID &
484 #else
485 #define REFIID const IID *__MIDL_CONST
486 #endif
487 
488 #ifdef __cplusplus
489 #define REFGUID const GUID &
490 #else
491 #define REFGUID const GUID *__MIDL_CONST
492 #endif
493 
494 #ifndef DECLSPEC_SELECTANY
495 #if (_MSC_VER >= 1100)
496 #define DECLSPEC_SELECTANY __declspec(selectany)
497 #else
498 #define DECLSPEC_SELECTANY
499 #endif
500 #endif
501 
502 #ifdef INITGUID
503 #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
504  EXTERN_C const GUID DECLSPEC_SELECTANY name = {l, w1, w2, {b1, b2, b3, b4, b5, b6, b7, b8}}
505 #else
506 #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
507  EXTERN_C const GUID FAR name
508 #endif // INITGUID
509 
510 /* rpc.h */
511 #if defined(__specstrings)
512 typedef _Return_type_success_(return == 0) LONG RPC_STATUS;
513 #else
514 typedef LONG RPC_STATUS;
515 #endif
516 
517 #if !defined(__RPC_MAC__) && ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED))
518 #define __RPC_API __stdcall
519 #define __RPC_USER __stdcall
520 #define __RPC_STUB __stdcall
521 #define RPC_ENTRY __stdcall
522 #else // Not Win32/Win64
523 #define __RPC_API
524 #define __RPC_USER
525 #define __RPC_STUB
526 #define RPC_ENTRY
527 #endif
528 
529 #define __RPC_FAR
530 
531 typedef void *I_RPC_HANDLE;
532 
533 /* rpcdce.h */
534 #ifndef UUID_DEFINED
535 #define UUID_DEFINED
536 typedef GUID UUID;
537 #ifndef uuid_t
538 #define uuid_t UUID
539 #endif
540 #endif
541 
544 #define rpc_binding_handle_t RPC_BINDING_HANDLE
545 
546 #define RPC_MGR_EPV void
547 
548 /* rpcdcep.h */
549 // #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
550 
551 typedef struct _RPC_VERSION {
552  unsigned short MajorVersion;
553  unsigned short MinorVersion;
554 } RPC_VERSION;
555 
556 typedef struct _RPC_SYNTAX_IDENTIFIER {
560 
561 typedef struct _RPC_MESSAGE {
563  unsigned long DataRepresentation;
565  unsigned int BufferLength;
566  unsigned int ProcNum;
572  unsigned long RpcFlags;
574 
575 // #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
576 
577 /* rpcndr.h */
578 #ifndef DECLSPEC_NOVTABLE
579 #if (_MSC_VER >= 1100) && defined(__cplusplus)
580 #define DECLSPEC_NOVTABLE __declspec(novtable)
581 #else
582 #define DECLSPEC_NOVTABLE
583 #endif
584 #endif
585 
586 #ifndef DECLSPEC_UUID
587 #if (_MSC_VER >= 1100) && defined(__cplusplus)
588 #define DECLSPEC_UUID(x) __declspec(uuid(x))
589 #else
590 #define DECLSPEC_UUID(x)
591 #endif
592 #endif
593 
594 #define MIDL_INTERFACE(x) struct DECLSPEC_UUID(x) DECLSPEC_NOVTABLE
595 
596 /* combaseapi.h */
597 #define BEGIN_INTERFACE
598 #define END_INTERFACE
599 
600 #ifdef _68K_
601 #ifndef REQUIRESAPPLEPASCAL
602 #define WINOLEAPI EXTERN_C DECLSPEC_IMPORT HRESULT PASCAL
603 #define WINOLEAPI_(type) EXTERN_C DECLSPEC_IMPORT type PASCAL
604 #else
605 #define WINOLEAPI EXTERN_C DECLSPEC_IMPORT PASCAL HRESULT
606 #define WINOLEAPI_(type) EXTERN_C DECLSPEC_IMPORT PASCAL type
607 #endif
608 #else
609 #define WINOLEAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
610 #define WINOLEAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
611 #endif
612 
613 #ifdef COM_STDMETHOD_CAN_THROW
614 #define COM_DECLSPEC_NOTHROW
615 #else
616 #define COM_DECLSPEC_NOTHROW DECLSPEC_NOTHROW
617 #endif
618 
619 #if defined(__cplusplus) && !defined(CINTERFACE)
620 
621 #ifdef COM_STDMETHOD_CAN_THROW
622 #define COM_DECLSPEC_NOTHROW
623 #else
624 #define COM_DECLSPEC_NOTHROW DECLSPEC_NOTHROW
625 #endif
626 
627 #define __STRUCT__ struct
628 #define interface __STRUCT__
629 #define STDMETHOD(method) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODCALLTYPE method
630 #define STDMETHOD_(type, method) virtual COM_DECLSPEC_NOTHROW type STDMETHODCALLTYPE method
631 #define STDMETHODV(method) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODVCALLTYPE method
632 #define STDMETHODV_(type, method) virtual COM_DECLSPEC_NOTHROW type STDMETHODVCALLTYPE method
633 #define PURE = 0
634 #define THIS_
635 #define THIS void
636 #define DECLARE_INTERFACE(iface) interface DECLSPEC_NOVTABLE iface
637 #define DECLARE_INTERFACE_(iface, baseiface) interface DECLSPEC_NOVTABLE iface : public baseiface
638 #define DECLARE_INTERFACE_IID(iface, iid) interface DECLSPEC_UUID(iid) DECLSPEC_NOVTABLE iface
639 #define DECLARE_INTERFACE_IID_(iface, baseiface, iid) interface DECLSPEC_UUID(iid) DECLSPEC_NOVTABLE iface : public baseiface
640 
641 #define IFACEMETHOD(method) __override STDMETHOD(method)
642 #define IFACEMETHOD_(type, method) __override STDMETHOD_(type, method)
643 #define IFACEMETHODV(method) __override STDMETHODV(method)
644 #define IFACEMETHODV_(type, method) __override STDMETHODV_(type, method)
645 
646 #if !defined(BEGIN_INTERFACE)
647 
648 #if defined(_MPPC_) && ((defined(_MSC_VER) || defined(__SC__) || defined(__MWERKS__)) && !defined(NO_NULL_VTABLE_ENTRY))
649 #define BEGIN_INTERFACE \
650  virtual void a() { \
651  }
652 #define END_INTERFACE
653 #else
654 #define BEGIN_INTERFACE
655 #define END_INTERFACE
656 #endif
657 #endif
658 
659 // IID_PPV_ARGS(ppType)
660 // ppType is the variable of type IType that will be filled
661 //
662 // RESULTS in: IID_IType, ppvType
663 // will create a compiler error if wrong level of indirection is used.
664 //
665 
666 /* Unknwn.h */
667 #ifndef __IUnknown_FWD_DEFINED__
668 #define __IUnknown_FWD_DEFINED__
669 typedef interface IUnknown IUnknown;
670 
671 #endif /* __IUnknown_FWD_DEFINED__ */
672 
673 extern "C++" {
674 template<typename T>
675 _Post_equal_to_(pp) _Post_satisfies_(return == pp) void **IID_PPV_ARGS_Helper(T **pp) {
676 #pragma prefast(suppress : 6269, "Tool issue with unused static_cast")
677  static_cast<IUnknown *>(*pp); // make sure everyone derives from IUnknown
678  return reinterpret_cast<void **>(pp);
679 }
680 }
681 
682 #define IID_PPV_ARGS(ppType) __uuidof(**(ppType)), IID_PPV_ARGS_Helper(ppType)
683 
684 #else
685 
686 #define interface struct
687 
688 #define STDMETHOD(method) HRESULT(STDMETHODCALLTYPE *method)
689 #define STDMETHOD_(type, method) type(STDMETHODCALLTYPE *method)
690 #define STDMETHODV(method) HRESULT(STDMETHODVCALLTYPE *method)
691 #define STDMETHODV_(type, method) type(STDMETHODVCALLTYPE *method)
692 
693 #define IFACEMETHOD(method) __override STDMETHOD(method)
694 #define IFACEMETHOD_(type, method) __override STDMETHOD_(type, method)
695 #define IFACEMETHODV(method) __override STDMETHODV(method)
696 #define IFACEMETHODV_(type, method) __override STDMETHODV_(type, method)
697 
698 #if !defined(BEGIN_INTERFACE)
699 
700 #if defined(_MPPC_)
701 #define BEGIN_INTERFACE void *b;
702 #define END_INTERFACE
703 #else
704 #define BEGIN_INTERFACE
705 #define END_INTERFACE
706 #endif
707 #endif
708 
709 #define PURE
710 #define THIS_ INTERFACE FAR *This,
711 #define THIS INTERFACE FAR *This
712 #ifdef CONST_VTABLE
713 #undef CONST_VTBL
714 #define CONST_VTBL const
715 #define DECLARE_INTERFACE(iface) \
716  typedef interface iface { \
717  const struct iface##Vtbl FAR *lpVtbl; \
718  } iface; \
719  typedef const struct iface##Vtbl iface##Vtbl; \
720  const struct iface##Vtbl
721 #else
722 #undef CONST_VTBL
723 #define CONST_VTBL
724 #define DECLARE_INTERFACE(iface) \
725  typedef interface iface { \
726  struct iface##Vtbl FAR *lpVtbl; \
727  } iface; \
728  typedef struct iface##Vtbl iface##Vtbl; \
729  struct iface##Vtbl
730 #endif
731 #define DECLARE_INTERFACE_(iface, baseiface) DECLARE_INTERFACE(iface)
732 #define DECLARE_INTERFACE_IID(iface, iid) DECLARE_INTERFACE(iface)
733 #define DECLARE_INTERFACE_IID_(iface, baseiface, iid) DECLARE_INTERFACE_(iface, baseiface)
734 #endif
735 
736 typedef interface IRpcStubBuffer IRpcStubBuffer;
738 
739 /* Unknwn.h */
740 #ifndef __IUnknown_FWD_DEFINED__
741 #define __IUnknown_FWD_DEFINED__
742 typedef interface IUnknown IUnknown;
743 
744 #endif /* __IUnknown_FWD_DEFINED__ */
745 
746 #ifndef __IUnknown_INTERFACE_DEFINED__
747 #define __IUnknown_INTERFACE_DEFINED__
748 
749 /* interface IUnknown */
750 /* [unique][uuid][object][local] */
751 
752 typedef /* [unique] */ IUnknown *LPUNKNOWN;
753 
754 //////////////////////////////////////////////////////////////////
755 // IID_IUnknown and all other system IIDs are provided in UUID.LIB
756 // Link that library in with your proxies, clients and servers
757 //////////////////////////////////////////////////////////////////
758 
759 #if (_MSC_VER >= 1100) && defined(__cplusplus) && !defined(CINTERFACE)
761 extern "C++" {
762 MIDL_INTERFACE("00000000-0000-0000-C000-000000000046")
763 IUnknown {
764 public:
766  virtual HRESULT STDMETHODCALLTYPE QueryInterface(
767  /* [in] */ REFIID riid,
768  /* [iid_is][out] */ _COM_Outptr_ void __RPC_FAR *__RPC_FAR *ppvObject) = 0;
769 
770  virtual ULONG STDMETHODCALLTYPE AddRef() = 0;
771 
772  virtual ULONG STDMETHODCALLTYPE Release() = 0;
773 
774  template<class Q>
775  HRESULT
776 #ifdef _M_CEE_PURE
777  __clrcall
778 #else
780 #endif
781  QueryInterface(_COM_Outptr_ Q * *pp) {
782  return QueryInterface(__uuidof(Q), (void **)pp);
783  }
784 
786 };
787 } // extern C++
788 HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy(
789  IUnknown __RPC_FAR *This,
790  /* [in] */ REFIID riid,
791  /* [iid_is][out] */ __RPC__deref_out void __RPC_FAR *__RPC_FAR *ppvObject);
792 
793 void __RPC_STUB IUnknown_QueryInterface_Stub(
794  IRpcStubBuffer *This,
795  IRpcChannelBuffer *_pRpcChannelBuffer,
796  PRPC_MESSAGE _pRpcMessage,
797  DWORD *_pdwStubPhase);
798 
799 ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy(
800  IUnknown __RPC_FAR *This);
801 
802 void __RPC_STUB IUnknown_AddRef_Stub(
803  IRpcStubBuffer *This,
804  IRpcChannelBuffer *_pRpcChannelBuffer,
805  PRPC_MESSAGE _pRpcMessage,
806  DWORD *_pdwStubPhase);
807 
808 ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy(
809  IUnknown __RPC_FAR *This);
810 
811 void __RPC_STUB IUnknown_Release_Stub(
812  IRpcStubBuffer *This,
813  IRpcChannelBuffer *_pRpcChannelBuffer,
814  PRPC_MESSAGE _pRpcMessage,
815  DWORD *_pdwStubPhase);
816 #else
817 
819 
820 #if defined(__cplusplus) && !defined(CINTERFACE)
821 
822 MIDL_INTERFACE("00000000-0000-0000-C000-000000000046")
823 IUnknown {
824 public:
826  virtual HRESULT STDMETHODCALLTYPE QueryInterface(
827  /* [in] */ REFIID riid,
828  /* [annotation][iid_is][out] */
829  _COM_Outptr_ void **ppvObject) = 0;
830 
831  virtual ULONG STDMETHODCALLTYPE AddRef(void) = 0;
832 
833  virtual ULONG STDMETHODCALLTYPE Release(void) = 0;
834 
836 };
837 
838 #else /* C style interface */
839 
840 typedef struct IUnknownVtbl {
842 
843  HRESULT(STDMETHODCALLTYPE *QueryInterface)
844  (
845  IUnknown *This,
846  /* [in] */ REFIID riid,
847  /* [annotation][iid_is][out] */
848  _COM_Outptr_ void **ppvObject);
849 
850  ULONG(STDMETHODCALLTYPE *AddRef)
851  (
853 
854  ULONG(STDMETHODCALLTYPE *Release)
855  (
856  IUnknown *This);
857 
859 } IUnknownVtbl;
860 
861 interface IUnknown {
862  CONST_VTBL struct IUnknownVtbl *lpVtbl;
863 };
864 
865 #ifdef COBJMACROS
866 
867 #define IUnknown_QueryInterface(This, riid, ppvObject) \
868  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
869 
870 #define IUnknown_AddRef(This) \
871  ((This)->lpVtbl->AddRef(This))
872 
873 #define IUnknown_Release(This) \
874  ((This)->lpVtbl->Release(This))
875 
876 #endif /* COBJMACROS */
877 
878 #endif /* C style interface */
879 
880 #if 0
881 HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy(
882  IUnknown * This,
883  /* [in] */ REFIID riid,
884  /* [annotation][iid_is][out] */
885  _COM_Outptr_ void **ppvObject);
886 
887 
888 void __RPC_STUB IUnknown_QueryInterface_Stub(
890  IRpcChannelBuffer *_pRpcChannelBuffer,
891  PRPC_MESSAGE _pRpcMessage,
892  DWORD *_pdwStubPhase);
893 
894 
895 ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy(
896  IUnknown * This);
897 
898 
899 void __RPC_STUB IUnknown_AddRef_Stub(
901  IRpcChannelBuffer *_pRpcChannelBuffer,
902  PRPC_MESSAGE _pRpcMessage,
903  DWORD *_pdwStubPhase);
904 
905 
906 ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy(
907  IUnknown * This);
908 
909 
910 void __RPC_STUB IUnknown_Release_Stub(
912  IRpcChannelBuffer *_pRpcChannelBuffer,
913  PRPC_MESSAGE _pRpcMessage,
914  DWORD *_pdwStubPhase);
915 #endif
916 
917 #endif /* LEGACY MSVC CHECK */
918 
919 #endif /* __IUnknown_INTERFACE_DEFINED__ */
920 
921 /* WTypesbase.h */
922 #if defined(_WIN32) && !defined(OLE2ANSI)
923 typedef WCHAR OLECHAR;
924 
925 typedef /* [string] */ __RPC_string OLECHAR *LPOLESTR;
926 
927 typedef /* [string] */ __RPC_string const OLECHAR *LPCOLESTR;
928 
929 #define OLESTR(str) L##str
930 
931 #else
932 
933 typedef char OLECHAR;
934 typedef LPSTR LPOLESTR;
936 #define OLESTR(str) str
937 #endif
938 
939 /* d3dcommon.h */
940 #ifdef __cplusplus
941 extern "C" {
942 #endif
943 
944 typedef enum D3D_FEATURE_LEVEL {
955 
1052 
1053 #ifdef __cplusplus
1054 }
1055 #endif
1056 
1057 /* dxgiformat.h */
1058 typedef enum DXGI_FORMAT {
1176 } DXGI_FORMAT;
1177 
1178 /* dxgitype.h */
1179 typedef struct DXGI_SAMPLE_DESC {
1183 
1184 /* d3dcommon.h */
1185 typedef enum _D3D_INCLUDE_TYPE {
1192 
1193 typedef interface ID3DInclude ID3DInclude;
1194 #undef INTERFACE
1195 #define INTERFACE ID3DInclude
1197  STDMETHOD(Open)
1198  (THIS_ D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID * ppData, UINT * pBytes) PURE;
1199  STDMETHOD(Close)
1200  (THIS_ LPCVOID pData) PURE;
1201 };
1202 
1203 typedef struct _D3D_SHADER_MACRO {
1207 
1209 
1210 #if defined(__cplusplus) && !defined(CINTERFACE)
1211 
1212 MIDL_INTERFACE("8BA5FB08-5195-40e2-AC58-0D989C3A0102")
1213 ID3D10Blob : public IUnknown {
1214 public:
1215  virtual LPVOID STDMETHODCALLTYPE GetBufferPointer() = 0;
1216 
1217  virtual SIZE_T STDMETHODCALLTYPE GetBufferSize() = 0;
1218 };
1219 
1220 #else /* C style interface */
1221 
1222 #ifndef __ID3D10Blob_FWD_DEFINED__
1223 #define __ID3D10Blob_FWD_DEFINED__
1224 typedef interface ID3D10Blob ID3D10Blob;
1225 
1226 #endif /* __ID3D10Blob_FWD_DEFINED__ */
1227 
1228 typedef struct ID3D10BlobVtbl {
1230 
1231  HRESULT(STDMETHODCALLTYPE *QueryInterface)
1232  (
1233  ID3D10Blob *This,
1234  /* [in] */ REFIID riid,
1235  /* [annotation][iid_is][out] */
1236  _COM_Outptr_ void **ppvObject);
1237 
1238  ULONG(STDMETHODCALLTYPE *AddRef)
1239  (
1241 
1242  ULONG(STDMETHODCALLTYPE *Release)
1243  (
1244  ID3D10Blob *This);
1245 
1246  LPVOID(STDMETHODCALLTYPE *GetBufferPointer)
1247  (
1248  ID3D10Blob *This);
1249 
1250  SIZE_T(STDMETHODCALLTYPE *GetBufferSize)
1251  (
1252  ID3D10Blob *This);
1253 
1255 } ID3D10BlobVtbl;
1256 
1257 interface ID3D10Blob {
1258  CONST_VTBL struct ID3D10BlobVtbl *lpVtbl;
1259 };
1260 
1261 #ifdef COBJMACROS
1262 
1263 #define ID3D10Blob_QueryInterface(This, riid, ppvObject) \
1264  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
1265 
1266 #define ID3D10Blob_AddRef(This) \
1267  ((This)->lpVtbl->AddRef(This))
1268 
1269 #define ID3D10Blob_Release(This) \
1270  ((This)->lpVtbl->Release(This))
1271 
1272 #define ID3D10Blob_GetBufferPointer(This) \
1273  ((This)->lpVtbl->GetBufferPointer(This))
1274 
1275 #define ID3D10Blob_GetBufferSize(This) \
1276  ((This)->lpVtbl->GetBufferSize(This))
1277 
1278 #endif /* COBJMACROS */
1279 
1280 #endif /* C style interface */
1281 
1282 typedef interface ID3D10Blob *LPD3D10BLOB;
1284 
1286 #define IID_ID3DBlob IID_ID3D10Blob
1287 
1288 /* d3d12.h */
1289 /* Forward Declarations */
1290 
1291 #ifndef __ID3D12Object_FWD_DEFINED__
1292 #define __ID3D12Object_FWD_DEFINED__
1293 typedef interface ID3D12Object ID3D12Object;
1294 
1295 #endif /* __ID3D12Object_FWD_DEFINED__ */
1296 
1297 #ifndef __ID3D12DeviceChild_FWD_DEFINED__
1298 #define __ID3D12DeviceChild_FWD_DEFINED__
1300 
1301 #endif /* __ID3D12DeviceChild_FWD_DEFINED__ */
1302 
1303 #ifndef __ID3D12RootSignature_FWD_DEFINED__
1304 #define __ID3D12RootSignature_FWD_DEFINED__
1306 
1307 #endif /* __ID3D12RootSignature_FWD_DEFINED__ */
1308 
1309 #ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__
1310 #define __ID3D12RootSignatureDeserializer_FWD_DEFINED__
1312 
1313 #endif /* __ID3D12RootSignatureDeserializer_FWD_DEFINED__ */
1314 
1315 #ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
1316 #define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
1318 
1319 #endif /* __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ */
1320 
1321 #ifndef __ID3D12Pageable_FWD_DEFINED__
1322 #define __ID3D12Pageable_FWD_DEFINED__
1323 typedef interface ID3D12Pageable ID3D12Pageable;
1324 
1325 #endif /* __ID3D12Pageable_FWD_DEFINED__ */
1326 
1327 #ifndef __ID3D12Heap_FWD_DEFINED__
1328 #define __ID3D12Heap_FWD_DEFINED__
1329 typedef interface ID3D12Heap ID3D12Heap;
1330 
1331 #endif /* __ID3D12Heap_FWD_DEFINED__ */
1332 
1333 #ifndef __ID3D12Resource_FWD_DEFINED__
1334 #define __ID3D12Resource_FWD_DEFINED__
1335 typedef interface ID3D12Resource ID3D12Resource;
1336 
1337 #endif /* __ID3D12Resource_FWD_DEFINED__ */
1338 
1339 #ifndef __ID3D12CommandAllocator_FWD_DEFINED__
1340 #define __ID3D12CommandAllocator_FWD_DEFINED__
1342 
1343 #endif /* __ID3D12CommandAllocator_FWD_DEFINED__ */
1344 
1345 #ifndef __ID3D12Fence_FWD_DEFINED__
1346 #define __ID3D12Fence_FWD_DEFINED__
1347 typedef interface ID3D12Fence ID3D12Fence;
1348 
1349 #endif /* __ID3D12Fence_FWD_DEFINED__ */
1350 
1351 #ifndef __ID3D12PipelineState_FWD_DEFINED__
1352 #define __ID3D12PipelineState_FWD_DEFINED__
1354 
1355 #endif /* __ID3D12PipelineState_FWD_DEFINED__ */
1356 
1357 #ifndef __ID3D12DescriptorHeap_FWD_DEFINED__
1358 #define __ID3D12DescriptorHeap_FWD_DEFINED__
1360 
1361 #endif /* __ID3D12DescriptorHeap_FWD_DEFINED__ */
1362 
1363 #ifndef __ID3D12QueryHeap_FWD_DEFINED__
1364 #define __ID3D12QueryHeap_FWD_DEFINED__
1366 
1367 #endif /* __ID3D12QueryHeap_FWD_DEFINED__ */
1368 
1369 #ifndef __ID3D12CommandSignature_FWD_DEFINED__
1370 #define __ID3D12CommandSignature_FWD_DEFINED__
1372 
1373 #endif /* __ID3D12CommandSignature_FWD_DEFINED__ */
1374 
1375 #ifndef __ID3D12CommandList_FWD_DEFINED__
1376 #define __ID3D12CommandList_FWD_DEFINED__
1378 
1379 #endif /* __ID3D12CommandList_FWD_DEFINED__ */
1380 
1381 #ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__
1382 #define __ID3D12GraphicsCommandList_FWD_DEFINED__
1384 
1385 #endif /* __ID3D12GraphicsCommandList_FWD_DEFINED__ */
1386 
1387 #ifndef __ID3D12GraphicsCommandList1_FWD_DEFINED__
1388 #define __ID3D12GraphicsCommandList1_FWD_DEFINED__
1390 
1391 #endif /* __ID3D12GraphicsCommandList1_FWD_DEFINED__ */
1392 
1393 #ifndef __ID3D12CommandQueue_FWD_DEFINED__
1394 #define __ID3D12CommandQueue_FWD_DEFINED__
1396 
1397 #endif /* __ID3D12CommandQueue_FWD_DEFINED__ */
1398 
1399 #ifndef __ID3D12Device_FWD_DEFINED__
1400 #define __ID3D12Device_FWD_DEFINED__
1401 typedef interface ID3D12Device ID3D12Device;
1402 
1403 #endif /* __ID3D12Device_FWD_DEFINED__ */
1404 
1405 #ifndef __ID3D12PipelineLibrary_FWD_DEFINED__
1406 #define __ID3D12PipelineLibrary_FWD_DEFINED__
1408 
1409 #endif /* __ID3D12PipelineLibrary_FWD_DEFINED__ */
1410 
1411 #ifndef __ID3D12PipelineLibrary1_FWD_DEFINED__
1412 #define __ID3D12PipelineLibrary1_FWD_DEFINED__
1414 
1415 #endif /* __ID3D12PipelineLibrary1_FWD_DEFINED__ */
1416 
1417 #ifndef __ID3D12Device1_FWD_DEFINED__
1418 #define __ID3D12Device1_FWD_DEFINED__
1419 typedef interface ID3D12Device1 ID3D12Device1;
1420 
1421 #endif /* __ID3D12Device1_FWD_DEFINED__ */
1422 
1423 #ifndef __ID3D12Device2_FWD_DEFINED__
1424 #define __ID3D12Device2_FWD_DEFINED__
1425 typedef interface ID3D12Device2 ID3D12Device2;
1426 
1427 #endif /* __ID3D12Device2_FWD_DEFINED__ */
1428 
1429 #ifndef __ID3D12Tools_FWD_DEFINED__
1430 #define __ID3D12Tools_FWD_DEFINED__
1431 typedef interface ID3D12Tools ID3D12Tools;
1432 
1433 #endif /* __ID3D12Tools_FWD_DEFINED__ */
1434 
1435 #ifdef __cplusplus
1436 extern "C" {
1437 #endif
1438 
1439 #if defined(__cplusplus) && !defined(CINTERFACE)
1440 
1441 MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8")
1442 ID3D12Object : public IUnknown {
1443 public:
1444  virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
1445  _In_ REFGUID guid,
1446  _Inout_ UINT * pDataSize,
1447  _Out_writes_bytes_opt_(*pDataSize) void *pData) = 0;
1448 
1449  virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
1450  _In_ REFGUID guid,
1451  _In_ UINT DataSize,
1452  _In_reads_bytes_opt_(DataSize) const void *pData) = 0;
1453 
1454  virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
1455  _In_ REFGUID guid,
1456  _In_opt_ const IUnknown *pData) = 0;
1457 
1458  virtual HRESULT STDMETHODCALLTYPE SetName(
1459  _In_z_ LPCWSTR Name) = 0;
1460 };
1461 
1462 #else /* C style interface */
1463 
1464 typedef struct ID3D12ObjectVtbl {
1466 
1467  HRESULT(STDMETHODCALLTYPE *QueryInterface)
1468  (
1469  ID3D12Object *This,
1470  REFIID riid,
1471  _COM_Outptr_ void **ppvObject);
1472 
1473  ULONG(STDMETHODCALLTYPE *AddRef)
1474  (
1476 
1477  ULONG(STDMETHODCALLTYPE *Release)
1478  (
1479  ID3D12Object *This);
1480 
1481  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
1482  (
1484  _In_ REFGUID guid,
1487 
1488  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
1489  (
1491  _In_ REFGUID guid,
1492  _In_ UINT DataSize,
1493  _In_reads_bytes_opt_(DataSize) const void *pData);
1494 
1495  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
1496  (
1498  _In_ REFGUID guid,
1499  _In_opt_ const IUnknown *pData);
1500 
1501  HRESULT(STDMETHODCALLTYPE *SetName)
1502  (
1504  _In_z_ LPCWSTR Name);
1505 
1508 
1509 interface ID3D12Object {
1510  CONST_VTBL struct ID3D12ObjectVtbl *lpVtbl;
1511 };
1512 
1513 #ifdef COBJMACROS
1514 
1515 #define ID3D12Object_QueryInterface(This, riid, ppvObject) \
1516  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
1517 
1518 #define ID3D12Object_AddRef(This) \
1519  ((This)->lpVtbl->AddRef(This))
1520 
1521 #define ID3D12Object_Release(This) \
1522  ((This)->lpVtbl->Release(This))
1523 
1524 #define ID3D12Object_GetPrivateData(This, guid, pDataSize, pData) \
1525  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
1526 
1527 #define ID3D12Object_SetPrivateData(This, guid, DataSize, pData) \
1528  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
1529 
1530 #define ID3D12Object_SetPrivateDataInterface(This, guid, pData) \
1531  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
1532 
1533 #define ID3D12Object_SetName(This, Name) \
1534  ((This)->lpVtbl->SetName(This, Name))
1535 
1536 #endif /* COBJMACROS */
1537 
1538 #endif /* C style interface */
1539 
1540 #if defined(__cplusplus) && !defined(CINTERFACE)
1541 
1542 MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357")
1544 public:
1545  virtual HRESULT STDMETHODCALLTYPE GetDevice(
1546  REFIID riid,
1547  _COM_Outptr_opt_ void **ppvDevice) = 0;
1548 };
1549 
1550 #else /* C style interface */
1551 
1552 typedef struct ID3D12DeviceChildVtbl {
1554 
1555  HRESULT(STDMETHODCALLTYPE *QueryInterface)
1556  (
1558  REFIID riid,
1559  _COM_Outptr_ void **ppvObject);
1560 
1561  ULONG(STDMETHODCALLTYPE *AddRef)
1562  (
1564 
1565  ULONG(STDMETHODCALLTYPE *Release)
1566  (
1568 
1569  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
1570  (
1572  _In_ REFGUID guid,
1575 
1576  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
1577  (
1579  _In_ REFGUID guid,
1580  _In_ UINT DataSize,
1581  _In_reads_bytes_opt_(DataSize) const void *pData);
1582 
1583  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
1584  (
1586  _In_ REFGUID guid,
1587  _In_opt_ const IUnknown *pData);
1588 
1589  HRESULT(STDMETHODCALLTYPE *SetName)
1590  (
1592  _In_z_ LPCWSTR Name);
1593 
1594  HRESULT(STDMETHODCALLTYPE *GetDevice)
1595  (
1597  REFIID riid,
1598  _COM_Outptr_opt_ void **ppvDevice);
1599 
1602 
1603 interface ID3D12DeviceChild {
1604  CONST_VTBL struct ID3D12DeviceChildVtbl *lpVtbl;
1605 };
1606 
1607 #ifdef COBJMACROS
1608 
1609 #define ID3D12DeviceChild_QueryInterface(This, riid, ppvObject) \
1610  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
1611 
1612 #define ID3D12DeviceChild_AddRef(This) \
1613  ((This)->lpVtbl->AddRef(This))
1614 
1615 #define ID3D12DeviceChild_Release(This) \
1616  ((This)->lpVtbl->Release(This))
1617 
1618 #define ID3D12DeviceChild_GetPrivateData(This, guid, pDataSize, pData) \
1619  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
1620 
1621 #define ID3D12DeviceChild_SetPrivateData(This, guid, DataSize, pData) \
1622  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
1623 
1624 #define ID3D12DeviceChild_SetPrivateDataInterface(This, guid, pData) \
1625  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
1626 
1627 #define ID3D12DeviceChild_SetName(This, Name) \
1628  ((This)->lpVtbl->SetName(This, Name))
1629 
1630 #define ID3D12DeviceChild_GetDevice(This, riid, ppvDevice) \
1631  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
1632 
1633 #endif /* COBJMACROS */
1634 
1635 #endif /* C style interface */
1636 
1637 #if defined(__cplusplus) && !defined(CINTERFACE)
1638 
1639 MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214")
1641  public :
1642 };
1643 
1644 #else /* C style interface */
1645 
1646 typedef struct ID3D12RootSignatureVtbl {
1648 
1649  HRESULT(STDMETHODCALLTYPE *QueryInterface)
1650  (
1652  REFIID riid,
1653  _COM_Outptr_ void **ppvObject);
1654 
1655  ULONG(STDMETHODCALLTYPE *AddRef)
1656  (
1658 
1659  ULONG(STDMETHODCALLTYPE *Release)
1660  (
1662 
1663  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
1664  (
1666  _In_ REFGUID guid,
1669 
1670  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
1671  (
1673  _In_ REFGUID guid,
1674  _In_ UINT DataSize,
1675  _In_reads_bytes_opt_(DataSize) const void *pData);
1676 
1677  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
1678  (
1680  _In_ REFGUID guid,
1681  _In_opt_ const IUnknown *pData);
1682 
1683  HRESULT(STDMETHODCALLTYPE *SetName)
1684  (
1686  _In_z_ LPCWSTR Name);
1687 
1688  HRESULT(STDMETHODCALLTYPE *GetDevice)
1689  (
1691  REFIID riid,
1692  _COM_Outptr_opt_ void **ppvDevice);
1693 
1696 
1697 interface ID3D12RootSignature {
1698  CONST_VTBL struct ID3D12RootSignatureVtbl *lpVtbl;
1699 };
1700 
1701 #ifdef COBJMACROS
1702 
1703 #define ID3D12RootSignature_QueryInterface(This, riid, ppvObject) \
1704  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
1705 
1706 #define ID3D12RootSignature_AddRef(This) \
1707  ((This)->lpVtbl->AddRef(This))
1708 
1709 #define ID3D12RootSignature_Release(This) \
1710  ((This)->lpVtbl->Release(This))
1711 
1712 #define ID3D12RootSignature_GetPrivateData(This, guid, pDataSize, pData) \
1713  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
1714 
1715 #define ID3D12RootSignature_SetPrivateData(This, guid, DataSize, pData) \
1716  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
1717 
1718 #define ID3D12RootSignature_SetPrivateDataInterface(This, guid, pData) \
1719  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
1720 
1721 #define ID3D12RootSignature_SetName(This, Name) \
1722  ((This)->lpVtbl->SetName(This, Name))
1723 
1724 #define ID3D12RootSignature_GetDevice(This, riid, ppvDevice) \
1725  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
1726 
1727 #endif /* COBJMACROS */
1728 
1729 #endif /* C style interface */
1730 
1731 #if defined(__cplusplus) && !defined(CINTERFACE)
1732 
1733 MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6")
1735  public :
1736 };
1737 
1738 #else /* C style interface */
1739 
1740 #ifndef __ID3D12Pageable_FWD_DEFINED__
1741 #define __ID3D12Pageable_FWD_DEFINED__
1742 typedef interface ID3D12Pageable ID3D12Pageable;
1743 
1744 #endif /* __ID3D12Pageable_FWD_DEFINED__ */
1745 
1746 typedef struct ID3D12PageableVtbl {
1748 
1749  HRESULT(STDMETHODCALLTYPE *QueryInterface)
1750  (
1752  REFIID riid,
1753  _COM_Outptr_ void **ppvObject);
1754 
1755  ULONG(STDMETHODCALLTYPE *AddRef)
1756  (
1758 
1759  ULONG(STDMETHODCALLTYPE *Release)
1760  (
1761  ID3D12Pageable *This);
1762 
1763  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
1764  (
1766  _In_ REFGUID guid,
1769 
1770  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
1771  (
1773  _In_ REFGUID guid,
1774  _In_ UINT DataSize,
1775  _In_reads_bytes_opt_(DataSize) const void *pData);
1776 
1777  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
1778  (
1780  _In_ REFGUID guid,
1781  _In_opt_ const IUnknown *pData);
1782 
1783  HRESULT(STDMETHODCALLTYPE *SetName)
1784  (
1786  _In_z_ LPCWSTR Name);
1787 
1788  HRESULT(STDMETHODCALLTYPE *GetDevice)
1789  (
1791  REFIID riid,
1792  _COM_Outptr_opt_ void **ppvDevice);
1793 
1796 
1797 interface ID3D12Pageable {
1798  CONST_VTBL struct ID3D12PageableVtbl *lpVtbl;
1799 };
1800 
1801 #ifdef COBJMACROS
1802 
1803 #define ID3D12Pageable_QueryInterface(This, riid, ppvObject) \
1804  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
1805 
1806 #define ID3D12Pageable_AddRef(This) \
1807  ((This)->lpVtbl->AddRef(This))
1808 
1809 #define ID3D12Pageable_Release(This) \
1810  ((This)->lpVtbl->Release(This))
1811 
1812 #define ID3D12Pageable_GetPrivateData(This, guid, pDataSize, pData) \
1813  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
1814 
1815 #define ID3D12Pageable_SetPrivateData(This, guid, DataSize, pData) \
1816  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
1817 
1818 #define ID3D12Pageable_SetPrivateDataInterface(This, guid, pData) \
1819  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
1820 
1821 #define ID3D12Pageable_SetName(This, Name) \
1822  ((This)->lpVtbl->SetName(This, Name))
1823 
1824 #define ID3D12Pageable_GetDevice(This, riid, ppvDevice) \
1825  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
1826 
1827 #endif /* COBJMACROS */
1828 
1829 #endif /* C style interface */
1830 
1831 typedef struct D3D12_RANGE {
1834 } D3D12_RANGE;
1835 
1836 typedef struct D3D12_BOX {
1843 } D3D12_BOX;
1844 
1851 
1856 
1863 
1870 
1871 typedef struct D3D12_SHADER_BYTECODE {
1872  _Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode;
1875 
1884 
1888  _Field_size_full_(NumStrides) const UINT *pBufferStrides;
1892 
1893 typedef enum D3D12_BLEND {
1911 } D3D12_BLEND;
1912 
1913 typedef enum D3D12_BLEND_OP {
1919 } D3D12_BLEND_OP;
1920 
1921 typedef enum D3D12_LOGIC_OP {
1938 } D3D12_LOGIC_OP;
1939 
1952 
1953 typedef struct D3D12_BLEND_DESC {
1958 
1959 typedef enum D3D12_FILL_MODE {
1962 } D3D12_FILL_MODE;
1963 
1964 typedef enum D3D12_CULL_MODE {
1968 } D3D12_CULL_MODE;
1969 
1974 
1975 typedef struct D3D12_RASTERIZER_DESC {
1988 
1993 
2004 
2005 typedef enum D3D12_STENCIL_OP {
2015 
2022 
2033 
2038 
2048 
2049 typedef struct D3D12_INPUT_LAYOUT_DESC {
2050  _Field_size_full_(NumElements) const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs;
2053 
2058 
2064 
2072 
2074  _Field_size_bytes_full_(CachedBlobSizeInBytes) const void *pCachedBlob;
2077 
2102 
2110 
2115 
2123 
2124 typedef enum D3D12_TEXTURE_LAYOUT {
2130 
2131 typedef enum D3D12_RESOURCE_FLAGS {
2140 
2142 typedef struct D3D12_RESOURCE_DESC {
2154 
2161 
2162 typedef enum D3D12_MEMORY_POOL {
2167 
2168 typedef enum D3D12_HEAP_TYPE {
2173 } D3D12_HEAP_TYPE;
2174 
2175 typedef struct D3D12_HEAP_PROPERTIES {
2182 
2183 typedef enum D3D12_HEAP_FLAGS {
2198 
2203 
2211 
2229  D3D12_RESOURCE_STATE_GENERIC_READ = (((((0x1 | 0x2) | 0x40) | 0x80) | 0x200) | 0x800),
2233 
2238 
2239 typedef struct D3D12_CLEAR_VALUE {
2241  union {
2244  };
2246 
2247 typedef enum D3D12_FEATURE {
2262 } D3D12_FEATURE;
2263 
2264 typedef enum D3D12_CLEAR_FLAGS {
2268 
2270 typedef enum D3D12_FENCE_FLAGS {
2275 
2284 
2289 
2298 
2299 #define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7
2300 #define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3
2301 #define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1 << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 4))
2302 #define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0, Src1, Src2, Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK) | \
2303  (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK) << D3D12_SHADER_COMPONENT_MAPPING_SHIFT) | \
2304  (((Src2)&D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 2)) | \
2305  (((Src3)&D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 3)) | \
2306  D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES))
2307 #define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(ComponentToExtract, Mapping) \
2308  ((D3D12_SHADER_COMPONENT_MAPPING)((Mapping) >> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * (ComponentToExtract)) & D3D12_SHADER_COMPONENT_MAPPING_MASK))
2309 #define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 1, 2, 3)
2310 
2315 
2317 typedef struct D3D12_BUFFER_SRV {
2323 
2324 typedef struct D3D12_TEX1D_SRV {
2328 } D3D12_TEX1D_SRV;
2329 
2330 typedef struct D3D12_TEX1D_ARRAY_SRV {
2337 
2338 typedef struct D3D12_TEX2D_SRV {
2343 } D3D12_TEX2D_SRV;
2344 
2345 typedef struct D3D12_TEX2D_ARRAY_SRV {
2353 
2354 typedef struct D3D12_TEX3D_SRV {
2358 } D3D12_TEX3D_SRV;
2359 
2360 typedef struct D3D12_TEXCUBE_SRV {
2365 
2366 typedef struct D3D12_TEXCUBE_ARRAY_SRV {
2373 
2374 typedef struct D3D12_TEX2DMS_SRV {
2377 
2378 typedef struct D3D12_TEX2DMS_ARRAY_SRV {
2382 
2383 typedef enum D3D12_SRV_DIMENSION {
2396 
2401  union {
2412  };
2414 
2416 
2421 
2425 
2429 
2434 
2436 typedef struct D3D12_BUFFER_UAV {
2443 
2444 typedef struct D3D12_TEX1D_UAV {
2446 } D3D12_TEX1D_UAV;
2447 
2448 typedef struct D3D12_TEX1D_ARRAY_UAV {
2453 
2454 typedef struct D3D12_TEX2D_UAV {
2457 } D3D12_TEX2D_UAV;
2458 
2459 typedef struct D3D12_TEX2D_ARRAY_UAV {
2465 
2466 typedef struct D3D12_TEX3D_UAV {
2470 } D3D12_TEX3D_UAV;
2471 
2472 typedef enum D3D12_UAV_DIMENSION {
2481 
2485  union {
2492  };
2494 
2495 typedef struct D3D12_BUFFER_RTV {
2499 
2500 typedef struct D3D12_TEX1D_RTV {
2502 } D3D12_TEX1D_RTV;
2503 
2504 typedef struct D3D12_TEX1D_ARRAY_RTV {
2509 
2510 typedef struct D3D12_TEX2D_RTV {
2513 } D3D12_TEX2D_RTV;
2514 
2515 typedef struct D3D12_TEX2DMS_RTV {
2518 
2519 typedef struct D3D12_TEX2D_ARRAY_RTV {
2525 
2526 typedef struct D3D12_TEX2DMS_ARRAY_RTV {
2530 
2531 typedef struct D3D12_TEX3D_RTV {
2535 } D3D12_TEX3D_RTV;
2536 
2537 typedef enum D3D12_RTV_DIMENSION {
2548 
2552  union {
2561  };
2563 
2564 typedef struct D3D12_TEX1D_DSV {
2566 } D3D12_TEX1D_DSV;
2567 
2568 typedef struct D3D12_TEX1D_ARRAY_DSV {
2573 
2574 typedef struct D3D12_TEX2D_DSV {
2576 } D3D12_TEX2D_DSV;
2577 
2578 typedef struct D3D12_TEX2D_ARRAY_DSV {
2583 
2584 typedef struct D3D12_TEX2DMS_DSV {
2587 
2588 typedef struct D3D12_TEX2DMS_ARRAY_DSV {
2592 
2593 typedef enum D3D12_DSV_FLAGS {
2597 } D3D12_DSV_FLAGS;
2598 
2600 typedef enum D3D12_DSV_DIMENSION {
2609 
2614  union {
2621  };
2623 
2624 typedef enum D3D12_FILTER {
2661 } D3D12_FILTER;
2662 
2670 
2671 typedef struct D3D12_SAMPLER_DESC {
2683 
2691 
2693 typedef struct D3D12_HEAP_DESC {
2698 } D3D12_HEAP_DESC;
2699 
2707 
2712 
2719 
2720 typedef struct D3D12_QUERY_HEAP_DESC {
2725 
2737 
2740  union {
2741  struct
2742  {
2744  } VertexBuffer;
2745  struct
2746  {
2750  } Constant;
2751  struct
2752  {
2755  struct
2756  {
2759  struct
2760  {
2763  };
2765 
2772 
2773 typedef struct D3D12_PACKED_MIP_INFO {
2779 
2780 typedef struct D3D12_TILE_SHAPE {
2785 
2792 
2799 
2800 typedef struct D3D12_TILE_REGION_SIZE {
2807 
2814 
2819 
2823  union {
2826  };
2828 
2830 
2831 #define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
2832 
2833 typedef struct D3D12_INDEX_BUFFER_VIEW {
2838 
2839 typedef struct D3D12_VIEWPORT {
2846 } D3D12_VIEWPORT;
2847 
2849 
2856 
2861 
2865 
2871 
2878 
2880 typedef struct D3D12_RESOURCE_BARRIER {
2883  union {
2887  };
2889 
2895 
2901 
2902 typedef struct D3D12_DISCARD_REGION {
2904  _In_reads_(NumRects) const D3D12_RECT *pRects;
2908 
2909 typedef enum D3D12_QUERY_TYPE {
2919 
2920 typedef enum D3D12_PREDICATION_OP {
2924 
2935 
2943 
2950 
2951 typedef struct D3D12_DESCRIPTOR_RANGE {
2958 
2963 
2964 typedef struct D3D12_ROOT_CONSTANTS {
2969 
2970 typedef struct D3D12_ROOT_DESCRIPTOR {
2974 
2983 
2984 typedef struct D3D12_ROOT_PARAMETER {
2986  union {
2990  };
2993 
3000 
3016 
3024 
3032 
3034 typedef struct D3D12_DESCRIPTOR_RANGE1 {
3042 
3047 
3054 
3056 typedef struct D3D12_ROOT_DESCRIPTOR1 {
3061 
3062 typedef struct D3D12_ROOT_PARAMETER1 {
3064  union {
3068  };
3071 
3079 
3085 
3088  union {
3091  };
3093 
3094 #define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND (0xffffffff)
3095 
3096 #ifndef __ID3D12Resource_INTERFACE_DEFINED__
3097 #define __ID3D12Resource_INTERFACE_DEFINED__
3098 
3099 /* interface ID3D12Resource */
3100 /* [unique][local][object][uuid] */
3101 
3103 
3104 #if defined(__cplusplus) && !defined(CINTERFACE)
3105 
3106 MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad")
3107 ID3D12Resource : public ID3D12Pageable {
3108 public:
3109  virtual HRESULT STDMETHODCALLTYPE Map(
3110  UINT Subresource,
3111  _In_opt_ const D3D12_RANGE *pReadRange,
3112  _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData) = 0;
3113 
3114  virtual void STDMETHODCALLTYPE Unmap(
3115  UINT Subresource,
3116  _In_opt_ const D3D12_RANGE *pWrittenRange) = 0;
3117 
3118  virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc() = 0;
3119 
3120  virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress() = 0;
3121 
3122  virtual HRESULT STDMETHODCALLTYPE WriteToSubresource(
3123  UINT DstSubresource,
3124  _In_opt_ const D3D12_BOX *pDstBox,
3125  _In_ const void *pSrcData,
3126  UINT SrcRowPitch,
3127  UINT SrcDepthPitch) = 0;
3128 
3129  virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource(
3130  _Out_ void *pDstData,
3131  UINT DstRowPitch,
3132  UINT DstDepthPitch,
3133  UINT SrcSubresource,
3134  _In_opt_ const D3D12_BOX *pSrcBox) = 0;
3135 
3136  virtual HRESULT STDMETHODCALLTYPE GetHeapProperties(
3137  _Out_opt_ D3D12_HEAP_PROPERTIES * pHeapProperties,
3138  _Out_opt_ D3D12_HEAP_FLAGS * pHeapFlags) = 0;
3139 };
3140 
3141 #else /* C style interface */
3142 
3143 typedef struct ID3D12ResourceVtbl {
3145 
3146  HRESULT(STDMETHODCALLTYPE *QueryInterface)
3147  (
3149  REFIID riid,
3150  _COM_Outptr_ void **ppvObject);
3151 
3152  ULONG(STDMETHODCALLTYPE *AddRef)
3153  (
3155 
3156  ULONG(STDMETHODCALLTYPE *Release)
3157  (
3158  ID3D12Resource *This);
3159 
3160  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
3161  (
3163  _In_ REFGUID guid,
3166 
3167  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
3168  (
3170  _In_ REFGUID guid,
3171  _In_ UINT DataSize,
3172  _In_reads_bytes_opt_(DataSize) const void *pData);
3173 
3174  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
3175  (
3177  _In_ REFGUID guid,
3178  _In_opt_ const IUnknown *pData);
3179 
3180  HRESULT(STDMETHODCALLTYPE *SetName)
3181  (
3183  _In_z_ LPCWSTR Name);
3184 
3185  HRESULT(STDMETHODCALLTYPE *GetDevice)
3186  (
3188  REFIID riid,
3189  _COM_Outptr_opt_ void **ppvDevice);
3190 
3192  (
3194  UINT Subresource,
3196  _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
3197 
3198  void(STDMETHODCALLTYPE *Unmap)(
3202 
3204  (
3205  ID3D12Resource *This);
3206 
3207  D3D12_GPU_VIRTUAL_ADDRESS(STDMETHODCALLTYPE *GetGPUVirtualAddress)
3208  (
3209  ID3D12Resource *This);
3210 
3211  HRESULT(STDMETHODCALLTYPE *WriteToSubresource)
3212  (
3215  _In_opt_ const D3D12_BOX *pDstBox,
3216  _In_ const void *pSrcData,
3217  UINT SrcRowPitch,
3219 
3220  HRESULT(STDMETHODCALLTYPE *ReadFromSubresource)
3221  (
3223  _Out_ void *pDstData,
3224  UINT DstRowPitch,
3227  _In_opt_ const D3D12_BOX *pSrcBox);
3228 
3229  HRESULT(STDMETHODCALLTYPE *GetHeapProperties)
3230  (
3234 
3237 
3239  CONST_VTBL struct ID3D12ResourceVtbl *lpVtbl;
3240 };
3241 
3242 #ifdef COBJMACROS
3243 
3244 #define ID3D12Resource_QueryInterface(This, riid, ppvObject) \
3245  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
3246 
3247 #define ID3D12Resource_AddRef(This) \
3248  ((This)->lpVtbl->AddRef(This))
3249 
3250 #define ID3D12Resource_Release(This) \
3251  ((This)->lpVtbl->Release(This))
3252 
3253 #define ID3D12Resource_GetPrivateData(This, guid, pDataSize, pData) \
3254  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
3255 
3256 #define ID3D12Resource_SetPrivateData(This, guid, DataSize, pData) \
3257  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
3258 
3259 #define ID3D12Resource_SetPrivateDataInterface(This, guid, pData) \
3260  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
3261 
3262 #define ID3D12Resource_SetName(This, Name) \
3263  ((This)->lpVtbl->SetName(This, Name))
3264 
3265 #define ID3D12Resource_GetDevice(This, riid, ppvDevice) \
3266  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
3267 
3268 #define ID3D12Resource_Map(This, Subresource, pReadRange, ppData) \
3269  ((This)->lpVtbl->Map(This, Subresource, pReadRange, ppData))
3270 
3271 #define ID3D12Resource_Unmap(This, Subresource, pWrittenRange) \
3272  ((This)->lpVtbl->Unmap(This, Subresource, pWrittenRange))
3273 
3274 #define ID3D12Resource_GetDesc(This) \
3275  ((This)->lpVtbl->GetDesc(This))
3276 
3277 #define ID3D12Resource_GetGPUVirtualAddress(This) \
3278  ((This)->lpVtbl->GetGPUVirtualAddress(This))
3279 
3280 #define ID3D12Resource_WriteToSubresource(This, DstSubresource, pDstBox, pSrcData, SrcRowPitch, SrcDepthPitch) \
3281  ((This)->lpVtbl->WriteToSubresource(This, DstSubresource, pDstBox, pSrcData, SrcRowPitch, SrcDepthPitch))
3282 
3283 #define ID3D12Resource_ReadFromSubresource(This, pDstData, DstRowPitch, DstDepthPitch, SrcSubresource, pSrcBox) \
3284  ((This)->lpVtbl->ReadFromSubresource(This, pDstData, DstRowPitch, DstDepthPitch, SrcSubresource, pSrcBox))
3285 
3286 #define ID3D12Resource_GetHeapProperties(This, pHeapProperties, pHeapFlags) \
3287  ((This)->lpVtbl->GetHeapProperties(This, pHeapProperties, pHeapFlags))
3288 
3289 #endif /* COBJMACROS */
3290 
3291 #endif /* C style interface */
3292 
3293 #endif /* __ID3D12Resource_INTERFACE_DEFINED__ */
3294 
3295 #ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__
3296 #define __ID3D12CommandAllocator_INTERFACE_DEFINED__
3297 
3298 /* interface ID3D12CommandAllocator */
3299 /* [unique][local][object][uuid] */
3300 
3302 
3303 #if defined(__cplusplus) && !defined(CINTERFACE)
3304 
3305 MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24")
3307 public:
3308  virtual HRESULT STDMETHODCALLTYPE Reset() = 0;
3309 };
3310 
3311 #else /* C style interface */
3312 
3315 
3316  HRESULT(STDMETHODCALLTYPE *QueryInterface)
3317  (
3319  REFIID riid,
3320  _COM_Outptr_ void **ppvObject);
3321 
3322  ULONG(STDMETHODCALLTYPE *AddRef)
3323  (
3325 
3326  ULONG(STDMETHODCALLTYPE *Release)
3327  (
3329 
3330  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
3331  (
3333  _In_ REFGUID guid,
3336 
3337  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
3338  (
3340  _In_ REFGUID guid,
3341  _In_ UINT DataSize,
3342  _In_reads_bytes_opt_(DataSize) const void *pData);
3343 
3344  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
3345  (
3347  _In_ REFGUID guid,
3348  _In_opt_ const IUnknown *pData);
3349 
3350  HRESULT(STDMETHODCALLTYPE *SetName)
3351  (
3353  _In_z_ LPCWSTR Name);
3354 
3355  HRESULT(STDMETHODCALLTYPE *GetDevice)
3356  (
3358  REFIID riid,
3359  _COM_Outptr_opt_ void **ppvDevice);
3360 
3361  HRESULT(STDMETHODCALLTYPE *Reset)
3362  (
3364 
3367 
3368 interface ID3D12CommandAllocator {
3369  CONST_VTBL struct ID3D12CommandAllocatorVtbl *lpVtbl;
3370 };
3371 
3372 #ifdef COBJMACROS
3373 
3374 #define ID3D12CommandAllocator_QueryInterface(This, riid, ppvObject) \
3375  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
3376 
3377 #define ID3D12CommandAllocator_AddRef(This) \
3378  ((This)->lpVtbl->AddRef(This))
3379 
3380 #define ID3D12CommandAllocator_Release(This) \
3381  ((This)->lpVtbl->Release(This))
3382 
3383 #define ID3D12CommandAllocator_GetPrivateData(This, guid, pDataSize, pData) \
3384  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
3385 
3386 #define ID3D12CommandAllocator_SetPrivateData(This, guid, DataSize, pData) \
3387  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
3388 
3389 #define ID3D12CommandAllocator_SetPrivateDataInterface(This, guid, pData) \
3390  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
3391 
3392 #define ID3D12CommandAllocator_SetName(This, Name) \
3393  ((This)->lpVtbl->SetName(This, Name))
3394 
3395 #define ID3D12CommandAllocator_GetDevice(This, riid, ppvDevice) \
3396  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
3397 
3398 #define ID3D12CommandAllocator_Reset(This) \
3399  ((This)->lpVtbl->Reset(This))
3400 
3401 #endif /* COBJMACROS */
3402 
3403 #endif /* C style interface */
3404 
3405 #endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */
3406 
3407 #ifndef __ID3D12CommandList_INTERFACE_DEFINED__
3408 #define __ID3D12CommandList_INTERFACE_DEFINED__
3409 
3410 /* interface ID3D12CommandList */
3411 /* [unique][local][object][uuid] */
3412 
3414 
3415 #if defined(__cplusplus) && !defined(CINTERFACE)
3416 
3417 MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5")
3419 public:
3420  virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType() = 0;
3421 };
3422 
3423 #else /* C style interface */
3424 
3425 typedef struct ID3D12CommandListVtbl {
3427 
3428  HRESULT(STDMETHODCALLTYPE *QueryInterface)
3429  (
3431  REFIID riid,
3432  _COM_Outptr_ void **ppvObject);
3433 
3434  ULONG(STDMETHODCALLTYPE *AddRef)
3435  (
3437 
3438  ULONG(STDMETHODCALLTYPE *Release)
3439  (
3441 
3442  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
3443  (
3445  _In_ REFGUID guid,
3448 
3449  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
3450  (
3452  _In_ REFGUID guid,
3453  _In_ UINT DataSize,
3454  _In_reads_bytes_opt_(DataSize) const void *pData);
3455 
3456  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
3457  (
3459  _In_ REFGUID guid,
3460  _In_opt_ const IUnknown *pData);
3461 
3462  HRESULT(STDMETHODCALLTYPE *SetName)
3463  (
3465  _In_z_ LPCWSTR Name);
3466 
3467  HRESULT(STDMETHODCALLTYPE *GetDevice)
3468  (
3470  REFIID riid,
3471  _COM_Outptr_opt_ void **ppvDevice);
3472 
3474  (
3476 
3479 
3480 interface ID3D12CommandList {
3481  CONST_VTBL struct ID3D12CommandListVtbl *lpVtbl;
3482 };
3483 
3484 #ifdef COBJMACROS
3485 
3486 #define ID3D12CommandList_QueryInterface(This, riid, ppvObject) \
3487  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
3488 
3489 #define ID3D12CommandList_AddRef(This) \
3490  ((This)->lpVtbl->AddRef(This))
3491 
3492 #define ID3D12CommandList_Release(This) \
3493  ((This)->lpVtbl->Release(This))
3494 
3495 #define ID3D12CommandList_GetPrivateData(This, guid, pDataSize, pData) \
3496  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
3497 
3498 #define ID3D12CommandList_SetPrivateData(This, guid, DataSize, pData) \
3499  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
3500 
3501 #define ID3D12CommandList_SetPrivateDataInterface(This, guid, pData) \
3502  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
3503 
3504 #define ID3D12CommandList_SetName(This, Name) \
3505  ((This)->lpVtbl->SetName(This, Name))
3506 
3507 #define ID3D12CommandList_GetDevice(This, riid, ppvDevice) \
3508  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
3509 
3510 #define ID3D12CommandList_GetType(This) \
3511  ((This)->lpVtbl->GetType(This))
3512 
3513 #endif /* COBJMACROS */
3514 
3515 #endif /* C style interface */
3516 
3517 #endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */
3518 
3519 #ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
3520 #define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
3521 
3522 /* interface ID3D12GraphicsCommandList */
3523 /* [unique][local][object][uuid] */
3524 
3526 
3527 #if defined(__cplusplus) && !defined(CINTERFACE)
3528 
3529 MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455")
3531 public:
3532  virtual HRESULT STDMETHODCALLTYPE Close() = 0;
3533 
3534  virtual HRESULT STDMETHODCALLTYPE Reset(
3535  _In_ ID3D12CommandAllocator * pAllocator,
3536  _In_opt_ ID3D12PipelineState * pInitialState) = 0;
3537 
3538  virtual void STDMETHODCALLTYPE ClearState(
3539  _In_opt_ ID3D12PipelineState * pPipelineState) = 0;
3540 
3541  virtual void STDMETHODCALLTYPE DrawInstanced(
3542  _In_ UINT VertexCountPerInstance,
3543  _In_ UINT InstanceCount,
3544  _In_ UINT StartVertexLocation,
3545  _In_ UINT StartInstanceLocation) = 0;
3546 
3547  virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
3548  _In_ UINT IndexCountPerInstance,
3549  _In_ UINT InstanceCount,
3550  _In_ UINT StartIndexLocation,
3551  _In_ INT BaseVertexLocation,
3552  _In_ UINT StartInstanceLocation) = 0;
3553 
3554  virtual void STDMETHODCALLTYPE Dispatch(
3555  _In_ UINT ThreadGroupCountX,
3556  _In_ UINT ThreadGroupCountY,
3557  _In_ UINT ThreadGroupCountZ) = 0;
3558 
3559  virtual void STDMETHODCALLTYPE CopyBufferRegion(
3560  _In_ ID3D12Resource * pDstBuffer,
3561  UINT64 DstOffset,
3562  _In_ ID3D12Resource * pSrcBuffer,
3563  UINT64 SrcOffset,
3564  UINT64 NumBytes) = 0;
3565 
3566  virtual void STDMETHODCALLTYPE CopyTextureRegion(
3567  _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
3568  UINT DstX,
3569  UINT DstY,
3570  UINT DstZ,
3571  _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
3572  _In_opt_ const D3D12_BOX *pSrcBox) = 0;
3573 
3574  virtual void STDMETHODCALLTYPE CopyResource(
3575  _In_ ID3D12Resource * pDstResource,
3576  _In_ ID3D12Resource * pSrcResource) = 0;
3577 
3578  virtual void STDMETHODCALLTYPE CopyTiles(
3579  _In_ ID3D12Resource * pTiledResource,
3580  _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
3581  _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
3582  _In_ ID3D12Resource *pBuffer,
3583  UINT64 BufferStartOffsetInBytes,
3584  D3D12_TILE_COPY_FLAGS Flags) = 0;
3585 
3586  virtual void STDMETHODCALLTYPE ResolveSubresource(
3587  _In_ ID3D12Resource * pDstResource,
3589  _In_ ID3D12Resource * pSrcResource,
3591  _In_ DXGI_FORMAT Format) = 0;
3592 
3593  virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
3594  _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology) = 0;
3595 
3596  virtual void STDMETHODCALLTYPE RSSetViewports(
3598  _In_reads_(NumViewports) const D3D12_VIEWPORT *pViewports) = 0;
3599 
3600  virtual void STDMETHODCALLTYPE RSSetScissorRects(
3602  _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
3603 
3604  virtual void STDMETHODCALLTYPE OMSetBlendFactor(
3605  _In_opt_ const FLOAT BlendFactor[4]) = 0;
3606 
3607  virtual void STDMETHODCALLTYPE OMSetStencilRef(
3608  _In_ UINT StencilRef) = 0;
3609 
3610  virtual void STDMETHODCALLTYPE SetPipelineState(
3611  _In_ ID3D12PipelineState * pPipelineState) = 0;
3612 
3613  virtual void STDMETHODCALLTYPE ResourceBarrier(
3614  _In_ UINT NumBarriers,
3615  _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;
3616 
3617  virtual void STDMETHODCALLTYPE ExecuteBundle(
3618  _In_ ID3D12GraphicsCommandList * pCommandList) = 0;
3619 
3620  virtual void STDMETHODCALLTYPE SetDescriptorHeaps(
3621  _In_ UINT NumDescriptorHeaps,
3622  _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps) = 0;
3623 
3624  virtual void STDMETHODCALLTYPE SetComputeRootSignature(
3625  _In_opt_ ID3D12RootSignature * pRootSignature) = 0;
3626 
3627  virtual void STDMETHODCALLTYPE SetGraphicsRootSignature(
3628  _In_opt_ ID3D12RootSignature * pRootSignature) = 0;
3629 
3630  virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable(
3631  _In_ UINT RootParameterIndex,
3632  _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0;
3633 
3634  virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable(
3635  _In_ UINT RootParameterIndex,
3636  _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0;
3637 
3638  virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant(
3639  _In_ UINT RootParameterIndex,
3640  _In_ UINT SrcData,
3641  _In_ UINT DestOffsetIn32BitValues) = 0;
3642 
3643  virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant(
3644  _In_ UINT RootParameterIndex,
3645  _In_ UINT SrcData,
3646  _In_ UINT DestOffsetIn32BitValues) = 0;
3647 
3648  virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants(
3649  _In_ UINT RootParameterIndex,
3650  _In_ UINT Num32BitValuesToSet,
3651  _In_reads_(Num32BitValuesToSet * sizeof(UINT)) const void *pSrcData,
3652  _In_ UINT DestOffsetIn32BitValues) = 0;
3653 
3654  virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants(
3655  _In_ UINT RootParameterIndex,
3656  _In_ UINT Num32BitValuesToSet,
3657  _In_reads_(Num32BitValuesToSet * sizeof(UINT)) const void *pSrcData,
3658  _In_ UINT DestOffsetIn32BitValues) = 0;
3659 
3660  virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView(
3661  _In_ UINT RootParameterIndex,
3662  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
3663 
3664  virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView(
3665  _In_ UINT RootParameterIndex,
3666  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
3667 
3668  virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView(
3669  _In_ UINT RootParameterIndex,
3670  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
3671 
3672  virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView(
3673  _In_ UINT RootParameterIndex,
3674  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
3675 
3676  virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView(
3677  _In_ UINT RootParameterIndex,
3678  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
3679 
3680  virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView(
3681  _In_ UINT RootParameterIndex,
3682  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
3683 
3684  virtual void STDMETHODCALLTYPE IASetIndexBuffer(
3685  _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView) = 0;
3686 
3687  virtual void STDMETHODCALLTYPE IASetVertexBuffers(
3688  _In_ UINT StartSlot,
3689  _In_ UINT NumViews,
3690  _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews) = 0;
3691 
3692  virtual void STDMETHODCALLTYPE SOSetTargets(
3693  _In_ UINT StartSlot,
3694  _In_ UINT NumViews,
3695  _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews) = 0;
3696 
3697  virtual void STDMETHODCALLTYPE OMSetRenderTargets(
3698  _In_ UINT NumRenderTargetDescriptors,
3699  _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
3700  _In_ BOOL RTsSingleHandleToDescriptorRange,
3701  _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor) = 0;
3702 
3703  virtual void STDMETHODCALLTYPE ClearDepthStencilView(
3704  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
3705  _In_ D3D12_CLEAR_FLAGS ClearFlags,
3706  _In_ FLOAT Depth,
3707  _In_ UINT8 Stencil,
3708  _In_ UINT NumRects,
3709  _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
3710 
3711  virtual void STDMETHODCALLTYPE ClearRenderTargetView(
3712  _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
3713  _In_ const FLOAT ColorRGBA[4],
3714  _In_ UINT NumRects,
3715  _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
3716 
3717  virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
3718  _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
3719  _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
3720  _In_ ID3D12Resource * pResource,
3721  _In_ const UINT Values[4],
3722  _In_ UINT NumRects,
3723  _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
3724 
3725  virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
3726  _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
3727  _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
3728  _In_ ID3D12Resource * pResource,
3729  _In_ const FLOAT Values[4],
3730  _In_ UINT NumRects,
3731  _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
3732 
3733  virtual void STDMETHODCALLTYPE DiscardResource(
3734  _In_ ID3D12Resource * pResource,
3735  _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;
3736 
3737  virtual void STDMETHODCALLTYPE BeginQuery(
3738  _In_ ID3D12QueryHeap * pQueryHeap,
3739  _In_ D3D12_QUERY_TYPE Type,
3740  _In_ UINT Index) = 0;
3741 
3742  virtual void STDMETHODCALLTYPE EndQuery(
3743  _In_ ID3D12QueryHeap * pQueryHeap,
3744  _In_ D3D12_QUERY_TYPE Type,
3745  _In_ UINT Index) = 0;
3746 
3747  virtual void STDMETHODCALLTYPE ResolveQueryData(
3748  _In_ ID3D12QueryHeap * pQueryHeap,
3749  _In_ D3D12_QUERY_TYPE Type,
3750  _In_ UINT StartIndex,
3751  _In_ UINT NumQueries,
3752  _In_ ID3D12Resource * pDestinationBuffer,
3753  _In_ UINT64 AlignedDestinationBufferOffset) = 0;
3754 
3755  virtual void STDMETHODCALLTYPE SetPredication(
3756  _In_opt_ ID3D12Resource * pBuffer,
3757  _In_ UINT64 AlignedBufferOffset,
3758  _In_ D3D12_PREDICATION_OP Operation) = 0;
3759 
3760  virtual void STDMETHODCALLTYPE SetMarker(
3761  UINT Metadata,
3762  _In_reads_bytes_opt_(Size) const void *pData,
3763  UINT Size) = 0;
3764 
3765  virtual void STDMETHODCALLTYPE BeginEvent(
3766  UINT Metadata,
3767  _In_reads_bytes_opt_(Size) const void *pData,
3768  UINT Size) = 0;
3769 
3770  virtual void STDMETHODCALLTYPE EndEvent() = 0;
3771 
3772  virtual void STDMETHODCALLTYPE ExecuteIndirect(
3773  _In_ ID3D12CommandSignature * pCommandSignature,
3774  _In_ UINT MaxCommandCount,
3775  _In_ ID3D12Resource * pArgumentBuffer,
3776  _In_ UINT64 ArgumentBufferOffset,
3777  _In_opt_ ID3D12Resource * pCountBuffer,
3778  _In_ UINT64 CountBufferOffset) = 0;
3779 };
3780 
3781 #else /* C style interface */
3782 
3785 
3786  HRESULT(STDMETHODCALLTYPE *QueryInterface)
3787  (
3789  REFIID riid,
3790  _COM_Outptr_ void **ppvObject);
3791 
3792  ULONG(STDMETHODCALLTYPE *AddRef)
3793  (
3795 
3796  ULONG(STDMETHODCALLTYPE *Release)
3797  (
3799 
3800  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
3801  (
3803  _In_ REFGUID guid,
3806 
3807  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
3808  (
3810  _In_ REFGUID guid,
3811  _In_ UINT DataSize,
3812  _In_reads_bytes_opt_(DataSize) const void *pData);
3813 
3814  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
3815  (
3817  _In_ REFGUID guid,
3818  _In_opt_ const IUnknown *pData);
3819 
3820  HRESULT(STDMETHODCALLTYPE *SetName)
3821  (
3823  _In_z_ LPCWSTR Name);
3824 
3825  HRESULT(STDMETHODCALLTYPE *GetDevice)
3826  (
3828  REFIID riid,
3829  _COM_Outptr_opt_ void **ppvDevice);
3830 
3832  (
3834 
3835  HRESULT(STDMETHODCALLTYPE *Close)
3836  (
3838 
3839  HRESULT(STDMETHODCALLTYPE *Reset)
3840  (
3842  _In_ ID3D12CommandAllocator *pAllocator,
3844 
3845  void(STDMETHODCALLTYPE *ClearState)(
3848 
3849  void(STDMETHODCALLTYPE *DrawInstanced)(
3852  _In_ UINT InstanceCount,
3853  _In_ UINT StartVertexLocation,
3854  _In_ UINT StartInstanceLocation);
3855 
3856  void(STDMETHODCALLTYPE *DrawIndexedInstanced)(
3858  _In_ UINT IndexCountPerInstance,
3859  _In_ UINT InstanceCount,
3860  _In_ UINT StartIndexLocation,
3861  _In_ INT BaseVertexLocation,
3863 
3864  void(STDMETHODCALLTYPE *Dispatch)(
3866  _In_ UINT ThreadGroupCountX,
3867  _In_ UINT ThreadGroupCountY,
3869 
3870  void(STDMETHODCALLTYPE *CopyBufferRegion)(
3872  _In_ ID3D12Resource *pDstBuffer,
3873  UINT64 DstOffset,
3874  _In_ ID3D12Resource *pSrcBuffer,
3875  UINT64 SrcOffset,
3876  UINT64 NumBytes);
3877 
3878  void(STDMETHODCALLTYPE *CopyTextureRegion)(
3881  UINT DstX,
3882  UINT DstY,
3883  UINT DstZ,
3884  _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
3885  _In_opt_ const D3D12_BOX *pSrcBox);
3886 
3887  void(STDMETHODCALLTYPE *CopyResource)(
3889  _In_ ID3D12Resource *pDstResource,
3891 
3892  void(STDMETHODCALLTYPE *CopyTiles)(
3894  _In_ ID3D12Resource *pTiledResource,
3896  _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
3897  _In_ ID3D12Resource *pBuffer,
3898  UINT64 BufferStartOffsetInBytes,
3899  D3D12_TILE_COPY_FLAGS Flags);
3900 
3901  void(STDMETHODCALLTYPE *ResolveSubresource)(
3903  _In_ ID3D12Resource *pDstResource,
3905  _In_ ID3D12Resource *pSrcResource,
3907  _In_ DXGI_FORMAT Format);
3908 
3909  void(STDMETHODCALLTYPE *IASetPrimitiveTopology)(
3912 
3913  void(STDMETHODCALLTYPE *RSSetViewports)(
3916  _In_reads_(NumViewports) const D3D12_VIEWPORT *pViewports);
3917 
3918  void(STDMETHODCALLTYPE *RSSetScissorRects)(
3921  _In_reads_(NumRects) const D3D12_RECT *pRects);
3922 
3923  void(STDMETHODCALLTYPE *OMSetBlendFactor)(
3925  _In_opt_ const FLOAT BlendFactor[4]);
3926 
3927  void(STDMETHODCALLTYPE *OMSetStencilRef)(
3930 
3931  void(STDMETHODCALLTYPE *SetPipelineState)(
3934 
3935  void(STDMETHODCALLTYPE *ResourceBarrier)(
3938  _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
3939 
3940  void(STDMETHODCALLTYPE *ExecuteBundle)(
3943 
3944  void(STDMETHODCALLTYPE *SetDescriptorHeaps)(
3947  _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
3948 
3949  void(STDMETHODCALLTYPE *SetComputeRootSignature)(
3952 
3953  void(STDMETHODCALLTYPE *SetGraphicsRootSignature)(
3955  _In_opt_ ID3D12RootSignature *pRootSignature);
3956 
3957  void(STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
3960  _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
3961 
3962  void(STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
3964  _In_ UINT RootParameterIndex,
3965  _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
3966 
3967  void(STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
3969  _In_ UINT RootParameterIndex,
3970  _In_ UINT SrcData,
3971  _In_ UINT DestOffsetIn32BitValues);
3972 
3973  void(STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
3975  _In_ UINT RootParameterIndex,
3976  _In_ UINT SrcData,
3977  _In_ UINT DestOffsetIn32BitValues);
3978 
3979  void(STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
3981  _In_ UINT RootParameterIndex,
3983  _In_reads_(Num32BitValuesToSet * sizeof(UINT)) const void *pSrcData,
3984  _In_ UINT DestOffsetIn32BitValues);
3985 
3986  void(STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
3988  _In_ UINT RootParameterIndex,
3989  _In_ UINT Num32BitValuesToSet,
3990  _In_reads_(Num32BitValuesToSet * sizeof(UINT)) const void *pSrcData,
3991  _In_ UINT DestOffsetIn32BitValues);
3992 
3993  void(STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
3995  _In_ UINT RootParameterIndex,
3997 
3998  void(STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
4000  _In_ UINT RootParameterIndex,
4001  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
4002 
4003  void(STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
4005  _In_ UINT RootParameterIndex,
4006  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
4007 
4008  void(STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
4010  _In_ UINT RootParameterIndex,
4011  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
4012 
4013  void(STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
4015  _In_ UINT RootParameterIndex,
4016  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
4017 
4018  void(STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
4020  _In_ UINT RootParameterIndex,
4021  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
4022 
4023  void(STDMETHODCALLTYPE *IASetIndexBuffer)(
4026 
4027  void(STDMETHODCALLTYPE *IASetVertexBuffers)(
4030  _In_ UINT NumViews,
4031  _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
4032 
4033  void(STDMETHODCALLTYPE *SOSetTargets)(
4035  _In_ UINT StartSlot,
4036  _In_ UINT NumViews,
4037  _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews);
4038 
4039  void(STDMETHODCALLTYPE *OMSetRenderTargets)(
4041  _In_ UINT NumRenderTargetDescriptors,
4042  _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
4044  _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
4045 
4046  void(STDMETHODCALLTYPE *ClearDepthStencilView)(
4049  _In_ D3D12_CLEAR_FLAGS ClearFlags,
4050  _In_ FLOAT Depth,
4051  _In_ UINT8 Stencil,
4052  _In_ UINT NumRects,
4053  _In_reads_(NumRects) const D3D12_RECT *pRects);
4054 
4055  void(STDMETHODCALLTYPE *ClearRenderTargetView)(
4058  _In_ const FLOAT ColorRGBA[4],
4059  _In_ UINT NumRects,
4060  _In_reads_(NumRects) const D3D12_RECT *pRects);
4061 
4062  void(STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
4065  _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
4066  _In_ ID3D12Resource *pResource,
4067  _In_ const UINT Values[4],
4068  _In_ UINT NumRects,
4069  _In_reads_(NumRects) const D3D12_RECT *pRects);
4070 
4071  void(STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
4073  _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
4074  _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
4075  _In_ ID3D12Resource *pResource,
4076  _In_ const FLOAT Values[4],
4077  _In_ UINT NumRects,
4078  _In_reads_(NumRects) const D3D12_RECT *pRects);
4079 
4080  void(STDMETHODCALLTYPE *DiscardResource)(
4083  _In_opt_ const D3D12_DISCARD_REGION *pRegion);
4084 
4085  void(STDMETHODCALLTYPE *BeginQuery)(
4087  _In_ ID3D12QueryHeap *pQueryHeap,
4089  _In_ UINT Index);
4090 
4091  void(STDMETHODCALLTYPE *EndQuery)(
4093  _In_ ID3D12QueryHeap *pQueryHeap,
4094  _In_ D3D12_QUERY_TYPE Type,
4095  _In_ UINT Index);
4096 
4097  void(STDMETHODCALLTYPE *ResolveQueryData)(
4099  _In_ ID3D12QueryHeap *pQueryHeap,
4100  _In_ D3D12_QUERY_TYPE Type,
4102  _In_ UINT NumQueries,
4103  _In_ ID3D12Resource *pDestinationBuffer,
4104  _In_ UINT64 AlignedDestinationBufferOffset);
4105 
4106  void(STDMETHODCALLTYPE *SetPredication)(
4109  _In_ UINT64 AlignedBufferOffset,
4110  _In_ D3D12_PREDICATION_OP Operation);
4111 
4112  void(STDMETHODCALLTYPE *SetMarker)(
4115  _In_reads_bytes_opt_(Size) const void *pData,
4117 
4118  void(STDMETHODCALLTYPE *BeginEvent)(
4120  UINT Metadata,
4121  _In_reads_bytes_opt_(Size) const void *pData,
4122  UINT Size);
4123 
4124  void(STDMETHODCALLTYPE *EndEvent)(
4126 
4127  void(STDMETHODCALLTYPE *ExecuteIndirect)(
4129  _In_ ID3D12CommandSignature *pCommandSignature,
4130  _In_ UINT MaxCommandCount,
4131  _In_ ID3D12Resource *pArgumentBuffer,
4132  _In_ UINT64 ArgumentBufferOffset,
4134  _In_ UINT64 CountBufferOffset);
4135 
4138 
4139 interface ID3D12GraphicsCommandList {
4141 };
4142 
4143 #ifdef COBJMACROS
4144 
4145 #define ID3D12GraphicsCommandList_QueryInterface(This, riid, ppvObject) \
4146  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
4147 
4148 #define ID3D12GraphicsCommandList_AddRef(This) \
4149  ((This)->lpVtbl->AddRef(This))
4150 
4151 #define ID3D12GraphicsCommandList_Release(This) \
4152  ((This)->lpVtbl->Release(This))
4153 
4154 #define ID3D12GraphicsCommandList_GetPrivateData(This, guid, pDataSize, pData) \
4155  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
4156 
4157 #define ID3D12GraphicsCommandList_SetPrivateData(This, guid, DataSize, pData) \
4158  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
4159 
4160 #define ID3D12GraphicsCommandList_SetPrivateDataInterface(This, guid, pData) \
4161  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
4162 
4163 #define ID3D12GraphicsCommandList_SetName(This, Name) \
4164  ((This)->lpVtbl->SetName(This, Name))
4165 
4166 #define ID3D12GraphicsCommandList_GetDevice(This, riid, ppvDevice) \
4167  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
4168 
4169 #define ID3D12GraphicsCommandList_GetType(This) \
4170  ((This)->lpVtbl->GetType(This))
4171 
4172 #define ID3D12GraphicsCommandList_Close(This) \
4173  ((This)->lpVtbl->Close(This))
4174 
4175 #define ID3D12GraphicsCommandList_Reset(This, pAllocator, pInitialState) \
4176  ((This)->lpVtbl->Reset(This, pAllocator, pInitialState))
4177 
4178 #define ID3D12GraphicsCommandList_ClearState(This, pPipelineState) \
4179  ((This)->lpVtbl->ClearState(This, pPipelineState))
4180 
4181 #define ID3D12GraphicsCommandList_DrawInstanced(This, VertexCountPerInstance, InstanceCount, StartVertexLocation, StartInstanceLocation) \
4182  ((This)->lpVtbl->DrawInstanced(This, VertexCountPerInstance, InstanceCount, StartVertexLocation, StartInstanceLocation))
4183 
4184 #define ID3D12GraphicsCommandList_DrawIndexedInstanced(This, IndexCountPerInstance, InstanceCount, StartIndexLocation, BaseVertexLocation, StartInstanceLocation) \
4185  ((This)->lpVtbl->DrawIndexedInstanced(This, IndexCountPerInstance, InstanceCount, StartIndexLocation, BaseVertexLocation, StartInstanceLocation))
4186 
4187 #define ID3D12GraphicsCommandList_Dispatch(This, ThreadGroupCountX, ThreadGroupCountY, ThreadGroupCountZ) \
4188  ((This)->lpVtbl->Dispatch(This, ThreadGroupCountX, ThreadGroupCountY, ThreadGroupCountZ))
4189 
4190 #define ID3D12GraphicsCommandList_CopyBufferRegion(This, pDstBuffer, DstOffset, pSrcBuffer, SrcOffset, NumBytes) \
4191  ((This)->lpVtbl->CopyBufferRegion(This, pDstBuffer, DstOffset, pSrcBuffer, SrcOffset, NumBytes))
4192 
4193 #define ID3D12GraphicsCommandList_CopyTextureRegion(This, pDst, DstX, DstY, DstZ, pSrc, pSrcBox) \
4194  ((This)->lpVtbl->CopyTextureRegion(This, pDst, DstX, DstY, DstZ, pSrc, pSrcBox))
4195 
4196 #define ID3D12GraphicsCommandList_CopyResource(This, pDstResource, pSrcResource) \
4197  ((This)->lpVtbl->CopyResource(This, pDstResource, pSrcResource))
4198 
4199 #define ID3D12GraphicsCommandList_CopyTiles(This, pTiledResource, pTileRegionStartCoordinate, pTileRegionSize, pBuffer, BufferStartOffsetInBytes, Flags) \
4200  ((This)->lpVtbl->CopyTiles(This, pTiledResource, pTileRegionStartCoordinate, pTileRegionSize, pBuffer, BufferStartOffsetInBytes, Flags))
4201 
4202 #define ID3D12GraphicsCommandList_ResolveSubresource(This, pDstResource, DstSubresource, pSrcResource, SrcSubresource, Format) \
4203  ((This)->lpVtbl->ResolveSubresource(This, pDstResource, DstSubresource, pSrcResource, SrcSubresource, Format))
4204 
4205 #define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This, PrimitiveTopology) \
4206  ((This)->lpVtbl->IASetPrimitiveTopology(This, PrimitiveTopology))
4207 
4208 #define ID3D12GraphicsCommandList_RSSetViewports(This, NumViewports, pViewports) \
4209  ((This)->lpVtbl->RSSetViewports(This, NumViewports, pViewports))
4210 
4211 #define ID3D12GraphicsCommandList_RSSetScissorRects(This, NumRects, pRects) \
4212  ((This)->lpVtbl->RSSetScissorRects(This, NumRects, pRects))
4213 
4214 #define ID3D12GraphicsCommandList_OMSetBlendFactor(This, BlendFactor) \
4215  ((This)->lpVtbl->OMSetBlendFactor(This, BlendFactor))
4216 
4217 #define ID3D12GraphicsCommandList_OMSetStencilRef(This, StencilRef) \
4218  ((This)->lpVtbl->OMSetStencilRef(This, StencilRef))
4219 
4220 #define ID3D12GraphicsCommandList_SetPipelineState(This, pPipelineState) \
4221  ((This)->lpVtbl->SetPipelineState(This, pPipelineState))
4222 
4223 #define ID3D12GraphicsCommandList_ResourceBarrier(This, NumBarriers, pBarriers) \
4224  ((This)->lpVtbl->ResourceBarrier(This, NumBarriers, pBarriers))
4225 
4226 #define ID3D12GraphicsCommandList_ExecuteBundle(This, pCommandList) \
4227  ((This)->lpVtbl->ExecuteBundle(This, pCommandList))
4228 
4229 #define ID3D12GraphicsCommandList_SetDescriptorHeaps(This, NumDescriptorHeaps, ppDescriptorHeaps) \
4230  ((This)->lpVtbl->SetDescriptorHeaps(This, NumDescriptorHeaps, ppDescriptorHeaps))
4231 
4232 #define ID3D12GraphicsCommandList_SetComputeRootSignature(This, pRootSignature) \
4233  ((This)->lpVtbl->SetComputeRootSignature(This, pRootSignature))
4234 
4235 #define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This, pRootSignature) \
4236  ((This)->lpVtbl->SetGraphicsRootSignature(This, pRootSignature))
4237 
4238 #define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This, RootParameterIndex, BaseDescriptor) \
4239  ((This)->lpVtbl->SetComputeRootDescriptorTable(This, RootParameterIndex, BaseDescriptor))
4240 
4241 #define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This, RootParameterIndex, BaseDescriptor) \
4242  ((This)->lpVtbl->SetGraphicsRootDescriptorTable(This, RootParameterIndex, BaseDescriptor))
4243 
4244 #define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This, RootParameterIndex, SrcData, DestOffsetIn32BitValues) \
4245  ((This)->lpVtbl->SetComputeRoot32BitConstant(This, RootParameterIndex, SrcData, DestOffsetIn32BitValues))
4246 
4247 #define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This, RootParameterIndex, SrcData, DestOffsetIn32BitValues) \
4248  ((This)->lpVtbl->SetGraphicsRoot32BitConstant(This, RootParameterIndex, SrcData, DestOffsetIn32BitValues))
4249 
4250 #define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This, RootParameterIndex, Num32BitValuesToSet, pSrcData, DestOffsetIn32BitValues) \
4251  ((This)->lpVtbl->SetComputeRoot32BitConstants(This, RootParameterIndex, Num32BitValuesToSet, pSrcData, DestOffsetIn32BitValues))
4252 
4253 #define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This, RootParameterIndex, Num32BitValuesToSet, pSrcData, DestOffsetIn32BitValues) \
4254  ((This)->lpVtbl->SetGraphicsRoot32BitConstants(This, RootParameterIndex, Num32BitValuesToSet, pSrcData, DestOffsetIn32BitValues))
4255 
4256 #define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This, RootParameterIndex, BufferLocation) \
4257  ((This)->lpVtbl->SetComputeRootConstantBufferView(This, RootParameterIndex, BufferLocation))
4258 
4259 #define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This, RootParameterIndex, BufferLocation) \
4260  ((This)->lpVtbl->SetGraphicsRootConstantBufferView(This, RootParameterIndex, BufferLocation))
4261 
4262 #define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This, RootParameterIndex, BufferLocation) \
4263  ((This)->lpVtbl->SetComputeRootShaderResourceView(This, RootParameterIndex, BufferLocation))
4264 
4265 #define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This, RootParameterIndex, BufferLocation) \
4266  ((This)->lpVtbl->SetGraphicsRootShaderResourceView(This, RootParameterIndex, BufferLocation))
4267 
4268 #define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This, RootParameterIndex, BufferLocation) \
4269  ((This)->lpVtbl->SetComputeRootUnorderedAccessView(This, RootParameterIndex, BufferLocation))
4270 
4271 #define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This, RootParameterIndex, BufferLocation) \
4272  ((This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This, RootParameterIndex, BufferLocation))
4273 
4274 #define ID3D12GraphicsCommandList_IASetIndexBuffer(This, pView) \
4275  ((This)->lpVtbl->IASetIndexBuffer(This, pView))
4276 
4277 #define ID3D12GraphicsCommandList_IASetVertexBuffers(This, StartSlot, NumViews, pViews) \
4278  ((This)->lpVtbl->IASetVertexBuffers(This, StartSlot, NumViews, pViews))
4279 
4280 #define ID3D12GraphicsCommandList_SOSetTargets(This, StartSlot, NumViews, pViews) \
4281  ((This)->lpVtbl->SOSetTargets(This, StartSlot, NumViews, pViews))
4282 
4283 #define ID3D12GraphicsCommandList_OMSetRenderTargets(This, NumRenderTargetDescriptors, pRenderTargetDescriptors, RTsSingleHandleToDescriptorRange, pDepthStencilDescriptor) \
4284  ((This)->lpVtbl->OMSetRenderTargets(This, NumRenderTargetDescriptors, pRenderTargetDescriptors, RTsSingleHandleToDescriptorRange, pDepthStencilDescriptor))
4285 
4286 #define ID3D12GraphicsCommandList_ClearDepthStencilView(This, DepthStencilView, ClearFlags, Depth, Stencil, NumRects, pRects) \
4287  ((This)->lpVtbl->ClearDepthStencilView(This, DepthStencilView, ClearFlags, Depth, Stencil, NumRects, pRects))
4288 
4289 #define ID3D12GraphicsCommandList_ClearRenderTargetView(This, RenderTargetView, ColorRGBA, NumRects, pRects) \
4290  ((This)->lpVtbl->ClearRenderTargetView(This, RenderTargetView, ColorRGBA, NumRects, pRects))
4291 
4292 #define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This, ViewGPUHandleInCurrentHeap, ViewCPUHandle, pResource, Values, NumRects, pRects) \
4293  ((This)->lpVtbl->ClearUnorderedAccessViewUint(This, ViewGPUHandleInCurrentHeap, ViewCPUHandle, pResource, Values, NumRects, pRects))
4294 
4295 #define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This, ViewGPUHandleInCurrentHeap, ViewCPUHandle, pResource, Values, NumRects, pRects) \
4296  ((This)->lpVtbl->ClearUnorderedAccessViewFloat(This, ViewGPUHandleInCurrentHeap, ViewCPUHandle, pResource, Values, NumRects, pRects))
4297 
4298 #define ID3D12GraphicsCommandList_DiscardResource(This, pResource, pRegion) \
4299  ((This)->lpVtbl->DiscardResource(This, pResource, pRegion))
4300 
4301 #define ID3D12GraphicsCommandList_BeginQuery(This, pQueryHeap, Type, Index) \
4302  ((This)->lpVtbl->BeginQuery(This, pQueryHeap, Type, Index))
4303 
4304 #define ID3D12GraphicsCommandList_EndQuery(This, pQueryHeap, Type, Index) \
4305  ((This)->lpVtbl->EndQuery(This, pQueryHeap, Type, Index))
4306 
4307 #define ID3D12GraphicsCommandList_ResolveQueryData(This, pQueryHeap, Type, StartIndex, NumQueries, pDestinationBuffer, AlignedDestinationBufferOffset) \
4308  ((This)->lpVtbl->ResolveQueryData(This, pQueryHeap, Type, StartIndex, NumQueries, pDestinationBuffer, AlignedDestinationBufferOffset))
4309 
4310 #define ID3D12GraphicsCommandList_SetPredication(This, pBuffer, AlignedBufferOffset, Operation) \
4311  ((This)->lpVtbl->SetPredication(This, pBuffer, AlignedBufferOffset, Operation))
4312 
4313 #define ID3D12GraphicsCommandList_SetMarker(This, Metadata, pData, Size) \
4314  ((This)->lpVtbl->SetMarker(This, Metadata, pData, Size))
4315 
4316 #define ID3D12GraphicsCommandList_BeginEvent(This, Metadata, pData, Size) \
4317  ((This)->lpVtbl->BeginEvent(This, Metadata, pData, Size))
4318 
4319 #define ID3D12GraphicsCommandList_EndEvent(This) \
4320  ((This)->lpVtbl->EndEvent(This))
4321 
4322 #define ID3D12GraphicsCommandList_ExecuteIndirect(This, pCommandSignature, MaxCommandCount, pArgumentBuffer, ArgumentBufferOffset, pCountBuffer, CountBufferOffset) \
4323  ((This)->lpVtbl->ExecuteIndirect(This, pCommandSignature, MaxCommandCount, pArgumentBuffer, ArgumentBufferOffset, pCountBuffer, CountBufferOffset))
4324 
4325 #endif /* COBJMACROS */
4326 
4327 #endif /* C style interface */
4328 
4329 #endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */
4330 
4331 #ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__
4332 #define __ID3D12CommandQueue_INTERFACE_DEFINED__
4333 
4334 /* interface ID3D12CommandQueue */
4335 /* [unique][local][object][uuid] */
4336 
4338 
4339 #if defined(__cplusplus) && !defined(CINTERFACE)
4340 
4341 MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed")
4343 public:
4344  virtual void STDMETHODCALLTYPE UpdateTileMappings(
4346  UINT NumResourceRegions,
4347  _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
4348  _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
4349  _In_opt_ ID3D12Heap *pHeap,
4350  UINT NumRanges,
4351  _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
4352  _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
4353  _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
4355 
4356  virtual void STDMETHODCALLTYPE CopyTileMappings(
4358  _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
4360  _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
4361  _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
4363 
4364  virtual void STDMETHODCALLTYPE ExecuteCommandLists(
4365  _In_ UINT NumCommandLists,
4366  _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists) = 0;
4367 
4368  virtual void STDMETHODCALLTYPE SetMarker(
4369  UINT Metadata,
4370  _In_reads_bytes_opt_(Size) const void *pData,
4371  UINT Size) = 0;
4372 
4373  virtual void STDMETHODCALLTYPE BeginEvent(
4374  UINT Metadata,
4375  _In_reads_bytes_opt_(Size) const void *pData,
4376  UINT Size) = 0;
4377 
4378  virtual void STDMETHODCALLTYPE EndEvent() = 0;
4379 
4380  virtual HRESULT STDMETHODCALLTYPE Signal(
4381  ID3D12Fence * pFence,
4382  UINT64 Value) = 0;
4383 
4384  virtual HRESULT STDMETHODCALLTYPE Wait(
4385  ID3D12Fence * pFence,
4386  UINT64 Value) = 0;
4387 
4388  virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency(
4389  _Out_ UINT64 * pFrequency) = 0;
4390 
4391  virtual HRESULT STDMETHODCALLTYPE GetClockCalibration(
4392  _Out_ UINT64 * pGpuTimestamp,
4393  _Out_ UINT64 * pCpuTimestamp) = 0;
4394 
4395  virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc() = 0;
4396 };
4397 
4398 #else /* C style interface */
4399 
4400 typedef struct ID3D12CommandQueueVtbl {
4402 
4403  HRESULT(STDMETHODCALLTYPE *QueryInterface)
4404  (
4406  REFIID riid,
4407  _COM_Outptr_ void **ppvObject);
4408 
4409  ULONG(STDMETHODCALLTYPE *AddRef)
4410  (
4412 
4413  ULONG(STDMETHODCALLTYPE *Release)
4414  (
4416 
4417  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
4418  (
4420  _In_ REFGUID guid,
4423 
4424  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
4425  (
4427  _In_ REFGUID guid,
4428  _In_ UINT DataSize,
4429  _In_reads_bytes_opt_(DataSize) const void *pData);
4430 
4431  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
4432  (
4434  _In_ REFGUID guid,
4435  _In_opt_ const IUnknown *pData);
4436 
4437  HRESULT(STDMETHODCALLTYPE *SetName)
4438  (
4440  _In_z_ LPCWSTR Name);
4441 
4442  HRESULT(STDMETHODCALLTYPE *GetDevice)
4443  (
4445  REFIID riid,
4446  _COM_Outptr_opt_ void **ppvDevice);
4447 
4448  void(STDMETHODCALLTYPE *UpdateTileMappings)(
4451  UINT NumResourceRegions,
4452  _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
4453  _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
4455  UINT NumRanges,
4456  _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
4457  _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
4458  _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
4460 
4461  void(STDMETHODCALLTYPE *CopyTileMappings)(
4463  _In_ ID3D12Resource *pDstResource,
4464  _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
4466  _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
4467  _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
4468  D3D12_TILE_MAPPING_FLAGS Flags);
4469 
4470  void(STDMETHODCALLTYPE *ExecuteCommandLists)(
4473  _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists);
4474 
4475  void(STDMETHODCALLTYPE *SetMarker)(
4478  _In_reads_bytes_opt_(Size) const void *pData,
4480 
4481  void(STDMETHODCALLTYPE *BeginEvent)(
4483  UINT Metadata,
4484  _In_reads_bytes_opt_(Size) const void *pData,
4485  UINT Size);
4486 
4487  void(STDMETHODCALLTYPE *EndEvent)(
4489 
4490  HRESULT(STDMETHODCALLTYPE *Signal)
4491  (
4493  ID3D12Fence *pFence,
4494  UINT64 Value);
4495 
4496  HRESULT(STDMETHODCALLTYPE *Wait)
4497  (
4499  ID3D12Fence *pFence,
4500  UINT64 Value);
4501 
4502  HRESULT(STDMETHODCALLTYPE *GetTimestampFrequency)
4503  (
4506 
4507  HRESULT(STDMETHODCALLTYPE *GetClockCalibration)
4508  (
4511  _Out_ UINT64 *pCpuTimestamp);
4512 
4514  (
4516 
4519 
4520 interface ID3D12CommandQueue {
4521  CONST_VTBL struct ID3D12CommandQueueVtbl *lpVtbl;
4522 };
4523 
4524 #ifdef COBJMACROS
4525 
4526 #define ID3D12CommandQueue_QueryInterface(This, riid, ppvObject) \
4527  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
4528 
4529 #define ID3D12CommandQueue_AddRef(This) \
4530  ((This)->lpVtbl->AddRef(This))
4531 
4532 #define ID3D12CommandQueue_Release(This) \
4533  ((This)->lpVtbl->Release(This))
4534 
4535 #define ID3D12CommandQueue_GetPrivateData(This, guid, pDataSize, pData) \
4536  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
4537 
4538 #define ID3D12CommandQueue_SetPrivateData(This, guid, DataSize, pData) \
4539  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
4540 
4541 #define ID3D12CommandQueue_SetPrivateDataInterface(This, guid, pData) \
4542  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
4543 
4544 #define ID3D12CommandQueue_SetName(This, Name) \
4545  ((This)->lpVtbl->SetName(This, Name))
4546 
4547 #define ID3D12CommandQueue_GetDevice(This, riid, ppvDevice) \
4548  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
4549 
4550 #define ID3D12CommandQueue_UpdateTileMappings(This, pResource, NumResourceRegions, pResourceRegionStartCoordinates, pResourceRegionSizes, pHeap, NumRanges, pRangeFlags, pHeapRangeStartOffsets, pRangeTileCounts, Flags) \
4551  ((This)->lpVtbl->UpdateTileMappings(This, pResource, NumResourceRegions, pResourceRegionStartCoordinates, pResourceRegionSizes, pHeap, NumRanges, pRangeFlags, pHeapRangeStartOffsets, pRangeTileCounts, Flags))
4552 
4553 #define ID3D12CommandQueue_CopyTileMappings(This, pDstResource, pDstRegionStartCoordinate, pSrcResource, pSrcRegionStartCoordinate, pRegionSize, Flags) \
4554  ((This)->lpVtbl->CopyTileMappings(This, pDstResource, pDstRegionStartCoordinate, pSrcResource, pSrcRegionStartCoordinate, pRegionSize, Flags))
4555 
4556 #define ID3D12CommandQueue_ExecuteCommandLists(This, NumCommandLists, ppCommandLists) \
4557  ((This)->lpVtbl->ExecuteCommandLists(This, NumCommandLists, ppCommandLists))
4558 
4559 #define ID3D12CommandQueue_SetMarker(This, Metadata, pData, Size) \
4560  ((This)->lpVtbl->SetMarker(This, Metadata, pData, Size))
4561 
4562 #define ID3D12CommandQueue_BeginEvent(This, Metadata, pData, Size) \
4563  ((This)->lpVtbl->BeginEvent(This, Metadata, pData, Size))
4564 
4565 #define ID3D12CommandQueue_EndEvent(This) \
4566  ((This)->lpVtbl->EndEvent(This))
4567 
4568 #define ID3D12CommandQueue_Signal(This, pFence, Value) \
4569  ((This)->lpVtbl->Signal(This, pFence, Value))
4570 
4571 #define ID3D12CommandQueue_Wait(This, pFence, Value) \
4572  ((This)->lpVtbl->Wait(This, pFence, Value))
4573 
4574 #define ID3D12CommandQueue_GetTimestampFrequency(This, pFrequency) \
4575  ((This)->lpVtbl->GetTimestampFrequency(This, pFrequency))
4576 
4577 #define ID3D12CommandQueue_GetClockCalibration(This, pGpuTimestamp, pCpuTimestamp) \
4578  ((This)->lpVtbl->GetClockCalibration(This, pGpuTimestamp, pCpuTimestamp))
4579 
4580 #define ID3D12CommandQueue_GetDesc(This) \
4581  ((This)->lpVtbl->GetDesc(This))
4582 
4583 #endif /* COBJMACROS */
4584 
4585 #endif /* C style interface */
4586 
4587 #endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */
4588 
4589 #ifdef __midl
4590 #ifndef LUID_DEFINED
4591 #define LUID_DEFINED 1
4592 typedef struct __LUID {
4595 } LUID;
4596 
4597 typedef struct __LUID *PLUID;
4598 
4599 #endif
4600 #endif
4601 
4602 #define D3D12_REQ_SUBRESOURCES (30720)
4603 
4604 #ifndef __ID3D12Device_INTERFACE_DEFINED__
4605 #define __ID3D12Device_INTERFACE_DEFINED__
4606 
4607 /* interface ID3D12Device */
4608 /* [unique][local][object][uuid] */
4609 
4611 
4612 #if defined(__cplusplus) && !defined(CINTERFACE)
4613 
4614 MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7")
4615 ID3D12Device : public ID3D12Object {
4616 public:
4617  virtual UINT STDMETHODCALLTYPE GetNodeCount() = 0;
4618 
4619  virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue(
4620  _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
4621  REFIID riid,
4622  _COM_Outptr_ void **ppCommandQueue) = 0;
4623 
4624  virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator(
4626  REFIID riid,
4627  _COM_Outptr_ void **ppCommandAllocator) = 0;
4628 
4629  virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState(
4631  REFIID riid,
4632  _COM_Outptr_ void **ppPipelineState) = 0;
4633 
4634  virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState(
4636  REFIID riid,
4637  _COM_Outptr_ void **ppPipelineState) = 0;
4638 
4639  virtual HRESULT STDMETHODCALLTYPE CreateCommandList(
4640  _In_ UINT nodeMask,
4642  _In_ ID3D12CommandAllocator * pCommandAllocator,
4643  _In_opt_ ID3D12PipelineState * pInitialState,
4644  REFIID riid,
4645  _COM_Outptr_ void **ppCommandList) = 0;
4646 
4647  virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
4648  D3D12_FEATURE Feature,
4649  _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
4650  UINT FeatureSupportDataSize) = 0;
4651 
4652  virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap(
4653  _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
4654  REFIID riid,
4655  _COM_Outptr_ void **ppvHeap) = 0;
4656 
4657  virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize(
4658  _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) = 0;
4659 
4660  virtual HRESULT STDMETHODCALLTYPE CreateRootSignature(
4661  _In_ UINT nodeMask,
4662  _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
4663  _In_ SIZE_T blobLengthInBytes,
4664  REFIID riid,
4665  _COM_Outptr_ void **ppvRootSignature) = 0;
4666 
4667  virtual void STDMETHODCALLTYPE CreateConstantBufferView(
4669  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
4670 
4671  virtual void STDMETHODCALLTYPE CreateShaderResourceView(
4672  _In_opt_ ID3D12Resource * pResource,
4674  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
4675 
4676  virtual void STDMETHODCALLTYPE CreateUnorderedAccessView(
4677  _In_opt_ ID3D12Resource * pResource,
4678  _In_opt_ ID3D12Resource * pCounterResource,
4680  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
4681 
4682  virtual void STDMETHODCALLTYPE CreateRenderTargetView(
4683  _In_opt_ ID3D12Resource * pResource,
4685  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
4686 
4687  virtual void STDMETHODCALLTYPE CreateDepthStencilView(
4688  _In_opt_ ID3D12Resource * pResource,
4690  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
4691 
4692  virtual void STDMETHODCALLTYPE CreateSampler(
4693  _In_ const D3D12_SAMPLER_DESC *pDesc,
4694  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
4695 
4696  virtual void STDMETHODCALLTYPE CopyDescriptors(
4697  _In_ UINT NumDestDescriptorRanges,
4698  _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
4699  _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
4700  _In_ UINT NumSrcDescriptorRanges,
4701  _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
4702  _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
4703  _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0;
4704 
4705  virtual void STDMETHODCALLTYPE CopyDescriptorsSimple(
4706  _In_ UINT NumDescriptors,
4707  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
4708  _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
4709  _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0;
4710 
4711  virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
4712  _In_ UINT visibleMask,
4713  _In_ UINT numResourceDescs,
4714  _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0;
4715 
4716  virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
4717  _In_ UINT nodeMask,
4718  D3D12_HEAP_TYPE heapType) = 0;
4719 
4720  virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource(
4722  D3D12_HEAP_FLAGS HeapFlags,
4723  _In_ const D3D12_RESOURCE_DESC *pDesc,
4724  D3D12_RESOURCE_STATES InitialResourceState,
4725  _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
4726  REFIID riidResource,
4727  _COM_Outptr_opt_ void **ppvResource) = 0;
4728 
4729  virtual HRESULT STDMETHODCALLTYPE CreateHeap(
4730  _In_ const D3D12_HEAP_DESC *pDesc,
4731  REFIID riid,
4732  _COM_Outptr_opt_ void **ppvHeap) = 0;
4733 
4734  virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource(
4735  _In_ ID3D12Heap * pHeap,
4736  UINT64 HeapOffset,
4737  _In_ const D3D12_RESOURCE_DESC *pDesc,
4738  D3D12_RESOURCE_STATES InitialState,
4739  _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
4740  REFIID riid,
4741  _COM_Outptr_opt_ void **ppvResource) = 0;
4742 
4743  virtual HRESULT STDMETHODCALLTYPE CreateReservedResource(
4744  _In_ const D3D12_RESOURCE_DESC *pDesc,
4745  D3D12_RESOURCE_STATES InitialState,
4746  _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
4747  REFIID riid,
4748  _COM_Outptr_opt_ void **ppvResource) = 0;
4749 
4750  virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
4751  _In_ ID3D12DeviceChild * pObject,
4752  _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
4753  DWORD Access,
4755  _Out_ HANDLE *pHandle) = 0;
4756 
4757  virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle(
4758  _In_ HANDLE NTHandle,
4759  REFIID riid,
4760  _COM_Outptr_opt_ void **ppvObj) = 0;
4761 
4762  virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName(
4763  _In_ LPCWSTR Name,
4764  DWORD Access,
4765  /* [annotation][out] */
4766  _Out_ HANDLE * pNTHandle) = 0;
4767 
4768  virtual HRESULT STDMETHODCALLTYPE MakeResident(
4769  UINT NumObjects,
4770  _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0;
4771 
4772  virtual HRESULT STDMETHODCALLTYPE Evict(
4773  UINT NumObjects,
4774  _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0;
4775 
4776  virtual HRESULT STDMETHODCALLTYPE CreateFence(
4777  UINT64 InitialValue,
4778  D3D12_FENCE_FLAGS Flags,
4779  REFIID riid,
4780  _COM_Outptr_ void **ppFence) = 0;
4781 
4782  virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason() = 0;
4783 
4784  virtual void STDMETHODCALLTYPE GetCopyableFootprints(
4785  _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
4786  _In_range_(0, D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
4787  _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources,
4788  UINT64 BaseOffset,
4789  _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
4790  _Out_writes_opt_(NumSubresources) UINT *pNumRows,
4791  _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
4792  _Out_opt_ UINT64 *pTotalBytes) = 0;
4793 
4794  virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap(
4795  _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
4796  REFIID riid,
4797  _COM_Outptr_opt_ void **ppvHeap) = 0;
4798 
4799  virtual HRESULT STDMETHODCALLTYPE SetStablePowerState(
4800  BOOL Enable) = 0;
4801 
4802  virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature(
4803  _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
4804  _In_opt_ ID3D12RootSignature *pRootSignature,
4805  REFIID riid,
4806  _COM_Outptr_opt_ void **ppvCommandSignature) = 0;
4807 
4808  virtual void STDMETHODCALLTYPE GetResourceTiling(
4809  _In_ ID3D12Resource * pTiledResource,
4810  _Out_opt_ UINT * pNumTilesForEntireResource,
4811  _Out_opt_ D3D12_PACKED_MIP_INFO * pPackedMipDesc,
4812  _Out_opt_ D3D12_TILE_SHAPE * pStandardTileShapeForNonPackedMips,
4813  _Inout_opt_ UINT * pNumSubresourceTilings,
4814  _In_ UINT FirstSubresourceTilingToGet,
4815  _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING * pSubresourceTilingsForNonPackedMips) = 0;
4816 
4817  virtual LUID STDMETHODCALLTYPE GetAdapterLuid() = 0;
4818 };
4819 
4820 #else /* C style interface */
4821 
4822 typedef struct ID3D12DeviceVtbl {
4824 
4825  HRESULT(STDMETHODCALLTYPE *QueryInterface)
4826  (
4827  ID3D12Device *This,
4828  REFIID riid,
4829  _COM_Outptr_ void **ppvObject);
4830 
4831  ULONG(STDMETHODCALLTYPE *AddRef)
4832  (
4834 
4835  ULONG(STDMETHODCALLTYPE *Release)
4836  (
4837  ID3D12Device *This);
4838 
4839  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
4840  (
4842  _In_ REFGUID guid,
4845 
4846  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
4847  (
4849  _In_ REFGUID guid,
4850  _In_ UINT DataSize,
4851  _In_reads_bytes_opt_(DataSize) const void *pData);
4852 
4853  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
4854  (
4856  _In_ REFGUID guid,
4857  _In_opt_ const IUnknown *pData);
4858 
4859  HRESULT(STDMETHODCALLTYPE *SetName)
4860  (
4862  _In_z_ LPCWSTR Name);
4863 
4864  UINT(STDMETHODCALLTYPE *GetNodeCount)
4865  (
4866  ID3D12Device *This);
4867 
4868  HRESULT(STDMETHODCALLTYPE *CreateCommandQueue)
4869  (
4871  _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
4872  REFIID riid,
4873  _COM_Outptr_ void **ppCommandQueue);
4874 
4875  HRESULT(STDMETHODCALLTYPE *CreateCommandAllocator)
4876  (
4879  REFIID riid,
4880  _COM_Outptr_ void **ppCommandAllocator);
4881 
4882  HRESULT(STDMETHODCALLTYPE *CreateGraphicsPipelineState)
4883  (
4886  REFIID riid,
4887  _COM_Outptr_ void **ppPipelineState);
4888 
4889  HRESULT(STDMETHODCALLTYPE *CreateComputePipelineState)
4890  (
4893  REFIID riid,
4894  _COM_Outptr_ void **ppPipelineState);
4895 
4896  HRESULT(STDMETHODCALLTYPE *CreateCommandList)
4897  (
4899  _In_ UINT nodeMask,
4901  _In_ ID3D12CommandAllocator *pCommandAllocator,
4902  _In_opt_ ID3D12PipelineState *pInitialState,
4903  REFIID riid,
4904  _COM_Outptr_ void **ppCommandList);
4905 
4906  HRESULT(STDMETHODCALLTYPE *CheckFeatureSupport)
4907  (
4910  _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
4912 
4913  HRESULT(STDMETHODCALLTYPE *CreateDescriptorHeap)
4914  (
4916  _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
4917  REFIID riid,
4918  _COM_Outptr_ void **ppvHeap);
4919 
4920  UINT(STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)
4921  (
4924 
4925  HRESULT(STDMETHODCALLTYPE *CreateRootSignature)
4926  (
4927  ID3D12Device *This,
4928  _In_ UINT nodeMask,
4929  _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
4930  _In_ SIZE_T blobLengthInBytes,
4931  REFIID riid,
4932  _COM_Outptr_ void **ppvRootSignature);
4933 
4934  void(STDMETHODCALLTYPE *CreateConstantBufferView)(
4935  ID3D12Device *This,
4937  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
4938 
4939  void(STDMETHODCALLTYPE *CreateShaderResourceView)(
4940  ID3D12Device *This,
4943  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
4944 
4945  void(STDMETHODCALLTYPE *CreateUnorderedAccessView)(
4946  ID3D12Device *This,
4948  _In_opt_ ID3D12Resource *pCounterResource,
4950  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
4951 
4952  void(STDMETHODCALLTYPE *CreateRenderTargetView)(
4953  ID3D12Device *This,
4956  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
4957 
4958  void(STDMETHODCALLTYPE *CreateDepthStencilView)(
4959  ID3D12Device *This,
4962  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
4963 
4964  void(STDMETHODCALLTYPE *CreateSampler)(
4965  ID3D12Device *This,
4967  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
4968 
4969  void(STDMETHODCALLTYPE *CopyDescriptors)(
4970  ID3D12Device *This,
4972  _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
4973  _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
4975  _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
4976  _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
4978 
4979  void(STDMETHODCALLTYPE *CopyDescriptorsSimple)(
4980  ID3D12Device *This,
4981  _In_ UINT NumDescriptors,
4982  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
4984  _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
4985 
4986  D3D12_RESOURCE_ALLOCATION_INFO(STDMETHODCALLTYPE *GetResourceAllocationInfo)
4987  (
4990  _In_ UINT numResourceDescs,
4991  _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
4992 
4993  D3D12_HEAP_PROPERTIES(STDMETHODCALLTYPE *GetCustomHeapProperties)
4994  (
4996  _In_ UINT nodeMask,
4998 
4999  HRESULT(STDMETHODCALLTYPE *CreateCommittedResource)
5000  (
5003  D3D12_HEAP_FLAGS HeapFlags,
5004  _In_ const D3D12_RESOURCE_DESC *pDesc,
5005  D3D12_RESOURCE_STATES InitialResourceState,
5006  _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
5008  _COM_Outptr_opt_ void **ppvResource);
5009 
5010  HRESULT(STDMETHODCALLTYPE *CreateHeap)
5011  (
5013  _In_ const D3D12_HEAP_DESC *pDesc,
5014  REFIID riid,
5015  _COM_Outptr_opt_ void **ppvHeap);
5016 
5017  HRESULT(STDMETHODCALLTYPE *CreatePlacedResource)
5018  (
5020  _In_ ID3D12Heap *pHeap,
5021  UINT64 HeapOffset,
5022  _In_ const D3D12_RESOURCE_DESC *pDesc,
5023  D3D12_RESOURCE_STATES InitialState,
5024  _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
5025  REFIID riid,
5026  _COM_Outptr_opt_ void **ppvResource);
5027 
5028  HRESULT(STDMETHODCALLTYPE *CreateReservedResource)
5029  (
5031  _In_ const D3D12_RESOURCE_DESC *pDesc,
5032  D3D12_RESOURCE_STATES InitialState,
5033  _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
5034  REFIID riid,
5035  _COM_Outptr_opt_ void **ppvResource);
5036 
5037  HRESULT(STDMETHODCALLTYPE *CreateSharedHandle)
5038  (
5041  _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
5042  DWORD Access,
5044  _Out_ HANDLE *pHandle);
5045 
5046  HRESULT(STDMETHODCALLTYPE *OpenSharedHandle)
5047  (
5049  _In_ HANDLE NTHandle,
5050  REFIID riid,
5051  _COM_Outptr_opt_ void **ppvObj);
5052 
5053  HRESULT(STDMETHODCALLTYPE *OpenSharedHandleByName)
5054  (
5056  _In_ LPCWSTR Name,
5057  DWORD Access,
5058  /* [annotation][out] */
5060 
5061  HRESULT(STDMETHODCALLTYPE *MakeResident)
5062  (
5064  UINT NumObjects,
5065  _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
5066 
5067  HRESULT(STDMETHODCALLTYPE *Evict)
5068  (
5069  ID3D12Device *This,
5070  UINT NumObjects,
5071  _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
5072 
5073  HRESULT(STDMETHODCALLTYPE *CreateFence)
5074  (
5076  UINT64 InitialValue,
5077  D3D12_FENCE_FLAGS Flags,
5078  REFIID riid,
5079  _COM_Outptr_ void **ppFence);
5080 
5081  HRESULT(STDMETHODCALLTYPE *GetDeviceRemovedReason)
5082  (
5083  ID3D12Device *This);
5084 
5085  void(STDMETHODCALLTYPE *GetCopyableFootprints)(
5086  ID3D12Device *This,
5088  _In_range_(0, D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
5089  _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources,
5091  _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
5092  _Out_writes_opt_(NumSubresources) UINT *pNumRows,
5093  _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
5095 
5096  HRESULT(STDMETHODCALLTYPE *CreateQueryHeap)
5097  (
5099  _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
5100  REFIID riid,
5101  _COM_Outptr_opt_ void **ppvHeap);
5102 
5103  HRESULT(STDMETHODCALLTYPE *SetStablePowerState)
5104  (
5106  BOOL Enable);
5107 
5108  HRESULT(STDMETHODCALLTYPE *CreateCommandSignature)
5109  (
5111  _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
5112  _In_opt_ ID3D12RootSignature *pRootSignature,
5113  REFIID riid,
5114  _COM_Outptr_opt_ void **ppvCommandSignature);
5115 
5116  void(STDMETHODCALLTYPE *GetResourceTiling)(
5117  ID3D12Device *This,
5119  _Out_opt_ UINT *pNumTilesForEntireResource,
5120  _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
5121  _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
5122  _Inout_opt_ UINT *pNumSubresourceTilings,
5123  _In_ UINT FirstSubresourceTilingToGet,
5125 
5126  LUID(STDMETHODCALLTYPE *GetAdapterLuid)
5127  (
5128  ID3D12Device *This);
5129 
5132 
5133 interface ID3D12Device {
5134  CONST_VTBL struct ID3D12DeviceVtbl *lpVtbl;
5135 };
5136 
5137 #ifdef COBJMACROS
5138 
5139 #define ID3D12Device_QueryInterface(This, riid, ppvObject) \
5140  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
5141 
5142 #define ID3D12Device_AddRef(This) \
5143  ((This)->lpVtbl->AddRef(This))
5144 
5145 #define ID3D12Device_Release(This) \
5146  ((This)->lpVtbl->Release(This))
5147 
5148 #define ID3D12Device_GetPrivateData(This, guid, pDataSize, pData) \
5149  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
5150 
5151 #define ID3D12Device_SetPrivateData(This, guid, DataSize, pData) \
5152  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
5153 
5154 #define ID3D12Device_SetPrivateDataInterface(This, guid, pData) \
5155  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
5156 
5157 #define ID3D12Device_SetName(This, Name) \
5158  ((This)->lpVtbl->SetName(This, Name))
5159 
5160 #define ID3D12Device_GetNodeCount(This) \
5161  ((This)->lpVtbl->GetNodeCount(This))
5162 
5163 #define ID3D12Device_CreateCommandQueue(This, pDesc, riid, ppCommandQueue) \
5164  ((This)->lpVtbl->CreateCommandQueue(This, pDesc, riid, ppCommandQueue))
5165 
5166 #define ID3D12Device_CreateCommandAllocator(This, type, riid, ppCommandAllocator) \
5167  ((This)->lpVtbl->CreateCommandAllocator(This, type, riid, ppCommandAllocator))
5168 
5169 #define ID3D12Device_CreateGraphicsPipelineState(This, pDesc, riid, ppPipelineState) \
5170  ((This)->lpVtbl->CreateGraphicsPipelineState(This, pDesc, riid, ppPipelineState))
5171 
5172 #define ID3D12Device_CreateComputePipelineState(This, pDesc, riid, ppPipelineState) \
5173  ((This)->lpVtbl->CreateComputePipelineState(This, pDesc, riid, ppPipelineState))
5174 
5175 #define ID3D12Device_CreateCommandList(This, nodeMask, type, pCommandAllocator, pInitialState, riid, ppCommandList) \
5176  ((This)->lpVtbl->CreateCommandList(This, nodeMask, type, pCommandAllocator, pInitialState, riid, ppCommandList))
5177 
5178 #define ID3D12Device_CheckFeatureSupport(This, Feature, pFeatureSupportData, FeatureSupportDataSize) \
5179  ((This)->lpVtbl->CheckFeatureSupport(This, Feature, pFeatureSupportData, FeatureSupportDataSize))
5180 
5181 #define ID3D12Device_CreateDescriptorHeap(This, pDescriptorHeapDesc, riid, ppvHeap) \
5182  ((This)->lpVtbl->CreateDescriptorHeap(This, pDescriptorHeapDesc, riid, ppvHeap))
5183 
5184 #define ID3D12Device_GetDescriptorHandleIncrementSize(This, DescriptorHeapType) \
5185  ((This)->lpVtbl->GetDescriptorHandleIncrementSize(This, DescriptorHeapType))
5186 
5187 #define ID3D12Device_CreateRootSignature(This, nodeMask, pBlobWithRootSignature, blobLengthInBytes, riid, ppvRootSignature) \
5188  ((This)->lpVtbl->CreateRootSignature(This, nodeMask, pBlobWithRootSignature, blobLengthInBytes, riid, ppvRootSignature))
5189 
5190 #define ID3D12Device_CreateConstantBufferView(This, pDesc, DestDescriptor) \
5191  ((This)->lpVtbl->CreateConstantBufferView(This, pDesc, DestDescriptor))
5192 
5193 #define ID3D12Device_CreateShaderResourceView(This, pResource, pDesc, DestDescriptor) \
5194  ((This)->lpVtbl->CreateShaderResourceView(This, pResource, pDesc, DestDescriptor))
5195 
5196 #define ID3D12Device_CreateUnorderedAccessView(This, pResource, pCounterResource, pDesc, DestDescriptor) \
5197  ((This)->lpVtbl->CreateUnorderedAccessView(This, pResource, pCounterResource, pDesc, DestDescriptor))
5198 
5199 #define ID3D12Device_CreateRenderTargetView(This, pResource, pDesc, DestDescriptor) \
5200  ((This)->lpVtbl->CreateRenderTargetView(This, pResource, pDesc, DestDescriptor))
5201 
5202 #define ID3D12Device_CreateDepthStencilView(This, pResource, pDesc, DestDescriptor) \
5203  ((This)->lpVtbl->CreateDepthStencilView(This, pResource, pDesc, DestDescriptor))
5204 
5205 #define ID3D12Device_CreateSampler(This, pDesc, DestDescriptor) \
5206  ((This)->lpVtbl->CreateSampler(This, pDesc, DestDescriptor))
5207 
5208 #define ID3D12Device_CopyDescriptors(This, NumDestDescriptorRanges, pDestDescriptorRangeStarts, pDestDescriptorRangeSizes, NumSrcDescriptorRanges, pSrcDescriptorRangeStarts, pSrcDescriptorRangeSizes, DescriptorHeapsType) \
5209  ((This)->lpVtbl->CopyDescriptors(This, NumDestDescriptorRanges, pDestDescriptorRangeStarts, pDestDescriptorRangeSizes, NumSrcDescriptorRanges, pSrcDescriptorRangeStarts, pSrcDescriptorRangeSizes, DescriptorHeapsType))
5210 
5211 #define ID3D12Device_CopyDescriptorsSimple(This, NumDescriptors, DestDescriptorRangeStart, SrcDescriptorRangeStart, DescriptorHeapsType) \
5212  ((This)->lpVtbl->CopyDescriptorsSimple(This, NumDescriptors, DestDescriptorRangeStart, SrcDescriptorRangeStart, DescriptorHeapsType))
5213 
5214 #define ID3D12Device_GetResourceAllocationInfo(This, visibleMask, numResourceDescs, pResourceDescs) \
5215  ((This)->lpVtbl->GetResourceAllocationInfo(This, visibleMask, numResourceDescs, pResourceDescs))
5216 
5217 #define ID3D12Device_GetCustomHeapProperties(This, nodeMask, heapType) \
5218  ((This)->lpVtbl->GetCustomHeapProperties(This, nodeMask, heapType))
5219 
5220 #define ID3D12Device_CreateCommittedResource(This, pHeapProperties, HeapFlags, pDesc, InitialResourceState, pOptimizedClearValue, riidResource, ppvResource) \
5221  ((This)->lpVtbl->CreateCommittedResource(This, pHeapProperties, HeapFlags, pDesc, InitialResourceState, pOptimizedClearValue, riidResource, ppvResource))
5222 
5223 #define ID3D12Device_CreateHeap(This, pDesc, riid, ppvHeap) \
5224  ((This)->lpVtbl->CreateHeap(This, pDesc, riid, ppvHeap))
5225 
5226 #define ID3D12Device_CreatePlacedResource(This, pHeap, HeapOffset, pDesc, InitialState, pOptimizedClearValue, riid, ppvResource) \
5227  ((This)->lpVtbl->CreatePlacedResource(This, pHeap, HeapOffset, pDesc, InitialState, pOptimizedClearValue, riid, ppvResource))
5228 
5229 #define ID3D12Device_CreateReservedResource(This, pDesc, InitialState, pOptimizedClearValue, riid, ppvResource) \
5230  ((This)->lpVtbl->CreateReservedResource(This, pDesc, InitialState, pOptimizedClearValue, riid, ppvResource))
5231 
5232 #define ID3D12Device_CreateSharedHandle(This, pObject, pAttributes, Access, Name, pHandle) \
5233  ((This)->lpVtbl->CreateSharedHandle(This, pObject, pAttributes, Access, Name, pHandle))
5234 
5235 #define ID3D12Device_OpenSharedHandle(This, NTHandle, riid, ppvObj) \
5236  ((This)->lpVtbl->OpenSharedHandle(This, NTHandle, riid, ppvObj))
5237 
5238 #define ID3D12Device_OpenSharedHandleByName(This, Name, Access, pNTHandle) \
5239  ((This)->lpVtbl->OpenSharedHandleByName(This, Name, Access, pNTHandle))
5240 
5241 #define ID3D12Device_MakeResident(This, NumObjects, ppObjects) \
5242  ((This)->lpVtbl->MakeResident(This, NumObjects, ppObjects))
5243 
5244 #define ID3D12Device_Evict(This, NumObjects, ppObjects) \
5245  ((This)->lpVtbl->Evict(This, NumObjects, ppObjects))
5246 
5247 #define ID3D12Device_CreateFence(This, InitialValue, Flags, riid, ppFence) \
5248  ((This)->lpVtbl->CreateFence(This, InitialValue, Flags, riid, ppFence))
5249 
5250 #define ID3D12Device_GetDeviceRemovedReason(This) \
5251  ((This)->lpVtbl->GetDeviceRemovedReason(This))
5252 
5253 #define ID3D12Device_GetCopyableFootprints(This, pResourceDesc, FirstSubresource, NumSubresources, BaseOffset, pLayouts, pNumRows, pRowSizeInBytes, pTotalBytes) \
5254  ((This)->lpVtbl->GetCopyableFootprints(This, pResourceDesc, FirstSubresource, NumSubresources, BaseOffset, pLayouts, pNumRows, pRowSizeInBytes, pTotalBytes))
5255 
5256 #define ID3D12Device_CreateQueryHeap(This, pDesc, riid, ppvHeap) \
5257  ((This)->lpVtbl->CreateQueryHeap(This, pDesc, riid, ppvHeap))
5258 
5259 #define ID3D12Device_SetStablePowerState(This, Enable) \
5260  ((This)->lpVtbl->SetStablePowerState(This, Enable))
5261 
5262 #define ID3D12Device_CreateCommandSignature(This, pDesc, pRootSignature, riid, ppvCommandSignature) \
5263  ((This)->lpVtbl->CreateCommandSignature(This, pDesc, pRootSignature, riid, ppvCommandSignature))
5264 
5265 #define ID3D12Device_GetResourceTiling(This, pTiledResource, pNumTilesForEntireResource, pPackedMipDesc, pStandardTileShapeForNonPackedMips, pNumSubresourceTilings, FirstSubresourceTilingToGet, pSubresourceTilingsForNonPackedMips) \
5266  ((This)->lpVtbl->GetResourceTiling(This, pTiledResource, pNumTilesForEntireResource, pPackedMipDesc, pStandardTileShapeForNonPackedMips, pNumSubresourceTilings, FirstSubresourceTilingToGet, pSubresourceTilingsForNonPackedMips))
5267 
5268 #define ID3D12Device_GetAdapterLuid(This) \
5269  ((This)->lpVtbl->GetAdapterLuid(This))
5270 
5271 #endif /* COBJMACROS */
5272 
5273 #endif /* C style interface */
5274 
5275 #endif /* __ID3D12Device_INTERFACE_DEFINED__ */
5276 
5277 #ifndef __ID3D12Fence_INTERFACE_DEFINED__
5278 #define __ID3D12Fence_INTERFACE_DEFINED__
5279 
5280 /* interface ID3D12Fence */
5281 /* [unique][local][object][uuid] */
5282 
5284 
5285 #if defined(__cplusplus) && !defined(CINTERFACE)
5286 
5287 MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76")
5288 ID3D12Fence : public ID3D12Pageable {
5289 public:
5290  virtual UINT64 STDMETHODCALLTYPE GetCompletedValue() = 0;
5291 
5292  virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion(
5293  UINT64 Value,
5294  HANDLE hEvent) = 0;
5295 
5296  virtual HRESULT STDMETHODCALLTYPE Signal(
5297  UINT64 Value) = 0;
5298 };
5299 
5300 #else /* C style interface */
5301 
5302 typedef struct ID3D12FenceVtbl {
5304 
5305  HRESULT(STDMETHODCALLTYPE *QueryInterface)
5306  (
5307  ID3D12Fence *This,
5308  REFIID riid,
5309  _COM_Outptr_ void **ppvObject);
5310 
5311  ULONG(STDMETHODCALLTYPE *AddRef)
5312  (
5314 
5315  ULONG(STDMETHODCALLTYPE *Release)
5316  (
5317  ID3D12Fence *This);
5318 
5319  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
5320  (
5322  _In_ REFGUID guid,
5325 
5326  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
5327  (
5329  _In_ REFGUID guid,
5330  _In_ UINT DataSize,
5331  _In_reads_bytes_opt_(DataSize) const void *pData);
5332 
5333  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
5334  (
5336  _In_ REFGUID guid,
5337  _In_opt_ const IUnknown *pData);
5338 
5339  HRESULT(STDMETHODCALLTYPE *SetName)
5340  (
5342  _In_z_ LPCWSTR Name);
5343 
5344  HRESULT(STDMETHODCALLTYPE *GetDevice)
5345  (
5347  REFIID riid,
5348  _COM_Outptr_opt_ void **ppvDevice);
5349 
5350  UINT64(STDMETHODCALLTYPE *GetCompletedValue)
5351  (
5352  ID3D12Fence *This);
5353 
5354  HRESULT(STDMETHODCALLTYPE *SetEventOnCompletion)
5355  (
5357  UINT64 Value,
5358  HANDLE hEvent);
5359 
5360  HRESULT(STDMETHODCALLTYPE *Signal)
5361  (
5362  ID3D12Fence *This,
5363  UINT64 Value);
5364 
5366 } ID3D12FenceVtbl;
5367 
5368 interface ID3D12Fence {
5369  CONST_VTBL struct ID3D12FenceVtbl *lpVtbl;
5370 };
5371 
5372 #ifdef COBJMACROS
5373 
5374 #define ID3D12Fence_QueryInterface(This, riid, ppvObject) \
5375  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
5376 
5377 #define ID3D12Fence_AddRef(This) \
5378  ((This)->lpVtbl->AddRef(This))
5379 
5380 #define ID3D12Fence_Release(This) \
5381  ((This)->lpVtbl->Release(This))
5382 
5383 #define ID3D12Fence_GetPrivateData(This, guid, pDataSize, pData) \
5384  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
5385 
5386 #define ID3D12Fence_SetPrivateData(This, guid, DataSize, pData) \
5387  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
5388 
5389 #define ID3D12Fence_SetPrivateDataInterface(This, guid, pData) \
5390  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
5391 
5392 #define ID3D12Fence_SetName(This, Name) \
5393  ((This)->lpVtbl->SetName(This, Name))
5394 
5395 #define ID3D12Fence_GetDevice(This, riid, ppvDevice) \
5396  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
5397 
5398 #define ID3D12Fence_GetCompletedValue(This) \
5399  ((This)->lpVtbl->GetCompletedValue(This))
5400 
5401 #define ID3D12Fence_SetEventOnCompletion(This, Value, hEvent) \
5402  ((This)->lpVtbl->SetEventOnCompletion(This, Value, hEvent))
5403 
5404 #define ID3D12Fence_Signal(This, Value) \
5405  ((This)->lpVtbl->Signal(This, Value))
5406 
5407 #endif /* COBJMACROS */
5408 
5409 #endif /* C style interface */
5410 
5411 #endif /* __ID3D12Fence_INTERFACE_DEFINED__ */
5412 
5413 #ifndef __ID3D12PipelineState_INTERFACE_DEFINED__
5414 #define __ID3D12PipelineState_INTERFACE_DEFINED__
5415 
5416 /* interface ID3D12PipelineState */
5417 /* [unique][local][object][uuid] */
5418 
5420 
5421 #if defined(__cplusplus) && !defined(CINTERFACE)
5422 
5423 MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445")
5425 public:
5426  virtual HRESULT STDMETHODCALLTYPE GetCachedBlob(
5427  _COM_Outptr_ ID3DBlob * *ppBlob) = 0;
5428 };
5429 
5430 #else /* C style interface */
5431 
5432 typedef struct ID3D12PipelineStateVtbl {
5434 
5435  HRESULT(STDMETHODCALLTYPE *QueryInterface)
5436  (
5438  REFIID riid,
5439  _COM_Outptr_ void **ppvObject);
5440 
5441  ULONG(STDMETHODCALLTYPE *AddRef)
5442  (
5444 
5445  ULONG(STDMETHODCALLTYPE *Release)
5446  (
5448 
5449  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
5450  (
5452  _In_ REFGUID guid,
5455 
5456  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
5457  (
5459  _In_ REFGUID guid,
5460  _In_ UINT DataSize,
5461  _In_reads_bytes_opt_(DataSize) const void *pData);
5462 
5463  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
5464  (
5466  _In_ REFGUID guid,
5467  _In_opt_ const IUnknown *pData);
5468 
5469  HRESULT(STDMETHODCALLTYPE *SetName)
5470  (
5472  _In_z_ LPCWSTR Name);
5473 
5474  HRESULT(STDMETHODCALLTYPE *GetDevice)
5475  (
5477  REFIID riid,
5478  _COM_Outptr_opt_ void **ppvDevice);
5479 
5480  HRESULT(STDMETHODCALLTYPE *GetCachedBlob)
5481  (
5484 
5487 
5488 interface ID3D12PipelineState {
5489  CONST_VTBL struct ID3D12PipelineStateVtbl *lpVtbl;
5490 };
5491 
5492 #ifdef COBJMACROS
5493 
5494 #define ID3D12PipelineState_QueryInterface(This, riid, ppvObject) \
5495  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
5496 
5497 #define ID3D12PipelineState_AddRef(This) \
5498  ((This)->lpVtbl->AddRef(This))
5499 
5500 #define ID3D12PipelineState_Release(This) \
5501  ((This)->lpVtbl->Release(This))
5502 
5503 #define ID3D12PipelineState_GetPrivateData(This, guid, pDataSize, pData) \
5504  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
5505 
5506 #define ID3D12PipelineState_SetPrivateData(This, guid, DataSize, pData) \
5507  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
5508 
5509 #define ID3D12PipelineState_SetPrivateDataInterface(This, guid, pData) \
5510  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
5511 
5512 #define ID3D12PipelineState_SetName(This, Name) \
5513  ((This)->lpVtbl->SetName(This, Name))
5514 
5515 #define ID3D12PipelineState_GetDevice(This, riid, ppvDevice) \
5516  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
5517 
5518 #define ID3D12PipelineState_GetCachedBlob(This, ppBlob) \
5519  ((This)->lpVtbl->GetCachedBlob(This, ppBlob))
5520 
5521 #endif /* COBJMACROS */
5522 
5523 #endif /* C style interface */
5524 
5525 #endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */
5526 
5527 #ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__
5528 #define __ID3D12DescriptorHeap_INTERFACE_DEFINED__
5529 
5530 /* interface ID3D12DescriptorHeap */
5531 /* [unique][local][object][uuid] */
5532 
5534 
5535 #if defined(__cplusplus) && !defined(CINTERFACE)
5536 
5537 MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51")
5539 public:
5540  virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc() = 0;
5541 
5542  virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart() = 0;
5543 
5544  virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart() = 0;
5545 };
5546 
5547 #else /* C style interface */
5548 
5551 
5552  HRESULT(STDMETHODCALLTYPE *QueryInterface)
5553  (
5555  REFIID riid,
5556  _COM_Outptr_ void **ppvObject);
5557 
5558  ULONG(STDMETHODCALLTYPE *AddRef)
5559  (
5561 
5562  ULONG(STDMETHODCALLTYPE *Release)
5563  (
5565 
5566  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
5567  (
5569  _In_ REFGUID guid,
5572 
5573  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
5574  (
5576  _In_ REFGUID guid,
5577  _In_ UINT DataSize,
5578  _In_reads_bytes_opt_(DataSize) const void *pData);
5579 
5580  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
5581  (
5583  _In_ REFGUID guid,
5584  _In_opt_ const IUnknown *pData);
5585 
5586  HRESULT(STDMETHODCALLTYPE *SetName)
5587  (
5589  _In_z_ LPCWSTR Name);
5590 
5591  HRESULT(STDMETHODCALLTYPE *GetDevice)
5592  (
5594  REFIID riid,
5595  _COM_Outptr_opt_ void **ppvDevice);
5596 
5598  (
5600 
5601  D3D12_CPU_DESCRIPTOR_HANDLE(STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart)
5602  (
5604 
5605  D3D12_GPU_DESCRIPTOR_HANDLE(STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart)
5606  (
5608 
5611 
5612 interface ID3D12DescriptorHeap {
5613  CONST_VTBL struct ID3D12DescriptorHeapVtbl *lpVtbl;
5614 };
5615 
5616 #ifdef COBJMACROS
5617 
5618 #define ID3D12DescriptorHeap_QueryInterface(This, riid, ppvObject) \
5619  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
5620 
5621 #define ID3D12DescriptorHeap_AddRef(This) \
5622  ((This)->lpVtbl->AddRef(This))
5623 
5624 #define ID3D12DescriptorHeap_Release(This) \
5625  ((This)->lpVtbl->Release(This))
5626 
5627 #define ID3D12DescriptorHeap_GetPrivateData(This, guid, pDataSize, pData) \
5628  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
5629 
5630 #define ID3D12DescriptorHeap_SetPrivateData(This, guid, DataSize, pData) \
5631  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
5632 
5633 #define ID3D12DescriptorHeap_SetPrivateDataInterface(This, guid, pData) \
5634  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
5635 
5636 #define ID3D12DescriptorHeap_SetName(This, Name) \
5637  ((This)->lpVtbl->SetName(This, Name))
5638 
5639 #define ID3D12DescriptorHeap_GetDevice(This, riid, ppvDevice) \
5640  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
5641 
5642 #define ID3D12DescriptorHeap_GetDesc(This) \
5643  ((This)->lpVtbl->GetDesc(This))
5644 
5645 #define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) \
5646  ((This)->lpVtbl->GetCPUDescriptorHandleForHeapStart(This))
5647 
5648 #define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) \
5649  ((This)->lpVtbl->GetGPUDescriptorHandleForHeapStart(This))
5650 
5651 #endif /* COBJMACROS */
5652 
5653 #endif /* C style interface */
5654 
5655 #endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */
5656 
5657 #ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__
5658 #define __ID3D12QueryHeap_INTERFACE_DEFINED__
5659 
5660 /* interface ID3D12QueryHeap */
5661 /* [unique][local][object][uuid] */
5662 
5664 
5665 #if defined(__cplusplus) && !defined(CINTERFACE)
5666 
5667 MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4")
5669  public :
5670 };
5671 
5672 #else /* C style interface */
5673 
5674 typedef struct ID3D12QueryHeapVtbl {
5676 
5677  HRESULT(STDMETHODCALLTYPE *QueryInterface)
5678  (
5680  REFIID riid,
5681  _COM_Outptr_ void **ppvObject);
5682 
5683  ULONG(STDMETHODCALLTYPE *AddRef)
5684  (
5686 
5687  ULONG(STDMETHODCALLTYPE *Release)
5688  (
5690 
5691  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
5692  (
5694  _In_ REFGUID guid,
5697 
5698  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
5699  (
5701  _In_ REFGUID guid,
5702  _In_ UINT DataSize,
5703  _In_reads_bytes_opt_(DataSize) const void *pData);
5704 
5705  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
5706  (
5708  _In_ REFGUID guid,
5709  _In_opt_ const IUnknown *pData);
5710 
5711  HRESULT(STDMETHODCALLTYPE *SetName)
5712  (
5714  _In_z_ LPCWSTR Name);
5715 
5716  HRESULT(STDMETHODCALLTYPE *GetDevice)
5717  (
5719  REFIID riid,
5720  _COM_Outptr_opt_ void **ppvDevice);
5721 
5724 
5725 interface ID3D12QueryHeap {
5726  CONST_VTBL struct ID3D12QueryHeapVtbl *lpVtbl;
5727 };
5728 
5729 #ifdef COBJMACROS
5730 
5731 #define ID3D12QueryHeap_QueryInterface(This, riid, ppvObject) \
5732  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
5733 
5734 #define ID3D12QueryHeap_AddRef(This) \
5735  ((This)->lpVtbl->AddRef(This))
5736 
5737 #define ID3D12QueryHeap_Release(This) \
5738  ((This)->lpVtbl->Release(This))
5739 
5740 #define ID3D12QueryHeap_GetPrivateData(This, guid, pDataSize, pData) \
5741  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
5742 
5743 #define ID3D12QueryHeap_SetPrivateData(This, guid, DataSize, pData) \
5744  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
5745 
5746 #define ID3D12QueryHeap_SetPrivateDataInterface(This, guid, pData) \
5747  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
5748 
5749 #define ID3D12QueryHeap_SetName(This, Name) \
5750  ((This)->lpVtbl->SetName(This, Name))
5751 
5752 #define ID3D12QueryHeap_GetDevice(This, riid, ppvDevice) \
5753  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
5754 
5755 #endif /* COBJMACROS */
5756 
5757 #endif /* C style interface */
5758 
5759 #endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */
5760 
5761 typedef HRESULT(WINAPI *PFN_D3D12_CREATE_DEVICE)(_In_opt_ IUnknown *,
5763  _In_ REFIID, _COM_Outptr_opt_ void **);
5764 
5765 typedef HRESULT(WINAPI *PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(
5766  _In_ const D3D12_ROOT_SIGNATURE_DESC *pRootSignature,
5768  _Out_ ID3DBlob **ppBlob,
5769  _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppErrorBlob);
5770 
5772 
5773 DEFINE_GUID(IID_ID3D12Object, 0xc4fec28f, 0x7966, 0x4e95, 0x9f, 0x94, 0xf4, 0x31, 0xcb, 0x56, 0xc3, 0xb8);
5774 DEFINE_GUID(IID_ID3D12DeviceChild, 0x905db94b, 0xa00c, 0x4140, 0x9d, 0xf5, 0x2b, 0x64, 0xca, 0x9e, 0xa3, 0x57);
5775 DEFINE_GUID(IID_ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b, 0xe5, 0xa9, 0x46, 0xa1, 0x42, 0x92, 0x14);
5776 DEFINE_GUID(IID_ID3D12RootSignatureDeserializer, 0x34AB647B, 0x3CC8, 0x46AC, 0x84, 0x1B, 0xC0, 0x96, 0x56, 0x45, 0xC0, 0x46);
5777 DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer, 0x7F91CE67, 0x090C, 0x4BB7, 0xB7, 0x8E, 0xED, 0x8F, 0xF2, 0xE3, 0x1D, 0xA0);
5778 DEFINE_GUID(IID_ID3D12Pageable, 0x63ee58fb, 0x1268, 0x4835, 0x86, 0xda, 0xf0, 0x08, 0xce, 0x62, 0xf0, 0xd6);
5779 DEFINE_GUID(IID_ID3D12Heap, 0x6b3b2502, 0x6e51, 0x45b3, 0x90, 0xee, 0x98, 0x84, 0x26, 0x5e, 0x8d, 0xf3);
5780 DEFINE_GUID(IID_ID3D12Resource, 0x696442be, 0xa72e, 0x4059, 0xbc, 0x79, 0x5b, 0x5c, 0x98, 0x04, 0x0f, 0xad);
5781 DEFINE_GUID(IID_ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9, 0x99, 0xb4, 0x4d, 0x73, 0xf0, 0x9b, 0x24);
5782 DEFINE_GUID(IID_ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad, 0xf6, 0xbe, 0x5a, 0x60, 0xd9, 0x5a, 0x76);
5783 DEFINE_GUID(IID_ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8, 0x28, 0xac, 0xe9, 0x48, 0x62, 0x24, 0x45);
5784 DEFINE_GUID(IID_ID3D12DescriptorHeap, 0x8efb471d, 0x616c, 0x4f49, 0x90, 0xf7, 0x12, 0x7b, 0xb7, 0x63, 0xfa, 0x51);
5785 DEFINE_GUID(IID_ID3D12QueryHeap, 0x0d9658ae, 0xed45, 0x469e, 0xa6, 0x1d, 0x97, 0x0e, 0xc5, 0x83, 0xca, 0xb4);
5786 DEFINE_GUID(IID_ID3D12CommandSignature, 0xc36a797c, 0xec80, 0x4f0a, 0x89, 0x85, 0xa7, 0xb2, 0x47, 0x50, 0x82, 0xd1);
5787 DEFINE_GUID(IID_ID3D12CommandList, 0x7116d91c, 0xe7e4, 0x47ce, 0xb8, 0xc6, 0xec, 0x81, 0x68, 0xf4, 0x37, 0xe5);
5788 DEFINE_GUID(IID_ID3D12GraphicsCommandList, 0x5b160d0f, 0xac1b, 0x4185, 0x8b, 0xa8, 0xb3, 0xae, 0x42, 0xa5, 0xa4, 0x55);
5789 DEFINE_GUID(IID_ID3D12GraphicsCommandList1, 0x553103fb, 0x1fe7, 0x4557, 0xbb, 0x38, 0x94, 0x6d, 0x7d, 0x0e, 0x7c, 0xa7);
5790 DEFINE_GUID(IID_ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c, 0xfc, 0x5b, 0xaa, 0xe0, 0x76, 0x16, 0xed);
5791 DEFINE_GUID(IID_ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe, 0x54, 0x18, 0x21, 0x33, 0x9b, 0x85, 0xf7);
5792 DEFINE_GUID(IID_ID3D12PipelineLibrary, 0xc64226a8, 0x9201, 0x46af, 0xb4, 0xcc, 0x53, 0xfb, 0x9f, 0xf7, 0x41, 0x4f);
5793 DEFINE_GUID(IID_ID3D12PipelineLibrary1, 0x80eabf42, 0x2568, 0x4e5e, 0xbd, 0x82, 0xc3, 0x7f, 0x86, 0x96, 0x1d, 0xc3);
5794 DEFINE_GUID(IID_ID3D12Device1, 0x77acce80, 0x638e, 0x4e65, 0x88, 0x95, 0xc1, 0xf2, 0x33, 0x86, 0x86, 0x3e);
5795 DEFINE_GUID(IID_ID3D12Device2, 0x30baa41e, 0xb15b, 0x475c, 0xa0, 0xbb, 0x1a, 0xf5, 0xc5, 0xb6, 0x43, 0x28);
5796 DEFINE_GUID(IID_ID3D12Tools, 0x7071e1f0, 0xe84b, 0x4b33, 0x97, 0x4f, 0x12, 0xfa, 0x49, 0xde, 0x65, 0xc5);
5797 
5798 #ifdef __cplusplus
5799 }
5800 #endif
5801 
5802 /* d3d12sdklayers.h */
5803 #ifndef __ID3D12Debug_FWD_DEFINED__
5804 #define __ID3D12Debug_FWD_DEFINED__
5805 typedef interface ID3D12Debug ID3D12Debug;
5806 
5807 #endif /* __ID3D12Debug_FWD_DEFINED__ */
5808 
5809 #ifdef __cplusplus
5810 extern "C" {
5811 #endif
5812 
5813 #ifndef __ID3D12Debug_INTERFACE_DEFINED__
5814 #define __ID3D12Debug_INTERFACE_DEFINED__
5815 
5816 /* interface ID3D12Debug */
5817 /* [unique][local][object][uuid] */
5818 
5820 
5821 #if defined(__cplusplus) && !defined(CINTERFACE)
5822 
5823 MIDL_INTERFACE("344488b7-6846-474b-b989-f027448245e0")
5824 ID3D12Debug : public IUnknown {
5825 public:
5826  virtual void STDMETHODCALLTYPE EnableDebugLayer() = 0;
5827 };
5828 
5829 #else /* C style interface */
5830 
5831 typedef struct ID3D12DebugVtbl {
5833 
5834  HRESULT(STDMETHODCALLTYPE *QueryInterface)
5835  (
5836  ID3D12Debug *This,
5837  REFIID riid,
5838  _COM_Outptr_ void **ppvObject);
5839 
5840  ULONG(STDMETHODCALLTYPE *AddRef)
5841  (
5843 
5844  ULONG(STDMETHODCALLTYPE *Release)
5845  (
5846  ID3D12Debug *This);
5847 
5848  void(STDMETHODCALLTYPE *EnableDebugLayer)(
5849  ID3D12Debug *This);
5850 
5852 } ID3D12DebugVtbl;
5853 
5854 interface ID3D12Debug {
5855  CONST_VTBL struct ID3D12DebugVtbl *lpVtbl;
5856 };
5857 
5858 #ifdef COBJMACROS
5859 
5860 #define ID3D12Debug_QueryInterface(This, riid, ppvObject) \
5861  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
5862 
5863 #define ID3D12Debug_AddRef(This) \
5864  ((This)->lpVtbl->AddRef(This))
5865 
5866 #define ID3D12Debug_Release(This) \
5867  ((This)->lpVtbl->Release(This))
5868 
5869 #define ID3D12Debug_EnableDebugLayer(This) \
5870  ((This)->lpVtbl->EnableDebugLayer(This))
5871 
5872 #endif /* COBJMACROS */
5873 
5874 #endif /* C style interface */
5875 
5876 #endif /* __ID3D12Debug_INTERFACE_DEFINED__ */
5877 
5878 DEFINE_GUID(IID_ID3D12Debug, 0x344488b7, 0x6846, 0x474b, 0xb9, 0x89, 0xf0, 0x27, 0x44, 0x82, 0x45, 0xe0);
5879 
5880 #ifdef __cplusplus
5881 }
5882 #endif
5883 
5884 /* dxgi.h */
5885 #ifndef __IDXGIObject_FWD_DEFINED__
5886 #define __IDXGIObject_FWD_DEFINED__
5887 typedef interface IDXGIObject IDXGIObject;
5888 
5889 #endif /* __IDXGIObject_FWD_DEFINED__ */
5890 
5891 #ifndef __IDXGIAdapter_FWD_DEFINED__
5892 #define __IDXGIAdapter_FWD_DEFINED__
5893 typedef interface IDXGIAdapter IDXGIAdapter;
5894 
5895 #endif /* __IDXGIAdapter_FWD_DEFINED__ */
5896 
5897 #ifndef __IDXGIOutput_FWD_DEFINED__
5898 #define __IDXGIOutput_FWD_DEFINED__
5899 typedef interface IDXGIOutput IDXGIOutput;
5900 
5901 #endif /* __IDXGIOutput_FWD_DEFINED__ */
5902 
5903 #ifndef __IDXGISwapChain_FWD_DEFINED__
5904 #define __IDXGISwapChain_FWD_DEFINED__
5905 typedef interface IDXGISwapChain IDXGISwapChain;
5906 
5907 #endif /* __IDXGISwapChain_FWD_DEFINED__ */
5908 
5909 #ifndef __IDXGIFactory_FWD_DEFINED__
5910 #define __IDXGIFactory_FWD_DEFINED__
5911 typedef interface IDXGIFactory IDXGIFactory;
5912 
5913 #endif /* __IDXGIFactory_FWD_DEFINED__ */
5914 
5915 #ifndef __IDXGIFactory1_FWD_DEFINED__
5916 #define __IDXGIFactory1_FWD_DEFINED__
5917 typedef interface IDXGIFactory1 IDXGIFactory1;
5918 
5919 #endif /* __IDXGIFactory1_FWD_DEFINED__ */
5920 
5921 #ifndef __IDXGIAdapter1_FWD_DEFINED__
5922 #define __IDXGIAdapter1_FWD_DEFINED__
5923 typedef interface IDXGIAdapter1 IDXGIAdapter1;
5924 
5925 #endif /* __IDXGIAdapter1_FWD_DEFINED__ */
5926 
5927 typedef struct DXGI_ADAPTER_DESC {
5938 
5939 typedef enum DXGI_ADAPTER_FLAG {
5945 
5946 typedef struct DXGI_ADAPTER_DESC1 {
5958 
5960 
5961 #ifndef __IDXGIObject_INTERFACE_DEFINED__
5962 #define __IDXGIObject_INTERFACE_DEFINED__
5963 
5964 /* interface IDXGIObject */
5965 /* [unique][local][uuid][object] */
5966 
5968 
5969 #if defined(__cplusplus) && !defined(CINTERFACE)
5970 
5971 MIDL_INTERFACE("aec22fb8-76f3-4639-9be0-28eb43a67a2e")
5972 IDXGIObject : public IUnknown {
5973 public:
5974  virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
5975  /* [annotation][in] */
5976  _In_ REFGUID Name,
5977  /* [in] */ UINT DataSize,
5978  /* [annotation][in] */
5979  _In_reads_bytes_(DataSize) const void *pData) = 0;
5980 
5981  virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
5982  /* [annotation][in] */
5983  _In_ REFGUID Name,
5984  /* [annotation][in] */
5985  _In_opt_ const IUnknown *pUnknown) = 0;
5986 
5987  virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
5988  /* [annotation][in] */
5989  _In_ REFGUID Name,
5990  /* [annotation][out][in] */
5991  _Inout_ UINT * pDataSize,
5992  /* [annotation][out] */
5993  _Out_writes_bytes_(*pDataSize) void *pData) = 0;
5994 
5995  virtual HRESULT STDMETHODCALLTYPE GetParent(
5996  /* [annotation][in] */
5997  _In_ REFIID riid,
5998  /* [annotation][retval][out] */
5999  _COM_Outptr_ void **ppParent) = 0;
6000 };
6001 
6002 #else /* C style interface */
6003 
6004 typedef struct IDXGIObjectVtbl {
6006 
6007  HRESULT(STDMETHODCALLTYPE *QueryInterface)
6008  (
6009  IDXGIObject *This,
6010  /* [in] */ REFIID riid,
6011  /* [annotation][iid_is][out] */
6012  _COM_Outptr_ void **ppvObject);
6013 
6014  ULONG(STDMETHODCALLTYPE *AddRef)
6015  (
6017 
6018  ULONG(STDMETHODCALLTYPE *Release)
6019  (
6020  IDXGIObject *This);
6021 
6022  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
6023  (
6025  /* [annotation][in] */
6026  _In_ REFGUID Name,
6027  /* [in] */ UINT DataSize,
6028  /* [annotation][in] */
6029  _In_reads_bytes_(DataSize) const void *pData);
6030 
6031  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
6032  (
6034  /* [annotation][in] */
6035  _In_ REFGUID Name,
6036  /* [annotation][in] */
6037  _In_opt_ const IUnknown *pUnknown);
6038 
6039  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
6040  (
6042  /* [annotation][in] */
6043  _In_ REFGUID Name,
6044  /* [annotation][out][in] */
6046  /* [annotation][out] */
6048 
6049  HRESULT(STDMETHODCALLTYPE *GetParent)
6050  (
6052  /* [annotation][in] */
6053  _In_ REFIID riid,
6054  /* [annotation][retval][out] */
6055  _COM_Outptr_ void **ppParent);
6056 
6058 } IDXGIObjectVtbl;
6059 
6060 interface IDXGIObject {
6061  CONST_VTBL struct IDXGIObjectVtbl *lpVtbl;
6062 };
6063 
6064 #ifdef COBJMACROS
6065 
6066 #define IDXGIObject_QueryInterface(This, riid, ppvObject) \
6067  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
6068 
6069 #define IDXGIObject_AddRef(This) \
6070  ((This)->lpVtbl->AddRef(This))
6071 
6072 #define IDXGIObject_Release(This) \
6073  ((This)->lpVtbl->Release(This))
6074 
6075 #define IDXGIObject_SetPrivateData(This, Name, DataSize, pData) \
6076  ((This)->lpVtbl->SetPrivateData(This, Name, DataSize, pData))
6077 
6078 #define IDXGIObject_SetPrivateDataInterface(This, Name, pUnknown) \
6079  ((This)->lpVtbl->SetPrivateDataInterface(This, Name, pUnknown))
6080 
6081 #define IDXGIObject_GetPrivateData(This, Name, pDataSize, pData) \
6082  ((This)->lpVtbl->GetPrivateData(This, Name, pDataSize, pData))
6083 
6084 #define IDXGIObject_GetParent(This, riid, ppParent) \
6085  ((This)->lpVtbl->GetParent(This, riid, ppParent))
6086 
6087 #endif /* COBJMACROS */
6088 
6089 #endif /* C style interface */
6090 
6091 #endif /* __IDXGIObject_INTERFACE_DEFINED__ */
6092 
6093 #ifndef __IDXGIFactory_INTERFACE_DEFINED__
6094 #define __IDXGIFactory_INTERFACE_DEFINED__
6095 
6096 /* interface IDXGIFactory */
6097 /* [unique][local][uuid][object] */
6098 
6100 
6101 #if defined(__cplusplus) && !defined(CINTERFACE)
6102 
6103 MIDL_INTERFACE("7b7166ec-21c7-44ae-b21a-c9ae321ae369")
6104 IDXGIFactory : public IDXGIObject {
6105 public:
6106  virtual HRESULT STDMETHODCALLTYPE EnumAdapters(
6107  /* [in] */ UINT Adapter,
6108  /* [annotation][out] */
6109  _COM_Outptr_ IDXGIAdapter * *ppAdapter) = 0;
6110 
6111  virtual HRESULT STDMETHODCALLTYPE MakeWindowAssociation(
6112  HWND WindowHandle,
6113  UINT Flags) = 0;
6114 
6115  virtual HRESULT STDMETHODCALLTYPE GetWindowAssociation(
6116  /* [annotation][out] */
6117  _Out_ HWND * pWindowHandle) = 0;
6118 
6119  virtual HRESULT STDMETHODCALLTYPE CreateSwapChain(
6120  /* [annotation][in] */
6121  _In_ IUnknown * pDevice,
6122  /* [annotation][in] */
6123  _In_ DXGI_SWAP_CHAIN_DESC * pDesc,
6124  /* [annotation][out] */
6125  _COM_Outptr_ IDXGISwapChain * *ppSwapChain) = 0;
6126 
6127  virtual HRESULT STDMETHODCALLTYPE CreateSoftwareAdapter(
6128  /* [in] */ HMODULE Module,
6129  /* [annotation][out] */
6130  _COM_Outptr_ IDXGIAdapter * *ppAdapter) = 0;
6131 };
6132 
6133 #else /* C style interface */
6134 
6135 typedef struct IDXGIFactoryVtbl {
6137 
6138  HRESULT(STDMETHODCALLTYPE *QueryInterface)
6139  (
6140  IDXGIFactory *This,
6141  /* [in] */ REFIID riid,
6142  /* [annotation][iid_is][out] */
6143  _COM_Outptr_ void **ppvObject);
6144 
6145  ULONG(STDMETHODCALLTYPE *AddRef)
6146  (
6148 
6149  ULONG(STDMETHODCALLTYPE *Release)
6150  (
6151  IDXGIFactory *This);
6152 
6153  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
6154  (
6156  /* [annotation][in] */
6157  _In_ REFGUID Name,
6158  /* [in] */ UINT DataSize,
6159  /* [annotation][in] */
6160  _In_reads_bytes_(DataSize) const void *pData);
6161 
6162  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
6163  (
6165  /* [annotation][in] */
6166  _In_ REFGUID Name,
6167  /* [annotation][in] */
6168  _In_opt_ const IUnknown *pUnknown);
6169 
6170  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
6171  (
6173  /* [annotation][in] */
6174  _In_ REFGUID Name,
6175  /* [annotation][out][in] */
6177  /* [annotation][out] */
6179 
6180  HRESULT(STDMETHODCALLTYPE *GetParent)
6181  (
6183  /* [annotation][in] */
6184  _In_ REFIID riid,
6185  /* [annotation][retval][out] */
6186  _COM_Outptr_ void **ppParent);
6187 
6188  HRESULT(STDMETHODCALLTYPE *EnumAdapters)
6189  (
6191  /* [in] */ UINT Adapter,
6192  /* [annotation][out] */
6194 
6195  HRESULT(STDMETHODCALLTYPE *MakeWindowAssociation)
6196  (
6198  HWND WindowHandle,
6199  UINT Flags);
6200 
6201  HRESULT(STDMETHODCALLTYPE *GetWindowAssociation)
6202  (
6204  /* [annotation][out] */
6205  _Out_ HWND *pWindowHandle);
6206 
6207  HRESULT(STDMETHODCALLTYPE *CreateSwapChain)
6208  (
6210  /* [annotation][in] */
6212  /* [annotation][in] */
6214  /* [annotation][out] */
6216 
6217  HRESULT(STDMETHODCALLTYPE *CreateSoftwareAdapter)
6218  (
6220  /* [in] */ HMODULE Module,
6221  /* [annotation][out] */
6223 
6226 
6227 interface IDXGIFactory {
6228  CONST_VTBL struct IDXGIFactoryVtbl *lpVtbl;
6229 };
6230 
6231 #ifdef COBJMACROS
6232 
6233 #define IDXGIFactory_QueryInterface(This, riid, ppvObject) \
6234  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
6235 
6236 #define IDXGIFactory_AddRef(This) \
6237  ((This)->lpVtbl->AddRef(This))
6238 
6239 #define IDXGIFactory_Release(This) \
6240  ((This)->lpVtbl->Release(This))
6241 
6242 #define IDXGIFactory_SetPrivateData(This, Name, DataSize, pData) \
6243  ((This)->lpVtbl->SetPrivateData(This, Name, DataSize, pData))
6244 
6245 #define IDXGIFactory_SetPrivateDataInterface(This, Name, pUnknown) \
6246  ((This)->lpVtbl->SetPrivateDataInterface(This, Name, pUnknown))
6247 
6248 #define IDXGIFactory_GetPrivateData(This, Name, pDataSize, pData) \
6249  ((This)->lpVtbl->GetPrivateData(This, Name, pDataSize, pData))
6250 
6251 #define IDXGIFactory_GetParent(This, riid, ppParent) \
6252  ((This)->lpVtbl->GetParent(This, riid, ppParent))
6253 
6254 #define IDXGIFactory_EnumAdapters(This, Adapter, ppAdapter) \
6255  ((This)->lpVtbl->EnumAdapters(This, Adapter, ppAdapter))
6256 
6257 #define IDXGIFactory_MakeWindowAssociation(This, WindowHandle, Flags) \
6258  ((This)->lpVtbl->MakeWindowAssociation(This, WindowHandle, Flags))
6259 
6260 #define IDXGIFactory_GetWindowAssociation(This, pWindowHandle) \
6261  ((This)->lpVtbl->GetWindowAssociation(This, pWindowHandle))
6262 
6263 #define IDXGIFactory_CreateSwapChain(This, pDevice, pDesc, ppSwapChain) \
6264  ((This)->lpVtbl->CreateSwapChain(This, pDevice, pDesc, ppSwapChain))
6265 
6266 #define IDXGIFactory_CreateSoftwareAdapter(This, Module, ppAdapter) \
6267  ((This)->lpVtbl->CreateSoftwareAdapter(This, Module, ppAdapter))
6268 
6269 #endif /* COBJMACROS */
6270 
6271 #endif /* C style interface */
6272 
6273 #endif /* __IDXGIFactory_INTERFACE_DEFINED__ */
6274 
6275 struct DXGI_ADAPTER_DESC;
6276 
6277 #ifndef __IDXGIAdapter_INTERFACE_DEFINED__
6278 #define __IDXGIAdapter_INTERFACE_DEFINED__
6279 
6280 /* interface IDXGIAdapter */
6281 /* [unique][local][uuid][object] */
6282 
6284 
6285 #if defined(__cplusplus) && !defined(CINTERFACE)
6286 
6287 MIDL_INTERFACE("2411e7e1-12ac-4ccf-bd14-9798e8534dc0")
6288 IDXGIAdapter : public IDXGIObject {
6289 public:
6290  virtual HRESULT STDMETHODCALLTYPE EnumOutputs(
6291  /* [in] */ UINT Output,
6292  /* [annotation][out][in] */
6293  _COM_Outptr_ IDXGIOutput * *ppOutput) = 0;
6294 
6295  virtual HRESULT STDMETHODCALLTYPE GetDesc(
6296  /* [annotation][out] */
6297  _Out_ DXGI_ADAPTER_DESC * pDesc) = 0;
6298 
6299  virtual HRESULT STDMETHODCALLTYPE CheckInterfaceSupport(
6300  /* [annotation][in] */
6301  _In_ REFGUID InterfaceName,
6302  /* [annotation][out] */
6303  _Out_ LARGE_INTEGER * pUMDVersion) = 0;
6304 };
6305 
6306 #else /* C style interface */
6307 
6308 typedef struct IDXGIAdapterVtbl {
6310 
6311  HRESULT(STDMETHODCALLTYPE *QueryInterface)
6312  (
6313  IDXGIAdapter *This,
6314  /* [in] */ REFIID riid,
6315  /* [annotation][iid_is][out] */
6316  _COM_Outptr_ void **ppvObject);
6317 
6318  ULONG(STDMETHODCALLTYPE *AddRef)
6319  (
6321 
6322  ULONG(STDMETHODCALLTYPE *Release)
6323  (
6324  IDXGIAdapter *This);
6325 
6326  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
6327  (
6329  /* [annotation][in] */
6330  _In_ REFGUID Name,
6331  /* [in] */ UINT DataSize,
6332  /* [annotation][in] */
6333  _In_reads_bytes_(DataSize) const void *pData);
6334 
6335  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
6336  (
6338  /* [annotation][in] */
6339  _In_ REFGUID Name,
6340  /* [annotation][in] */
6341  _In_opt_ const IUnknown *pUnknown);
6342 
6343  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
6344  (
6346  /* [annotation][in] */
6347  _In_ REFGUID Name,
6348  /* [annotation][out][in] */
6350  /* [annotation][out] */
6352 
6353  HRESULT(STDMETHODCALLTYPE *GetParent)
6354  (
6356  /* [annotation][in] */
6357  _In_ REFIID riid,
6358  /* [annotation][retval][out] */
6359  _COM_Outptr_ void **ppParent);
6360 
6361  HRESULT(STDMETHODCALLTYPE *EnumOutputs)
6362  (
6364  /* [in] */ UINT Output,
6365  /* [annotation][out][in] */
6367 
6368  HRESULT(STDMETHODCALLTYPE *GetDesc)
6369  (
6371  /* [annotation][out] */
6373 
6374  HRESULT(STDMETHODCALLTYPE *CheckInterfaceSupport)
6375  (
6377  /* [annotation][in] */
6379  /* [annotation][out] */
6381 
6384 
6385 interface IDXGIAdapter {
6386  CONST_VTBL struct IDXGIAdapterVtbl *lpVtbl;
6387 };
6388 
6389 #ifdef COBJMACROS
6390 
6391 #define IDXGIAdapter_QueryInterface(This, riid, ppvObject) \
6392  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
6393 
6394 #define IDXGIAdapter_AddRef(This) \
6395  ((This)->lpVtbl->AddRef(This))
6396 
6397 #define IDXGIAdapter_Release(This) \
6398  ((This)->lpVtbl->Release(This))
6399 
6400 #define IDXGIAdapter_SetPrivateData(This, Name, DataSize, pData) \
6401  ((This)->lpVtbl->SetPrivateData(This, Name, DataSize, pData))
6402 
6403 #define IDXGIAdapter_SetPrivateDataInterface(This, Name, pUnknown) \
6404  ((This)->lpVtbl->SetPrivateDataInterface(This, Name, pUnknown))
6405 
6406 #define IDXGIAdapter_GetPrivateData(This, Name, pDataSize, pData) \
6407  ((This)->lpVtbl->GetPrivateData(This, Name, pDataSize, pData))
6408 
6409 #define IDXGIAdapter_GetParent(This, riid, ppParent) \
6410  ((This)->lpVtbl->GetParent(This, riid, ppParent))
6411 
6412 #define IDXGIAdapter_EnumOutputs(This, Output, ppOutput) \
6413  ((This)->lpVtbl->EnumOutputs(This, Output, ppOutput))
6414 
6415 #define IDXGIAdapter_GetDesc(This, pDesc) \
6416  ((This)->lpVtbl->GetDesc(This, pDesc))
6417 
6418 #define IDXGIAdapter_CheckInterfaceSupport(This, InterfaceName, pUMDVersion) \
6419  ((This)->lpVtbl->CheckInterfaceSupport(This, InterfaceName, pUMDVersion))
6420 
6421 #endif /* COBJMACROS */
6422 
6423 #endif /* C style interface */
6424 
6425 #endif /* __IDXGIAdapter_INTERFACE_DEFINED__ */
6426 
6427 #ifndef __IDXGIFactory1_INTERFACE_DEFINED__
6428 #define __IDXGIFactory1_INTERFACE_DEFINED__
6429 
6430 /* interface IDXGIFactory1 */
6431 /* [unique][local][uuid][object] */
6432 
6434 
6435 #if defined(__cplusplus) && !defined(CINTERFACE)
6436 
6437 MIDL_INTERFACE("770aae78-f26f-4dba-a829-253c83d1b387")
6438 IDXGIFactory1 : public IDXGIFactory {
6439 public:
6440  virtual HRESULT STDMETHODCALLTYPE EnumAdapters1(
6441  /* [in] */ UINT Adapter,
6442  /* [annotation][out] */
6443  _COM_Outptr_ IDXGIAdapter1 * *ppAdapter) = 0;
6444 
6445  virtual BOOL STDMETHODCALLTYPE IsCurrent() = 0;
6446 };
6447 
6448 #else /* C style interface */
6449 
6450 typedef struct IDXGIFactory1Vtbl {
6452 
6453  HRESULT(STDMETHODCALLTYPE *QueryInterface)
6454  (
6456  /* [in] */ REFIID riid,
6457  /* [annotation][iid_is][out] */
6458  _COM_Outptr_ void **ppvObject);
6459 
6460  ULONG(STDMETHODCALLTYPE *AddRef)
6461  (
6463 
6464  ULONG(STDMETHODCALLTYPE *Release)
6465  (
6466  IDXGIFactory1 *This);
6467 
6468  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
6469  (
6471  /* [annotation][in] */
6472  _In_ REFGUID Name,
6473  /* [in] */ UINT DataSize,
6474  /* [annotation][in] */
6475  _In_reads_bytes_(DataSize) const void *pData);
6476 
6477  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
6478  (
6480  /* [annotation][in] */
6481  _In_ REFGUID Name,
6482  /* [annotation][in] */
6483  _In_opt_ const IUnknown *pUnknown);
6484 
6485  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
6486  (
6488  /* [annotation][in] */
6489  _In_ REFGUID Name,
6490  /* [annotation][out][in] */
6492  /* [annotation][out] */
6494 
6495  HRESULT(STDMETHODCALLTYPE *GetParent)
6496  (
6498  /* [annotation][in] */
6499  _In_ REFIID riid,
6500  /* [annotation][retval][out] */
6501  _COM_Outptr_ void **ppParent);
6502 
6503  HRESULT(STDMETHODCALLTYPE *EnumAdapters)
6504  (
6506  /* [in] */ UINT Adapter,
6507  /* [annotation][out] */
6509 
6510  HRESULT(STDMETHODCALLTYPE *MakeWindowAssociation)
6511  (
6513  HWND WindowHandle,
6514  UINT Flags);
6515 
6516  HRESULT(STDMETHODCALLTYPE *GetWindowAssociation)
6517  (
6519  /* [annotation][out] */
6520  _Out_ HWND *pWindowHandle);
6521 
6522  HRESULT(STDMETHODCALLTYPE *CreateSwapChain)
6523  (
6525  /* [annotation][in] */
6527  /* [annotation][in] */
6529  /* [annotation][out] */
6531 
6532  HRESULT(STDMETHODCALLTYPE *CreateSoftwareAdapter)
6533  (
6535  /* [in] */ HMODULE Module,
6536  /* [annotation][out] */
6538 
6539  HRESULT(STDMETHODCALLTYPE *EnumAdapters1)
6540  (
6542  /* [in] */ UINT Adapter,
6543  /* [annotation][out] */
6545 
6546  BOOL(STDMETHODCALLTYPE *IsCurrent)
6547  (
6548  IDXGIFactory1 *This);
6549 
6552 
6553 interface IDXGIFactory1 {
6554  CONST_VTBL struct IDXGIFactory1Vtbl *lpVtbl;
6555 };
6556 
6557 #ifdef COBJMACROS
6558 
6559 #define IDXGIFactory1_QueryInterface(This, riid, ppvObject) \
6560  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
6561 
6562 #define IDXGIFactory1_AddRef(This) \
6563  ((This)->lpVtbl->AddRef(This))
6564 
6565 #define IDXGIFactory1_Release(This) \
6566  ((This)->lpVtbl->Release(This))
6567 
6568 #define IDXGIFactory1_SetPrivateData(This, Name, DataSize, pData) \
6569  ((This)->lpVtbl->SetPrivateData(This, Name, DataSize, pData))
6570 
6571 #define IDXGIFactory1_SetPrivateDataInterface(This, Name, pUnknown) \
6572  ((This)->lpVtbl->SetPrivateDataInterface(This, Name, pUnknown))
6573 
6574 #define IDXGIFactory1_GetPrivateData(This, Name, pDataSize, pData) \
6575  ((This)->lpVtbl->GetPrivateData(This, Name, pDataSize, pData))
6576 
6577 #define IDXGIFactory1_GetParent(This, riid, ppParent) \
6578  ((This)->lpVtbl->GetParent(This, riid, ppParent))
6579 
6580 #define IDXGIFactory1_EnumAdapters(This, Adapter, ppAdapter) \
6581  ((This)->lpVtbl->EnumAdapters(This, Adapter, ppAdapter))
6582 
6583 #define IDXGIFactory1_MakeWindowAssociation(This, WindowHandle, Flags) \
6584  ((This)->lpVtbl->MakeWindowAssociation(This, WindowHandle, Flags))
6585 
6586 #define IDXGIFactory1_GetWindowAssociation(This, pWindowHandle) \
6587  ((This)->lpVtbl->GetWindowAssociation(This, pWindowHandle))
6588 
6589 #define IDXGIFactory1_CreateSwapChain(This, pDevice, pDesc, ppSwapChain) \
6590  ((This)->lpVtbl->CreateSwapChain(This, pDevice, pDesc, ppSwapChain))
6591 
6592 #define IDXGIFactory1_CreateSoftwareAdapter(This, Module, ppAdapter) \
6593  ((This)->lpVtbl->CreateSoftwareAdapter(This, Module, ppAdapter))
6594 
6595 #define IDXGIFactory1_EnumAdapters1(This, Adapter, ppAdapter) \
6596  ((This)->lpVtbl->EnumAdapters1(This, Adapter, ppAdapter))
6597 
6598 #define IDXGIFactory1_IsCurrent(This) \
6599  ((This)->lpVtbl->IsCurrent(This))
6600 
6601 #endif /* COBJMACROS */
6602 
6603 #endif /* C style interface */
6604 
6605 #endif /* __IDXGIFactory1_INTERFACE_DEFINED__ */
6606 
6607 #ifndef __IDXGIAdapter1_INTERFACE_DEFINED__
6608 #define __IDXGIAdapter1_INTERFACE_DEFINED__
6609 
6610 /* interface IDXGIAdapter1 */
6611 /* [unique][local][uuid][object] */
6612 
6614 
6615 #if defined(__cplusplus) && !defined(CINTERFACE)
6616 
6617 MIDL_INTERFACE("29038f61-3839-4626-91fd-086879011a05")
6618 IDXGIAdapter1 : public IDXGIAdapter {
6619 public:
6620  virtual HRESULT STDMETHODCALLTYPE GetDesc1(
6621  /* [annotation][out] */
6623 };
6624 
6625 #else /* C style interface */
6626 
6627 typedef struct IDXGIAdapter1Vtbl {
6629 
6630  HRESULT(STDMETHODCALLTYPE *QueryInterface)
6631  (
6633  /* [in] */ REFIID riid,
6634  /* [annotation][iid_is][out] */
6635  _COM_Outptr_ void **ppvObject);
6636 
6637  ULONG(STDMETHODCALLTYPE *AddRef)
6638  (
6640 
6641  ULONG(STDMETHODCALLTYPE *Release)
6642  (
6643  IDXGIAdapter1 *This);
6644 
6645  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
6646  (
6648  /* [annotation][in] */
6649  _In_ REFGUID Name,
6650  /* [in] */ UINT DataSize,
6651  /* [annotation][in] */
6652  _In_reads_bytes_(DataSize) const void *pData);
6653 
6654  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
6655  (
6657  /* [annotation][in] */
6658  _In_ REFGUID Name,
6659  /* [annotation][in] */
6660  _In_opt_ const IUnknown *pUnknown);
6661 
6662  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
6663  (
6665  /* [annotation][in] */
6666  _In_ REFGUID Name,
6667  /* [annotation][out][in] */
6669  /* [annotation][out] */
6671 
6672  HRESULT(STDMETHODCALLTYPE *GetParent)
6673  (
6675  /* [annotation][in] */
6676  _In_ REFIID riid,
6677  /* [annotation][retval][out] */
6678  _COM_Outptr_ void **ppParent);
6679 
6680  HRESULT(STDMETHODCALLTYPE *EnumOutputs)
6681  (
6683  /* [in] */ UINT Output,
6684  /* [annotation][out][in] */
6686 
6687  HRESULT(STDMETHODCALLTYPE *GetDesc)
6688  (
6690  /* [annotation][out] */
6692 
6693  HRESULT(STDMETHODCALLTYPE *CheckInterfaceSupport)
6694  (
6696  /* [annotation][in] */
6698  /* [annotation][out] */
6700 
6701  HRESULT(STDMETHODCALLTYPE *GetDesc1)
6702  (
6704  /* [annotation][out] */
6706 
6709 
6710 interface IDXGIAdapter1 {
6711  CONST_VTBL struct IDXGIAdapter1Vtbl *lpVtbl;
6712 };
6713 
6714 #ifdef COBJMACROS
6715 
6716 #define IDXGIAdapter1_QueryInterface(This, riid, ppvObject) \
6717  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
6718 
6719 #define IDXGIAdapter1_AddRef(This) \
6720  ((This)->lpVtbl->AddRef(This))
6721 
6722 #define IDXGIAdapter1_Release(This) \
6723  ((This)->lpVtbl->Release(This))
6724 
6725 #define IDXGIAdapter1_SetPrivateData(This, Name, DataSize, pData) \
6726  ((This)->lpVtbl->SetPrivateData(This, Name, DataSize, pData))
6727 
6728 #define IDXGIAdapter1_SetPrivateDataInterface(This, Name, pUnknown) \
6729  ((This)->lpVtbl->SetPrivateDataInterface(This, Name, pUnknown))
6730 
6731 #define IDXGIAdapter1_GetPrivateData(This, Name, pDataSize, pData) \
6732  ((This)->lpVtbl->GetPrivateData(This, Name, pDataSize, pData))
6733 
6734 #define IDXGIAdapter1_GetParent(This, riid, ppParent) \
6735  ((This)->lpVtbl->GetParent(This, riid, ppParent))
6736 
6737 #define IDXGIAdapter1_EnumOutputs(This, Output, ppOutput) \
6738  ((This)->lpVtbl->EnumOutputs(This, Output, ppOutput))
6739 
6740 #define IDXGIAdapter1_GetDesc(This, pDesc) \
6741  ((This)->lpVtbl->GetDesc(This, pDesc))
6742 
6743 #define IDXGIAdapter1_CheckInterfaceSupport(This, InterfaceName, pUMDVersion) \
6744  ((This)->lpVtbl->CheckInterfaceSupport(This, InterfaceName, pUMDVersion))
6745 
6746 #define IDXGIAdapter1_GetDesc1(This, pDesc) \
6747  ((This)->lpVtbl->GetDesc1(This, pDesc))
6748 
6749 #endif /* COBJMACROS */
6750 
6751 #endif /* C style interface */
6752 
6753 #endif /* __IDXGIAdapter1_INTERFACE_DEFINED__ */
6754 
6755 // NOTE(marcos): declaring CreateDXGIFactory "1" since it works on UWP as well
6756 // HRESULT WINAPI CreateDXGIFactory1(REFIID riid, _COM_Outptr_ void **ppFactory);
6757 typedef HRESULT(WINAPI *PFN_CREATEDXGIFACORY1)(REFIID riid, _COM_Outptr_ void **ppFactory);
6758 
6759 DEFINE_GUID(IID_IDXGIObject, 0xaec22fb8, 0x76f3, 0x4639, 0x9b, 0xe0, 0x28, 0xeb, 0x43, 0xa6, 0x7a, 0x2e);
6760 DEFINE_GUID(IID_IDXGIDeviceSubObject, 0x3d3e0379, 0xf9de, 0x4d58, 0xbb, 0x6c, 0x18, 0xd6, 0x29, 0x92, 0xf1, 0xa6);
6761 DEFINE_GUID(IID_IDXGIResource, 0x035f3ab4, 0x482e, 0x4e50, 0xb4, 0x1f, 0x8a, 0x7f, 0x8b, 0xd8, 0x96, 0x0b);
6762 DEFINE_GUID(IID_IDXGIKeyedMutex, 0x9d8e1289, 0xd7b3, 0x465f, 0x81, 0x26, 0x25, 0x0e, 0x34, 0x9a, 0xf8, 0x5d);
6763 DEFINE_GUID(IID_IDXGISurface, 0xcafcb56c, 0x6ac3, 0x4889, 0xbf, 0x47, 0x9e, 0x23, 0xbb, 0xd2, 0x60, 0xec);
6764 DEFINE_GUID(IID_IDXGISurface1, 0x4AE63092, 0x6327, 0x4c1b, 0x80, 0xAE, 0xBF, 0xE1, 0x2E, 0xA3, 0x2B, 0x86);
6765 DEFINE_GUID(IID_IDXGIAdapter, 0x2411e7e1, 0x12ac, 0x4ccf, 0xbd, 0x14, 0x97, 0x98, 0xe8, 0x53, 0x4d, 0xc0);
6766 DEFINE_GUID(IID_IDXGIOutput, 0xae02eedb, 0xc735, 0x4690, 0x8d, 0x52, 0x5a, 0x8d, 0xc2, 0x02, 0x13, 0xaa);
6767 DEFINE_GUID(IID_IDXGISwapChain, 0x310d36a0, 0xd2e7, 0x4c0a, 0xaa, 0x04, 0x6a, 0x9d, 0x23, 0xb8, 0x88, 0x6a);
6768 DEFINE_GUID(IID_IDXGIFactory, 0x7b7166ec, 0x21c7, 0x44ae, 0xb2, 0x1a, 0xc9, 0xae, 0x32, 0x1a, 0xe3, 0x69);
6769 DEFINE_GUID(IID_IDXGIDevice, 0x54ec77fa, 0x1377, 0x44e6, 0x8c, 0x32, 0x88, 0xfd, 0x5f, 0x44, 0xc8, 0x4c);
6770 DEFINE_GUID(IID_IDXGIFactory1, 0x770aae78, 0xf26f, 0x4dba, 0xa8, 0x29, 0x25, 0x3c, 0x83, 0xd1, 0xb3, 0x87);
6771 DEFINE_GUID(IID_IDXGIAdapter1, 0x29038f61, 0x3839, 0x4626, 0x91, 0xfd, 0x08, 0x68, 0x79, 0x01, 0x1a, 0x05);
6772 DEFINE_GUID(IID_IDXGIDevice1, 0x77db970f, 0x6276, 0x48ba, 0xba, 0x28, 0x07, 0x01, 0x43, 0xb4, 0x39, 0x2c);
6773 
6774 /* d3dcompiler.h */
6776  _In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
6777  _In_ SIZE_T SrcDataSize,
6778  _In_opt_ LPCSTR pSourceName,
6779  _In_reads_opt_(_Inexpressible_(pDefines->Name != nullptr)) CONST D3D_SHADER_MACRO *pDefines,
6780  _In_opt_ ID3DInclude *pInclude,
6781  _In_opt_ LPCSTR pEntrypoint,
6782  _In_ LPCSTR pTarget,
6783  _In_ UINT Flags1,
6784  _In_ UINT Flags2,
6785  _Out_ ID3DBlob **ppCode,
6786  _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppErrorMsgs);
6787 
6788 #define D3DCOMPILE_DEBUG (1 << 0)
6789 #define D3DCOMPILE_SKIP_VALIDATION (1 << 1)
6790 #define D3DCOMPILE_SKIP_OPTIMIZATION (1 << 2)
6791 #define D3DCOMPILE_PACK_MATRIX_ROW_MAJOR (1 << 3)
6792 #define D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR (1 << 4)
6793 #define D3DCOMPILE_PARTIAL_PRECISION (1 << 5)
6794 #define D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT (1 << 6)
6795 #define D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT (1 << 7)
6796 #define D3DCOMPILE_NO_PRESHADER (1 << 8)
6797 #define D3DCOMPILE_AVOID_FLOW_CONTROL (1 << 9)
6798 #define D3DCOMPILE_PREFER_FLOW_CONTROL (1 << 10)
6799 #define D3DCOMPILE_ENABLE_STRICTNESS (1 << 11)
6800 #define D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY (1 << 12)
6801 #define D3DCOMPILE_IEEE_STRICTNESS (1 << 13)
6802 #define D3DCOMPILE_OPTIMIZATION_LEVEL0 (1 << 14)
6803 #define D3DCOMPILE_OPTIMIZATION_LEVEL1 0
6804 #define D3DCOMPILE_OPTIMIZATION_LEVEL2 ((1 << 14) | (1 << 15))
6805 #define D3DCOMPILE_OPTIMIZATION_LEVEL3 (1 << 15)
6806 #define D3DCOMPILE_RESERVED16 (1 << 16)
6807 #define D3DCOMPILE_RESERVED17 (1 << 17)
6808 #define D3DCOMPILE_WARNINGS_ARE_ERRORS (1 << 18)
6809 #define D3DCOMPILE_RESOURCES_MAY_ALIAS (1 << 19)
6810 #define D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES (1 << 20)
6811 #define D3DCOMPILE_ALL_RESOURCES_BOUND (1 << 21)
6812 
6813 #ifdef __clang__
6814 #pragma clang diagnostic pop
6815 #endif
6816 
6817 // Mini Win32 for D3D12
6818 
6819 #if !defined(WINBASEAPI)
6820 #if !defined(_KERNEL32_)
6821 #define WINBASEAPI DECLSPEC_IMPORT
6822 #else
6823 #define WINBASEAPI
6824 #endif
6825 #endif
6826 
6827 #define _Ret_maybenull_
6828 #define _Post_ptr_invalid_
6829 
6830 #define STATUS_WAIT_0 ((DWORD)0x00000000L)
6831 #define WAIT_OBJECT_0 ((STATUS_WAIT_0) + 0)
6832 
6833 extern "C" {
6834 
6835 WINBASEAPI
6836 BOOL
6837  WINAPI
6838  CloseHandle(
6839  _In_ _Post_ptr_invalid_ HANDLE hObject);
6840 
6841 WINBASEAPI
6843  HANDLE
6844  WINAPI
6845  CreateEventA(
6846  _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes,
6847  _In_ BOOL bManualReset,
6848  _In_ BOOL bInitialState,
6849  _In_opt_ LPCSTR lpName);
6850 
6851 WINBASEAPI
6853  HANDLE
6854  WINAPI
6855  CreateEventW(
6856  _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes,
6857  _In_ BOOL bManualReset,
6858  _In_ BOOL bInitialState,
6859  _In_opt_ LPCWSTR lpName);
6860 
6861 WINBASEAPI
6862 DWORD
6863 WINAPI
6865  _In_ HANDLE hHandle,
6866  _In_ DWORD dwMilliseconds);
6867 }
6868 
6869 #ifdef UNICODE
6870 #define CreateEvent CreateEventW
6871 #else
6872 #define CreateEvent CreateEventA
6873 #endif // !UNICODE
6874 
6875 // end of Mini Win32 for D3D12
6876 
6877 #endif /*__mini_d3d12_h__*/
#define _Out_opt_
Definition: mini_d3d12.h:45
ID3D12CommandQueue _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:4426
ID3D12Resource * pResource
Definition: mini_d3d12.h:2821
FLOAT ResourceMinLODClamp
Definition: mini_d3d12.h:2363
void __RPC_FAR * ImportContext
Definition: mini_d3d12.h:571
ID3D12Fence UINT64 Value
Definition: mini_d3d12.h:5356
D3D12_BUFFER_SRV_FLAGS Flags
Definition: mini_d3d12.h:2321
struct D3D12_CPU_DESCRIPTOR_HANDLE D3D12_CPU_DESCRIPTOR_HANDLE
interface ID3D12CommandQueue ID3D12CommandQueue
Definition: mini_d3d12.h:1395
IDXGIAdapter _In_ REFIID _COM_Outptr_ void ** ppParent
Definition: mini_d3d12.h:6355
struct D3D12_TEX2DMS_ARRAY_SRV D3D12_TEX2DMS_ARRAY_SRV
IDXGIFactory _In_ REFGUID _Inout_ UINT _Out_writes_bytes_ pDataSize void * pData
Definition: mini_d3d12.h:6178
interface ID3D12Debug ID3D12Debug
Definition: mini_d3d12.h:5805
D3D12_STENCIL_OP
Definition: mini_d3d12.h:2005
ID3D12Device _In_ const D3D12_DESCRIPTOR_HEAP_DESC REFIID riid
Definition: mini_d3d12.h:4915
struct ID3D12DescriptorHeapVtbl ID3D12DescriptorHeapVtbl
interface IDXGIFactory IDXGIFactory
Definition: mini_d3d12.h:5911
struct D3D12_BUFFER_SRV D3D12_BUFFER_SRV
D3D12_RESOURCE_STATES StateAfter
Definition: mini_d3d12.h:2854
IDXGIAdapter1 _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:6664
ID3D12GraphicsCommandList _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:3809
ID3D12Object _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:1483
struct D3D12_SHADER_BYTECODE D3D12_SHADER_BYTECODE
ID3D12RootSignature * pRootSignature
Definition: mini_d3d12.h:2104
interface ID3D12Tools ID3D12Tools
Definition: mini_d3d12.h:1431
D3D12_INDIRECT_ARGUMENT_TYPE Type
Definition: mini_d3d12.h:2739
INT BOOL
Definition: mini_d3d12.h:192
_In_ UINT _In_ UINT _In_ UINT _In_ INT _In_ UINT StartInstanceLocation
Definition: mini_d3d12.h:3858
union _LARGE_INTEGER LARGE_INTEGER
IDXGIObject _In_ REFIID _COM_Outptr_ void ** ppParent
Definition: mini_d3d12.h:6051
unsigned int ProcNum
Definition: mini_d3d12.h:566
_In_opt_ ID3D12Resource _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC * pDesc
Definition: mini_d3d12.h:4954
IDXGIFactory1 HWND WindowHandle
Definition: mini_d3d12.h:6512
struct D3D12_TEX1D_SRV D3D12_TEX1D_SRV
ID3D12RootSignature _In_ REFGUID guid
Definition: mini_d3d12.h:1665
ID3D12CommandQueue _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:4419
struct ID3D12CommandListVtbl ID3D12CommandListVtbl
D3D12_STREAM_OUTPUT_DESC StreamOutput
Definition: mini_d3d12.h:2086
struct D3D12_DEPTH_STENCILOP_DESC D3D12_DEPTH_STENCILOP_DESC
IDXGIFactory1 HWND UINT Flags
Definition: mini_d3d12.h:6512
struct D3D12_INDEX_BUFFER_VIEW D3D12_INDEX_BUFFER_VIEW
D3D12_SHADER_VISIBILITY ShaderVisibility
Definition: mini_d3d12.h:3069
BEGIN_INTERFACE(ID3D12DeviceChild *This, REFIID riid, _COM_Outptr_ void **ppvObject)
struct IDXGIObjectVtbl IDXGIObjectVtbl
D3D12_PIPELINE_STATE_FLAGS
Definition: mini_d3d12.h:2054
ID3D12Device _In_ const D3D12_COMMAND_SIGNATURE_DESC _In_opt_ ID3D12RootSignature REFIID riid
Definition: mini_d3d12.h:5110
D3D12_CPU_PAGE_PROPERTY CPUPageProperty
Definition: mini_d3d12.h:2177
_Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters
ULONG_PTR * PSIZE_T
Definition: mini_d3d12.h:259
D3D12_CULL_MODE CullMode
Definition: mini_d3d12.h:1977
struct D3D12_TEX2D_DSV D3D12_TEX2D_DSV
IDXGIFactory1 _In_ IUnknown * pDevice
Definition: mini_d3d12.h:6524
struct D3D12_TILE_REGION_SIZE D3D12_TILE_REGION_SIZE
IDXGIAdapter1 UINT _COM_Outptr_ IDXGIOutput ** ppOutput
Definition: mini_d3d12.h:6682
IDXGIAdapter _In_ REFGUID _Out_ LARGE_INTEGER * pUMDVersion
Definition: mini_d3d12.h:6376
D3D12_HEAP_PROPERTIES Properties
Definition: mini_d3d12.h:2695
D3D12_ROOT_CONSTANTS Constants
Definition: mini_d3d12.h:3066
ID3D12Fence _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:5328
IDXGIFactory _Out_ HWND * pWindowHandle
Definition: mini_d3d12.h:6203
ID3D12CommandList * This
Definition: mini_d3d12.h:3436
#define __RPC_FAR
Definition: mini_d3d12.h:529
#define WINBASEAPI
Definition: mini_d3d12.h:6821
interface ID3D12Object ID3D12Object
Definition: mini_d3d12.h:1293
_In_ ID3D12Resource UINT _In_opt_ ID3D12Heap UINT D3D12_TILE_MAPPING_FLAGS Flags
Definition: mini_d3d12.h:4459
D3D12_COMPARISON_FUNC ComparisonFunc
Definition: mini_d3d12.h:3008
D3D12_RESOURCE_FLAGS
Definition: mini_d3d12.h:2131
IDXGIAdapter _Out_ DXGI_ADAPTER_DESC * pDesc
Definition: mini_d3d12.h:6370
_In_ UINT _In_ UINT _In_ UINT ThreadGroupCountZ
Definition: mini_d3d12.h:3866
ID3D12CommandList _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:3447
LPCSTR LPCOLESTR
Definition: mini_d3d12.h:935
D3D12_ROOT_PARAMETER_TYPE
Definition: mini_d3d12.h:2936
ID3D12Fence _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:5335
interface ID3D10Blob * LPD3D10BLOB
Definition: mini_d3d12.h:1259
D3D12_DSV_FLAGS
Definition: mini_d3d12.h:2593
IDXGIObject _In_ REFGUID UINT DataSize
Definition: mini_d3d12.h:6024
#define _Inout_
Definition: mini_d3d12.h:49
ID3D12Device _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:4841
ID3D12DeviceChild _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:1591
IDXGIFactory1 _In_ REFGUID Name
Definition: mini_d3d12.h:6470
D3D12_TEX2D_ARRAY_SRV Texture2DArray
Definition: mini_d3d12.h:2406
interface ID3D12Fence ID3D12Fence
Definition: mini_d3d12.h:1347
_In_opt_ ID3D12RootSignature * pRootSignature
Definition: mini_d3d12.h:3951
IUnknown * This
Definition: mini_d3d12.h:852
IDXGIAdapter1 _In_ REFIID _COM_Outptr_ void ** ppParent
Definition: mini_d3d12.h:6674
D3D12_UAV_DIMENSION ViewDimension
Definition: mini_d3d12.h:2484
D3D12_RESOURCE_DIMENSION Dimension
Definition: mini_d3d12.h:2143
IDXGIObject * This
Definition: mini_d3d12.h:6016
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: mini_d3d12.h:506
EXTERN_C const IID IID_ID3D12CommandQueue
Definition: mini_d3d12.h:4337
#define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE
Definition: mini_d3d12.h:2831
struct DXGI_SWAP_CHAIN_DESC DXGI_SWAP_CHAIN_DESC
Definition: mini_d3d12.h:5959
ID3D12Resource UINT _In_opt_ const D3D12_RANGE _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData)
EXTERN_C const IID IID_IUnknown
Definition: mini_d3d12.h:818
#define _Out_writes_bytes_(size)
Definition: mini_d3d12.h:113
interface IDXGIOutput IDXGIOutput
Definition: mini_d3d12.h:5899
struct D3D12_SHADER_RESOURCE_VIEW_DESC D3D12_SHADER_RESOURCE_VIEW_DESC
struct ID3D12PageableVtbl ID3D12PageableVtbl
RPC_BINDING_HANDLE Handle
Definition: mini_d3d12.h:562
struct ID3D12CommandQueueVtbl ID3D12CommandQueueVtbl
void far * LPVOID
Definition: mini_d3d12.h:190
struct D3D12_RENDER_TARGET_BLEND_DESC D3D12_RENDER_TARGET_BLEND_DESC
#define _Post_equal_to_(e)
Definition: mini_d3d12.h:77
ID3D12Pageable _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
UINT * PUINT32
Definition: mini_d3d12.h:225
struct D3D12_DESCRIPTOR_RANGE D3D12_DESCRIPTOR_RANGE
D3D12_DEPTH_STENCIL_VALUE DepthStencil
Definition: mini_d3d12.h:2243
struct D3D12_INDIRECT_ARGUMENT_DESC::@18::@23 ShaderResourceView
CHAR * PINT8
Definition: mini_d3d12.h:220
interface IDXGIAdapter IDXGIAdapter
Definition: mini_d3d12.h:5893
D3D12_TEXTURE_ADDRESS_MODE AddressU
Definition: mini_d3d12.h:3003
D3D12_ROOT_DESCRIPTOR_FLAGS
Definition: mini_d3d12.h:3048
_Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges
IDXGIAdapter _In_ REFGUID UINT _In_reads_bytes_(DataSize) const void *pData)
interface ID3D12QueryHeap ID3D12QueryHeap
Definition: mini_d3d12.h:1365
IDXGIFactory1 HMODULE Module
Definition: mini_d3d12.h:6534
D3D12_SHADER_VISIBILITY ShaderVisibility
Definition: mini_d3d12.h:2991
struct D3D12_STREAM_OUTPUT_DESC D3D12_STREAM_OUTPUT_DESC
IDXGIFactory HMODULE Module
Definition: mini_d3d12.h:6219
ID3D12PipelineState _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:5451
UINT bottom
Definition: mini_d3d12.h:1841
ID3D12Device _In_ ID3D12DeviceChild * pObject
Definition: mini_d3d12.h:5039
UINT StructureByteStride
Definition: mini_d3d12.h:2439
D3D12_TEX2D_ARRAY_DSV Texture2DArray
Definition: mini_d3d12.h:2618
_In_ UINT _In_ UINT _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType
Definition: mini_d3d12.h:4977
UINT UnusedField_NothingToDefine
Definition: mini_d3d12.h:2516
ID3D12CommandAllocator _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:3335
#define _Ret_maybenull_
Definition: mini_d3d12.h:6827
interface IDXGISwapChain IDXGISwapChain
Definition: mini_d3d12.h:5905
EXTERN_C const IID IID_IDXGIObject
Definition: mini_d3d12.h:5967
ID3D12CommandAllocator * This
Definition: mini_d3d12.h:3324
ID3D12RootSignature REFIID riid
Definition: mini_d3d12.h:1690
UINT64 CounterOffsetInBytes
Definition: mini_d3d12.h:2440
ID3D12Device D3D12_FEATURE Feature
Definition: mini_d3d12.h:4908
ID3D12Device _In_ UINT _In_ D3D12_COMMAND_LIST_TYPE type
Definition: mini_d3d12.h:4898
ID3D12DescriptorHeap _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:5588
struct D3D12_DESCRIPTOR_RANGE1 D3D12_DESCRIPTOR_RANGE1
ID3D12Pageable _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:1765
D3D12_TEXTURE_ADDRESS_MODE
Definition: mini_d3d12.h:2663
D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable
Definition: mini_d3d12.h:2987
interface ID3D12PipelineLibrary1 ID3D12PipelineLibrary1
Definition: mini_d3d12.h:1413
IDXGIFactory1 _In_ REFGUID _In_opt_ const IUnknown * pUnknown
Definition: mini_d3d12.h:6479
BYTE Data4[8]
Definition: mini_d3d12.h:471
D3D12_DESCRIPTOR_HEAP_TYPE Type
Definition: mini_d3d12.h:2686
RPC_BINDING_HANDLE handle_t
Definition: mini_d3d12.h:543
D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray
Definition: mini_d3d12.h:2620
ID3D12Device _In_ const D3D12_QUERY_HEAP_DESC REFIID riid
Definition: mini_d3d12.h:5098
interface ID3D12Device1 ID3D12Device1
Definition: mini_d3d12.h:1419
struct D3D12_DEPTH_STENCIL_VALUE D3D12_DEPTH_STENCIL_VALUE
ID3D12Resource _Out_ void UINT DstRowPitch
Definition: mini_d3d12.h:3222
ID3D12DescriptorHeap _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:5575
IDXGIFactory _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:6172
#define BEGIN_INTERFACE
Definition: mini_d3d12.h:597
#define _In_reads_opt_(size)
Definition: mini_d3d12.h:93
D3D12_TEX1D_ARRAY_UAV Texture1DArray
Definition: mini_d3d12.h:2488
ID3D12CommandList _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:3464
ID3D12PipelineState _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:5454
FLOAT ResourceMinLODClamp
Definition: mini_d3d12.h:2327
void(STDMETHODCALLTYPE *EnableDebugLayer)(ID3D12Debug *This)
IDXGIFactory1 _In_ REFGUID _Inout_ UINT _Out_writes_bytes_ pDataSize void * pData
Definition: mini_d3d12.h:6493
void(STDMETHODCALLTYPE *Unmap)(ID3D12Resource *This
WINBASEAPI BOOL WINAPI CloseHandle(_In_ _Post_ptr_invalid_ HANDLE hObject)
IDXGIFactory HWND UINT Flags
Definition: mini_d3d12.h:6197
struct D3D12_SUBRESOURCE_TILING D3D12_SUBRESOURCE_TILING
D3D12_DESCRIPTOR_RANGE_TYPE RangeType
Definition: mini_d3d12.h:2952
BEGIN_INTERFACE(IDXGIFactory1 *This, REFIID riid, _COM_Outptr_ void **ppvObject)
_In_ const D3D12_TEXTURE_COPY_LOCATION UINT UINT UINT _In_ const D3D12_TEXTURE_COPY_LOCATION _In_opt_ const D3D12_BOX * pSrcBox
Definition: mini_d3d12.h:3880
struct _GUID GUID
ID3D12RootSignature _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:1668
D3D_FEATURE_LEVEL
Definition: mini_d3d12.h:944
BEGIN_INTERFACE(ID3D12Resource *This, REFIID riid, _COM_Outptr_ void **ppvObject)
D3D12_LOGIC_OP
Definition: mini_d3d12.h:1921
ID3D12Resource UINT _In_opt_ const D3D12_RANGE * pReadRange
Definition: mini_d3d12.h:3193
ID3D12Object * This
Definition: mini_d3d12.h:1475
float FLOAT
Definition: mini_d3d12.h:184
ID3D12GraphicsCommandList _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:3816
ID3D12QueryHeap _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:5693
LONG left
Definition: mini_d3d12.h:446
struct __LUID LUID
D3D12_COMPARISON_FUNC ComparisonFunc
Definition: mini_d3d12.h:2678
#define MIDL_INTERFACE(x)
Definition: mini_d3d12.h:594
struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES
ID3D12Fence _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:5341
_Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER *pParameters
ID3D12Device _In_ LPCWSTR DWORD _Out_ HANDLE * pNTHandle
Definition: mini_d3d12.h:5055
ID3D12DeviceChild _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:1574
struct _SECURITY_ATTRIBUTES * PSECURITY_ATTRIBUTES
ID3D12CommandAllocator _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:3346
unsigned long RpcFlags
Definition: mini_d3d12.h:572
void * I_RPC_HANDLE
Definition: mini_d3d12.h:531
D3D12_ROOT_PARAMETER_TYPE ParameterType
Definition: mini_d3d12.h:2985
LPVOID lpSecurityDescriptor
Definition: mini_d3d12.h:271
D3D12_CACHED_PIPELINE_STATE CachedPSO
Definition: mini_d3d12.h:2099
ID3D12Resource _In_ REFGUID guid
Definition: mini_d3d12.h:3162
struct D3D12_SAMPLER_DESC D3D12_SAMPLER_DESC
D3D12_TEXCUBE_SRV TextureCube
Definition: mini_d3d12.h:2410
struct tagRECT RECT
struct D3D12_DEPTH_STENCIL_VIEW_DESC D3D12_DEPTH_STENCIL_VIEW_DESC
struct D3D12_TEX1D_ARRAY_UAV D3D12_TEX1D_ARRAY_UAV
#define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE)
Definition: mini_d3d12.h:414
ID3D12CommandQueue _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:4439
ID3D12Resource * This
Definition: mini_d3d12.h:3154
D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1
Definition: mini_d3d12.h:3090
D3D12_COMMAND_QUEUE_PRIORITY
Definition: mini_d3d12.h:1858
struct D3D12_VIEWPORT D3D12_VIEWPORT
D3D12_STENCIL_OP StencilFailOp
Definition: mini_d3d12.h:2017
IDXGIAdapter1 _In_ REFIID riid
Definition: mini_d3d12.h:6674
ID3D12Resource _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:3169
D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue
Definition: mini_d3d12.h:2092
struct D3D12_TEX2D_ARRAY_UAV D3D12_TEX2D_ARRAY_UAV
_Null_terminated_ CONST CHAR * PCSTR
Definition: mini_d3d12.h:205
#define CONST_VTBL
Definition: mini_d3d12.h:723
IDXGIFactory1 UINT _COM_Outptr_ IDXGIAdapter ** ppAdapter
Definition: mini_d3d12.h:6505
D3D12_RTV_DIMENSION ViewDimension
Definition: mini_d3d12.h:2551
IDXGIAdapter1 _In_ REFGUID Name
Definition: mini_d3d12.h:6647
#define EXTERN_C
Definition: mini_d3d12.h:327
_W64 UINT32 UINT_PTR
Definition: mini_d3d12.h:251
EXTERN_C const IID IID_ID3D12GraphicsCommandList
Definition: mini_d3d12.h:3525
ID3D12QueryHeap _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:5700
D3D12_ROOT_SIGNATURE_DESC Desc_1_0
Definition: mini_d3d12.h:3089
SIZE_T End
Definition: mini_d3d12.h:1833
D3D12_SRV_DIMENSION ViewDimension
Definition: mini_d3d12.h:2399
D3D12_TEXTURE_COPY_TYPE
Definition: mini_d3d12.h:2815
ID3D12DeviceChild REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:1596
struct D3D12_TEX1D_UAV D3D12_TEX1D_UAV
ID3D12Device _In_ const D3D12_HEAP_DESC REFIID riid
Definition: mini_d3d12.h:5012
ID3D12CommandAllocator REFIID riid
Definition: mini_d3d12.h:3357
GUID UUID
Definition: mini_d3d12.h:536
UINT StructureByteStride
Definition: mini_d3d12.h:2320
IDXGIAdapter _In_ REFGUID _Inout_ UINT _Out_writes_bytes_ pDataSize void * pData
Definition: mini_d3d12.h:6351
SIZE_T DedicatedVideoMemory
Definition: mini_d3d12.h:5933
D3D12_TEXTURE_ADDRESS_MODE AddressV
Definition: mini_d3d12.h:3004
IDXGIFactory * This
Definition: mini_d3d12.h:6147
ID3D12GraphicsCommandList REFIID riid
Definition: mini_d3d12.h:3827
D3D12_RESOURCE_BARRIER_TYPE Type
Definition: mini_d3d12.h:2881
interface IUnknown IUnknown
Definition: mini_d3d12.h:742
D3D12_ROOT_PARAMETER_TYPE ParameterType
Definition: mini_d3d12.h:3063
struct IDXGIAdapter1Vtbl IDXGIAdapter1Vtbl
void __RPC_FAR * Buffer
Definition: mini_d3d12.h:564
__int64 INT64
Definition: mini_d3d12.h:230
D3D12_ROOT_SIGNATURE_FLAGS Flags
Definition: mini_d3d12.h:3077
interface ID3DInclude ID3DInclude
Definition: mini_d3d12.h:1193
IDXGIFactory _In_ REFIID _COM_Outptr_ void ** ppParent
Definition: mini_d3d12.h:6182
BYTE UINT8
Definition: mini_d3d12.h:223
interface ID3D12CommandAllocator ID3D12CommandAllocator
Definition: mini_d3d12.h:1341
SIZE_T DedicatedVideoMemory
Definition: mini_d3d12.h:5952
struct ID3D12FenceVtbl ID3D12FenceVtbl
BOOL AlphaToCoverageEnable
Definition: mini_d3d12.h:1954
interface ID3D12CommandList ID3D12CommandList
Definition: mini_d3d12.h:1377
D3D12_ROOT_SIGNATURE_FLAGS Flags
Definition: mini_d3d12.h:3022
D3D12_RESOURCE_TRANSITION_BARRIER Transition
Definition: mini_d3d12.h:2884
ID3D12Resource _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:3165
IDXGIAdapter _In_ REFIID riid
Definition: mini_d3d12.h:6355
D3D12_ROOT_DESCRIPTOR Descriptor
Definition: mini_d3d12.h:2989
IDXGIFactory1 _In_ REFGUID UINT DataSize
Definition: mini_d3d12.h:6470
unsigned __int64 * PUINT64
Definition: mini_d3d12.h:231
IDXGIAdapter1 * This
Definition: mini_d3d12.h:6639
interface ID3D12CommandSignature ID3D12CommandSignature
Definition: mini_d3d12.h:1371
D3D12_RESOURCE_ALIASING_BARRIER Aliasing
Definition: mini_d3d12.h:2885
D3D12_TEX2DMS_DSV Texture2DMS
Definition: mini_d3d12.h:2619
IDXGIObject _In_ REFGUID _In_opt_ const IUnknown * pUnknown
Definition: mini_d3d12.h:6033
EXTERN_C const IID IID_ID3D12QueryHeap
Definition: mini_d3d12.h:5663
struct ID3D10BlobVtbl ID3D10BlobVtbl
struct D3D12_CONSTANT_BUFFER_VIEW_DESC D3D12_CONSTANT_BUFFER_VIEW_DESC
ID3D12Device * This
Definition: mini_d3d12.h:4833
ID3D12GraphicsCommandList * This
Definition: mini_d3d12.h:3794
#define RPC_MGR_EPV
Definition: mini_d3d12.h:546
struct D3D12_ROOT_DESCRIPTOR_TABLE D3D12_ROOT_DESCRIPTOR_TABLE
ID3D12Resource * pResource
Definition: mini_d3d12.h:2863
#define STDMETHODCALLTYPE
Definition: mini_d3d12.h:300
_D3D_INCLUDE_TYPE
Definition: mini_d3d12.h:1185
ID3D12CommandList REFIID riid
Definition: mini_d3d12.h:3469
struct D3D12_TEX2DMS_DSV D3D12_TEX2DMS_DSV
_Field_size_full_(NumElements) const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs
D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY
Definition: mini_d3d12.h:2829
ID3D12CommandAllocator _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:3339
struct D3D12_INDIRECT_ARGUMENT_DESC::@18::@20 VertexBuffer
BEGIN_INTERFACE(ID3D12Debug *This, REFIID riid, _COM_Outptr_ void **ppvObject)
UINT OffsetInDescriptorsFromTableStart
Definition: mini_d3d12.h:2956
D3D12_RESOURCE_BARRIER_FLAGS Flags
Definition: mini_d3d12.h:2882
struct _D3D_SHADER_MACRO * LPD3D_SHADER_MACRO
Definition: mini_d3d12.h:1208
_In_ UINT NumDestDescriptorRanges
Definition: mini_d3d12.h:4971
WORD * PUINT16
Definition: mini_d3d12.h:224
BYTE * PUINT8
Definition: mini_d3d12.h:223
D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation
Definition: mini_d3d12.h:2899
struct ID3D12DeviceChildVtbl ID3D12DeviceChildVtbl
struct tagRECT * LPRECT
ID3D12Resource _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
D3D12_MEMORY_POOL
Definition: mini_d3d12.h:2162
BEGIN_INTERFACE(IDXGIAdapter *This, REFIID riid, _COM_Outptr_ void **ppvObject)
struct _D3D_SHADER_MACRO D3D_SHADER_MACRO
struct D3D12_TEX2D_ARRAY_DSV D3D12_TEX2D_ARRAY_DSV
struct D3D12_ROOT_SIGNATURE_DESC D3D12_ROOT_SIGNATURE_DESC
DWORD Data1
Definition: mini_d3d12.h:468
IDXGIAdapter1 _In_ REFGUID UINT _In_reads_bytes_(DataSize) const void *pData)
D3D12_TEX2DMS_SRV Texture2DMS
Definition: mini_d3d12.h:2407
struct ID3D12QueryHeapVtbl ID3D12QueryHeapVtbl
#define _In_opt_
Definition: mini_d3d12.h:37
LONG HighPart
Definition: mini_d3d12.h:4594
ID3D12DeviceChild _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:1578
struct D3D12_RANGE D3D12_RANGE
_In_opt_ ID3D12Resource * pBuffer
Definition: mini_d3d12.h:4108
struct tagRECT * PRECT
DXGI_ADAPTER_FLAG
Definition: mini_d3d12.h:5939
IDXGIFactory _In_ REFIID riid
Definition: mini_d3d12.h:6182
ID3D12Device _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC REFIID riid
Definition: mini_d3d12.h:4891
struct D3D12_TEX3D_UAV D3D12_TEX3D_UAV
RPC_VERSION SyntaxVersion
Definition: mini_d3d12.h:558
#define _Out_writes_bytes_opt_(size)
Definition: mini_d3d12.h:117
struct D3D12_DEPTH_STENCIL_DESC D3D12_DEPTH_STENCIL_DESC
D3D12_TEX1D_ARRAY_DSV Texture1DArray
Definition: mini_d3d12.h:2616
D3D12_RESOURCE_UAV_BARRIER UAV
Definition: mini_d3d12.h:2886
_In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE * pTileRegionStartCoordinate
Definition: mini_d3d12.h:3894
_In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC * pDesc
Definition: mini_d3d12.h:4936
IDXGIObject _In_ REFGUID Name
Definition: mini_d3d12.h:6024
#define _COM_Outptr_opt_
Definition: mini_d3d12.h:61
ID3D12PipelineState * This
Definition: mini_d3d12.h:5443
UINT front
Definition: mini_d3d12.h:1839
IDXGIAdapter1 _In_ REFGUID InterfaceName
Definition: mini_d3d12.h:6695
LONG bottom
Definition: mini_d3d12.h:449
struct D3D12_GRAPHICS_PIPELINE_STATE_DESC D3D12_GRAPHICS_PIPELINE_STATE_DESC
struct D3D12_TEX1D_ARRAY_DSV D3D12_TEX1D_ARRAY_DSV
struct D3D12_TEX2D_RTV D3D12_TEX2D_RTV
EXTERN_C const IID IID_IDXGIFactory1
Definition: mini_d3d12.h:6433
_In_ _COM_Outptr_opt_ void **typedef _In_ D3D_ROOT_SIGNATURE_VERSION _Out_ ID3DBlob ** ppBlob
Definition: mini_d3d12.h:5767
ID3D12RootSignature _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:1679
_In_reads_(NumRects) const D3D12_RECT *pRects
_In_ UINT _In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart
Definition: mini_d3d12.h:4981
IDXGIObject _In_ REFIID riid
Definition: mini_d3d12.h:6051
WCHAR Description[128]
Definition: mini_d3d12.h:5947
unsigned char BYTE
Definition: mini_d3d12.h:168
GUID IID
Definition: mini_d3d12.h:473
ID3D12RootSignature * This
Definition: mini_d3d12.h:1657
ID3D12Resource _Out_ void UINT UINT DstDepthPitch
Definition: mini_d3d12.h:3222
ID3D12DescriptorHeap _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:5568
struct D3D12_HEAP_PROPERTIES D3D12_HEAP_PROPERTIES
#define _Inout_updates_bytes_(size)
Definition: mini_d3d12.h:121
#define _Out_writes_opt_(size)
Definition: mini_d3d12.h:109
IDXGIAdapter UINT Output
Definition: mini_d3d12.h:6363
ID3D12CommandQueue _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:4433
D3D12_TEXTURE_ADDRESS_MODE AddressV
Definition: mini_d3d12.h:2674
IDXGIFactory1 _In_ REFIID riid
Definition: mini_d3d12.h:6497
enum _D3D_INCLUDE_TYPE D3D_INCLUDE_TYPE
D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable
Definition: mini_d3d12.h:3065
struct D3D12_INPUT_ELEMENT_DESC D3D12_INPUT_ELEMENT_DESC
D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
Definition: mini_d3d12.h:2891
struct ID3D12CommandAllocatorVtbl ID3D12CommandAllocatorVtbl
struct D3D12_GPU_DESCRIPTOR_HANDLE D3D12_GPU_DESCRIPTOR_HANDLE
D3D12_FENCE_FLAGS
Definition: mini_d3d12.h:2270
D3D12_SRV_DIMENSION
Definition: mini_d3d12.h:2383
#define _Out_writes_(size)
Definition: mini_d3d12.h:105
D3D12_CULL_MODE
Definition: mini_d3d12.h:1964
_In_ ID3D12QueryHeap _In_ D3D12_QUERY_TYPE Type
Definition: mini_d3d12.h:4087
UINT64 D3D12_GPU_VIRTUAL_ADDRESS
Definition: mini_d3d12.h:2415
D3D12_DEPTH_STENCIL_DESC DepthStencilState
Definition: mini_d3d12.h:2090
_In_ ID3D12Resource _In_ UINT _In_ ID3D12Resource _In_ UINT SrcSubresource
Definition: mini_d3d12.h:3903
D3D12_QUERY_HEAP_TYPE Type
Definition: mini_d3d12.h:2721
struct D3D12_RESOURCE_BARRIER D3D12_RESOURCE_BARRIER
D3D12_STATIC_BORDER_COLOR BorderColor
Definition: mini_d3d12.h:3009
D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
Definition: mini_d3d12.h:2834
struct IDXGIAdapterVtbl IDXGIAdapterVtbl
struct D3D12_INDIRECT_ARGUMENT_DESC D3D12_INDIRECT_ARGUMENT_DESC
ID3D12Pageable _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:1779
D3D12_RESOURCE_FLAGS Flags
Definition: mini_d3d12.h:2152
D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray
Definition: mini_d3d12.h:2411
struct D3D12_RESOURCE_ALLOCATION_INFO D3D12_RESOURCE_ALLOCATION_INFO
ID3D12Device _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType
Definition: mini_d3d12.h:4922
ID3D12QueryHeap _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:5696
WCHAR Description[128]
Definition: mini_d3d12.h:5928
WINBASEAPI _Ret_maybenull_ HANDLE WINAPI CreateEventA(_In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes, _In_ BOOL bManualReset, _In_ BOOL bInitialState, _In_opt_ LPCSTR lpName)
LONG_PTR SSIZE_T
Definition: mini_d3d12.h:260
ID3D12Device _In_ const D3D12_HEAP_PROPERTIES D3D12_HEAP_FLAGS _In_ const D3D12_RESOURCE_DESC D3D12_RESOURCE_STATES _In_opt_ const D3D12_CLEAR_VALUE REFIID riidResource
Definition: mini_d3d12.h:5001
_COM_Outptr_ void ** ppFactory
Definition: mini_d3d12.h:6757
ID3D12DeviceChild _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
D3D12_FILTER
Definition: mini_d3d12.h:2624
D3D12_COMMAND_QUEUE_FLAGS
Definition: mini_d3d12.h:1852
D3D12_INPUT_CLASSIFICATION
Definition: mini_d3d12.h:2034
IDXGIAdapter _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:6345
#define _Null_terminated_
Definition: mini_d3d12.h:69
_In_ ID3D12Resource UINT64 _In_ ID3D12Resource UINT64 SrcOffset
Definition: mini_d3d12.h:3872
ID3D12RootSignature REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:1690
ID3D12Resource _Out_ void UINT UINT UINT _In_opt_ const D3D12_BOX * pSrcBox
Definition: mini_d3d12.h:3222
D3D12_INPUT_CLASSIFICATION InputSlotClass
Definition: mini_d3d12.h:2045
D3D_PRIMITIVE_TOPOLOGY
Definition: mini_d3d12.h:956
#define _COM_Outptr_
Definition: mini_d3d12.h:57
struct D3D12_TEX2D_ARRAY_SRV D3D12_TEX2D_ARRAY_SRV
D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray
Definition: mini_d3d12.h:2559
#define _Post_satisfies_(expr)
Definition: mini_d3d12.h:81
struct D3D12_ROOT_DESCRIPTOR1 D3D12_ROOT_DESCRIPTOR1
ID3D12Resource _Out_ void UINT UINT UINT SrcSubresource
Definition: mini_d3d12.h:3222
HRESULT(WINAPI * PFN_D3DCOMPILE)(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData, _In_ SIZE_T SrcDataSize, _In_opt_ LPCSTR pSourceName, _In_reads_opt_(_Inexpressible_(pDefines->Name !=nullptr)) CONST D3D_SHADER_MACRO *pDefines, _In_opt_ ID3DInclude *pInclude, _In_opt_ LPCSTR pEntrypoint, _In_ LPCSTR pTarget, _In_ UINT Flags1, _In_ UINT Flags2, _Out_ ID3DBlob **ppCode, _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppErrorMsgs)
Definition: mini_d3d12.h:6775
struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC D3D12_VERSIONED_ROOT_SIGNATURE_DESC
LONGLONG QuadPart
Definition: mini_d3d12.h:319
struct D3D12_RESOURCE_TRANSITION_BARRIER D3D12_RESOURCE_TRANSITION_BARRIER
D3D12_PIPELINE_STATE_FLAGS Flags
Definition: mini_d3d12.h:2108
D3D12_QUERY_HEAP_TYPE
Definition: mini_d3d12.h:2713
D3D12_RASTERIZER_DESC RasterizerState
Definition: mini_d3d12.h:2089
struct D3D12_RESOURCE_ALIASING_BARRIER D3D12_RESOURCE_ALIASING_BARRIER
D3D12_TEX2DMS_RTV Texture2DMS
Definition: mini_d3d12.h:2558
ID3D12DeviceChild _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:1585
_In_ UINT _In_ UINT NumSrcDescriptorRanges
Definition: mini_d3d12.h:4974
ID3D12DescriptorHeap REFIID riid
Definition: mini_d3d12.h:5593
D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray
Definition: mini_d3d12.h:2408
struct D3D12_TEX2DMS_ARRAY_RTV D3D12_TEX2DMS_ARRAY_RTV
_In_ UINT _In_ UINT SrcData
Definition: mini_d3d12.h:3969
#define END_INTERFACE
Definition: mini_d3d12.h:598
struct ID3D12ObjectVtbl ID3D12ObjectVtbl
ID3D12DescriptorHeap _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:5571
struct D3D12_CLEAR_VALUE D3D12_CLEAR_VALUE
BOOL IndependentBlendEnable
Definition: mini_d3d12.h:1955
_In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ D3D12_CLEAR_FLAGS _In_ FLOAT _In_ UINT8 Stencil
Definition: mini_d3d12.h:4048
ID3D12QueryHeap * This
Definition: mini_d3d12.h:5685
D3D12_STENCIL_OP StencilPassOp
Definition: mini_d3d12.h:2019
WORD UINT16
Definition: mini_d3d12.h:224
D3D12_PIPELINE_STATE_FLAGS Flags
Definition: mini_d3d12.h:2100
IDXGIAdapter * This
Definition: mini_d3d12.h:6320
EXTERN_C const IID IID_ID3D12Fence
Definition: mini_d3d12.h:5283
D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
Definition: mini_d3d12.h:2418
HANDLE * PHANDLE
Definition: mini_d3d12.h:442
ID3D12Pageable REFIID riid
Definition: mini_d3d12.h:1790
_Field_size_full_(NumArgumentDescs) const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs
struct D3D12_TEX2D_UAV D3D12_TEX2D_UAV
IDXGIObject _In_ REFGUID UINT _In_reads_bytes_(DataSize) const void *pData)
SHORT * PINT16
Definition: mini_d3d12.h:221
_In_ _COM_Outptr_opt_ void **typedef HRESULT(WINAPI *PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(_In_ const D3D12_ROOT_SIGNATURE_DESC *pRootSignature
Definition: mini_d3d12.h:5765
BEGIN_INTERFACE(ID3D12Pageable *This, REFIID riid, _COM_Outptr_ void **ppvObject)
_In_opt_ ID3D12PipelineState * pPipelineState
Definition: mini_d3d12.h:3847
ID3D12Resource UINT _In_opt_ const D3D12_BOX _In_ const void * pSrcData
Definition: mini_d3d12.h:3213
D3D12_RESOURCE_BARRIER_TYPE
Definition: mini_d3d12.h:2873
#define DECLARE_HANDLE(name)
Definition: mini_d3d12.h:432
ID3D12RootSignature _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:1672
D3D12_TEXTURE_COPY_TYPE Type
Definition: mini_d3d12.h:2822
ID3D12Fence * This
Definition: mini_d3d12.h:5313
IDXGIFactory _In_ REFGUID UINT DataSize
Definition: mini_d3d12.h:6155
D3D12_TEXTURE_ADDRESS_MODE AddressW
Definition: mini_d3d12.h:2675
IDXGIAdapter _In_ REFGUID InterfaceName
Definition: mini_d3d12.h:6376
unsigned long DWORD
Definition: mini_d3d12.h:182
IDXGIFactory1 _Out_ HWND * pWindowHandle
Definition: mini_d3d12.h:6518
ID3D12Fence _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:5324
_In_opt_ const D3D12_INDEX_BUFFER_VIEW * pView
Definition: mini_d3d12.h:4025
struct D3D12_TEX1D_ARRAY_RTV D3D12_TEX1D_ARRAY_RTV
ID3D12Device D3D12_FEATURE UINT FeatureSupportDataSize
Definition: mini_d3d12.h:4911
EXTERN_C const IID IID_ID3D12Device
Definition: mini_d3d12.h:4610
struct tagRECT * NPRECT
D3D12_BUFFER_SRV_FLAGS
Definition: mini_d3d12.h:2311
D3D12_COMMAND_LIST_TYPE
Definition: mini_d3d12.h:1845
struct D3D12_TEX2DMS_ARRAY_DSV D3D12_TEX2DMS_ARRAY_DSV
struct DXGI_SAMPLE_DESC DXGI_SAMPLE_DESC
_In_ UINT _In_ UINT Num32BitValuesToSet
Definition: mini_d3d12.h:3981
ID3D12Pageable _In_ REFGUID guid
Definition: mini_d3d12.h:1765
IDXGIFactory1 _In_ IUnknown _In_ DXGI_SWAP_CHAIN_DESC * pDesc
Definition: mini_d3d12.h:6524
EXTERN_C const IID IID_ID3D12DescriptorHeap
Definition: mini_d3d12.h:5533
ID3D12Device UINT NumObjects
Definition: mini_d3d12.h:5063
_In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE _In_ const D3D12_TILE_REGION_SIZE _In_ ID3D12Resource UINT64 D3D12_TILE_COPY_FLAGS Flags
Definition: mini_d3d12.h:3894
BEGIN_INTERFACE(IDXGIObject *This, REFIID riid, _COM_Outptr_ void **ppvObject)
D3D12_COMMAND_LIST_TYPE Type
Definition: mini_d3d12.h:1865
struct DXGI_ADAPTER_DESC1 DXGI_ADAPTER_DESC1
unsigned __INT32_TYPE__ uint32_t
struct D3D12_HEAP_DESC D3D12_HEAP_DESC
HRESULT(WINAPI * PFN_D3D12_GET_DEBUG_INTERFACE)(_In_ REFIID, _COM_Outptr_opt_ void **)
Definition: mini_d3d12.h:5771
D3D12_TILE_COPY_FLAGS
Definition: mini_d3d12.h:2205
ID3D12Pageable * This
Definition: mini_d3d12.h:1757
D3D12_TEXTURE_ADDRESS_MODE AddressU
Definition: mini_d3d12.h:2673
#define STDMETHOD(method)
Definition: mini_d3d12.h:688
DXGI_FORMAT Format
Definition: mini_d3d12.h:2149
_In_ const D3D12_RESOURCE_DESC UINT64 _Out_opt_ UINT64 * pTotalBytes
Definition: mini_d3d12.h:5094
D3D12_BLEND
Definition: mini_d3d12.h:1893
D3D12_HEAP_FLAGS Flags
Definition: mini_d3d12.h:2697
IDXGIAdapter1 _In_ REFGUID _Inout_ UINT _Out_writes_bytes_ pDataSize void * pData
Definition: mini_d3d12.h:6670
D3D12_COMPARISON_FUNC StencilFunc
Definition: mini_d3d12.h:2020
ID3D10Blob * This
Definition: mini_d3d12.h:1240
IDXGIFactory _In_ REFGUID Name
Definition: mini_d3d12.h:6155
ID3D12CommandQueue _Out_ UINT64 * pFrequency
Definition: mini_d3d12.h:4504
IDXGIObject _In_ REFGUID _Inout_ UINT _Out_writes_bytes_ pDataSize void * pData
Definition: mini_d3d12.h:6047
D3D12_TEXTURE_ADDRESS_MODE AddressW
Definition: mini_d3d12.h:3005
CONST void far * LPCVOID
Definition: mini_d3d12.h:189
IDXGIFactory1 _In_ REFIID _COM_Outptr_ void ** ppParent
Definition: mini_d3d12.h:6497
struct D3D12_TEXTURE_COPY_LOCATION D3D12_TEXTURE_COPY_LOCATION
D3D12_COMPARISON_FUNC
Definition: mini_d3d12.h:1994
SIZE_T DedicatedSystemMemory
Definition: mini_d3d12.h:5934
D3D12_DESCRIPTOR_RANGE_TYPE
Definition: mini_d3d12.h:2944
_In_ REFIID
Definition: mini_d3d12.h:5762
struct D3D12_SO_DECLARATION_ENTRY D3D12_SO_DECLARATION_ENTRY
FLOAT ResourceMinLODClamp
Definition: mini_d3d12.h:2342
D3D12_SHADER_COMPONENT_MAPPING
Definition: mini_d3d12.h:2290
D3D12_TEXTURE_LAYOUT Layout
Definition: mini_d3d12.h:2151
_Null_terminated_ CONST WCHAR * LPCWSTR
Definition: mini_d3d12.h:206
D3D12_FILL_MODE FillMode
Definition: mini_d3d12.h:1976
unsigned int UINT
Definition: mini_d3d12.h:181
struct D3D12_UNORDERED_ACCESS_VIEW_DESC D3D12_UNORDERED_ACCESS_VIEW_DESC
ID3D12PipelineState _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:5471
LONG top
Definition: mini_d3d12.h:447
D3D12_CLEAR_FLAGS
Definition: mini_d3d12.h:2264
D3D12_STENCIL_OP StencilDepthFailOp
Definition: mini_d3d12.h:2018
#define __RPC_STUB
Definition: mini_d3d12.h:525
ID3D12Device _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:4848
EXTERN_C const IID IID_ID3D12CommandAllocator
Definition: mini_d3d12.h:3301
#define WINAPI
Definition: mini_d3d12.h:163
ID3D12Resource REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:3187
IDXGIAdapter1 _In_ REFGUID _Out_ LARGE_INTEGER * pUMDVersion
Definition: mini_d3d12.h:6695
interface ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1
Definition: mini_d3d12.h:1389
_W64 INT32 LONG_PTR
Definition: mini_d3d12.h:253
_In_ ID3D12Resource _Out_opt_ UINT _Out_opt_ D3D12_PACKED_MIP_INFO _Out_opt_ D3D12_TILE_SHAPE _Inout_opt_ UINT _In_ UINT _Out_writes_ pNumSubresourceTilings D3D12_SUBRESOURCE_TILING * pSubresourceTilingsForNonPackedMips
Definition: mini_d3d12.h:5124
ID3D12Resource UINT _In_opt_ const D3D12_BOX _In_ const void UINT SrcRowPitch
Definition: mini_d3d12.h:3213
struct D3D12_TEX2DMS_RTV D3D12_TEX2DMS_RTV
D3D12_ROOT_SIGNATURE_FLAGS
Definition: mini_d3d12.h:2925
D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[8]
Definition: mini_d3d12.h:1956
ID3D12Device BOOL Enable
Definition: mini_d3d12.h:5105
BEGIN_INTERFACE(ID3D10Blob *This, REFIID riid, _COM_Outptr_ void **ppvObject)
D3D12_RESOURCE_STATES StateBefore
Definition: mini_d3d12.h:2853
ID3D12GraphicsCommandList _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:3822
UINT _In_opt_ const D3D12_RANGE * pWrittenRange
Definition: mini_d3d12.h:3200
char OLECHAR
Definition: mini_d3d12.h:863
D3D12_TEX2D_ARRAY_UAV Texture2DArray
Definition: mini_d3d12.h:2490
INT INT32
Definition: mini_d3d12.h:222
_Field_size_full_(NumEntries) const D3D12_SO_DECLARATION_ENTRY *pSODeclaration
ID3D12CommandAllocator _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:3352
D3D12_TEXTURE_LAYOUT
Definition: mini_d3d12.h:2124
signed __INT64_TYPE__ int64_t
IDXGIAdapter _In_ REFGUID _In_opt_ const IUnknown * pUnknown
Definition: mini_d3d12.h:6337
struct D3D12_ROOT_SIGNATURE_DESC1 D3D12_ROOT_SIGNATURE_DESC1
#define _In_
Definition: mini_d3d12.h:29
interface IDXGIAdapter1 IDXGIAdapter1
Definition: mini_d3d12.h:5923
struct D3D12_BUFFER_RTV D3D12_BUFFER_RTV
ID3D12DeviceChild _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:1571
ID3D12Device _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:4844
IDXGIFactory1 _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:6487
_In_ ID3D12QueryHeap _In_ D3D12_QUERY_TYPE _In_ UINT StartIndex
Definition: mini_d3d12.h:4099
ID3D12Object _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:1490
DXGI_FORMAT
Definition: mini_d3d12.h:1058
_In_ ID3D12Resource * pResource
Definition: mini_d3d12.h:4450
D3D12_RTV_DIMENSION
Definition: mini_d3d12.h:2537
ID3D12RootSignature * pRootSignature
Definition: mini_d3d12.h:2080
ID3D12DeviceChild _In_ REFGUID guid
Definition: mini_d3d12.h:1571
_Null_terminated_ CONST WCHAR * PCWSTR
Definition: mini_d3d12.h:206
#define CONST
Definition: mini_d3d12.h:186
ULONG_PTR SIZE_T
Definition: mini_d3d12.h:259
DWORD LowPart
Definition: mini_d3d12.h:4593
_In_ D3D12_GPU_DESCRIPTOR_HANDLE _In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ ID3D12Resource * pResource
Definition: mini_d3d12.h:4064
void * HANDLE
Definition: mini_d3d12.h:426
D3D12_DESCRIPTOR_HEAP_FLAGS Flags
Definition: mini_d3d12.h:2688
_In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE _In_ ID3D12Resource * pSrcResource
Definition: mini_d3d12.h:4463
#define REFIID
Definition: mini_d3d12.h:485
IDXGIFactory1 _In_ REFGUID UINT _In_reads_bytes_(DataSize) const void *pData)
D3D12_BLEND_OP
Definition: mini_d3d12.h:1913
ID3D12Object _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:1503
IDXGIFactory _In_ IUnknown * pDevice
Definition: mini_d3d12.h:6209
EXTERN_C const IID IID_IDXGIFactory
Definition: mini_d3d12.h:6099
IUnknown * LPUNKNOWN
Definition: mini_d3d12.h:752
_W64 UINT32 ULONG_PTR
Definition: mini_d3d12.h:254
IDXGIFactory UINT _COM_Outptr_ IDXGIAdapter ** ppAdapter
Definition: mini_d3d12.h:6190
ID3D12QueryHeap _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:5713
IDXGIFactory1 * This
Definition: mini_d3d12.h:6462
ID3D12Resource _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:3176
_Null_terminated_ CHAR * NPSTR
Definition: mini_d3d12.h:204
ID3D12CommandQueue ID3D12Fence UINT64 Value
Definition: mini_d3d12.h:4492
D3D12_DESCRIPTOR_HEAP_TYPE
Definition: mini_d3d12.h:2277
IID * LPIID
Definition: mini_d3d12.h:474
#define far
Definition: mini_d3d12.h:187
D3D12_FILTER Filter
Definition: mini_d3d12.h:2672
UINT64 SizeInBytes
Definition: mini_d3d12.h:2694
INT * PINT32
Definition: mini_d3d12.h:222
struct __LUID * PLUID
Definition: mini_d3d12.h:4597
_In_ ID3D12GraphicsCommandList * pCommandList
Definition: mini_d3d12.h:3942
D3D12_QUERY_TYPE
Definition: mini_d3d12.h:2909
#define NEAR
Definition: mini_d3d12.h:209
UINT UnusedField_NothingToDefine
Definition: mini_d3d12.h:2585
struct ID3D12DebugVtbl ID3D12DebugVtbl
D3D12_RESOURCE_DIMENSION
Definition: mini_d3d12.h:2116
interface ID3D12DescriptorHeap ID3D12DescriptorHeap
Definition: mini_d3d12.h:1359
struct D3D12_STREAM_OUTPUT_BUFFER_VIEW D3D12_STREAM_OUTPUT_BUFFER_VIEW
IDXGIAdapter UINT _COM_Outptr_ IDXGIOutput ** ppOutput
Definition: mini_d3d12.h:6363
struct D3D12_TEX3D_RTV D3D12_TEX3D_RTV
struct D3D12_INDIRECT_ARGUMENT_DESC::@18::@22 ConstantBufferView
struct _LARGE_INTEGER::@7 u
D3D12_HEAP_FLAGS
Definition: mini_d3d12.h:2183
D3D12_HEAP_TYPE Type
Definition: mini_d3d12.h:2176
struct D3D12_TEX1D_ARRAY_SRV D3D12_TEX1D_ARRAY_SRV
D3D12_BUFFER_UAV_FLAGS Flags
Definition: mini_d3d12.h:2441
UINT UnusedField_NothingToDefine
Definition: mini_d3d12.h:2375
IDXGIFactory HWND WindowHandle
Definition: mini_d3d12.h:6197
SIZE_T SharedSystemMemory
Definition: mini_d3d12.h:5954
D3D12_COMMAND_QUEUE_FLAGS Flags
Definition: mini_d3d12.h:1867
EXTERN_C const IID IID_ID3D12Debug
Definition: mini_d3d12.h:5819
D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
Definition: mini_d3d12.h:2897
#define THIS_
Definition: mini_d3d12.h:710
IDXGIFactory _In_ REFGUID UINT _In_reads_bytes_(DataSize) const void *pData)
struct IUnknownVtbl IUnknownVtbl
_In_opt_ ID3D12Resource _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC * pDesc
Definition: mini_d3d12.h:4960
struct D3D12_INDIRECT_ARGUMENT_DESC::@18::@21 Constant
D3D_ROOT_SIGNATURE_VERSION
Definition: mini_d3d12.h:3080
unsigned int BufferLength
Definition: mini_d3d12.h:565
D3D12_DESCRIPTOR_HEAP_FLAGS
Definition: mini_d3d12.h:2285
_In_ const D3D12_RESOURCE_DESC * pResourceDesc
Definition: mini_d3d12.h:5087
SIZE_T Begin
Definition: mini_d3d12.h:1832
ID3D12Resource * pResourceBefore
Definition: mini_d3d12.h:2858
UINT StartTileIndexInOverallResource
Definition: mini_d3d12.h:2777
ID3D12Device UINT64 D3D12_FENCE_FLAGS REFIID riid
Definition: mini_d3d12.h:5075
D3D12_ROOT_DESCRIPTOR1 Descriptor
Definition: mini_d3d12.h:3067
struct DXGI_ADAPTER_DESC DXGI_ADAPTER_DESC
D3D12_CACHED_PIPELINE_STATE CachedPSO
Definition: mini_d3d12.h:2107
ID3D12DescriptorHeap _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:5582
#define _In_reads_bytes_opt_(size)
Definition: mini_d3d12.h:101
D3D12_DESCRIPTOR_RANGE_FLAGS
Definition: mini_d3d12.h:3025
struct IDXGIFactoryVtbl IDXGIFactoryVtbl
#define _In_z_
Definition: mini_d3d12.h:33
_In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology
Definition: mini_d3d12.h:3911
struct _RPC_SYNTAX_IDENTIFIER * PRPC_SYNTAX_IDENTIFIER
#define __RPC__deref_out
Definition: mini_d3d12.h:154
struct D3D12_RESOURCE_UAV_BARRIER D3D12_RESOURCE_UAV_BARRIER
ID3D12Pageable _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:1785
struct D3D12_COMMAND_QUEUE_DESC D3D12_COMMAND_QUEUE_DESC
ID3D12Device _In_ ID3D12Heap UINT64 _In_ const D3D12_RESOURCE_DESC D3D12_RESOURCE_STATES _In_opt_ const D3D12_CLEAR_VALUE REFIID riid
Definition: mini_d3d12.h:5019
ID3D12Object _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:1486
BEGIN_INTERFACE(IUnknown *This, REFIID riid, _COM_Outptr_ void **ppvObject)
interface ID3D12DeviceChild ID3D12DeviceChild
Definition: mini_d3d12.h:1299
#define D3D12_REQ_SUBRESOURCES
Definition: mini_d3d12.h:4602
interface ID3D12Resource ID3D12Resource
Definition: mini_d3d12.h:1335
DXGI_SAMPLE_DESC SampleDesc
Definition: mini_d3d12.h:2150
EXTERN_C const IID IID_IDXGIAdapter1
Definition: mini_d3d12.h:6613
_In_opt_ ID3D12Resource _In_opt_ ID3D12Resource _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC * pDesc
Definition: mini_d3d12.h:4947
interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer
Definition: mini_d3d12.h:1311
_In_ ID3D12Resource * pResource
Definition: mini_d3d12.h:4082
#define PURE
Definition: mini_d3d12.h:709
int INT
Definition: mini_d3d12.h:179
_W64 INT32 * PLONG_PTR
Definition: mini_d3d12.h:253
D3D12_DSV_DIMENSION ViewDimension
Definition: mini_d3d12.h:2612
ID3D12Resource _Out_opt_ D3D12_HEAP_PROPERTIES * pHeapProperties
Definition: mini_d3d12.h:3231
D3D12_TEX2D_ARRAY_RTV Texture2DArray
Definition: mini_d3d12.h:2557
SHORT INT16
Definition: mini_d3d12.h:221
D3D12_FILL_MODE
Definition: mini_d3d12.h:1959
D3D12_CPU_PAGE_PROPERTY
Definition: mini_d3d12.h:2155
ID3D12Resource * pResourceAfter
Definition: mini_d3d12.h:2859
interface IDXGIFactory1 IDXGIFactory1
Definition: mini_d3d12.h:5917
IDXGIFactory1 UINT Adapter
Definition: mini_d3d12.h:6505
ID3D12Debug * This
Definition: mini_d3d12.h:5842
_Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges
_In_ ID3D12CommandSignature _In_ UINT _In_ ID3D12Resource _In_ UINT64 _In_opt_ ID3D12Resource * pCountBuffer
Definition: mini_d3d12.h:4129
IDXGIFactory HMODULE _COM_Outptr_ IDXGIAdapter ** ppAdapter
Definition: mini_d3d12.h:6219
_W64 INT32 INT_PTR
Definition: mini_d3d12.h:250
_In_ ID3D12Resource * pTiledResource
Definition: mini_d3d12.h:5118
short SHORT
Definition: mini_d3d12.h:167
_In_ const D3D12_RESOURCE_DESC UINT64 BaseOffset
Definition: mini_d3d12.h:5090
LONG right
Definition: mini_d3d12.h:448
FLOAT BorderColor[4]
Definition: mini_d3d12.h:2679
D3D12_INDIRECT_ARGUMENT_TYPE
Definition: mini_d3d12.h:2726
_W64 INT32 * PINT_PTR
Definition: mini_d3d12.h:250
ID3D12Device _In_ const D3D12_COMMAND_QUEUE_DESC REFIID riid
Definition: mini_d3d12.h:4870
ID3D12DeviceChild REFIID riid
Definition: mini_d3d12.h:1596
D3D12_DESCRIPTOR_RANGE_TYPE RangeType
Definition: mini_d3d12.h:3035
BEGIN_INTERFACE(IDXGIFactory *This, REFIID riid, _COM_Outptr_ void **ppvObject)
D3D12_ROOT_CONSTANTS Constants
Definition: mini_d3d12.h:2988
D3D_ROOT_SIGNATURE_VERSION Version
Definition: mini_d3d12.h:3087
interface ID3D12Device2 ID3D12Device2
Definition: mini_d3d12.h:1425
IDXGIAdapter _In_ REFGUID Name
Definition: mini_d3d12.h:6328
D3D12_SUBRESOURCE_FOOTPRINT Footprint
Definition: mini_d3d12.h:2710
ID3D12Device _In_ const D3D12_RESOURCE_DESC D3D12_RESOURCE_STATES _In_opt_ const D3D12_CLEAR_VALUE REFIID riid
Definition: mini_d3d12.h:5030
struct _RPC_SYNTAX_IDENTIFIER RPC_SYNTAX_IDENTIFIER
ID3D12CommandList _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:3458
#define _Inout_opt_
Definition: mini_d3d12.h:53
#define REFGUID
Definition: mini_d3d12.h:491
struct IDXGIFactory1Vtbl IDXGIFactory1Vtbl
struct D3D12_INPUT_LAYOUT_DESC D3D12_INPUT_LAYOUT_DESC
struct D3D12_BLEND_DESC D3D12_BLEND_DESC
ID3D12DescriptorHeap * This
Definition: mini_d3d12.h:5560
struct D3D12_BOX D3D12_BOX
SIZE_T SharedSystemMemory
Definition: mini_d3d12.h:5935
ID3D12Device _In_ D3D12_COMMAND_LIST_TYPE type
Definition: mini_d3d12.h:4877
_In_ ID3D12Resource * pDstResource
Definition: mini_d3d12.h:3889
struct D3D12_TEX1D_RTV D3D12_TEX1D_RTV
I_RPC_HANDLE RPC_BINDING_HANDLE
Definition: mini_d3d12.h:542
#define _Post_ptr_invalid_
Definition: mini_d3d12.h:6828
void __RPC_FAR * ReservedForRuntime
Definition: mini_d3d12.h:569
ID3D12CommandList _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:3451
ID3D12Object _In_ REFGUID guid
Definition: mini_d3d12.h:1483
HINSTANCE HMODULE
Definition: mini_d3d12.h:456
struct D3D12_RESOURCE_DESC D3D12_RESOURCE_DESC
ID3D12CommandQueue _Out_ UINT64 * pGpuTimestamp
Definition: mini_d3d12.h:4509
ID3D12Device _In_ HANDLE REFIID riid
Definition: mini_d3d12.h:5048
LPSTR LPOLESTR
Definition: mini_d3d12.h:934
struct _RPC_VERSION RPC_VERSION
interface ID3D12PipelineLibrary ID3D12PipelineLibrary
Definition: mini_d3d12.h:1407
interface ID3D12Pageable ID3D12Pageable
Definition: mini_d3d12.h:1323
unsigned long ULONG
Definition: mini_d3d12.h:180
EXTERN_C const IID IID_IDXGIAdapter
Definition: mini_d3d12.h:6283
_W64 UINT32 * PUINT_PTR
Definition: mini_d3d12.h:251
_In_ UINT _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE _In_ BOOL RTsSingleHandleToDescriptorRange
Definition: mini_d3d12.h:4041
ID3D12PipelineState _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:5465
D3D12_INDEX_BUFFER_STRIP_CUT_VALUE
Definition: mini_d3d12.h:2059
interface IDXGIObject IDXGIObject
Definition: mini_d3d12.h:5887
_In_ UINT _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
Definition: mini_d3d12.h:3995
WINBASEAPI _Ret_maybenull_ HANDLE WINAPI CreateEventW(_In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes, _In_ BOOL bManualReset, _In_ BOOL bInitialState, _In_opt_ LPCWSTR lpName)
#define _Always_(annos)
Definition: mini_d3d12.h:145
_In_ ID3D12PipelineState * pPipelineState
Definition: mini_d3d12.h:3933
unsigned short MajorVersion
Definition: mini_d3d12.h:552
IDXGIFactory1 UINT _COM_Outptr_ IDXGIAdapter1 ** ppAdapter
Definition: mini_d3d12.h:6541
IDXGIFactory _In_ IUnknown _In_ DXGI_SWAP_CHAIN_DESC * pDesc
Definition: mini_d3d12.h:6209
D3D12_SHADER_BYTECODE CS
Definition: mini_d3d12.h:2105
interface IRpcChannelBuffer IRpcChannelBuffer
Definition: mini_d3d12.h:737
D3D12_FEATURE
Definition: mini_d3d12.h:2247
CHAR INT8
Definition: mini_d3d12.h:220
struct D3D12_COMMAND_SIGNATURE_DESC D3D12_COMMAND_SIGNATURE_DESC
D3D12_TILE_RANGE_FLAGS
Definition: mini_d3d12.h:2808
void __RPC_FAR * RpcInterfaceInformation
Definition: mini_d3d12.h:568
D3D12_PRIMITIVE_TOPOLOGY_TYPE
Definition: mini_d3d12.h:2065
_In_opt_ ID3D12Resource * pResource
Definition: mini_d3d12.h:4941
ID3D12Pageable REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:1790
ID3D12Resource UINT Subresource
Definition: mini_d3d12.h:3193
_Null_terminated_ CONST CHAR * LPCSTR
Definition: mini_d3d12.h:205
#define _Out_
Definition: mini_d3d12.h:41
struct ID3D12RootSignatureVtbl ID3D12RootSignatureVtbl
D3D12_SHADER_VISIBILITY ShaderVisibility
Definition: mini_d3d12.h:3014
ID3D12Device _In_ UINT D3D12_HEAP_TYPE heapType
Definition: mini_d3d12.h:4995
D3D12_TILE_MAPPING_FLAGS
Definition: mini_d3d12.h:2199
IDXGIAdapter1 _Out_ DXGI_ADAPTER_DESC * pDesc
Definition: mini_d3d12.h:6689
UINT right
Definition: mini_d3d12.h:1840
IDXGIFactory1 HMODULE _COM_Outptr_ IDXGIAdapter ** ppAdapter
Definition: mini_d3d12.h:6534
ID3D12CommandQueue * This
Definition: mini_d3d12.h:4411
struct _LARGE_INTEGER::@6 DUMMYSTRUCTNAME
D3D12_TEX1D_ARRAY_SRV Texture1DArray
Definition: mini_d3d12.h:2404
unsigned __int64 UINT64
Definition: mini_d3d12.h:231
ID3D12Resource UINT _In_opt_ const D3D12_BOX _In_ const void UINT UINT SrcDepthPitch
Definition: mini_d3d12.h:3213
WINBASEAPI DWORD WINAPI WaitForSingleObject(_In_ HANDLE hHandle, _In_ DWORD dwMilliseconds)
#define _In_reads_bytes_(size)
Definition: mini_d3d12.h:97
IDXGIAdapter _In_ REFGUID UINT DataSize
Definition: mini_d3d12.h:6328
struct D3D12_PACKED_MIP_INFO D3D12_PACKED_MIP_INFO
ID3D10Blob ID3DBlob
Definition: mini_d3d12.h:1283
IDXGIAdapter1 _Out_ DXGI_ADAPTER_DESC1 * pDesc
Definition: mini_d3d12.h:6703
D3D12_CONSERVATIVE_RASTERIZATION_MODE
Definition: mini_d3d12.h:1970
struct D3D12_VERTEX_BUFFER_VIEW D3D12_VERTEX_BUFFER_VIEW
interface ID3D12RootSignature ID3D12RootSignature
Definition: mini_d3d12.h:1305
EXTERN_C const IID IID_ID3D12Resource
Definition: mini_d3d12.h:3102
struct _RPC_MESSAGE RPC_MESSAGE
ID3D12Resource _Out_opt_ D3D12_HEAP_PROPERTIES _Out_opt_ D3D12_HEAP_FLAGS * pHeapFlags
Definition: mini_d3d12.h:3231
D3D12_TEX1D_ARRAY_RTV Texture1DArray
Definition: mini_d3d12.h:2555
#define __RPC_string
Definition: mini_d3d12.h:150
struct D3D12_TEX2D_ARRAY_RTV D3D12_TEX2D_ARRAY_RTV
struct D3D12_BUFFER_UAV D3D12_BUFFER_UAV
ID3D12CommandList _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:3444
struct ID3D12DeviceVtbl ID3D12DeviceVtbl
ID3D12RootSignature _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:1685
PRPC_SYNTAX_IDENTIFIER TransferSyntax
Definition: mini_d3d12.h:567
D3D12_BUFFER_UAV_FLAGS
Definition: mini_d3d12.h:2430
interface IRpcStubBuffer IRpcStubBuffer
Definition: mini_d3d12.h:736
_In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView
Definition: mini_d3d12.h:4057
ID3D12PipelineState _COM_Outptr_ ID3DBlob ** ppBlob
Definition: mini_d3d12.h:5482
DXGI_FORMAT Format
Definition: mini_d3d12.h:2240
struct D3D12_DESCRIPTOR_HEAP_DESC D3D12_DESCRIPTOR_HEAP_DESC
_Null_terminated_ CHAR * LPSTR
Definition: mini_d3d12.h:204
D3D12_PREDICATION_OP
Definition: mini_d3d12.h:2920
_W64 UINT32 * PULONG_PTR
Definition: mini_d3d12.h:254
#define FAR
Definition: mini_d3d12.h:208
WORD Data3
Definition: mini_d3d12.h:470
ID3D12Object _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:1497
#define _Outptr_opt_result_bytebuffer_(size)
Definition: mini_d3d12.h:133
ID3D12GraphicsCommandList _In_ ID3D12CommandAllocator _In_opt_ ID3D12PipelineState * pInitialState
Definition: mini_d3d12.h:3841
D3D12_STATIC_BORDER_COLOR
Definition: mini_d3d12.h:2995
ID3D12CommandQueue _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:4422
struct D3D12_DISCARD_REGION D3D12_DISCARD_REGION
ID3D12QueryHeap _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:5707
#define _Return_type_success_(expr)
Definition: mini_d3d12.h:73
IDXGIAdapter1 _In_ REFGUID UINT DataSize
Definition: mini_d3d12.h:6647
UINT OffsetInDescriptorsFromTableStart
Definition: mini_d3d12.h:3040
struct D3D12_ROOT_PARAMETER D3D12_ROOT_PARAMETER
ID3DBlob * LPD3DBLOB
Definition: mini_d3d12.h:1285
ID3D12Resource _Out_ void * pDstData
Definition: mini_d3d12.h:3222
long LONG
Definition: mini_d3d12.h:178
interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer
Definition: mini_d3d12.h:1317
struct D3D12_TEX3D_SRV D3D12_TEX3D_SRV
#define _In_reads_(size)
Definition: mini_d3d12.h:89
ID3D12Resource UINT DstSubresource
Definition: mini_d3d12.h:3213
ID3D12PipelineState _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:5458
ID3D12Device _In_ UINT visibleMask
Definition: mini_d3d12.h:4988
D3D12_DEPTH_WRITE_MASK
Definition: mini_d3d12.h:1989
D3D12_DEPTH_STENCILOP_DESC BackFace
Definition: mini_d3d12.h:2031
struct D3D12_TEX2DMS_SRV D3D12_TEX2DMS_SRV
IDXGIFactory1 _In_ IUnknown _In_ DXGI_SWAP_CHAIN_DESC _COM_Outptr_ IDXGISwapChain ** ppSwapChain
Definition: mini_d3d12.h:6524
unsigned __INT64_TYPE__ uint64_t
struct D3D12_SUBRESOURCE_FOOTPRINT D3D12_SUBRESOURCE_FOOTPRINT
ID3D12Fence REFIID riid
Definition: mini_d3d12.h:5346
struct D3D12_TILED_RESOURCE_COORDINATE D3D12_TILED_RESOURCE_COORDINATE
ID3D12RootSignature _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT D3D12_PLACED_SUBRESOURCE_FOOTPRINT
ID3D12QueryHeap REFIID riid
Definition: mini_d3d12.h:5718
D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType
Definition: mini_d3d12.h:2093
UINT UINT32
Definition: mini_d3d12.h:225
EXTERN_C const IID IID_ID3D12CommandList
Definition: mini_d3d12.h:3413
interface ID3D12PipelineState ID3D12PipelineState
Definition: mini_d3d12.h:1353
D3D12_ROOT_DESCRIPTOR_FLAGS Flags
Definition: mini_d3d12.h:3059
struct D3D12_CACHED_PIPELINE_STATE D3D12_CACHED_PIPELINE_STATE
_In_ ID3D12Resource _In_ ID3D12Resource * pSrcResource
Definition: mini_d3d12.h:3889
D3D12_SHADER_VISIBILITY
Definition: mini_d3d12.h:2975
_In_ const D3D12_SAMPLER_DESC * pDesc
Definition: mini_d3d12.h:4966
RECT D3D12_RECT
Definition: mini_d3d12.h:2848
__int64 LONGLONG
Definition: mini_d3d12.h:279
interface ID3D12Heap ID3D12Heap
Definition: mini_d3d12.h:1329
char CHAR
Definition: mini_d3d12.h:166
D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster
Definition: mini_d3d12.h:1986
D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint
Definition: mini_d3d12.h:2824
EXTERN_C const IID IID_ID3D12PipelineState
Definition: mini_d3d12.h:5419
D3D12_RESOURCE_STATES
Definition: mini_d3d12.h:2213
struct ID3D12PipelineStateVtbl ID3D12PipelineStateVtbl
D3D12_UAV_DIMENSION
Definition: mini_d3d12.h:2472
BEGIN_INTERFACE(ID3D12Object *This, REFIID riid, _COM_Outptr_ void **ppvObject)
unsigned long DataRepresentation
Definition: mini_d3d12.h:563
ID3D12PipelineState REFIID riid
Definition: mini_d3d12.h:5476
ID3D12DeviceChild * This
Definition: mini_d3d12.h:1563
IDXGIAdapter1 _In_ REFGUID _In_opt_ const IUnknown * pUnknown
Definition: mini_d3d12.h:6656
struct D3D12_ROOT_PARAMETER1 D3D12_ROOT_PARAMETER1
ID3D12CommandQueue REFIID riid
Definition: mini_d3d12.h:4444
D3D12_INPUT_LAYOUT_DESC InputLayout
Definition: mini_d3d12.h:2091
ID3D12Fence _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:5321
unsigned short WORD
Definition: mini_d3d12.h:169
IDXGIFactory UINT Adapter
Definition: mini_d3d12.h:6190
ID3D12GraphicsCommandList _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:3802
D3D12_DEPTH_STENCILOP_DESC FrontFace
Definition: mini_d3d12.h:2030
WORD Data2
Definition: mini_d3d12.h:469
IDXGIFactory _In_ REFGUID _In_opt_ const IUnknown * pUnknown
Definition: mini_d3d12.h:6164
_Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode
D3D12_DEPTH_WRITE_MASK DepthWriteMask
Definition: mini_d3d12.h:2025
LONG_PTR * PSSIZE_T
Definition: mini_d3d12.h:260
struct D3D12_TEXCUBE_SRV D3D12_TEXCUBE_SRV
struct D3D12_ROOT_DESCRIPTOR_TABLE1 D3D12_ROOT_DESCRIPTOR_TABLE1
#define _W64
Definition: mini_d3d12.h:237
__int64 * PINT64
Definition: mini_d3d12.h:230
#define interface
Definition: mini_d3d12.h:686
#define _In_range_(lb, ub)
Definition: mini_d3d12.h:85
ID3D12Resource _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:3182
wchar_t WCHAR
Definition: mini_d3d12.h:198
signed __INT32_TYPE__ int32_t
_In_ _COM_Outptr_opt_ void **typedef _In_ D3D_ROOT_SIGNATURE_VERSION Version
Definition: mini_d3d12.h:5767
struct D3D12_TEX1D_DSV D3D12_TEX1D_DSV
SIZE_T DedicatedSystemMemory
Definition: mini_d3d12.h:5953
ID3D12Pageable _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:1772
ID3D12Device _In_ UINT _In_ SIZE_T REFIID riid
Definition: mini_d3d12.h:4930
ID3D12Resource REFIID riid
Definition: mini_d3d12.h:3187
_Field_size_bytes_full_(CachedBlobSizeInBytes) const void *pCachedBlob
struct _RPC_MESSAGE * PRPC_MESSAGE
D3D12_DSV_DIMENSION
Definition: mini_d3d12.h:2600
#define DECLARE_INTERFACE(iface)
Definition: mini_d3d12.h:724
interface ID3D12Device ID3D12Device
Definition: mini_d3d12.h:1401
struct D3D12_TEX2D_SRV D3D12_TEX2D_SRV
D3D12_HEAP_TYPE
Definition: mini_d3d12.h:2168
RPC_MGR_EPV __RPC_FAR * ManagerEpv
Definition: mini_d3d12.h:570
IDXGIAdapter1 UINT Output
Definition: mini_d3d12.h:6682
ID3D12Pageable _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:1768
IDXGIFactory _In_ IUnknown _In_ DXGI_SWAP_CHAIN_DESC _COM_Outptr_ IDXGISwapChain ** ppSwapChain
Definition: mini_d3d12.h:6209
ID3D12Resource UINT _In_opt_ const D3D12_BOX * pDstBox
Definition: mini_d3d12.h:3213
struct _SECURITY_ATTRIBUTES * LPSECURITY_ATTRIBUTES
struct D3D12_QUERY_HEAP_DESC D3D12_QUERY_HEAP_DESC
BEGIN_INTERFACE(ID3D12RootSignature *This, REFIID riid, _COM_Outptr_ void **ppvObject)
ID3D12Device _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC REFIID riid
Definition: mini_d3d12.h:4884
D3D12_DESCRIPTOR_RANGE_FLAGS Flags
Definition: mini_d3d12.h:3039
struct D3D12_RENDER_TARGET_VIEW_DESC D3D12_RENDER_TARGET_VIEW_DESC
D3D12_COMPARISON_FUNC DepthFunc
Definition: mini_d3d12.h:2026
struct D3D12_RASTERIZER_DESC D3D12_RASTERIZER_DESC
D3D12_RESOURCE_BARRIER_FLAGS
Definition: mini_d3d12.h:2866
_In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap
Definition: mini_d3d12.h:4064
struct D3D12_ROOT_CONSTANTS D3D12_ROOT_CONSTANTS
IDXGIObject _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:6041
D3D12_MEMORY_POOL MemoryPoolPreference
Definition: mini_d3d12.h:2178
_Null_terminated_ CHAR * PSTR
Definition: mini_d3d12.h:204
struct D3D12_ROOT_DESCRIPTOR D3D12_ROOT_DESCRIPTOR
ID3D12GraphicsCommandList _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:3805
ID3D12Object _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
interface ID3D10Blob ID3D10Blob
Definition: mini_d3d12.h:1224
ID3D12CommandAllocator _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:3332
FLOAT ResourceMinLODClamp
Definition: mini_d3d12.h:2357
unsigned short MinorVersion
Definition: mini_d3d12.h:553
BEGIN_INTERFACE(IDXGIAdapter1 *This, REFIID riid, _COM_Outptr_ void **ppvObject)
ID3D12Device _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:4855
ID3D12RootSignature _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:1665
_In_ ID3D12Resource UINT _In_opt_ ID3D12Heap * pHeap
Definition: mini_d3d12.h:4454
ID3D12Device _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:4861
interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList
Definition: mini_d3d12.h:1383
struct D3D12_TEXCUBE_ARRAY_SRV D3D12_TEXCUBE_ARRAY_SRV
ID3D12Resource _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:3162
struct D3D12_COMPUTE_PIPELINE_STATE_DESC D3D12_COMPUTE_PIPELINE_STATE_DESC
struct ID3D12GraphicsCommandListVtbl ID3D12GraphicsCommandListVtbl
struct D3D12_STATIC_SAMPLER_DESC D3D12_STATIC_SAMPLER_DESC
struct D3D12_TILE_SHAPE D3D12_TILE_SHAPE
struct D3D12_INDIRECT_ARGUMENT_DESC::@18::@24 UnorderedAccessView