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