source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dxgi1_6.h@ 1167

Last change on this file since 1167 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 59.5 KB
RevLine 
[1166]1/*** Autogenerated by WIDL 6.4 from include/dxgi1_6.idl - Do not edit ***/
2
3#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__
5#define __REQUIRED_RPCNDR_H_VERSION__ 475
6#endif
7#include <rpc.h>
8#include <rpcndr.h>
9#endif
10
11#ifndef COM_NO_WINDOWS_H
12#include <windows.h>
13#include <ole2.h>
14#endif
15
16#ifndef __dxgi1_6_h__
17#define __dxgi1_6_h__
18
19/* Forward declarations */
20
21#ifndef __IDXGIAdapter4_FWD_DEFINED__
22#define __IDXGIAdapter4_FWD_DEFINED__
23typedef interface IDXGIAdapter4 IDXGIAdapter4;
24#ifdef __cplusplus
25interface IDXGIAdapter4;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IDXGIOutput6_FWD_DEFINED__
30#define __IDXGIOutput6_FWD_DEFINED__
31typedef interface IDXGIOutput6 IDXGIOutput6;
32#ifdef __cplusplus
33interface IDXGIOutput6;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IDXGIFactory6_FWD_DEFINED__
38#define __IDXGIFactory6_FWD_DEFINED__
39typedef interface IDXGIFactory6 IDXGIFactory6;
40#ifdef __cplusplus
41interface IDXGIFactory6;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IDXGIFactory7_FWD_DEFINED__
46#define __IDXGIFactory7_FWD_DEFINED__
47typedef interface IDXGIFactory7 IDXGIFactory7;
48#ifdef __cplusplus
49interface IDXGIFactory7;
50#endif /* __cplusplus */
51#endif
52
53/* Headers for imported files */
54
55#include <dxgi1_5.h>
56
57#ifdef __cplusplus
58extern "C" {
59#endif
60
61typedef enum DXGI_ADAPTER_FLAG3 {
62 DXGI_ADAPTER_FLAG3_NONE = 0x0,
63 DXGI_ADAPTER_FLAG3_REMOTE = 0x1,
64 DXGI_ADAPTER_FLAG3_SOFTWARE = 0x2,
65 DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE = 0x4,
66 DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES = 0x8,
67 DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES = 0x10,
68 DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE = 0x20,
69 DXGI_ADAPTER_FLAG3_FORCE_DWORD = 0xffffffff
70} DXGI_ADAPTER_FLAG3;
71typedef enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
72 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN = 0x1,
73 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED = 0x2,
74 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED = 0x4
75} DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS;
76typedef enum DXGI_GPU_PREFERENCE {
77 DXGI_GPU_PREFERENCE_UNSPECIFIED = 0x0,
78 DXGI_GPU_PREFERENCE_MINIMUM_POWER = 0x1,
79 DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE = 0x2
80} DXGI_GPU_PREFERENCE;
81typedef struct DXGI_ADAPTER_DESC3 {
82 WCHAR Description[128];
83 UINT VendorId;
84 UINT DeviceId;
85 UINT SubSysId;
86 UINT Revision;
87 SIZE_T DedicatedVideoMemory;
88 SIZE_T DedicatedSystemMemory;
89 SIZE_T SharedSystemMemory;
90 LUID AdapterLuid;
91 DXGI_ADAPTER_FLAG3 Flags;
92 DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity;
93 DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity;
94} DXGI_ADAPTER_DESC3;
95typedef struct DXGI_OUTPUT_DESC1 {
96 WCHAR DeviceName[32];
97 RECT DesktopCoordinates;
98 WINBOOL AttachedToDesktop;
99 DXGI_MODE_ROTATION Rotation;
100 HMONITOR Monitor;
101 UINT BitsPerColor;
102 DXGI_COLOR_SPACE_TYPE ColorSpace;
103 FLOAT RedPrimary[2];
104 FLOAT GreenPrimary[2];
105 FLOAT BluePrimary[2];
106 FLOAT WhitePoint[2];
107 FLOAT MinLuminance;
108 FLOAT MaxLuminance;
109 FLOAT MaxFullFrameLuminance;
110} DXGI_OUTPUT_DESC1;
111/*****************************************************************************
112 * IDXGIAdapter4 interface
113 */
114#ifndef __IDXGIAdapter4_INTERFACE_DEFINED__
115#define __IDXGIAdapter4_INTERFACE_DEFINED__
116
117DEFINE_GUID(IID_IDXGIAdapter4, 0x3c8d99d1, 0x4fbf, 0x4181, 0xa8,0x2c, 0xaf,0x66,0xbf,0x7b,0xd2,0x4e);
118#if defined(__cplusplus) && !defined(CINTERFACE)
119MIDL_INTERFACE("3c8d99d1-4fbf-4181-a82c-af66bf7bd24e")
120IDXGIAdapter4 : public IDXGIAdapter3
121{
122 virtual HRESULT STDMETHODCALLTYPE GetDesc3(
123 DXGI_ADAPTER_DESC3 *desc) = 0;
124
125};
126#ifdef __CRT_UUID_DECL
127__CRT_UUID_DECL(IDXGIAdapter4, 0x3c8d99d1, 0x4fbf, 0x4181, 0xa8,0x2c, 0xaf,0x66,0xbf,0x7b,0xd2,0x4e)
128#endif
129#else
130typedef struct IDXGIAdapter4Vtbl {
131 BEGIN_INTERFACE
132
133 /*** IUnknown methods ***/
134 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
135 IDXGIAdapter4 *This,
136 REFIID riid,
137 void **ppvObject);
138
139 ULONG (STDMETHODCALLTYPE *AddRef)(
140 IDXGIAdapter4 *This);
141
142 ULONG (STDMETHODCALLTYPE *Release)(
143 IDXGIAdapter4 *This);
144
145 /*** IDXGIObject methods ***/
146 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
147 IDXGIAdapter4 *This,
148 REFGUID guid,
149 UINT data_size,
150 const void *data);
151
152 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
153 IDXGIAdapter4 *This,
154 REFGUID guid,
155 const IUnknown *object);
156
157 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
158 IDXGIAdapter4 *This,
159 REFGUID guid,
160 UINT *data_size,
161 void *data);
162
163 HRESULT (STDMETHODCALLTYPE *GetParent)(
164 IDXGIAdapter4 *This,
165 REFIID riid,
166 void **parent);
167
168 /*** IDXGIAdapter methods ***/
169 HRESULT (STDMETHODCALLTYPE *EnumOutputs)(
170 IDXGIAdapter4 *This,
171 UINT output_idx,
172 IDXGIOutput **output);
173
174 HRESULT (STDMETHODCALLTYPE *GetDesc)(
175 IDXGIAdapter4 *This,
176 DXGI_ADAPTER_DESC *desc);
177
178 HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)(
179 IDXGIAdapter4 *This,
180 REFGUID guid,
181 LARGE_INTEGER *umd_version);
182
183 /*** IDXGIAdapter1 methods ***/
184 HRESULT (STDMETHODCALLTYPE *GetDesc1)(
185 IDXGIAdapter4 *This,
186 DXGI_ADAPTER_DESC1 *pDesc);
187
188 /*** IDXGIAdapter2 methods ***/
189 HRESULT (STDMETHODCALLTYPE *GetDesc2)(
190 IDXGIAdapter4 *This,
191 DXGI_ADAPTER_DESC2 *pDesc);
192
193 /*** IDXGIAdapter3 methods ***/
194 HRESULT (STDMETHODCALLTYPE *RegisterHardwareContentProtectionTeardownStatusEvent)(
195 IDXGIAdapter4 *This,
196 HANDLE event,
197 DWORD *cookie);
198
199 void (STDMETHODCALLTYPE *UnregisterHardwareContentProtectionTeardownStatus)(
200 IDXGIAdapter4 *This,
201 DWORD cookie);
202
203 HRESULT (STDMETHODCALLTYPE *QueryVideoMemoryInfo)(
204 IDXGIAdapter4 *This,
205 UINT node_index,
206 DXGI_MEMORY_SEGMENT_GROUP segment_group,
207 DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info);
208
209 HRESULT (STDMETHODCALLTYPE *SetVideoMemoryReservation)(
210 IDXGIAdapter4 *This,
211 UINT node_index,
212 DXGI_MEMORY_SEGMENT_GROUP segment_group,
213 UINT64 reservation);
214
215 HRESULT (STDMETHODCALLTYPE *RegisterVideoMemoryBudgetChangeNotificationEvent)(
216 IDXGIAdapter4 *This,
217 HANDLE event,
218 DWORD *cookie);
219
220 void (STDMETHODCALLTYPE *UnregisterVideoMemoryBudgetChangeNotification)(
221 IDXGIAdapter4 *This,
222 DWORD cookie);
223
224 /*** IDXGIAdapter4 methods ***/
225 HRESULT (STDMETHODCALLTYPE *GetDesc3)(
226 IDXGIAdapter4 *This,
227 DXGI_ADAPTER_DESC3 *desc);
228
229 END_INTERFACE
230} IDXGIAdapter4Vtbl;
231
232interface IDXGIAdapter4 {
233 CONST_VTBL IDXGIAdapter4Vtbl* lpVtbl;
234};
235
236#ifdef COBJMACROS
237#ifndef WIDL_C_INLINE_WRAPPERS
238/*** IUnknown methods ***/
239#define IDXGIAdapter4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
240#define IDXGIAdapter4_AddRef(This) (This)->lpVtbl->AddRef(This)
241#define IDXGIAdapter4_Release(This) (This)->lpVtbl->Release(This)
242/*** IDXGIObject methods ***/
243#define IDXGIAdapter4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
244#define IDXGIAdapter4_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
245#define IDXGIAdapter4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
246#define IDXGIAdapter4_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
247/*** IDXGIAdapter methods ***/
248#define IDXGIAdapter4_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output)
249#define IDXGIAdapter4_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
250#define IDXGIAdapter4_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version)
251/*** IDXGIAdapter1 methods ***/
252#define IDXGIAdapter4_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
253/*** IDXGIAdapter2 methods ***/
254#define IDXGIAdapter4_GetDesc2(This,pDesc) (This)->lpVtbl->GetDesc2(This,pDesc)
255/*** IDXGIAdapter3 methods ***/
256#define IDXGIAdapter4_RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie)
257#define IDXGIAdapter4_UnregisterHardwareContentProtectionTeardownStatus(This,cookie) (This)->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie)
258#define IDXGIAdapter4_QueryVideoMemoryInfo(This,node_index,segment_group,memory_info) (This)->lpVtbl->QueryVideoMemoryInfo(This,node_index,segment_group,memory_info)
259#define IDXGIAdapter4_SetVideoMemoryReservation(This,node_index,segment_group,reservation) (This)->lpVtbl->SetVideoMemoryReservation(This,node_index,segment_group,reservation)
260#define IDXGIAdapter4_RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie) (This)->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie)
261#define IDXGIAdapter4_UnregisterVideoMemoryBudgetChangeNotification(This,cookie) (This)->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie)
262/*** IDXGIAdapter4 methods ***/
263#define IDXGIAdapter4_GetDesc3(This,desc) (This)->lpVtbl->GetDesc3(This,desc)
264#else
265/*** IUnknown methods ***/
266static FORCEINLINE HRESULT IDXGIAdapter4_QueryInterface(IDXGIAdapter4* This,REFIID riid,void **ppvObject) {
267 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
268}
269static FORCEINLINE ULONG IDXGIAdapter4_AddRef(IDXGIAdapter4* This) {
270 return This->lpVtbl->AddRef(This);
271}
272static FORCEINLINE ULONG IDXGIAdapter4_Release(IDXGIAdapter4* This) {
273 return This->lpVtbl->Release(This);
274}
275/*** IDXGIObject methods ***/
276static FORCEINLINE HRESULT IDXGIAdapter4_SetPrivateData(IDXGIAdapter4* This,REFGUID guid,UINT data_size,const void *data) {
277 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
278}
279static FORCEINLINE HRESULT IDXGIAdapter4_SetPrivateDataInterface(IDXGIAdapter4* This,REFGUID guid,const IUnknown *object) {
280 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
281}
282static FORCEINLINE HRESULT IDXGIAdapter4_GetPrivateData(IDXGIAdapter4* This,REFGUID guid,UINT *data_size,void *data) {
283 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
284}
285static FORCEINLINE HRESULT IDXGIAdapter4_GetParent(IDXGIAdapter4* This,REFIID riid,void **parent) {
286 return This->lpVtbl->GetParent(This,riid,parent);
287}
288/*** IDXGIAdapter methods ***/
289static FORCEINLINE HRESULT IDXGIAdapter4_EnumOutputs(IDXGIAdapter4* This,UINT output_idx,IDXGIOutput **output) {
290 return This->lpVtbl->EnumOutputs(This,output_idx,output);
291}
292static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc(IDXGIAdapter4* This,DXGI_ADAPTER_DESC *desc) {
293 return This->lpVtbl->GetDesc(This,desc);
294}
295static FORCEINLINE HRESULT IDXGIAdapter4_CheckInterfaceSupport(IDXGIAdapter4* This,REFGUID guid,LARGE_INTEGER *umd_version) {
296 return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version);
297}
298/*** IDXGIAdapter1 methods ***/
299static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc1(IDXGIAdapter4* This,DXGI_ADAPTER_DESC1 *pDesc) {
300 return This->lpVtbl->GetDesc1(This,pDesc);
301}
302/*** IDXGIAdapter2 methods ***/
303static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc2(IDXGIAdapter4* This,DXGI_ADAPTER_DESC2 *pDesc) {
304 return This->lpVtbl->GetDesc2(This,pDesc);
305}
306/*** IDXGIAdapter3 methods ***/
307static FORCEINLINE HRESULT IDXGIAdapter4_RegisterHardwareContentProtectionTeardownStatusEvent(IDXGIAdapter4* This,HANDLE event,DWORD *cookie) {
308 return This->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie);
309}
310static FORCEINLINE void IDXGIAdapter4_UnregisterHardwareContentProtectionTeardownStatus(IDXGIAdapter4* This,DWORD cookie) {
311 This->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie);
312}
313static FORCEINLINE HRESULT IDXGIAdapter4_QueryVideoMemoryInfo(IDXGIAdapter4* This,UINT node_index,DXGI_MEMORY_SEGMENT_GROUP segment_group,DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info) {
314 return This->lpVtbl->QueryVideoMemoryInfo(This,node_index,segment_group,memory_info);
315}
316static FORCEINLINE HRESULT IDXGIAdapter4_SetVideoMemoryReservation(IDXGIAdapter4* This,UINT node_index,DXGI_MEMORY_SEGMENT_GROUP segment_group,UINT64 reservation) {
317 return This->lpVtbl->SetVideoMemoryReservation(This,node_index,segment_group,reservation);
318}
319static FORCEINLINE HRESULT IDXGIAdapter4_RegisterVideoMemoryBudgetChangeNotificationEvent(IDXGIAdapter4* This,HANDLE event,DWORD *cookie) {
320 return This->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie);
321}
322static FORCEINLINE void IDXGIAdapter4_UnregisterVideoMemoryBudgetChangeNotification(IDXGIAdapter4* This,DWORD cookie) {
323 This->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie);
324}
325/*** IDXGIAdapter4 methods ***/
326static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc3(IDXGIAdapter4* This,DXGI_ADAPTER_DESC3 *desc) {
327 return This->lpVtbl->GetDesc3(This,desc);
328}
329#endif
330#endif
331
332#endif
333
334
335#endif /* __IDXGIAdapter4_INTERFACE_DEFINED__ */
336
337/*****************************************************************************
338 * IDXGIOutput6 interface
339 */
340#ifndef __IDXGIOutput6_INTERFACE_DEFINED__
341#define __IDXGIOutput6_INTERFACE_DEFINED__
342
343DEFINE_GUID(IID_IDXGIOutput6, 0x068346e8, 0xaaec, 0x4b84, 0xad,0xd7, 0x13,0x7f,0x51,0x3f,0x77,0xa1);
344#if defined(__cplusplus) && !defined(CINTERFACE)
345MIDL_INTERFACE("068346e8-aaec-4b84-add7-137f513f77a1")
346IDXGIOutput6 : public IDXGIOutput5
347{
348 virtual HRESULT STDMETHODCALLTYPE GetDesc1(
349 DXGI_OUTPUT_DESC1 *desc) = 0;
350
351 virtual HRESULT STDMETHODCALLTYPE CheckHardwareCompositionSupport(
352 UINT *flags) = 0;
353
354};
355#ifdef __CRT_UUID_DECL
356__CRT_UUID_DECL(IDXGIOutput6, 0x068346e8, 0xaaec, 0x4b84, 0xad,0xd7, 0x13,0x7f,0x51,0x3f,0x77,0xa1)
357#endif
358#else
359typedef struct IDXGIOutput6Vtbl {
360 BEGIN_INTERFACE
361
362 /*** IUnknown methods ***/
363 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
364 IDXGIOutput6 *This,
365 REFIID riid,
366 void **ppvObject);
367
368 ULONG (STDMETHODCALLTYPE *AddRef)(
369 IDXGIOutput6 *This);
370
371 ULONG (STDMETHODCALLTYPE *Release)(
372 IDXGIOutput6 *This);
373
374 /*** IDXGIObject methods ***/
375 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
376 IDXGIOutput6 *This,
377 REFGUID guid,
378 UINT data_size,
379 const void *data);
380
381 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
382 IDXGIOutput6 *This,
383 REFGUID guid,
384 const IUnknown *object);
385
386 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
387 IDXGIOutput6 *This,
388 REFGUID guid,
389 UINT *data_size,
390 void *data);
391
392 HRESULT (STDMETHODCALLTYPE *GetParent)(
393 IDXGIOutput6 *This,
394 REFIID riid,
395 void **parent);
396
397 /*** IDXGIOutput methods ***/
398 HRESULT (STDMETHODCALLTYPE *GetDesc)(
399 IDXGIOutput6 *This,
400 DXGI_OUTPUT_DESC *desc);
401
402 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
403 IDXGIOutput6 *This,
404 DXGI_FORMAT format,
405 UINT flags,
406 UINT *mode_count,
407 DXGI_MODE_DESC *desc);
408
409 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
410 IDXGIOutput6 *This,
411 const DXGI_MODE_DESC *mode,
412 DXGI_MODE_DESC *closest_match,
413 IUnknown *device);
414
415 HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
416 IDXGIOutput6 *This);
417
418 HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
419 IDXGIOutput6 *This,
420 IUnknown *device,
421 WINBOOL exclusive);
422
423 void (STDMETHODCALLTYPE *ReleaseOwnership)(
424 IDXGIOutput6 *This);
425
426 HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
427 IDXGIOutput6 *This,
428 DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
429
430 HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
431 IDXGIOutput6 *This,
432 const DXGI_GAMMA_CONTROL *gamma_control);
433
434 HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
435 IDXGIOutput6 *This,
436 DXGI_GAMMA_CONTROL *gamma_control);
437
438 HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
439 IDXGIOutput6 *This,
440 IDXGISurface *surface);
441
442 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
443 IDXGIOutput6 *This,
444 IDXGISurface *surface);
445
446 HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
447 IDXGIOutput6 *This,
448 DXGI_FRAME_STATISTICS *stats);
449
450 /*** IDXGIOutput1 methods ***/
451 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
452 IDXGIOutput6 *This,
453 DXGI_FORMAT enum_format,
454 UINT flags,
455 UINT *num_modes,
456 DXGI_MODE_DESC1 *desc);
457
458 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
459 IDXGIOutput6 *This,
460 const DXGI_MODE_DESC1 *mode_to_match,
461 DXGI_MODE_DESC1 *closest_match,
462 IUnknown *concerned_device);
463
464 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
465 IDXGIOutput6 *This,
466 IDXGIResource *destination);
467
468 HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
469 IDXGIOutput6 *This,
470 IUnknown *device,
471 IDXGIOutputDuplication **output_duplication);
472
473 /*** IDXGIOutput2 methods ***/
474 WINBOOL (STDMETHODCALLTYPE *SupportsOverlays)(
475 IDXGIOutput6 *This);
476
477 /*** IDXGIOutput3 methods ***/
478 HRESULT (STDMETHODCALLTYPE *CheckOverlaySupport)(
479 IDXGIOutput6 *This,
480 DXGI_FORMAT enum_format,
481 IUnknown *concerned_device,
482 UINT *flags);
483
484 /*** IDXGIOutput4 methods ***/
485 HRESULT (STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport)(
486 IDXGIOutput6 *This,
487 DXGI_FORMAT format,
488 DXGI_COLOR_SPACE_TYPE colour_space,
489 IUnknown *device,
490 UINT *flags);
491
492 /*** IDXGIOutput5 methods ***/
493 HRESULT (STDMETHODCALLTYPE *DuplicateOutput1)(
494 IDXGIOutput6 *This,
495 IUnknown *device,
496 UINT flags,
497 UINT format_count,
498 const DXGI_FORMAT *formats,
499 IDXGIOutputDuplication **duplication);
500
501 /*** IDXGIOutput6 methods ***/
502 HRESULT (STDMETHODCALLTYPE *GetDesc1)(
503 IDXGIOutput6 *This,
504 DXGI_OUTPUT_DESC1 *desc);
505
506 HRESULT (STDMETHODCALLTYPE *CheckHardwareCompositionSupport)(
507 IDXGIOutput6 *This,
508 UINT *flags);
509
510 END_INTERFACE
511} IDXGIOutput6Vtbl;
512
513interface IDXGIOutput6 {
514 CONST_VTBL IDXGIOutput6Vtbl* lpVtbl;
515};
516
517#ifdef COBJMACROS
518#ifndef WIDL_C_INLINE_WRAPPERS
519/*** IUnknown methods ***/
520#define IDXGIOutput6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
521#define IDXGIOutput6_AddRef(This) (This)->lpVtbl->AddRef(This)
522#define IDXGIOutput6_Release(This) (This)->lpVtbl->Release(This)
523/*** IDXGIObject methods ***/
524#define IDXGIOutput6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
525#define IDXGIOutput6_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
526#define IDXGIOutput6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
527#define IDXGIOutput6_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
528/*** IDXGIOutput methods ***/
529#define IDXGIOutput6_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
530#define IDXGIOutput6_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
531#define IDXGIOutput6_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
532#define IDXGIOutput6_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
533#define IDXGIOutput6_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
534#define IDXGIOutput6_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
535#define IDXGIOutput6_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
536#define IDXGIOutput6_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
537#define IDXGIOutput6_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
538#define IDXGIOutput6_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
539#define IDXGIOutput6_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
540#define IDXGIOutput6_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
541/*** IDXGIOutput1 methods ***/
542#define IDXGIOutput6_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc)
543#define IDXGIOutput6_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device)
544#define IDXGIOutput6_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination)
545#define IDXGIOutput6_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication)
546/*** IDXGIOutput2 methods ***/
547#define IDXGIOutput6_SupportsOverlays(This) (This)->lpVtbl->SupportsOverlays(This)
548/*** IDXGIOutput3 methods ***/
549#define IDXGIOutput6_CheckOverlaySupport(This,enum_format,concerned_device,flags) (This)->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags)
550/*** IDXGIOutput4 methods ***/
551#define IDXGIOutput6_CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags) (This)->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags)
552/*** IDXGIOutput5 methods ***/
553#define IDXGIOutput6_DuplicateOutput1(This,device,flags,format_count,formats,duplication) (This)->lpVtbl->DuplicateOutput1(This,device,flags,format_count,formats,duplication)
554/*** IDXGIOutput6 methods ***/
555#define IDXGIOutput6_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc)
556#define IDXGIOutput6_CheckHardwareCompositionSupport(This,flags) (This)->lpVtbl->CheckHardwareCompositionSupport(This,flags)
557#else
558/*** IUnknown methods ***/
559static FORCEINLINE HRESULT IDXGIOutput6_QueryInterface(IDXGIOutput6* This,REFIID riid,void **ppvObject) {
560 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
561}
562static FORCEINLINE ULONG IDXGIOutput6_AddRef(IDXGIOutput6* This) {
563 return This->lpVtbl->AddRef(This);
564}
565static FORCEINLINE ULONG IDXGIOutput6_Release(IDXGIOutput6* This) {
566 return This->lpVtbl->Release(This);
567}
568/*** IDXGIObject methods ***/
569static FORCEINLINE HRESULT IDXGIOutput6_SetPrivateData(IDXGIOutput6* This,REFGUID guid,UINT data_size,const void *data) {
570 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
571}
572static FORCEINLINE HRESULT IDXGIOutput6_SetPrivateDataInterface(IDXGIOutput6* This,REFGUID guid,const IUnknown *object) {
573 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
574}
575static FORCEINLINE HRESULT IDXGIOutput6_GetPrivateData(IDXGIOutput6* This,REFGUID guid,UINT *data_size,void *data) {
576 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
577}
578static FORCEINLINE HRESULT IDXGIOutput6_GetParent(IDXGIOutput6* This,REFIID riid,void **parent) {
579 return This->lpVtbl->GetParent(This,riid,parent);
580}
581/*** IDXGIOutput methods ***/
582static FORCEINLINE HRESULT IDXGIOutput6_GetDesc(IDXGIOutput6* This,DXGI_OUTPUT_DESC *desc) {
583 return This->lpVtbl->GetDesc(This,desc);
584}
585static FORCEINLINE HRESULT IDXGIOutput6_GetDisplayModeList(IDXGIOutput6* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
586 return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
587}
588static FORCEINLINE HRESULT IDXGIOutput6_FindClosestMatchingMode(IDXGIOutput6* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
589 return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
590}
591static FORCEINLINE HRESULT IDXGIOutput6_WaitForVBlank(IDXGIOutput6* This) {
592 return This->lpVtbl->WaitForVBlank(This);
593}
594static FORCEINLINE HRESULT IDXGIOutput6_TakeOwnership(IDXGIOutput6* This,IUnknown *device,WINBOOL exclusive) {
595 return This->lpVtbl->TakeOwnership(This,device,exclusive);
596}
597static FORCEINLINE void IDXGIOutput6_ReleaseOwnership(IDXGIOutput6* This) {
598 This->lpVtbl->ReleaseOwnership(This);
599}
600static FORCEINLINE HRESULT IDXGIOutput6_GetGammaControlCapabilities(IDXGIOutput6* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
601 return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
602}
603static FORCEINLINE HRESULT IDXGIOutput6_SetGammaControl(IDXGIOutput6* This,const DXGI_GAMMA_CONTROL *gamma_control) {
604 return This->lpVtbl->SetGammaControl(This,gamma_control);
605}
606static FORCEINLINE HRESULT IDXGIOutput6_GetGammaControl(IDXGIOutput6* This,DXGI_GAMMA_CONTROL *gamma_control) {
607 return This->lpVtbl->GetGammaControl(This,gamma_control);
608}
609static FORCEINLINE HRESULT IDXGIOutput6_SetDisplaySurface(IDXGIOutput6* This,IDXGISurface *surface) {
610 return This->lpVtbl->SetDisplaySurface(This,surface);
611}
612static FORCEINLINE HRESULT IDXGIOutput6_GetDisplaySurfaceData(IDXGIOutput6* This,IDXGISurface *surface) {
613 return This->lpVtbl->GetDisplaySurfaceData(This,surface);
614}
615static FORCEINLINE HRESULT IDXGIOutput6_GetFrameStatistics(IDXGIOutput6* This,DXGI_FRAME_STATISTICS *stats) {
616 return This->lpVtbl->GetFrameStatistics(This,stats);
617}
618/*** IDXGIOutput1 methods ***/
619static FORCEINLINE HRESULT IDXGIOutput6_GetDisplayModeList1(IDXGIOutput6* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) {
620 return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc);
621}
622static FORCEINLINE HRESULT IDXGIOutput6_FindClosestMatchingMode1(IDXGIOutput6* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) {
623 return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device);
624}
625static FORCEINLINE HRESULT IDXGIOutput6_GetDisplaySurfaceData1(IDXGIOutput6* This,IDXGIResource *destination) {
626 return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
627}
628static FORCEINLINE HRESULT IDXGIOutput6_DuplicateOutput(IDXGIOutput6* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
629 return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
630}
631/*** IDXGIOutput2 methods ***/
632static FORCEINLINE WINBOOL IDXGIOutput6_SupportsOverlays(IDXGIOutput6* This) {
633 return This->lpVtbl->SupportsOverlays(This);
634}
635/*** IDXGIOutput3 methods ***/
636static FORCEINLINE HRESULT IDXGIOutput6_CheckOverlaySupport(IDXGIOutput6* This,DXGI_FORMAT enum_format,IUnknown *concerned_device,UINT *flags) {
637 return This->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags);
638}
639/*** IDXGIOutput4 methods ***/
640static FORCEINLINE HRESULT IDXGIOutput6_CheckOverlayColorSpaceSupport(IDXGIOutput6* This,DXGI_FORMAT format,DXGI_COLOR_SPACE_TYPE colour_space,IUnknown *device,UINT *flags) {
641 return This->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags);
642}
643/*** IDXGIOutput5 methods ***/
644static FORCEINLINE HRESULT IDXGIOutput6_DuplicateOutput1(IDXGIOutput6* This,IUnknown *device,UINT flags,UINT format_count,const DXGI_FORMAT *formats,IDXGIOutputDuplication **duplication) {
645 return This->lpVtbl->DuplicateOutput1(This,device,flags,format_count,formats,duplication);
646}
647/*** IDXGIOutput6 methods ***/
648static FORCEINLINE HRESULT IDXGIOutput6_GetDesc1(IDXGIOutput6* This,DXGI_OUTPUT_DESC1 *desc) {
649 return This->lpVtbl->GetDesc1(This,desc);
650}
651static FORCEINLINE HRESULT IDXGIOutput6_CheckHardwareCompositionSupport(IDXGIOutput6* This,UINT *flags) {
652 return This->lpVtbl->CheckHardwareCompositionSupport(This,flags);
653}
654#endif
655#endif
656
657#endif
658
659
660#endif /* __IDXGIOutput6_INTERFACE_DEFINED__ */
661
662/*****************************************************************************
663 * IDXGIFactory6 interface
664 */
665#ifndef __IDXGIFactory6_INTERFACE_DEFINED__
666#define __IDXGIFactory6_INTERFACE_DEFINED__
667
668DEFINE_GUID(IID_IDXGIFactory6, 0xc1b6694f, 0xff09, 0x44a9, 0xb0,0x3c, 0x77,0x90,0x0a,0x0a,0x1d,0x17);
669#if defined(__cplusplus) && !defined(CINTERFACE)
670MIDL_INTERFACE("c1b6694f-ff09-44a9-b03c-77900a0a1d17")
671IDXGIFactory6 : public IDXGIFactory5
672{
673 virtual HRESULT STDMETHODCALLTYPE EnumAdapterByGpuPreference(
674 UINT adapter_idx,
675 DXGI_GPU_PREFERENCE gpu_preference,
676 REFIID iid,
677 void **adapter) = 0;
678
679};
680#ifdef __CRT_UUID_DECL
681__CRT_UUID_DECL(IDXGIFactory6, 0xc1b6694f, 0xff09, 0x44a9, 0xb0,0x3c, 0x77,0x90,0x0a,0x0a,0x1d,0x17)
682#endif
683#else
684typedef struct IDXGIFactory6Vtbl {
685 BEGIN_INTERFACE
686
687 /*** IUnknown methods ***/
688 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
689 IDXGIFactory6 *This,
690 REFIID riid,
691 void **ppvObject);
692
693 ULONG (STDMETHODCALLTYPE *AddRef)(
694 IDXGIFactory6 *This);
695
696 ULONG (STDMETHODCALLTYPE *Release)(
697 IDXGIFactory6 *This);
698
699 /*** IDXGIObject methods ***/
700 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
701 IDXGIFactory6 *This,
702 REFGUID guid,
703 UINT data_size,
704 const void *data);
705
706 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
707 IDXGIFactory6 *This,
708 REFGUID guid,
709 const IUnknown *object);
710
711 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
712 IDXGIFactory6 *This,
713 REFGUID guid,
714 UINT *data_size,
715 void *data);
716
717 HRESULT (STDMETHODCALLTYPE *GetParent)(
718 IDXGIFactory6 *This,
719 REFIID riid,
720 void **parent);
721
722 /*** IDXGIFactory methods ***/
723 HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
724 IDXGIFactory6 *This,
725 UINT adapter_idx,
726 IDXGIAdapter **adapter);
727
728 HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
729 IDXGIFactory6 *This,
730 HWND window,
731 UINT flags);
732
733 HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
734 IDXGIFactory6 *This,
735 HWND *window);
736
737 HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
738 IDXGIFactory6 *This,
739 IUnknown *device,
740 DXGI_SWAP_CHAIN_DESC *desc,
741 IDXGISwapChain **swapchain);
742
743 HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
744 IDXGIFactory6 *This,
745 HMODULE swrast,
746 IDXGIAdapter **adapter);
747
748 /*** IDXGIFactory1 methods ***/
749 HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
750 IDXGIFactory6 *This,
751 UINT Adapter,
752 IDXGIAdapter1 **ppAdapter);
753
754 WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
755 IDXGIFactory6 *This);
756
757 /*** IDXGIFactory2 methods ***/
758 WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
759 IDXGIFactory6 *This);
760
761 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
762 IDXGIFactory6 *This,
763 IUnknown *pDevice,
764 HWND hWnd,
765 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
766 const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
767 IDXGIOutput *pRestrictToOutput,
768 IDXGISwapChain1 **ppSwapChain);
769
770 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
771 IDXGIFactory6 *This,
772 IUnknown *pDevice,
773 IUnknown *pWindow,
774 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
775 IDXGIOutput *pRestrictToOutput,
776 IDXGISwapChain1 **ppSwapChain);
777
778 HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
779 IDXGIFactory6 *This,
780 HANDLE hResource,
781 LUID *pLuid);
782
783 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
784 IDXGIFactory6 *This,
785 HWND WindowHandle,
786 UINT wMsg,
787 DWORD *pdwCookie);
788
789 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
790 IDXGIFactory6 *This,
791 HANDLE hEvent,
792 DWORD *pdwCookie);
793
794 void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
795 IDXGIFactory6 *This,
796 DWORD dwCookie);
797
798 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
799 IDXGIFactory6 *This,
800 HWND WindowHandle,
801 UINT wMsg,
802 DWORD *pdwCookie);
803
804 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
805 IDXGIFactory6 *This,
806 HANDLE hEvent,
807 DWORD *pdwCookie);
808
809 void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
810 IDXGIFactory6 *This,
811 DWORD dwCookie);
812
813 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
814 IDXGIFactory6 *This,
815 IUnknown *pDevice,
816 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
817 IDXGIOutput *pRestrictToOutput,
818 IDXGISwapChain1 **ppSwapChain);
819
820 /*** IDXGIFactory3 methods ***/
821 UINT (STDMETHODCALLTYPE *GetCreationFlags)(
822 IDXGIFactory6 *This);
823
824 /*** IDXGIFactory4 methods ***/
825 HRESULT (STDMETHODCALLTYPE *EnumAdapterByLuid)(
826 IDXGIFactory6 *This,
827 LUID luid,
828 REFIID iid,
829 void **adapter);
830
831 HRESULT (STDMETHODCALLTYPE *EnumWarpAdapter)(
832 IDXGIFactory6 *This,
833 REFIID iid,
834 void **adapter);
835
836 /*** IDXGIFactory5 methods ***/
837 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
838 IDXGIFactory6 *This,
839 DXGI_FEATURE feature,
840 void *support_data,
841 UINT support_data_size);
842
843 /*** IDXGIFactory6 methods ***/
844 HRESULT (STDMETHODCALLTYPE *EnumAdapterByGpuPreference)(
845 IDXGIFactory6 *This,
846 UINT adapter_idx,
847 DXGI_GPU_PREFERENCE gpu_preference,
848 REFIID iid,
849 void **adapter);
850
851 END_INTERFACE
852} IDXGIFactory6Vtbl;
853
854interface IDXGIFactory6 {
855 CONST_VTBL IDXGIFactory6Vtbl* lpVtbl;
856};
857
858#ifdef COBJMACROS
859#ifndef WIDL_C_INLINE_WRAPPERS
860/*** IUnknown methods ***/
861#define IDXGIFactory6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
862#define IDXGIFactory6_AddRef(This) (This)->lpVtbl->AddRef(This)
863#define IDXGIFactory6_Release(This) (This)->lpVtbl->Release(This)
864/*** IDXGIObject methods ***/
865#define IDXGIFactory6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
866#define IDXGIFactory6_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
867#define IDXGIFactory6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
868#define IDXGIFactory6_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
869/*** IDXGIFactory methods ***/
870#define IDXGIFactory6_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
871#define IDXGIFactory6_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
872#define IDXGIFactory6_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
873#define IDXGIFactory6_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
874#define IDXGIFactory6_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
875/*** IDXGIFactory1 methods ***/
876#define IDXGIFactory6_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
877#define IDXGIFactory6_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
878/*** IDXGIFactory2 methods ***/
879#define IDXGIFactory6_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
880#define IDXGIFactory6_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
881#define IDXGIFactory6_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
882#define IDXGIFactory6_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
883#define IDXGIFactory6_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
884#define IDXGIFactory6_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
885#define IDXGIFactory6_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
886#define IDXGIFactory6_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
887#define IDXGIFactory6_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
888#define IDXGIFactory6_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
889#define IDXGIFactory6_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
890/*** IDXGIFactory3 methods ***/
891#define IDXGIFactory6_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
892/*** IDXGIFactory4 methods ***/
893#define IDXGIFactory6_EnumAdapterByLuid(This,luid,iid,adapter) (This)->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter)
894#define IDXGIFactory6_EnumWarpAdapter(This,iid,adapter) (This)->lpVtbl->EnumWarpAdapter(This,iid,adapter)
895/*** IDXGIFactory5 methods ***/
896#define IDXGIFactory6_CheckFeatureSupport(This,feature,support_data,support_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size)
897/*** IDXGIFactory6 methods ***/
898#define IDXGIFactory6_EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter) (This)->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter)
899#else
900/*** IUnknown methods ***/
901static FORCEINLINE HRESULT IDXGIFactory6_QueryInterface(IDXGIFactory6* This,REFIID riid,void **ppvObject) {
902 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
903}
904static FORCEINLINE ULONG IDXGIFactory6_AddRef(IDXGIFactory6* This) {
905 return This->lpVtbl->AddRef(This);
906}
907static FORCEINLINE ULONG IDXGIFactory6_Release(IDXGIFactory6* This) {
908 return This->lpVtbl->Release(This);
909}
910/*** IDXGIObject methods ***/
911static FORCEINLINE HRESULT IDXGIFactory6_SetPrivateData(IDXGIFactory6* This,REFGUID guid,UINT data_size,const void *data) {
912 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
913}
914static FORCEINLINE HRESULT IDXGIFactory6_SetPrivateDataInterface(IDXGIFactory6* This,REFGUID guid,const IUnknown *object) {
915 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
916}
917static FORCEINLINE HRESULT IDXGIFactory6_GetPrivateData(IDXGIFactory6* This,REFGUID guid,UINT *data_size,void *data) {
918 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
919}
920static FORCEINLINE HRESULT IDXGIFactory6_GetParent(IDXGIFactory6* This,REFIID riid,void **parent) {
921 return This->lpVtbl->GetParent(This,riid,parent);
922}
923/*** IDXGIFactory methods ***/
924static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapters(IDXGIFactory6* This,UINT adapter_idx,IDXGIAdapter **adapter) {
925 return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
926}
927static FORCEINLINE HRESULT IDXGIFactory6_MakeWindowAssociation(IDXGIFactory6* This,HWND window,UINT flags) {
928 return This->lpVtbl->MakeWindowAssociation(This,window,flags);
929}
930static FORCEINLINE HRESULT IDXGIFactory6_GetWindowAssociation(IDXGIFactory6* This,HWND *window) {
931 return This->lpVtbl->GetWindowAssociation(This,window);
932}
933static FORCEINLINE HRESULT IDXGIFactory6_CreateSwapChain(IDXGIFactory6* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
934 return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
935}
936static FORCEINLINE HRESULT IDXGIFactory6_CreateSoftwareAdapter(IDXGIFactory6* This,HMODULE swrast,IDXGIAdapter **adapter) {
937 return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
938}
939/*** IDXGIFactory1 methods ***/
940static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapters1(IDXGIFactory6* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
941 return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
942}
943static FORCEINLINE WINBOOL IDXGIFactory6_IsCurrent(IDXGIFactory6* This) {
944 return This->lpVtbl->IsCurrent(This);
945}
946/*** IDXGIFactory2 methods ***/
947static FORCEINLINE WINBOOL IDXGIFactory6_IsWindowedStereoEnabled(IDXGIFactory6* This) {
948 return This->lpVtbl->IsWindowedStereoEnabled(This);
949}
950static FORCEINLINE HRESULT IDXGIFactory6_CreateSwapChainForHwnd(IDXGIFactory6* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
951 return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
952}
953static FORCEINLINE HRESULT IDXGIFactory6_CreateSwapChainForCoreWindow(IDXGIFactory6* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
954 return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
955}
956static FORCEINLINE HRESULT IDXGIFactory6_GetSharedResourceAdapterLuid(IDXGIFactory6* This,HANDLE hResource,LUID *pLuid) {
957 return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
958}
959static FORCEINLINE HRESULT IDXGIFactory6_RegisterStereoStatusWindow(IDXGIFactory6* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
960 return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
961}
962static FORCEINLINE HRESULT IDXGIFactory6_RegisterStereoStatusEvent(IDXGIFactory6* This,HANDLE hEvent,DWORD *pdwCookie) {
963 return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
964}
965static FORCEINLINE void IDXGIFactory6_UnregisterStereoStatus(IDXGIFactory6* This,DWORD dwCookie) {
966 This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
967}
968static FORCEINLINE HRESULT IDXGIFactory6_RegisterOcclusionStatusWindow(IDXGIFactory6* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
969 return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
970}
971static FORCEINLINE HRESULT IDXGIFactory6_RegisterOcclusionStatusEvent(IDXGIFactory6* This,HANDLE hEvent,DWORD *pdwCookie) {
972 return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
973}
974static FORCEINLINE void IDXGIFactory6_UnregisterOcclusionStatus(IDXGIFactory6* This,DWORD dwCookie) {
975 This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
976}
977static FORCEINLINE HRESULT IDXGIFactory6_CreateSwapChainForComposition(IDXGIFactory6* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
978 return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
979}
980/*** IDXGIFactory3 methods ***/
981static FORCEINLINE UINT IDXGIFactory6_GetCreationFlags(IDXGIFactory6* This) {
982 return This->lpVtbl->GetCreationFlags(This);
983}
984/*** IDXGIFactory4 methods ***/
985static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapterByLuid(IDXGIFactory6* This,LUID luid,REFIID iid,void **adapter) {
986 return This->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter);
987}
988static FORCEINLINE HRESULT IDXGIFactory6_EnumWarpAdapter(IDXGIFactory6* This,REFIID iid,void **adapter) {
989 return This->lpVtbl->EnumWarpAdapter(This,iid,adapter);
990}
991/*** IDXGIFactory5 methods ***/
992static FORCEINLINE HRESULT IDXGIFactory6_CheckFeatureSupport(IDXGIFactory6* This,DXGI_FEATURE feature,void *support_data,UINT support_data_size) {
993 return This->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size);
994}
995/*** IDXGIFactory6 methods ***/
996static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapterByGpuPreference(IDXGIFactory6* This,UINT adapter_idx,DXGI_GPU_PREFERENCE gpu_preference,REFIID iid,void **adapter) {
997 return This->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter);
998}
999#endif
1000#endif
1001
1002#endif
1003
1004
1005#endif /* __IDXGIFactory6_INTERFACE_DEFINED__ */
1006
1007/*****************************************************************************
1008 * IDXGIFactory7 interface
1009 */
1010#ifndef __IDXGIFactory7_INTERFACE_DEFINED__
1011#define __IDXGIFactory7_INTERFACE_DEFINED__
1012
1013DEFINE_GUID(IID_IDXGIFactory7, 0xa4966eed, 0x76db, 0x44da, 0x84,0xc1, 0xee,0x9a,0x7a,0xfb,0x20,0xa8);
1014#if defined(__cplusplus) && !defined(CINTERFACE)
1015MIDL_INTERFACE("a4966eed-76db-44da-84c1-ee9a7afb20a8")
1016IDXGIFactory7 : public IDXGIFactory6
1017{
1018 virtual HRESULT STDMETHODCALLTYPE RegisterAdaptersChangedEvent(
1019 HANDLE event,
1020 DWORD *cookie) = 0;
1021
1022 virtual HRESULT STDMETHODCALLTYPE UnregisterAdaptersChangedEvent(
1023 DWORD cookie) = 0;
1024
1025};
1026#ifdef __CRT_UUID_DECL
1027__CRT_UUID_DECL(IDXGIFactory7, 0xa4966eed, 0x76db, 0x44da, 0x84,0xc1, 0xee,0x9a,0x7a,0xfb,0x20,0xa8)
1028#endif
1029#else
1030typedef struct IDXGIFactory7Vtbl {
1031 BEGIN_INTERFACE
1032
1033 /*** IUnknown methods ***/
1034 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1035 IDXGIFactory7 *This,
1036 REFIID riid,
1037 void **ppvObject);
1038
1039 ULONG (STDMETHODCALLTYPE *AddRef)(
1040 IDXGIFactory7 *This);
1041
1042 ULONG (STDMETHODCALLTYPE *Release)(
1043 IDXGIFactory7 *This);
1044
1045 /*** IDXGIObject methods ***/
1046 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
1047 IDXGIFactory7 *This,
1048 REFGUID guid,
1049 UINT data_size,
1050 const void *data);
1051
1052 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
1053 IDXGIFactory7 *This,
1054 REFGUID guid,
1055 const IUnknown *object);
1056
1057 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
1058 IDXGIFactory7 *This,
1059 REFGUID guid,
1060 UINT *data_size,
1061 void *data);
1062
1063 HRESULT (STDMETHODCALLTYPE *GetParent)(
1064 IDXGIFactory7 *This,
1065 REFIID riid,
1066 void **parent);
1067
1068 /*** IDXGIFactory methods ***/
1069 HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
1070 IDXGIFactory7 *This,
1071 UINT adapter_idx,
1072 IDXGIAdapter **adapter);
1073
1074 HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
1075 IDXGIFactory7 *This,
1076 HWND window,
1077 UINT flags);
1078
1079 HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
1080 IDXGIFactory7 *This,
1081 HWND *window);
1082
1083 HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
1084 IDXGIFactory7 *This,
1085 IUnknown *device,
1086 DXGI_SWAP_CHAIN_DESC *desc,
1087 IDXGISwapChain **swapchain);
1088
1089 HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
1090 IDXGIFactory7 *This,
1091 HMODULE swrast,
1092 IDXGIAdapter **adapter);
1093
1094 /*** IDXGIFactory1 methods ***/
1095 HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
1096 IDXGIFactory7 *This,
1097 UINT Adapter,
1098 IDXGIAdapter1 **ppAdapter);
1099
1100 WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
1101 IDXGIFactory7 *This);
1102
1103 /*** IDXGIFactory2 methods ***/
1104 WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
1105 IDXGIFactory7 *This);
1106
1107 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
1108 IDXGIFactory7 *This,
1109 IUnknown *pDevice,
1110 HWND hWnd,
1111 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1112 const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
1113 IDXGIOutput *pRestrictToOutput,
1114 IDXGISwapChain1 **ppSwapChain);
1115
1116 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
1117 IDXGIFactory7 *This,
1118 IUnknown *pDevice,
1119 IUnknown *pWindow,
1120 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1121 IDXGIOutput *pRestrictToOutput,
1122 IDXGISwapChain1 **ppSwapChain);
1123
1124 HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
1125 IDXGIFactory7 *This,
1126 HANDLE hResource,
1127 LUID *pLuid);
1128
1129 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
1130 IDXGIFactory7 *This,
1131 HWND WindowHandle,
1132 UINT wMsg,
1133 DWORD *pdwCookie);
1134
1135 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
1136 IDXGIFactory7 *This,
1137 HANDLE hEvent,
1138 DWORD *pdwCookie);
1139
1140 void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
1141 IDXGIFactory7 *This,
1142 DWORD dwCookie);
1143
1144 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
1145 IDXGIFactory7 *This,
1146 HWND WindowHandle,
1147 UINT wMsg,
1148 DWORD *pdwCookie);
1149
1150 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
1151 IDXGIFactory7 *This,
1152 HANDLE hEvent,
1153 DWORD *pdwCookie);
1154
1155 void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
1156 IDXGIFactory7 *This,
1157 DWORD dwCookie);
1158
1159 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
1160 IDXGIFactory7 *This,
1161 IUnknown *pDevice,
1162 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1163 IDXGIOutput *pRestrictToOutput,
1164 IDXGISwapChain1 **ppSwapChain);
1165
1166 /*** IDXGIFactory3 methods ***/
1167 UINT (STDMETHODCALLTYPE *GetCreationFlags)(
1168 IDXGIFactory7 *This);
1169
1170 /*** IDXGIFactory4 methods ***/
1171 HRESULT (STDMETHODCALLTYPE *EnumAdapterByLuid)(
1172 IDXGIFactory7 *This,
1173 LUID luid,
1174 REFIID iid,
1175 void **adapter);
1176
1177 HRESULT (STDMETHODCALLTYPE *EnumWarpAdapter)(
1178 IDXGIFactory7 *This,
1179 REFIID iid,
1180 void **adapter);
1181
1182 /*** IDXGIFactory5 methods ***/
1183 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
1184 IDXGIFactory7 *This,
1185 DXGI_FEATURE feature,
1186 void *support_data,
1187 UINT support_data_size);
1188
1189 /*** IDXGIFactory6 methods ***/
1190 HRESULT (STDMETHODCALLTYPE *EnumAdapterByGpuPreference)(
1191 IDXGIFactory7 *This,
1192 UINT adapter_idx,
1193 DXGI_GPU_PREFERENCE gpu_preference,
1194 REFIID iid,
1195 void **adapter);
1196
1197 /*** IDXGIFactory7 methods ***/
1198 HRESULT (STDMETHODCALLTYPE *RegisterAdaptersChangedEvent)(
1199 IDXGIFactory7 *This,
1200 HANDLE event,
1201 DWORD *cookie);
1202
1203 HRESULT (STDMETHODCALLTYPE *UnregisterAdaptersChangedEvent)(
1204 IDXGIFactory7 *This,
1205 DWORD cookie);
1206
1207 END_INTERFACE
1208} IDXGIFactory7Vtbl;
1209
1210interface IDXGIFactory7 {
1211 CONST_VTBL IDXGIFactory7Vtbl* lpVtbl;
1212};
1213
1214#ifdef COBJMACROS
1215#ifndef WIDL_C_INLINE_WRAPPERS
1216/*** IUnknown methods ***/
1217#define IDXGIFactory7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1218#define IDXGIFactory7_AddRef(This) (This)->lpVtbl->AddRef(This)
1219#define IDXGIFactory7_Release(This) (This)->lpVtbl->Release(This)
1220/*** IDXGIObject methods ***/
1221#define IDXGIFactory7_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
1222#define IDXGIFactory7_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
1223#define IDXGIFactory7_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
1224#define IDXGIFactory7_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
1225/*** IDXGIFactory methods ***/
1226#define IDXGIFactory7_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
1227#define IDXGIFactory7_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
1228#define IDXGIFactory7_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
1229#define IDXGIFactory7_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
1230#define IDXGIFactory7_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
1231/*** IDXGIFactory1 methods ***/
1232#define IDXGIFactory7_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
1233#define IDXGIFactory7_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
1234/*** IDXGIFactory2 methods ***/
1235#define IDXGIFactory7_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
1236#define IDXGIFactory7_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
1237#define IDXGIFactory7_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
1238#define IDXGIFactory7_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
1239#define IDXGIFactory7_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
1240#define IDXGIFactory7_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
1241#define IDXGIFactory7_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
1242#define IDXGIFactory7_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
1243#define IDXGIFactory7_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
1244#define IDXGIFactory7_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
1245#define IDXGIFactory7_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
1246/*** IDXGIFactory3 methods ***/
1247#define IDXGIFactory7_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
1248/*** IDXGIFactory4 methods ***/
1249#define IDXGIFactory7_EnumAdapterByLuid(This,luid,iid,adapter) (This)->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter)
1250#define IDXGIFactory7_EnumWarpAdapter(This,iid,adapter) (This)->lpVtbl->EnumWarpAdapter(This,iid,adapter)
1251/*** IDXGIFactory5 methods ***/
1252#define IDXGIFactory7_CheckFeatureSupport(This,feature,support_data,support_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size)
1253/*** IDXGIFactory6 methods ***/
1254#define IDXGIFactory7_EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter) (This)->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter)
1255/*** IDXGIFactory7 methods ***/
1256#define IDXGIFactory7_RegisterAdaptersChangedEvent(This,event,cookie) (This)->lpVtbl->RegisterAdaptersChangedEvent(This,event,cookie)
1257#define IDXGIFactory7_UnregisterAdaptersChangedEvent(This,cookie) (This)->lpVtbl->UnregisterAdaptersChangedEvent(This,cookie)
1258#else
1259/*** IUnknown methods ***/
1260static FORCEINLINE HRESULT IDXGIFactory7_QueryInterface(IDXGIFactory7* This,REFIID riid,void **ppvObject) {
1261 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1262}
1263static FORCEINLINE ULONG IDXGIFactory7_AddRef(IDXGIFactory7* This) {
1264 return This->lpVtbl->AddRef(This);
1265}
1266static FORCEINLINE ULONG IDXGIFactory7_Release(IDXGIFactory7* This) {
1267 return This->lpVtbl->Release(This);
1268}
1269/*** IDXGIObject methods ***/
1270static FORCEINLINE HRESULT IDXGIFactory7_SetPrivateData(IDXGIFactory7* This,REFGUID guid,UINT data_size,const void *data) {
1271 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
1272}
1273static FORCEINLINE HRESULT IDXGIFactory7_SetPrivateDataInterface(IDXGIFactory7* This,REFGUID guid,const IUnknown *object) {
1274 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
1275}
1276static FORCEINLINE HRESULT IDXGIFactory7_GetPrivateData(IDXGIFactory7* This,REFGUID guid,UINT *data_size,void *data) {
1277 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
1278}
1279static FORCEINLINE HRESULT IDXGIFactory7_GetParent(IDXGIFactory7* This,REFIID riid,void **parent) {
1280 return This->lpVtbl->GetParent(This,riid,parent);
1281}
1282/*** IDXGIFactory methods ***/
1283static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapters(IDXGIFactory7* This,UINT adapter_idx,IDXGIAdapter **adapter) {
1284 return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
1285}
1286static FORCEINLINE HRESULT IDXGIFactory7_MakeWindowAssociation(IDXGIFactory7* This,HWND window,UINT flags) {
1287 return This->lpVtbl->MakeWindowAssociation(This,window,flags);
1288}
1289static FORCEINLINE HRESULT IDXGIFactory7_GetWindowAssociation(IDXGIFactory7* This,HWND *window) {
1290 return This->lpVtbl->GetWindowAssociation(This,window);
1291}
1292static FORCEINLINE HRESULT IDXGIFactory7_CreateSwapChain(IDXGIFactory7* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
1293 return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
1294}
1295static FORCEINLINE HRESULT IDXGIFactory7_CreateSoftwareAdapter(IDXGIFactory7* This,HMODULE swrast,IDXGIAdapter **adapter) {
1296 return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
1297}
1298/*** IDXGIFactory1 methods ***/
1299static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapters1(IDXGIFactory7* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
1300 return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
1301}
1302static FORCEINLINE WINBOOL IDXGIFactory7_IsCurrent(IDXGIFactory7* This) {
1303 return This->lpVtbl->IsCurrent(This);
1304}
1305/*** IDXGIFactory2 methods ***/
1306static FORCEINLINE WINBOOL IDXGIFactory7_IsWindowedStereoEnabled(IDXGIFactory7* This) {
1307 return This->lpVtbl->IsWindowedStereoEnabled(This);
1308}
1309static FORCEINLINE HRESULT IDXGIFactory7_CreateSwapChainForHwnd(IDXGIFactory7* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1310 return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
1311}
1312static FORCEINLINE HRESULT IDXGIFactory7_CreateSwapChainForCoreWindow(IDXGIFactory7* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1313 return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
1314}
1315static FORCEINLINE HRESULT IDXGIFactory7_GetSharedResourceAdapterLuid(IDXGIFactory7* This,HANDLE hResource,LUID *pLuid) {
1316 return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
1317}
1318static FORCEINLINE HRESULT IDXGIFactory7_RegisterStereoStatusWindow(IDXGIFactory7* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
1319 return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
1320}
1321static FORCEINLINE HRESULT IDXGIFactory7_RegisterStereoStatusEvent(IDXGIFactory7* This,HANDLE hEvent,DWORD *pdwCookie) {
1322 return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
1323}
1324static FORCEINLINE void IDXGIFactory7_UnregisterStereoStatus(IDXGIFactory7* This,DWORD dwCookie) {
1325 This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
1326}
1327static FORCEINLINE HRESULT IDXGIFactory7_RegisterOcclusionStatusWindow(IDXGIFactory7* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
1328 return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
1329}
1330static FORCEINLINE HRESULT IDXGIFactory7_RegisterOcclusionStatusEvent(IDXGIFactory7* This,HANDLE hEvent,DWORD *pdwCookie) {
1331 return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
1332}
1333static FORCEINLINE void IDXGIFactory7_UnregisterOcclusionStatus(IDXGIFactory7* This,DWORD dwCookie) {
1334 This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
1335}
1336static FORCEINLINE HRESULT IDXGIFactory7_CreateSwapChainForComposition(IDXGIFactory7* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1337 return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
1338}
1339/*** IDXGIFactory3 methods ***/
1340static FORCEINLINE UINT IDXGIFactory7_GetCreationFlags(IDXGIFactory7* This) {
1341 return This->lpVtbl->GetCreationFlags(This);
1342}
1343/*** IDXGIFactory4 methods ***/
1344static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapterByLuid(IDXGIFactory7* This,LUID luid,REFIID iid,void **adapter) {
1345 return This->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter);
1346}
1347static FORCEINLINE HRESULT IDXGIFactory7_EnumWarpAdapter(IDXGIFactory7* This,REFIID iid,void **adapter) {
1348 return This->lpVtbl->EnumWarpAdapter(This,iid,adapter);
1349}
1350/*** IDXGIFactory5 methods ***/
1351static FORCEINLINE HRESULT IDXGIFactory7_CheckFeatureSupport(IDXGIFactory7* This,DXGI_FEATURE feature,void *support_data,UINT support_data_size) {
1352 return This->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size);
1353}
1354/*** IDXGIFactory6 methods ***/
1355static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapterByGpuPreference(IDXGIFactory7* This,UINT adapter_idx,DXGI_GPU_PREFERENCE gpu_preference,REFIID iid,void **adapter) {
1356 return This->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter);
1357}
1358/*** IDXGIFactory7 methods ***/
1359static FORCEINLINE HRESULT IDXGIFactory7_RegisterAdaptersChangedEvent(IDXGIFactory7* This,HANDLE event,DWORD *cookie) {
1360 return This->lpVtbl->RegisterAdaptersChangedEvent(This,event,cookie);
1361}
1362static FORCEINLINE HRESULT IDXGIFactory7_UnregisterAdaptersChangedEvent(IDXGIFactory7* This,DWORD cookie) {
1363 return This->lpVtbl->UnregisterAdaptersChangedEvent(This,cookie);
1364}
1365#endif
1366#endif
1367
1368#endif
1369
1370
1371#endif /* __IDXGIFactory7_INTERFACE_DEFINED__ */
1372
1373/* Begin additional prototypes for all interfaces */
1374
1375
1376/* End additional prototypes */
1377
1378#ifdef __cplusplus
1379}
1380#endif
1381
1382#endif /* __dxgi1_6_h__ */
Note: See TracBrowser for help on using the repository browser.