ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dxgi1_6.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 60962 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
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__
23 typedef interface IDXGIAdapter4 IDXGIAdapter4;
24 #ifdef __cplusplus
25 interface IDXGIAdapter4;
26 #endif /* __cplusplus */
27 #endif
28
29 #ifndef __IDXGIOutput6_FWD_DEFINED__
30 #define __IDXGIOutput6_FWD_DEFINED__
31 typedef interface IDXGIOutput6 IDXGIOutput6;
32 #ifdef __cplusplus
33 interface IDXGIOutput6;
34 #endif /* __cplusplus */
35 #endif
36
37 #ifndef __IDXGIFactory6_FWD_DEFINED__
38 #define __IDXGIFactory6_FWD_DEFINED__
39 typedef interface IDXGIFactory6 IDXGIFactory6;
40 #ifdef __cplusplus
41 interface IDXGIFactory6;
42 #endif /* __cplusplus */
43 #endif
44
45 #ifndef __IDXGIFactory7_FWD_DEFINED__
46 #define __IDXGIFactory7_FWD_DEFINED__
47 typedef interface IDXGIFactory7 IDXGIFactory7;
48 #ifdef __cplusplus
49 interface IDXGIFactory7;
50 #endif /* __cplusplus */
51 #endif
52
53 /* Headers for imported files */
54
55 #include <dxgi1_5.h>
56
57 #ifdef __cplusplus
58 extern "C" {
59 #endif
60
61 typedef 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;
71 typedef 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;
76 typedef 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;
81 typedef 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;
95 typedef 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
117 DEFINE_GUID(IID_IDXGIAdapter4, 0x3c8d99d1, 0x4fbf, 0x4181, 0xa8,0x2c, 0xaf,0x66,0xbf,0x7b,0xd2,0x4e);
118 #if defined(__cplusplus) && !defined(CINTERFACE)
119 MIDL_INTERFACE("3c8d99d1-4fbf-4181-a82c-af66bf7bd24e")
120 IDXGIAdapter4 : 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
130 typedef 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
232 interface 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 ***/
266 static FORCEINLINE HRESULT IDXGIAdapter4_QueryInterface(IDXGIAdapter4* This,REFIID riid,void **ppvObject) {
267 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
268 }
269 static FORCEINLINE ULONG IDXGIAdapter4_AddRef(IDXGIAdapter4* This) {
270 return This->lpVtbl->AddRef(This);
271 }
272 static FORCEINLINE ULONG IDXGIAdapter4_Release(IDXGIAdapter4* This) {
273 return This->lpVtbl->Release(This);
274 }
275 /*** IDXGIObject methods ***/
276 static 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 }
279 static FORCEINLINE HRESULT IDXGIAdapter4_SetPrivateDataInterface(IDXGIAdapter4* This,REFGUID guid,const IUnknown *object) {
280 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
281 }
282 static FORCEINLINE HRESULT IDXGIAdapter4_GetPrivateData(IDXGIAdapter4* This,REFGUID guid,UINT *data_size,void *data) {
283 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
284 }
285 static FORCEINLINE HRESULT IDXGIAdapter4_GetParent(IDXGIAdapter4* This,REFIID riid,void **parent) {
286 return This->lpVtbl->GetParent(This,riid,parent);
287 }
288 /*** IDXGIAdapter methods ***/
289 static FORCEINLINE HRESULT IDXGIAdapter4_EnumOutputs(IDXGIAdapter4* This,UINT output_idx,IDXGIOutput **output) {
290 return This->lpVtbl->EnumOutputs(This,output_idx,output);
291 }
292 static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc(IDXGIAdapter4* This,DXGI_ADAPTER_DESC *desc) {
293 return This->lpVtbl->GetDesc(This,desc);
294 }
295 static 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 ***/
299 static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc1(IDXGIAdapter4* This,DXGI_ADAPTER_DESC1 *pDesc) {
300 return This->lpVtbl->GetDesc1(This,pDesc);
301 }
302 /*** IDXGIAdapter2 methods ***/
303 static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc2(IDXGIAdapter4* This,DXGI_ADAPTER_DESC2 *pDesc) {
304 return This->lpVtbl->GetDesc2(This,pDesc);
305 }
306 /*** IDXGIAdapter3 methods ***/
307 static FORCEINLINE HRESULT IDXGIAdapter4_RegisterHardwareContentProtectionTeardownStatusEvent(IDXGIAdapter4* This,HANDLE event,DWORD *cookie) {
308 return This->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie);
309 }
310 static FORCEINLINE void IDXGIAdapter4_UnregisterHardwareContentProtectionTeardownStatus(IDXGIAdapter4* This,DWORD cookie) {
311 This->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie);
312 }
313 static 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 }
316 static 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 }
319 static FORCEINLINE HRESULT IDXGIAdapter4_RegisterVideoMemoryBudgetChangeNotificationEvent(IDXGIAdapter4* This,HANDLE event,DWORD *cookie) {
320 return This->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie);
321 }
322 static FORCEINLINE void IDXGIAdapter4_UnregisterVideoMemoryBudgetChangeNotification(IDXGIAdapter4* This,DWORD cookie) {
323 This->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie);
324 }
325 /*** IDXGIAdapter4 methods ***/
326 static 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
343 DEFINE_GUID(IID_IDXGIOutput6, 0x068346e8, 0xaaec, 0x4b84, 0xad,0xd7, 0x13,0x7f,0x51,0x3f,0x77,0xa1);
344 #if defined(__cplusplus) && !defined(CINTERFACE)
345 MIDL_INTERFACE("068346e8-aaec-4b84-add7-137f513f77a1")
346 IDXGIOutput6 : 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
359 typedef 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
513 interface 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 ***/
559 static FORCEINLINE HRESULT IDXGIOutput6_QueryInterface(IDXGIOutput6* This,REFIID riid,void **ppvObject) {
560 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
561 }
562 static FORCEINLINE ULONG IDXGIOutput6_AddRef(IDXGIOutput6* This) {
563 return This->lpVtbl->AddRef(This);
564 }
565 static FORCEINLINE ULONG IDXGIOutput6_Release(IDXGIOutput6* This) {
566 return This->lpVtbl->Release(This);
567 }
568 /*** IDXGIObject methods ***/
569 static 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 }
572 static FORCEINLINE HRESULT IDXGIOutput6_SetPrivateDataInterface(IDXGIOutput6* This,REFGUID guid,const IUnknown *object) {
573 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
574 }
575 static FORCEINLINE HRESULT IDXGIOutput6_GetPrivateData(IDXGIOutput6* This,REFGUID guid,UINT *data_size,void *data) {
576 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
577 }
578 static FORCEINLINE HRESULT IDXGIOutput6_GetParent(IDXGIOutput6* This,REFIID riid,void **parent) {
579 return This->lpVtbl->GetParent(This,riid,parent);
580 }
581 /*** IDXGIOutput methods ***/
582 static FORCEINLINE HRESULT IDXGIOutput6_GetDesc(IDXGIOutput6* This,DXGI_OUTPUT_DESC *desc) {
583 return This->lpVtbl->GetDesc(This,desc);
584 }
585 static 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 }
588 static 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 }
591 static FORCEINLINE HRESULT IDXGIOutput6_WaitForVBlank(IDXGIOutput6* This) {
592 return This->lpVtbl->WaitForVBlank(This);
593 }
594 static FORCEINLINE HRESULT IDXGIOutput6_TakeOwnership(IDXGIOutput6* This,IUnknown *device,WINBOOL exclusive) {
595 return This->lpVtbl->TakeOwnership(This,device,exclusive);
596 }
597 static FORCEINLINE void IDXGIOutput6_ReleaseOwnership(IDXGIOutput6* This) {
598 This->lpVtbl->ReleaseOwnership(This);
599 }
600 static FORCEINLINE HRESULT IDXGIOutput6_GetGammaControlCapabilities(IDXGIOutput6* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
601 return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
602 }
603 static FORCEINLINE HRESULT IDXGIOutput6_SetGammaControl(IDXGIOutput6* This,const DXGI_GAMMA_CONTROL *gamma_control) {
604 return This->lpVtbl->SetGammaControl(This,gamma_control);
605 }
606 static FORCEINLINE HRESULT IDXGIOutput6_GetGammaControl(IDXGIOutput6* This,DXGI_GAMMA_CONTROL *gamma_control) {
607 return This->lpVtbl->GetGammaControl(This,gamma_control);
608 }
609 static FORCEINLINE HRESULT IDXGIOutput6_SetDisplaySurface(IDXGIOutput6* This,IDXGISurface *surface) {
610 return This->lpVtbl->SetDisplaySurface(This,surface);
611 }
612 static FORCEINLINE HRESULT IDXGIOutput6_GetDisplaySurfaceData(IDXGIOutput6* This,IDXGISurface *surface) {
613 return This->lpVtbl->GetDisplaySurfaceData(This,surface);
614 }
615 static FORCEINLINE HRESULT IDXGIOutput6_GetFrameStatistics(IDXGIOutput6* This,DXGI_FRAME_STATISTICS *stats) {
616 return This->lpVtbl->GetFrameStatistics(This,stats);
617 }
618 /*** IDXGIOutput1 methods ***/
619 static 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 }
622 static 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 }
625 static FORCEINLINE HRESULT IDXGIOutput6_GetDisplaySurfaceData1(IDXGIOutput6* This,IDXGIResource *destination) {
626 return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
627 }
628 static FORCEINLINE HRESULT IDXGIOutput6_DuplicateOutput(IDXGIOutput6* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
629 return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
630 }
631 /*** IDXGIOutput2 methods ***/
632 static FORCEINLINE WINBOOL IDXGIOutput6_SupportsOverlays(IDXGIOutput6* This) {
633 return This->lpVtbl->SupportsOverlays(This);
634 }
635 /*** IDXGIOutput3 methods ***/
636 static 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 ***/
640 static 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 ***/
644 static 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 ***/
648 static FORCEINLINE HRESULT IDXGIOutput6_GetDesc1(IDXGIOutput6* This,DXGI_OUTPUT_DESC1 *desc) {
649 return This->lpVtbl->GetDesc1(This,desc);
650 }
651 static 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
668 DEFINE_GUID(IID_IDXGIFactory6, 0xc1b6694f, 0xff09, 0x44a9, 0xb0,0x3c, 0x77,0x90,0x0a,0x0a,0x1d,0x17);
669 #if defined(__cplusplus) && !defined(CINTERFACE)
670 MIDL_INTERFACE("c1b6694f-ff09-44a9-b03c-77900a0a1d17")
671 IDXGIFactory6 : 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
684 typedef 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
854 interface 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 ***/
901 static FORCEINLINE HRESULT IDXGIFactory6_QueryInterface(IDXGIFactory6* This,REFIID riid,void **ppvObject) {
902 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
903 }
904 static FORCEINLINE ULONG IDXGIFactory6_AddRef(IDXGIFactory6* This) {
905 return This->lpVtbl->AddRef(This);
906 }
907 static FORCEINLINE ULONG IDXGIFactory6_Release(IDXGIFactory6* This) {
908 return This->lpVtbl->Release(This);
909 }
910 /*** IDXGIObject methods ***/
911 static 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 }
914 static FORCEINLINE HRESULT IDXGIFactory6_SetPrivateDataInterface(IDXGIFactory6* This,REFGUID guid,const IUnknown *object) {
915 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
916 }
917 static FORCEINLINE HRESULT IDXGIFactory6_GetPrivateData(IDXGIFactory6* This,REFGUID guid,UINT *data_size,void *data) {
918 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
919 }
920 static FORCEINLINE HRESULT IDXGIFactory6_GetParent(IDXGIFactory6* This,REFIID riid,void **parent) {
921 return This->lpVtbl->GetParent(This,riid,parent);
922 }
923 /*** IDXGIFactory methods ***/
924 static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapters(IDXGIFactory6* This,UINT adapter_idx,IDXGIAdapter **adapter) {
925 return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
926 }
927 static FORCEINLINE HRESULT IDXGIFactory6_MakeWindowAssociation(IDXGIFactory6* This,HWND window,UINT flags) {
928 return This->lpVtbl->MakeWindowAssociation(This,window,flags);
929 }
930 static FORCEINLINE HRESULT IDXGIFactory6_GetWindowAssociation(IDXGIFactory6* This,HWND *window) {
931 return This->lpVtbl->GetWindowAssociation(This,window);
932 }
933 static 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 }
936 static FORCEINLINE HRESULT IDXGIFactory6_CreateSoftwareAdapter(IDXGIFactory6* This,HMODULE swrast,IDXGIAdapter **adapter) {
937 return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
938 }
939 /*** IDXGIFactory1 methods ***/
940 static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapters1(IDXGIFactory6* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
941 return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
942 }
943 static FORCEINLINE WINBOOL IDXGIFactory6_IsCurrent(IDXGIFactory6* This) {
944 return This->lpVtbl->IsCurrent(This);
945 }
946 /*** IDXGIFactory2 methods ***/
947 static FORCEINLINE WINBOOL IDXGIFactory6_IsWindowedStereoEnabled(IDXGIFactory6* This) {
948 return This->lpVtbl->IsWindowedStereoEnabled(This);
949 }
950 static 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 }
953 static 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 }
956 static FORCEINLINE HRESULT IDXGIFactory6_GetSharedResourceAdapterLuid(IDXGIFactory6* This,HANDLE hResource,LUID *pLuid) {
957 return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
958 }
959 static FORCEINLINE HRESULT IDXGIFactory6_RegisterStereoStatusWindow(IDXGIFactory6* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
960 return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
961 }
962 static FORCEINLINE HRESULT IDXGIFactory6_RegisterStereoStatusEvent(IDXGIFactory6* This,HANDLE hEvent,DWORD *pdwCookie) {
963 return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
964 }
965 static FORCEINLINE void IDXGIFactory6_UnregisterStereoStatus(IDXGIFactory6* This,DWORD dwCookie) {
966 This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
967 }
968 static FORCEINLINE HRESULT IDXGIFactory6_RegisterOcclusionStatusWindow(IDXGIFactory6* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
969 return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
970 }
971 static FORCEINLINE HRESULT IDXGIFactory6_RegisterOcclusionStatusEvent(IDXGIFactory6* This,HANDLE hEvent,DWORD *pdwCookie) {
972 return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
973 }
974 static FORCEINLINE void IDXGIFactory6_UnregisterOcclusionStatus(IDXGIFactory6* This,DWORD dwCookie) {
975 This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
976 }
977 static 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 ***/
981 static FORCEINLINE UINT IDXGIFactory6_GetCreationFlags(IDXGIFactory6* This) {
982 return This->lpVtbl->GetCreationFlags(This);
983 }
984 /*** IDXGIFactory4 methods ***/
985 static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapterByLuid(IDXGIFactory6* This,LUID luid,REFIID iid,void **adapter) {
986 return This->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter);
987 }
988 static FORCEINLINE HRESULT IDXGIFactory6_EnumWarpAdapter(IDXGIFactory6* This,REFIID iid,void **adapter) {
989 return This->lpVtbl->EnumWarpAdapter(This,iid,adapter);
990 }
991 /*** IDXGIFactory5 methods ***/
992 static 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 ***/
996 static 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
1013 DEFINE_GUID(IID_IDXGIFactory7, 0xa4966eed, 0x76db, 0x44da, 0x84,0xc1, 0xee,0x9a,0x7a,0xfb,0x20,0xa8);
1014 #if defined(__cplusplus) && !defined(CINTERFACE)
1015 MIDL_INTERFACE("a4966eed-76db-44da-84c1-ee9a7afb20a8")
1016 IDXGIFactory7 : 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
1030 typedef 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
1210 interface 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 ***/
1260 static FORCEINLINE HRESULT IDXGIFactory7_QueryInterface(IDXGIFactory7* This,REFIID riid,void **ppvObject) {
1261 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1262 }
1263 static FORCEINLINE ULONG IDXGIFactory7_AddRef(IDXGIFactory7* This) {
1264 return This->lpVtbl->AddRef(This);
1265 }
1266 static FORCEINLINE ULONG IDXGIFactory7_Release(IDXGIFactory7* This) {
1267 return This->lpVtbl->Release(This);
1268 }
1269 /*** IDXGIObject methods ***/
1270 static 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 }
1273 static FORCEINLINE HRESULT IDXGIFactory7_SetPrivateDataInterface(IDXGIFactory7* This,REFGUID guid,const IUnknown *object) {
1274 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
1275 }
1276 static FORCEINLINE HRESULT IDXGIFactory7_GetPrivateData(IDXGIFactory7* This,REFGUID guid,UINT *data_size,void *data) {
1277 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
1278 }
1279 static FORCEINLINE HRESULT IDXGIFactory7_GetParent(IDXGIFactory7* This,REFIID riid,void **parent) {
1280 return This->lpVtbl->GetParent(This,riid,parent);
1281 }
1282 /*** IDXGIFactory methods ***/
1283 static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapters(IDXGIFactory7* This,UINT adapter_idx,IDXGIAdapter **adapter) {
1284 return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
1285 }
1286 static FORCEINLINE HRESULT IDXGIFactory7_MakeWindowAssociation(IDXGIFactory7* This,HWND window,UINT flags) {
1287 return This->lpVtbl->MakeWindowAssociation(This,window,flags);
1288 }
1289 static FORCEINLINE HRESULT IDXGIFactory7_GetWindowAssociation(IDXGIFactory7* This,HWND *window) {
1290 return This->lpVtbl->GetWindowAssociation(This,window);
1291 }
1292 static 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 }
1295 static FORCEINLINE HRESULT IDXGIFactory7_CreateSoftwareAdapter(IDXGIFactory7* This,HMODULE swrast,IDXGIAdapter **adapter) {
1296 return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
1297 }
1298 /*** IDXGIFactory1 methods ***/
1299 static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapters1(IDXGIFactory7* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
1300 return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
1301 }
1302 static FORCEINLINE WINBOOL IDXGIFactory7_IsCurrent(IDXGIFactory7* This) {
1303 return This->lpVtbl->IsCurrent(This);
1304 }
1305 /*** IDXGIFactory2 methods ***/
1306 static FORCEINLINE WINBOOL IDXGIFactory7_IsWindowedStereoEnabled(IDXGIFactory7* This) {
1307 return This->lpVtbl->IsWindowedStereoEnabled(This);
1308 }
1309 static 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 }
1312 static 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 }
1315 static FORCEINLINE HRESULT IDXGIFactory7_GetSharedResourceAdapterLuid(IDXGIFactory7* This,HANDLE hResource,LUID *pLuid) {
1316 return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
1317 }
1318 static FORCEINLINE HRESULT IDXGIFactory7_RegisterStereoStatusWindow(IDXGIFactory7* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
1319 return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
1320 }
1321 static FORCEINLINE HRESULT IDXGIFactory7_RegisterStereoStatusEvent(IDXGIFactory7* This,HANDLE hEvent,DWORD *pdwCookie) {
1322 return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
1323 }
1324 static FORCEINLINE void IDXGIFactory7_UnregisterStereoStatus(IDXGIFactory7* This,DWORD dwCookie) {
1325 This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
1326 }
1327 static FORCEINLINE HRESULT IDXGIFactory7_RegisterOcclusionStatusWindow(IDXGIFactory7* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
1328 return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
1329 }
1330 static FORCEINLINE HRESULT IDXGIFactory7_RegisterOcclusionStatusEvent(IDXGIFactory7* This,HANDLE hEvent,DWORD *pdwCookie) {
1331 return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
1332 }
1333 static FORCEINLINE void IDXGIFactory7_UnregisterOcclusionStatus(IDXGIFactory7* This,DWORD dwCookie) {
1334 This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
1335 }
1336 static 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 ***/
1340 static FORCEINLINE UINT IDXGIFactory7_GetCreationFlags(IDXGIFactory7* This) {
1341 return This->lpVtbl->GetCreationFlags(This);
1342 }
1343 /*** IDXGIFactory4 methods ***/
1344 static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapterByLuid(IDXGIFactory7* This,LUID luid,REFIID iid,void **adapter) {
1345 return This->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter);
1346 }
1347 static FORCEINLINE HRESULT IDXGIFactory7_EnumWarpAdapter(IDXGIFactory7* This,REFIID iid,void **adapter) {
1348 return This->lpVtbl->EnumWarpAdapter(This,iid,adapter);
1349 }
1350 /*** IDXGIFactory5 methods ***/
1351 static 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 ***/
1355 static 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 ***/
1359 static FORCEINLINE HRESULT IDXGIFactory7_RegisterAdaptersChangedEvent(IDXGIFactory7* This,HANDLE event,DWORD *cookie) {
1360 return This->lpVtbl->RegisterAdaptersChangedEvent(This,event,cookie);
1361 }
1362 static 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__ */