Halide  19.0.0
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 {
315  struct {
316  DWORD LowPart;
317  LONG HighPart;
318  } u;
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 {
451 
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 {
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;
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) \
639  interface DECLSPEC_UUID(iid) \
640  DECLSPEC_NOVTABLE iface
641 #define DECLARE_INTERFACE_IID_(iface, baseiface, iid) \
642  interface DECLSPEC_UUID(iid) \
643  DECLSPEC_NOVTABLE iface : public baseiface
644 
645 #define IFACEMETHOD(method) __override STDMETHOD(method)
646 #define IFACEMETHOD_(type, method) __override STDMETHOD_(type, method)
647 #define IFACEMETHODV(method) __override STDMETHODV(method)
648 #define IFACEMETHODV_(type, method) __override STDMETHODV_(type, method)
649 
650 #if !defined(BEGIN_INTERFACE)
651 
652 #if defined(_MPPC_) && ((defined(_MSC_VER) || defined(__SC__) || defined(__MWERKS__)) && !defined(NO_NULL_VTABLE_ENTRY))
653 #define BEGIN_INTERFACE \
654  virtual void a() { \
655  }
656 #define END_INTERFACE
657 #else
658 #define BEGIN_INTERFACE
659 #define END_INTERFACE
660 #endif
661 #endif
662 
663 // IID_PPV_ARGS(ppType)
664 // ppType is the variable of type IType that will be filled
665 //
666 // RESULTS in: IID_IType, ppvType
667 // will create a compiler error if wrong level of indirection is used.
668 //
669 
670 /* Unknwn.h */
671 #ifndef __IUnknown_FWD_DEFINED__
672 #define __IUnknown_FWD_DEFINED__
673 typedef interface IUnknown IUnknown;
674 
675 #endif /* __IUnknown_FWD_DEFINED__ */
676 
677 extern "C++" {
678 template<typename T>
679 _Post_equal_to_(pp) _Post_satisfies_(return == pp) void **IID_PPV_ARGS_Helper(T **pp) {
680 #pragma prefast(suppress : 6269, "Tool issue with unused static_cast")
681  static_cast<IUnknown *>(*pp); // make sure everyone derives from IUnknown
682  return reinterpret_cast<void **>(pp);
683 }
684 }
685 
686 #define IID_PPV_ARGS(ppType) __uuidof(**(ppType)), IID_PPV_ARGS_Helper(ppType)
687 
688 #else
689 
690 #define interface struct
691 
692 #define STDMETHOD(method) HRESULT(STDMETHODCALLTYPE *method)
693 #define STDMETHOD_(type, method) type(STDMETHODCALLTYPE *method)
694 #define STDMETHODV(method) HRESULT(STDMETHODVCALLTYPE *method)
695 #define STDMETHODV_(type, method) type(STDMETHODVCALLTYPE *method)
696 
697 #define IFACEMETHOD(method) __override STDMETHOD(method)
698 #define IFACEMETHOD_(type, method) __override STDMETHOD_(type, method)
699 #define IFACEMETHODV(method) __override STDMETHODV(method)
700 #define IFACEMETHODV_(type, method) __override STDMETHODV_(type, method)
701 
702 #if !defined(BEGIN_INTERFACE)
703 
704 #if defined(_MPPC_)
705 #define BEGIN_INTERFACE void *b;
706 #define END_INTERFACE
707 #else
708 #define BEGIN_INTERFACE
709 #define END_INTERFACE
710 #endif
711 #endif
712 
713 #define PURE
714 #define THIS_ INTERFACE FAR *This,
715 #define THIS INTERFACE FAR *This
716 #ifdef CONST_VTABLE
717 #undef CONST_VTBL
718 #define CONST_VTBL const
719 #define DECLARE_INTERFACE(iface) \
720  typedef interface iface { \
721  const struct iface##Vtbl FAR *lpVtbl; \
722  } \
723  iface; \
724  typedef const struct iface##Vtbl iface##Vtbl; \
725  const struct iface##Vtbl
726 #else
727 #undef CONST_VTBL
728 #define CONST_VTBL
729 #define DECLARE_INTERFACE(iface) \
730  typedef interface iface { \
731  struct iface##Vtbl FAR *lpVtbl; \
732  } \
733  iface; \
734  typedef struct iface##Vtbl iface##Vtbl; \
735  struct iface##Vtbl
736 #endif
737 #define DECLARE_INTERFACE_(iface, baseiface) DECLARE_INTERFACE(iface)
738 #define DECLARE_INTERFACE_IID(iface, iid) DECLARE_INTERFACE(iface)
739 #define DECLARE_INTERFACE_IID_(iface, baseiface, iid) DECLARE_INTERFACE_(iface, baseiface)
740 #endif
741 
742 typedef interface IRpcStubBuffer IRpcStubBuffer;
744 
745 /* Unknwn.h */
746 #ifndef __IUnknown_FWD_DEFINED__
747 #define __IUnknown_FWD_DEFINED__
748 typedef interface IUnknown IUnknown;
749 
750 #endif /* __IUnknown_FWD_DEFINED__ */
751 
752 #ifndef __IUnknown_INTERFACE_DEFINED__
753 #define __IUnknown_INTERFACE_DEFINED__
754 
755 /* interface IUnknown */
756 /* [unique][uuid][object][local] */
757 
758 typedef /* [unique] */ IUnknown *LPUNKNOWN;
759 
760 //////////////////////////////////////////////////////////////////
761 // IID_IUnknown and all other system IIDs are provided in UUID.LIB
762 // Link that library in with your proxies, clients and servers
763 //////////////////////////////////////////////////////////////////
764 
765 #if (_MSC_VER >= 1100) && defined(__cplusplus) && !defined(CINTERFACE)
767 extern "C++" {
768 MIDL_INTERFACE("00000000-0000-0000-C000-000000000046")
769 IUnknown {
770 public:
772  virtual HRESULT STDMETHODCALLTYPE QueryInterface(
773  /* [in] */ REFIID riid,
774  /* [iid_is][out] */ _COM_Outptr_ void __RPC_FAR *__RPC_FAR *ppvObject) = 0;
775 
776  virtual ULONG STDMETHODCALLTYPE AddRef() = 0;
777 
778  virtual ULONG STDMETHODCALLTYPE Release() = 0;
779 
780  template<class Q>
781  HRESULT
782 #ifdef _M_CEE_PURE
783  __clrcall
784 #else
786 #endif
787  QueryInterface(_COM_Outptr_ Q * *pp) {
788  return QueryInterface(__uuidof(Q), (void **)pp);
789  }
790 
792 };
793 } // extern C++
794 HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy(
795  IUnknown __RPC_FAR *This,
796  /* [in] */ REFIID riid,
797  /* [iid_is][out] */ __RPC__deref_out void __RPC_FAR *__RPC_FAR *ppvObject);
798 
799 void __RPC_STUB IUnknown_QueryInterface_Stub(
800  IRpcStubBuffer *This,
801  IRpcChannelBuffer *_pRpcChannelBuffer,
802  PRPC_MESSAGE _pRpcMessage,
803  DWORD *_pdwStubPhase);
804 
805 ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy(
806  IUnknown __RPC_FAR *This);
807 
808 void __RPC_STUB IUnknown_AddRef_Stub(
809  IRpcStubBuffer *This,
810  IRpcChannelBuffer *_pRpcChannelBuffer,
811  PRPC_MESSAGE _pRpcMessage,
812  DWORD *_pdwStubPhase);
813 
814 ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy(
815  IUnknown __RPC_FAR *This);
816 
817 void __RPC_STUB IUnknown_Release_Stub(
818  IRpcStubBuffer *This,
819  IRpcChannelBuffer *_pRpcChannelBuffer,
820  PRPC_MESSAGE _pRpcMessage,
821  DWORD *_pdwStubPhase);
822 #else
823 
825 
826 #if defined(__cplusplus) && !defined(CINTERFACE)
827 
828 MIDL_INTERFACE("00000000-0000-0000-C000-000000000046")
829 IUnknown {
830 public:
832  virtual HRESULT STDMETHODCALLTYPE QueryInterface(
833  /* [in] */ REFIID riid,
834  /* [annotation][iid_is][out] */
835  _COM_Outptr_ void **ppvObject) = 0;
836 
837  virtual ULONG STDMETHODCALLTYPE AddRef(void) = 0;
838 
839  virtual ULONG STDMETHODCALLTYPE Release(void) = 0;
840 
842 };
843 
844 #else /* C style interface */
845 
846 typedef struct IUnknownVtbl {
848 
849  HRESULT(STDMETHODCALLTYPE *QueryInterface)
850  (
851  IUnknown *This,
852  /* [in] */ REFIID riid,
853  /* [annotation][iid_is][out] */
854  _COM_Outptr_ void **ppvObject);
855 
856  ULONG(STDMETHODCALLTYPE *AddRef)
857  (
859 
860  ULONG(STDMETHODCALLTYPE *Release)
861  (
862  IUnknown *This);
863 
866 
867 interface IUnknown {
868  CONST_VTBL struct IUnknownVtbl *lpVtbl;
869 };
870 
871 #ifdef COBJMACROS
872 
873 #define IUnknown_QueryInterface(This, riid, ppvObject) \
874  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
875 
876 #define IUnknown_AddRef(This) \
877  ((This)->lpVtbl->AddRef(This))
878 
879 #define IUnknown_Release(This) \
880  ((This)->lpVtbl->Release(This))
881 
882 #endif /* COBJMACROS */
883 
884 #endif /* C style interface */
885 
886 #if 0
887 HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy(
888  IUnknown * This,
889  /* [in] */ REFIID riid,
890  /* [annotation][iid_is][out] */
891  _COM_Outptr_ void **ppvObject);
892 
893 
894 void __RPC_STUB IUnknown_QueryInterface_Stub(
896  IRpcChannelBuffer *_pRpcChannelBuffer,
897  PRPC_MESSAGE _pRpcMessage,
898  DWORD *_pdwStubPhase);
899 
900 
901 ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy(
902  IUnknown * This);
903 
904 
905 void __RPC_STUB IUnknown_AddRef_Stub(
907  IRpcChannelBuffer *_pRpcChannelBuffer,
908  PRPC_MESSAGE _pRpcMessage,
909  DWORD *_pdwStubPhase);
910 
911 
912 ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy(
913  IUnknown * This);
914 
915 
916 void __RPC_STUB IUnknown_Release_Stub(
918  IRpcChannelBuffer *_pRpcChannelBuffer,
919  PRPC_MESSAGE _pRpcMessage,
920  DWORD *_pdwStubPhase);
921 #endif
922 
923 #endif /* LEGACY MSVC CHECK */
924 
925 #endif /* __IUnknown_INTERFACE_DEFINED__ */
926 
927 /* WTypesbase.h */
928 #if defined(_WIN32) && !defined(OLE2ANSI)
929 typedef WCHAR OLECHAR;
930 
931 typedef /* [string] */ __RPC_string OLECHAR *LPOLESTR;
932 
933 typedef /* [string] */ __RPC_string const OLECHAR *LPCOLESTR;
934 
935 #define OLESTR(str) L##str
936 
937 #else
938 
939 typedef char OLECHAR;
940 typedef LPSTR LPOLESTR;
942 #define OLESTR(str) str
943 #endif
944 
945 /* d3dcommon.h */
946 #ifdef __cplusplus
947 extern "C" {
948 #endif
949 
950 typedef enum D3D_FEATURE_LEVEL {
959  D3D_FEATURE_LEVEL_12_1 = 0xc100
961 
1058 
1059 #ifdef __cplusplus
1060 }
1061 #endif
1062 
1063 /* dxgiformat.h */
1064 typedef enum DXGI_FORMAT {
1181  DXGI_FORMAT_FORCE_UINT = 0xffffffff
1183 
1184 /* dxgitype.h */
1185 typedef struct DXGI_SAMPLE_DESC {
1189 
1190 /* d3dcommon.h */
1191 typedef enum _D3D_INCLUDE_TYPE {
1196  D3D_INCLUDE_FORCE_DWORD = 0x7fffffff
1198 
1199 typedef interface ID3DInclude ID3DInclude;
1200 #undef INTERFACE
1201 #define INTERFACE ID3DInclude
1203  STDMETHOD(Open)
1204  (THIS_ D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID * ppData, UINT * pBytes) PURE;
1205  STDMETHOD(Close)
1206  (THIS_ LPCVOID pData) PURE;
1207 };
1208 
1209 typedef struct _D3D_SHADER_MACRO {
1213 
1215 
1216 #if defined(__cplusplus) && !defined(CINTERFACE)
1217 
1218 MIDL_INTERFACE("8BA5FB08-5195-40e2-AC58-0D989C3A0102")
1219 ID3D10Blob : public IUnknown {
1220 public:
1221  virtual LPVOID STDMETHODCALLTYPE GetBufferPointer() = 0;
1222 
1223  virtual SIZE_T STDMETHODCALLTYPE GetBufferSize() = 0;
1224 };
1225 
1226 #else /* C style interface */
1227 
1228 #ifndef __ID3D10Blob_FWD_DEFINED__
1229 #define __ID3D10Blob_FWD_DEFINED__
1230 typedef interface ID3D10Blob ID3D10Blob;
1231 
1232 #endif /* __ID3D10Blob_FWD_DEFINED__ */
1233 
1234 typedef struct ID3D10BlobVtbl {
1236 
1237  HRESULT(STDMETHODCALLTYPE *QueryInterface)
1238  (
1239  ID3D10Blob *This,
1240  /* [in] */ REFIID riid,
1241  /* [annotation][iid_is][out] */
1242  _COM_Outptr_ void **ppvObject);
1243 
1244  ULONG(STDMETHODCALLTYPE *AddRef)
1245  (
1247 
1248  ULONG(STDMETHODCALLTYPE *Release)
1249  (
1250  ID3D10Blob *This);
1251 
1252  LPVOID(STDMETHODCALLTYPE *GetBufferPointer)
1253  (
1254  ID3D10Blob *This);
1255 
1256  SIZE_T(STDMETHODCALLTYPE *GetBufferSize)
1257  (
1258  ID3D10Blob *This);
1259 
1262 
1263 interface ID3D10Blob {
1264  CONST_VTBL struct ID3D10BlobVtbl *lpVtbl;
1265 };
1266 
1267 #ifdef COBJMACROS
1268 
1269 #define ID3D10Blob_QueryInterface(This, riid, ppvObject) \
1270  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
1271 
1272 #define ID3D10Blob_AddRef(This) \
1273  ((This)->lpVtbl->AddRef(This))
1274 
1275 #define ID3D10Blob_Release(This) \
1276  ((This)->lpVtbl->Release(This))
1277 
1278 #define ID3D10Blob_GetBufferPointer(This) \
1279  ((This)->lpVtbl->GetBufferPointer(This))
1280 
1281 #define ID3D10Blob_GetBufferSize(This) \
1282  ((This)->lpVtbl->GetBufferSize(This))
1283 
1284 #endif /* COBJMACROS */
1285 
1286 #endif /* C style interface */
1287 
1288 typedef interface ID3D10Blob *LPD3D10BLOB;
1290 
1292 #define IID_ID3DBlob IID_ID3D10Blob
1293 
1294 /* d3d12.h */
1295 /* Forward Declarations */
1296 
1297 #ifndef __ID3D12Object_FWD_DEFINED__
1298 #define __ID3D12Object_FWD_DEFINED__
1299 typedef interface ID3D12Object ID3D12Object;
1300 
1301 #endif /* __ID3D12Object_FWD_DEFINED__ */
1302 
1303 #ifndef __ID3D12DeviceChild_FWD_DEFINED__
1304 #define __ID3D12DeviceChild_FWD_DEFINED__
1306 
1307 #endif /* __ID3D12DeviceChild_FWD_DEFINED__ */
1308 
1309 #ifndef __ID3D12RootSignature_FWD_DEFINED__
1310 #define __ID3D12RootSignature_FWD_DEFINED__
1312 
1313 #endif /* __ID3D12RootSignature_FWD_DEFINED__ */
1314 
1315 #ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__
1316 #define __ID3D12RootSignatureDeserializer_FWD_DEFINED__
1318 
1319 #endif /* __ID3D12RootSignatureDeserializer_FWD_DEFINED__ */
1320 
1321 #ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
1322 #define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
1324 
1325 #endif /* __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ */
1326 
1327 #ifndef __ID3D12Pageable_FWD_DEFINED__
1328 #define __ID3D12Pageable_FWD_DEFINED__
1329 typedef interface ID3D12Pageable ID3D12Pageable;
1330 
1331 #endif /* __ID3D12Pageable_FWD_DEFINED__ */
1332 
1333 #ifndef __ID3D12Heap_FWD_DEFINED__
1334 #define __ID3D12Heap_FWD_DEFINED__
1335 typedef interface ID3D12Heap ID3D12Heap;
1336 
1337 #endif /* __ID3D12Heap_FWD_DEFINED__ */
1338 
1339 #ifndef __ID3D12Resource_FWD_DEFINED__
1340 #define __ID3D12Resource_FWD_DEFINED__
1341 typedef interface ID3D12Resource ID3D12Resource;
1342 
1343 #endif /* __ID3D12Resource_FWD_DEFINED__ */
1344 
1345 #ifndef __ID3D12CommandAllocator_FWD_DEFINED__
1346 #define __ID3D12CommandAllocator_FWD_DEFINED__
1348 
1349 #endif /* __ID3D12CommandAllocator_FWD_DEFINED__ */
1350 
1351 #ifndef __ID3D12Fence_FWD_DEFINED__
1352 #define __ID3D12Fence_FWD_DEFINED__
1353 typedef interface ID3D12Fence ID3D12Fence;
1354 
1355 #endif /* __ID3D12Fence_FWD_DEFINED__ */
1356 
1357 #ifndef __ID3D12PipelineState_FWD_DEFINED__
1358 #define __ID3D12PipelineState_FWD_DEFINED__
1360 
1361 #endif /* __ID3D12PipelineState_FWD_DEFINED__ */
1362 
1363 #ifndef __ID3D12DescriptorHeap_FWD_DEFINED__
1364 #define __ID3D12DescriptorHeap_FWD_DEFINED__
1366 
1367 #endif /* __ID3D12DescriptorHeap_FWD_DEFINED__ */
1368 
1369 #ifndef __ID3D12QueryHeap_FWD_DEFINED__
1370 #define __ID3D12QueryHeap_FWD_DEFINED__
1372 
1373 #endif /* __ID3D12QueryHeap_FWD_DEFINED__ */
1374 
1375 #ifndef __ID3D12CommandSignature_FWD_DEFINED__
1376 #define __ID3D12CommandSignature_FWD_DEFINED__
1378 
1379 #endif /* __ID3D12CommandSignature_FWD_DEFINED__ */
1380 
1381 #ifndef __ID3D12CommandList_FWD_DEFINED__
1382 #define __ID3D12CommandList_FWD_DEFINED__
1384 
1385 #endif /* __ID3D12CommandList_FWD_DEFINED__ */
1386 
1387 #ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__
1388 #define __ID3D12GraphicsCommandList_FWD_DEFINED__
1390 
1391 #endif /* __ID3D12GraphicsCommandList_FWD_DEFINED__ */
1392 
1393 #ifndef __ID3D12GraphicsCommandList1_FWD_DEFINED__
1394 #define __ID3D12GraphicsCommandList1_FWD_DEFINED__
1396 
1397 #endif /* __ID3D12GraphicsCommandList1_FWD_DEFINED__ */
1398 
1399 #ifndef __ID3D12CommandQueue_FWD_DEFINED__
1400 #define __ID3D12CommandQueue_FWD_DEFINED__
1402 
1403 #endif /* __ID3D12CommandQueue_FWD_DEFINED__ */
1404 
1405 #ifndef __ID3D12Device_FWD_DEFINED__
1406 #define __ID3D12Device_FWD_DEFINED__
1407 typedef interface ID3D12Device ID3D12Device;
1408 
1409 #endif /* __ID3D12Device_FWD_DEFINED__ */
1410 
1411 #ifndef __ID3D12PipelineLibrary_FWD_DEFINED__
1412 #define __ID3D12PipelineLibrary_FWD_DEFINED__
1414 
1415 #endif /* __ID3D12PipelineLibrary_FWD_DEFINED__ */
1416 
1417 #ifndef __ID3D12PipelineLibrary1_FWD_DEFINED__
1418 #define __ID3D12PipelineLibrary1_FWD_DEFINED__
1420 
1421 #endif /* __ID3D12PipelineLibrary1_FWD_DEFINED__ */
1422 
1423 #ifndef __ID3D12Device1_FWD_DEFINED__
1424 #define __ID3D12Device1_FWD_DEFINED__
1425 typedef interface ID3D12Device1 ID3D12Device1;
1426 
1427 #endif /* __ID3D12Device1_FWD_DEFINED__ */
1428 
1429 #ifndef __ID3D12Device2_FWD_DEFINED__
1430 #define __ID3D12Device2_FWD_DEFINED__
1431 typedef interface ID3D12Device2 ID3D12Device2;
1432 
1433 #endif /* __ID3D12Device2_FWD_DEFINED__ */
1434 
1435 #ifndef __ID3D12Tools_FWD_DEFINED__
1436 #define __ID3D12Tools_FWD_DEFINED__
1437 typedef interface ID3D12Tools ID3D12Tools;
1438 
1439 #endif /* __ID3D12Tools_FWD_DEFINED__ */
1440 
1441 #ifdef __cplusplus
1442 extern "C" {
1443 #endif
1444 
1445 #if defined(__cplusplus) && !defined(CINTERFACE)
1446 
1447 MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8")
1448 ID3D12Object : public IUnknown {
1449 public:
1450  virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
1451  _In_ REFGUID guid,
1452  _Inout_ UINT * pDataSize,
1453  _Out_writes_bytes_opt_(*pDataSize) void *pData) = 0;
1454 
1455  virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
1456  _In_ REFGUID guid,
1457  _In_ UINT DataSize,
1458  _In_reads_bytes_opt_(DataSize) const void *pData) = 0;
1459 
1460  virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
1461  _In_ REFGUID guid,
1462  _In_opt_ const IUnknown *pData) = 0;
1463 
1464  virtual HRESULT STDMETHODCALLTYPE SetName(
1465  _In_z_ LPCWSTR Name) = 0;
1466 };
1467 
1468 #else /* C style interface */
1469 
1470 typedef struct ID3D12ObjectVtbl {
1472 
1473  HRESULT(STDMETHODCALLTYPE *QueryInterface)
1474  (
1475  ID3D12Object *This,
1476  REFIID riid,
1477  _COM_Outptr_ void **ppvObject);
1478 
1479  ULONG(STDMETHODCALLTYPE *AddRef)
1480  (
1482 
1483  ULONG(STDMETHODCALLTYPE *Release)
1484  (
1485  ID3D12Object *This);
1486 
1487  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
1488  (
1489  ID3D12Object *This,
1493 
1494  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
1495  (
1496  ID3D12Object *This,
1497  _In_ REFGUID guid,
1500 
1501  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
1502  (
1503  ID3D12Object *This,
1504  _In_ REFGUID guid,
1506 
1507  HRESULT(STDMETHODCALLTYPE *SetName)
1508  (
1509  ID3D12Object *This,
1511 
1514 
1515 interface ID3D12Object {
1516  CONST_VTBL struct ID3D12ObjectVtbl *lpVtbl;
1517 };
1518 
1519 #ifdef COBJMACROS
1520 
1521 #define ID3D12Object_QueryInterface(This, riid, ppvObject) \
1522  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
1523 
1524 #define ID3D12Object_AddRef(This) \
1525  ((This)->lpVtbl->AddRef(This))
1526 
1527 #define ID3D12Object_Release(This) \
1528  ((This)->lpVtbl->Release(This))
1529 
1530 #define ID3D12Object_GetPrivateData(This, guid, pDataSize, pData) \
1531  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
1532 
1533 #define ID3D12Object_SetPrivateData(This, guid, DataSize, pData) \
1534  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
1535 
1536 #define ID3D12Object_SetPrivateDataInterface(This, guid, pData) \
1537  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
1538 
1539 #define ID3D12Object_SetName(This, Name) \
1540  ((This)->lpVtbl->SetName(This, Name))
1541 
1542 #endif /* COBJMACROS */
1543 
1544 #endif /* C style interface */
1545 
1546 #if defined(__cplusplus) && !defined(CINTERFACE)
1547 
1548 MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357")
1550 public:
1551  virtual HRESULT STDMETHODCALLTYPE GetDevice(
1552  REFIID riid,
1553  _COM_Outptr_opt_ void **ppvDevice) = 0;
1554 };
1555 
1556 #else /* C style interface */
1557 
1558 typedef struct ID3D12DeviceChildVtbl {
1560 
1561  HRESULT(STDMETHODCALLTYPE *QueryInterface)
1562  (
1564  REFIID riid,
1565  _COM_Outptr_ void **ppvObject);
1566 
1567  ULONG(STDMETHODCALLTYPE *AddRef)
1568  (
1570 
1571  ULONG(STDMETHODCALLTYPE *Release)
1572  (
1574 
1575  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
1576  (
1581 
1582  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
1583  (
1585  _In_ REFGUID guid,
1588 
1589  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
1590  (
1592  _In_ REFGUID guid,
1594 
1595  HRESULT(STDMETHODCALLTYPE *SetName)
1596  (
1599 
1600  HRESULT(STDMETHODCALLTYPE *GetDevice)
1601  (
1605 
1608 
1609 interface ID3D12DeviceChild {
1610  CONST_VTBL struct ID3D12DeviceChildVtbl *lpVtbl;
1611 };
1612 
1613 #ifdef COBJMACROS
1614 
1615 #define ID3D12DeviceChild_QueryInterface(This, riid, ppvObject) \
1616  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
1617 
1618 #define ID3D12DeviceChild_AddRef(This) \
1619  ((This)->lpVtbl->AddRef(This))
1620 
1621 #define ID3D12DeviceChild_Release(This) \
1622  ((This)->lpVtbl->Release(This))
1623 
1624 #define ID3D12DeviceChild_GetPrivateData(This, guid, pDataSize, pData) \
1625  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
1626 
1627 #define ID3D12DeviceChild_SetPrivateData(This, guid, DataSize, pData) \
1628  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
1629 
1630 #define ID3D12DeviceChild_SetPrivateDataInterface(This, guid, pData) \
1631  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
1632 
1633 #define ID3D12DeviceChild_SetName(This, Name) \
1634  ((This)->lpVtbl->SetName(This, Name))
1635 
1636 #define ID3D12DeviceChild_GetDevice(This, riid, ppvDevice) \
1637  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
1638 
1639 #endif /* COBJMACROS */
1640 
1641 #endif /* C style interface */
1642 
1643 #if defined(__cplusplus) && !defined(CINTERFACE)
1644 
1645 MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214")
1647  public :
1648 };
1649 
1650 #else /* C style interface */
1651 
1652 typedef struct ID3D12RootSignatureVtbl {
1654 
1655  HRESULT(STDMETHODCALLTYPE *QueryInterface)
1656  (
1658  REFIID riid,
1659  _COM_Outptr_ void **ppvObject);
1660 
1661  ULONG(STDMETHODCALLTYPE *AddRef)
1662  (
1664 
1665  ULONG(STDMETHODCALLTYPE *Release)
1666  (
1668 
1669  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
1670  (
1675 
1676  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
1677  (
1679  _In_ REFGUID guid,
1682 
1683  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
1684  (
1686  _In_ REFGUID guid,
1688 
1689  HRESULT(STDMETHODCALLTYPE *SetName)
1690  (
1693 
1694  HRESULT(STDMETHODCALLTYPE *GetDevice)
1695  (
1699 
1702 
1703 interface ID3D12RootSignature {
1704  CONST_VTBL struct ID3D12RootSignatureVtbl *lpVtbl;
1705 };
1706 
1707 #ifdef COBJMACROS
1708 
1709 #define ID3D12RootSignature_QueryInterface(This, riid, ppvObject) \
1710  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
1711 
1712 #define ID3D12RootSignature_AddRef(This) \
1713  ((This)->lpVtbl->AddRef(This))
1714 
1715 #define ID3D12RootSignature_Release(This) \
1716  ((This)->lpVtbl->Release(This))
1717 
1718 #define ID3D12RootSignature_GetPrivateData(This, guid, pDataSize, pData) \
1719  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
1720 
1721 #define ID3D12RootSignature_SetPrivateData(This, guid, DataSize, pData) \
1722  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
1723 
1724 #define ID3D12RootSignature_SetPrivateDataInterface(This, guid, pData) \
1725  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
1726 
1727 #define ID3D12RootSignature_SetName(This, Name) \
1728  ((This)->lpVtbl->SetName(This, Name))
1729 
1730 #define ID3D12RootSignature_GetDevice(This, riid, ppvDevice) \
1731  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
1732 
1733 #endif /* COBJMACROS */
1734 
1735 #endif /* C style interface */
1736 
1737 #if defined(__cplusplus) && !defined(CINTERFACE)
1738 
1739 MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6")
1741  public :
1742 };
1743 
1744 #else /* C style interface */
1745 
1746 #ifndef __ID3D12Pageable_FWD_DEFINED__
1747 #define __ID3D12Pageable_FWD_DEFINED__
1748 typedef interface ID3D12Pageable ID3D12Pageable;
1749 
1750 #endif /* __ID3D12Pageable_FWD_DEFINED__ */
1751 
1752 typedef struct ID3D12PageableVtbl {
1754 
1755  HRESULT(STDMETHODCALLTYPE *QueryInterface)
1756  (
1758  REFIID riid,
1759  _COM_Outptr_ void **ppvObject);
1760 
1761  ULONG(STDMETHODCALLTYPE *AddRef)
1762  (
1764 
1765  ULONG(STDMETHODCALLTYPE *Release)
1766  (
1767  ID3D12Pageable *This);
1768 
1769  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
1770  (
1775 
1776  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
1777  (
1779  _In_ REFGUID guid,
1782 
1783  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
1784  (
1786  _In_ REFGUID guid,
1788 
1789  HRESULT(STDMETHODCALLTYPE *SetName)
1790  (
1793 
1794  HRESULT(STDMETHODCALLTYPE *GetDevice)
1795  (
1799 
1802 
1803 interface ID3D12Pageable {
1804  CONST_VTBL struct ID3D12PageableVtbl *lpVtbl;
1805 };
1806 
1807 #ifdef COBJMACROS
1808 
1809 #define ID3D12Pageable_QueryInterface(This, riid, ppvObject) \
1810  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
1811 
1812 #define ID3D12Pageable_AddRef(This) \
1813  ((This)->lpVtbl->AddRef(This))
1814 
1815 #define ID3D12Pageable_Release(This) \
1816  ((This)->lpVtbl->Release(This))
1817 
1818 #define ID3D12Pageable_GetPrivateData(This, guid, pDataSize, pData) \
1819  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
1820 
1821 #define ID3D12Pageable_SetPrivateData(This, guid, DataSize, pData) \
1822  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
1823 
1824 #define ID3D12Pageable_SetPrivateDataInterface(This, guid, pData) \
1825  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
1826 
1827 #define ID3D12Pageable_SetName(This, Name) \
1828  ((This)->lpVtbl->SetName(This, Name))
1829 
1830 #define ID3D12Pageable_GetDevice(This, riid, ppvDevice) \
1831  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
1832 
1833 #endif /* COBJMACROS */
1834 
1835 #endif /* C style interface */
1836 
1837 typedef struct D3D12_RANGE {
1841 
1842 typedef struct D3D12_BOX {
1850 
1857 
1862 
1869 
1876 
1877 typedef struct D3D12_SHADER_BYTECODE {
1878  _Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode;
1881 
1890 
1894  _Field_size_full_(NumStrides) const UINT *pBufferStrides;
1898 
1899 typedef enum D3D12_BLEND {
1918 
1919 typedef enum D3D12_BLEND_OP {
1924  D3D12_BLEND_OP_MAX = 5
1926 
1927 typedef enum D3D12_LOGIC_OP {
1945 
1958 
1959 typedef struct D3D12_BLEND_DESC {
1964 
1965 typedef enum D3D12_FILL_MODE {
1969 
1970 typedef enum D3D12_CULL_MODE {
1975 
1980 
1981 typedef struct D3D12_RASTERIZER_DESC {
1994 
1999 
2010 
2011 typedef enum D3D12_STENCIL_OP {
2021 
2028 
2039 
2044 
2054 
2055 typedef struct D3D12_INPUT_LAYOUT_DESC {
2059 
2064 
2070 
2078 
2083 
2108 
2116 
2121 
2129 
2130 typedef enum D3D12_TEXTURE_LAYOUT {
2136 
2137 typedef enum D3D12_RESOURCE_FLAGS {
2146 
2148 typedef struct D3D12_RESOURCE_DESC {
2160 
2167 
2168 typedef enum D3D12_MEMORY_POOL {
2173 
2174 typedef enum D3D12_HEAP_TYPE {
2180 
2181 typedef struct D3D12_HEAP_PROPERTIES {
2188 
2189 typedef enum D3D12_HEAP_FLAGS {
2204 
2209 
2217 
2235  D3D12_RESOURCE_STATE_GENERIC_READ = (((((0x1 | 0x2) | 0x40) | 0x80) | 0x200) | 0x800),
2239 
2244 
2245 typedef struct D3D12_CLEAR_VALUE {
2247  union {
2250  };
2252 
2253 typedef enum D3D12_FEATURE {
2269 
2270 typedef enum D3D12_CLEAR_FLAGS {
2274 
2276 typedef enum D3D12_FENCE_FLAGS {
2281 
2290 
2295 
2304 
2305 #define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7
2306 #define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3
2307 #define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1 << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 4))
2308 #define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0, Src1, Src2, Src3) ((((Src0) & D3D12_SHADER_COMPONENT_MAPPING_MASK) | \
2309  (((Src1) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << D3D12_SHADER_COMPONENT_MAPPING_SHIFT) | \
2310  (((Src2) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 2)) | \
2311  (((Src3) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 3)) | \
2312  D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES))
2313 #define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(ComponentToExtract, Mapping) \
2314  ((D3D12_SHADER_COMPONENT_MAPPING)((Mapping) >> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * (ComponentToExtract)) & D3D12_SHADER_COMPONENT_MAPPING_MASK))
2315 #define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 1, 2, 3)
2316 
2321 
2323 typedef struct D3D12_BUFFER_SRV {
2329 
2330 typedef struct D3D12_TEX1D_SRV {
2335 
2336 typedef struct D3D12_TEX1D_ARRAY_SRV {
2343 
2344 typedef struct D3D12_TEX2D_SRV {
2350 
2351 typedef struct D3D12_TEX2D_ARRAY_SRV {
2359 
2360 typedef struct D3D12_TEX3D_SRV {
2365 
2366 typedef struct D3D12_TEXCUBE_SRV {
2371 
2372 typedef struct D3D12_TEXCUBE_ARRAY_SRV {
2379 
2380 typedef struct D3D12_TEX2DMS_SRV {
2383 
2384 typedef struct D3D12_TEX2DMS_ARRAY_SRV {
2388 
2389 typedef enum D3D12_SRV_DIMENSION {
2402 
2407  union {
2418  };
2420 
2422 
2427 
2431 
2435 
2440 
2442 typedef struct D3D12_BUFFER_UAV {
2449 
2450 typedef struct D3D12_TEX1D_UAV {
2453 
2454 typedef struct D3D12_TEX1D_ARRAY_UAV {
2459 
2460 typedef struct D3D12_TEX2D_UAV {
2464 
2465 typedef struct D3D12_TEX2D_ARRAY_UAV {
2471 
2472 typedef struct D3D12_TEX3D_UAV {
2477 
2478 typedef enum D3D12_UAV_DIMENSION {
2487 
2491  union {
2498  };
2500 
2501 typedef struct D3D12_BUFFER_RTV {
2505 
2506 typedef struct D3D12_TEX1D_RTV {
2509 
2510 typedef struct D3D12_TEX1D_ARRAY_RTV {
2515 
2516 typedef struct D3D12_TEX2D_RTV {
2520 
2521 typedef struct D3D12_TEX2DMS_RTV {
2524 
2525 typedef struct D3D12_TEX2D_ARRAY_RTV {
2531 
2532 typedef struct D3D12_TEX2DMS_ARRAY_RTV {
2536 
2537 typedef struct D3D12_TEX3D_RTV {
2542 
2543 typedef enum D3D12_RTV_DIMENSION {
2554 
2558  union {
2567  };
2569 
2570 typedef struct D3D12_TEX1D_DSV {
2573 
2574 typedef struct D3D12_TEX1D_ARRAY_DSV {
2579 
2580 typedef struct D3D12_TEX2D_DSV {
2583 
2584 typedef struct D3D12_TEX2D_ARRAY_DSV {
2589 
2590 typedef struct D3D12_TEX2DMS_DSV {
2593 
2594 typedef struct D3D12_TEX2DMS_ARRAY_DSV {
2598 
2599 typedef enum D3D12_DSV_FLAGS {
2604 
2606 typedef enum D3D12_DSV_DIMENSION {
2615 
2620  union {
2627  };
2629 
2630 typedef enum D3D12_FILTER {
2668 
2676 
2677 typedef struct D3D12_SAMPLER_DESC {
2689 
2697 
2699 typedef struct D3D12_HEAP_DESC {
2705 
2713 
2718 
2725 
2726 typedef struct D3D12_QUERY_HEAP_DESC {
2731 
2743 
2746  union {
2747  struct
2748  {
2751  struct
2752  {
2757  struct
2758  {
2761  struct
2762  {
2765  struct
2766  {
2769  };
2771 
2778 
2779 typedef struct D3D12_PACKED_MIP_INFO {
2785 
2786 typedef struct D3D12_TILE_SHAPE {
2791 
2798 
2805 
2806 typedef struct D3D12_TILE_REGION_SIZE {
2813 
2820 
2825 
2829  union {
2832  };
2834 
2836 
2837 #define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
2838 
2839 typedef struct D3D12_INDEX_BUFFER_VIEW {
2844 
2845 typedef struct D3D12_VIEWPORT {
2853 
2855 
2862 
2867 
2871 
2877 
2884 
2886 typedef struct D3D12_RESOURCE_BARRIER {
2889  union {
2893  };
2895 
2901 
2907 
2908 typedef struct D3D12_DISCARD_REGION {
2914 
2915 typedef enum D3D12_QUERY_TYPE {
2925 
2926 typedef enum D3D12_PREDICATION_OP {
2930 
2941 
2949 
2956 
2957 typedef struct D3D12_DESCRIPTOR_RANGE {
2964 
2969 
2970 typedef struct D3D12_ROOT_CONSTANTS {
2975 
2976 typedef struct D3D12_ROOT_DESCRIPTOR {
2980 
2989 
2990 typedef struct D3D12_ROOT_PARAMETER {
2992  union {
2996  };
2999 
3006 
3022 
3030 
3038 
3040 typedef struct D3D12_DESCRIPTOR_RANGE1 {
3048 
3053 
3060 
3062 typedef struct D3D12_ROOT_DESCRIPTOR1 {
3067 
3068 typedef struct D3D12_ROOT_PARAMETER1 {
3070  union {
3074  };
3077 
3085 
3091 
3094  union {
3097  };
3099 
3100 #define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND (0xffffffff)
3101 
3102 #ifndef __ID3D12Resource_INTERFACE_DEFINED__
3103 #define __ID3D12Resource_INTERFACE_DEFINED__
3104 
3105 /* interface ID3D12Resource */
3106 /* [unique][local][object][uuid] */
3107 
3109 
3110 #if defined(__cplusplus) && !defined(CINTERFACE)
3111 
3112 MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad")
3113 ID3D12Resource : public ID3D12Pageable {
3114 public:
3115  virtual HRESULT STDMETHODCALLTYPE Map(
3116  UINT Subresource,
3117  _In_opt_ const D3D12_RANGE *pReadRange,
3118  _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData) = 0;
3119 
3120  virtual void STDMETHODCALLTYPE Unmap(
3121  UINT Subresource,
3122  _In_opt_ const D3D12_RANGE *pWrittenRange) = 0;
3123 
3124  virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc() = 0;
3125 
3126  virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress() = 0;
3127 
3128  virtual HRESULT STDMETHODCALLTYPE WriteToSubresource(
3129  UINT DstSubresource,
3130  _In_opt_ const D3D12_BOX *pDstBox,
3131  _In_ const void *pSrcData,
3132  UINT SrcRowPitch,
3133  UINT SrcDepthPitch) = 0;
3134 
3135  virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource(
3136  _Out_ void *pDstData,
3137  UINT DstRowPitch,
3138  UINT DstDepthPitch,
3139  UINT SrcSubresource,
3140  _In_opt_ const D3D12_BOX *pSrcBox) = 0;
3141 
3142  virtual HRESULT STDMETHODCALLTYPE GetHeapProperties(
3143  _Out_opt_ D3D12_HEAP_PROPERTIES * pHeapProperties,
3144  _Out_opt_ D3D12_HEAP_FLAGS * pHeapFlags) = 0;
3145 };
3146 
3147 #else /* C style interface */
3148 
3149 typedef struct ID3D12ResourceVtbl {
3151 
3152  HRESULT(STDMETHODCALLTYPE *QueryInterface)
3153  (
3155  REFIID riid,
3156  _COM_Outptr_ void **ppvObject);
3157 
3158  ULONG(STDMETHODCALLTYPE *AddRef)
3159  (
3161 
3162  ULONG(STDMETHODCALLTYPE *Release)
3163  (
3164  ID3D12Resource *This);
3165 
3166  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
3167  (
3172 
3173  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
3174  (
3176  _In_ REFGUID guid,
3179 
3180  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
3181  (
3183  _In_ REFGUID guid,
3185 
3186  HRESULT(STDMETHODCALLTYPE *SetName)
3187  (
3190 
3191  HRESULT(STDMETHODCALLTYPE *GetDevice)
3192  (
3196 
3198  (
3202  _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData);
3203 
3204  void(STDMETHODCALLTYPE *Unmap)(
3208 
3210  (
3211  ID3D12Resource *This);
3212 
3213  D3D12_GPU_VIRTUAL_ADDRESS(STDMETHODCALLTYPE *GetGPUVirtualAddress)
3214  (
3215  ID3D12Resource *This);
3216 
3217  HRESULT(STDMETHODCALLTYPE *WriteToSubresource)
3218  (
3222  _In_ const void *pSrcData,
3225 
3226  HRESULT(STDMETHODCALLTYPE *ReadFromSubresource)
3227  (
3234 
3235  HRESULT(STDMETHODCALLTYPE *GetHeapProperties)
3236  (
3240 
3243 
3245  CONST_VTBL struct ID3D12ResourceVtbl *lpVtbl;
3246 };
3247 
3248 #ifdef COBJMACROS
3249 
3250 #define ID3D12Resource_QueryInterface(This, riid, ppvObject) \
3251  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
3252 
3253 #define ID3D12Resource_AddRef(This) \
3254  ((This)->lpVtbl->AddRef(This))
3255 
3256 #define ID3D12Resource_Release(This) \
3257  ((This)->lpVtbl->Release(This))
3258 
3259 #define ID3D12Resource_GetPrivateData(This, guid, pDataSize, pData) \
3260  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
3261 
3262 #define ID3D12Resource_SetPrivateData(This, guid, DataSize, pData) \
3263  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
3264 
3265 #define ID3D12Resource_SetPrivateDataInterface(This, guid, pData) \
3266  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
3267 
3268 #define ID3D12Resource_SetName(This, Name) \
3269  ((This)->lpVtbl->SetName(This, Name))
3270 
3271 #define ID3D12Resource_GetDevice(This, riid, ppvDevice) \
3272  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
3273 
3274 #define ID3D12Resource_Map(This, Subresource, pReadRange, ppData) \
3275  ((This)->lpVtbl->Map(This, Subresource, pReadRange, ppData))
3276 
3277 #define ID3D12Resource_Unmap(This, Subresource, pWrittenRange) \
3278  ((This)->lpVtbl->Unmap(This, Subresource, pWrittenRange))
3279 
3280 #define ID3D12Resource_GetDesc(This) \
3281  ((This)->lpVtbl->GetDesc(This))
3282 
3283 #define ID3D12Resource_GetGPUVirtualAddress(This) \
3284  ((This)->lpVtbl->GetGPUVirtualAddress(This))
3285 
3286 #define ID3D12Resource_WriteToSubresource(This, DstSubresource, pDstBox, pSrcData, SrcRowPitch, SrcDepthPitch) \
3287  ((This)->lpVtbl->WriteToSubresource(This, DstSubresource, pDstBox, pSrcData, SrcRowPitch, SrcDepthPitch))
3288 
3289 #define ID3D12Resource_ReadFromSubresource(This, pDstData, DstRowPitch, DstDepthPitch, SrcSubresource, pSrcBox) \
3290  ((This)->lpVtbl->ReadFromSubresource(This, pDstData, DstRowPitch, DstDepthPitch, SrcSubresource, pSrcBox))
3291 
3292 #define ID3D12Resource_GetHeapProperties(This, pHeapProperties, pHeapFlags) \
3293  ((This)->lpVtbl->GetHeapProperties(This, pHeapProperties, pHeapFlags))
3294 
3295 #endif /* COBJMACROS */
3296 
3297 #endif /* C style interface */
3298 
3299 #endif /* __ID3D12Resource_INTERFACE_DEFINED__ */
3300 
3301 #ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__
3302 #define __ID3D12CommandAllocator_INTERFACE_DEFINED__
3303 
3304 /* interface ID3D12CommandAllocator */
3305 /* [unique][local][object][uuid] */
3306 
3308 
3309 #if defined(__cplusplus) && !defined(CINTERFACE)
3310 
3311 MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24")
3313 public:
3314  virtual HRESULT STDMETHODCALLTYPE Reset() = 0;
3315 };
3316 
3317 #else /* C style interface */
3318 
3321 
3322  HRESULT(STDMETHODCALLTYPE *QueryInterface)
3323  (
3325  REFIID riid,
3326  _COM_Outptr_ void **ppvObject);
3327 
3328  ULONG(STDMETHODCALLTYPE *AddRef)
3329  (
3331 
3332  ULONG(STDMETHODCALLTYPE *Release)
3333  (
3335 
3336  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
3337  (
3342 
3343  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
3344  (
3346  _In_ REFGUID guid,
3349 
3350  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
3351  (
3353  _In_ REFGUID guid,
3355 
3356  HRESULT(STDMETHODCALLTYPE *SetName)
3357  (
3360 
3361  HRESULT(STDMETHODCALLTYPE *GetDevice)
3362  (
3366 
3367  HRESULT(STDMETHODCALLTYPE *Reset)
3368  (
3370 
3373 
3374 interface ID3D12CommandAllocator {
3375  CONST_VTBL struct ID3D12CommandAllocatorVtbl *lpVtbl;
3376 };
3377 
3378 #ifdef COBJMACROS
3379 
3380 #define ID3D12CommandAllocator_QueryInterface(This, riid, ppvObject) \
3381  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
3382 
3383 #define ID3D12CommandAllocator_AddRef(This) \
3384  ((This)->lpVtbl->AddRef(This))
3385 
3386 #define ID3D12CommandAllocator_Release(This) \
3387  ((This)->lpVtbl->Release(This))
3388 
3389 #define ID3D12CommandAllocator_GetPrivateData(This, guid, pDataSize, pData) \
3390  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
3391 
3392 #define ID3D12CommandAllocator_SetPrivateData(This, guid, DataSize, pData) \
3393  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
3394 
3395 #define ID3D12CommandAllocator_SetPrivateDataInterface(This, guid, pData) \
3396  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
3397 
3398 #define ID3D12CommandAllocator_SetName(This, Name) \
3399  ((This)->lpVtbl->SetName(This, Name))
3400 
3401 #define ID3D12CommandAllocator_GetDevice(This, riid, ppvDevice) \
3402  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
3403 
3404 #define ID3D12CommandAllocator_Reset(This) \
3405  ((This)->lpVtbl->Reset(This))
3406 
3407 #endif /* COBJMACROS */
3408 
3409 #endif /* C style interface */
3410 
3411 #endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */
3412 
3413 #ifndef __ID3D12CommandList_INTERFACE_DEFINED__
3414 #define __ID3D12CommandList_INTERFACE_DEFINED__
3415 
3416 /* interface ID3D12CommandList */
3417 /* [unique][local][object][uuid] */
3418 
3420 
3421 #if defined(__cplusplus) && !defined(CINTERFACE)
3422 
3423 MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5")
3425 public:
3426  virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType() = 0;
3427 };
3428 
3429 #else /* C style interface */
3430 
3431 typedef struct ID3D12CommandListVtbl {
3433 
3434  HRESULT(STDMETHODCALLTYPE *QueryInterface)
3435  (
3437  REFIID riid,
3438  _COM_Outptr_ void **ppvObject);
3439 
3440  ULONG(STDMETHODCALLTYPE *AddRef)
3441  (
3443 
3444  ULONG(STDMETHODCALLTYPE *Release)
3445  (
3447 
3448  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
3449  (
3454 
3455  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
3456  (
3458  _In_ REFGUID guid,
3461 
3462  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
3463  (
3465  _In_ REFGUID guid,
3467 
3468  HRESULT(STDMETHODCALLTYPE *SetName)
3469  (
3472 
3473  HRESULT(STDMETHODCALLTYPE *GetDevice)
3474  (
3478 
3480  (
3482 
3485 
3486 interface ID3D12CommandList {
3487  CONST_VTBL struct ID3D12CommandListVtbl *lpVtbl;
3488 };
3489 
3490 #ifdef COBJMACROS
3491 
3492 #define ID3D12CommandList_QueryInterface(This, riid, ppvObject) \
3493  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
3494 
3495 #define ID3D12CommandList_AddRef(This) \
3496  ((This)->lpVtbl->AddRef(This))
3497 
3498 #define ID3D12CommandList_Release(This) \
3499  ((This)->lpVtbl->Release(This))
3500 
3501 #define ID3D12CommandList_GetPrivateData(This, guid, pDataSize, pData) \
3502  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
3503 
3504 #define ID3D12CommandList_SetPrivateData(This, guid, DataSize, pData) \
3505  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
3506 
3507 #define ID3D12CommandList_SetPrivateDataInterface(This, guid, pData) \
3508  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
3509 
3510 #define ID3D12CommandList_SetName(This, Name) \
3511  ((This)->lpVtbl->SetName(This, Name))
3512 
3513 #define ID3D12CommandList_GetDevice(This, riid, ppvDevice) \
3514  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
3515 
3516 #define ID3D12CommandList_GetType(This) \
3517  ((This)->lpVtbl->GetType(This))
3518 
3519 #endif /* COBJMACROS */
3520 
3521 #endif /* C style interface */
3522 
3523 #endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */
3524 
3525 #ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
3526 #define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__
3527 
3528 /* interface ID3D12GraphicsCommandList */
3529 /* [unique][local][object][uuid] */
3530 
3532 
3533 #if defined(__cplusplus) && !defined(CINTERFACE)
3534 
3535 MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455")
3537 public:
3538  virtual HRESULT STDMETHODCALLTYPE Close() = 0;
3539 
3540  virtual HRESULT STDMETHODCALLTYPE Reset(
3541  _In_ ID3D12CommandAllocator * pAllocator,
3542  _In_opt_ ID3D12PipelineState * pInitialState) = 0;
3543 
3544  virtual void STDMETHODCALLTYPE ClearState(
3545  _In_opt_ ID3D12PipelineState * pPipelineState) = 0;
3546 
3547  virtual void STDMETHODCALLTYPE DrawInstanced(
3548  _In_ UINT VertexCountPerInstance,
3549  _In_ UINT InstanceCount,
3550  _In_ UINT StartVertexLocation,
3551  _In_ UINT StartInstanceLocation) = 0;
3552 
3553  virtual void STDMETHODCALLTYPE DrawIndexedInstanced(
3554  _In_ UINT IndexCountPerInstance,
3555  _In_ UINT InstanceCount,
3556  _In_ UINT StartIndexLocation,
3557  _In_ INT BaseVertexLocation,
3558  _In_ UINT StartInstanceLocation) = 0;
3559 
3560  virtual void STDMETHODCALLTYPE Dispatch(
3561  _In_ UINT ThreadGroupCountX,
3562  _In_ UINT ThreadGroupCountY,
3563  _In_ UINT ThreadGroupCountZ) = 0;
3564 
3565  virtual void STDMETHODCALLTYPE CopyBufferRegion(
3566  _In_ ID3D12Resource * pDstBuffer,
3567  UINT64 DstOffset,
3568  _In_ ID3D12Resource * pSrcBuffer,
3569  UINT64 SrcOffset,
3570  UINT64 NumBytes) = 0;
3571 
3572  virtual void STDMETHODCALLTYPE CopyTextureRegion(
3573  _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst,
3574  UINT DstX,
3575  UINT DstY,
3576  UINT DstZ,
3577  _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc,
3578  _In_opt_ const D3D12_BOX *pSrcBox) = 0;
3579 
3580  virtual void STDMETHODCALLTYPE CopyResource(
3581  _In_ ID3D12Resource * pDstResource,
3582  _In_ ID3D12Resource * pSrcResource) = 0;
3583 
3584  virtual void STDMETHODCALLTYPE CopyTiles(
3585  _In_ ID3D12Resource * pTiledResource,
3586  _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
3587  _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize,
3588  _In_ ID3D12Resource *pBuffer,
3589  UINT64 BufferStartOffsetInBytes,
3590  D3D12_TILE_COPY_FLAGS Flags) = 0;
3591 
3592  virtual void STDMETHODCALLTYPE ResolveSubresource(
3593  _In_ ID3D12Resource * pDstResource,
3595  _In_ ID3D12Resource * pSrcResource,
3597  _In_ DXGI_FORMAT Format) = 0;
3598 
3599  virtual void STDMETHODCALLTYPE IASetPrimitiveTopology(
3600  _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology) = 0;
3601 
3602  virtual void STDMETHODCALLTYPE RSSetViewports(
3604  _In_reads_(NumViewports) const D3D12_VIEWPORT *pViewports) = 0;
3605 
3606  virtual void STDMETHODCALLTYPE RSSetScissorRects(
3608  _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
3609 
3610  virtual void STDMETHODCALLTYPE OMSetBlendFactor(
3611  _In_opt_ const FLOAT BlendFactor[4]) = 0;
3612 
3613  virtual void STDMETHODCALLTYPE OMSetStencilRef(
3614  _In_ UINT StencilRef) = 0;
3615 
3616  virtual void STDMETHODCALLTYPE SetPipelineState(
3617  _In_ ID3D12PipelineState * pPipelineState) = 0;
3618 
3619  virtual void STDMETHODCALLTYPE ResourceBarrier(
3620  _In_ UINT NumBarriers,
3621  _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;
3622 
3623  virtual void STDMETHODCALLTYPE ExecuteBundle(
3624  _In_ ID3D12GraphicsCommandList * pCommandList) = 0;
3625 
3626  virtual void STDMETHODCALLTYPE SetDescriptorHeaps(
3627  _In_ UINT NumDescriptorHeaps,
3628  _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps) = 0;
3629 
3630  virtual void STDMETHODCALLTYPE SetComputeRootSignature(
3631  _In_opt_ ID3D12RootSignature * pRootSignature) = 0;
3632 
3633  virtual void STDMETHODCALLTYPE SetGraphicsRootSignature(
3634  _In_opt_ ID3D12RootSignature * pRootSignature) = 0;
3635 
3636  virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable(
3637  _In_ UINT RootParameterIndex,
3638  _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0;
3639 
3640  virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable(
3641  _In_ UINT RootParameterIndex,
3642  _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0;
3643 
3644  virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant(
3645  _In_ UINT RootParameterIndex,
3646  _In_ UINT SrcData,
3647  _In_ UINT DestOffsetIn32BitValues) = 0;
3648 
3649  virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant(
3650  _In_ UINT RootParameterIndex,
3651  _In_ UINT SrcData,
3652  _In_ UINT DestOffsetIn32BitValues) = 0;
3653 
3654  virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants(
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 SetGraphicsRoot32BitConstants(
3661  _In_ UINT RootParameterIndex,
3662  _In_ UINT Num32BitValuesToSet,
3663  _In_reads_(Num32BitValuesToSet * sizeof(UINT)) const void *pSrcData,
3664  _In_ UINT DestOffsetIn32BitValues) = 0;
3665 
3666  virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView(
3667  _In_ UINT RootParameterIndex,
3668  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
3669 
3670  virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView(
3671  _In_ UINT RootParameterIndex,
3672  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
3673 
3674  virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView(
3675  _In_ UINT RootParameterIndex,
3676  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
3677 
3678  virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView(
3679  _In_ UINT RootParameterIndex,
3680  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
3681 
3682  virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView(
3683  _In_ UINT RootParameterIndex,
3684  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
3685 
3686  virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView(
3687  _In_ UINT RootParameterIndex,
3688  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0;
3689 
3690  virtual void STDMETHODCALLTYPE IASetIndexBuffer(
3691  _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView) = 0;
3692 
3693  virtual void STDMETHODCALLTYPE IASetVertexBuffers(
3694  _In_ UINT StartSlot,
3695  _In_ UINT NumViews,
3696  _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews) = 0;
3697 
3698  virtual void STDMETHODCALLTYPE SOSetTargets(
3699  _In_ UINT StartSlot,
3700  _In_ UINT NumViews,
3701  _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews) = 0;
3702 
3703  virtual void STDMETHODCALLTYPE OMSetRenderTargets(
3704  _In_ UINT NumRenderTargetDescriptors,
3705  _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
3706  _In_ BOOL RTsSingleHandleToDescriptorRange,
3707  _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor) = 0;
3708 
3709  virtual void STDMETHODCALLTYPE ClearDepthStencilView(
3710  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
3711  _In_ D3D12_CLEAR_FLAGS ClearFlags,
3712  _In_ FLOAT Depth,
3713  _In_ UINT8 Stencil,
3714  _In_ UINT NumRects,
3715  _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
3716 
3717  virtual void STDMETHODCALLTYPE ClearRenderTargetView(
3718  _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
3719  _In_ const FLOAT ColorRGBA[4],
3720  _In_ UINT NumRects,
3721  _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
3722 
3723  virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint(
3724  _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
3725  _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
3726  _In_ ID3D12Resource * pResource,
3727  _In_ const UINT Values[4],
3728  _In_ UINT NumRects,
3729  _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
3730 
3731  virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat(
3732  _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
3733  _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
3734  _In_ ID3D12Resource * pResource,
3735  _In_ const FLOAT Values[4],
3736  _In_ UINT NumRects,
3737  _In_reads_(NumRects) const D3D12_RECT *pRects) = 0;
3738 
3739  virtual void STDMETHODCALLTYPE DiscardResource(
3740  _In_ ID3D12Resource * pResource,
3741  _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;
3742 
3743  virtual void STDMETHODCALLTYPE BeginQuery(
3744  _In_ ID3D12QueryHeap * pQueryHeap,
3745  _In_ D3D12_QUERY_TYPE Type,
3746  _In_ UINT Index) = 0;
3747 
3748  virtual void STDMETHODCALLTYPE EndQuery(
3749  _In_ ID3D12QueryHeap * pQueryHeap,
3750  _In_ D3D12_QUERY_TYPE Type,
3751  _In_ UINT Index) = 0;
3752 
3753  virtual void STDMETHODCALLTYPE ResolveQueryData(
3754  _In_ ID3D12QueryHeap * pQueryHeap,
3755  _In_ D3D12_QUERY_TYPE Type,
3756  _In_ UINT StartIndex,
3757  _In_ UINT NumQueries,
3758  _In_ ID3D12Resource * pDestinationBuffer,
3759  _In_ UINT64 AlignedDestinationBufferOffset) = 0;
3760 
3761  virtual void STDMETHODCALLTYPE SetPredication(
3762  _In_opt_ ID3D12Resource * pBuffer,
3763  _In_ UINT64 AlignedBufferOffset,
3764  _In_ D3D12_PREDICATION_OP Operation) = 0;
3765 
3766  virtual void STDMETHODCALLTYPE SetMarker(
3767  UINT Metadata,
3768  _In_reads_bytes_opt_(Size) const void *pData,
3769  UINT Size) = 0;
3770 
3771  virtual void STDMETHODCALLTYPE BeginEvent(
3772  UINT Metadata,
3773  _In_reads_bytes_opt_(Size) const void *pData,
3774  UINT Size) = 0;
3775 
3776  virtual void STDMETHODCALLTYPE EndEvent() = 0;
3777 
3778  virtual void STDMETHODCALLTYPE ExecuteIndirect(
3779  _In_ ID3D12CommandSignature * pCommandSignature,
3780  _In_ UINT MaxCommandCount,
3781  _In_ ID3D12Resource * pArgumentBuffer,
3782  _In_ UINT64 ArgumentBufferOffset,
3783  _In_opt_ ID3D12Resource * pCountBuffer,
3784  _In_ UINT64 CountBufferOffset) = 0;
3785 };
3786 
3787 #else /* C style interface */
3788 
3791 
3792  HRESULT(STDMETHODCALLTYPE *QueryInterface)
3793  (
3795  REFIID riid,
3796  _COM_Outptr_ void **ppvObject);
3797 
3798  ULONG(STDMETHODCALLTYPE *AddRef)
3799  (
3801 
3802  ULONG(STDMETHODCALLTYPE *Release)
3803  (
3805 
3806  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
3807  (
3812 
3813  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
3814  (
3816  _In_ REFGUID guid,
3819 
3820  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
3821  (
3823  _In_ REFGUID guid,
3825 
3826  HRESULT(STDMETHODCALLTYPE *SetName)
3827  (
3830 
3831  HRESULT(STDMETHODCALLTYPE *GetDevice)
3832  (
3836 
3838  (
3840 
3841  HRESULT(STDMETHODCALLTYPE *Close)
3842  (
3844 
3845  HRESULT(STDMETHODCALLTYPE *Reset)
3846  (
3850 
3851  void(STDMETHODCALLTYPE *ClearState)(
3854 
3855  void(STDMETHODCALLTYPE *DrawInstanced)(
3861 
3862  void(STDMETHODCALLTYPE *DrawIndexedInstanced)(
3865  _In_ UINT InstanceCount,
3869 
3875 
3876  void(STDMETHODCALLTYPE *CopyBufferRegion)(
3883 
3884  void(STDMETHODCALLTYPE *CopyTextureRegion)(
3892 
3893  void(STDMETHODCALLTYPE *CopyResource)(
3897 
3906 
3907  void(STDMETHODCALLTYPE *ResolveSubresource)(
3909  _In_ ID3D12Resource *pDstResource,
3914 
3915  void(STDMETHODCALLTYPE *IASetPrimitiveTopology)(
3918 
3919  void(STDMETHODCALLTYPE *RSSetViewports)(
3922  _In_reads_(NumViewports) const D3D12_VIEWPORT *pViewports);
3923 
3924  void(STDMETHODCALLTYPE *RSSetScissorRects)(
3927  _In_reads_(NumRects) const D3D12_RECT *pRects);
3928 
3929  void(STDMETHODCALLTYPE *OMSetBlendFactor)(
3931  _In_opt_ const FLOAT BlendFactor[4]);
3932 
3933  void(STDMETHODCALLTYPE *OMSetStencilRef)(
3936 
3937  void(STDMETHODCALLTYPE *SetPipelineState)(
3940 
3941  void(STDMETHODCALLTYPE *ResourceBarrier)(
3944  _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
3945 
3946  void(STDMETHODCALLTYPE *ExecuteBundle)(
3949 
3950  void(STDMETHODCALLTYPE *SetDescriptorHeaps)(
3953  _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
3954 
3955  void(STDMETHODCALLTYPE *SetComputeRootSignature)(
3958 
3959  void(STDMETHODCALLTYPE *SetGraphicsRootSignature)(
3961  _In_opt_ ID3D12RootSignature *pRootSignature);
3962 
3963  void(STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
3967 
3968  void(STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
3970  _In_ UINT RootParameterIndex,
3971  _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor);
3972 
3973  void(STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
3975  _In_ UINT RootParameterIndex,
3978 
3979  void(STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
3981  _In_ UINT RootParameterIndex,
3982  _In_ UINT SrcData,
3983  _In_ UINT DestOffsetIn32BitValues);
3984 
3985  void(STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
3987  _In_ UINT RootParameterIndex,
3989  _In_reads_(Num32BitValuesToSet * sizeof(UINT)) const void *pSrcData,
3990  _In_ UINT DestOffsetIn32BitValues);
3991 
3992  void(STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
3994  _In_ UINT RootParameterIndex,
3995  _In_ UINT Num32BitValuesToSet,
3996  _In_reads_(Num32BitValuesToSet * sizeof(UINT)) const void *pSrcData,
3997  _In_ UINT DestOffsetIn32BitValues);
3998 
3999  void(STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
4001  _In_ UINT RootParameterIndex,
4003 
4004  void(STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
4006  _In_ UINT RootParameterIndex,
4007  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
4008 
4009  void(STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
4011  _In_ UINT RootParameterIndex,
4012  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
4013 
4014  void(STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
4016  _In_ UINT RootParameterIndex,
4017  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
4018 
4019  void(STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
4021  _In_ UINT RootParameterIndex,
4022  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
4023 
4024  void(STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
4026  _In_ UINT RootParameterIndex,
4027  _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation);
4028 
4029  void(STDMETHODCALLTYPE *IASetIndexBuffer)(
4032 
4033  void(STDMETHODCALLTYPE *IASetVertexBuffers)(
4037  _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews);
4038 
4039  void(STDMETHODCALLTYPE *SOSetTargets)(
4041  _In_ UINT StartSlot,
4042  _In_ UINT NumViews,
4044 
4045  void(STDMETHODCALLTYPE *OMSetRenderTargets)(
4051 
4052  void(STDMETHODCALLTYPE *ClearDepthStencilView)(
4059  _In_reads_(NumRects) const D3D12_RECT *pRects);
4060 
4061  void(STDMETHODCALLTYPE *ClearRenderTargetView)(
4064  _In_ const FLOAT ColorRGBA[4],
4066  _In_reads_(NumRects) const D3D12_RECT *pRects);
4067 
4068  void(STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
4073  _In_ const UINT Values[4],
4075  _In_reads_(NumRects) const D3D12_RECT *pRects);
4076 
4077  void(STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
4079  _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
4080  _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
4081  _In_ ID3D12Resource *pResource,
4082  _In_ const FLOAT Values[4],
4084  _In_reads_(NumRects) const D3D12_RECT *pRects);
4085 
4086  void(STDMETHODCALLTYPE *DiscardResource)(
4090 
4091  void(STDMETHODCALLTYPE *BeginQuery)(
4096 
4099  _In_ ID3D12QueryHeap *pQueryHeap,
4100  _In_ D3D12_QUERY_TYPE Type,
4101  _In_ UINT Index);
4102 
4103  void(STDMETHODCALLTYPE *ResolveQueryData)(
4105  _In_ ID3D12QueryHeap *pQueryHeap,
4106  _In_ D3D12_QUERY_TYPE Type,
4111 
4112  void(STDMETHODCALLTYPE *SetPredication)(
4117 
4121  _In_reads_bytes_opt_(Size) const void *pData,
4123 
4124  void(STDMETHODCALLTYPE *BeginEvent)(
4126  UINT Metadata,
4127  _In_reads_bytes_opt_(Size) const void *pData,
4128  UINT Size);
4129 
4132 
4133  void(STDMETHODCALLTYPE *ExecuteIndirect)(
4141 
4144 
4145 interface ID3D12GraphicsCommandList {
4147 };
4148 
4149 #ifdef COBJMACROS
4150 
4151 #define ID3D12GraphicsCommandList_QueryInterface(This, riid, ppvObject) \
4152  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
4153 
4154 #define ID3D12GraphicsCommandList_AddRef(This) \
4155  ((This)->lpVtbl->AddRef(This))
4156 
4157 #define ID3D12GraphicsCommandList_Release(This) \
4158  ((This)->lpVtbl->Release(This))
4159 
4160 #define ID3D12GraphicsCommandList_GetPrivateData(This, guid, pDataSize, pData) \
4161  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
4162 
4163 #define ID3D12GraphicsCommandList_SetPrivateData(This, guid, DataSize, pData) \
4164  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
4165 
4166 #define ID3D12GraphicsCommandList_SetPrivateDataInterface(This, guid, pData) \
4167  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
4168 
4169 #define ID3D12GraphicsCommandList_SetName(This, Name) \
4170  ((This)->lpVtbl->SetName(This, Name))
4171 
4172 #define ID3D12GraphicsCommandList_GetDevice(This, riid, ppvDevice) \
4173  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
4174 
4175 #define ID3D12GraphicsCommandList_GetType(This) \
4176  ((This)->lpVtbl->GetType(This))
4177 
4178 #define ID3D12GraphicsCommandList_Close(This) \
4179  ((This)->lpVtbl->Close(This))
4180 
4181 #define ID3D12GraphicsCommandList_Reset(This, pAllocator, pInitialState) \
4182  ((This)->lpVtbl->Reset(This, pAllocator, pInitialState))
4183 
4184 #define ID3D12GraphicsCommandList_ClearState(This, pPipelineState) \
4185  ((This)->lpVtbl->ClearState(This, pPipelineState))
4186 
4187 #define ID3D12GraphicsCommandList_DrawInstanced(This, VertexCountPerInstance, InstanceCount, StartVertexLocation, StartInstanceLocation) \
4188  ((This)->lpVtbl->DrawInstanced(This, VertexCountPerInstance, InstanceCount, StartVertexLocation, StartInstanceLocation))
4189 
4190 #define ID3D12GraphicsCommandList_DrawIndexedInstanced(This, IndexCountPerInstance, InstanceCount, StartIndexLocation, BaseVertexLocation, StartInstanceLocation) \
4191  ((This)->lpVtbl->DrawIndexedInstanced(This, IndexCountPerInstance, InstanceCount, StartIndexLocation, BaseVertexLocation, StartInstanceLocation))
4192 
4193 #define ID3D12GraphicsCommandList_Dispatch(This, ThreadGroupCountX, ThreadGroupCountY, ThreadGroupCountZ) \
4194  ((This)->lpVtbl->Dispatch(This, ThreadGroupCountX, ThreadGroupCountY, ThreadGroupCountZ))
4195 
4196 #define ID3D12GraphicsCommandList_CopyBufferRegion(This, pDstBuffer, DstOffset, pSrcBuffer, SrcOffset, NumBytes) \
4197  ((This)->lpVtbl->CopyBufferRegion(This, pDstBuffer, DstOffset, pSrcBuffer, SrcOffset, NumBytes))
4198 
4199 #define ID3D12GraphicsCommandList_CopyTextureRegion(This, pDst, DstX, DstY, DstZ, pSrc, pSrcBox) \
4200  ((This)->lpVtbl->CopyTextureRegion(This, pDst, DstX, DstY, DstZ, pSrc, pSrcBox))
4201 
4202 #define ID3D12GraphicsCommandList_CopyResource(This, pDstResource, pSrcResource) \
4203  ((This)->lpVtbl->CopyResource(This, pDstResource, pSrcResource))
4204 
4205 #define ID3D12GraphicsCommandList_CopyTiles(This, pTiledResource, pTileRegionStartCoordinate, pTileRegionSize, pBuffer, BufferStartOffsetInBytes, Flags) \
4206  ((This)->lpVtbl->CopyTiles(This, pTiledResource, pTileRegionStartCoordinate, pTileRegionSize, pBuffer, BufferStartOffsetInBytes, Flags))
4207 
4208 #define ID3D12GraphicsCommandList_ResolveSubresource(This, pDstResource, DstSubresource, pSrcResource, SrcSubresource, Format) \
4209  ((This)->lpVtbl->ResolveSubresource(This, pDstResource, DstSubresource, pSrcResource, SrcSubresource, Format))
4210 
4211 #define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This, PrimitiveTopology) \
4212  ((This)->lpVtbl->IASetPrimitiveTopology(This, PrimitiveTopology))
4213 
4214 #define ID3D12GraphicsCommandList_RSSetViewports(This, NumViewports, pViewports) \
4215  ((This)->lpVtbl->RSSetViewports(This, NumViewports, pViewports))
4216 
4217 #define ID3D12GraphicsCommandList_RSSetScissorRects(This, NumRects, pRects) \
4218  ((This)->lpVtbl->RSSetScissorRects(This, NumRects, pRects))
4219 
4220 #define ID3D12GraphicsCommandList_OMSetBlendFactor(This, BlendFactor) \
4221  ((This)->lpVtbl->OMSetBlendFactor(This, BlendFactor))
4222 
4223 #define ID3D12GraphicsCommandList_OMSetStencilRef(This, StencilRef) \
4224  ((This)->lpVtbl->OMSetStencilRef(This, StencilRef))
4225 
4226 #define ID3D12GraphicsCommandList_SetPipelineState(This, pPipelineState) \
4227  ((This)->lpVtbl->SetPipelineState(This, pPipelineState))
4228 
4229 #define ID3D12GraphicsCommandList_ResourceBarrier(This, NumBarriers, pBarriers) \
4230  ((This)->lpVtbl->ResourceBarrier(This, NumBarriers, pBarriers))
4231 
4232 #define ID3D12GraphicsCommandList_ExecuteBundle(This, pCommandList) \
4233  ((This)->lpVtbl->ExecuteBundle(This, pCommandList))
4234 
4235 #define ID3D12GraphicsCommandList_SetDescriptorHeaps(This, NumDescriptorHeaps, ppDescriptorHeaps) \
4236  ((This)->lpVtbl->SetDescriptorHeaps(This, NumDescriptorHeaps, ppDescriptorHeaps))
4237 
4238 #define ID3D12GraphicsCommandList_SetComputeRootSignature(This, pRootSignature) \
4239  ((This)->lpVtbl->SetComputeRootSignature(This, pRootSignature))
4240 
4241 #define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This, pRootSignature) \
4242  ((This)->lpVtbl->SetGraphicsRootSignature(This, pRootSignature))
4243 
4244 #define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This, RootParameterIndex, BaseDescriptor) \
4245  ((This)->lpVtbl->SetComputeRootDescriptorTable(This, RootParameterIndex, BaseDescriptor))
4246 
4247 #define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This, RootParameterIndex, BaseDescriptor) \
4248  ((This)->lpVtbl->SetGraphicsRootDescriptorTable(This, RootParameterIndex, BaseDescriptor))
4249 
4250 #define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This, RootParameterIndex, SrcData, DestOffsetIn32BitValues) \
4251  ((This)->lpVtbl->SetComputeRoot32BitConstant(This, RootParameterIndex, SrcData, DestOffsetIn32BitValues))
4252 
4253 #define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This, RootParameterIndex, SrcData, DestOffsetIn32BitValues) \
4254  ((This)->lpVtbl->SetGraphicsRoot32BitConstant(This, RootParameterIndex, SrcData, DestOffsetIn32BitValues))
4255 
4256 #define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This, RootParameterIndex, Num32BitValuesToSet, pSrcData, DestOffsetIn32BitValues) \
4257  ((This)->lpVtbl->SetComputeRoot32BitConstants(This, RootParameterIndex, Num32BitValuesToSet, pSrcData, DestOffsetIn32BitValues))
4258 
4259 #define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This, RootParameterIndex, Num32BitValuesToSet, pSrcData, DestOffsetIn32BitValues) \
4260  ((This)->lpVtbl->SetGraphicsRoot32BitConstants(This, RootParameterIndex, Num32BitValuesToSet, pSrcData, DestOffsetIn32BitValues))
4261 
4262 #define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This, RootParameterIndex, BufferLocation) \
4263  ((This)->lpVtbl->SetComputeRootConstantBufferView(This, RootParameterIndex, BufferLocation))
4264 
4265 #define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This, RootParameterIndex, BufferLocation) \
4266  ((This)->lpVtbl->SetGraphicsRootConstantBufferView(This, RootParameterIndex, BufferLocation))
4267 
4268 #define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This, RootParameterIndex, BufferLocation) \
4269  ((This)->lpVtbl->SetComputeRootShaderResourceView(This, RootParameterIndex, BufferLocation))
4270 
4271 #define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This, RootParameterIndex, BufferLocation) \
4272  ((This)->lpVtbl->SetGraphicsRootShaderResourceView(This, RootParameterIndex, BufferLocation))
4273 
4274 #define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This, RootParameterIndex, BufferLocation) \
4275  ((This)->lpVtbl->SetComputeRootUnorderedAccessView(This, RootParameterIndex, BufferLocation))
4276 
4277 #define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This, RootParameterIndex, BufferLocation) \
4278  ((This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This, RootParameterIndex, BufferLocation))
4279 
4280 #define ID3D12GraphicsCommandList_IASetIndexBuffer(This, pView) \
4281  ((This)->lpVtbl->IASetIndexBuffer(This, pView))
4282 
4283 #define ID3D12GraphicsCommandList_IASetVertexBuffers(This, StartSlot, NumViews, pViews) \
4284  ((This)->lpVtbl->IASetVertexBuffers(This, StartSlot, NumViews, pViews))
4285 
4286 #define ID3D12GraphicsCommandList_SOSetTargets(This, StartSlot, NumViews, pViews) \
4287  ((This)->lpVtbl->SOSetTargets(This, StartSlot, NumViews, pViews))
4288 
4289 #define ID3D12GraphicsCommandList_OMSetRenderTargets(This, NumRenderTargetDescriptors, pRenderTargetDescriptors, RTsSingleHandleToDescriptorRange, pDepthStencilDescriptor) \
4290  ((This)->lpVtbl->OMSetRenderTargets(This, NumRenderTargetDescriptors, pRenderTargetDescriptors, RTsSingleHandleToDescriptorRange, pDepthStencilDescriptor))
4291 
4292 #define ID3D12GraphicsCommandList_ClearDepthStencilView(This, DepthStencilView, ClearFlags, Depth, Stencil, NumRects, pRects) \
4293  ((This)->lpVtbl->ClearDepthStencilView(This, DepthStencilView, ClearFlags, Depth, Stencil, NumRects, pRects))
4294 
4295 #define ID3D12GraphicsCommandList_ClearRenderTargetView(This, RenderTargetView, ColorRGBA, NumRects, pRects) \
4296  ((This)->lpVtbl->ClearRenderTargetView(This, RenderTargetView, ColorRGBA, NumRects, pRects))
4297 
4298 #define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This, ViewGPUHandleInCurrentHeap, ViewCPUHandle, pResource, Values, NumRects, pRects) \
4299  ((This)->lpVtbl->ClearUnorderedAccessViewUint(This, ViewGPUHandleInCurrentHeap, ViewCPUHandle, pResource, Values, NumRects, pRects))
4300 
4301 #define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This, ViewGPUHandleInCurrentHeap, ViewCPUHandle, pResource, Values, NumRects, pRects) \
4302  ((This)->lpVtbl->ClearUnorderedAccessViewFloat(This, ViewGPUHandleInCurrentHeap, ViewCPUHandle, pResource, Values, NumRects, pRects))
4303 
4304 #define ID3D12GraphicsCommandList_DiscardResource(This, pResource, pRegion) \
4305  ((This)->lpVtbl->DiscardResource(This, pResource, pRegion))
4306 
4307 #define ID3D12GraphicsCommandList_BeginQuery(This, pQueryHeap, Type, Index) \
4308  ((This)->lpVtbl->BeginQuery(This, pQueryHeap, Type, Index))
4309 
4310 #define ID3D12GraphicsCommandList_EndQuery(This, pQueryHeap, Type, Index) \
4311  ((This)->lpVtbl->EndQuery(This, pQueryHeap, Type, Index))
4312 
4313 #define ID3D12GraphicsCommandList_ResolveQueryData(This, pQueryHeap, Type, StartIndex, NumQueries, pDestinationBuffer, AlignedDestinationBufferOffset) \
4314  ((This)->lpVtbl->ResolveQueryData(This, pQueryHeap, Type, StartIndex, NumQueries, pDestinationBuffer, AlignedDestinationBufferOffset))
4315 
4316 #define ID3D12GraphicsCommandList_SetPredication(This, pBuffer, AlignedBufferOffset, Operation) \
4317  ((This)->lpVtbl->SetPredication(This, pBuffer, AlignedBufferOffset, Operation))
4318 
4319 #define ID3D12GraphicsCommandList_SetMarker(This, Metadata, pData, Size) \
4320  ((This)->lpVtbl->SetMarker(This, Metadata, pData, Size))
4321 
4322 #define ID3D12GraphicsCommandList_BeginEvent(This, Metadata, pData, Size) \
4323  ((This)->lpVtbl->BeginEvent(This, Metadata, pData, Size))
4324 
4325 #define ID3D12GraphicsCommandList_EndEvent(This) \
4326  ((This)->lpVtbl->EndEvent(This))
4327 
4328 #define ID3D12GraphicsCommandList_ExecuteIndirect(This, pCommandSignature, MaxCommandCount, pArgumentBuffer, ArgumentBufferOffset, pCountBuffer, CountBufferOffset) \
4329  ((This)->lpVtbl->ExecuteIndirect(This, pCommandSignature, MaxCommandCount, pArgumentBuffer, ArgumentBufferOffset, pCountBuffer, CountBufferOffset))
4330 
4331 #endif /* COBJMACROS */
4332 
4333 #endif /* C style interface */
4334 
4335 #endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */
4336 
4337 #ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__
4338 #define __ID3D12CommandQueue_INTERFACE_DEFINED__
4339 
4340 /* interface ID3D12CommandQueue */
4341 /* [unique][local][object][uuid] */
4342 
4344 
4345 #if defined(__cplusplus) && !defined(CINTERFACE)
4346 
4347 MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed")
4349 public:
4350  virtual void STDMETHODCALLTYPE UpdateTileMappings(
4352  UINT NumResourceRegions,
4353  _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
4354  _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
4355  _In_opt_ ID3D12Heap *pHeap,
4356  UINT NumRanges,
4357  _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
4358  _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
4359  _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
4361 
4362  virtual void STDMETHODCALLTYPE CopyTileMappings(
4364  _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate,
4366  _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate,
4367  _In_ const D3D12_TILE_REGION_SIZE *pRegionSize,
4369 
4370  virtual void STDMETHODCALLTYPE ExecuteCommandLists(
4371  _In_ UINT NumCommandLists,
4372  _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists) = 0;
4373 
4374  virtual void STDMETHODCALLTYPE SetMarker(
4375  UINT Metadata,
4376  _In_reads_bytes_opt_(Size) const void *pData,
4377  UINT Size) = 0;
4378 
4379  virtual void STDMETHODCALLTYPE BeginEvent(
4380  UINT Metadata,
4381  _In_reads_bytes_opt_(Size) const void *pData,
4382  UINT Size) = 0;
4383 
4384  virtual void STDMETHODCALLTYPE EndEvent() = 0;
4385 
4386  virtual HRESULT STDMETHODCALLTYPE Signal(
4387  ID3D12Fence * pFence,
4388  UINT64 Value) = 0;
4389 
4390  virtual HRESULT STDMETHODCALLTYPE Wait(
4391  ID3D12Fence * pFence,
4392  UINT64 Value) = 0;
4393 
4394  virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency(
4395  _Out_ UINT64 * pFrequency) = 0;
4396 
4397  virtual HRESULT STDMETHODCALLTYPE GetClockCalibration(
4398  _Out_ UINT64 * pGpuTimestamp,
4399  _Out_ UINT64 * pCpuTimestamp) = 0;
4400 
4401  virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc() = 0;
4402 };
4403 
4404 #else /* C style interface */
4405 
4406 typedef struct ID3D12CommandQueueVtbl {
4408 
4409  HRESULT(STDMETHODCALLTYPE *QueryInterface)
4410  (
4412  REFIID riid,
4413  _COM_Outptr_ void **ppvObject);
4414 
4415  ULONG(STDMETHODCALLTYPE *AddRef)
4416  (
4418 
4419  ULONG(STDMETHODCALLTYPE *Release)
4420  (
4422 
4423  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
4424  (
4429 
4430  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
4431  (
4433  _In_ REFGUID guid,
4436 
4437  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
4438  (
4440  _In_ REFGUID guid,
4442 
4443  HRESULT(STDMETHODCALLTYPE *SetName)
4444  (
4447 
4448  HRESULT(STDMETHODCALLTYPE *GetDevice)
4449  (
4453 
4454  void(STDMETHODCALLTYPE *UpdateTileMappings)(
4458  _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates,
4459  _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes,
4462  _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags,
4463  _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets,
4464  _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts,
4466 
4467  void(STDMETHODCALLTYPE *CopyTileMappings)(
4475 
4476  void(STDMETHODCALLTYPE *ExecuteCommandLists)(
4479  _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists);
4480 
4484  _In_reads_bytes_opt_(Size) const void *pData,
4486 
4487  void(STDMETHODCALLTYPE *BeginEvent)(
4489  UINT Metadata,
4490  _In_reads_bytes_opt_(Size) const void *pData,
4491  UINT Size);
4492 
4495 
4496  HRESULT(STDMETHODCALLTYPE *Signal)
4497  (
4501 
4502  HRESULT(STDMETHODCALLTYPE *Wait)
4503  (
4505  ID3D12Fence *pFence,
4506  UINT64 Value);
4507 
4508  HRESULT(STDMETHODCALLTYPE *GetTimestampFrequency)
4509  (
4512 
4513  HRESULT(STDMETHODCALLTYPE *GetClockCalibration)
4514  (
4518 
4520  (
4522 
4525 
4526 interface ID3D12CommandQueue {
4527  CONST_VTBL struct ID3D12CommandQueueVtbl *lpVtbl;
4528 };
4529 
4530 #ifdef COBJMACROS
4531 
4532 #define ID3D12CommandQueue_QueryInterface(This, riid, ppvObject) \
4533  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
4534 
4535 #define ID3D12CommandQueue_AddRef(This) \
4536  ((This)->lpVtbl->AddRef(This))
4537 
4538 #define ID3D12CommandQueue_Release(This) \
4539  ((This)->lpVtbl->Release(This))
4540 
4541 #define ID3D12CommandQueue_GetPrivateData(This, guid, pDataSize, pData) \
4542  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
4543 
4544 #define ID3D12CommandQueue_SetPrivateData(This, guid, DataSize, pData) \
4545  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
4546 
4547 #define ID3D12CommandQueue_SetPrivateDataInterface(This, guid, pData) \
4548  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
4549 
4550 #define ID3D12CommandQueue_SetName(This, Name) \
4551  ((This)->lpVtbl->SetName(This, Name))
4552 
4553 #define ID3D12CommandQueue_GetDevice(This, riid, ppvDevice) \
4554  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
4555 
4556 #define ID3D12CommandQueue_UpdateTileMappings(This, pResource, NumResourceRegions, pResourceRegionStartCoordinates, pResourceRegionSizes, pHeap, NumRanges, pRangeFlags, pHeapRangeStartOffsets, pRangeTileCounts, Flags) \
4557  ((This)->lpVtbl->UpdateTileMappings(This, pResource, NumResourceRegions, pResourceRegionStartCoordinates, pResourceRegionSizes, pHeap, NumRanges, pRangeFlags, pHeapRangeStartOffsets, pRangeTileCounts, Flags))
4558 
4559 #define ID3D12CommandQueue_CopyTileMappings(This, pDstResource, pDstRegionStartCoordinate, pSrcResource, pSrcRegionStartCoordinate, pRegionSize, Flags) \
4560  ((This)->lpVtbl->CopyTileMappings(This, pDstResource, pDstRegionStartCoordinate, pSrcResource, pSrcRegionStartCoordinate, pRegionSize, Flags))
4561 
4562 #define ID3D12CommandQueue_ExecuteCommandLists(This, NumCommandLists, ppCommandLists) \
4563  ((This)->lpVtbl->ExecuteCommandLists(This, NumCommandLists, ppCommandLists))
4564 
4565 #define ID3D12CommandQueue_SetMarker(This, Metadata, pData, Size) \
4566  ((This)->lpVtbl->SetMarker(This, Metadata, pData, Size))
4567 
4568 #define ID3D12CommandQueue_BeginEvent(This, Metadata, pData, Size) \
4569  ((This)->lpVtbl->BeginEvent(This, Metadata, pData, Size))
4570 
4571 #define ID3D12CommandQueue_EndEvent(This) \
4572  ((This)->lpVtbl->EndEvent(This))
4573 
4574 #define ID3D12CommandQueue_Signal(This, pFence, Value) \
4575  ((This)->lpVtbl->Signal(This, pFence, Value))
4576 
4577 #define ID3D12CommandQueue_Wait(This, pFence, Value) \
4578  ((This)->lpVtbl->Wait(This, pFence, Value))
4579 
4580 #define ID3D12CommandQueue_GetTimestampFrequency(This, pFrequency) \
4581  ((This)->lpVtbl->GetTimestampFrequency(This, pFrequency))
4582 
4583 #define ID3D12CommandQueue_GetClockCalibration(This, pGpuTimestamp, pCpuTimestamp) \
4584  ((This)->lpVtbl->GetClockCalibration(This, pGpuTimestamp, pCpuTimestamp))
4585 
4586 #define ID3D12CommandQueue_GetDesc(This) \
4587  ((This)->lpVtbl->GetDesc(This))
4588 
4589 #endif /* COBJMACROS */
4590 
4591 #endif /* C style interface */
4592 
4593 #endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */
4594 
4595 #ifdef __midl
4596 #ifndef LUID_DEFINED
4597 #define LUID_DEFINED 1
4598 typedef struct __LUID {
4602 
4603 typedef struct __LUID *PLUID;
4604 
4605 #endif
4606 #endif
4607 
4608 #define D3D12_REQ_SUBRESOURCES (30720)
4609 
4610 #ifndef __ID3D12Device_INTERFACE_DEFINED__
4611 #define __ID3D12Device_INTERFACE_DEFINED__
4612 
4613 /* interface ID3D12Device */
4614 /* [unique][local][object][uuid] */
4615 
4617 
4618 #if defined(__cplusplus) && !defined(CINTERFACE)
4619 
4620 MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7")
4621 ID3D12Device : public ID3D12Object {
4622 public:
4623  virtual UINT STDMETHODCALLTYPE GetNodeCount() = 0;
4624 
4625  virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue(
4626  _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
4627  REFIID riid,
4628  _COM_Outptr_ void **ppCommandQueue) = 0;
4629 
4630  virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator(
4632  REFIID riid,
4633  _COM_Outptr_ void **ppCommandAllocator) = 0;
4634 
4635  virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState(
4637  REFIID riid,
4638  _COM_Outptr_ void **ppPipelineState) = 0;
4639 
4640  virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState(
4642  REFIID riid,
4643  _COM_Outptr_ void **ppPipelineState) = 0;
4644 
4645  virtual HRESULT STDMETHODCALLTYPE CreateCommandList(
4646  _In_ UINT nodeMask,
4648  _In_ ID3D12CommandAllocator * pCommandAllocator,
4649  _In_opt_ ID3D12PipelineState * pInitialState,
4650  REFIID riid,
4651  _COM_Outptr_ void **ppCommandList) = 0;
4652 
4653  virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
4654  D3D12_FEATURE Feature,
4655  _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
4656  UINT FeatureSupportDataSize) = 0;
4657 
4658  virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap(
4659  _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
4660  REFIID riid,
4661  _COM_Outptr_ void **ppvHeap) = 0;
4662 
4663  virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize(
4664  _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) = 0;
4665 
4666  virtual HRESULT STDMETHODCALLTYPE CreateRootSignature(
4667  _In_ UINT nodeMask,
4668  _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
4669  _In_ SIZE_T blobLengthInBytes,
4670  REFIID riid,
4671  _COM_Outptr_ void **ppvRootSignature) = 0;
4672 
4673  virtual void STDMETHODCALLTYPE CreateConstantBufferView(
4675  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
4676 
4677  virtual void STDMETHODCALLTYPE CreateShaderResourceView(
4678  _In_opt_ ID3D12Resource * pResource,
4680  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
4681 
4682  virtual void STDMETHODCALLTYPE CreateUnorderedAccessView(
4683  _In_opt_ ID3D12Resource * pResource,
4684  _In_opt_ ID3D12Resource * pCounterResource,
4686  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
4687 
4688  virtual void STDMETHODCALLTYPE CreateRenderTargetView(
4689  _In_opt_ ID3D12Resource * pResource,
4691  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
4692 
4693  virtual void STDMETHODCALLTYPE CreateDepthStencilView(
4694  _In_opt_ ID3D12Resource * pResource,
4696  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
4697 
4698  virtual void STDMETHODCALLTYPE CreateSampler(
4699  _In_ const D3D12_SAMPLER_DESC *pDesc,
4700  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0;
4701 
4702  virtual void STDMETHODCALLTYPE CopyDescriptors(
4703  _In_ UINT NumDestDescriptorRanges,
4704  _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
4705  _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
4706  _In_ UINT NumSrcDescriptorRanges,
4707  _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
4708  _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
4709  _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0;
4710 
4711  virtual void STDMETHODCALLTYPE CopyDescriptorsSimple(
4712  _In_ UINT NumDescriptors,
4713  _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
4714  _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
4715  _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0;
4716 
4717  virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
4718  _In_ UINT visibleMask,
4719  _In_ UINT numResourceDescs,
4720  _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0;
4721 
4722  virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
4723  _In_ UINT nodeMask,
4724  D3D12_HEAP_TYPE heapType) = 0;
4725 
4726  virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource(
4728  D3D12_HEAP_FLAGS HeapFlags,
4729  _In_ const D3D12_RESOURCE_DESC *pDesc,
4730  D3D12_RESOURCE_STATES InitialResourceState,
4731  _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
4732  REFIID riidResource,
4733  _COM_Outptr_opt_ void **ppvResource) = 0;
4734 
4735  virtual HRESULT STDMETHODCALLTYPE CreateHeap(
4736  _In_ const D3D12_HEAP_DESC *pDesc,
4737  REFIID riid,
4738  _COM_Outptr_opt_ void **ppvHeap) = 0;
4739 
4740  virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource(
4741  _In_ ID3D12Heap * pHeap,
4742  UINT64 HeapOffset,
4743  _In_ const D3D12_RESOURCE_DESC *pDesc,
4744  D3D12_RESOURCE_STATES InitialState,
4745  _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
4746  REFIID riid,
4747  _COM_Outptr_opt_ void **ppvResource) = 0;
4748 
4749  virtual HRESULT STDMETHODCALLTYPE CreateReservedResource(
4750  _In_ const D3D12_RESOURCE_DESC *pDesc,
4751  D3D12_RESOURCE_STATES InitialState,
4752  _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
4753  REFIID riid,
4754  _COM_Outptr_opt_ void **ppvResource) = 0;
4755 
4756  virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
4757  _In_ ID3D12DeviceChild * pObject,
4758  _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
4759  DWORD Access,
4761  _Out_ HANDLE *pHandle) = 0;
4762 
4763  virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle(
4764  _In_ HANDLE NTHandle,
4765  REFIID riid,
4766  _COM_Outptr_opt_ void **ppvObj) = 0;
4767 
4768  virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName(
4769  _In_ LPCWSTR Name,
4770  DWORD Access,
4771  /* [annotation][out] */
4772  _Out_ HANDLE * pNTHandle) = 0;
4773 
4774  virtual HRESULT STDMETHODCALLTYPE MakeResident(
4775  UINT NumObjects,
4776  _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0;
4777 
4778  virtual HRESULT STDMETHODCALLTYPE Evict(
4779  UINT NumObjects,
4780  _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0;
4781 
4782  virtual HRESULT STDMETHODCALLTYPE CreateFence(
4783  UINT64 InitialValue,
4784  D3D12_FENCE_FLAGS Flags,
4785  REFIID riid,
4786  _COM_Outptr_ void **ppFence) = 0;
4787 
4788  virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason() = 0;
4789 
4790  virtual void STDMETHODCALLTYPE GetCopyableFootprints(
4791  _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
4792  _In_range_(0, D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
4793  _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources,
4794  UINT64 BaseOffset,
4795  _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
4796  _Out_writes_opt_(NumSubresources) UINT *pNumRows,
4797  _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
4798  _Out_opt_ UINT64 *pTotalBytes) = 0;
4799 
4800  virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap(
4801  _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
4802  REFIID riid,
4803  _COM_Outptr_opt_ void **ppvHeap) = 0;
4804 
4805  virtual HRESULT STDMETHODCALLTYPE SetStablePowerState(
4806  BOOL Enable) = 0;
4807 
4808  virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature(
4809  _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
4810  _In_opt_ ID3D12RootSignature *pRootSignature,
4811  REFIID riid,
4812  _COM_Outptr_opt_ void **ppvCommandSignature) = 0;
4813 
4814  virtual void STDMETHODCALLTYPE GetResourceTiling(
4815  _In_ ID3D12Resource * pTiledResource,
4816  _Out_opt_ UINT * pNumTilesForEntireResource,
4817  _Out_opt_ D3D12_PACKED_MIP_INFO * pPackedMipDesc,
4818  _Out_opt_ D3D12_TILE_SHAPE * pStandardTileShapeForNonPackedMips,
4819  _Inout_opt_ UINT * pNumSubresourceTilings,
4820  _In_ UINT FirstSubresourceTilingToGet,
4821  _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING * pSubresourceTilingsForNonPackedMips) = 0;
4822 
4823  virtual LUID STDMETHODCALLTYPE GetAdapterLuid() = 0;
4824 };
4825 
4826 #else /* C style interface */
4827 
4828 typedef struct ID3D12DeviceVtbl {
4830 
4831  HRESULT(STDMETHODCALLTYPE *QueryInterface)
4832  (
4833  ID3D12Device *This,
4834  REFIID riid,
4835  _COM_Outptr_ void **ppvObject);
4836 
4837  ULONG(STDMETHODCALLTYPE *AddRef)
4838  (
4840 
4841  ULONG(STDMETHODCALLTYPE *Release)
4842  (
4843  ID3D12Device *This);
4844 
4845  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
4846  (
4847  ID3D12Device *This,
4851 
4852  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
4853  (
4854  ID3D12Device *This,
4855  _In_ REFGUID guid,
4858 
4859  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
4860  (
4861  ID3D12Device *This,
4862  _In_ REFGUID guid,
4864 
4865  HRESULT(STDMETHODCALLTYPE *SetName)
4866  (
4867  ID3D12Device *This,
4869 
4870  UINT(STDMETHODCALLTYPE *GetNodeCount)
4871  (
4872  ID3D12Device *This);
4873 
4874  HRESULT(STDMETHODCALLTYPE *CreateCommandQueue)
4875  (
4876  ID3D12Device *This,
4880 
4881  HRESULT(STDMETHODCALLTYPE *CreateCommandAllocator)
4882  (
4883  ID3D12Device *This,
4887 
4888  HRESULT(STDMETHODCALLTYPE *CreateGraphicsPipelineState)
4889  (
4890  ID3D12Device *This,
4894 
4895  HRESULT(STDMETHODCALLTYPE *CreateComputePipelineState)
4896  (
4897  ID3D12Device *This,
4901 
4902  HRESULT(STDMETHODCALLTYPE *CreateCommandList)
4903  (
4904  ID3D12Device *This,
4911 
4912  HRESULT(STDMETHODCALLTYPE *CheckFeatureSupport)
4913  (
4914  ID3D12Device *This,
4916  _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
4918 
4919  HRESULT(STDMETHODCALLTYPE *CreateDescriptorHeap)
4920  (
4921  ID3D12Device *This,
4925 
4926  UINT(STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)
4927  (
4928  ID3D12Device *This,
4930 
4931  HRESULT(STDMETHODCALLTYPE *CreateRootSignature)
4932  (
4933  ID3D12Device *This,
4934  _In_ UINT nodeMask,
4935  _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
4939 
4940  void(STDMETHODCALLTYPE *CreateConstantBufferView)(
4941  ID3D12Device *This,
4944 
4945  void(STDMETHODCALLTYPE *CreateShaderResourceView)(
4946  ID3D12Device *This,
4950 
4951  void(STDMETHODCALLTYPE *CreateUnorderedAccessView)(
4952  ID3D12Device *This,
4953  _In_opt_ ID3D12Resource *pResource,
4957 
4958  void(STDMETHODCALLTYPE *CreateRenderTargetView)(
4959  ID3D12Device *This,
4960  _In_opt_ ID3D12Resource *pResource,
4963 
4964  void(STDMETHODCALLTYPE *CreateDepthStencilView)(
4965  ID3D12Device *This,
4966  _In_opt_ ID3D12Resource *pResource,
4969 
4970  void(STDMETHODCALLTYPE *CreateSampler)(
4971  ID3D12Device *This,
4974 
4975  void(STDMETHODCALLTYPE *CopyDescriptors)(
4976  ID3D12Device *This,
4978  _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
4979  _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
4981  _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
4982  _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
4984 
4985  void(STDMETHODCALLTYPE *CopyDescriptorsSimple)(
4986  ID3D12Device *This,
4991 
4992  D3D12_RESOURCE_ALLOCATION_INFO(STDMETHODCALLTYPE *GetResourceAllocationInfo)
4993  (
4994  ID3D12Device *This,
4997  _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
4998 
4999  D3D12_HEAP_PROPERTIES(STDMETHODCALLTYPE *GetCustomHeapProperties)
5000  (
5001  ID3D12Device *This,
5002  _In_ UINT nodeMask,
5004 
5005  HRESULT(STDMETHODCALLTYPE *CreateCommittedResource)
5006  (
5007  ID3D12Device *This,
5015 
5016  HRESULT(STDMETHODCALLTYPE *CreateHeap)
5017  (
5018  ID3D12Device *This,
5022 
5023  HRESULT(STDMETHODCALLTYPE *CreatePlacedResource)
5024  (
5025  ID3D12Device *This,
5033 
5034  HRESULT(STDMETHODCALLTYPE *CreateReservedResource)
5035  (
5036  ID3D12Device *This,
5042 
5043  HRESULT(STDMETHODCALLTYPE *CreateSharedHandle)
5044  (
5045  ID3D12Device *This,
5051 
5052  HRESULT(STDMETHODCALLTYPE *OpenSharedHandle)
5053  (
5054  ID3D12Device *This,
5058 
5059  HRESULT(STDMETHODCALLTYPE *OpenSharedHandleByName)
5060  (
5061  ID3D12Device *This,
5064  /* [annotation][out] */
5066 
5067  HRESULT(STDMETHODCALLTYPE *MakeResident)
5068  (
5069  ID3D12Device *This,
5071  _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
5072 
5073  HRESULT(STDMETHODCALLTYPE *Evict)
5074  (
5075  ID3D12Device *This,
5076  UINT NumObjects,
5077  _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
5078 
5079  HRESULT(STDMETHODCALLTYPE *CreateFence)
5080  (
5081  ID3D12Device *This,
5086 
5087  HRESULT(STDMETHODCALLTYPE *GetDeviceRemovedReason)
5088  (
5089  ID3D12Device *This);
5090 
5091  void(STDMETHODCALLTYPE *GetCopyableFootprints)(
5092  ID3D12Device *This,
5095  _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources,
5098  _Out_writes_opt_(NumSubresources) UINT *pNumRows,
5099  _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
5101 
5102  HRESULT(STDMETHODCALLTYPE *CreateQueryHeap)
5103  (
5104  ID3D12Device *This,
5108 
5109  HRESULT(STDMETHODCALLTYPE *SetStablePowerState)
5110  (
5111  ID3D12Device *This,
5113 
5114  HRESULT(STDMETHODCALLTYPE *CreateCommandSignature)
5115  (
5116  ID3D12Device *This,
5121 
5122  void(STDMETHODCALLTYPE *GetResourceTiling)(
5123  ID3D12Device *This,
5131 
5132  LUID(STDMETHODCALLTYPE *GetAdapterLuid)
5133  (
5134  ID3D12Device *This);
5135 
5138 
5139 interface ID3D12Device {
5140  CONST_VTBL struct ID3D12DeviceVtbl *lpVtbl;
5141 };
5142 
5143 #ifdef COBJMACROS
5144 
5145 #define ID3D12Device_QueryInterface(This, riid, ppvObject) \
5146  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
5147 
5148 #define ID3D12Device_AddRef(This) \
5149  ((This)->lpVtbl->AddRef(This))
5150 
5151 #define ID3D12Device_Release(This) \
5152  ((This)->lpVtbl->Release(This))
5153 
5154 #define ID3D12Device_GetPrivateData(This, guid, pDataSize, pData) \
5155  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
5156 
5157 #define ID3D12Device_SetPrivateData(This, guid, DataSize, pData) \
5158  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
5159 
5160 #define ID3D12Device_SetPrivateDataInterface(This, guid, pData) \
5161  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
5162 
5163 #define ID3D12Device_SetName(This, Name) \
5164  ((This)->lpVtbl->SetName(This, Name))
5165 
5166 #define ID3D12Device_GetNodeCount(This) \
5167  ((This)->lpVtbl->GetNodeCount(This))
5168 
5169 #define ID3D12Device_CreateCommandQueue(This, pDesc, riid, ppCommandQueue) \
5170  ((This)->lpVtbl->CreateCommandQueue(This, pDesc, riid, ppCommandQueue))
5171 
5172 #define ID3D12Device_CreateCommandAllocator(This, type, riid, ppCommandAllocator) \
5173  ((This)->lpVtbl->CreateCommandAllocator(This, type, riid, ppCommandAllocator))
5174 
5175 #define ID3D12Device_CreateGraphicsPipelineState(This, pDesc, riid, ppPipelineState) \
5176  ((This)->lpVtbl->CreateGraphicsPipelineState(This, pDesc, riid, ppPipelineState))
5177 
5178 #define ID3D12Device_CreateComputePipelineState(This, pDesc, riid, ppPipelineState) \
5179  ((This)->lpVtbl->CreateComputePipelineState(This, pDesc, riid, ppPipelineState))
5180 
5181 #define ID3D12Device_CreateCommandList(This, nodeMask, type, pCommandAllocator, pInitialState, riid, ppCommandList) \
5182  ((This)->lpVtbl->CreateCommandList(This, nodeMask, type, pCommandAllocator, pInitialState, riid, ppCommandList))
5183 
5184 #define ID3D12Device_CheckFeatureSupport(This, Feature, pFeatureSupportData, FeatureSupportDataSize) \
5185  ((This)->lpVtbl->CheckFeatureSupport(This, Feature, pFeatureSupportData, FeatureSupportDataSize))
5186 
5187 #define ID3D12Device_CreateDescriptorHeap(This, pDescriptorHeapDesc, riid, ppvHeap) \
5188  ((This)->lpVtbl->CreateDescriptorHeap(This, pDescriptorHeapDesc, riid, ppvHeap))
5189 
5190 #define ID3D12Device_GetDescriptorHandleIncrementSize(This, DescriptorHeapType) \
5191  ((This)->lpVtbl->GetDescriptorHandleIncrementSize(This, DescriptorHeapType))
5192 
5193 #define ID3D12Device_CreateRootSignature(This, nodeMask, pBlobWithRootSignature, blobLengthInBytes, riid, ppvRootSignature) \
5194  ((This)->lpVtbl->CreateRootSignature(This, nodeMask, pBlobWithRootSignature, blobLengthInBytes, riid, ppvRootSignature))
5195 
5196 #define ID3D12Device_CreateConstantBufferView(This, pDesc, DestDescriptor) \
5197  ((This)->lpVtbl->CreateConstantBufferView(This, pDesc, DestDescriptor))
5198 
5199 #define ID3D12Device_CreateShaderResourceView(This, pResource, pDesc, DestDescriptor) \
5200  ((This)->lpVtbl->CreateShaderResourceView(This, pResource, pDesc, DestDescriptor))
5201 
5202 #define ID3D12Device_CreateUnorderedAccessView(This, pResource, pCounterResource, pDesc, DestDescriptor) \
5203  ((This)->lpVtbl->CreateUnorderedAccessView(This, pResource, pCounterResource, pDesc, DestDescriptor))
5204 
5205 #define ID3D12Device_CreateRenderTargetView(This, pResource, pDesc, DestDescriptor) \
5206  ((This)->lpVtbl->CreateRenderTargetView(This, pResource, pDesc, DestDescriptor))
5207 
5208 #define ID3D12Device_CreateDepthStencilView(This, pResource, pDesc, DestDescriptor) \
5209  ((This)->lpVtbl->CreateDepthStencilView(This, pResource, pDesc, DestDescriptor))
5210 
5211 #define ID3D12Device_CreateSampler(This, pDesc, DestDescriptor) \
5212  ((This)->lpVtbl->CreateSampler(This, pDesc, DestDescriptor))
5213 
5214 #define ID3D12Device_CopyDescriptors(This, NumDestDescriptorRanges, pDestDescriptorRangeStarts, pDestDescriptorRangeSizes, NumSrcDescriptorRanges, pSrcDescriptorRangeStarts, pSrcDescriptorRangeSizes, DescriptorHeapsType) \
5215  ((This)->lpVtbl->CopyDescriptors(This, NumDestDescriptorRanges, pDestDescriptorRangeStarts, pDestDescriptorRangeSizes, NumSrcDescriptorRanges, pSrcDescriptorRangeStarts, pSrcDescriptorRangeSizes, DescriptorHeapsType))
5216 
5217 #define ID3D12Device_CopyDescriptorsSimple(This, NumDescriptors, DestDescriptorRangeStart, SrcDescriptorRangeStart, DescriptorHeapsType) \
5218  ((This)->lpVtbl->CopyDescriptorsSimple(This, NumDescriptors, DestDescriptorRangeStart, SrcDescriptorRangeStart, DescriptorHeapsType))
5219 
5220 #define ID3D12Device_GetResourceAllocationInfo(This, visibleMask, numResourceDescs, pResourceDescs) \
5221  ((This)->lpVtbl->GetResourceAllocationInfo(This, visibleMask, numResourceDescs, pResourceDescs))
5222 
5223 #define ID3D12Device_GetCustomHeapProperties(This, nodeMask, heapType) \
5224  ((This)->lpVtbl->GetCustomHeapProperties(This, nodeMask, heapType))
5225 
5226 #define ID3D12Device_CreateCommittedResource(This, pHeapProperties, HeapFlags, pDesc, InitialResourceState, pOptimizedClearValue, riidResource, ppvResource) \
5227  ((This)->lpVtbl->CreateCommittedResource(This, pHeapProperties, HeapFlags, pDesc, InitialResourceState, pOptimizedClearValue, riidResource, ppvResource))
5228 
5229 #define ID3D12Device_CreateHeap(This, pDesc, riid, ppvHeap) \
5230  ((This)->lpVtbl->CreateHeap(This, pDesc, riid, ppvHeap))
5231 
5232 #define ID3D12Device_CreatePlacedResource(This, pHeap, HeapOffset, pDesc, InitialState, pOptimizedClearValue, riid, ppvResource) \
5233  ((This)->lpVtbl->CreatePlacedResource(This, pHeap, HeapOffset, pDesc, InitialState, pOptimizedClearValue, riid, ppvResource))
5234 
5235 #define ID3D12Device_CreateReservedResource(This, pDesc, InitialState, pOptimizedClearValue, riid, ppvResource) \
5236  ((This)->lpVtbl->CreateReservedResource(This, pDesc, InitialState, pOptimizedClearValue, riid, ppvResource))
5237 
5238 #define ID3D12Device_CreateSharedHandle(This, pObject, pAttributes, Access, Name, pHandle) \
5239  ((This)->lpVtbl->CreateSharedHandle(This, pObject, pAttributes, Access, Name, pHandle))
5240 
5241 #define ID3D12Device_OpenSharedHandle(This, NTHandle, riid, ppvObj) \
5242  ((This)->lpVtbl->OpenSharedHandle(This, NTHandle, riid, ppvObj))
5243 
5244 #define ID3D12Device_OpenSharedHandleByName(This, Name, Access, pNTHandle) \
5245  ((This)->lpVtbl->OpenSharedHandleByName(This, Name, Access, pNTHandle))
5246 
5247 #define ID3D12Device_MakeResident(This, NumObjects, ppObjects) \
5248  ((This)->lpVtbl->MakeResident(This, NumObjects, ppObjects))
5249 
5250 #define ID3D12Device_Evict(This, NumObjects, ppObjects) \
5251  ((This)->lpVtbl->Evict(This, NumObjects, ppObjects))
5252 
5253 #define ID3D12Device_CreateFence(This, InitialValue, Flags, riid, ppFence) \
5254  ((This)->lpVtbl->CreateFence(This, InitialValue, Flags, riid, ppFence))
5255 
5256 #define ID3D12Device_GetDeviceRemovedReason(This) \
5257  ((This)->lpVtbl->GetDeviceRemovedReason(This))
5258 
5259 #define ID3D12Device_GetCopyableFootprints(This, pResourceDesc, FirstSubresource, NumSubresources, BaseOffset, pLayouts, pNumRows, pRowSizeInBytes, pTotalBytes) \
5260  ((This)->lpVtbl->GetCopyableFootprints(This, pResourceDesc, FirstSubresource, NumSubresources, BaseOffset, pLayouts, pNumRows, pRowSizeInBytes, pTotalBytes))
5261 
5262 #define ID3D12Device_CreateQueryHeap(This, pDesc, riid, ppvHeap) \
5263  ((This)->lpVtbl->CreateQueryHeap(This, pDesc, riid, ppvHeap))
5264 
5265 #define ID3D12Device_SetStablePowerState(This, Enable) \
5266  ((This)->lpVtbl->SetStablePowerState(This, Enable))
5267 
5268 #define ID3D12Device_CreateCommandSignature(This, pDesc, pRootSignature, riid, ppvCommandSignature) \
5269  ((This)->lpVtbl->CreateCommandSignature(This, pDesc, pRootSignature, riid, ppvCommandSignature))
5270 
5271 #define ID3D12Device_GetResourceTiling(This, pTiledResource, pNumTilesForEntireResource, pPackedMipDesc, pStandardTileShapeForNonPackedMips, pNumSubresourceTilings, FirstSubresourceTilingToGet, pSubresourceTilingsForNonPackedMips) \
5272  ((This)->lpVtbl->GetResourceTiling(This, pTiledResource, pNumTilesForEntireResource, pPackedMipDesc, pStandardTileShapeForNonPackedMips, pNumSubresourceTilings, FirstSubresourceTilingToGet, pSubresourceTilingsForNonPackedMips))
5273 
5274 #define ID3D12Device_GetAdapterLuid(This) \
5275  ((This)->lpVtbl->GetAdapterLuid(This))
5276 
5277 #endif /* COBJMACROS */
5278 
5279 #endif /* C style interface */
5280 
5281 #endif /* __ID3D12Device_INTERFACE_DEFINED__ */
5282 
5283 #ifndef __ID3D12Fence_INTERFACE_DEFINED__
5284 #define __ID3D12Fence_INTERFACE_DEFINED__
5285 
5286 /* interface ID3D12Fence */
5287 /* [unique][local][object][uuid] */
5288 
5290 
5291 #if defined(__cplusplus) && !defined(CINTERFACE)
5292 
5293 MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76")
5294 ID3D12Fence : public ID3D12Pageable {
5295 public:
5296  virtual UINT64 STDMETHODCALLTYPE GetCompletedValue() = 0;
5297 
5298  virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion(
5299  UINT64 Value,
5300  HANDLE hEvent) = 0;
5301 
5302  virtual HRESULT STDMETHODCALLTYPE Signal(
5303  UINT64 Value) = 0;
5304 };
5305 
5306 #else /* C style interface */
5307 
5308 typedef struct ID3D12FenceVtbl {
5310 
5311  HRESULT(STDMETHODCALLTYPE *QueryInterface)
5312  (
5313  ID3D12Fence *This,
5314  REFIID riid,
5315  _COM_Outptr_ void **ppvObject);
5316 
5317  ULONG(STDMETHODCALLTYPE *AddRef)
5318  (
5320 
5321  ULONG(STDMETHODCALLTYPE *Release)
5322  (
5323  ID3D12Fence *This);
5324 
5325  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
5326  (
5327  ID3D12Fence *This,
5331 
5332  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
5333  (
5334  ID3D12Fence *This,
5335  _In_ REFGUID guid,
5338 
5339  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
5340  (
5341  ID3D12Fence *This,
5342  _In_ REFGUID guid,
5344 
5345  HRESULT(STDMETHODCALLTYPE *SetName)
5346  (
5347  ID3D12Fence *This,
5349 
5350  HRESULT(STDMETHODCALLTYPE *GetDevice)
5351  (
5352  ID3D12Fence *This,
5355 
5356  UINT64(STDMETHODCALLTYPE *GetCompletedValue)
5357  (
5358  ID3D12Fence *This);
5359 
5360  HRESULT(STDMETHODCALLTYPE *SetEventOnCompletion)
5361  (
5362  ID3D12Fence *This,
5365 
5366  HRESULT(STDMETHODCALLTYPE *Signal)
5367  (
5368  ID3D12Fence *This,
5369  UINT64 Value);
5370 
5373 
5374 interface ID3D12Fence {
5375  CONST_VTBL struct ID3D12FenceVtbl *lpVtbl;
5376 };
5377 
5378 #ifdef COBJMACROS
5379 
5380 #define ID3D12Fence_QueryInterface(This, riid, ppvObject) \
5381  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
5382 
5383 #define ID3D12Fence_AddRef(This) \
5384  ((This)->lpVtbl->AddRef(This))
5385 
5386 #define ID3D12Fence_Release(This) \
5387  ((This)->lpVtbl->Release(This))
5388 
5389 #define ID3D12Fence_GetPrivateData(This, guid, pDataSize, pData) \
5390  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
5391 
5392 #define ID3D12Fence_SetPrivateData(This, guid, DataSize, pData) \
5393  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
5394 
5395 #define ID3D12Fence_SetPrivateDataInterface(This, guid, pData) \
5396  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
5397 
5398 #define ID3D12Fence_SetName(This, Name) \
5399  ((This)->lpVtbl->SetName(This, Name))
5400 
5401 #define ID3D12Fence_GetDevice(This, riid, ppvDevice) \
5402  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
5403 
5404 #define ID3D12Fence_GetCompletedValue(This) \
5405  ((This)->lpVtbl->GetCompletedValue(This))
5406 
5407 #define ID3D12Fence_SetEventOnCompletion(This, Value, hEvent) \
5408  ((This)->lpVtbl->SetEventOnCompletion(This, Value, hEvent))
5409 
5410 #define ID3D12Fence_Signal(This, Value) \
5411  ((This)->lpVtbl->Signal(This, Value))
5412 
5413 #endif /* COBJMACROS */
5414 
5415 #endif /* C style interface */
5416 
5417 #endif /* __ID3D12Fence_INTERFACE_DEFINED__ */
5418 
5419 #ifndef __ID3D12PipelineState_INTERFACE_DEFINED__
5420 #define __ID3D12PipelineState_INTERFACE_DEFINED__
5421 
5422 /* interface ID3D12PipelineState */
5423 /* [unique][local][object][uuid] */
5424 
5426 
5427 #if defined(__cplusplus) && !defined(CINTERFACE)
5428 
5429 MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445")
5431 public:
5432  virtual HRESULT STDMETHODCALLTYPE GetCachedBlob(
5433  _COM_Outptr_ ID3DBlob * *ppBlob) = 0;
5434 };
5435 
5436 #else /* C style interface */
5437 
5438 typedef struct ID3D12PipelineStateVtbl {
5440 
5441  HRESULT(STDMETHODCALLTYPE *QueryInterface)
5442  (
5444  REFIID riid,
5445  _COM_Outptr_ void **ppvObject);
5446 
5447  ULONG(STDMETHODCALLTYPE *AddRef)
5448  (
5450 
5451  ULONG(STDMETHODCALLTYPE *Release)
5452  (
5454 
5455  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
5456  (
5461 
5462  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
5463  (
5465  _In_ REFGUID guid,
5468 
5469  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
5470  (
5472  _In_ REFGUID guid,
5474 
5475  HRESULT(STDMETHODCALLTYPE *SetName)
5476  (
5479 
5480  HRESULT(STDMETHODCALLTYPE *GetDevice)
5481  (
5485 
5486  HRESULT(STDMETHODCALLTYPE *GetCachedBlob)
5487  (
5490 
5493 
5494 interface ID3D12PipelineState {
5495  CONST_VTBL struct ID3D12PipelineStateVtbl *lpVtbl;
5496 };
5497 
5498 #ifdef COBJMACROS
5499 
5500 #define ID3D12PipelineState_QueryInterface(This, riid, ppvObject) \
5501  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
5502 
5503 #define ID3D12PipelineState_AddRef(This) \
5504  ((This)->lpVtbl->AddRef(This))
5505 
5506 #define ID3D12PipelineState_Release(This) \
5507  ((This)->lpVtbl->Release(This))
5508 
5509 #define ID3D12PipelineState_GetPrivateData(This, guid, pDataSize, pData) \
5510  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
5511 
5512 #define ID3D12PipelineState_SetPrivateData(This, guid, DataSize, pData) \
5513  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
5514 
5515 #define ID3D12PipelineState_SetPrivateDataInterface(This, guid, pData) \
5516  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
5517 
5518 #define ID3D12PipelineState_SetName(This, Name) \
5519  ((This)->lpVtbl->SetName(This, Name))
5520 
5521 #define ID3D12PipelineState_GetDevice(This, riid, ppvDevice) \
5522  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
5523 
5524 #define ID3D12PipelineState_GetCachedBlob(This, ppBlob) \
5525  ((This)->lpVtbl->GetCachedBlob(This, ppBlob))
5526 
5527 #endif /* COBJMACROS */
5528 
5529 #endif /* C style interface */
5530 
5531 #endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */
5532 
5533 #ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__
5534 #define __ID3D12DescriptorHeap_INTERFACE_DEFINED__
5535 
5536 /* interface ID3D12DescriptorHeap */
5537 /* [unique][local][object][uuid] */
5538 
5540 
5541 #if defined(__cplusplus) && !defined(CINTERFACE)
5542 
5543 MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51")
5545 public:
5546  virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc() = 0;
5547 
5548  virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart() = 0;
5549 
5550  virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart() = 0;
5551 };
5552 
5553 #else /* C style interface */
5554 
5557 
5558  HRESULT(STDMETHODCALLTYPE *QueryInterface)
5559  (
5561  REFIID riid,
5562  _COM_Outptr_ void **ppvObject);
5563 
5564  ULONG(STDMETHODCALLTYPE *AddRef)
5565  (
5567 
5568  ULONG(STDMETHODCALLTYPE *Release)
5569  (
5571 
5572  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
5573  (
5578 
5579  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
5580  (
5582  _In_ REFGUID guid,
5585 
5586  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
5587  (
5589  _In_ REFGUID guid,
5591 
5592  HRESULT(STDMETHODCALLTYPE *SetName)
5593  (
5596 
5597  HRESULT(STDMETHODCALLTYPE *GetDevice)
5598  (
5602 
5604  (
5606 
5607  D3D12_CPU_DESCRIPTOR_HANDLE(STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart)
5608  (
5610 
5611  D3D12_GPU_DESCRIPTOR_HANDLE(STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart)
5612  (
5614 
5617 
5618 interface ID3D12DescriptorHeap {
5619  CONST_VTBL struct ID3D12DescriptorHeapVtbl *lpVtbl;
5620 };
5621 
5622 #ifdef COBJMACROS
5623 
5624 #define ID3D12DescriptorHeap_QueryInterface(This, riid, ppvObject) \
5625  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
5626 
5627 #define ID3D12DescriptorHeap_AddRef(This) \
5628  ((This)->lpVtbl->AddRef(This))
5629 
5630 #define ID3D12DescriptorHeap_Release(This) \
5631  ((This)->lpVtbl->Release(This))
5632 
5633 #define ID3D12DescriptorHeap_GetPrivateData(This, guid, pDataSize, pData) \
5634  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
5635 
5636 #define ID3D12DescriptorHeap_SetPrivateData(This, guid, DataSize, pData) \
5637  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
5638 
5639 #define ID3D12DescriptorHeap_SetPrivateDataInterface(This, guid, pData) \
5640  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
5641 
5642 #define ID3D12DescriptorHeap_SetName(This, Name) \
5643  ((This)->lpVtbl->SetName(This, Name))
5644 
5645 #define ID3D12DescriptorHeap_GetDevice(This, riid, ppvDevice) \
5646  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
5647 
5648 #define ID3D12DescriptorHeap_GetDesc(This) \
5649  ((This)->lpVtbl->GetDesc(This))
5650 
5651 #define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) \
5652  ((This)->lpVtbl->GetCPUDescriptorHandleForHeapStart(This))
5653 
5654 #define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) \
5655  ((This)->lpVtbl->GetGPUDescriptorHandleForHeapStart(This))
5656 
5657 #endif /* COBJMACROS */
5658 
5659 #endif /* C style interface */
5660 
5661 #endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */
5662 
5663 #ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__
5664 #define __ID3D12QueryHeap_INTERFACE_DEFINED__
5665 
5666 /* interface ID3D12QueryHeap */
5667 /* [unique][local][object][uuid] */
5668 
5670 
5671 #if defined(__cplusplus) && !defined(CINTERFACE)
5672 
5673 MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4")
5675  public :
5676 };
5677 
5678 #else /* C style interface */
5679 
5680 typedef struct ID3D12QueryHeapVtbl {
5682 
5683  HRESULT(STDMETHODCALLTYPE *QueryInterface)
5684  (
5686  REFIID riid,
5687  _COM_Outptr_ void **ppvObject);
5688 
5689  ULONG(STDMETHODCALLTYPE *AddRef)
5690  (
5692 
5693  ULONG(STDMETHODCALLTYPE *Release)
5694  (
5696 
5697  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
5698  (
5703 
5704  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
5705  (
5707  _In_ REFGUID guid,
5710 
5711  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
5712  (
5714  _In_ REFGUID guid,
5716 
5717  HRESULT(STDMETHODCALLTYPE *SetName)
5718  (
5721 
5722  HRESULT(STDMETHODCALLTYPE *GetDevice)
5723  (
5727 
5730 
5731 interface ID3D12QueryHeap {
5732  CONST_VTBL struct ID3D12QueryHeapVtbl *lpVtbl;
5733 };
5734 
5735 #ifdef COBJMACROS
5736 
5737 #define ID3D12QueryHeap_QueryInterface(This, riid, ppvObject) \
5738  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
5739 
5740 #define ID3D12QueryHeap_AddRef(This) \
5741  ((This)->lpVtbl->AddRef(This))
5742 
5743 #define ID3D12QueryHeap_Release(This) \
5744  ((This)->lpVtbl->Release(This))
5745 
5746 #define ID3D12QueryHeap_GetPrivateData(This, guid, pDataSize, pData) \
5747  ((This)->lpVtbl->GetPrivateData(This, guid, pDataSize, pData))
5748 
5749 #define ID3D12QueryHeap_SetPrivateData(This, guid, DataSize, pData) \
5750  ((This)->lpVtbl->SetPrivateData(This, guid, DataSize, pData))
5751 
5752 #define ID3D12QueryHeap_SetPrivateDataInterface(This, guid, pData) \
5753  ((This)->lpVtbl->SetPrivateDataInterface(This, guid, pData))
5754 
5755 #define ID3D12QueryHeap_SetName(This, Name) \
5756  ((This)->lpVtbl->SetName(This, Name))
5757 
5758 #define ID3D12QueryHeap_GetDevice(This, riid, ppvDevice) \
5759  ((This)->lpVtbl->GetDevice(This, riid, ppvDevice))
5760 
5761 #endif /* COBJMACROS */
5762 
5763 #endif /* C style interface */
5764 
5765 #endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */
5766 
5767 typedef HRESULT(WINAPI *PFN_D3D12_CREATE_DEVICE)(_In_opt_ IUnknown *,
5770 
5771 typedef HRESULT(WINAPI *PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(
5772  _In_ const D3D12_ROOT_SIGNATURE_DESC *pRootSignature,
5775  _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppErrorBlob);
5776 
5778 
5779 DEFINE_GUID(IID_ID3D12Object, 0xc4fec28f, 0x7966, 0x4e95, 0x9f, 0x94, 0xf4, 0x31, 0xcb, 0x56, 0xc3, 0xb8);
5780 DEFINE_GUID(IID_ID3D12DeviceChild, 0x905db94b, 0xa00c, 0x4140, 0x9d, 0xf5, 0x2b, 0x64, 0xca, 0x9e, 0xa3, 0x57);
5781 DEFINE_GUID(IID_ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b, 0xe5, 0xa9, 0x46, 0xa1, 0x42, 0x92, 0x14);
5782 DEFINE_GUID(IID_ID3D12RootSignatureDeserializer, 0x34AB647B, 0x3CC8, 0x46AC, 0x84, 0x1B, 0xC0, 0x96, 0x56, 0x45, 0xC0, 0x46);
5783 DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer, 0x7F91CE67, 0x090C, 0x4BB7, 0xB7, 0x8E, 0xED, 0x8F, 0xF2, 0xE3, 0x1D, 0xA0);
5784 DEFINE_GUID(IID_ID3D12Pageable, 0x63ee58fb, 0x1268, 0x4835, 0x86, 0xda, 0xf0, 0x08, 0xce, 0x62, 0xf0, 0xd6);
5785 DEFINE_GUID(IID_ID3D12Heap, 0x6b3b2502, 0x6e51, 0x45b3, 0x90, 0xee, 0x98, 0x84, 0x26, 0x5e, 0x8d, 0xf3);
5786 DEFINE_GUID(IID_ID3D12Resource, 0x696442be, 0xa72e, 0x4059, 0xbc, 0x79, 0x5b, 0x5c, 0x98, 0x04, 0x0f, 0xad);
5787 DEFINE_GUID(IID_ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9, 0x99, 0xb4, 0x4d, 0x73, 0xf0, 0x9b, 0x24);
5788 DEFINE_GUID(IID_ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad, 0xf6, 0xbe, 0x5a, 0x60, 0xd9, 0x5a, 0x76);
5789 DEFINE_GUID(IID_ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8, 0x28, 0xac, 0xe9, 0x48, 0x62, 0x24, 0x45);
5790 DEFINE_GUID(IID_ID3D12DescriptorHeap, 0x8efb471d, 0x616c, 0x4f49, 0x90, 0xf7, 0x12, 0x7b, 0xb7, 0x63, 0xfa, 0x51);
5791 DEFINE_GUID(IID_ID3D12QueryHeap, 0x0d9658ae, 0xed45, 0x469e, 0xa6, 0x1d, 0x97, 0x0e, 0xc5, 0x83, 0xca, 0xb4);
5792 DEFINE_GUID(IID_ID3D12CommandSignature, 0xc36a797c, 0xec80, 0x4f0a, 0x89, 0x85, 0xa7, 0xb2, 0x47, 0x50, 0x82, 0xd1);
5793 DEFINE_GUID(IID_ID3D12CommandList, 0x7116d91c, 0xe7e4, 0x47ce, 0xb8, 0xc6, 0xec, 0x81, 0x68, 0xf4, 0x37, 0xe5);
5794 DEFINE_GUID(IID_ID3D12GraphicsCommandList, 0x5b160d0f, 0xac1b, 0x4185, 0x8b, 0xa8, 0xb3, 0xae, 0x42, 0xa5, 0xa4, 0x55);
5795 DEFINE_GUID(IID_ID3D12GraphicsCommandList1, 0x553103fb, 0x1fe7, 0x4557, 0xbb, 0x38, 0x94, 0x6d, 0x7d, 0x0e, 0x7c, 0xa7);
5796 DEFINE_GUID(IID_ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c, 0xfc, 0x5b, 0xaa, 0xe0, 0x76, 0x16, 0xed);
5797 DEFINE_GUID(IID_ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe, 0x54, 0x18, 0x21, 0x33, 0x9b, 0x85, 0xf7);
5798 DEFINE_GUID(IID_ID3D12PipelineLibrary, 0xc64226a8, 0x9201, 0x46af, 0xb4, 0xcc, 0x53, 0xfb, 0x9f, 0xf7, 0x41, 0x4f);
5799 DEFINE_GUID(IID_ID3D12PipelineLibrary1, 0x80eabf42, 0x2568, 0x4e5e, 0xbd, 0x82, 0xc3, 0x7f, 0x86, 0x96, 0x1d, 0xc3);
5800 DEFINE_GUID(IID_ID3D12Device1, 0x77acce80, 0x638e, 0x4e65, 0x88, 0x95, 0xc1, 0xf2, 0x33, 0x86, 0x86, 0x3e);
5801 DEFINE_GUID(IID_ID3D12Device2, 0x30baa41e, 0xb15b, 0x475c, 0xa0, 0xbb, 0x1a, 0xf5, 0xc5, 0xb6, 0x43, 0x28);
5802 DEFINE_GUID(IID_ID3D12Tools, 0x7071e1f0, 0xe84b, 0x4b33, 0x97, 0x4f, 0x12, 0xfa, 0x49, 0xde, 0x65, 0xc5);
5803 
5804 #ifdef __cplusplus
5805 }
5806 #endif
5807 
5808 /* d3d12sdklayers.h */
5809 #ifndef __ID3D12Debug_FWD_DEFINED__
5810 #define __ID3D12Debug_FWD_DEFINED__
5811 typedef interface ID3D12Debug ID3D12Debug;
5812 
5813 #endif /* __ID3D12Debug_FWD_DEFINED__ */
5814 
5815 #ifdef __cplusplus
5816 extern "C" {
5817 #endif
5818 
5819 #ifndef __ID3D12Debug_INTERFACE_DEFINED__
5820 #define __ID3D12Debug_INTERFACE_DEFINED__
5821 
5822 /* interface ID3D12Debug */
5823 /* [unique][local][object][uuid] */
5824 
5826 
5827 #if defined(__cplusplus) && !defined(CINTERFACE)
5828 
5829 MIDL_INTERFACE("344488b7-6846-474b-b989-f027448245e0")
5830 ID3D12Debug : public IUnknown {
5831 public:
5832  virtual void STDMETHODCALLTYPE EnableDebugLayer() = 0;
5833 };
5834 
5835 #else /* C style interface */
5836 
5837 typedef struct ID3D12DebugVtbl {
5839 
5840  HRESULT(STDMETHODCALLTYPE *QueryInterface)
5841  (
5842  ID3D12Debug *This,
5843  REFIID riid,
5844  _COM_Outptr_ void **ppvObject);
5845 
5846  ULONG(STDMETHODCALLTYPE *AddRef)
5847  (
5849 
5850  ULONG(STDMETHODCALLTYPE *Release)
5851  (
5852  ID3D12Debug *This);
5853 
5854  void(STDMETHODCALLTYPE *EnableDebugLayer)(
5855  ID3D12Debug *This);
5856 
5859 
5860 interface ID3D12Debug {
5861  CONST_VTBL struct ID3D12DebugVtbl *lpVtbl;
5862 };
5863 
5864 #ifdef COBJMACROS
5865 
5866 #define ID3D12Debug_QueryInterface(This, riid, ppvObject) \
5867  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
5868 
5869 #define ID3D12Debug_AddRef(This) \
5870  ((This)->lpVtbl->AddRef(This))
5871 
5872 #define ID3D12Debug_Release(This) \
5873  ((This)->lpVtbl->Release(This))
5874 
5875 #define ID3D12Debug_EnableDebugLayer(This) \
5876  ((This)->lpVtbl->EnableDebugLayer(This))
5877 
5878 #endif /* COBJMACROS */
5879 
5880 #endif /* C style interface */
5881 
5882 #endif /* __ID3D12Debug_INTERFACE_DEFINED__ */
5883 
5884 DEFINE_GUID(IID_ID3D12Debug, 0x344488b7, 0x6846, 0x474b, 0xb9, 0x89, 0xf0, 0x27, 0x44, 0x82, 0x45, 0xe0);
5885 
5886 #ifdef __cplusplus
5887 }
5888 #endif
5889 
5890 /* dxgi.h */
5891 #ifndef __IDXGIObject_FWD_DEFINED__
5892 #define __IDXGIObject_FWD_DEFINED__
5893 typedef interface IDXGIObject IDXGIObject;
5894 
5895 #endif /* __IDXGIObject_FWD_DEFINED__ */
5896 
5897 #ifndef __IDXGIAdapter_FWD_DEFINED__
5898 #define __IDXGIAdapter_FWD_DEFINED__
5899 typedef interface IDXGIAdapter IDXGIAdapter;
5900 
5901 #endif /* __IDXGIAdapter_FWD_DEFINED__ */
5902 
5903 #ifndef __IDXGIOutput_FWD_DEFINED__
5904 #define __IDXGIOutput_FWD_DEFINED__
5905 typedef interface IDXGIOutput IDXGIOutput;
5906 
5907 #endif /* __IDXGIOutput_FWD_DEFINED__ */
5908 
5909 #ifndef __IDXGISwapChain_FWD_DEFINED__
5910 #define __IDXGISwapChain_FWD_DEFINED__
5911 typedef interface IDXGISwapChain IDXGISwapChain;
5912 
5913 #endif /* __IDXGISwapChain_FWD_DEFINED__ */
5914 
5915 #ifndef __IDXGIFactory_FWD_DEFINED__
5916 #define __IDXGIFactory_FWD_DEFINED__
5917 typedef interface IDXGIFactory IDXGIFactory;
5918 
5919 #endif /* __IDXGIFactory_FWD_DEFINED__ */
5920 
5921 #ifndef __IDXGIFactory1_FWD_DEFINED__
5922 #define __IDXGIFactory1_FWD_DEFINED__
5923 typedef interface IDXGIFactory1 IDXGIFactory1;
5924 
5925 #endif /* __IDXGIFactory1_FWD_DEFINED__ */
5926 
5927 #ifndef __IDXGIAdapter1_FWD_DEFINED__
5928 #define __IDXGIAdapter1_FWD_DEFINED__
5929 typedef interface IDXGIAdapter1 IDXGIAdapter1;
5930 
5931 #endif /* __IDXGIAdapter1_FWD_DEFINED__ */
5932 
5933 typedef struct DXGI_ADAPTER_DESC {
5944 
5945 typedef enum DXGI_ADAPTER_FLAG {
5949  DXGI_ADAPTER_FLAG_FORCE_DWORD = 0xffffffff
5951 
5952 typedef struct DXGI_ADAPTER_DESC1 {
5964 
5966 
5967 #ifndef __IDXGIObject_INTERFACE_DEFINED__
5968 #define __IDXGIObject_INTERFACE_DEFINED__
5969 
5970 /* interface IDXGIObject */
5971 /* [unique][local][uuid][object] */
5972 
5974 
5975 #if defined(__cplusplus) && !defined(CINTERFACE)
5976 
5977 MIDL_INTERFACE("aec22fb8-76f3-4639-9be0-28eb43a67a2e")
5978 IDXGIObject : public IUnknown {
5979 public:
5980  virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
5981  /* [annotation][in] */
5982  _In_ REFGUID Name,
5983  /* [in] */ UINT DataSize,
5984  /* [annotation][in] */
5985  _In_reads_bytes_(DataSize) const void *pData) = 0;
5986 
5987  virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
5988  /* [annotation][in] */
5989  _In_ REFGUID Name,
5990  /* [annotation][in] */
5991  _In_opt_ const IUnknown *pUnknown) = 0;
5992 
5993  virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
5994  /* [annotation][in] */
5995  _In_ REFGUID Name,
5996  /* [annotation][out][in] */
5997  _Inout_ UINT * pDataSize,
5998  /* [annotation][out] */
5999  _Out_writes_bytes_(*pDataSize) void *pData) = 0;
6000 
6001  virtual HRESULT STDMETHODCALLTYPE GetParent(
6002  /* [annotation][in] */
6003  _In_ REFIID riid,
6004  /* [annotation][retval][out] */
6005  _COM_Outptr_ void **ppParent) = 0;
6006 };
6007 
6008 #else /* C style interface */
6009 
6010 typedef struct IDXGIObjectVtbl {
6012 
6013  HRESULT(STDMETHODCALLTYPE *QueryInterface)
6014  (
6015  IDXGIObject *This,
6016  /* [in] */ REFIID riid,
6017  /* [annotation][iid_is][out] */
6018  _COM_Outptr_ void **ppvObject);
6019 
6020  ULONG(STDMETHODCALLTYPE *AddRef)
6021  (
6023 
6024  ULONG(STDMETHODCALLTYPE *Release)
6025  (
6026  IDXGIObject *This);
6027 
6028  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
6029  (
6030  IDXGIObject *This,
6031  /* [annotation][in] */
6033  /* [in] */ UINT DataSize,
6034  /* [annotation][in] */
6036 
6037  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
6038  (
6039  IDXGIObject *This,
6040  /* [annotation][in] */
6041  _In_ REFGUID Name,
6042  /* [annotation][in] */
6044 
6045  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
6046  (
6047  IDXGIObject *This,
6048  /* [annotation][in] */
6049  _In_ REFGUID Name,
6050  /* [annotation][out][in] */
6052  /* [annotation][out] */
6054 
6055  HRESULT(STDMETHODCALLTYPE *GetParent)
6056  (
6057  IDXGIObject *This,
6058  /* [annotation][in] */
6060  /* [annotation][retval][out] */
6062 
6065 
6066 interface IDXGIObject {
6067  CONST_VTBL struct IDXGIObjectVtbl *lpVtbl;
6068 };
6069 
6070 #ifdef COBJMACROS
6071 
6072 #define IDXGIObject_QueryInterface(This, riid, ppvObject) \
6073  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
6074 
6075 #define IDXGIObject_AddRef(This) \
6076  ((This)->lpVtbl->AddRef(This))
6077 
6078 #define IDXGIObject_Release(This) \
6079  ((This)->lpVtbl->Release(This))
6080 
6081 #define IDXGIObject_SetPrivateData(This, Name, DataSize, pData) \
6082  ((This)->lpVtbl->SetPrivateData(This, Name, DataSize, pData))
6083 
6084 #define IDXGIObject_SetPrivateDataInterface(This, Name, pUnknown) \
6085  ((This)->lpVtbl->SetPrivateDataInterface(This, Name, pUnknown))
6086 
6087 #define IDXGIObject_GetPrivateData(This, Name, pDataSize, pData) \
6088  ((This)->lpVtbl->GetPrivateData(This, Name, pDataSize, pData))
6089 
6090 #define IDXGIObject_GetParent(This, riid, ppParent) \
6091  ((This)->lpVtbl->GetParent(This, riid, ppParent))
6092 
6093 #endif /* COBJMACROS */
6094 
6095 #endif /* C style interface */
6096 
6097 #endif /* __IDXGIObject_INTERFACE_DEFINED__ */
6098 
6099 #ifndef __IDXGIFactory_INTERFACE_DEFINED__
6100 #define __IDXGIFactory_INTERFACE_DEFINED__
6101 
6102 /* interface IDXGIFactory */
6103 /* [unique][local][uuid][object] */
6104 
6106 
6107 #if defined(__cplusplus) && !defined(CINTERFACE)
6108 
6109 MIDL_INTERFACE("7b7166ec-21c7-44ae-b21a-c9ae321ae369")
6110 IDXGIFactory : public IDXGIObject {
6111 public:
6112  virtual HRESULT STDMETHODCALLTYPE EnumAdapters(
6113  /* [in] */ UINT Adapter,
6114  /* [annotation][out] */
6115  _COM_Outptr_ IDXGIAdapter * *ppAdapter) = 0;
6116 
6117  virtual HRESULT STDMETHODCALLTYPE MakeWindowAssociation(
6118  HWND WindowHandle,
6119  UINT Flags) = 0;
6120 
6121  virtual HRESULT STDMETHODCALLTYPE GetWindowAssociation(
6122  /* [annotation][out] */
6123  _Out_ HWND * pWindowHandle) = 0;
6124 
6125  virtual HRESULT STDMETHODCALLTYPE CreateSwapChain(
6126  /* [annotation][in] */
6127  _In_ IUnknown * pDevice,
6128  /* [annotation][in] */
6129  _In_ DXGI_SWAP_CHAIN_DESC * pDesc,
6130  /* [annotation][out] */
6131  _COM_Outptr_ IDXGISwapChain * *ppSwapChain) = 0;
6132 
6133  virtual HRESULT STDMETHODCALLTYPE CreateSoftwareAdapter(
6134  /* [in] */ HMODULE Module,
6135  /* [annotation][out] */
6136  _COM_Outptr_ IDXGIAdapter * *ppAdapter) = 0;
6137 };
6138 
6139 #else /* C style interface */
6140 
6141 typedef struct IDXGIFactoryVtbl {
6143 
6144  HRESULT(STDMETHODCALLTYPE *QueryInterface)
6145  (
6146  IDXGIFactory *This,
6147  /* [in] */ REFIID riid,
6148  /* [annotation][iid_is][out] */
6149  _COM_Outptr_ void **ppvObject);
6150 
6151  ULONG(STDMETHODCALLTYPE *AddRef)
6152  (
6154 
6155  ULONG(STDMETHODCALLTYPE *Release)
6156  (
6157  IDXGIFactory *This);
6158 
6159  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
6160  (
6161  IDXGIFactory *This,
6162  /* [annotation][in] */
6164  /* [in] */ UINT DataSize,
6165  /* [annotation][in] */
6167 
6168  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
6169  (
6170  IDXGIFactory *This,
6171  /* [annotation][in] */
6172  _In_ REFGUID Name,
6173  /* [annotation][in] */
6175 
6176  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
6177  (
6178  IDXGIFactory *This,
6179  /* [annotation][in] */
6180  _In_ REFGUID Name,
6181  /* [annotation][out][in] */
6183  /* [annotation][out] */
6185 
6186  HRESULT(STDMETHODCALLTYPE *GetParent)
6187  (
6188  IDXGIFactory *This,
6189  /* [annotation][in] */
6191  /* [annotation][retval][out] */
6193 
6194  HRESULT(STDMETHODCALLTYPE *EnumAdapters)
6195  (
6196  IDXGIFactory *This,
6197  /* [in] */ UINT Adapter,
6198  /* [annotation][out] */
6200 
6201  HRESULT(STDMETHODCALLTYPE *MakeWindowAssociation)
6202  (
6203  IDXGIFactory *This,
6206 
6207  HRESULT(STDMETHODCALLTYPE *GetWindowAssociation)
6208  (
6209  IDXGIFactory *This,
6210  /* [annotation][out] */
6212 
6213  HRESULT(STDMETHODCALLTYPE *CreateSwapChain)
6214  (
6215  IDXGIFactory *This,
6216  /* [annotation][in] */
6218  /* [annotation][in] */
6220  /* [annotation][out] */
6222 
6223  HRESULT(STDMETHODCALLTYPE *CreateSoftwareAdapter)
6224  (
6225  IDXGIFactory *This,
6226  /* [in] */ HMODULE Module,
6227  /* [annotation][out] */
6229 
6232 
6233 interface IDXGIFactory {
6234  CONST_VTBL struct IDXGIFactoryVtbl *lpVtbl;
6235 };
6236 
6237 #ifdef COBJMACROS
6238 
6239 #define IDXGIFactory_QueryInterface(This, riid, ppvObject) \
6240  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
6241 
6242 #define IDXGIFactory_AddRef(This) \
6243  ((This)->lpVtbl->AddRef(This))
6244 
6245 #define IDXGIFactory_Release(This) \
6246  ((This)->lpVtbl->Release(This))
6247 
6248 #define IDXGIFactory_SetPrivateData(This, Name, DataSize, pData) \
6249  ((This)->lpVtbl->SetPrivateData(This, Name, DataSize, pData))
6250 
6251 #define IDXGIFactory_SetPrivateDataInterface(This, Name, pUnknown) \
6252  ((This)->lpVtbl->SetPrivateDataInterface(This, Name, pUnknown))
6253 
6254 #define IDXGIFactory_GetPrivateData(This, Name, pDataSize, pData) \
6255  ((This)->lpVtbl->GetPrivateData(This, Name, pDataSize, pData))
6256 
6257 #define IDXGIFactory_GetParent(This, riid, ppParent) \
6258  ((This)->lpVtbl->GetParent(This, riid, ppParent))
6259 
6260 #define IDXGIFactory_EnumAdapters(This, Adapter, ppAdapter) \
6261  ((This)->lpVtbl->EnumAdapters(This, Adapter, ppAdapter))
6262 
6263 #define IDXGIFactory_MakeWindowAssociation(This, WindowHandle, Flags) \
6264  ((This)->lpVtbl->MakeWindowAssociation(This, WindowHandle, Flags))
6265 
6266 #define IDXGIFactory_GetWindowAssociation(This, pWindowHandle) \
6267  ((This)->lpVtbl->GetWindowAssociation(This, pWindowHandle))
6268 
6269 #define IDXGIFactory_CreateSwapChain(This, pDevice, pDesc, ppSwapChain) \
6270  ((This)->lpVtbl->CreateSwapChain(This, pDevice, pDesc, ppSwapChain))
6271 
6272 #define IDXGIFactory_CreateSoftwareAdapter(This, Module, ppAdapter) \
6273  ((This)->lpVtbl->CreateSoftwareAdapter(This, Module, ppAdapter))
6274 
6275 #endif /* COBJMACROS */
6276 
6277 #endif /* C style interface */
6278 
6279 #endif /* __IDXGIFactory_INTERFACE_DEFINED__ */
6280 
6281 struct DXGI_ADAPTER_DESC;
6282 
6283 #ifndef __IDXGIAdapter_INTERFACE_DEFINED__
6284 #define __IDXGIAdapter_INTERFACE_DEFINED__
6285 
6286 /* interface IDXGIAdapter */
6287 /* [unique][local][uuid][object] */
6288 
6290 
6291 #if defined(__cplusplus) && !defined(CINTERFACE)
6292 
6293 MIDL_INTERFACE("2411e7e1-12ac-4ccf-bd14-9798e8534dc0")
6294 IDXGIAdapter : public IDXGIObject {
6295 public:
6296  virtual HRESULT STDMETHODCALLTYPE EnumOutputs(
6297  /* [in] */ UINT Output,
6298  /* [annotation][out][in] */
6299  _COM_Outptr_ IDXGIOutput * *ppOutput) = 0;
6300 
6301  virtual HRESULT STDMETHODCALLTYPE GetDesc(
6302  /* [annotation][out] */
6303  _Out_ DXGI_ADAPTER_DESC * pDesc) = 0;
6304 
6305  virtual HRESULT STDMETHODCALLTYPE CheckInterfaceSupport(
6306  /* [annotation][in] */
6307  _In_ REFGUID InterfaceName,
6308  /* [annotation][out] */
6309  _Out_ LARGE_INTEGER * pUMDVersion) = 0;
6310 };
6311 
6312 #else /* C style interface */
6313 
6314 typedef struct IDXGIAdapterVtbl {
6316 
6317  HRESULT(STDMETHODCALLTYPE *QueryInterface)
6318  (
6319  IDXGIAdapter *This,
6320  /* [in] */ REFIID riid,
6321  /* [annotation][iid_is][out] */
6322  _COM_Outptr_ void **ppvObject);
6323 
6324  ULONG(STDMETHODCALLTYPE *AddRef)
6325  (
6327 
6328  ULONG(STDMETHODCALLTYPE *Release)
6329  (
6330  IDXGIAdapter *This);
6331 
6332  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
6333  (
6334  IDXGIAdapter *This,
6335  /* [annotation][in] */
6337  /* [in] */ UINT DataSize,
6338  /* [annotation][in] */
6340 
6341  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
6342  (
6343  IDXGIAdapter *This,
6344  /* [annotation][in] */
6345  _In_ REFGUID Name,
6346  /* [annotation][in] */
6348 
6349  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
6350  (
6351  IDXGIAdapter *This,
6352  /* [annotation][in] */
6353  _In_ REFGUID Name,
6354  /* [annotation][out][in] */
6356  /* [annotation][out] */
6358 
6359  HRESULT(STDMETHODCALLTYPE *GetParent)
6360  (
6361  IDXGIAdapter *This,
6362  /* [annotation][in] */
6364  /* [annotation][retval][out] */
6366 
6367  HRESULT(STDMETHODCALLTYPE *EnumOutputs)
6368  (
6369  IDXGIAdapter *This,
6370  /* [in] */ UINT Output,
6371  /* [annotation][out][in] */
6373 
6374  HRESULT(STDMETHODCALLTYPE *GetDesc)
6375  (
6376  IDXGIAdapter *This,
6377  /* [annotation][out] */
6379 
6380  HRESULT(STDMETHODCALLTYPE *CheckInterfaceSupport)
6381  (
6382  IDXGIAdapter *This,
6383  /* [annotation][in] */
6385  /* [annotation][out] */
6387 
6390 
6391 interface IDXGIAdapter {
6392  CONST_VTBL struct IDXGIAdapterVtbl *lpVtbl;
6393 };
6394 
6395 #ifdef COBJMACROS
6396 
6397 #define IDXGIAdapter_QueryInterface(This, riid, ppvObject) \
6398  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
6399 
6400 #define IDXGIAdapter_AddRef(This) \
6401  ((This)->lpVtbl->AddRef(This))
6402 
6403 #define IDXGIAdapter_Release(This) \
6404  ((This)->lpVtbl->Release(This))
6405 
6406 #define IDXGIAdapter_SetPrivateData(This, Name, DataSize, pData) \
6407  ((This)->lpVtbl->SetPrivateData(This, Name, DataSize, pData))
6408 
6409 #define IDXGIAdapter_SetPrivateDataInterface(This, Name, pUnknown) \
6410  ((This)->lpVtbl->SetPrivateDataInterface(This, Name, pUnknown))
6411 
6412 #define IDXGIAdapter_GetPrivateData(This, Name, pDataSize, pData) \
6413  ((This)->lpVtbl->GetPrivateData(This, Name, pDataSize, pData))
6414 
6415 #define IDXGIAdapter_GetParent(This, riid, ppParent) \
6416  ((This)->lpVtbl->GetParent(This, riid, ppParent))
6417 
6418 #define IDXGIAdapter_EnumOutputs(This, Output, ppOutput) \
6419  ((This)->lpVtbl->EnumOutputs(This, Output, ppOutput))
6420 
6421 #define IDXGIAdapter_GetDesc(This, pDesc) \
6422  ((This)->lpVtbl->GetDesc(This, pDesc))
6423 
6424 #define IDXGIAdapter_CheckInterfaceSupport(This, InterfaceName, pUMDVersion) \
6425  ((This)->lpVtbl->CheckInterfaceSupport(This, InterfaceName, pUMDVersion))
6426 
6427 #endif /* COBJMACROS */
6428 
6429 #endif /* C style interface */
6430 
6431 #endif /* __IDXGIAdapter_INTERFACE_DEFINED__ */
6432 
6433 #ifndef __IDXGIFactory1_INTERFACE_DEFINED__
6434 #define __IDXGIFactory1_INTERFACE_DEFINED__
6435 
6436 /* interface IDXGIFactory1 */
6437 /* [unique][local][uuid][object] */
6438 
6440 
6441 #if defined(__cplusplus) && !defined(CINTERFACE)
6442 
6443 MIDL_INTERFACE("770aae78-f26f-4dba-a829-253c83d1b387")
6444 IDXGIFactory1 : public IDXGIFactory {
6445 public:
6446  virtual HRESULT STDMETHODCALLTYPE EnumAdapters1(
6447  /* [in] */ UINT Adapter,
6448  /* [annotation][out] */
6449  _COM_Outptr_ IDXGIAdapter1 * *ppAdapter) = 0;
6450 
6451  virtual BOOL STDMETHODCALLTYPE IsCurrent() = 0;
6452 };
6453 
6454 #else /* C style interface */
6455 
6456 typedef struct IDXGIFactory1Vtbl {
6458 
6459  HRESULT(STDMETHODCALLTYPE *QueryInterface)
6460  (
6462  /* [in] */ REFIID riid,
6463  /* [annotation][iid_is][out] */
6464  _COM_Outptr_ void **ppvObject);
6465 
6466  ULONG(STDMETHODCALLTYPE *AddRef)
6467  (
6469 
6470  ULONG(STDMETHODCALLTYPE *Release)
6471  (
6472  IDXGIFactory1 *This);
6473 
6474  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
6475  (
6477  /* [annotation][in] */
6479  /* [in] */ UINT DataSize,
6480  /* [annotation][in] */
6482 
6483  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
6484  (
6486  /* [annotation][in] */
6487  _In_ REFGUID Name,
6488  /* [annotation][in] */
6490 
6491  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
6492  (
6494  /* [annotation][in] */
6495  _In_ REFGUID Name,
6496  /* [annotation][out][in] */
6498  /* [annotation][out] */
6500 
6501  HRESULT(STDMETHODCALLTYPE *GetParent)
6502  (
6504  /* [annotation][in] */
6506  /* [annotation][retval][out] */
6508 
6509  HRESULT(STDMETHODCALLTYPE *EnumAdapters)
6510  (
6512  /* [in] */ UINT Adapter,
6513  /* [annotation][out] */
6515 
6516  HRESULT(STDMETHODCALLTYPE *MakeWindowAssociation)
6517  (
6521 
6522  HRESULT(STDMETHODCALLTYPE *GetWindowAssociation)
6523  (
6525  /* [annotation][out] */
6527 
6528  HRESULT(STDMETHODCALLTYPE *CreateSwapChain)
6529  (
6531  /* [annotation][in] */
6533  /* [annotation][in] */
6535  /* [annotation][out] */
6537 
6538  HRESULT(STDMETHODCALLTYPE *CreateSoftwareAdapter)
6539  (
6541  /* [in] */ HMODULE Module,
6542  /* [annotation][out] */
6544 
6545  HRESULT(STDMETHODCALLTYPE *EnumAdapters1)
6546  (
6548  /* [in] */ UINT Adapter,
6549  /* [annotation][out] */
6551 
6552  BOOL(STDMETHODCALLTYPE *IsCurrent)
6553  (
6554  IDXGIFactory1 *This);
6555 
6558 
6559 interface IDXGIFactory1 {
6560  CONST_VTBL struct IDXGIFactory1Vtbl *lpVtbl;
6561 };
6562 
6563 #ifdef COBJMACROS
6564 
6565 #define IDXGIFactory1_QueryInterface(This, riid, ppvObject) \
6566  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
6567 
6568 #define IDXGIFactory1_AddRef(This) \
6569  ((This)->lpVtbl->AddRef(This))
6570 
6571 #define IDXGIFactory1_Release(This) \
6572  ((This)->lpVtbl->Release(This))
6573 
6574 #define IDXGIFactory1_SetPrivateData(This, Name, DataSize, pData) \
6575  ((This)->lpVtbl->SetPrivateData(This, Name, DataSize, pData))
6576 
6577 #define IDXGIFactory1_SetPrivateDataInterface(This, Name, pUnknown) \
6578  ((This)->lpVtbl->SetPrivateDataInterface(This, Name, pUnknown))
6579 
6580 #define IDXGIFactory1_GetPrivateData(This, Name, pDataSize, pData) \
6581  ((This)->lpVtbl->GetPrivateData(This, Name, pDataSize, pData))
6582 
6583 #define IDXGIFactory1_GetParent(This, riid, ppParent) \
6584  ((This)->lpVtbl->GetParent(This, riid, ppParent))
6585 
6586 #define IDXGIFactory1_EnumAdapters(This, Adapter, ppAdapter) \
6587  ((This)->lpVtbl->EnumAdapters(This, Adapter, ppAdapter))
6588 
6589 #define IDXGIFactory1_MakeWindowAssociation(This, WindowHandle, Flags) \
6590  ((This)->lpVtbl->MakeWindowAssociation(This, WindowHandle, Flags))
6591 
6592 #define IDXGIFactory1_GetWindowAssociation(This, pWindowHandle) \
6593  ((This)->lpVtbl->GetWindowAssociation(This, pWindowHandle))
6594 
6595 #define IDXGIFactory1_CreateSwapChain(This, pDevice, pDesc, ppSwapChain) \
6596  ((This)->lpVtbl->CreateSwapChain(This, pDevice, pDesc, ppSwapChain))
6597 
6598 #define IDXGIFactory1_CreateSoftwareAdapter(This, Module, ppAdapter) \
6599  ((This)->lpVtbl->CreateSoftwareAdapter(This, Module, ppAdapter))
6600 
6601 #define IDXGIFactory1_EnumAdapters1(This, Adapter, ppAdapter) \
6602  ((This)->lpVtbl->EnumAdapters1(This, Adapter, ppAdapter))
6603 
6604 #define IDXGIFactory1_IsCurrent(This) \
6605  ((This)->lpVtbl->IsCurrent(This))
6606 
6607 #endif /* COBJMACROS */
6608 
6609 #endif /* C style interface */
6610 
6611 #endif /* __IDXGIFactory1_INTERFACE_DEFINED__ */
6612 
6613 #ifndef __IDXGIAdapter1_INTERFACE_DEFINED__
6614 #define __IDXGIAdapter1_INTERFACE_DEFINED__
6615 
6616 /* interface IDXGIAdapter1 */
6617 /* [unique][local][uuid][object] */
6618 
6620 
6621 #if defined(__cplusplus) && !defined(CINTERFACE)
6622 
6623 MIDL_INTERFACE("29038f61-3839-4626-91fd-086879011a05")
6624 IDXGIAdapter1 : public IDXGIAdapter {
6625 public:
6626  virtual HRESULT STDMETHODCALLTYPE GetDesc1(
6627  /* [annotation][out] */
6629 };
6630 
6631 #else /* C style interface */
6632 
6633 typedef struct IDXGIAdapter1Vtbl {
6635 
6636  HRESULT(STDMETHODCALLTYPE *QueryInterface)
6637  (
6639  /* [in] */ REFIID riid,
6640  /* [annotation][iid_is][out] */
6641  _COM_Outptr_ void **ppvObject);
6642 
6643  ULONG(STDMETHODCALLTYPE *AddRef)
6644  (
6646 
6647  ULONG(STDMETHODCALLTYPE *Release)
6648  (
6649  IDXGIAdapter1 *This);
6650 
6651  HRESULT(STDMETHODCALLTYPE *SetPrivateData)
6652  (
6654  /* [annotation][in] */
6656  /* [in] */ UINT DataSize,
6657  /* [annotation][in] */
6659 
6660  HRESULT(STDMETHODCALLTYPE *SetPrivateDataInterface)
6661  (
6663  /* [annotation][in] */
6664  _In_ REFGUID Name,
6665  /* [annotation][in] */
6667 
6668  HRESULT(STDMETHODCALLTYPE *GetPrivateData)
6669  (
6671  /* [annotation][in] */
6672  _In_ REFGUID Name,
6673  /* [annotation][out][in] */
6675  /* [annotation][out] */
6677 
6678  HRESULT(STDMETHODCALLTYPE *GetParent)
6679  (
6681  /* [annotation][in] */
6683  /* [annotation][retval][out] */
6685 
6686  HRESULT(STDMETHODCALLTYPE *EnumOutputs)
6687  (
6689  /* [in] */ UINT Output,
6690  /* [annotation][out][in] */
6692 
6693  HRESULT(STDMETHODCALLTYPE *GetDesc)
6694  (
6696  /* [annotation][out] */
6698 
6699  HRESULT(STDMETHODCALLTYPE *CheckInterfaceSupport)
6700  (
6702  /* [annotation][in] */
6704  /* [annotation][out] */
6706 
6707  HRESULT(STDMETHODCALLTYPE *GetDesc1)
6708  (
6710  /* [annotation][out] */
6712 
6715 
6716 interface IDXGIAdapter1 {
6717  CONST_VTBL struct IDXGIAdapter1Vtbl *lpVtbl;
6718 };
6719 
6720 #ifdef COBJMACROS
6721 
6722 #define IDXGIAdapter1_QueryInterface(This, riid, ppvObject) \
6723  ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))
6724 
6725 #define IDXGIAdapter1_AddRef(This) \
6726  ((This)->lpVtbl->AddRef(This))
6727 
6728 #define IDXGIAdapter1_Release(This) \
6729  ((This)->lpVtbl->Release(This))
6730 
6731 #define IDXGIAdapter1_SetPrivateData(This, Name, DataSize, pData) \
6732  ((This)->lpVtbl->SetPrivateData(This, Name, DataSize, pData))
6733 
6734 #define IDXGIAdapter1_SetPrivateDataInterface(This, Name, pUnknown) \
6735  ((This)->lpVtbl->SetPrivateDataInterface(This, Name, pUnknown))
6736 
6737 #define IDXGIAdapter1_GetPrivateData(This, Name, pDataSize, pData) \
6738  ((This)->lpVtbl->GetPrivateData(This, Name, pDataSize, pData))
6739 
6740 #define IDXGIAdapter1_GetParent(This, riid, ppParent) \
6741  ((This)->lpVtbl->GetParent(This, riid, ppParent))
6742 
6743 #define IDXGIAdapter1_EnumOutputs(This, Output, ppOutput) \
6744  ((This)->lpVtbl->EnumOutputs(This, Output, ppOutput))
6745 
6746 #define IDXGIAdapter1_GetDesc(This, pDesc) \
6747  ((This)->lpVtbl->GetDesc(This, pDesc))
6748 
6749 #define IDXGIAdapter1_CheckInterfaceSupport(This, InterfaceName, pUMDVersion) \
6750  ((This)->lpVtbl->CheckInterfaceSupport(This, InterfaceName, pUMDVersion))
6751 
6752 #define IDXGIAdapter1_GetDesc1(This, pDesc) \
6753  ((This)->lpVtbl->GetDesc1(This, pDesc))
6754 
6755 #endif /* COBJMACROS */
6756 
6757 #endif /* C style interface */
6758 
6759 #endif /* __IDXGIAdapter1_INTERFACE_DEFINED__ */
6760 
6761 // NOTE(marcos): declaring CreateDXGIFactory "1" since it works on UWP as well
6762 // HRESULT WINAPI CreateDXGIFactory1(REFIID riid, _COM_Outptr_ void **ppFactory);
6763 typedef HRESULT(WINAPI *PFN_CREATEDXGIFACORY1)(REFIID riid, _COM_Outptr_ void **ppFactory);
6764 
6765 DEFINE_GUID(IID_IDXGIObject, 0xaec22fb8, 0x76f3, 0x4639, 0x9b, 0xe0, 0x28, 0xeb, 0x43, 0xa6, 0x7a, 0x2e);
6766 DEFINE_GUID(IID_IDXGIDeviceSubObject, 0x3d3e0379, 0xf9de, 0x4d58, 0xbb, 0x6c, 0x18, 0xd6, 0x29, 0x92, 0xf1, 0xa6);
6767 DEFINE_GUID(IID_IDXGIResource, 0x035f3ab4, 0x482e, 0x4e50, 0xb4, 0x1f, 0x8a, 0x7f, 0x8b, 0xd8, 0x96, 0x0b);
6768 DEFINE_GUID(IID_IDXGIKeyedMutex, 0x9d8e1289, 0xd7b3, 0x465f, 0x81, 0x26, 0x25, 0x0e, 0x34, 0x9a, 0xf8, 0x5d);
6769 DEFINE_GUID(IID_IDXGISurface, 0xcafcb56c, 0x6ac3, 0x4889, 0xbf, 0x47, 0x9e, 0x23, 0xbb, 0xd2, 0x60, 0xec);
6770 DEFINE_GUID(IID_IDXGISurface1, 0x4AE63092, 0x6327, 0x4c1b, 0x80, 0xAE, 0xBF, 0xE1, 0x2E, 0xA3, 0x2B, 0x86);
6771 DEFINE_GUID(IID_IDXGIAdapter, 0x2411e7e1, 0x12ac, 0x4ccf, 0xbd, 0x14, 0x97, 0x98, 0xe8, 0x53, 0x4d, 0xc0);
6772 DEFINE_GUID(IID_IDXGIOutput, 0xae02eedb, 0xc735, 0x4690, 0x8d, 0x52, 0x5a, 0x8d, 0xc2, 0x02, 0x13, 0xaa);
6773 DEFINE_GUID(IID_IDXGISwapChain, 0x310d36a0, 0xd2e7, 0x4c0a, 0xaa, 0x04, 0x6a, 0x9d, 0x23, 0xb8, 0x88, 0x6a);
6774 DEFINE_GUID(IID_IDXGIFactory, 0x7b7166ec, 0x21c7, 0x44ae, 0xb2, 0x1a, 0xc9, 0xae, 0x32, 0x1a, 0xe3, 0x69);
6775 DEFINE_GUID(IID_IDXGIDevice, 0x54ec77fa, 0x1377, 0x44e6, 0x8c, 0x32, 0x88, 0xfd, 0x5f, 0x44, 0xc8, 0x4c);
6776 DEFINE_GUID(IID_IDXGIFactory1, 0x770aae78, 0xf26f, 0x4dba, 0xa8, 0x29, 0x25, 0x3c, 0x83, 0xd1, 0xb3, 0x87);
6777 DEFINE_GUID(IID_IDXGIAdapter1, 0x29038f61, 0x3839, 0x4626, 0x91, 0xfd, 0x08, 0x68, 0x79, 0x01, 0x1a, 0x05);
6778 DEFINE_GUID(IID_IDXGIDevice1, 0x77db970f, 0x6276, 0x48ba, 0xba, 0x28, 0x07, 0x01, 0x43, 0xb4, 0x39, 0x2c);
6779 
6780 /* d3dcompiler.h */
6782  _In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
6783  _In_ SIZE_T SrcDataSize,
6784  _In_opt_ LPCSTR pSourceName,
6785  _In_reads_opt_(_Inexpressible_(pDefines->Name != nullptr)) CONST D3D_SHADER_MACRO *pDefines,
6786  _In_opt_ ID3DInclude *pInclude,
6787  _In_opt_ LPCSTR pEntrypoint,
6788  _In_ LPCSTR pTarget,
6789  _In_ UINT Flags1,
6790  _In_ UINT Flags2,
6791  _Out_ ID3DBlob **ppCode,
6792  _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppErrorMsgs);
6793 
6794 #define D3DCOMPILE_DEBUG (1 << 0)
6795 #define D3DCOMPILE_SKIP_VALIDATION (1 << 1)
6796 #define D3DCOMPILE_SKIP_OPTIMIZATION (1 << 2)
6797 #define D3DCOMPILE_PACK_MATRIX_ROW_MAJOR (1 << 3)
6798 #define D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR (1 << 4)
6799 #define D3DCOMPILE_PARTIAL_PRECISION (1 << 5)
6800 #define D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT (1 << 6)
6801 #define D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT (1 << 7)
6802 #define D3DCOMPILE_NO_PRESHADER (1 << 8)
6803 #define D3DCOMPILE_AVOID_FLOW_CONTROL (1 << 9)
6804 #define D3DCOMPILE_PREFER_FLOW_CONTROL (1 << 10)
6805 #define D3DCOMPILE_ENABLE_STRICTNESS (1 << 11)
6806 #define D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY (1 << 12)
6807 #define D3DCOMPILE_IEEE_STRICTNESS (1 << 13)
6808 #define D3DCOMPILE_OPTIMIZATION_LEVEL0 (1 << 14)
6809 #define D3DCOMPILE_OPTIMIZATION_LEVEL1 0
6810 #define D3DCOMPILE_OPTIMIZATION_LEVEL2 ((1 << 14) | (1 << 15))
6811 #define D3DCOMPILE_OPTIMIZATION_LEVEL3 (1 << 15)
6812 #define D3DCOMPILE_RESERVED16 (1 << 16)
6813 #define D3DCOMPILE_RESERVED17 (1 << 17)
6814 #define D3DCOMPILE_WARNINGS_ARE_ERRORS (1 << 18)
6815 #define D3DCOMPILE_RESOURCES_MAY_ALIAS (1 << 19)
6816 #define D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES (1 << 20)
6817 #define D3DCOMPILE_ALL_RESOURCES_BOUND (1 << 21)
6818 
6819 #ifdef __clang__
6820 #pragma clang diagnostic pop
6821 #endif
6822 
6823 // Mini Win32 for D3D12
6824 
6825 #if !defined(WINBASEAPI)
6826 #if !defined(_KERNEL32_)
6827 #define WINBASEAPI DECLSPEC_IMPORT
6828 #else
6829 #define WINBASEAPI
6830 #endif
6831 #endif
6832 
6833 #define _Ret_maybenull_
6834 #define _Post_ptr_invalid_
6835 
6836 #define STATUS_WAIT_0 ((DWORD)0x00000000L)
6837 #define WAIT_OBJECT_0 ((STATUS_WAIT_0) + 0)
6838 
6839 extern "C" {
6840 
6841 WINBASEAPI
6842 BOOL
6843  WINAPI
6845  _In_ _Post_ptr_invalid_ HANDLE hObject);
6846 
6847 WINBASEAPI
6849  HANDLE
6850  WINAPI
6852  _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes,
6853  _In_ BOOL bManualReset,
6854  _In_ BOOL bInitialState,
6855  _In_opt_ LPCSTR lpName);
6856 
6857 WINBASEAPI
6859  HANDLE
6860  WINAPI
6862  _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes,
6863  _In_ BOOL bManualReset,
6864  _In_ BOOL bInitialState,
6865  _In_opt_ LPCWSTR lpName);
6866 
6867 WINBASEAPI
6868 DWORD
6869 WINAPI
6871  _In_ HANDLE hHandle,
6872  _In_ DWORD dwMilliseconds);
6873 }
6874 
6875 #ifdef UNICODE
6876 #define CreateEvent CreateEventW
6877 #else
6878 #define CreateEvent CreateEventA
6879 #endif // !UNICODE
6880 
6881 // end of Mini Win32 for D3D12
6882 
6883 #endif /*__mini_d3d12_h__*/
struct D3D12_RESOURCE_TRANSITION_BARRIER D3D12_RESOURCE_TRANSITION_BARRIER
interface ID3D12Device2 ID3D12Device2
Definition: mini_d3d12.h:1431
struct D3D12_INPUT_LAYOUT_DESC D3D12_INPUT_LAYOUT_DESC
ULONG_PTR * PSIZE_T
Definition: mini_d3d12.h:259
struct D3D12_SUBRESOURCE_FOOTPRINT D3D12_SUBRESOURCE_FOOTPRINT
_Null_terminated_ CONST CHAR * LPCSTR
Definition: mini_d3d12.h:205
struct D3D12_UNORDERED_ACCESS_VIEW_DESC D3D12_UNORDERED_ACCESS_VIEW_DESC
interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList
Definition: mini_d3d12.h:1389
_W64 UINT32 UINT_PTR
Definition: mini_d3d12.h:251
#define __RPC_string
Definition: mini_d3d12.h:150
struct D3D12_TEX2DMS_ARRAY_SRV D3D12_TEX2DMS_ARRAY_SRV
#define far
Definition: mini_d3d12.h:187
struct D3D12_RENDER_TARGET_VIEW_DESC D3D12_RENDER_TARGET_VIEW_DESC
struct ID3D12ObjectVtbl ID3D12ObjectVtbl
void far * LPVOID
Definition: mini_d3d12.h:190
struct D3D12_SAMPLER_DESC D3D12_SAMPLER_DESC
#define CONST
Definition: mini_d3d12.h:186
#define _Out_opt_
Definition: mini_d3d12.h:45
EXTERN_C const IID IID_ID3D12PipelineState
Definition: mini_d3d12.h:5425
struct DXGI_ADAPTER_DESC DXGI_ADAPTER_DESC
struct ID3D12CommandListVtbl ID3D12CommandListVtbl
#define REFIID
Definition: mini_d3d12.h:485
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: mini_d3d12.h:506
char OLECHAR
Definition: mini_d3d12.h:869
struct D3D12_RESOURCE_ALLOCATION_INFO D3D12_RESOURCE_ALLOCATION_INFO
struct D3D12_RESOURCE_UAV_BARRIER D3D12_RESOURCE_UAV_BARRIER
#define _In_reads_bytes_(size)
Definition: mini_d3d12.h:97
GUID IID
Definition: mini_d3d12.h:473
struct D3D12_TEX1D_ARRAY_RTV D3D12_TEX1D_ARRAY_RTV
EXTERN_C const IID IID_ID3D12Resource
Definition: mini_d3d12.h:3108
struct D3D12_HEAP_PROPERTIES D3D12_HEAP_PROPERTIES
_D3D_INCLUDE_TYPE
Definition: mini_d3d12.h:1191
@ D3D_INCLUDE_SYSTEM
Definition: mini_d3d12.h:1193
@ D3D10_INCLUDE_SYSTEM
Definition: mini_d3d12.h:1195
@ D3D_INCLUDE_FORCE_DWORD
Definition: mini_d3d12.h:1196
@ D3D_INCLUDE_LOCAL
Definition: mini_d3d12.h:1192
@ D3D10_INCLUDE_LOCAL
Definition: mini_d3d12.h:1194
unsigned short WORD
Definition: mini_d3d12.h:169
#define _Post_ptr_invalid_
Definition: mini_d3d12.h:6834
#define _Inout_
Definition: mini_d3d12.h:49
interface ID3D12DescriptorHeap ID3D12DescriptorHeap
Definition: mini_d3d12.h:1365
#define _Out_writes_bytes_(size)
Definition: mini_d3d12.h:113
interface ID3D12PipelineLibrary1 ID3D12PipelineLibrary1
Definition: mini_d3d12.h:1419
struct DXGI_SAMPLE_DESC DXGI_SAMPLE_DESC
LONG_PTR SSIZE_T
Definition: mini_d3d12.h:260
WORD * PUINT16
Definition: mini_d3d12.h:224
D3D12_STATIC_BORDER_COLOR
Definition: mini_d3d12.h:3001
@ D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK
Definition: mini_d3d12.h:3002
@ D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE
Definition: mini_d3d12.h:3004
@ D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK
Definition: mini_d3d12.h:3003
struct D3D12_TEX1D_RTV D3D12_TEX1D_RTV
D3D12_DESCRIPTOR_RANGE_TYPE
Definition: mini_d3d12.h:2950
@ D3D12_DESCRIPTOR_RANGE_TYPE_SRV
Definition: mini_d3d12.h:2951
@ D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER
Definition: mini_d3d12.h:2954
@ D3D12_DESCRIPTOR_RANGE_TYPE_CBV
Definition: mini_d3d12.h:2953
@ D3D12_DESCRIPTOR_RANGE_TYPE_UAV
Definition: mini_d3d12.h:2952
EXTERN_C const IID IID_IDXGIObject
Definition: mini_d3d12.h:5973
#define CONST_VTBL
Definition: mini_d3d12.h:728
LPSTR LPOLESTR
Definition: mini_d3d12.h:940
__int64 INT64
Definition: mini_d3d12.h:230
D3D12_FILL_MODE
Definition: mini_d3d12.h:1965
@ D3D12_FILL_MODE_SOLID
Definition: mini_d3d12.h:1967
@ D3D12_FILL_MODE_WIREFRAME
Definition: mini_d3d12.h:1966
D3D12_CULL_MODE
Definition: mini_d3d12.h:1970
@ D3D12_CULL_MODE_NONE
Definition: mini_d3d12.h:1971
@ D3D12_CULL_MODE_BACK
Definition: mini_d3d12.h:1973
@ D3D12_CULL_MODE_FRONT
Definition: mini_d3d12.h:1972
D3D12_RESOURCE_STATES
Definition: mini_d3d12.h:2219
@ D3D12_RESOURCE_STATE_GENERIC_READ
Definition: mini_d3d12.h:2235
@ D3D12_RESOURCE_STATE_RESOLVE_DEST
Definition: mini_d3d12.h:2233
@ D3D12_RESOURCE_STATE_INDEX_BUFFER
Definition: mini_d3d12.h:2222
@ D3D12_RESOURCE_STATE_COPY_DEST
Definition: mini_d3d12.h:2231
@ D3D12_RESOURCE_STATE_RENDER_TARGET
Definition: mini_d3d12.h:2223
@ D3D12_RESOURCE_STATE_COPY_SOURCE
Definition: mini_d3d12.h:2232
@ D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE
Definition: mini_d3d12.h:2228
@ D3D12_RESOURCE_STATE_UNORDERED_ACCESS
Definition: mini_d3d12.h:2224
@ D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT
Definition: mini_d3d12.h:2230
@ D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE
Definition: mini_d3d12.h:2227
@ D3D12_RESOURCE_STATE_DEPTH_WRITE
Definition: mini_d3d12.h:2225
@ D3D12_RESOURCE_STATE_DEPTH_READ
Definition: mini_d3d12.h:2226
@ D3D12_RESOURCE_STATE_STREAM_OUT
Definition: mini_d3d12.h:2229
@ D3D12_RESOURCE_STATE_COMMON
Definition: mini_d3d12.h:2220
@ D3D12_RESOURCE_STATE_PREDICATION
Definition: mini_d3d12.h:2237
@ D3D12_RESOURCE_STATE_RESOLVE_SOURCE
Definition: mini_d3d12.h:2234
@ D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER
Definition: mini_d3d12.h:2221
@ D3D12_RESOURCE_STATE_PRESENT
Definition: mini_d3d12.h:2236
_In_ _COM_Outptr_opt_ void **typedef HRESULT(WINAPI *PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(_In_ const D3D12_ROOT_SIGNATURE_DESC *pRootSignature
Definition: mini_d3d12.h:5771
WINBASEAPI _Ret_maybenull_ HANDLE WINAPI CreateEventA(_In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes, _In_ BOOL bManualReset, _In_ BOOL bInitialState, _In_opt_ LPCSTR lpName)
#define __RPC__deref_out
Definition: mini_d3d12.h:154
D3D_ROOT_SIGNATURE_VERSION
Definition: mini_d3d12.h:3086
@ D3D_ROOT_SIGNATURE_VERSION_1_0
Definition: mini_d3d12.h:3088
@ D3D_ROOT_SIGNATURE_VERSION_1
Definition: mini_d3d12.h:3087
@ D3D_ROOT_SIGNATURE_VERSION_1_1
Definition: mini_d3d12.h:3089
#define _COM_Outptr_opt_
Definition: mini_d3d12.h:61
struct D3D12_TEX2D_SRV D3D12_TEX2D_SRV
struct D3D12_BOX D3D12_BOX
#define MIDL_INTERFACE(x)
Definition: mini_d3d12.h:594
_Null_terminated_ CHAR * NPSTR
Definition: mini_d3d12.h:204
D3D12_TEXTURE_ADDRESS_MODE
Definition: mini_d3d12.h:2669
@ D3D12_TEXTURE_ADDRESS_MODE_BORDER
Definition: mini_d3d12.h:2673
@ D3D12_TEXTURE_ADDRESS_MODE_WRAP
Definition: mini_d3d12.h:2670
@ D3D12_TEXTURE_ADDRESS_MODE_CLAMP
Definition: mini_d3d12.h:2672
@ D3D12_TEXTURE_ADDRESS_MODE_MIRROR
Definition: mini_d3d12.h:2671
@ D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE
Definition: mini_d3d12.h:2674
struct D3D12_INDIRECT_ARGUMENT_DESC D3D12_INDIRECT_ARGUMENT_DESC
I_RPC_HANDLE RPC_BINDING_HANDLE
Definition: mini_d3d12.h:542
_Null_terminated_ CONST CHAR * PCSTR
Definition: mini_d3d12.h:205
INT * PINT32
Definition: mini_d3d12.h:222
struct D3D12_SHADER_BYTECODE D3D12_SHADER_BYTECODE
interface IDXGIFactory1 IDXGIFactory1
Definition: mini_d3d12.h:5923
#define _Ret_maybenull_
Definition: mini_d3d12.h:6833
struct D3D12_TEX2DMS_SRV D3D12_TEX2DMS_SRV
long LONG
Definition: mini_d3d12.h:178
struct D3D12_BUFFER_RTV D3D12_BUFFER_RTV
struct D3D12_RESOURCE_ALIASING_BARRIER D3D12_RESOURCE_ALIASING_BARRIER
#define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE)
Definition: mini_d3d12.h:414
struct D3D12_TEX2D_UAV D3D12_TEX2D_UAV
interface ID3D12QueryHeap ID3D12QueryHeap
Definition: mini_d3d12.h:1371
D3D12_INPUT_CLASSIFICATION
Definition: mini_d3d12.h:2040
@ D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA
Definition: mini_d3d12.h:2041
@ D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA
Definition: mini_d3d12.h:2042
EXTERN_C const IID IID_IUnknown
Definition: mini_d3d12.h:824
WORD UINT16
Definition: mini_d3d12.h:224
interface ID3D12CommandAllocator ID3D12CommandAllocator
Definition: mini_d3d12.h:1347
struct _RPC_VERSION RPC_VERSION
unsigned int UINT
Definition: mini_d3d12.h:181
#define _W64
Definition: mini_d3d12.h:237
struct D3D12_ROOT_DESCRIPTOR_TABLE D3D12_ROOT_DESCRIPTOR_TABLE
struct D3D12_GPU_DESCRIPTOR_HANDLE D3D12_GPU_DESCRIPTOR_HANDLE
GUID UUID
Definition: mini_d3d12.h:536
D3D12_PREDICATION_OP
Definition: mini_d3d12.h:2926
@ D3D12_PREDICATION_OP_NOT_EQUAL_ZERO
Definition: mini_d3d12.h:2928
@ D3D12_PREDICATION_OP_EQUAL_ZERO
Definition: mini_d3d12.h:2927
int INT
Definition: mini_d3d12.h:179
_W64 INT32 * PLONG_PTR
Definition: mini_d3d12.h:253
UINT * PUINT32
Definition: mini_d3d12.h:225
interface ID3D12Object ID3D12Object
Definition: mini_d3d12.h:1299
D3D12_SHADER_COMPONENT_MAPPING
Definition: mini_d3d12.h:2296
@ D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1
Definition: mini_d3d12.h:2298
@ D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0
Definition: mini_d3d12.h:2301
@ D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3
Definition: mini_d3d12.h:2300
@ D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1
Definition: mini_d3d12.h:2302
@ D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0
Definition: mini_d3d12.h:2297
@ D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2
Definition: mini_d3d12.h:2299
EXTERN_C const IID IID_ID3D12GraphicsCommandList
Definition: mini_d3d12.h:3531
struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES
struct IDXGIFactoryVtbl IDXGIFactoryVtbl
interface ID3D12CommandList ID3D12CommandList
Definition: mini_d3d12.h:1383
struct D3D12_VIEWPORT D3D12_VIEWPORT
EXTERN_C const IID IID_ID3D12Fence
Definition: mini_d3d12.h:5289
struct IDXGIObjectVtbl IDXGIObjectVtbl
struct D3D12_RESOURCE_DESC D3D12_RESOURCE_DESC
struct D3D12_TEXCUBE_ARRAY_SRV D3D12_TEXCUBE_ARRAY_SRV
interface ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1
Definition: mini_d3d12.h:1395
#define _In_z_
Definition: mini_d3d12.h:33
struct D3D12_QUERY_HEAP_DESC D3D12_QUERY_HEAP_DESC
struct D3D12_DESCRIPTOR_HEAP_DESC D3D12_DESCRIPTOR_HEAP_DESC
_In_ REFIID
Definition: mini_d3d12.h:5769
unsigned char BYTE
Definition: mini_d3d12.h:168
#define THIS_
Definition: mini_d3d12.h:714
D3D12_RTV_DIMENSION
Definition: mini_d3d12.h:2543
@ D3D12_RTV_DIMENSION_TEXTURE1D
Definition: mini_d3d12.h:2546
@ D3D12_RTV_DIMENSION_UNKNOWN
Definition: mini_d3d12.h:2544
@ D3D12_RTV_DIMENSION_BUFFER
Definition: mini_d3d12.h:2545
@ D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY
Definition: mini_d3d12.h:2551
@ D3D12_RTV_DIMENSION_TEXTURE3D
Definition: mini_d3d12.h:2552
@ D3D12_RTV_DIMENSION_TEXTURE1DARRAY
Definition: mini_d3d12.h:2547
@ D3D12_RTV_DIMENSION_TEXTURE2D
Definition: mini_d3d12.h:2548
@ D3D12_RTV_DIMENSION_TEXTURE2DMS
Definition: mini_d3d12.h:2550
@ D3D12_RTV_DIMENSION_TEXTURE2DARRAY
Definition: mini_d3d12.h:2549
struct D3D12_TEX1D_ARRAY_SRV D3D12_TEX1D_ARRAY_SRV
struct ID3D12PageableVtbl ID3D12PageableVtbl
struct D3D12_INDEX_BUFFER_VIEW D3D12_INDEX_BUFFER_VIEW
EXTERN_C const IID IID_ID3D12CommandQueue
Definition: mini_d3d12.h:4343
_In_ _COM_Outptr_opt_ void **typedef _In_ D3D_ROOT_SIGNATURE_VERSION Version
Definition: mini_d3d12.h:5773
D3D12_RESOURCE_BARRIER_FLAGS
Definition: mini_d3d12.h:2872
@ D3D12_RESOURCE_BARRIER_FLAG_NONE
Definition: mini_d3d12.h:2873
@ D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY
Definition: mini_d3d12.h:2874
@ D3D12_RESOURCE_BARRIER_FLAG_END_ONLY
Definition: mini_d3d12.h:2875
struct _RPC_MESSAGE * PRPC_MESSAGE
#define _Outptr_opt_result_bytebuffer_(size)
Definition: mini_d3d12.h:133
D3D12_PRIMITIVE_TOPOLOGY_TYPE
Definition: mini_d3d12.h:2071
@ D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE
Definition: mini_d3d12.h:2075
@ D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED
Definition: mini_d3d12.h:2072
@ D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT
Definition: mini_d3d12.h:2073
@ D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH
Definition: mini_d3d12.h:2076
@ D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE
Definition: mini_d3d12.h:2074
_COM_Outptr_ void ** ppFactory
Definition: mini_d3d12.h:6763
struct D3D12_PACKED_MIP_INFO D3D12_PACKED_MIP_INFO
SHORT INT16
Definition: mini_d3d12.h:221
struct D3D12_SHADER_RESOURCE_VIEW_DESC D3D12_SHADER_RESOURCE_VIEW_DESC
_Null_terminated_ CHAR * LPSTR
Definition: mini_d3d12.h:204
D3D12_COMMAND_LIST_TYPE
Definition: mini_d3d12.h:1851
@ D3D12_COMMAND_LIST_TYPE_COPY
Definition: mini_d3d12.h:1855
@ D3D12_COMMAND_LIST_TYPE_BUNDLE
Definition: mini_d3d12.h:1853
@ D3D12_COMMAND_LIST_TYPE_DIRECT
Definition: mini_d3d12.h:1852
@ D3D12_COMMAND_LIST_TYPE_COMPUTE
Definition: mini_d3d12.h:1854
#define __RPC_FAR
Definition: mini_d3d12.h:529
INT BOOL
Definition: mini_d3d12.h:192
struct D3D12_ROOT_PARAMETER D3D12_ROOT_PARAMETER
RECT D3D12_RECT
Definition: mini_d3d12.h:2854
_W64 INT32 INT_PTR
Definition: mini_d3d12.h:250
struct IDXGIAdapterVtbl IDXGIAdapterVtbl
D3D12_LOGIC_OP
Definition: mini_d3d12.h:1927
@ D3D12_LOGIC_OP_OR_INVERTED
Definition: mini_d3d12.h:1943
@ D3D12_LOGIC_OP_XOR
Definition: mini_d3d12.h:1938
@ D3D12_LOGIC_OP_SET
Definition: mini_d3d12.h:1929
@ D3D12_LOGIC_OP_AND_REVERSE
Definition: mini_d3d12.h:1940
@ D3D12_LOGIC_OP_EQUIV
Definition: mini_d3d12.h:1939
@ D3D12_LOGIC_OP_OR_REVERSE
Definition: mini_d3d12.h:1942
@ D3D12_LOGIC_OP_CLEAR
Definition: mini_d3d12.h:1928
@ D3D12_LOGIC_OP_NOOP
Definition: mini_d3d12.h:1932
@ D3D12_LOGIC_OP_NOR
Definition: mini_d3d12.h:1937
@ D3D12_LOGIC_OP_INVERT
Definition: mini_d3d12.h:1933
@ D3D12_LOGIC_OP_OR
Definition: mini_d3d12.h:1936
@ D3D12_LOGIC_OP_AND_INVERTED
Definition: mini_d3d12.h:1941
@ D3D12_LOGIC_OP_AND
Definition: mini_d3d12.h:1934
@ D3D12_LOGIC_OP_COPY
Definition: mini_d3d12.h:1930
@ D3D12_LOGIC_OP_COPY_INVERTED
Definition: mini_d3d12.h:1931
@ D3D12_LOGIC_OP_NAND
Definition: mini_d3d12.h:1935
struct tagRECT RECT
struct D3D12_CLEAR_VALUE D3D12_CLEAR_VALUE
struct D3D12_DISCARD_REGION D3D12_DISCARD_REGION
interface IDXGIAdapter1 IDXGIAdapter1
Definition: mini_d3d12.h:5929
D3D12_TILE_MAPPING_FLAGS
Definition: mini_d3d12.h:2205
@ D3D12_TILE_MAPPING_FLAG_NONE
Definition: mini_d3d12.h:2206
@ D3D12_TILE_MAPPING_FLAG_NO_HAZARD
Definition: mini_d3d12.h:2207
D3D12_COMMAND_QUEUE_PRIORITY
Definition: mini_d3d12.h:1864
@ D3D12_COMMAND_QUEUE_PRIORITY_HIGH
Definition: mini_d3d12.h:1866
@ D3D12_COMMAND_QUEUE_PRIORITY_NORMAL
Definition: mini_d3d12.h:1865
@ D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME
Definition: mini_d3d12.h:1867
BYTE * PUINT8
Definition: mini_d3d12.h:223
D3D12_MEMORY_POOL
Definition: mini_d3d12.h:2168
@ D3D12_MEMORY_POOL_UNKNOWN
Definition: mini_d3d12.h:2169
@ D3D12_MEMORY_POOL_L1
Definition: mini_d3d12.h:2171
@ D3D12_MEMORY_POOL_L0
Definition: mini_d3d12.h:2170
D3D12_TILE_RANGE_FLAGS
Definition: mini_d3d12.h:2814
@ D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE
Definition: mini_d3d12.h:2818
@ D3D12_TILE_RANGE_FLAG_SKIP
Definition: mini_d3d12.h:2817
@ D3D12_TILE_RANGE_FLAG_NONE
Definition: mini_d3d12.h:2815
@ D3D12_TILE_RANGE_FLAG_NULL
Definition: mini_d3d12.h:2816
D3D12_CONSERVATIVE_RASTERIZATION_MODE
Definition: mini_d3d12.h:1976
@ D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF
Definition: mini_d3d12.h:1977
@ D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON
Definition: mini_d3d12.h:1978
struct D3D12_GRAPHICS_PIPELINE_STATE_DESC D3D12_GRAPHICS_PIPELINE_STATE_DESC
D3D12_RESOURCE_DIMENSION
Definition: mini_d3d12.h:2122
@ D3D12_RESOURCE_DIMENSION_BUFFER
Definition: mini_d3d12.h:2124
@ D3D12_RESOURCE_DIMENSION_TEXTURE1D
Definition: mini_d3d12.h:2125
@ D3D12_RESOURCE_DIMENSION_TEXTURE3D
Definition: mini_d3d12.h:2127
@ D3D12_RESOURCE_DIMENSION_UNKNOWN
Definition: mini_d3d12.h:2123
@ D3D12_RESOURCE_DIMENSION_TEXTURE2D
Definition: mini_d3d12.h:2126
struct D3D12_TEX1D_ARRAY_DSV D3D12_TEX1D_ARRAY_DSV
_W64 UINT32 * PULONG_PTR
Definition: mini_d3d12.h:254
EXTERN_C const IID IID_ID3D12DescriptorHeap
Definition: mini_d3d12.h:5539
CHAR * PINT8
Definition: mini_d3d12.h:220
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
struct D3D12_ROOT_SIGNATURE_DESC1 D3D12_ROOT_SIGNATURE_DESC1
#define _Out_writes_(size)
Definition: mini_d3d12.h:105
struct D3D12_TEX3D_SRV D3D12_TEX3D_SRV
struct D3D12_TEX3D_RTV D3D12_TEX3D_RTV
D3D12_DEPTH_WRITE_MASK
Definition: mini_d3d12.h:1995
@ D3D12_DEPTH_WRITE_MASK_ALL
Definition: mini_d3d12.h:1997
@ D3D12_DEPTH_WRITE_MASK_ZERO
Definition: mini_d3d12.h:1996
interface ID3D12Pageable ID3D12Pageable
Definition: mini_d3d12.h:1329
struct __LUID LUID
DXGI_FORMAT
Definition: mini_d3d12.h:1064
@ DXGI_FORMAT_R16_UINT
Definition: mini_d3d12.h:1122
@ DXGI_FORMAT_B8G8R8A8_UNORM
Definition: mini_d3d12.h:1152
@ DXGI_FORMAT_R8_TYPELESS
Definition: mini_d3d12.h:1125
@ DXGI_FORMAT_Y410
Definition: mini_d3d12.h:1166
@ DXGI_FORMAT_BC3_UNORM_SRGB
Definition: mini_d3d12.h:1143
@ DXGI_FORMAT_R8G8_B8G8_UNORM
Definition: mini_d3d12.h:1133
@ DXGI_FORMAT_R32G32B32_TYPELESS
Definition: mini_d3d12.h:1070
@ DXGI_FORMAT_BC3_TYPELESS
Definition: mini_d3d12.h:1141
@ DXGI_FORMAT_R16G16_SNORM
Definition: mini_d3d12.h:1102
@ DXGI_FORMAT_D32_FLOAT_S8X24_UINT
Definition: mini_d3d12.h:1085
@ DXGI_FORMAT_R32G32B32A32_SINT
Definition: mini_d3d12.h:1069
@ DXGI_FORMAT_BC5_UNORM
Definition: mini_d3d12.h:1148
@ DXGI_FORMAT_Y216
Definition: mini_d3d12.h:1174
@ DXGI_FORMAT_BC1_UNORM
Definition: mini_d3d12.h:1136
@ DXGI_FORMAT_R8G8_UINT
Definition: mini_d3d12.h:1115
@ DXGI_FORMAT_420_OPAQUE
Definition: mini_d3d12.h:1171
@ DXGI_FORMAT_R32G32B32A32_UINT
Definition: mini_d3d12.h:1068
@ DXGI_FORMAT_R16G16B16A16_SNORM
Definition: mini_d3d12.h:1078
@ DXGI_FORMAT_R32_FLOAT
Definition: mini_d3d12.h:1106
@ DXGI_FORMAT_R16G16B16A16_UNORM
Definition: mini_d3d12.h:1076
@ DXGI_FORMAT_R32_SINT
Definition: mini_d3d12.h:1108
@ DXGI_FORMAT_R8G8_UNORM
Definition: mini_d3d12.h:1114
@ DXGI_FORMAT_R16G16_UNORM
Definition: mini_d3d12.h:1100
@ DXGI_FORMAT_BC1_UNORM_SRGB
Definition: mini_d3d12.h:1137
@ DXGI_FORMAT_A8P8
Definition: mini_d3d12.h:1179
@ DXGI_FORMAT_R16G16_SINT
Definition: mini_d3d12.h:1103
@ DXGI_FORMAT_R24_UNORM_X8_TYPELESS
Definition: mini_d3d12.h:1111
@ DXGI_FORMAT_R8G8B8A8_TYPELESS
Definition: mini_d3d12.h:1092
@ DXGI_FORMAT_BC2_TYPELESS
Definition: mini_d3d12.h:1138
@ DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS
Definition: mini_d3d12.h:1086
@ DXGI_FORMAT_R32G32B32_FLOAT
Definition: mini_d3d12.h:1071
@ DXGI_FORMAT_R32G32B32_SINT
Definition: mini_d3d12.h:1073
@ DXGI_FORMAT_R32G32B32A32_TYPELESS
Definition: mini_d3d12.h:1066
@ DXGI_FORMAT_B8G8R8A8_UNORM_SRGB
Definition: mini_d3d12.h:1156
@ DXGI_FORMAT_B8G8R8X8_TYPELESS
Definition: mini_d3d12.h:1157
@ DXGI_FORMAT_B8G8R8A8_TYPELESS
Definition: mini_d3d12.h:1155
@ DXGI_FORMAT_UNKNOWN
Definition: mini_d3d12.h:1065
@ DXGI_FORMAT_X24_TYPELESS_G8_UINT
Definition: mini_d3d12.h:1112
@ DXGI_FORMAT_R16_SINT
Definition: mini_d3d12.h:1124
@ DXGI_FORMAT_R1_UNORM
Definition: mini_d3d12.h:1131
@ DXGI_FORMAT_R16G16B16A16_UINT
Definition: mini_d3d12.h:1077
@ DXGI_FORMAT_R16_UNORM
Definition: mini_d3d12.h:1121
@ DXGI_FORMAT_R8G8B8A8_SINT
Definition: mini_d3d12.h:1097
@ DXGI_FORMAT_D24_UNORM_S8_UINT
Definition: mini_d3d12.h:1110
@ DXGI_FORMAT_R8G8B8A8_SNORM
Definition: mini_d3d12.h:1096
@ DXGI_FORMAT_A8_UNORM
Definition: mini_d3d12.h:1130
@ DXGI_FORMAT_FORCE_UINT
Definition: mini_d3d12.h:1181
@ DXGI_FORMAT_R8G8B8A8_UINT
Definition: mini_d3d12.h:1095
@ DXGI_FORMAT_R10G10B10A2_TYPELESS
Definition: mini_d3d12.h:1088
@ DXGI_FORMAT_R32G32_FLOAT
Definition: mini_d3d12.h:1081
@ DXGI_FORMAT_BC6H_UF16
Definition: mini_d3d12.h:1160
@ DXGI_FORMAT_BC6H_SF16
Definition: mini_d3d12.h:1161
@ DXGI_FORMAT_R10G10B10A2_UNORM
Definition: mini_d3d12.h:1089
@ DXGI_FORMAT_R8_SNORM
Definition: mini_d3d12.h:1128
@ DXGI_FORMAT_R9G9B9E5_SHAREDEXP
Definition: mini_d3d12.h:1132
@ DXGI_FORMAT_P010
Definition: mini_d3d12.h:1169
@ DXGI_FORMAT_R16G16B16A16_TYPELESS
Definition: mini_d3d12.h:1074
@ DXGI_FORMAT_R16G16B16A16_FLOAT
Definition: mini_d3d12.h:1075
@ DXGI_FORMAT_BC7_TYPELESS
Definition: mini_d3d12.h:1162
@ DXGI_FORMAT_P016
Definition: mini_d3d12.h:1170
@ DXGI_FORMAT_R32_TYPELESS
Definition: mini_d3d12.h:1104
@ DXGI_FORMAT_R8_UNORM
Definition: mini_d3d12.h:1126
@ DXGI_FORMAT_R32G32_UINT
Definition: mini_d3d12.h:1082
@ DXGI_FORMAT_R11G11B10_FLOAT
Definition: mini_d3d12.h:1091
@ DXGI_FORMAT_R8G8B8A8_UNORM
Definition: mini_d3d12.h:1093
@ DXGI_FORMAT_AYUV
Definition: mini_d3d12.h:1165
@ DXGI_FORMAT_Y416
Definition: mini_d3d12.h:1167
@ DXGI_FORMAT_G8R8_G8B8_UNORM
Definition: mini_d3d12.h:1134
@ DXGI_FORMAT_YUY2
Definition: mini_d3d12.h:1172
@ DXGI_FORMAT_D16_UNORM
Definition: mini_d3d12.h:1120
@ DXGI_FORMAT_R16_FLOAT
Definition: mini_d3d12.h:1119
@ DXGI_FORMAT_Y210
Definition: mini_d3d12.h:1173
@ DXGI_FORMAT_R10G10B10A2_UINT
Definition: mini_d3d12.h:1090
@ DXGI_FORMAT_BC6H_TYPELESS
Definition: mini_d3d12.h:1159
@ DXGI_FORMAT_BC7_UNORM
Definition: mini_d3d12.h:1163
@ DXGI_FORMAT_BC5_TYPELESS
Definition: mini_d3d12.h:1147
@ DXGI_FORMAT_R32G32_SINT
Definition: mini_d3d12.h:1083
@ DXGI_FORMAT_BC2_UNORM_SRGB
Definition: mini_d3d12.h:1140
@ DXGI_FORMAT_R16_SNORM
Definition: mini_d3d12.h:1123
@ DXGI_FORMAT_R8_SINT
Definition: mini_d3d12.h:1129
@ DXGI_FORMAT_BC5_SNORM
Definition: mini_d3d12.h:1149
@ DXGI_FORMAT_R32_UINT
Definition: mini_d3d12.h:1107
@ DXGI_FORMAT_BC4_TYPELESS
Definition: mini_d3d12.h:1144
@ DXGI_FORMAT_R32G32B32A32_FLOAT
Definition: mini_d3d12.h:1067
@ DXGI_FORMAT_R24G8_TYPELESS
Definition: mini_d3d12.h:1109
@ DXGI_FORMAT_IA44
Definition: mini_d3d12.h:1177
@ DXGI_FORMAT_NV11
Definition: mini_d3d12.h:1175
@ DXGI_FORMAT_R8G8_SINT
Definition: mini_d3d12.h:1117
@ DXGI_FORMAT_R16_TYPELESS
Definition: mini_d3d12.h:1118
@ DXGI_FORMAT_BC3_UNORM
Definition: mini_d3d12.h:1142
@ DXGI_FORMAT_R32G32B32_UINT
Definition: mini_d3d12.h:1072
@ DXGI_FORMAT_R16G16_TYPELESS
Definition: mini_d3d12.h:1098
@ DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
Definition: mini_d3d12.h:1094
@ DXGI_FORMAT_R16G16_UINT
Definition: mini_d3d12.h:1101
@ DXGI_FORMAT_D32_FLOAT
Definition: mini_d3d12.h:1105
@ DXGI_FORMAT_R8G8_TYPELESS
Definition: mini_d3d12.h:1113
@ DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
Definition: mini_d3d12.h:1154
@ DXGI_FORMAT_R16G16B16A16_SINT
Definition: mini_d3d12.h:1079
@ DXGI_FORMAT_BC1_TYPELESS
Definition: mini_d3d12.h:1135
@ DXGI_FORMAT_BC7_UNORM_SRGB
Definition: mini_d3d12.h:1164
@ DXGI_FORMAT_BC2_UNORM
Definition: mini_d3d12.h:1139
@ DXGI_FORMAT_R32G32_TYPELESS
Definition: mini_d3d12.h:1080
@ DXGI_FORMAT_R32G8X24_TYPELESS
Definition: mini_d3d12.h:1084
@ DXGI_FORMAT_B4G4R4A4_UNORM
Definition: mini_d3d12.h:1180
@ DXGI_FORMAT_AI44
Definition: mini_d3d12.h:1176
@ DXGI_FORMAT_R16G16_FLOAT
Definition: mini_d3d12.h:1099
@ DXGI_FORMAT_B5G6R5_UNORM
Definition: mini_d3d12.h:1150
@ DXGI_FORMAT_BC4_UNORM
Definition: mini_d3d12.h:1145
@ DXGI_FORMAT_X32_TYPELESS_G8X24_UINT
Definition: mini_d3d12.h:1087
@ DXGI_FORMAT_R8G8_SNORM
Definition: mini_d3d12.h:1116
@ DXGI_FORMAT_B8G8R8X8_UNORM_SRGB
Definition: mini_d3d12.h:1158
@ DXGI_FORMAT_P8
Definition: mini_d3d12.h:1178
@ DXGI_FORMAT_R8_UINT
Definition: mini_d3d12.h:1127
@ DXGI_FORMAT_BC4_SNORM
Definition: mini_d3d12.h:1146
@ DXGI_FORMAT_NV12
Definition: mini_d3d12.h:1168
@ DXGI_FORMAT_B5G5R5A1_UNORM
Definition: mini_d3d12.h:1151
@ DXGI_FORMAT_B8G8R8X8_UNORM
Definition: mini_d3d12.h:1153
interface IDXGIAdapter IDXGIAdapter
Definition: mini_d3d12.h:5899
#define _Out_writes_opt_(size)
Definition: mini_d3d12.h:109
D3D12_RESOURCE_FLAGS
Definition: mini_d3d12.h:2137
@ D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS
Definition: mini_d3d12.h:2141
@ D3D12_RESOURCE_FLAG_NONE
Definition: mini_d3d12.h:2138
@ D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL
Definition: mini_d3d12.h:2140
@ D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER
Definition: mini_d3d12.h:2143
@ D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE
Definition: mini_d3d12.h:2142
@ D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS
Definition: mini_d3d12.h:2144
@ D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET
Definition: mini_d3d12.h:2139
struct tagRECT * LPRECT
struct _SECURITY_ATTRIBUTES * PSECURITY_ATTRIBUTES
struct D3D12_TEX3D_UAV D3D12_TEX3D_UAV
EXTERN_C const IID IID_ID3D12CommandAllocator
Definition: mini_d3d12.h:3307
struct D3D12_CPU_DESCRIPTOR_HANDLE D3D12_CPU_DESCRIPTOR_HANDLE
#define REFGUID
Definition: mini_d3d12.h:491
__int64 LONGLONG
Definition: mini_d3d12.h:279
struct D3D12_TEX2D_RTV D3D12_TEX2D_RTV
#define DECLARE_INTERFACE(iface)
Definition: mini_d3d12.h:729
struct _D3D_SHADER_MACRO * LPD3D_SHADER_MACRO
Definition: mini_d3d12.h:1214
_W64 UINT32 ULONG_PTR
Definition: mini_d3d12.h:254
struct D3D12_TEX1D_SRV D3D12_TEX1D_SRV
struct D3D12_TEXCUBE_SRV D3D12_TEXCUBE_SRV
interface ID3D10Blob ID3D10Blob
Definition: mini_d3d12.h:1230
struct D3D12_TEX2DMS_ARRAY_RTV D3D12_TEX2DMS_ARRAY_RTV
EXTERN_C const IID IID_IDXGIAdapter
Definition: mini_d3d12.h:6289
D3D_FEATURE_LEVEL
Definition: mini_d3d12.h:950
@ D3D_FEATURE_LEVEL_10_0
Definition: mini_d3d12.h:954
@ D3D_FEATURE_LEVEL_9_1
Definition: mini_d3d12.h:951
@ D3D_FEATURE_LEVEL_9_2
Definition: mini_d3d12.h:952
@ D3D_FEATURE_LEVEL_9_3
Definition: mini_d3d12.h:953
@ D3D_FEATURE_LEVEL_10_1
Definition: mini_d3d12.h:955
@ D3D_FEATURE_LEVEL_12_1
Definition: mini_d3d12.h:959
@ D3D_FEATURE_LEVEL_12_0
Definition: mini_d3d12.h:958
@ D3D_FEATURE_LEVEL_11_0
Definition: mini_d3d12.h:956
@ D3D_FEATURE_LEVEL_11_1
Definition: mini_d3d12.h:957
HANDLE * PHANDLE
Definition: mini_d3d12.h:442
#define _Null_terminated_
Definition: mini_d3d12.h:69
interface IDXGIFactory IDXGIFactory
Definition: mini_d3d12.h:5917
_Null_terminated_ CONST WCHAR * PCWSTR
Definition: mini_d3d12.h:206
#define RPC_MGR_EPV
Definition: mini_d3d12.h:546
interface ID3D12Device ID3D12Device
Definition: mini_d3d12.h:1407
interface IDXGISwapChain IDXGISwapChain
Definition: mini_d3d12.h:5911
struct D3D12_ROOT_DESCRIPTOR1 D3D12_ROOT_DESCRIPTOR1
_W64 INT32 * PINT_PTR
Definition: mini_d3d12.h:250
D3D12_DSV_DIMENSION
Definition: mini_d3d12.h:2606
@ D3D12_DSV_DIMENSION_UNKNOWN
Definition: mini_d3d12.h:2607
@ D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY
Definition: mini_d3d12.h:2613
@ D3D12_DSV_DIMENSION_TEXTURE1D
Definition: mini_d3d12.h:2608
@ D3D12_DSV_DIMENSION_TEXTURE2DMS
Definition: mini_d3d12.h:2612
@ D3D12_DSV_DIMENSION_TEXTURE2D
Definition: mini_d3d12.h:2610
@ D3D12_DSV_DIMENSION_TEXTURE1DARRAY
Definition: mini_d3d12.h:2609
@ D3D12_DSV_DIMENSION_TEXTURE2DARRAY
Definition: mini_d3d12.h:2611
struct D3D12_ROOT_DESCRIPTOR_TABLE1 D3D12_ROOT_DESCRIPTOR_TABLE1
struct D3D12_TEX2D_DSV D3D12_TEX2D_DSV
#define STDMETHODCALLTYPE
Definition: mini_d3d12.h:300
interface ID3D12DeviceChild ID3D12DeviceChild
Definition: mini_d3d12.h:1305
D3D12_CLEAR_FLAGS
Definition: mini_d3d12.h:2270
@ D3D12_CLEAR_FLAG_STENCIL
Definition: mini_d3d12.h:2272
@ D3D12_CLEAR_FLAG_DEPTH
Definition: mini_d3d12.h:2271
struct D3D12_TEX2DMS_ARRAY_DSV D3D12_TEX2DMS_ARRAY_DSV
#define END_INTERFACE
Definition: mini_d3d12.h:598
struct D3D12_DESCRIPTOR_RANGE D3D12_DESCRIPTOR_RANGE
struct _RPC_SYNTAX_IDENTIFIER * PRPC_SYNTAX_IDENTIFIER
interface ID3D12Heap ID3D12Heap
Definition: mini_d3d12.h:1335
struct D3D12_SO_DECLARATION_ENTRY D3D12_SO_DECLARATION_ENTRY
EXTERN_C const IID IID_ID3D12Debug
Definition: mini_d3d12.h:5825
#define _Return_type_success_(expr)
Definition: mini_d3d12.h:73
D3D12_DESCRIPTOR_HEAP_FLAGS
Definition: mini_d3d12.h:2291
@ D3D12_DESCRIPTOR_HEAP_FLAG_NONE
Definition: mini_d3d12.h:2292
@ D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE
Definition: mini_d3d12.h:2293
interface ID3D12Resource ID3D12Resource
Definition: mini_d3d12.h:1341
D3D12_QUERY_TYPE
Definition: mini_d3d12.h:2915
@ D3D12_QUERY_TYPE_OCCLUSION
Definition: mini_d3d12.h:2916
@ D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3
Definition: mini_d3d12.h:2923
@ D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2
Definition: mini_d3d12.h:2922
@ D3D12_QUERY_TYPE_BINARY_OCCLUSION
Definition: mini_d3d12.h:2917
@ D3D12_QUERY_TYPE_TIMESTAMP
Definition: mini_d3d12.h:2918
@ D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0
Definition: mini_d3d12.h:2920
@ D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1
Definition: mini_d3d12.h:2921
@ D3D12_QUERY_TYPE_PIPELINE_STATISTICS
Definition: mini_d3d12.h:2919
#define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE
Definition: mini_d3d12.h:2837
D3D12_BUFFER_UAV_FLAGS
Definition: mini_d3d12.h:2436
@ D3D12_BUFFER_UAV_FLAG_NONE
Definition: mini_d3d12.h:2437
@ D3D12_BUFFER_UAV_FLAG_RAW
Definition: mini_d3d12.h:2438
struct D3D12_DEPTH_STENCIL_VALUE D3D12_DEPTH_STENCIL_VALUE
float FLOAT
Definition: mini_d3d12.h:184
#define NEAR
Definition: mini_d3d12.h:209
#define _Post_satisfies_(expr)
Definition: mini_d3d12.h:81
struct D3D12_COMPUTE_PIPELINE_STATE_DESC D3D12_COMPUTE_PIPELINE_STATE_DESC
struct D3D12_COMMAND_SIGNATURE_DESC D3D12_COMMAND_SIGNATURE_DESC
_Null_terminated_ CHAR * PSTR
Definition: mini_d3d12.h:204
#define interface
Definition: mini_d3d12.h:690
BYTE UINT8
Definition: mini_d3d12.h:223
D3D12_BUFFER_SRV_FLAGS
Definition: mini_d3d12.h:2317
@ D3D12_BUFFER_SRV_FLAG_NONE
Definition: mini_d3d12.h:2318
@ D3D12_BUFFER_SRV_FLAG_RAW
Definition: mini_d3d12.h:2319
struct D3D12_BLEND_DESC D3D12_BLEND_DESC
struct ID3D12FenceVtbl ID3D12FenceVtbl
RPC_BINDING_HANDLE handle_t
Definition: mini_d3d12.h:543
interface ID3DInclude ID3DInclude
Definition: mini_d3d12.h:1199
#define __RPC_STUB
Definition: mini_d3d12.h:525
HRESULT(WINAPI * PFN_D3D12_GET_DEBUG_INTERFACE)(_In_ REFIID, _COM_Outptr_opt_ void **)
Definition: mini_d3d12.h:5777
struct ID3D12GraphicsCommandListVtbl ID3D12GraphicsCommandListVtbl
struct D3D12_DESCRIPTOR_RANGE1 D3D12_DESCRIPTOR_RANGE1
D3D12_TEXTURE_COPY_TYPE
Definition: mini_d3d12.h:2821
@ D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT
Definition: mini_d3d12.h:2823
@ D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX
Definition: mini_d3d12.h:2822
IUnknown * LPUNKNOWN
Definition: mini_d3d12.h:758
#define _Inout_opt_
Definition: mini_d3d12.h:53
D3D12_ROOT_SIGNATURE_FLAGS
Definition: mini_d3d12.h:2931
@ D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS
Definition: mini_d3d12.h:2935
@ D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT
Definition: mini_d3d12.h:2939
@ D3D12_ROOT_SIGNATURE_FLAG_NONE
Definition: mini_d3d12.h:2932
@ D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT
Definition: mini_d3d12.h:2933
@ D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS
Definition: mini_d3d12.h:2937
@ D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS
Definition: mini_d3d12.h:2934
@ D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS
Definition: mini_d3d12.h:2938
@ D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS
Definition: mini_d3d12.h:2936
struct _SECURITY_ATTRIBUTES * LPSECURITY_ATTRIBUTES
short SHORT
Definition: mini_d3d12.h:167
LONG_PTR * PSSIZE_T
Definition: mini_d3d12.h:260
#define _Inout_updates_bytes_(size)
Definition: mini_d3d12.h:121
_W64 UINT32 * PUINT_PTR
Definition: mini_d3d12.h:251
#define WINAPI
Definition: mini_d3d12.h:163
D3D12_UAV_DIMENSION
Definition: mini_d3d12.h:2478
@ D3D12_UAV_DIMENSION_UNKNOWN
Definition: mini_d3d12.h:2479
@ D3D12_UAV_DIMENSION_TEXTURE2D
Definition: mini_d3d12.h:2483
@ D3D12_UAV_DIMENSION_TEXTURE1DARRAY
Definition: mini_d3d12.h:2482
@ D3D12_UAV_DIMENSION_TEXTURE3D
Definition: mini_d3d12.h:2485
@ D3D12_UAV_DIMENSION_TEXTURE2DARRAY
Definition: mini_d3d12.h:2484
@ D3D12_UAV_DIMENSION_TEXTURE1D
Definition: mini_d3d12.h:2481
@ D3D12_UAV_DIMENSION_BUFFER
Definition: mini_d3d12.h:2480
union _LARGE_INTEGER LARGE_INTEGER
D3D12_HEAP_FLAGS
Definition: mini_d3d12.h:2189
@ D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH
Definition: mini_d3d12.h:2198
@ D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES
Definition: mini_d3d12.h:2196
@ D3D12_HEAP_FLAG_ALLOW_DISPLAY
Definition: mini_d3d12.h:2193
@ D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES
Definition: mini_d3d12.h:2195
@ D3D12_HEAP_FLAG_HARDWARE_PROTECTED
Definition: mini_d3d12.h:2197
@ D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES
Definition: mini_d3d12.h:2202
@ D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS
Definition: mini_d3d12.h:2200
@ D3D12_HEAP_FLAG_SHARED
Definition: mini_d3d12.h:2191
@ D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER
Definition: mini_d3d12.h:2194
@ D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES
Definition: mini_d3d12.h:2199
@ D3D12_HEAP_FLAG_NONE
Definition: mini_d3d12.h:2190
@ D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES
Definition: mini_d3d12.h:2201
@ D3D12_HEAP_FLAG_DENY_BUFFERS
Definition: mini_d3d12.h:2192
D3D12_DSV_FLAGS
Definition: mini_d3d12.h:2599
@ D3D12_DSV_FLAG_NONE
Definition: mini_d3d12.h:2600
@ D3D12_DSV_FLAG_READ_ONLY_STENCIL
Definition: mini_d3d12.h:2602
@ D3D12_DSV_FLAG_READ_ONLY_DEPTH
Definition: mini_d3d12.h:2601
interface ID3D12CommandSignature ID3D12CommandSignature
Definition: mini_d3d12.h:1377
#define _Out_
Definition: mini_d3d12.h:41
#define WINBASEAPI
Definition: mini_d3d12.h:6827
#define _In_reads_opt_(size)
Definition: mini_d3d12.h:93
interface ID3D12Debug ID3D12Debug
Definition: mini_d3d12.h:5811
struct ID3D12RootSignatureVtbl ID3D12RootSignatureVtbl
struct ID3D12CommandQueueVtbl ID3D12CommandQueueVtbl
struct D3D12_TILED_RESOURCE_COORDINATE D3D12_TILED_RESOURCE_COORDINATE
D3D12_DESCRIPTOR_RANGE_FLAGS
Definition: mini_d3d12.h:3031
@ D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC
Definition: mini_d3d12.h:3036
@ D3D12_DESCRIPTOR_RANGE_FLAG_NONE
Definition: mini_d3d12.h:3032
@ D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE
Definition: mini_d3d12.h:3035
@ D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE
Definition: mini_d3d12.h:3034
@ D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE
Definition: mini_d3d12.h:3033
D3D12_FILTER
Definition: mini_d3d12.h:2630
@ D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR
Definition: mini_d3d12.h:2634
@ D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR
Definition: mini_d3d12.h:2647
@ D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR
Definition: mini_d3d12.h:2645
@ D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT
Definition: mini_d3d12.h:2640
@ D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT
Definition: mini_d3d12.h:2660
@ D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR
Definition: mini_d3d12.h:2650
@ D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR
Definition: mini_d3d12.h:2654
@ D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT
Definition: mini_d3d12.h:2635
@ D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT
Definition: mini_d3d12.h:2653
@ D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT
Definition: mini_d3d12.h:2649
@ D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT
Definition: mini_d3d12.h:2644
@ D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR
Definition: mini_d3d12.h:2643
@ D3D12_FILTER_MINIMUM_ANISOTROPIC
Definition: mini_d3d12.h:2657
@ D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR
Definition: mini_d3d12.h:2632
@ D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT
Definition: mini_d3d12.h:2651
@ D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT
Definition: mini_d3d12.h:2642
@ D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT
Definition: mini_d3d12.h:2658
@ D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR
Definition: mini_d3d12.h:2641
@ D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR
Definition: mini_d3d12.h:2636
@ D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR
Definition: mini_d3d12.h:2661
@ D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR
Definition: mini_d3d12.h:2652
@ D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR
Definition: mini_d3d12.h:2659
@ D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT
Definition: mini_d3d12.h:2662
@ D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR
Definition: mini_d3d12.h:2663
@ D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR
Definition: mini_d3d12.h:2665
@ D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT
Definition: mini_d3d12.h:2664
@ D3D12_FILTER_COMPARISON_ANISOTROPIC
Definition: mini_d3d12.h:2648
@ D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR
Definition: mini_d3d12.h:2656
@ D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT
Definition: mini_d3d12.h:2646
@ D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT
Definition: mini_d3d12.h:2637
@ D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT
Definition: mini_d3d12.h:2633
@ D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT
Definition: mini_d3d12.h:2655
@ D3D12_FILTER_MAXIMUM_ANISOTROPIC
Definition: mini_d3d12.h:2666
@ D3D12_FILTER_ANISOTROPIC
Definition: mini_d3d12.h:2639
@ D3D12_FILTER_MIN_MAG_MIP_POINT
Definition: mini_d3d12.h:2631
@ D3D12_FILTER_MIN_MAG_MIP_LINEAR
Definition: mini_d3d12.h:2638
#define _COM_Outptr_
Definition: mini_d3d12.h:57
CHAR INT8
Definition: mini_d3d12.h:220
struct D3D12_TEX2D_ARRAY_SRV D3D12_TEX2D_ARRAY_SRV
struct D3D12_CACHED_PIPELINE_STATE D3D12_CACHED_PIPELINE_STATE
struct D3D12_TEX1D_ARRAY_UAV D3D12_TEX1D_ARRAY_UAV
DXGI_ADAPTER_FLAG
Definition: mini_d3d12.h:5945
@ DXGI_ADAPTER_FLAG_REMOTE
Definition: mini_d3d12.h:5947
@ DXGI_ADAPTER_FLAG_SOFTWARE
Definition: mini_d3d12.h:5948
@ DXGI_ADAPTER_FLAG_FORCE_DWORD
Definition: mini_d3d12.h:5949
@ DXGI_ADAPTER_FLAG_NONE
Definition: mini_d3d12.h:5946
struct _RPC_MESSAGE RPC_MESSAGE
struct IUnknownVtbl IUnknownVtbl
#define _In_
Definition: mini_d3d12.h:29
interface ID3D12PipelineLibrary ID3D12PipelineLibrary
Definition: mini_d3d12.h:1413
void * HANDLE
Definition: mini_d3d12.h:426
struct D3D12_TILE_REGION_SIZE D3D12_TILE_REGION_SIZE
interface ID3D12Device1 ID3D12Device1
Definition: mini_d3d12.h:1425
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:6781
D3D12_CPU_PAGE_PROPERTY
Definition: mini_d3d12.h:2161
@ D3D12_CPU_PAGE_PROPERTY_UNKNOWN
Definition: mini_d3d12.h:2162
@ D3D12_CPU_PAGE_PROPERTY_WRITE_BACK
Definition: mini_d3d12.h:2165
@ D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE
Definition: mini_d3d12.h:2164
@ D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE
Definition: mini_d3d12.h:2163
#define _In_reads_bytes_opt_(size)
Definition: mini_d3d12.h:101
D3D12_TEXTURE_LAYOUT
Definition: mini_d3d12.h:2130
@ D3D12_TEXTURE_LAYOUT_UNKNOWN
Definition: mini_d3d12.h:2131
@ D3D12_TEXTURE_LAYOUT_ROW_MAJOR
Definition: mini_d3d12.h:2132
@ D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE
Definition: mini_d3d12.h:2134
@ D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE
Definition: mini_d3d12.h:2133
_W64 INT32 LONG_PTR
Definition: mini_d3d12.h:253
interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer
Definition: mini_d3d12.h:1323
EXTERN_C const IID IID_ID3D12CommandList
Definition: mini_d3d12.h:3419
struct D3D12_VERTEX_BUFFER_VIEW D3D12_VERTEX_BUFFER_VIEW
wchar_t WCHAR
Definition: mini_d3d12.h:198
interface IUnknown IUnknown
Definition: mini_d3d12.h:748
unsigned __int64 UINT64
Definition: mini_d3d12.h:231
D3D12_SRV_DIMENSION
Definition: mini_d3d12.h:2389
@ D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY
Definition: mini_d3d12.h:2397
@ D3D12_SRV_DIMENSION_TEXTURECUBE
Definition: mini_d3d12.h:2399
@ D3D12_SRV_DIMENSION_TEXTURE3D
Definition: mini_d3d12.h:2398
@ D3D12_SRV_DIMENSION_TEXTURECUBEARRAY
Definition: mini_d3d12.h:2400
@ D3D12_SRV_DIMENSION_TEXTURE2DARRAY
Definition: mini_d3d12.h:2395
@ D3D12_SRV_DIMENSION_TEXTURE2DMS
Definition: mini_d3d12.h:2396
@ D3D12_SRV_DIMENSION_BUFFER
Definition: mini_d3d12.h:2391
@ D3D12_SRV_DIMENSION_TEXTURE1D
Definition: mini_d3d12.h:2392
@ D3D12_SRV_DIMENSION_TEXTURE2D
Definition: mini_d3d12.h:2394
@ D3D12_SRV_DIMENSION_TEXTURE1DARRAY
Definition: mini_d3d12.h:2393
@ D3D12_SRV_DIMENSION_UNKNOWN
Definition: mini_d3d12.h:2390
struct D3D12_DEPTH_STENCILOP_DESC D3D12_DEPTH_STENCILOP_DESC
D3D12_STENCIL_OP
Definition: mini_d3d12.h:2011
@ D3D12_STENCIL_OP_KEEP
Definition: mini_d3d12.h:2012
@ D3D12_STENCIL_OP_INVERT
Definition: mini_d3d12.h:2017
@ D3D12_STENCIL_OP_REPLACE
Definition: mini_d3d12.h:2014
@ D3D12_STENCIL_OP_ZERO
Definition: mini_d3d12.h:2013
@ D3D12_STENCIL_OP_INCR_SAT
Definition: mini_d3d12.h:2015
@ D3D12_STENCIL_OP_DECR
Definition: mini_d3d12.h:2019
@ D3D12_STENCIL_OP_INCR
Definition: mini_d3d12.h:2018
@ D3D12_STENCIL_OP_DECR_SAT
Definition: mini_d3d12.h:2016
#define _In_opt_
Definition: mini_d3d12.h:37
struct IDXGIFactory1Vtbl IDXGIFactory1Vtbl
EXTERN_C const IID IID_ID3D12Device
Definition: mini_d3d12.h:4616
EXTERN_C const IID IID_ID3D12QueryHeap
Definition: mini_d3d12.h:5669
IID * LPIID
Definition: mini_d3d12.h:474
ID3D10Blob ID3DBlob
Definition: mini_d3d12.h:1289
struct IDXGIAdapter1Vtbl IDXGIAdapter1Vtbl
EXTERN_C const IID IID_IDXGIAdapter1
Definition: mini_d3d12.h:6619
D3D12_INDIRECT_ARGUMENT_TYPE
Definition: mini_d3d12.h:2732
@ D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW
Definition: mini_d3d12.h:2736
@ D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW
Definition: mini_d3d12.h:2740
@ D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH
Definition: mini_d3d12.h:2735
@ D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW
Definition: mini_d3d12.h:2737
@ D3D12_INDIRECT_ARGUMENT_TYPE_DRAW
Definition: mini_d3d12.h:2733
@ D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW
Definition: mini_d3d12.h:2741
@ D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT
Definition: mini_d3d12.h:2738
@ D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED
Definition: mini_d3d12.h:2734
@ D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW
Definition: mini_d3d12.h:2739
#define D3D12_REQ_SUBRESOURCES
Definition: mini_d3d12.h:4608
D3D12_BLEND_OP
Definition: mini_d3d12.h:1919
@ D3D12_BLEND_OP_MAX
Definition: mini_d3d12.h:1924
@ D3D12_BLEND_OP_SUBTRACT
Definition: mini_d3d12.h:1921
@ D3D12_BLEND_OP_MIN
Definition: mini_d3d12.h:1923
@ D3D12_BLEND_OP_REV_SUBTRACT
Definition: mini_d3d12.h:1922
@ D3D12_BLEND_OP_ADD
Definition: mini_d3d12.h:1920
struct D3D12_TEX2D_ARRAY_UAV D3D12_TEX2D_ARRAY_UAV
struct DXGI_ADAPTER_DESC1 DXGI_ADAPTER_DESC1
_In_ _COM_Outptr_opt_ void **typedef _In_ D3D_ROOT_SIGNATURE_VERSION _Out_ ID3DBlob ** ppBlob
Definition: mini_d3d12.h:5774
struct ID3D12PipelineStateVtbl ID3D12PipelineStateVtbl
#define EXTERN_C
Definition: mini_d3d12.h:327
struct D3D12_DEPTH_STENCIL_VIEW_DESC D3D12_DEPTH_STENCIL_VIEW_DESC
struct D3D12_TEX1D_DSV D3D12_TEX1D_DSV
struct D3D12_STREAM_OUTPUT_BUFFER_VIEW D3D12_STREAM_OUTPUT_BUFFER_VIEW
D3D12_ROOT_PARAMETER_TYPE
Definition: mini_d3d12.h:2942
@ D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE
Definition: mini_d3d12.h:2943
@ D3D12_ROOT_PARAMETER_TYPE_SRV
Definition: mini_d3d12.h:2946
@ D3D12_ROOT_PARAMETER_TYPE_UAV
Definition: mini_d3d12.h:2947
@ D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS
Definition: mini_d3d12.h:2944
@ D3D12_ROOT_PARAMETER_TYPE_CBV
Definition: mini_d3d12.h:2945
struct D3D12_INPUT_ELEMENT_DESC D3D12_INPUT_ELEMENT_DESC
struct D3D12_STREAM_OUTPUT_DESC D3D12_STREAM_OUTPUT_DESC
struct D3D12_STATIC_SAMPLER_DESC D3D12_STATIC_SAMPLER_DESC
struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC D3D12_VERSIONED_ROOT_SIGNATURE_DESC
struct ID3D12CommandAllocatorVtbl ID3D12CommandAllocatorVtbl
_Null_terminated_ CONST WCHAR * LPCWSTR
Definition: mini_d3d12.h:206
struct D3D12_RESOURCE_BARRIER D3D12_RESOURCE_BARRIER
D3D12_QUERY_HEAP_TYPE
Definition: mini_d3d12.h:2719
@ D3D12_QUERY_HEAP_TYPE_TIMESTAMP
Definition: mini_d3d12.h:2721
@ D3D12_QUERY_HEAP_TYPE_SO_STATISTICS
Definition: mini_d3d12.h:2723
@ D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS
Definition: mini_d3d12.h:2722
@ D3D12_QUERY_HEAP_TYPE_OCCLUSION
Definition: mini_d3d12.h:2720
struct DXGI_SWAP_CHAIN_DESC DXGI_SWAP_CHAIN_DESC
Definition: mini_d3d12.h:5965
struct D3D12_RENDER_TARGET_BLEND_DESC D3D12_RENDER_TARGET_BLEND_DESC
struct D3D12_DEPTH_STENCIL_DESC D3D12_DEPTH_STENCIL_DESC
struct D3D12_TEX2D_ARRAY_RTV D3D12_TEX2D_ARRAY_RTV
LPCSTR LPCOLESTR
Definition: mini_d3d12.h:941
interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer
Definition: mini_d3d12.h:1317
interface ID3D12Fence ID3D12Fence
Definition: mini_d3d12.h:1353
struct D3D12_SUBRESOURCE_TILING D3D12_SUBRESOURCE_TILING
#define PURE
Definition: mini_d3d12.h:713
D3D12_RESOURCE_BARRIER_TYPE
Definition: mini_d3d12.h:2879
@ D3D12_RESOURCE_BARRIER_TYPE_UAV
Definition: mini_d3d12.h:2882
@ D3D12_RESOURCE_BARRIER_TYPE_TRANSITION
Definition: mini_d3d12.h:2880
@ D3D12_RESOURCE_BARRIER_TYPE_ALIASING
Definition: mini_d3d12.h:2881
ID3DBlob * LPD3DBLOB
Definition: mini_d3d12.h:1291
enum _D3D_INCLUDE_TYPE D3D_INCLUDE_TYPE
struct D3D12_TEX2DMS_DSV D3D12_TEX2DMS_DSV
interface IDXGIObject IDXGIObject
Definition: mini_d3d12.h:5893
struct D3D12_TEXTURE_COPY_LOCATION D3D12_TEXTURE_COPY_LOCATION
interface ID3D10Blob * LPD3D10BLOB
Definition: mini_d3d12.h:1265
struct D3D12_TEX2DMS_RTV D3D12_TEX2DMS_RTV
struct D3D12_BUFFER_SRV D3D12_BUFFER_SRV
struct D3D12_BUFFER_UAV D3D12_BUFFER_UAV
unsigned long DWORD
Definition: mini_d3d12.h:182
EXTERN_C const IID IID_IDXGIFactory1
Definition: mini_d3d12.h:6439
unsigned __int64 * PUINT64
Definition: mini_d3d12.h:231
D3D12_TILE_COPY_FLAGS
Definition: mini_d3d12.h:2211
@ D3D12_TILE_COPY_FLAG_NONE
Definition: mini_d3d12.h:2212
@ D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER
Definition: mini_d3d12.h:2215
@ D3D12_TILE_COPY_FLAG_NO_HAZARD
Definition: mini_d3d12.h:2213
@ D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE
Definition: mini_d3d12.h:2214
#define BEGIN_INTERFACE
Definition: mini_d3d12.h:597
D3D12_DESCRIPTOR_HEAP_TYPE
Definition: mini_d3d12.h:2283
@ D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV
Definition: mini_d3d12.h:2284
@ D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES
Definition: mini_d3d12.h:2288
@ D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER
Definition: mini_d3d12.h:2285
@ D3D12_DESCRIPTOR_HEAP_TYPE_RTV
Definition: mini_d3d12.h:2286
@ D3D12_DESCRIPTOR_HEAP_TYPE_DSV
Definition: mini_d3d12.h:2287
interface ID3D12Tools ID3D12Tools
Definition: mini_d3d12.h:1437
__int64 * PINT64
Definition: mini_d3d12.h:230
SHORT * PINT16
Definition: mini_d3d12.h:221
struct ID3D12DescriptorHeapVtbl ID3D12DescriptorHeapVtbl
struct _D3D_SHADER_MACRO D3D_SHADER_MACRO
CONST void far * LPCVOID
Definition: mini_d3d12.h:189
D3D12_COMPARISON_FUNC
Definition: mini_d3d12.h:2000
@ D3D12_COMPARISON_FUNC_GREATER_EQUAL
Definition: mini_d3d12.h:2007
@ D3D12_COMPARISON_FUNC_ALWAYS
Definition: mini_d3d12.h:2008
@ D3D12_COMPARISON_FUNC_NOT_EQUAL
Definition: mini_d3d12.h:2006
@ D3D12_COMPARISON_FUNC_LESS_EQUAL
Definition: mini_d3d12.h:2004
@ D3D12_COMPARISON_FUNC_LESS
Definition: mini_d3d12.h:2002
@ D3D12_COMPARISON_FUNC_NEVER
Definition: mini_d3d12.h:2001
@ D3D12_COMPARISON_FUNC_EQUAL
Definition: mini_d3d12.h:2003
@ D3D12_COMPARISON_FUNC_GREATER
Definition: mini_d3d12.h:2005
D3D12_SHADER_VISIBILITY
Definition: mini_d3d12.h:2981
@ D3D12_SHADER_VISIBILITY_DOMAIN
Definition: mini_d3d12.h:2985
@ D3D12_SHADER_VISIBILITY_ALL
Definition: mini_d3d12.h:2982
@ D3D12_SHADER_VISIBILITY_GEOMETRY
Definition: mini_d3d12.h:2986
@ D3D12_SHADER_VISIBILITY_VERTEX
Definition: mini_d3d12.h:2983
@ D3D12_SHADER_VISIBILITY_HULL
Definition: mini_d3d12.h:2984
@ D3D12_SHADER_VISIBILITY_PIXEL
Definition: mini_d3d12.h:2987
UINT UINT32
Definition: mini_d3d12.h:225
struct D3D12_RANGE D3D12_RANGE
struct __LUID * PLUID
Definition: mini_d3d12.h:4603
struct D3D12_TEX2D_ARRAY_DSV D3D12_TEX2D_ARRAY_DSV
interface IRpcStubBuffer IRpcStubBuffer
Definition: mini_d3d12.h:742
struct _GUID GUID
D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY
Definition: mini_d3d12.h:2835
D3D12_INDEX_BUFFER_STRIP_CUT_VALUE
Definition: mini_d3d12.h:2065
@ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED
Definition: mini_d3d12.h:2066
@ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF
Definition: mini_d3d12.h:2067
@ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF
Definition: mini_d3d12.h:2068
#define _Post_equal_to_(e)
Definition: mini_d3d12.h:77
struct D3D12_TEX1D_UAV D3D12_TEX1D_UAV
struct D3D12_TILE_SHAPE D3D12_TILE_SHAPE
struct D3D12_COMMAND_QUEUE_DESC D3D12_COMMAND_QUEUE_DESC
struct D3D12_RASTERIZER_DESC D3D12_RASTERIZER_DESC
struct ID3D10BlobVtbl ID3D10BlobVtbl
struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT D3D12_PLACED_SUBRESOURCE_FOOTPRINT
struct D3D12_HEAP_DESC D3D12_HEAP_DESC
HINSTANCE HMODULE
Definition: mini_d3d12.h:456
struct tagRECT * PRECT
D3D12_BLEND
Definition: mini_d3d12.h:1899
@ D3D12_BLEND_INV_SRC_COLOR
Definition: mini_d3d12.h:1903
@ D3D12_BLEND_DEST_COLOR
Definition: mini_d3d12.h:1908
@ D3D12_BLEND_INV_SRC1_ALPHA
Definition: mini_d3d12.h:1916
@ D3D12_BLEND_INV_BLEND_FACTOR
Definition: mini_d3d12.h:1912
@ D3D12_BLEND_BLEND_FACTOR
Definition: mini_d3d12.h:1911
@ D3D12_BLEND_SRC1_COLOR
Definition: mini_d3d12.h:1913
@ D3D12_BLEND_DEST_ALPHA
Definition: mini_d3d12.h:1906
@ D3D12_BLEND_INV_DEST_COLOR
Definition: mini_d3d12.h:1909
@ D3D12_BLEND_INV_SRC1_COLOR
Definition: mini_d3d12.h:1914
@ D3D12_BLEND_SRC_COLOR
Definition: mini_d3d12.h:1902
@ D3D12_BLEND_SRC_ALPHA
Definition: mini_d3d12.h:1904
@ D3D12_BLEND_ONE
Definition: mini_d3d12.h:1901
@ D3D12_BLEND_INV_DEST_ALPHA
Definition: mini_d3d12.h:1907
@ D3D12_BLEND_INV_SRC_ALPHA
Definition: mini_d3d12.h:1905
@ D3D12_BLEND_SRC_ALPHA_SAT
Definition: mini_d3d12.h:1910
@ D3D12_BLEND_ZERO
Definition: mini_d3d12.h:1900
@ D3D12_BLEND_SRC1_ALPHA
Definition: mini_d3d12.h:1915
WINBASEAPI DWORD WINAPI WaitForSingleObject(_In_ HANDLE hHandle, _In_ DWORD dwMilliseconds)
void * I_RPC_HANDLE
Definition: mini_d3d12.h:531
char CHAR
Definition: mini_d3d12.h:166
struct D3D12_CONSTANT_BUFFER_VIEW_DESC D3D12_CONSTANT_BUFFER_VIEW_DESC
struct D3D12_ROOT_PARAMETER1 D3D12_ROOT_PARAMETER1
#define DECLARE_HANDLE(name)
Definition: mini_d3d12.h:432
#define _In_range_(lb, ub)
Definition: mini_d3d12.h:85
struct ID3D12QueryHeapVtbl ID3D12QueryHeapVtbl
#define STDMETHOD(method)
Definition: mini_d3d12.h:692
D3D12_ROOT_DESCRIPTOR_FLAGS
Definition: mini_d3d12.h:3054
@ D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE
Definition: mini_d3d12.h:3057
@ D3D12_ROOT_DESCRIPTOR_FLAG_NONE
Definition: mini_d3d12.h:3055
@ D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC
Definition: mini_d3d12.h:3058
@ D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE
Definition: mini_d3d12.h:3056
#define FAR
Definition: mini_d3d12.h:208
WINBASEAPI BOOL WINAPI CloseHandle(_In_ _Post_ptr_invalid_ HANDLE hObject)
struct ID3D12DeviceChildVtbl ID3D12DeviceChildVtbl
struct ID3D12DeviceVtbl ID3D12DeviceVtbl
interface ID3D12RootSignature ID3D12RootSignature
Definition: mini_d3d12.h:1311
D3D_PRIMITIVE_TOPOLOGY
Definition: mini_d3d12.h:962
@ D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ
Definition: mini_d3d12.h:1011
@ D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1042
@ D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP
Definition: mini_d3d12.h:1018
@ D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1054
@ D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1001
@ D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP
Definition: mini_d3d12.h:1008
@ D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1055
@ D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1053
@ D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1056
@ D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1047
@ D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:987
@ D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:994
@ D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1003
@ D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1025
@ D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST
Definition: mini_d3d12.h:967
@ D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ
Definition: mini_d3d12.h:1021
@ D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:976
@ D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ
Definition: mini_d3d12.h:1022
@ D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:986
@ D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:988
@ D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED
Definition: mini_d3d12.h:1005
@ D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:977
@ D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ
Definition: mini_d3d12.h:1012
@ D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:978
@ D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1041
@ D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:993
@ D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED
Definition: mini_d3d12.h:1015
@ D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ
Definition: mini_d3d12.h:969
@ D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST
Definition: mini_d3d12.h:1019
@ D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:980
@ D3D10_PRIMITIVE_TOPOLOGY_POINTLIST
Definition: mini_d3d12.h:1006
@ D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP
Definition: mini_d3d12.h:968
@ D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:983
@ D3D11_PRIMITIVE_TOPOLOGY_POINTLIST
Definition: mini_d3d12.h:1016
@ D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1002
@ D3D_PRIMITIVE_TOPOLOGY_UNDEFINED
Definition: mini_d3d12.h:963
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ
Definition: mini_d3d12.h:1014
@ D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP
Definition: mini_d3d12.h:1020
@ D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:974
@ D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:975
@ D3D10_PRIMITIVE_TOPOLOGY_LINELIST
Definition: mini_d3d12.h:1007
@ D3D11_PRIMITIVE_TOPOLOGY_LINELIST
Definition: mini_d3d12.h:1017
@ D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:996
@ D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:984
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST
Definition: mini_d3d12.h:1009
@ D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1037
@ D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:981
@ D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1048
@ D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1029
@ D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1044
@ D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:998
@ D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:991
@ D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1049
@ D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1046
@ D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1032
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP
Definition: mini_d3d12.h:1010
@ D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ
Definition: mini_d3d12.h:972
@ D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1026
@ D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1027
@ D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:992
@ D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:999
@ D3D_PRIMITIVE_TOPOLOGY_LINESTRIP
Definition: mini_d3d12.h:966
@ D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1035
@ D3D_PRIMITIVE_TOPOLOGY_LINELIST
Definition: mini_d3d12.h:965
@ D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:989
@ D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:982
@ D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1045
@ D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ
Definition: mini_d3d12.h:971
@ D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1036
@ D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1043
@ D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1004
@ D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1050
@ D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1000
@ D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ
Definition: mini_d3d12.h:1023
@ D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ
Definition: mini_d3d12.h:970
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ
Definition: mini_d3d12.h:1013
@ D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1031
@ D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ
Definition: mini_d3d12.h:1024
@ D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1033
@ D3D_PRIMITIVE_TOPOLOGY_POINTLIST
Definition: mini_d3d12.h:964
@ D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1052
@ D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:995
@ D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:973
@ D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1028
@ D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1034
@ D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1030
@ D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1038
@ D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:985
@ D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:979
@ D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1040
@ D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1039
@ D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:1051
@ D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:997
@ D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST
Definition: mini_d3d12.h:990
interface IRpcChannelBuffer IRpcChannelBuffer
Definition: mini_d3d12.h:743
struct tagRECT * NPRECT
struct D3D12_ROOT_CONSTANTS D3D12_ROOT_CONSTANTS
#define _Out_writes_bytes_opt_(size)
Definition: mini_d3d12.h:117
struct _RPC_SYNTAX_IDENTIFIER RPC_SYNTAX_IDENTIFIER
interface ID3D12PipelineState ID3D12PipelineState
Definition: mini_d3d12.h:1359
unsigned long ULONG
Definition: mini_d3d12.h:180
D3D12_HEAP_TYPE
Definition: mini_d3d12.h:2174
@ D3D12_HEAP_TYPE_DEFAULT
Definition: mini_d3d12.h:2175
@ D3D12_HEAP_TYPE_READBACK
Definition: mini_d3d12.h:2177
@ D3D12_HEAP_TYPE_UPLOAD
Definition: mini_d3d12.h:2176
@ D3D12_HEAP_TYPE_CUSTOM
Definition: mini_d3d12.h:2178
struct ID3D12DebugVtbl ID3D12DebugVtbl
#define _In_reads_(size)
Definition: mini_d3d12.h:89
D3D12_FENCE_FLAGS
Definition: mini_d3d12.h:2276
@ D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER
Definition: mini_d3d12.h:2279
@ D3D12_FENCE_FLAG_NONE
Definition: mini_d3d12.h:2277
@ D3D12_FENCE_FLAG_SHARED
Definition: mini_d3d12.h:2278
ULONG_PTR SIZE_T
Definition: mini_d3d12.h:259
EXTERN_C const IID IID_IDXGIFactory
Definition: mini_d3d12.h:6105
interface ID3D12CommandQueue ID3D12CommandQueue
Definition: mini_d3d12.h:1401
INT INT32
Definition: mini_d3d12.h:222
D3D12_PIPELINE_STATE_FLAGS
Definition: mini_d3d12.h:2060
@ D3D12_PIPELINE_STATE_FLAG_NONE
Definition: mini_d3d12.h:2061
@ D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG
Definition: mini_d3d12.h:2062
D3D12_COMMAND_QUEUE_FLAGS
Definition: mini_d3d12.h:1858
@ D3D12_COMMAND_QUEUE_FLAG_NONE
Definition: mini_d3d12.h:1859
@ D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT
Definition: mini_d3d12.h:1860
D3D12_FEATURE
Definition: mini_d3d12.h:2253
@ D3D12_FEATURE_FORMAT_SUPPORT
Definition: mini_d3d12.h:2257
@ D3D12_FEATURE_FEATURE_LEVELS
Definition: mini_d3d12.h:2256
@ D3D12_FEATURE_FORMAT_INFO
Definition: mini_d3d12.h:2259
@ D3D12_FEATURE_D3D12_OPTIONS
Definition: mini_d3d12.h:2254
@ D3D12_FEATURE_D3D12_OPTIONS2
Definition: mini_d3d12.h:2265
@ D3D12_FEATURE_SHADER_CACHE
Definition: mini_d3d12.h:2266
@ D3D12_FEATURE_SHADER_MODEL
Definition: mini_d3d12.h:2261
@ D3D12_FEATURE_ARCHITECTURE
Definition: mini_d3d12.h:2255
@ D3D12_FEATURE_COMMAND_QUEUE_PRIORITY
Definition: mini_d3d12.h:2267
@ D3D12_FEATURE_ARCHITECTURE1
Definition: mini_d3d12.h:2264
@ D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS
Definition: mini_d3d12.h:2258
@ D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT
Definition: mini_d3d12.h:2260
@ D3D12_FEATURE_ROOT_SIGNATURE
Definition: mini_d3d12.h:2263
@ D3D12_FEATURE_D3D12_OPTIONS1
Definition: mini_d3d12.h:2262
interface IDXGIOutput IDXGIOutput
Definition: mini_d3d12.h:5905
struct D3D12_ROOT_DESCRIPTOR D3D12_ROOT_DESCRIPTOR
UINT64 D3D12_GPU_VIRTUAL_ADDRESS
Definition: mini_d3d12.h:2421
struct D3D12_ROOT_SIGNATURE_DESC D3D12_ROOT_SIGNATURE_DESC
unsigned __INT64_TYPE__ uint64_t
signed __INT64_TYPE__ int64_t
signed __INT32_TYPE__ int32_t
unsigned __INT32_TYPE__ uint32_t
DWORD LowPart
Definition: mini_d3d12.h:4599
LONG HighPart
Definition: mini_d3d12.h:4600
WORD Data2
Definition: mini_d3d12.h:469
WORD Data3
Definition: mini_d3d12.h:470
DWORD Data1
Definition: mini_d3d12.h:468
BYTE Data4[8]
Definition: mini_d3d12.h:471
unsigned int BufferLength
Definition: mini_d3d12.h:565
unsigned long RpcFlags
Definition: mini_d3d12.h:572
void __RPC_FAR * ImportContext
Definition: mini_d3d12.h:571
unsigned int ProcNum
Definition: mini_d3d12.h:566
unsigned long DataRepresentation
Definition: mini_d3d12.h:563
PRPC_SYNTAX_IDENTIFIER TransferSyntax
Definition: mini_d3d12.h:567
void __RPC_FAR * Buffer
Definition: mini_d3d12.h:564
void __RPC_FAR * RpcInterfaceInformation
Definition: mini_d3d12.h:568
void __RPC_FAR * ReservedForRuntime
Definition: mini_d3d12.h:569
RPC_MGR_EPV __RPC_FAR * ManagerEpv
Definition: mini_d3d12.h:570
RPC_BINDING_HANDLE Handle
Definition: mini_d3d12.h:562
RPC_VERSION SyntaxVersion
Definition: mini_d3d12.h:558
unsigned short MajorVersion
Definition: mini_d3d12.h:552
unsigned short MinorVersion
Definition: mini_d3d12.h:553
LPVOID lpSecurityDescriptor
Definition: mini_d3d12.h:271
BOOL AlphaToCoverageEnable
Definition: mini_d3d12.h:1960
BOOL IndependentBlendEnable
Definition: mini_d3d12.h:1961
D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[8]
Definition: mini_d3d12.h:1962
UINT right
Definition: mini_d3d12.h:1846
UINT bottom
Definition: mini_d3d12.h:1847
UINT front
Definition: mini_d3d12.h:1845
UINT StructureByteStride
Definition: mini_d3d12.h:2326
D3D12_BUFFER_SRV_FLAGS Flags
Definition: mini_d3d12.h:2327
UINT StructureByteStride
Definition: mini_d3d12.h:2445
D3D12_BUFFER_UAV_FLAGS Flags
Definition: mini_d3d12.h:2447
UINT64 CounterOffsetInBytes
Definition: mini_d3d12.h:2446
_Field_size_bytes_full_(CachedBlobSizeInBytes) const void *pCachedBlob
D3D12_DEPTH_STENCIL_VALUE DepthStencil
Definition: mini_d3d12.h:2249
DXGI_FORMAT Format
Definition: mini_d3d12.h:2246
D3D12_COMMAND_QUEUE_FLAGS Flags
Definition: mini_d3d12.h:1873
D3D12_COMMAND_LIST_TYPE Type
Definition: mini_d3d12.h:1871
_Field_size_full_(NumArgumentDescs) const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs
ID3D12RootSignature * pRootSignature
Definition: mini_d3d12.h:2110
D3D12_SHADER_BYTECODE CS
Definition: mini_d3d12.h:2111
D3D12_CACHED_PIPELINE_STATE CachedPSO
Definition: mini_d3d12.h:2113
D3D12_PIPELINE_STATE_FLAGS Flags
Definition: mini_d3d12.h:2114
D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
Definition: mini_d3d12.h:2424
D3D12_DEPTH_STENCILOP_DESC FrontFace
Definition: mini_d3d12.h:2036
D3D12_DEPTH_STENCILOP_DESC BackFace
Definition: mini_d3d12.h:2037
D3D12_COMPARISON_FUNC DepthFunc
Definition: mini_d3d12.h:2032
D3D12_DEPTH_WRITE_MASK DepthWriteMask
Definition: mini_d3d12.h:2031
D3D12_TEX2DMS_DSV Texture2DMS
Definition: mini_d3d12.h:2625
D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray
Definition: mini_d3d12.h:2626
D3D12_TEX2D_ARRAY_DSV Texture2DArray
Definition: mini_d3d12.h:2624
D3D12_DSV_DIMENSION ViewDimension
Definition: mini_d3d12.h:2618
D3D12_TEX1D_ARRAY_DSV Texture1DArray
Definition: mini_d3d12.h:2622
D3D12_STENCIL_OP StencilFailOp
Definition: mini_d3d12.h:2023
D3D12_COMPARISON_FUNC StencilFunc
Definition: mini_d3d12.h:2026
D3D12_STENCIL_OP StencilDepthFailOp
Definition: mini_d3d12.h:2024
D3D12_STENCIL_OP StencilPassOp
Definition: mini_d3d12.h:2025
D3D12_DESCRIPTOR_HEAP_TYPE Type
Definition: mini_d3d12.h:2692
D3D12_DESCRIPTOR_HEAP_FLAGS Flags
Definition: mini_d3d12.h:2694
D3D12_DESCRIPTOR_RANGE_TYPE RangeType
Definition: mini_d3d12.h:3041
UINT OffsetInDescriptorsFromTableStart
Definition: mini_d3d12.h:3046
D3D12_DESCRIPTOR_RANGE_FLAGS Flags
Definition: mini_d3d12.h:3045
D3D12_DESCRIPTOR_RANGE_TYPE RangeType
Definition: mini_d3d12.h:2958
UINT OffsetInDescriptorsFromTableStart
Definition: mini_d3d12.h:2962
_In_reads_(NumRects) const D3D12_RECT *pRects
D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue
Definition: mini_d3d12.h:2098
D3D12_INPUT_LAYOUT_DESC InputLayout
Definition: mini_d3d12.h:2097
ID3D12RootSignature * pRootSignature
Definition: mini_d3d12.h:2086
D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType
Definition: mini_d3d12.h:2099
D3D12_STREAM_OUTPUT_DESC StreamOutput
Definition: mini_d3d12.h:2092
D3D12_DEPTH_STENCIL_DESC DepthStencilState
Definition: mini_d3d12.h:2096
D3D12_PIPELINE_STATE_FLAGS Flags
Definition: mini_d3d12.h:2106
D3D12_CACHED_PIPELINE_STATE CachedPSO
Definition: mini_d3d12.h:2105
D3D12_RASTERIZER_DESC RasterizerState
Definition: mini_d3d12.h:2095
D3D12_HEAP_PROPERTIES Properties
Definition: mini_d3d12.h:2701
D3D12_HEAP_FLAGS Flags
Definition: mini_d3d12.h:2703
UINT64 SizeInBytes
Definition: mini_d3d12.h:2700
D3D12_CPU_PAGE_PROPERTY CPUPageProperty
Definition: mini_d3d12.h:2183
D3D12_HEAP_TYPE Type
Definition: mini_d3d12.h:2182
D3D12_MEMORY_POOL MemoryPoolPreference
Definition: mini_d3d12.h:2184
D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
Definition: mini_d3d12.h:2840
struct D3D12_INDIRECT_ARGUMENT_DESC::@17::@19 VertexBuffer
D3D12_INDIRECT_ARGUMENT_TYPE Type
Definition: mini_d3d12.h:2745
struct D3D12_INDIRECT_ARGUMENT_DESC::@17::@22 ShaderResourceView
struct D3D12_INDIRECT_ARGUMENT_DESC::@17::@21 ConstantBufferView
struct D3D12_INDIRECT_ARGUMENT_DESC::@17::@20 Constant
struct D3D12_INDIRECT_ARGUMENT_DESC::@17::@23 UnorderedAccessView
D3D12_INPUT_CLASSIFICATION InputSlotClass
Definition: mini_d3d12.h:2051
_Field_size_full_(NumElements) const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs
UINT StartTileIndexInOverallResource
Definition: mini_d3d12.h:2783
D3D12_SUBRESOURCE_FOOTPRINT Footprint
Definition: mini_d3d12.h:2716
D3D12_QUERY_HEAP_TYPE Type
Definition: mini_d3d12.h:2727
SIZE_T End
Definition: mini_d3d12.h:1839
SIZE_T Begin
Definition: mini_d3d12.h:1838
D3D12_FILL_MODE FillMode
Definition: mini_d3d12.h:1982
D3D12_CULL_MODE CullMode
Definition: mini_d3d12.h:1983
D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster
Definition: mini_d3d12.h:1992
D3D12_TEX1D_ARRAY_RTV Texture1DArray
Definition: mini_d3d12.h:2561
D3D12_TEX2DMS_RTV Texture2DMS
Definition: mini_d3d12.h:2564
D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray
Definition: mini_d3d12.h:2565
D3D12_RTV_DIMENSION ViewDimension
Definition: mini_d3d12.h:2557
D3D12_TEX2D_ARRAY_RTV Texture2DArray
Definition: mini_d3d12.h:2563
ID3D12Resource * pResourceAfter
Definition: mini_d3d12.h:2865
ID3D12Resource * pResourceBefore
Definition: mini_d3d12.h:2864
D3D12_RESOURCE_BARRIER_FLAGS Flags
Definition: mini_d3d12.h:2888
D3D12_RESOURCE_BARRIER_TYPE Type
Definition: mini_d3d12.h:2887
D3D12_RESOURCE_UAV_BARRIER UAV
Definition: mini_d3d12.h:2892
D3D12_RESOURCE_TRANSITION_BARRIER Transition
Definition: mini_d3d12.h:2890
D3D12_RESOURCE_ALIASING_BARRIER Aliasing
Definition: mini_d3d12.h:2891
D3D12_RESOURCE_DIMENSION Dimension
Definition: mini_d3d12.h:2149
D3D12_TEXTURE_LAYOUT Layout
Definition: mini_d3d12.h:2157
DXGI_SAMPLE_DESC SampleDesc
Definition: mini_d3d12.h:2156
D3D12_RESOURCE_FLAGS Flags
Definition: mini_d3d12.h:2158
DXGI_FORMAT Format
Definition: mini_d3d12.h:2155
D3D12_RESOURCE_STATES StateBefore
Definition: mini_d3d12.h:2859
D3D12_RESOURCE_STATES StateAfter
Definition: mini_d3d12.h:2860
ID3D12Resource * pResource
Definition: mini_d3d12.h:2869
D3D12_ROOT_DESCRIPTOR_FLAGS Flags
Definition: mini_d3d12.h:3065
_Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges
_Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges
D3D12_SHADER_VISIBILITY ShaderVisibility
Definition: mini_d3d12.h:3075
D3D12_ROOT_DESCRIPTOR1 Descriptor
Definition: mini_d3d12.h:3073
D3D12_ROOT_CONSTANTS Constants
Definition: mini_d3d12.h:3072
D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable
Definition: mini_d3d12.h:3071
D3D12_ROOT_PARAMETER_TYPE ParameterType
Definition: mini_d3d12.h:3069
D3D12_ROOT_CONSTANTS Constants
Definition: mini_d3d12.h:2994
D3D12_SHADER_VISIBILITY ShaderVisibility
Definition: mini_d3d12.h:2997
D3D12_ROOT_PARAMETER_TYPE ParameterType
Definition: mini_d3d12.h:2991
D3D12_ROOT_DESCRIPTOR Descriptor
Definition: mini_d3d12.h:2995
D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable
Definition: mini_d3d12.h:2993
_Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters
_Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers
D3D12_ROOT_SIGNATURE_FLAGS Flags
Definition: mini_d3d12.h:3083
_Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers
_Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER *pParameters
D3D12_ROOT_SIGNATURE_FLAGS Flags
Definition: mini_d3d12.h:3028
D3D12_COMPARISON_FUNC ComparisonFunc
Definition: mini_d3d12.h:2684
D3D12_TEXTURE_ADDRESS_MODE AddressV
Definition: mini_d3d12.h:2680
D3D12_FILTER Filter
Definition: mini_d3d12.h:2678
FLOAT BorderColor[4]
Definition: mini_d3d12.h:2685
D3D12_TEXTURE_ADDRESS_MODE AddressU
Definition: mini_d3d12.h:2679
D3D12_TEXTURE_ADDRESS_MODE AddressW
Definition: mini_d3d12.h:2681
_Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode
D3D12_SRV_DIMENSION ViewDimension
Definition: mini_d3d12.h:2405
D3D12_TEXCUBE_SRV TextureCube
Definition: mini_d3d12.h:2416
D3D12_TEX1D_ARRAY_SRV Texture1DArray
Definition: mini_d3d12.h:2410
D3D12_TEX2DMS_SRV Texture2DMS
Definition: mini_d3d12.h:2413
D3D12_TEX2D_ARRAY_SRV Texture2DArray
Definition: mini_d3d12.h:2412
D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray
Definition: mini_d3d12.h:2417
D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray
Definition: mini_d3d12.h:2414
D3D12_TEXTURE_ADDRESS_MODE AddressW
Definition: mini_d3d12.h:3011
D3D12_TEXTURE_ADDRESS_MODE AddressU
Definition: mini_d3d12.h:3009
D3D12_SHADER_VISIBILITY ShaderVisibility
Definition: mini_d3d12.h:3020
D3D12_TEXTURE_ADDRESS_MODE AddressV
Definition: mini_d3d12.h:3010
D3D12_STATIC_BORDER_COLOR BorderColor
Definition: mini_d3d12.h:3015
D3D12_COMPARISON_FUNC ComparisonFunc
Definition: mini_d3d12.h:3014
D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation
Definition: mini_d3d12.h:2905
D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
Definition: mini_d3d12.h:2903
_Field_size_full_(NumEntries) const D3D12_SO_DECLARATION_ENTRY *pSODeclaration
_Field_size_full_(NumStrides) const UINT *pBufferStrides
FLOAT ResourceMinLODClamp
Definition: mini_d3d12.h:2333
FLOAT ResourceMinLODClamp
Definition: mini_d3d12.h:2348
UINT UnusedField_NothingToDefine
Definition: mini_d3d12.h:2591
UINT UnusedField_NothingToDefine
Definition: mini_d3d12.h:2522
UINT UnusedField_NothingToDefine
Definition: mini_d3d12.h:2381
FLOAT ResourceMinLODClamp
Definition: mini_d3d12.h:2363
FLOAT ResourceMinLODClamp
Definition: mini_d3d12.h:2369
D3D12_TEXTURE_COPY_TYPE Type
Definition: mini_d3d12.h:2828
ID3D12Resource * pResource
Definition: mini_d3d12.h:2827
D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint
Definition: mini_d3d12.h:2830
D3D12_UAV_DIMENSION ViewDimension
Definition: mini_d3d12.h:2490
D3D12_TEX1D_ARRAY_UAV Texture1DArray
Definition: mini_d3d12.h:2494
D3D12_TEX2D_ARRAY_UAV Texture2DArray
Definition: mini_d3d12.h:2496
D3D12_ROOT_SIGNATURE_DESC Desc_1_0
Definition: mini_d3d12.h:3095
D3D_ROOT_SIGNATURE_VERSION Version
Definition: mini_d3d12.h:3093
D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1
Definition: mini_d3d12.h:3096
D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
Definition: mini_d3d12.h:2897
SIZE_T DedicatedVideoMemory
Definition: mini_d3d12.h:5958
SIZE_T SharedSystemMemory
Definition: mini_d3d12.h:5960
SIZE_T DedicatedSystemMemory
Definition: mini_d3d12.h:5959
WCHAR Description[128]
Definition: mini_d3d12.h:5953
SIZE_T DedicatedVideoMemory
Definition: mini_d3d12.h:5939
SIZE_T DedicatedSystemMemory
Definition: mini_d3d12.h:5940
WCHAR Description[128]
Definition: mini_d3d12.h:5934
SIZE_T SharedSystemMemory
Definition: mini_d3d12.h:5941
ID3D10Blob * This
Definition: mini_d3d12.h:1246
BEGIN_INTERFACE(ID3D10Blob *This, REFIID riid, _COM_Outptr_ void **ppvObject)
ID3D12CommandAllocator * This
Definition: mini_d3d12.h:3330
ID3D12CommandAllocator _In_ REFGUID guid
Definition: mini_d3d12.h:3339
ID3D12CommandAllocator REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:3365
ID3D12CommandAllocator _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:3347
ID3D12CommandAllocator _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:3340
ID3D12CommandAllocator _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:3359
ID3D12CommandAllocator _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:3354
ID3D12CommandAllocator _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
ID3D12CommandAllocator _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:3341
ID3D12CommandAllocator REFIID riid
Definition: mini_d3d12.h:3364
ID3D12CommandList REFIID riid
Definition: mini_d3d12.h:3476
ID3D12CommandList _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:3453
ID3D12CommandList _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:3466
ID3D12CommandList _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:3471
ID3D12CommandList REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:3477
ID3D12CommandList _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:3452
ID3D12CommandList _In_ REFGUID guid
Definition: mini_d3d12.h:3451
ID3D12CommandList * This
Definition: mini_d3d12.h:3442
ID3D12CommandList _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:3459
ID3D12CommandList _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
_In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE _In_ ID3D12Resource * pSrcResource
Definition: mini_d3d12.h:4471
void(STDMETHODCALLTYPE *ExecuteCommandLists)(ID3D12CommandQueue *This
_In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE _In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE * pSrcRegionStartCoordinate
Definition: mini_d3d12.h:4472
_In_ ID3D12Resource UINT _In_opt_ ID3D12Heap UINT NumRanges
Definition: mini_d3d12.h:4461
_In_ ID3D12Resource UINT _In_opt_ ID3D12Heap UINT _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags
ID3D12CommandQueue ID3D12Fence UINT64 Value
Definition: mini_d3d12.h:4500
_In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE * pDstRegionStartCoordinate
Definition: mini_d3d12.h:4470
_In_ ID3D12Resource UINT _In_opt_ ID3D12Heap UINT _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets
ID3D12CommandQueue _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:4441
_In_ ID3D12Resource * pResource
Definition: mini_d3d12.h:4456
ID3D12CommandQueue _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
ID3D12CommandQueue REFIID riid
Definition: mini_d3d12.h:4451
ID3D12CommandQueue _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:4427
void(STDMETHODCALLTYPE *BeginEvent)(ID3D12CommandQueue *This
_In_ ID3D12Resource UINT _In_opt_ ID3D12Heap UINT D3D12_TILE_MAPPING_FLAGS Flags
Definition: mini_d3d12.h:4465
_In_ UINT _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists)
ID3D12CommandQueue _Out_ UINT64 _Out_ UINT64 * pCpuTimestamp
Definition: mini_d3d12.h:4517
UINT _In_reads_bytes_opt_(Size) const void *pData
_In_ ID3D12Resource UINT _In_opt_ ID3D12Heap UINT _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts
ID3D12CommandQueue _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:4428
ID3D12CommandQueue ID3D12Fence * pFence
Definition: mini_d3d12.h:4499
_In_ ID3D12Resource UINT NumResourceRegions
Definition: mini_d3d12.h:4457
void(STDMETHODCALLTYPE *CopyTileMappings)(ID3D12CommandQueue *This
void(STDMETHODCALLTYPE *SetMarker)(ID3D12CommandQueue *This
_In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE _In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE _In_ const D3D12_TILE_REGION_SIZE D3D12_TILE_MAPPING_FLAGS Flags
Definition: mini_d3d12.h:4474
_In_ ID3D12Resource UINT _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes
void(STDMETHODCALLTYPE *UpdateTileMappings)(ID3D12CommandQueue *This
_In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE _In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE _In_ const D3D12_TILE_REGION_SIZE * pRegionSize
Definition: mini_d3d12.h:4473
ID3D12CommandQueue _Out_ UINT64 * pFrequency
Definition: mini_d3d12.h:4511
_In_ ID3D12Resource UINT _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates
ID3D12CommandQueue _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:4446
ID3D12CommandQueue _In_ REFGUID guid
Definition: mini_d3d12.h:4426
void(STDMETHODCALLTYPE *EndEvent)(ID3D12CommandQueue *This)
_In_ ID3D12Resource UINT _In_opt_ ID3D12Heap * pHeap
Definition: mini_d3d12.h:4460
ID3D12CommandQueue REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:4452
ID3D12CommandQueue _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:4434
ID3D12CommandQueue _Out_ UINT64 * pGpuTimestamp
Definition: mini_d3d12.h:4516
ID3D12CommandQueue * This
Definition: mini_d3d12.h:4417
_In_ ID3D12Resource * pDstResource
Definition: mini_d3d12.h:4469
BEGIN_INTERFACE(ID3D12Debug *This, REFIID riid, _COM_Outptr_ void **ppvObject)
ID3D12Debug * This
Definition: mini_d3d12.h:5848
void(STDMETHODCALLTYPE *EnableDebugLayer)(ID3D12Debug *This)
ID3D12DescriptorHeap _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:5590
ID3D12DescriptorHeap _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:5576
ID3D12DescriptorHeap REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:5601
ID3D12DescriptorHeap _In_ REFGUID guid
Definition: mini_d3d12.h:5575
ID3D12DescriptorHeap _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
ID3D12DescriptorHeap _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:5577
ID3D12DescriptorHeap _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:5583
ID3D12DescriptorHeap REFIID riid
Definition: mini_d3d12.h:5600
ID3D12DescriptorHeap * This
Definition: mini_d3d12.h:5566
ID3D12DescriptorHeap _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:5595
ID3D12DeviceChild _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:1579
ID3D12DeviceChild * This
Definition: mini_d3d12.h:1569
ID3D12DeviceChild _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:1580
ID3D12DeviceChild _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:1593
ID3D12DeviceChild _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
ID3D12DeviceChild REFIID riid
Definition: mini_d3d12.h:1603
BEGIN_INTERFACE(ID3D12DeviceChild *This, REFIID riid, _COM_Outptr_ void **ppvObject)
ID3D12DeviceChild REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:1604
ID3D12DeviceChild _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:1598
ID3D12DeviceChild _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:1586
ID3D12DeviceChild _In_ REFGUID guid
Definition: mini_d3d12.h:1578
_In_ const D3D12_SAMPLER_DESC * pDesc
Definition: mini_d3d12.h:4972
ID3D12Device _In_ UINT _In_ D3D12_COMMAND_LIST_TYPE _In_ ID3D12CommandAllocator _In_opt_ ID3D12PipelineState * pInitialState
Definition: mini_d3d12.h:4908
ID3D12Device _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:4850
_In_opt_ ID3D12Resource _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC * pDesc
Definition: mini_d3d12.h:4967
ID3D12Device _In_ ID3D12DeviceChild _In_opt_ const SECURITY_ATTRIBUTES DWORD _In_opt_ LPCWSTR Name
Definition: mini_d3d12.h:5049
_In_ UINT _In_ UINT _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts
ID3D12Device _In_ ID3D12Heap UINT64 _In_ const D3D12_RESOURCE_DESC D3D12_RESOURCE_STATES _In_opt_ const D3D12_CLEAR_VALUE REFIID _COM_Outptr_opt_ void ** ppvResource
Definition: mini_d3d12.h:5032
ID3D12Device _In_ const D3D12_HEAP_PROPERTIES D3D12_HEAP_FLAGS _In_ const D3D12_RESOURCE_DESC D3D12_RESOURCE_STATES InitialResourceState
Definition: mini_d3d12.h:5011
_In_opt_ ID3D12Resource _In_opt_ ID3D12Resource _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC * pDesc
Definition: mini_d3d12.h:4955
ID3D12Device _In_ ID3D12DeviceChild * pObject
Definition: mini_d3d12.h:5046
void(STDMETHODCALLTYPE *CopyDescriptorsSimple)(ID3D12Device *This
ID3D12Device _In_ const D3D12_DESCRIPTOR_HEAP_DESC * pDescriptorHeapDesc
Definition: mini_d3d12.h:4922
ID3D12Device _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:4868
_In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC * pDesc
Definition: mini_d3d12.h:4942
_In_ const D3D12_RESOURCE_DESC UINT64 _Out_writes_opt_(NumSubresources) UINT *pNumRows
_In_opt_ ID3D12Resource _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC * pDesc
Definition: mini_d3d12.h:4961
void(STDMETHODCALLTYPE *CreateDepthStencilView)(ID3D12Device *This
ID3D12Device _In_ const D3D12_RESOURCE_DESC D3D12_RESOURCE_STATES _In_opt_ const D3D12_CLEAR_VALUE REFIID _COM_Outptr_opt_ void ** ppvResource
Definition: mini_d3d12.h:5041
ID3D12Device _In_ const D3D12_COMMAND_SIGNATURE_DESC _In_opt_ ID3D12RootSignature REFIID _COM_Outptr_opt_ void ** ppvCommandSignature
Definition: mini_d3d12.h:5120
ID3D12Device _In_ const D3D12_COMMAND_SIGNATURE_DESC _In_opt_ ID3D12RootSignature * pRootSignature
Definition: mini_d3d12.h:5118
ID3D12Device _In_ UINT _In_ D3D12_COMMAND_LIST_TYPE type
Definition: mini_d3d12.h:4906
ID3D12Device _In_ UINT _In_ UINT numResourceDescs
Definition: mini_d3d12.h:4996
ID3D12Device _In_ const D3D12_COMMAND_QUEUE_DESC REFIID riid
Definition: mini_d3d12.h:4878
ID3D12Device _In_ ID3D12Heap UINT64 _In_ const D3D12_RESOURCE_DESC D3D12_RESOURCE_STATES _In_opt_ const D3D12_CLEAR_VALUE REFIID riid
Definition: mini_d3d12.h:5031
ID3D12Device _In_ UINT visibleMask
Definition: mini_d3d12.h:4995
ID3D12Device _In_ LPCWSTR DWORD Access
Definition: mini_d3d12.h:5063
void(STDMETHODCALLTYPE *GetCopyableFootprints)(ID3D12Device *This
ID3D12Device _In_ HANDLE NTHandle
Definition: mini_d3d12.h:5055
ID3D12Device BOOL Enable
Definition: mini_d3d12.h:5112
_In_opt_ ID3D12Resource * pResource
Definition: mini_d3d12.h:4947
_In_opt_ ID3D12Resource _In_opt_ ID3D12Resource * pCounterResource
Definition: mini_d3d12.h:4954
ID3D12Device _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC REFIID _COM_Outptr_ void ** ppPipelineState
Definition: mini_d3d12.h:4900
ID3D12Device _In_ const D3D12_HEAP_PROPERTIES D3D12_HEAP_FLAGS _In_ const D3D12_RESOURCE_DESC * pDesc
Definition: mini_d3d12.h:5010
ID3D12Device _In_ const D3D12_COMMAND_QUEUE_DESC * pDesc
Definition: mini_d3d12.h:4877
ID3D12Device _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC REFIID riid
Definition: mini_d3d12.h:4899
ID3D12Device _In_ const D3D12_HEAP_PROPERTIES D3D12_HEAP_FLAGS _In_ const D3D12_RESOURCE_DESC D3D12_RESOURCE_STATES _In_opt_ const D3D12_CLEAR_VALUE * pOptimizedClearValue
Definition: mini_d3d12.h:5012
ID3D12Device _In_ D3D12_COMMAND_LIST_TYPE type
Definition: mini_d3d12.h:4884
ID3D12Device _In_ const D3D12_COMMAND_SIGNATURE_DESC _In_opt_ ID3D12RootSignature REFIID riid
Definition: mini_d3d12.h:5119
ID3D12Device UINT64 InitialValue
Definition: mini_d3d12.h:5082
ID3D12Device _In_ ID3D12Heap UINT64 _In_ const D3D12_RESOURCE_DESC D3D12_RESOURCE_STATES _In_opt_ const D3D12_CLEAR_VALUE * pOptimizedClearValue
Definition: mini_d3d12.h:5030
_In_ UINT _In_ UINT _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType
Definition: mini_d3d12.h:4983
_In_opt_ ID3D12Resource _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor
Definition: mini_d3d12.h:4962
_In_ UINT _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes
void(STDMETHODCALLTYPE *CopyDescriptors)(ID3D12Device *This
_In_ ID3D12Resource _Out_opt_ UINT _Out_opt_ D3D12_PACKED_MIP_INFO * pPackedMipDesc
Definition: mini_d3d12.h:5126
ID3D12Device _In_ UINT _In_ SIZE_T REFIID _COM_Outptr_ void ** ppvRootSignature
Definition: mini_d3d12.h:4938
_In_ UINT NumDestDescriptorRanges
Definition: mini_d3d12.h:4977
ID3D12Device _In_ ID3D12DeviceChild _In_opt_ const SECURITY_ATTRIBUTES DWORD Access
Definition: mini_d3d12.h:5048
_In_ const D3D12_RESOURCE_DESC UINT64 _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes
_In_ ID3D12Resource _Out_opt_ UINT _Out_opt_ D3D12_PACKED_MIP_INFO _Out_opt_ D3D12_TILE_SHAPE _Inout_opt_ UINT * pNumSubresourceTilings
Definition: mini_d3d12.h:5128
ID3D12Device _In_ const D3D12_RESOURCE_DESC D3D12_RESOURCE_STATES InitialState
Definition: mini_d3d12.h:5038
ID3D12Device _In_ D3D12_COMMAND_LIST_TYPE REFIID _COM_Outptr_ void ** ppCommandAllocator
Definition: mini_d3d12.h:4886
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:5013
_In_opt_ ID3D12Resource _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor
Definition: mini_d3d12.h:4968
ID3D12Device _In_ const D3D12_COMMAND_QUEUE_DESC REFIID _COM_Outptr_ void ** ppCommandQueue
Definition: mini_d3d12.h:4879
ID3D12Device _In_ UINT _In_ SIZE_T blobLengthInBytes
Definition: mini_d3d12.h:4936
void(STDMETHODCALLTYPE *CreateRenderTargetView)(ID3D12Device *This
_In_ const D3D12_RESOURCE_DESC UINT64 _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts
ID3D12Device _In_ const D3D12_HEAP_DESC REFIID _COM_Outptr_opt_ void ** ppvHeap
Definition: mini_d3d12.h:5021
_In_opt_ ID3D12Resource _In_opt_ ID3D12Resource _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor
Definition: mini_d3d12.h:4956
ID3D12Device _In_ const D3D12_HEAP_PROPERTIES * pHeapProperties
Definition: mini_d3d12.h:5008
ID3D12Device _In_ UINT _In_ D3D12_COMMAND_LIST_TYPE _In_ ID3D12CommandAllocator _In_opt_ ID3D12PipelineState REFIID riid
Definition: mini_d3d12.h:4909
_In_ UINT _In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType
Definition: mini_d3d12.h:4990
_In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor
Definition: mini_d3d12.h:4943
ID3D12Device _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC REFIID _COM_Outptr_ void ** ppPipelineState
Definition: mini_d3d12.h:4893
ID3D12Device _In_ UINT _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature
ID3D12Device _In_ const D3D12_RESOURCE_DESC D3D12_RESOURCE_STATES _In_opt_ const D3D12_CLEAR_VALUE REFIID riid
Definition: mini_d3d12.h:5040
ID3D12Device _In_ const D3D12_HEAP_DESC REFIID riid
Definition: mini_d3d12.h:5020
ID3D12Device _In_ UINT _In_ D3D12_COMMAND_LIST_TYPE _In_ ID3D12CommandAllocator _In_opt_ ID3D12PipelineState REFIID _COM_Outptr_ void ** ppCommandList
Definition: mini_d3d12.h:4910
ID3D12Device _In_ const D3D12_DESCRIPTOR_HEAP_DESC REFIID _COM_Outptr_ void ** ppvHeap
Definition: mini_d3d12.h:4924
ID3D12Device UINT _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects)
ID3D12Device _In_ const D3D12_COMMAND_SIGNATURE_DESC * pDesc
Definition: mini_d3d12.h:5117
ID3D12Device _In_ const D3D12_HEAP_PROPERTIES D3D12_HEAP_FLAGS _In_ const D3D12_RESOURCE_DESC D3D12_RESOURCE_STATES _In_opt_ const D3D12_CLEAR_VALUE REFIID _COM_Outptr_opt_ void ** ppvResource
Definition: mini_d3d12.h:5014
ID3D12Device _In_ const D3D12_QUERY_HEAP_DESC REFIID _COM_Outptr_opt_ void ** ppvHeap
Definition: mini_d3d12.h:5107
void(STDMETHODCALLTYPE *GetResourceTiling)(ID3D12Device *This
ID3D12Device _In_ const D3D12_DESCRIPTOR_HEAP_DESC REFIID riid
Definition: mini_d3d12.h:4923
ID3D12Device _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType
Definition: mini_d3d12.h:4929
ID3D12Device _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:4856
ID3D12Device _In_ ID3D12Heap UINT64 HeapOffset
Definition: mini_d3d12.h:5027
ID3D12Device D3D12_FEATURE _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData
_In_ const D3D12_RESOURCE_DESC UINT64 BaseOffset
Definition: mini_d3d12.h:5096
ID3D12Device _In_ const D3D12_QUERY_HEAP_DESC * pDesc
Definition: mini_d3d12.h:5105
_In_opt_ ID3D12Resource _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor
Definition: mini_d3d12.h:4949
ID3D12Device _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:4863
ID3D12Device _In_ ID3D12Heap UINT64 _In_ const D3D12_RESOURCE_DESC D3D12_RESOURCE_STATES InitialState
Definition: mini_d3d12.h:5029
ID3D12Device _In_ UINT D3D12_HEAP_TYPE heapType
Definition: mini_d3d12.h:5003
_In_ const D3D12_SAMPLER_DESC _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor
Definition: mini_d3d12.h:4973
ID3D12Device _In_ ID3D12DeviceChild _In_opt_ const SECURITY_ATTRIBUTES * pAttributes
Definition: mini_d3d12.h:5047
_In_ const D3D12_RESOURCE_DESC _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources
ID3D12Device _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:4849
_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:5130
_In_ const D3D12_RESOURCE_DESC * pResourceDesc
Definition: mini_d3d12.h:5093
_In_ UINT NumDescriptors
Definition: mini_d3d12.h:4987
ID3D12Device UINT NumObjects
Definition: mini_d3d12.h:5070
_In_ UINT _In_ UINT NumSrcDescriptorRanges
Definition: mini_d3d12.h:4980
ID3D12Device _In_ const D3D12_RESOURCE_DESC * pDesc
Definition: mini_d3d12.h:5037
ID3D12Device UINT64 D3D12_FENCE_FLAGS Flags
Definition: mini_d3d12.h:5083
_In_opt_ ID3D12Resource _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC * pDesc
Definition: mini_d3d12.h:4948
ID3D12Device _In_ UINT _In_ UINT _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs)
ID3D12Device _In_ ID3D12Heap * pHeap
Definition: mini_d3d12.h:5026
_In_ ID3D12Resource _Out_opt_ UINT _Out_opt_ D3D12_PACKED_MIP_INFO _Out_opt_ D3D12_TILE_SHAPE * pStandardTileShapeForNonPackedMips
Definition: mini_d3d12.h:5127
_In_ UINT _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts
_In_ UINT _In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart
Definition: mini_d3d12.h:4989
ID3D12Device _In_ const D3D12_HEAP_DESC * pDesc
Definition: mini_d3d12.h:5019
ID3D12Device _In_ UINT nodeMask
Definition: mini_d3d12.h:4905
ID3D12Device _In_ ID3D12DeviceChild _In_opt_ const SECURITY_ATTRIBUTES DWORD _In_opt_ LPCWSTR _Out_ HANDLE * pHandle
Definition: mini_d3d12.h:5050
ID3D12Device _In_ ID3D12Heap UINT64 _In_ const D3D12_RESOURCE_DESC * pDesc
Definition: mini_d3d12.h:5028
ID3D12Device _In_ REFGUID guid
Definition: mini_d3d12.h:4848
_In_ const D3D12_RESOURCE_DESC UINT64 _Out_opt_ UINT64 * pTotalBytes
Definition: mini_d3d12.h:5100
ID3D12Device _In_ const D3D12_QUERY_HEAP_DESC REFIID riid
Definition: mini_d3d12.h:5106
ID3D12Device _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC * pDesc
Definition: mini_d3d12.h:4891
ID3D12Device _In_ const D3D12_HEAP_PROPERTIES D3D12_HEAP_FLAGS HeapFlags
Definition: mini_d3d12.h:5009
ID3D12Device D3D12_FEATURE UINT FeatureSupportDataSize
Definition: mini_d3d12.h:4917
ID3D12Device _In_ UINT _In_ D3D12_COMMAND_LIST_TYPE _In_ ID3D12CommandAllocator * pCommandAllocator
Definition: mini_d3d12.h:4907
_In_ ID3D12Resource _Out_opt_ UINT * pNumTilesForEntireResource
Definition: mini_d3d12.h:5125
ID3D12Device _In_ HANDLE REFIID riid
Definition: mini_d3d12.h:5056
ID3D12Device _In_ LPCWSTR DWORD _Out_ HANDLE * pNTHandle
Definition: mini_d3d12.h:5065
ID3D12Device _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC * pDesc
Definition: mini_d3d12.h:4898
_In_ UINT _In_ UINT _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes
ID3D12Device UINT64 D3D12_FENCE_FLAGS REFIID riid
Definition: mini_d3d12.h:5084
ID3D12Device _In_ HANDLE REFIID _COM_Outptr_opt_ void ** ppvObj
Definition: mini_d3d12.h:5057
ID3D12Device _In_ const D3D12_RESOURCE_DESC D3D12_RESOURCE_STATES _In_opt_ const D3D12_CLEAR_VALUE * pOptimizedClearValue
Definition: mini_d3d12.h:5039
void(STDMETHODCALLTYPE *CreateSampler)(ID3D12Device *This
ID3D12Device _In_ D3D12_COMMAND_LIST_TYPE REFIID riid
Definition: mini_d3d12.h:4885
void(STDMETHODCALLTYPE *CreateConstantBufferView)(ID3D12Device *This
_In_ UINT _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart
Definition: mini_d3d12.h:4988
ID3D12Device _In_ UINT _In_ SIZE_T REFIID riid
Definition: mini_d3d12.h:4937
ID3D12Device UINT64 D3D12_FENCE_FLAGS REFIID _COM_Outptr_ void ** ppFence
Definition: mini_d3d12.h:5085
ID3D12Device _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC REFIID riid
Definition: mini_d3d12.h:4892
_In_ const D3D12_RESOURCE_DESC _In_range_(0, D3D12_REQ_SUBRESOURCES) UINT FirstSubresource
ID3D12Device * This
Definition: mini_d3d12.h:4839
ID3D12Device D3D12_FEATURE Feature
Definition: mini_d3d12.h:4915
void(STDMETHODCALLTYPE *CreateShaderResourceView)(ID3D12Device *This
ID3D12Device _In_ LPCWSTR Name
Definition: mini_d3d12.h:5062
_In_ ID3D12Resource _Out_opt_ UINT _Out_opt_ D3D12_PACKED_MIP_INFO _Out_opt_ D3D12_TILE_SHAPE _Inout_opt_ UINT _In_ UINT FirstSubresourceTilingToGet
Definition: mini_d3d12.h:5129
ID3D12Device _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
_In_ ID3D12Resource * pTiledResource
Definition: mini_d3d12.h:5124
void(STDMETHODCALLTYPE *CreateUnorderedAccessView)(ID3D12Device *This
ID3D12Fence UINT64 Value
Definition: mini_d3d12.h:5363
ID3D12Fence UINT64 HANDLE hEvent
Definition: mini_d3d12.h:5364
ID3D12Fence _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:5330
ID3D12Fence _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:5348
ID3D12Fence _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:5336
ID3D12Fence REFIID riid
Definition: mini_d3d12.h:5353
ID3D12Fence _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:5329
ID3D12Fence _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
ID3D12Fence _In_ REFGUID guid
Definition: mini_d3d12.h:5328
ID3D12Fence _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:5343
ID3D12Fence * This
Definition: mini_d3d12.h:5319
ID3D12Fence REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:5354
void(STDMETHODCALLTYPE *ResolveSubresource)(ID3D12GraphicsCommandList *This
void(STDMETHODCALLTYPE *CopyTiles)(ID3D12GraphicsCommandList *This
_In_ UINT _In_ UINT _In_ UINT ThreadGroupCountZ
Definition: mini_d3d12.h:3874
_In_ ID3D12QueryHeap _In_ D3D12_QUERY_TYPE _In_ UINT _In_ UINT _In_ ID3D12Resource * pDestinationBuffer
Definition: mini_d3d12.h:4109
_In_ ID3D12GraphicsCommandList * pCommandList
Definition: mini_d3d12.h:3948
void(STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(ID3D12GraphicsCommandList *This
_In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports
_In_ UINT _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor
Definition: mini_d3d12.h:3966
_In_opt_ ID3D12Resource * pBuffer
Definition: mini_d3d12.h:4114
_In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE _In_ const D3D12_TILE_REGION_SIZE _In_ ID3D12Resource UINT64 BufferStartOffsetInBytes
Definition: mini_d3d12.h:3904
void(STDMETHODCALLTYPE *CopyResource)(ID3D12GraphicsCommandList *This
_In_ ID3D12CommandSignature _In_ UINT MaxCommandCount
Definition: mini_d3d12.h:4136
_In_ UINT _In_ UINT _In_ UINT StartIndexLocation
Definition: mini_d3d12.h:3866
_In_ ID3D12Resource _In_ UINT _In_ ID3D12Resource * pSrcResource
Definition: mini_d3d12.h:3911
_In_ UINT _In_ UINT _In_ UINT _In_ INT _In_ UINT StartInstanceLocation
Definition: mini_d3d12.h:3868
_In_ D3D12_GPU_DESCRIPTOR_HANDLE _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle
Definition: mini_d3d12.h:4071
void(STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(ID3D12GraphicsCommandList *This
_In_ D3D12_GPU_DESCRIPTOR_HANDLE _In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ ID3D12Resource _In_ const UINT _In_ UINT NumRects
Definition: mini_d3d12.h:4074
ID3D12GraphicsCommandList _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:3824
void(STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(ID3D12GraphicsCommandList *This
_In_ UINT _In_ UINT _In_ UINT _In_ INT BaseVertexLocation
Definition: mini_d3d12.h:3867
_In_ D3D12_GPU_DESCRIPTOR_HANDLE _In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ ID3D12Resource _In_ const UINT _In_ UINT _In_reads_(NumRects) const D3D12_RECT *pRects)
_In_ ID3D12Resource UINT64 _In_ ID3D12Resource UINT64 UINT64 NumBytes
Definition: mini_d3d12.h:3882
void(STDMETHODCALLTYPE *ExecuteBundle)(ID3D12GraphicsCommandList *This
_In_opt_ ID3D12RootSignature * pRootSignature
Definition: mini_d3d12.h:3957
void(STDMETHODCALLTYPE *ExecuteIndirect)(ID3D12GraphicsCommandList *This
_In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects
_In_reads_(NumRects) const D3D12_RECT *pRects)
void(STDMETHODCALLTYPE *SetComputeRootSignature)(ID3D12GraphicsCommandList *This
_In_opt_ ID3D12Resource _In_ UINT64 AlignedBufferOffset
Definition: mini_d3d12.h:4115
_In_ UINT _In_ UINT _In_reads_(Num32BitValuesToSet *sizeof(UINT)) const void *pSrcData
_In_ UINT _In_ UINT _In_ UINT _In_ UINT StartInstanceLocation
Definition: mini_d3d12.h:3860
void(STDMETHODCALLTYPE *OMSetStencilRef)(ID3D12GraphicsCommandList *This
_In_ ID3D12Resource UINT64 _In_ ID3D12Resource UINT64 SrcOffset
Definition: mini_d3d12.h:3881
void(STDMETHODCALLTYPE *CopyBufferRegion)(ID3D12GraphicsCommandList *This
_In_ ID3D12Resource * pDstBuffer
Definition: mini_d3d12.h:3878
_In_ ID3D12CommandSignature _In_ UINT _In_ ID3D12Resource _In_ UINT64 ArgumentBufferOffset
Definition: mini_d3d12.h:4138
_In_ ID3D12QueryHeap _In_ D3D12_QUERY_TYPE _In_ UINT StartIndex
Definition: mini_d3d12.h:4107
_In_ D3D12_GPU_DESCRIPTOR_HANDLE _In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ ID3D12Resource _In_ const FLOAT _In_ UINT _In_reads_(NumRects) const D3D12_RECT *pRects)
void(STDMETHODCALLTYPE *SetPredication)(ID3D12GraphicsCommandList *This
void(STDMETHODCALLTYPE *DrawIndexedInstanced)(ID3D12GraphicsCommandList *This
_In_ UINT _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers)
_In_ UINT _In_ UINT NumViews
Definition: mini_d3d12.h:4036
_In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ const FLOAT _In_ UINT NumRects
Definition: mini_d3d12.h:4065
void(STDMETHODCALLTYPE *SetGraphicsRootSignature)(ID3D12GraphicsCommandList *This
_In_ ID3D12QueryHeap _In_ D3D12_QUERY_TYPE Type
Definition: mini_d3d12.h:4094
_In_opt_ const D3D12_INDEX_BUFFER_VIEW * pView
Definition: mini_d3d12.h:4031
_In_ ID3D12Resource _In_ UINT _In_ ID3D12Resource _In_ UINT SrcSubresource
Definition: mini_d3d12.h:3912
void(STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(ID3D12GraphicsCommandList *This
_In_ UINT _In_ UINT Num32BitValuesToSet
Definition: mini_d3d12.h:3988
ID3D12GraphicsCommandList _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:3811
_In_ D3D12_GPU_DESCRIPTOR_HANDLE _In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ ID3D12Resource _In_ const FLOAT _In_ UINT NumRects
Definition: mini_d3d12.h:4083
void(STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(ID3D12GraphicsCommandList *This
_In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ D3D12_CLEAR_FLAGS _In_ FLOAT _In_ UINT8 _In_ UINT NumRects
Definition: mini_d3d12.h:4058
void(STDMETHODCALLTYPE *IASetVertexBuffers)(ID3D12GraphicsCommandList *This
_In_ ID3D12QueryHeap * pQueryHeap
Definition: mini_d3d12.h:4093
ID3D12GraphicsCommandList _In_ REFGUID guid
Definition: mini_d3d12.h:3809
void(STDMETHODCALLTYPE *SOSetTargets)(ID3D12GraphicsCommandList *This
_In_ ID3D12Resource UINT64 _In_ ID3D12Resource * pSrcBuffer
Definition: mini_d3d12.h:3880
void(STDMETHODCALLTYPE *OMSetBlendFactor)(ID3D12GraphicsCommandList *This
_In_ ID3D12Resource UINT64 DstOffset
Definition: mini_d3d12.h:3879
_In_ ID3D12Resource _In_ ID3D12Resource * pSrcResource
Definition: mini_d3d12.h:3896
_In_ ID3D12Resource _In_opt_ const D3D12_DISCARD_REGION * pRegion
Definition: mini_d3d12.h:4089
void(STDMETHODCALLTYPE *RSSetScissorRects)(ID3D12GraphicsCommandList *This
_In_ UINT _In_ UINT _In_ UINT StartVertexLocation
Definition: mini_d3d12.h:3859
void(STDMETHODCALLTYPE *IASetPrimitiveTopology)(ID3D12GraphicsCommandList *This
void(STDMETHODCALLTYPE *RSSetViewports)(ID3D12GraphicsCommandList *This
_In_ ID3D12QueryHeap _In_ D3D12_QUERY_TYPE _In_ UINT _In_ UINT NumQueries
Definition: mini_d3d12.h:4108
void(STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(ID3D12GraphicsCommandList *This
void(STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(ID3D12GraphicsCommandList *This
_In_ D3D12_GPU_DESCRIPTOR_HANDLE _In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ ID3D12Resource * pResource
Definition: mini_d3d12.h:4072
void(STDMETHODCALLTYPE *SetMarker)(ID3D12GraphicsCommandList *This
_In_ const D3D12_TEXTURE_COPY_LOCATION UINT UINT UINT DstZ
Definition: mini_d3d12.h:3889
void(STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(ID3D12GraphicsCommandList *This
ID3D12GraphicsCommandList _In_ ID3D12CommandAllocator * pAllocator
Definition: mini_d3d12.h:3848
_In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ const FLOAT _In_ UINT _In_reads_(NumRects) const D3D12_RECT *pRects)
_In_ const D3D12_TEXTURE_COPY_LOCATION UINT UINT DstY
Definition: mini_d3d12.h:3888
ID3D12GraphicsCommandList _In_ ID3D12CommandAllocator _In_opt_ ID3D12PipelineState * pInitialState
Definition: mini_d3d12.h:3849
void(STDMETHODCALLTYPE *ClearRenderTargetView)(ID3D12GraphicsCommandList *This
void(STDMETHODCALLTYPE *CopyTextureRegion)(ID3D12GraphicsCommandList *This
ID3D12GraphicsCommandList _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:3817
_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:3905
void(STDMETHODCALLTYPE *ClearDepthStencilView)(ID3D12GraphicsCommandList *This
_In_ ID3D12PipelineState * pPipelineState
Definition: mini_d3d12.h:3939
_In_ ID3D12QueryHeap _In_ D3D12_QUERY_TYPE _In_ UINT Index
Definition: mini_d3d12.h:4095
void(STDMETHODCALLTYPE *IASetIndexBuffer)(ID3D12GraphicsCommandList *This
_In_ ID3D12Resource * pTiledResource
Definition: mini_d3d12.h:3900
_In_ ID3D12Resource * pResource
Definition: mini_d3d12.h:4088
_In_ UINT _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE * pRenderTargetDescriptors
Definition: mini_d3d12.h:4048
_In_ UINT _In_ UINT _In_ UINT DestOffsetIn32BitValues
Definition: mini_d3d12.h:3977
void(STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(ID3D12GraphicsCommandList *This
_In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView
Definition: mini_d3d12.h:4054
void(STDMETHODCALLTYPE *SetDescriptorHeaps)(ID3D12GraphicsCommandList *This
void(STDMETHODCALLTYPE *ResourceBarrier)(ID3D12GraphicsCommandList *This
_In_ UINT _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE _In_ BOOL RTsSingleHandleToDescriptorRange
Definition: mini_d3d12.h:4049
_In_ UINT _In_ UINT _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews)
UINT _In_reads_bytes_opt_(Size) const void *pData
void(STDMETHODCALLTYPE *EndEvent)(ID3D12GraphicsCommandList *This)
_In_ ID3D12CommandSignature _In_ UINT _In_ ID3D12Resource _In_ UINT64 _In_opt_ ID3D12Resource * pCountBuffer
Definition: mini_d3d12.h:4139
_In_ const D3D12_TEXTURE_COPY_LOCATION * pDst
Definition: mini_d3d12.h:3886
_In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE _In_ const D3D12_TILE_REGION_SIZE * pTileRegionSize
Definition: mini_d3d12.h:3902
ID3D12GraphicsCommandList * This
Definition: mini_d3d12.h:3800
_In_ UINT _In_ UINT SrcData
Definition: mini_d3d12.h:3976
_In_ const D3D12_TEXTURE_COPY_LOCATION UINT UINT UINT _In_ const D3D12_TEXTURE_COPY_LOCATION * pSrc
Definition: mini_d3d12.h:3890
void(STDMETHODCALLTYPE *ResolveQueryData)(ID3D12GraphicsCommandList *This
ID3D12GraphicsCommandList _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
_In_opt_ ID3D12PipelineState * pPipelineState
Definition: mini_d3d12.h:3853
_In_ UINT _In_ UINT ThreadGroupCountY
Definition: mini_d3d12.h:3873
void(STDMETHODCALLTYPE *EndQuery)(ID3D12GraphicsCommandList *This
_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:3891
_In_ UINT _In_ UINT _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews)
void(STDMETHODCALLTYPE *BeginEvent)(ID3D12GraphicsCommandList *This
void(STDMETHODCALLTYPE *DrawInstanced)(ID3D12GraphicsCommandList *This
void(STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(ID3D12GraphicsCommandList *This
_In_ ID3D12Resource * pDstResource
Definition: mini_d3d12.h:3895
void(STDMETHODCALLTYPE *OMSetRenderTargets)(ID3D12GraphicsCommandList *This
void(STDMETHODCALLTYPE *Dispatch)(ID3D12GraphicsCommandList *This
void(STDMETHODCALLTYPE *ClearState)(ID3D12GraphicsCommandList *This
ID3D12GraphicsCommandList REFIID riid
Definition: mini_d3d12.h:3834
_In_ ID3D12Resource _In_ UINT DstSubresource
Definition: mini_d3d12.h:3910
void(STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(ID3D12GraphicsCommandList *This
_In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap
Definition: mini_d3d12.h:4070
ID3D12GraphicsCommandList _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:3810
_In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology
Definition: mini_d3d12.h:3917
_In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ D3D12_CLEAR_FLAGS _In_ FLOAT _In_ UINT8 Stencil
Definition: mini_d3d12.h:4057
_In_ UINT _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps)
_In_ ID3D12CommandSignature * pCommandSignature
Definition: mini_d3d12.h:4135
_In_ ID3D12CommandSignature _In_ UINT _In_ ID3D12Resource _In_ UINT64 _In_opt_ ID3D12Resource _In_ UINT64 CountBufferOffset
Definition: mini_d3d12.h:4140
void(STDMETHODCALLTYPE *BeginQuery)(ID3D12GraphicsCommandList *This
void(STDMETHODCALLTYPE *DiscardResource)(ID3D12GraphicsCommandList *This
_In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ D3D12_CLEAR_FLAGS _In_ FLOAT _In_ UINT8 _In_ UINT _In_reads_(NumRects) const D3D12_RECT *pRects)
_In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE * pTileRegionStartCoordinate
Definition: mini_d3d12.h:3901
_In_ UINT _In_ UINT InstanceCount
Definition: mini_d3d12.h:3858
void(STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(ID3D12GraphicsCommandList *This
void(STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(ID3D12GraphicsCommandList *This
_In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ D3D12_CLEAR_FLAGS ClearFlags
Definition: mini_d3d12.h:4055
_In_ ID3D12Resource _In_ UINT _In_ ID3D12Resource _In_ UINT _In_ DXGI_FORMAT Format
Definition: mini_d3d12.h:3913
_In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView
Definition: mini_d3d12.h:4063
_In_ D3D12_CPU_DESCRIPTOR_HANDLE _In_ D3D12_CLEAR_FLAGS _In_ FLOAT Depth
Definition: mini_d3d12.h:4056
_In_ ID3D12Resource _In_ const D3D12_TILED_RESOURCE_COORDINATE _In_ const D3D12_TILE_REGION_SIZE _In_ ID3D12Resource * pBuffer
Definition: mini_d3d12.h:3903
_In_ ID3D12CommandSignature _In_ UINT _In_ ID3D12Resource * pArgumentBuffer
Definition: mini_d3d12.h:4137
_In_reads_(NumViewports) const D3D12_VIEWPORT *pViewports)
ID3D12GraphicsCommandList REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:3835
void(STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(ID3D12GraphicsCommandList *This
_In_ UINT _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
Definition: mini_d3d12.h:4002
_In_ const D3D12_TEXTURE_COPY_LOCATION UINT DstX
Definition: mini_d3d12.h:3887
_In_ UINT _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE _In_ BOOL _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE * pDepthStencilDescriptor
Definition: mini_d3d12.h:4050
void(STDMETHODCALLTYPE *SetPipelineState)(ID3D12GraphicsCommandList *This
_In_ ID3D12QueryHeap _In_ D3D12_QUERY_TYPE _In_ UINT _In_ UINT _In_ ID3D12Resource _In_ UINT64 AlignedDestinationBufferOffset
Definition: mini_d3d12.h:4110
ID3D12GraphicsCommandList _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:3829
_In_opt_ ID3D12Resource _In_ UINT64 _In_ D3D12_PREDICATION_OP Operation
Definition: mini_d3d12.h:4116
BEGIN_INTERFACE(ID3D12Object *This, REFIID riid, _COM_Outptr_ void **ppvObject)
ID3D12Object _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:1498
ID3D12Object _In_ REFGUID guid
Definition: mini_d3d12.h:1490
ID3D12Object _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:1491
ID3D12Object _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:1505
ID3D12Object _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:1510
ID3D12Object _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:1492
ID3D12Object * This
Definition: mini_d3d12.h:1481
ID3D12Object _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
ID3D12Pageable REFIID riid
Definition: mini_d3d12.h:1797
ID3D12Pageable _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:1792
ID3D12Pageable _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:1773
ID3D12Pageable REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:1798
ID3D12Pageable * This
Definition: mini_d3d12.h:1763
BEGIN_INTERFACE(ID3D12Pageable *This, REFIID riid, _COM_Outptr_ void **ppvObject)
ID3D12Pageable _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:1780
ID3D12Pageable _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:1774
ID3D12Pageable _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:1787
ID3D12Pageable _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
ID3D12Pageable _In_ REFGUID guid
Definition: mini_d3d12.h:1772
ID3D12PipelineState _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:5460
ID3D12PipelineState REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:5484
ID3D12PipelineState REFIID riid
Definition: mini_d3d12.h:5483
ID3D12PipelineState _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
ID3D12PipelineState * This
Definition: mini_d3d12.h:5449
ID3D12PipelineState _COM_Outptr_ ID3DBlob ** ppBlob
Definition: mini_d3d12.h:5489
ID3D12PipelineState _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:5466
ID3D12PipelineState _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:5459
ID3D12PipelineState _In_ REFGUID guid
Definition: mini_d3d12.h:5458
ID3D12PipelineState _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:5473
ID3D12PipelineState _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:5478
ID3D12QueryHeap REFIID riid
Definition: mini_d3d12.h:5725
ID3D12QueryHeap * This
Definition: mini_d3d12.h:5691
ID3D12QueryHeap _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:5720
ID3D12QueryHeap _In_ REFGUID guid
Definition: mini_d3d12.h:5700
ID3D12QueryHeap _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:5701
ID3D12QueryHeap _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:5702
ID3D12QueryHeap _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:5708
ID3D12QueryHeap _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:5715
ID3D12QueryHeap REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:5726
ID3D12QueryHeap _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
BEGIN_INTERFACE(ID3D12Resource *This, REFIID riid, _COM_Outptr_ void **ppvObject)
ID3D12Resource REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:3195
ID3D12Resource UINT _In_opt_ const D3D12_BOX _In_ const void * pSrcData
Definition: mini_d3d12.h:3222
ID3D12Resource _Out_ void UINT DstRowPitch
Definition: mini_d3d12.h:3230
ID3D12Resource _Out_ void * pDstData
Definition: mini_d3d12.h:3229
ID3D12Resource UINT DstSubresource
Definition: mini_d3d12.h:3220
ID3D12Resource _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
ID3D12Resource _Out_opt_ D3D12_HEAP_PROPERTIES _Out_opt_ D3D12_HEAP_FLAGS * pHeapFlags
Definition: mini_d3d12.h:3239
ID3D12Resource UINT _In_opt_ const D3D12_RANGE * pReadRange
Definition: mini_d3d12.h:3201
ID3D12Resource _Out_ void UINT UINT UINT _In_opt_ const D3D12_BOX * pSrcBox
Definition: mini_d3d12.h:3233
ID3D12Resource _Out_ void UINT UINT DstDepthPitch
Definition: mini_d3d12.h:3231
ID3D12Resource REFIID riid
Definition: mini_d3d12.h:3194
ID3D12Resource UINT _In_opt_ const D3D12_BOX _In_ const void UINT UINT SrcDepthPitch
Definition: mini_d3d12.h:3224
ID3D12Resource _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:3177
ID3D12Resource * This
Definition: mini_d3d12.h:3160
ID3D12Resource _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:3171
void(STDMETHODCALLTYPE *Unmap)(ID3D12Resource *This
ID3D12Resource _Out_opt_ D3D12_HEAP_PROPERTIES * pHeapProperties
Definition: mini_d3d12.h:3238
ID3D12Resource _In_ REFGUID guid
Definition: mini_d3d12.h:3169
ID3D12Resource _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:3184
ID3D12Resource UINT _In_opt_ const D3D12_RANGE _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData)
ID3D12Resource UINT Subresource
Definition: mini_d3d12.h:3200
ID3D12Resource _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:3189
ID3D12Resource UINT _In_opt_ const D3D12_BOX _In_ const void UINT SrcRowPitch
Definition: mini_d3d12.h:3223
ID3D12Resource _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:3170
ID3D12Resource UINT _In_opt_ const D3D12_BOX * pDstBox
Definition: mini_d3d12.h:3221
ID3D12Resource _Out_ void UINT UINT UINT SrcSubresource
Definition: mini_d3d12.h:3232
UINT _In_opt_ const D3D12_RANGE * pWrittenRange
Definition: mini_d3d12.h:3207
ID3D12RootSignature _In_ REFGUID _In_ UINT _In_reads_bytes_opt_(DataSize) const void *pData)
ID3D12RootSignature _In_z_ LPCWSTR Name
Definition: mini_d3d12.h:1692
ID3D12RootSignature REFIID _COM_Outptr_opt_ void ** ppvDevice
Definition: mini_d3d12.h:1698
ID3D12RootSignature _In_ REFGUID _In_opt_ const IUnknown * pData
Definition: mini_d3d12.h:1687
ID3D12RootSignature _In_ REFGUID guid
Definition: mini_d3d12.h:1672
ID3D12RootSignature * This
Definition: mini_d3d12.h:1663
ID3D12RootSignature _In_ REFGUID _Inout_ UINT _Out_writes_bytes_opt_ pDataSize void * pData
Definition: mini_d3d12.h:1674
ID3D12RootSignature _In_ REFGUID _In_ UINT DataSize
Definition: mini_d3d12.h:1680
ID3D12RootSignature REFIID riid
Definition: mini_d3d12.h:1697
ID3D12RootSignature _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:1673
BEGIN_INTERFACE(ID3D12RootSignature *This, REFIID riid, _COM_Outptr_ void **ppvObject)
IDXGIAdapter1 _In_ REFGUID Name
Definition: mini_d3d12.h:6655
IDXGIAdapter1 _Out_ DXGI_ADAPTER_DESC1 * pDesc
Definition: mini_d3d12.h:6711
IDXGIAdapter1 _In_ REFIID _COM_Outptr_ void ** ppParent
Definition: mini_d3d12.h:6684
IDXGIAdapter1 _In_ REFGUID _Out_ LARGE_INTEGER * pUMDVersion
Definition: mini_d3d12.h:6705
IDXGIAdapter1 UINT _COM_Outptr_ IDXGIOutput ** ppOutput
Definition: mini_d3d12.h:6691
IDXGIAdapter1 _In_ REFGUID _In_opt_ const IUnknown * pUnknown
Definition: mini_d3d12.h:6666
IDXGIAdapter1 _In_ REFGUID InterfaceName
Definition: mini_d3d12.h:6703
IDXGIAdapter1 _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:6674
IDXGIAdapter1 _In_ REFGUID _Inout_ UINT _Out_writes_bytes_ pDataSize void * pData
Definition: mini_d3d12.h:6676
IDXGIAdapter1 * This
Definition: mini_d3d12.h:6645
IDXGIAdapter1 UINT Output
Definition: mini_d3d12.h:6689
IDXGIAdapter1 _In_ REFIID riid
Definition: mini_d3d12.h:6682
IDXGIAdapter1 _In_ REFGUID UINT _In_reads_bytes_(DataSize) const void *pData)
BEGIN_INTERFACE(IDXGIAdapter1 *This, REFIID riid, _COM_Outptr_ void **ppvObject)
IDXGIAdapter1 _Out_ DXGI_ADAPTER_DESC * pDesc
Definition: mini_d3d12.h:6697
IDXGIAdapter1 _In_ REFGUID UINT DataSize
Definition: mini_d3d12.h:6656
IDXGIAdapter _In_ REFIID _COM_Outptr_ void ** ppParent
Definition: mini_d3d12.h:6365
IDXGIAdapter _In_ REFGUID InterfaceName
Definition: mini_d3d12.h:6384
IDXGIAdapter _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:6355
IDXGIAdapter _In_ REFGUID Name
Definition: mini_d3d12.h:6336
IDXGIAdapter _In_ REFIID riid
Definition: mini_d3d12.h:6363
IDXGIAdapter _In_ REFGUID _In_opt_ const IUnknown * pUnknown
Definition: mini_d3d12.h:6347
IDXGIAdapter _In_ REFGUID UINT _In_reads_bytes_(DataSize) const void *pData)
IDXGIAdapter UINT Output
Definition: mini_d3d12.h:6370
IDXGIAdapter _Out_ DXGI_ADAPTER_DESC * pDesc
Definition: mini_d3d12.h:6378
BEGIN_INTERFACE(IDXGIAdapter *This, REFIID riid, _COM_Outptr_ void **ppvObject)
IDXGIAdapter UINT _COM_Outptr_ IDXGIOutput ** ppOutput
Definition: mini_d3d12.h:6372
IDXGIAdapter _In_ REFGUID UINT DataSize
Definition: mini_d3d12.h:6337
IDXGIAdapter _In_ REFGUID _Inout_ UINT _Out_writes_bytes_ pDataSize void * pData
Definition: mini_d3d12.h:6357
IDXGIAdapter _In_ REFGUID _Out_ LARGE_INTEGER * pUMDVersion
Definition: mini_d3d12.h:6386
IDXGIAdapter * This
Definition: mini_d3d12.h:6326
IDXGIFactory1 HWND WindowHandle
Definition: mini_d3d12.h:6519
IDXGIFactory1 HMODULE _COM_Outptr_ IDXGIAdapter ** ppAdapter
Definition: mini_d3d12.h:6543
IDXGIFactory1 _In_ REFGUID _In_opt_ const IUnknown * pUnknown
Definition: mini_d3d12.h:6489
IDXGIFactory1 UINT Adapter
Definition: mini_d3d12.h:6512
IDXGIFactory1 _Out_ HWND * pWindowHandle
Definition: mini_d3d12.h:6526
IDXGIFactory1 * This
Definition: mini_d3d12.h:6468
IDXGIFactory1 _In_ REFIID _COM_Outptr_ void ** ppParent
Definition: mini_d3d12.h:6507
IDXGIFactory1 _In_ IUnknown _In_ DXGI_SWAP_CHAIN_DESC * pDesc
Definition: mini_d3d12.h:6534
IDXGIFactory1 HWND UINT Flags
Definition: mini_d3d12.h:6520
IDXGIFactory1 _In_ REFGUID Name
Definition: mini_d3d12.h:6478
IDXGIFactory1 HMODULE Module
Definition: mini_d3d12.h:6541
IDXGIFactory1 _In_ REFGUID UINT DataSize
Definition: mini_d3d12.h:6479
IDXGIFactory1 _In_ REFGUID UINT _In_reads_bytes_(DataSize) const void *pData)
IDXGIFactory1 _In_ IUnknown _In_ DXGI_SWAP_CHAIN_DESC _COM_Outptr_ IDXGISwapChain ** ppSwapChain
Definition: mini_d3d12.h:6536
IDXGIFactory1 _In_ REFIID riid
Definition: mini_d3d12.h:6505
IDXGIFactory1 _In_ REFGUID _Inout_ UINT _Out_writes_bytes_ pDataSize void * pData
Definition: mini_d3d12.h:6499
IDXGIFactory1 _In_ IUnknown * pDevice
Definition: mini_d3d12.h:6532
IDXGIFactory1 UINT _COM_Outptr_ IDXGIAdapter ** ppAdapter
Definition: mini_d3d12.h:6514
BEGIN_INTERFACE(IDXGIFactory1 *This, REFIID riid, _COM_Outptr_ void **ppvObject)
IDXGIFactory1 _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:6497
IDXGIFactory1 UINT _COM_Outptr_ IDXGIAdapter1 ** ppAdapter
Definition: mini_d3d12.h:6550
IDXGIFactory _In_ IUnknown _In_ DXGI_SWAP_CHAIN_DESC _COM_Outptr_ IDXGISwapChain ** ppSwapChain
Definition: mini_d3d12.h:6221
IDXGIFactory _Out_ HWND * pWindowHandle
Definition: mini_d3d12.h:6211
IDXGIFactory UINT Adapter
Definition: mini_d3d12.h:6197
IDXGIFactory _In_ IUnknown _In_ DXGI_SWAP_CHAIN_DESC * pDesc
Definition: mini_d3d12.h:6219
IDXGIFactory HWND WindowHandle
Definition: mini_d3d12.h:6204
IDXGIFactory _In_ REFGUID _In_opt_ const IUnknown * pUnknown
Definition: mini_d3d12.h:6174
IDXGIFactory _In_ REFGUID UINT DataSize
Definition: mini_d3d12.h:6164
IDXGIFactory _In_ REFIID riid
Definition: mini_d3d12.h:6190
IDXGIFactory * This
Definition: mini_d3d12.h:6153
IDXGIFactory _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:6182
IDXGIFactory HMODULE Module
Definition: mini_d3d12.h:6226
BEGIN_INTERFACE(IDXGIFactory *This, REFIID riid, _COM_Outptr_ void **ppvObject)
IDXGIFactory _In_ REFGUID UINT _In_reads_bytes_(DataSize) const void *pData)
IDXGIFactory _In_ REFGUID Name
Definition: mini_d3d12.h:6163
IDXGIFactory _In_ IUnknown * pDevice
Definition: mini_d3d12.h:6217
IDXGIFactory UINT _COM_Outptr_ IDXGIAdapter ** ppAdapter
Definition: mini_d3d12.h:6199
IDXGIFactory _In_ REFIID _COM_Outptr_ void ** ppParent
Definition: mini_d3d12.h:6192
IDXGIFactory _In_ REFGUID _Inout_ UINT _Out_writes_bytes_ pDataSize void * pData
Definition: mini_d3d12.h:6184
IDXGIFactory HMODULE _COM_Outptr_ IDXGIAdapter ** ppAdapter
Definition: mini_d3d12.h:6228
IDXGIFactory HWND UINT Flags
Definition: mini_d3d12.h:6205
IDXGIObject _In_ REFGUID UINT _In_reads_bytes_(DataSize) const void *pData)
IDXGIObject _In_ REFGUID Name
Definition: mini_d3d12.h:6032
IDXGIObject _In_ REFIID riid
Definition: mini_d3d12.h:6059
IDXGIObject _In_ REFGUID _In_opt_ const IUnknown * pUnknown
Definition: mini_d3d12.h:6043
IDXGIObject _In_ REFGUID UINT DataSize
Definition: mini_d3d12.h:6033
IDXGIObject * This
Definition: mini_d3d12.h:6022
IDXGIObject _In_ REFIID _COM_Outptr_ void ** ppParent
Definition: mini_d3d12.h:6061
IDXGIObject _In_ REFGUID _Inout_ UINT * pDataSize
Definition: mini_d3d12.h:6051
IDXGIObject _In_ REFGUID _Inout_ UINT _Out_writes_bytes_ pDataSize void * pData
Definition: mini_d3d12.h:6053
BEGIN_INTERFACE(IDXGIObject *This, REFIID riid, _COM_Outptr_ void **ppvObject)
BEGIN_INTERFACE(IUnknown *This, REFIID riid, _COM_Outptr_ void **ppvObject)
IUnknown * This
Definition: mini_d3d12.h:858
LONG right
Definition: mini_d3d12.h:448
LONG bottom
Definition: mini_d3d12.h:449
LONG top
Definition: mini_d3d12.h:447
LONG left
Definition: mini_d3d12.h:446
LONGLONG QuadPart
Definition: mini_d3d12.h:319
struct _LARGE_INTEGER::@6 u
struct _LARGE_INTEGER::@5 DUMMYSTRUCTNAME