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