source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dxgi1_5.h@ 1170

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

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

File size: 60.1 KB
Line 
1/*** Autogenerated by WIDL 6.4 from include/dxgi1_5.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_5_h__
17#define __dxgi1_5_h__
18
19/* Forward declarations */
20
21#ifndef __IDXGIOutput5_FWD_DEFINED__
22#define __IDXGIOutput5_FWD_DEFINED__
23typedef interface IDXGIOutput5 IDXGIOutput5;
24#ifdef __cplusplus
25interface IDXGIOutput5;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IDXGISwapChain4_FWD_DEFINED__
30#define __IDXGISwapChain4_FWD_DEFINED__
31typedef interface IDXGISwapChain4 IDXGISwapChain4;
32#ifdef __cplusplus
33interface IDXGISwapChain4;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IDXGIDevice4_FWD_DEFINED__
38#define __IDXGIDevice4_FWD_DEFINED__
39typedef interface IDXGIDevice4 IDXGIDevice4;
40#ifdef __cplusplus
41interface IDXGIDevice4;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IDXGIFactory5_FWD_DEFINED__
46#define __IDXGIFactory5_FWD_DEFINED__
47typedef interface IDXGIFactory5 IDXGIFactory5;
48#ifdef __cplusplus
49interface IDXGIFactory5;
50#endif /* __cplusplus */
51#endif
52
53/* Headers for imported files */
54
55#include <dxgi1_4.h>
56
57#ifdef __cplusplus
58extern "C" {
59#endif
60
61typedef enum DXGI_OUTDUPL_FLAG {
62 DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY = 0x1
63} DXGI_OUTDUPL_FLAG;
64typedef enum DXGI_HDR_METADATA_TYPE {
65 DXGI_HDR_METADATA_TYPE_NONE = 0x0,
66 DXGI_HDR_METADATA_TYPE_HDR10 = 0x1,
67 DXGI_HDR_METADATA_TYPE_HDR10PLUS = 0x2
68} DXGI_HDR_METADATA_TYPE;
69typedef enum _DXGI_OFFER_RESOURCE_FLAGS {
70 DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT = 0x1
71} DXGI_OFFER_RESOURCE_FLAGS;
72typedef enum _DXGI_RECLAIM_RESOURCE_RESULTS {
73 DXGI_RECLAIM_RESOURCE_RESULT_OK = 0x0,
74 DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED = 0x1,
75 DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED = 0x2
76} DXGI_RECLAIM_RESOURCE_RESULTS;
77typedef enum DXGI_FEATURE {
78 DXGI_FEATURE_PRESENT_ALLOW_TEARING = 0x0
79} DXGI_FEATURE;
80typedef struct DXGI_HDR_METADATA_HDR10 {
81 UINT16 RedPrimary[2];
82 UINT16 GreenPrimary[2];
83 UINT16 BluePrimary[2];
84 UINT16 WhitePoint[2];
85 UINT MaxMasteringLuminance;
86 UINT MinMasteringLuminance;
87 UINT16 MaxContentLightLevel;
88 UINT16 MaxFrameAverageLightLevel;
89} DXGI_HDR_METADATA_HDR10;
90typedef struct DXGI_HDR_METADATA_HDR10PLUS {
91 BYTE Data[72];
92} DXGI_HDR_METADATA_HDR10PLUS;
93/*****************************************************************************
94 * IDXGIOutput5 interface
95 */
96#ifndef __IDXGIOutput5_INTERFACE_DEFINED__
97#define __IDXGIOutput5_INTERFACE_DEFINED__
98
99DEFINE_GUID(IID_IDXGIOutput5, 0x80a07424, 0xab52, 0x42eb, 0x83,0x3c, 0x0c,0x42,0xfd,0x28,0x2d,0x98);
100#if defined(__cplusplus) && !defined(CINTERFACE)
101MIDL_INTERFACE("80a07424-ab52-42eb-833c-0c42fd282d98")
102IDXGIOutput5 : public IDXGIOutput4
103{
104 virtual HRESULT STDMETHODCALLTYPE DuplicateOutput1(
105 IUnknown *device,
106 UINT flags,
107 UINT format_count,
108 const DXGI_FORMAT *formats,
109 IDXGIOutputDuplication **duplication) = 0;
110
111};
112#ifdef __CRT_UUID_DECL
113__CRT_UUID_DECL(IDXGIOutput5, 0x80a07424, 0xab52, 0x42eb, 0x83,0x3c, 0x0c,0x42,0xfd,0x28,0x2d,0x98)
114#endif
115#else
116typedef struct IDXGIOutput5Vtbl {
117 BEGIN_INTERFACE
118
119 /*** IUnknown methods ***/
120 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
121 IDXGIOutput5 *This,
122 REFIID riid,
123 void **ppvObject);
124
125 ULONG (STDMETHODCALLTYPE *AddRef)(
126 IDXGIOutput5 *This);
127
128 ULONG (STDMETHODCALLTYPE *Release)(
129 IDXGIOutput5 *This);
130
131 /*** IDXGIObject methods ***/
132 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
133 IDXGIOutput5 *This,
134 REFGUID guid,
135 UINT data_size,
136 const void *data);
137
138 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
139 IDXGIOutput5 *This,
140 REFGUID guid,
141 const IUnknown *object);
142
143 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
144 IDXGIOutput5 *This,
145 REFGUID guid,
146 UINT *data_size,
147 void *data);
148
149 HRESULT (STDMETHODCALLTYPE *GetParent)(
150 IDXGIOutput5 *This,
151 REFIID riid,
152 void **parent);
153
154 /*** IDXGIOutput methods ***/
155 HRESULT (STDMETHODCALLTYPE *GetDesc)(
156 IDXGIOutput5 *This,
157 DXGI_OUTPUT_DESC *desc);
158
159 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
160 IDXGIOutput5 *This,
161 DXGI_FORMAT format,
162 UINT flags,
163 UINT *mode_count,
164 DXGI_MODE_DESC *desc);
165
166 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
167 IDXGIOutput5 *This,
168 const DXGI_MODE_DESC *mode,
169 DXGI_MODE_DESC *closest_match,
170 IUnknown *device);
171
172 HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
173 IDXGIOutput5 *This);
174
175 HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
176 IDXGIOutput5 *This,
177 IUnknown *device,
178 WINBOOL exclusive);
179
180 void (STDMETHODCALLTYPE *ReleaseOwnership)(
181 IDXGIOutput5 *This);
182
183 HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
184 IDXGIOutput5 *This,
185 DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
186
187 HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
188 IDXGIOutput5 *This,
189 const DXGI_GAMMA_CONTROL *gamma_control);
190
191 HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
192 IDXGIOutput5 *This,
193 DXGI_GAMMA_CONTROL *gamma_control);
194
195 HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
196 IDXGIOutput5 *This,
197 IDXGISurface *surface);
198
199 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
200 IDXGIOutput5 *This,
201 IDXGISurface *surface);
202
203 HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
204 IDXGIOutput5 *This,
205 DXGI_FRAME_STATISTICS *stats);
206
207 /*** IDXGIOutput1 methods ***/
208 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
209 IDXGIOutput5 *This,
210 DXGI_FORMAT enum_format,
211 UINT flags,
212 UINT *num_modes,
213 DXGI_MODE_DESC1 *desc);
214
215 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
216 IDXGIOutput5 *This,
217 const DXGI_MODE_DESC1 *mode_to_match,
218 DXGI_MODE_DESC1 *closest_match,
219 IUnknown *concerned_device);
220
221 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
222 IDXGIOutput5 *This,
223 IDXGIResource *destination);
224
225 HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
226 IDXGIOutput5 *This,
227 IUnknown *device,
228 IDXGIOutputDuplication **output_duplication);
229
230 /*** IDXGIOutput2 methods ***/
231 WINBOOL (STDMETHODCALLTYPE *SupportsOverlays)(
232 IDXGIOutput5 *This);
233
234 /*** IDXGIOutput3 methods ***/
235 HRESULT (STDMETHODCALLTYPE *CheckOverlaySupport)(
236 IDXGIOutput5 *This,
237 DXGI_FORMAT enum_format,
238 IUnknown *concerned_device,
239 UINT *flags);
240
241 /*** IDXGIOutput4 methods ***/
242 HRESULT (STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport)(
243 IDXGIOutput5 *This,
244 DXGI_FORMAT format,
245 DXGI_COLOR_SPACE_TYPE colour_space,
246 IUnknown *device,
247 UINT *flags);
248
249 /*** IDXGIOutput5 methods ***/
250 HRESULT (STDMETHODCALLTYPE *DuplicateOutput1)(
251 IDXGIOutput5 *This,
252 IUnknown *device,
253 UINT flags,
254 UINT format_count,
255 const DXGI_FORMAT *formats,
256 IDXGIOutputDuplication **duplication);
257
258 END_INTERFACE
259} IDXGIOutput5Vtbl;
260
261interface IDXGIOutput5 {
262 CONST_VTBL IDXGIOutput5Vtbl* lpVtbl;
263};
264
265#ifdef COBJMACROS
266#ifndef WIDL_C_INLINE_WRAPPERS
267/*** IUnknown methods ***/
268#define IDXGIOutput5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
269#define IDXGIOutput5_AddRef(This) (This)->lpVtbl->AddRef(This)
270#define IDXGIOutput5_Release(This) (This)->lpVtbl->Release(This)
271/*** IDXGIObject methods ***/
272#define IDXGIOutput5_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
273#define IDXGIOutput5_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
274#define IDXGIOutput5_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
275#define IDXGIOutput5_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
276/*** IDXGIOutput methods ***/
277#define IDXGIOutput5_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
278#define IDXGIOutput5_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
279#define IDXGIOutput5_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
280#define IDXGIOutput5_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
281#define IDXGIOutput5_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
282#define IDXGIOutput5_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
283#define IDXGIOutput5_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
284#define IDXGIOutput5_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
285#define IDXGIOutput5_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
286#define IDXGIOutput5_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
287#define IDXGIOutput5_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
288#define IDXGIOutput5_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
289/*** IDXGIOutput1 methods ***/
290#define IDXGIOutput5_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc)
291#define IDXGIOutput5_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device)
292#define IDXGIOutput5_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination)
293#define IDXGIOutput5_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication)
294/*** IDXGIOutput2 methods ***/
295#define IDXGIOutput5_SupportsOverlays(This) (This)->lpVtbl->SupportsOverlays(This)
296/*** IDXGIOutput3 methods ***/
297#define IDXGIOutput5_CheckOverlaySupport(This,enum_format,concerned_device,flags) (This)->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags)
298/*** IDXGIOutput4 methods ***/
299#define IDXGIOutput5_CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags) (This)->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags)
300/*** IDXGIOutput5 methods ***/
301#define IDXGIOutput5_DuplicateOutput1(This,device,flags,format_count,formats,duplication) (This)->lpVtbl->DuplicateOutput1(This,device,flags,format_count,formats,duplication)
302#else
303/*** IUnknown methods ***/
304static FORCEINLINE HRESULT IDXGIOutput5_QueryInterface(IDXGIOutput5* This,REFIID riid,void **ppvObject) {
305 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
306}
307static FORCEINLINE ULONG IDXGIOutput5_AddRef(IDXGIOutput5* This) {
308 return This->lpVtbl->AddRef(This);
309}
310static FORCEINLINE ULONG IDXGIOutput5_Release(IDXGIOutput5* This) {
311 return This->lpVtbl->Release(This);
312}
313/*** IDXGIObject methods ***/
314static FORCEINLINE HRESULT IDXGIOutput5_SetPrivateData(IDXGIOutput5* This,REFGUID guid,UINT data_size,const void *data) {
315 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
316}
317static FORCEINLINE HRESULT IDXGIOutput5_SetPrivateDataInterface(IDXGIOutput5* This,REFGUID guid,const IUnknown *object) {
318 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
319}
320static FORCEINLINE HRESULT IDXGIOutput5_GetPrivateData(IDXGIOutput5* This,REFGUID guid,UINT *data_size,void *data) {
321 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
322}
323static FORCEINLINE HRESULT IDXGIOutput5_GetParent(IDXGIOutput5* This,REFIID riid,void **parent) {
324 return This->lpVtbl->GetParent(This,riid,parent);
325}
326/*** IDXGIOutput methods ***/
327static FORCEINLINE HRESULT IDXGIOutput5_GetDesc(IDXGIOutput5* This,DXGI_OUTPUT_DESC *desc) {
328 return This->lpVtbl->GetDesc(This,desc);
329}
330static FORCEINLINE HRESULT IDXGIOutput5_GetDisplayModeList(IDXGIOutput5* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
331 return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
332}
333static FORCEINLINE HRESULT IDXGIOutput5_FindClosestMatchingMode(IDXGIOutput5* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
334 return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
335}
336static FORCEINLINE HRESULT IDXGIOutput5_WaitForVBlank(IDXGIOutput5* This) {
337 return This->lpVtbl->WaitForVBlank(This);
338}
339static FORCEINLINE HRESULT IDXGIOutput5_TakeOwnership(IDXGIOutput5* This,IUnknown *device,WINBOOL exclusive) {
340 return This->lpVtbl->TakeOwnership(This,device,exclusive);
341}
342static FORCEINLINE void IDXGIOutput5_ReleaseOwnership(IDXGIOutput5* This) {
343 This->lpVtbl->ReleaseOwnership(This);
344}
345static FORCEINLINE HRESULT IDXGIOutput5_GetGammaControlCapabilities(IDXGIOutput5* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
346 return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
347}
348static FORCEINLINE HRESULT IDXGIOutput5_SetGammaControl(IDXGIOutput5* This,const DXGI_GAMMA_CONTROL *gamma_control) {
349 return This->lpVtbl->SetGammaControl(This,gamma_control);
350}
351static FORCEINLINE HRESULT IDXGIOutput5_GetGammaControl(IDXGIOutput5* This,DXGI_GAMMA_CONTROL *gamma_control) {
352 return This->lpVtbl->GetGammaControl(This,gamma_control);
353}
354static FORCEINLINE HRESULT IDXGIOutput5_SetDisplaySurface(IDXGIOutput5* This,IDXGISurface *surface) {
355 return This->lpVtbl->SetDisplaySurface(This,surface);
356}
357static FORCEINLINE HRESULT IDXGIOutput5_GetDisplaySurfaceData(IDXGIOutput5* This,IDXGISurface *surface) {
358 return This->lpVtbl->GetDisplaySurfaceData(This,surface);
359}
360static FORCEINLINE HRESULT IDXGIOutput5_GetFrameStatistics(IDXGIOutput5* This,DXGI_FRAME_STATISTICS *stats) {
361 return This->lpVtbl->GetFrameStatistics(This,stats);
362}
363/*** IDXGIOutput1 methods ***/
364static FORCEINLINE HRESULT IDXGIOutput5_GetDisplayModeList1(IDXGIOutput5* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) {
365 return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc);
366}
367static FORCEINLINE HRESULT IDXGIOutput5_FindClosestMatchingMode1(IDXGIOutput5* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) {
368 return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device);
369}
370static FORCEINLINE HRESULT IDXGIOutput5_GetDisplaySurfaceData1(IDXGIOutput5* This,IDXGIResource *destination) {
371 return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
372}
373static FORCEINLINE HRESULT IDXGIOutput5_DuplicateOutput(IDXGIOutput5* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
374 return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
375}
376/*** IDXGIOutput2 methods ***/
377static FORCEINLINE WINBOOL IDXGIOutput5_SupportsOverlays(IDXGIOutput5* This) {
378 return This->lpVtbl->SupportsOverlays(This);
379}
380/*** IDXGIOutput3 methods ***/
381static FORCEINLINE HRESULT IDXGIOutput5_CheckOverlaySupport(IDXGIOutput5* This,DXGI_FORMAT enum_format,IUnknown *concerned_device,UINT *flags) {
382 return This->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags);
383}
384/*** IDXGIOutput4 methods ***/
385static FORCEINLINE HRESULT IDXGIOutput5_CheckOverlayColorSpaceSupport(IDXGIOutput5* This,DXGI_FORMAT format,DXGI_COLOR_SPACE_TYPE colour_space,IUnknown *device,UINT *flags) {
386 return This->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags);
387}
388/*** IDXGIOutput5 methods ***/
389static FORCEINLINE HRESULT IDXGIOutput5_DuplicateOutput1(IDXGIOutput5* This,IUnknown *device,UINT flags,UINT format_count,const DXGI_FORMAT *formats,IDXGIOutputDuplication **duplication) {
390 return This->lpVtbl->DuplicateOutput1(This,device,flags,format_count,formats,duplication);
391}
392#endif
393#endif
394
395#endif
396
397
398#endif /* __IDXGIOutput5_INTERFACE_DEFINED__ */
399
400/*****************************************************************************
401 * IDXGISwapChain4 interface
402 */
403#ifndef __IDXGISwapChain4_INTERFACE_DEFINED__
404#define __IDXGISwapChain4_INTERFACE_DEFINED__
405
406DEFINE_GUID(IID_IDXGISwapChain4, 0x3d585d5a, 0xbd4a, 0x489e, 0xb1,0xf4, 0x3d,0xbc,0xb6,0x45,0x2f,0xfb);
407#if defined(__cplusplus) && !defined(CINTERFACE)
408MIDL_INTERFACE("3d585d5a-bd4a-489e-b1f4-3dbcb6452ffb")
409IDXGISwapChain4 : public IDXGISwapChain3
410{
411 virtual HRESULT STDMETHODCALLTYPE SetHDRMetaData(
412 DXGI_HDR_METADATA_TYPE type,
413 UINT size,
414 void *metadata) = 0;
415
416};
417#ifdef __CRT_UUID_DECL
418__CRT_UUID_DECL(IDXGISwapChain4, 0x3d585d5a, 0xbd4a, 0x489e, 0xb1,0xf4, 0x3d,0xbc,0xb6,0x45,0x2f,0xfb)
419#endif
420#else
421typedef struct IDXGISwapChain4Vtbl {
422 BEGIN_INTERFACE
423
424 /*** IUnknown methods ***/
425 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
426 IDXGISwapChain4 *This,
427 REFIID riid,
428 void **ppvObject);
429
430 ULONG (STDMETHODCALLTYPE *AddRef)(
431 IDXGISwapChain4 *This);
432
433 ULONG (STDMETHODCALLTYPE *Release)(
434 IDXGISwapChain4 *This);
435
436 /*** IDXGIObject methods ***/
437 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
438 IDXGISwapChain4 *This,
439 REFGUID guid,
440 UINT data_size,
441 const void *data);
442
443 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
444 IDXGISwapChain4 *This,
445 REFGUID guid,
446 const IUnknown *object);
447
448 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
449 IDXGISwapChain4 *This,
450 REFGUID guid,
451 UINT *data_size,
452 void *data);
453
454 HRESULT (STDMETHODCALLTYPE *GetParent)(
455 IDXGISwapChain4 *This,
456 REFIID riid,
457 void **parent);
458
459 /*** IDXGIDeviceSubObject methods ***/
460 HRESULT (STDMETHODCALLTYPE *GetDevice)(
461 IDXGISwapChain4 *This,
462 REFIID riid,
463 void **device);
464
465 /*** IDXGISwapChain methods ***/
466 HRESULT (STDMETHODCALLTYPE *Present)(
467 IDXGISwapChain4 *This,
468 UINT sync_interval,
469 UINT flags);
470
471 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
472 IDXGISwapChain4 *This,
473 UINT buffer_idx,
474 REFIID riid,
475 void **surface);
476
477 HRESULT (STDMETHODCALLTYPE *SetFullscreenState)(
478 IDXGISwapChain4 *This,
479 WINBOOL fullscreen,
480 IDXGIOutput *target);
481
482 HRESULT (STDMETHODCALLTYPE *GetFullscreenState)(
483 IDXGISwapChain4 *This,
484 WINBOOL *fullscreen,
485 IDXGIOutput **target);
486
487 HRESULT (STDMETHODCALLTYPE *GetDesc)(
488 IDXGISwapChain4 *This,
489 DXGI_SWAP_CHAIN_DESC *desc);
490
491 HRESULT (STDMETHODCALLTYPE *ResizeBuffers)(
492 IDXGISwapChain4 *This,
493 UINT buffer_count,
494 UINT width,
495 UINT height,
496 DXGI_FORMAT format,
497 UINT flags);
498
499 HRESULT (STDMETHODCALLTYPE *ResizeTarget)(
500 IDXGISwapChain4 *This,
501 const DXGI_MODE_DESC *target_mode_desc);
502
503 HRESULT (STDMETHODCALLTYPE *GetContainingOutput)(
504 IDXGISwapChain4 *This,
505 IDXGIOutput **output);
506
507 HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
508 IDXGISwapChain4 *This,
509 DXGI_FRAME_STATISTICS *stats);
510
511 HRESULT (STDMETHODCALLTYPE *GetLastPresentCount)(
512 IDXGISwapChain4 *This,
513 UINT *last_present_count);
514
515 /*** IDXGISwapChain1 methods ***/
516 HRESULT (STDMETHODCALLTYPE *GetDesc1)(
517 IDXGISwapChain4 *This,
518 DXGI_SWAP_CHAIN_DESC1 *pDesc);
519
520 HRESULT (STDMETHODCALLTYPE *GetFullscreenDesc)(
521 IDXGISwapChain4 *This,
522 DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc);
523
524 HRESULT (STDMETHODCALLTYPE *GetHwnd)(
525 IDXGISwapChain4 *This,
526 HWND *pHwnd);
527
528 HRESULT (STDMETHODCALLTYPE *GetCoreWindow)(
529 IDXGISwapChain4 *This,
530 REFIID refiid,
531 void **ppUnk);
532
533 HRESULT (STDMETHODCALLTYPE *Present1)(
534 IDXGISwapChain4 *This,
535 UINT SyncInterval,
536 UINT PresentFlags,
537 const DXGI_PRESENT_PARAMETERS *pPresentParameters);
538
539 WINBOOL (STDMETHODCALLTYPE *IsTemporaryMonoSupported)(
540 IDXGISwapChain4 *This);
541
542 HRESULT (STDMETHODCALLTYPE *GetRestrictToOutput)(
543 IDXGISwapChain4 *This,
544 IDXGIOutput **ppRestrictToOutput);
545
546 HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
547 IDXGISwapChain4 *This,
548 const DXGI_RGBA *pColor);
549
550 HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)(
551 IDXGISwapChain4 *This,
552 DXGI_RGBA *pColor);
553
554 HRESULT (STDMETHODCALLTYPE *SetRotation)(
555 IDXGISwapChain4 *This,
556 DXGI_MODE_ROTATION Rotation);
557
558 HRESULT (STDMETHODCALLTYPE *GetRotation)(
559 IDXGISwapChain4 *This,
560 DXGI_MODE_ROTATION *pRotation);
561
562 /*** IDXGISwapChain2 methods ***/
563 HRESULT (STDMETHODCALLTYPE *SetSourceSize)(
564 IDXGISwapChain4 *This,
565 UINT width,
566 UINT height);
567
568 HRESULT (STDMETHODCALLTYPE *GetSourceSize)(
569 IDXGISwapChain4 *This,
570 UINT *width,
571 UINT *height);
572
573 HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
574 IDXGISwapChain4 *This,
575 UINT max_latency);
576
577 HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
578 IDXGISwapChain4 *This,
579 UINT *max_latency);
580
581 HANDLE (STDMETHODCALLTYPE *GetFrameLatencyWaitableObject)(
582 IDXGISwapChain4 *This);
583
584 HRESULT (STDMETHODCALLTYPE *SetMatrixTransform)(
585 IDXGISwapChain4 *This,
586 const DXGI_MATRIX_3X2_F *matrix);
587
588 HRESULT (STDMETHODCALLTYPE *GetMatrixTransform)(
589 IDXGISwapChain4 *This,
590 DXGI_MATRIX_3X2_F *matrix);
591
592 /*** IDXGISwapChain3 methods ***/
593 UINT (STDMETHODCALLTYPE *GetCurrentBackBufferIndex)(
594 IDXGISwapChain4 *This);
595
596 HRESULT (STDMETHODCALLTYPE *CheckColorSpaceSupport)(
597 IDXGISwapChain4 *This,
598 DXGI_COLOR_SPACE_TYPE colour_space,
599 UINT *colour_space_support);
600
601 HRESULT (STDMETHODCALLTYPE *SetColorSpace1)(
602 IDXGISwapChain4 *This,
603 DXGI_COLOR_SPACE_TYPE colour_space);
604
605 HRESULT (STDMETHODCALLTYPE *ResizeBuffers1)(
606 IDXGISwapChain4 *This,
607 UINT buffer_count,
608 UINT width,
609 UINT height,
610 DXGI_FORMAT format,
611 UINT flags,
612 const UINT *node_mask,
613 IUnknown *const *present_queue);
614
615 /*** IDXGISwapChain4 methods ***/
616 HRESULT (STDMETHODCALLTYPE *SetHDRMetaData)(
617 IDXGISwapChain4 *This,
618 DXGI_HDR_METADATA_TYPE type,
619 UINT size,
620 void *metadata);
621
622 END_INTERFACE
623} IDXGISwapChain4Vtbl;
624
625interface IDXGISwapChain4 {
626 CONST_VTBL IDXGISwapChain4Vtbl* lpVtbl;
627};
628
629#ifdef COBJMACROS
630#ifndef WIDL_C_INLINE_WRAPPERS
631/*** IUnknown methods ***/
632#define IDXGISwapChain4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
633#define IDXGISwapChain4_AddRef(This) (This)->lpVtbl->AddRef(This)
634#define IDXGISwapChain4_Release(This) (This)->lpVtbl->Release(This)
635/*** IDXGIObject methods ***/
636#define IDXGISwapChain4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
637#define IDXGISwapChain4_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
638#define IDXGISwapChain4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
639#define IDXGISwapChain4_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
640/*** IDXGIDeviceSubObject methods ***/
641#define IDXGISwapChain4_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
642/*** IDXGISwapChain methods ***/
643#define IDXGISwapChain4_Present(This,sync_interval,flags) (This)->lpVtbl->Present(This,sync_interval,flags)
644#define IDXGISwapChain4_GetBuffer(This,buffer_idx,riid,surface) (This)->lpVtbl->GetBuffer(This,buffer_idx,riid,surface)
645#define IDXGISwapChain4_SetFullscreenState(This,fullscreen,target) (This)->lpVtbl->SetFullscreenState(This,fullscreen,target)
646#define IDXGISwapChain4_GetFullscreenState(This,fullscreen,target) (This)->lpVtbl->GetFullscreenState(This,fullscreen,target)
647#define IDXGISwapChain4_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
648#define IDXGISwapChain4_ResizeBuffers(This,buffer_count,width,height,format,flags) (This)->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags)
649#define IDXGISwapChain4_ResizeTarget(This,target_mode_desc) (This)->lpVtbl->ResizeTarget(This,target_mode_desc)
650#define IDXGISwapChain4_GetContainingOutput(This,output) (This)->lpVtbl->GetContainingOutput(This,output)
651#define IDXGISwapChain4_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
652#define IDXGISwapChain4_GetLastPresentCount(This,last_present_count) (This)->lpVtbl->GetLastPresentCount(This,last_present_count)
653/*** IDXGISwapChain1 methods ***/
654#define IDXGISwapChain4_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
655#define IDXGISwapChain4_GetFullscreenDesc(This,pDesc) (This)->lpVtbl->GetFullscreenDesc(This,pDesc)
656#define IDXGISwapChain4_GetHwnd(This,pHwnd) (This)->lpVtbl->GetHwnd(This,pHwnd)
657#define IDXGISwapChain4_GetCoreWindow(This,refiid,ppUnk) (This)->lpVtbl->GetCoreWindow(This,refiid,ppUnk)
658#define IDXGISwapChain4_Present1(This,SyncInterval,PresentFlags,pPresentParameters) (This)->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters)
659#define IDXGISwapChain4_IsTemporaryMonoSupported(This) (This)->lpVtbl->IsTemporaryMonoSupported(This)
660#define IDXGISwapChain4_GetRestrictToOutput(This,ppRestrictToOutput) (This)->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput)
661#define IDXGISwapChain4_SetBackgroundColor(This,pColor) (This)->lpVtbl->SetBackgroundColor(This,pColor)
662#define IDXGISwapChain4_GetBackgroundColor(This,pColor) (This)->lpVtbl->GetBackgroundColor(This,pColor)
663#define IDXGISwapChain4_SetRotation(This,Rotation) (This)->lpVtbl->SetRotation(This,Rotation)
664#define IDXGISwapChain4_GetRotation(This,pRotation) (This)->lpVtbl->GetRotation(This,pRotation)
665/*** IDXGISwapChain2 methods ***/
666#define IDXGISwapChain4_SetSourceSize(This,width,height) (This)->lpVtbl->SetSourceSize(This,width,height)
667#define IDXGISwapChain4_GetSourceSize(This,width,height) (This)->lpVtbl->GetSourceSize(This,width,height)
668#define IDXGISwapChain4_SetMaximumFrameLatency(This,max_latency) (This)->lpVtbl->SetMaximumFrameLatency(This,max_latency)
669#define IDXGISwapChain4_GetMaximumFrameLatency(This,max_latency) (This)->lpVtbl->GetMaximumFrameLatency(This,max_latency)
670#define IDXGISwapChain4_GetFrameLatencyWaitableObject(This) (This)->lpVtbl->GetFrameLatencyWaitableObject(This)
671#define IDXGISwapChain4_SetMatrixTransform(This,matrix) (This)->lpVtbl->SetMatrixTransform(This,matrix)
672#define IDXGISwapChain4_GetMatrixTransform(This,matrix) (This)->lpVtbl->GetMatrixTransform(This,matrix)
673/*** IDXGISwapChain3 methods ***/
674#define IDXGISwapChain4_GetCurrentBackBufferIndex(This) (This)->lpVtbl->GetCurrentBackBufferIndex(This)
675#define IDXGISwapChain4_CheckColorSpaceSupport(This,colour_space,colour_space_support) (This)->lpVtbl->CheckColorSpaceSupport(This,colour_space,colour_space_support)
676#define IDXGISwapChain4_SetColorSpace1(This,colour_space) (This)->lpVtbl->SetColorSpace1(This,colour_space)
677#define IDXGISwapChain4_ResizeBuffers1(This,buffer_count,width,height,format,flags,node_mask,present_queue) (This)->lpVtbl->ResizeBuffers1(This,buffer_count,width,height,format,flags,node_mask,present_queue)
678/*** IDXGISwapChain4 methods ***/
679#define IDXGISwapChain4_SetHDRMetaData(This,type,size,metadata) (This)->lpVtbl->SetHDRMetaData(This,type,size,metadata)
680#else
681/*** IUnknown methods ***/
682static FORCEINLINE HRESULT IDXGISwapChain4_QueryInterface(IDXGISwapChain4* This,REFIID riid,void **ppvObject) {
683 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
684}
685static FORCEINLINE ULONG IDXGISwapChain4_AddRef(IDXGISwapChain4* This) {
686 return This->lpVtbl->AddRef(This);
687}
688static FORCEINLINE ULONG IDXGISwapChain4_Release(IDXGISwapChain4* This) {
689 return This->lpVtbl->Release(This);
690}
691/*** IDXGIObject methods ***/
692static FORCEINLINE HRESULT IDXGISwapChain4_SetPrivateData(IDXGISwapChain4* This,REFGUID guid,UINT data_size,const void *data) {
693 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
694}
695static FORCEINLINE HRESULT IDXGISwapChain4_SetPrivateDataInterface(IDXGISwapChain4* This,REFGUID guid,const IUnknown *object) {
696 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
697}
698static FORCEINLINE HRESULT IDXGISwapChain4_GetPrivateData(IDXGISwapChain4* This,REFGUID guid,UINT *data_size,void *data) {
699 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
700}
701static FORCEINLINE HRESULT IDXGISwapChain4_GetParent(IDXGISwapChain4* This,REFIID riid,void **parent) {
702 return This->lpVtbl->GetParent(This,riid,parent);
703}
704/*** IDXGIDeviceSubObject methods ***/
705static FORCEINLINE HRESULT IDXGISwapChain4_GetDevice(IDXGISwapChain4* This,REFIID riid,void **device) {
706 return This->lpVtbl->GetDevice(This,riid,device);
707}
708/*** IDXGISwapChain methods ***/
709static FORCEINLINE HRESULT IDXGISwapChain4_Present(IDXGISwapChain4* This,UINT sync_interval,UINT flags) {
710 return This->lpVtbl->Present(This,sync_interval,flags);
711}
712static FORCEINLINE HRESULT IDXGISwapChain4_GetBuffer(IDXGISwapChain4* This,UINT buffer_idx,REFIID riid,void **surface) {
713 return This->lpVtbl->GetBuffer(This,buffer_idx,riid,surface);
714}
715static FORCEINLINE HRESULT IDXGISwapChain4_SetFullscreenState(IDXGISwapChain4* This,WINBOOL fullscreen,IDXGIOutput *target) {
716 return This->lpVtbl->SetFullscreenState(This,fullscreen,target);
717}
718static FORCEINLINE HRESULT IDXGISwapChain4_GetFullscreenState(IDXGISwapChain4* This,WINBOOL *fullscreen,IDXGIOutput **target) {
719 return This->lpVtbl->GetFullscreenState(This,fullscreen,target);
720}
721static FORCEINLINE HRESULT IDXGISwapChain4_GetDesc(IDXGISwapChain4* This,DXGI_SWAP_CHAIN_DESC *desc) {
722 return This->lpVtbl->GetDesc(This,desc);
723}
724static FORCEINLINE HRESULT IDXGISwapChain4_ResizeBuffers(IDXGISwapChain4* This,UINT buffer_count,UINT width,UINT height,DXGI_FORMAT format,UINT flags) {
725 return This->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags);
726}
727static FORCEINLINE HRESULT IDXGISwapChain4_ResizeTarget(IDXGISwapChain4* This,const DXGI_MODE_DESC *target_mode_desc) {
728 return This->lpVtbl->ResizeTarget(This,target_mode_desc);
729}
730static FORCEINLINE HRESULT IDXGISwapChain4_GetContainingOutput(IDXGISwapChain4* This,IDXGIOutput **output) {
731 return This->lpVtbl->GetContainingOutput(This,output);
732}
733static FORCEINLINE HRESULT IDXGISwapChain4_GetFrameStatistics(IDXGISwapChain4* This,DXGI_FRAME_STATISTICS *stats) {
734 return This->lpVtbl->GetFrameStatistics(This,stats);
735}
736static FORCEINLINE HRESULT IDXGISwapChain4_GetLastPresentCount(IDXGISwapChain4* This,UINT *last_present_count) {
737 return This->lpVtbl->GetLastPresentCount(This,last_present_count);
738}
739/*** IDXGISwapChain1 methods ***/
740static FORCEINLINE HRESULT IDXGISwapChain4_GetDesc1(IDXGISwapChain4* This,DXGI_SWAP_CHAIN_DESC1 *pDesc) {
741 return This->lpVtbl->GetDesc1(This,pDesc);
742}
743static FORCEINLINE HRESULT IDXGISwapChain4_GetFullscreenDesc(IDXGISwapChain4* This,DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc) {
744 return This->lpVtbl->GetFullscreenDesc(This,pDesc);
745}
746static FORCEINLINE HRESULT IDXGISwapChain4_GetHwnd(IDXGISwapChain4* This,HWND *pHwnd) {
747 return This->lpVtbl->GetHwnd(This,pHwnd);
748}
749static FORCEINLINE HRESULT IDXGISwapChain4_GetCoreWindow(IDXGISwapChain4* This,REFIID refiid,void **ppUnk) {
750 return This->lpVtbl->GetCoreWindow(This,refiid,ppUnk);
751}
752static FORCEINLINE HRESULT IDXGISwapChain4_Present1(IDXGISwapChain4* This,UINT SyncInterval,UINT PresentFlags,const DXGI_PRESENT_PARAMETERS *pPresentParameters) {
753 return This->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters);
754}
755static FORCEINLINE WINBOOL IDXGISwapChain4_IsTemporaryMonoSupported(IDXGISwapChain4* This) {
756 return This->lpVtbl->IsTemporaryMonoSupported(This);
757}
758static FORCEINLINE HRESULT IDXGISwapChain4_GetRestrictToOutput(IDXGISwapChain4* This,IDXGIOutput **ppRestrictToOutput) {
759 return This->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput);
760}
761static FORCEINLINE HRESULT IDXGISwapChain4_SetBackgroundColor(IDXGISwapChain4* This,const DXGI_RGBA *pColor) {
762 return This->lpVtbl->SetBackgroundColor(This,pColor);
763}
764static FORCEINLINE HRESULT IDXGISwapChain4_GetBackgroundColor(IDXGISwapChain4* This,DXGI_RGBA *pColor) {
765 return This->lpVtbl->GetBackgroundColor(This,pColor);
766}
767static FORCEINLINE HRESULT IDXGISwapChain4_SetRotation(IDXGISwapChain4* This,DXGI_MODE_ROTATION Rotation) {
768 return This->lpVtbl->SetRotation(This,Rotation);
769}
770static FORCEINLINE HRESULT IDXGISwapChain4_GetRotation(IDXGISwapChain4* This,DXGI_MODE_ROTATION *pRotation) {
771 return This->lpVtbl->GetRotation(This,pRotation);
772}
773/*** IDXGISwapChain2 methods ***/
774static FORCEINLINE HRESULT IDXGISwapChain4_SetSourceSize(IDXGISwapChain4* This,UINT width,UINT height) {
775 return This->lpVtbl->SetSourceSize(This,width,height);
776}
777static FORCEINLINE HRESULT IDXGISwapChain4_GetSourceSize(IDXGISwapChain4* This,UINT *width,UINT *height) {
778 return This->lpVtbl->GetSourceSize(This,width,height);
779}
780static FORCEINLINE HRESULT IDXGISwapChain4_SetMaximumFrameLatency(IDXGISwapChain4* This,UINT max_latency) {
781 return This->lpVtbl->SetMaximumFrameLatency(This,max_latency);
782}
783static FORCEINLINE HRESULT IDXGISwapChain4_GetMaximumFrameLatency(IDXGISwapChain4* This,UINT *max_latency) {
784 return This->lpVtbl->GetMaximumFrameLatency(This,max_latency);
785}
786static FORCEINLINE HANDLE IDXGISwapChain4_GetFrameLatencyWaitableObject(IDXGISwapChain4* This) {
787 return This->lpVtbl->GetFrameLatencyWaitableObject(This);
788}
789static FORCEINLINE HRESULT IDXGISwapChain4_SetMatrixTransform(IDXGISwapChain4* This,const DXGI_MATRIX_3X2_F *matrix) {
790 return This->lpVtbl->SetMatrixTransform(This,matrix);
791}
792static FORCEINLINE HRESULT IDXGISwapChain4_GetMatrixTransform(IDXGISwapChain4* This,DXGI_MATRIX_3X2_F *matrix) {
793 return This->lpVtbl->GetMatrixTransform(This,matrix);
794}
795/*** IDXGISwapChain3 methods ***/
796static FORCEINLINE UINT IDXGISwapChain4_GetCurrentBackBufferIndex(IDXGISwapChain4* This) {
797 return This->lpVtbl->GetCurrentBackBufferIndex(This);
798}
799static FORCEINLINE HRESULT IDXGISwapChain4_CheckColorSpaceSupport(IDXGISwapChain4* This,DXGI_COLOR_SPACE_TYPE colour_space,UINT *colour_space_support) {
800 return This->lpVtbl->CheckColorSpaceSupport(This,colour_space,colour_space_support);
801}
802static FORCEINLINE HRESULT IDXGISwapChain4_SetColorSpace1(IDXGISwapChain4* This,DXGI_COLOR_SPACE_TYPE colour_space) {
803 return This->lpVtbl->SetColorSpace1(This,colour_space);
804}
805static FORCEINLINE HRESULT IDXGISwapChain4_ResizeBuffers1(IDXGISwapChain4* This,UINT buffer_count,UINT width,UINT height,DXGI_FORMAT format,UINT flags,const UINT *node_mask,IUnknown *const *present_queue) {
806 return This->lpVtbl->ResizeBuffers1(This,buffer_count,width,height,format,flags,node_mask,present_queue);
807}
808/*** IDXGISwapChain4 methods ***/
809static FORCEINLINE HRESULT IDXGISwapChain4_SetHDRMetaData(IDXGISwapChain4* This,DXGI_HDR_METADATA_TYPE type,UINT size,void *metadata) {
810 return This->lpVtbl->SetHDRMetaData(This,type,size,metadata);
811}
812#endif
813#endif
814
815#endif
816
817
818#endif /* __IDXGISwapChain4_INTERFACE_DEFINED__ */
819
820/*****************************************************************************
821 * IDXGIDevice4 interface
822 */
823#ifndef __IDXGIDevice4_INTERFACE_DEFINED__
824#define __IDXGIDevice4_INTERFACE_DEFINED__
825
826DEFINE_GUID(IID_IDXGIDevice4, 0x95b4f95f, 0xd8da, 0x4ca4, 0x9e,0xe6, 0x3b,0x76,0xd5,0x96,0x8a,0x10);
827#if defined(__cplusplus) && !defined(CINTERFACE)
828MIDL_INTERFACE("95b4f95f-d8da-4ca4-9ee6-3b76d5968a10")
829IDXGIDevice4 : public IDXGIDevice3
830{
831 virtual HRESULT STDMETHODCALLTYPE OfferResources1(
832 UINT resource_count,
833 IDXGIResource *const *resources,
834 DXGI_OFFER_RESOURCE_PRIORITY priority,
835 UINT flags) = 0;
836
837 virtual HRESULT STDMETHODCALLTYPE ReclaimResources1(
838 UINT resource_count,
839 IDXGIResource *const *resources,
840 DXGI_RECLAIM_RESOURCE_RESULTS *results) = 0;
841
842};
843#ifdef __CRT_UUID_DECL
844__CRT_UUID_DECL(IDXGIDevice4, 0x95b4f95f, 0xd8da, 0x4ca4, 0x9e,0xe6, 0x3b,0x76,0xd5,0x96,0x8a,0x10)
845#endif
846#else
847typedef struct IDXGIDevice4Vtbl {
848 BEGIN_INTERFACE
849
850 /*** IUnknown methods ***/
851 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
852 IDXGIDevice4 *This,
853 REFIID riid,
854 void **ppvObject);
855
856 ULONG (STDMETHODCALLTYPE *AddRef)(
857 IDXGIDevice4 *This);
858
859 ULONG (STDMETHODCALLTYPE *Release)(
860 IDXGIDevice4 *This);
861
862 /*** IDXGIObject methods ***/
863 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
864 IDXGIDevice4 *This,
865 REFGUID guid,
866 UINT data_size,
867 const void *data);
868
869 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
870 IDXGIDevice4 *This,
871 REFGUID guid,
872 const IUnknown *object);
873
874 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
875 IDXGIDevice4 *This,
876 REFGUID guid,
877 UINT *data_size,
878 void *data);
879
880 HRESULT (STDMETHODCALLTYPE *GetParent)(
881 IDXGIDevice4 *This,
882 REFIID riid,
883 void **parent);
884
885 /*** IDXGIDevice methods ***/
886 HRESULT (STDMETHODCALLTYPE *GetAdapter)(
887 IDXGIDevice4 *This,
888 IDXGIAdapter **adapter);
889
890 HRESULT (STDMETHODCALLTYPE *CreateSurface)(
891 IDXGIDevice4 *This,
892 const DXGI_SURFACE_DESC *desc,
893 UINT surface_count,
894 DXGI_USAGE usage,
895 const DXGI_SHARED_RESOURCE *shared_resource,
896 IDXGISurface **surface);
897
898 HRESULT (STDMETHODCALLTYPE *QueryResourceResidency)(
899 IDXGIDevice4 *This,
900 IUnknown *const *resources,
901 DXGI_RESIDENCY *residency,
902 UINT resource_count);
903
904 HRESULT (STDMETHODCALLTYPE *SetGPUThreadPriority)(
905 IDXGIDevice4 *This,
906 INT priority);
907
908 HRESULT (STDMETHODCALLTYPE *GetGPUThreadPriority)(
909 IDXGIDevice4 *This,
910 INT *priority);
911
912 /*** IDXGIDevice1 methods ***/
913 HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
914 IDXGIDevice4 *This,
915 UINT MaxLatency);
916
917 HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
918 IDXGIDevice4 *This,
919 UINT *pMaxLatency);
920
921 /*** IDXGIDevice2 methods ***/
922 HRESULT (STDMETHODCALLTYPE *OfferResources)(
923 IDXGIDevice4 *This,
924 UINT NumResources,
925 IDXGIResource *const *ppResources,
926 DXGI_OFFER_RESOURCE_PRIORITY Priority);
927
928 HRESULT (STDMETHODCALLTYPE *ReclaimResources)(
929 IDXGIDevice4 *This,
930 UINT NumResources,
931 IDXGIResource *const *ppResources,
932 WINBOOL *pDiscarded);
933
934 HRESULT (STDMETHODCALLTYPE *EnqueueSetEvent)(
935 IDXGIDevice4 *This,
936 HANDLE hEvent);
937
938 /*** IDXGIDevice3 methods ***/
939 void (STDMETHODCALLTYPE *Trim)(
940 IDXGIDevice4 *This);
941
942 /*** IDXGIDevice4 methods ***/
943 HRESULT (STDMETHODCALLTYPE *OfferResources1)(
944 IDXGIDevice4 *This,
945 UINT resource_count,
946 IDXGIResource *const *resources,
947 DXGI_OFFER_RESOURCE_PRIORITY priority,
948 UINT flags);
949
950 HRESULT (STDMETHODCALLTYPE *ReclaimResources1)(
951 IDXGIDevice4 *This,
952 UINT resource_count,
953 IDXGIResource *const *resources,
954 DXGI_RECLAIM_RESOURCE_RESULTS *results);
955
956 END_INTERFACE
957} IDXGIDevice4Vtbl;
958
959interface IDXGIDevice4 {
960 CONST_VTBL IDXGIDevice4Vtbl* lpVtbl;
961};
962
963#ifdef COBJMACROS
964#ifndef WIDL_C_INLINE_WRAPPERS
965/*** IUnknown methods ***/
966#define IDXGIDevice4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
967#define IDXGIDevice4_AddRef(This) (This)->lpVtbl->AddRef(This)
968#define IDXGIDevice4_Release(This) (This)->lpVtbl->Release(This)
969/*** IDXGIObject methods ***/
970#define IDXGIDevice4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
971#define IDXGIDevice4_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
972#define IDXGIDevice4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
973#define IDXGIDevice4_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
974/*** IDXGIDevice methods ***/
975#define IDXGIDevice4_GetAdapter(This,adapter) (This)->lpVtbl->GetAdapter(This,adapter)
976#define IDXGIDevice4_CreateSurface(This,desc,surface_count,usage,shared_resource,surface) (This)->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface)
977#define IDXGIDevice4_QueryResourceResidency(This,resources,residency,resource_count) (This)->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count)
978#define IDXGIDevice4_SetGPUThreadPriority(This,priority) (This)->lpVtbl->SetGPUThreadPriority(This,priority)
979#define IDXGIDevice4_GetGPUThreadPriority(This,priority) (This)->lpVtbl->GetGPUThreadPriority(This,priority)
980/*** IDXGIDevice1 methods ***/
981#define IDXGIDevice4_SetMaximumFrameLatency(This,MaxLatency) (This)->lpVtbl->SetMaximumFrameLatency(This,MaxLatency)
982#define IDXGIDevice4_GetMaximumFrameLatency(This,pMaxLatency) (This)->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency)
983/*** IDXGIDevice2 methods ***/
984#define IDXGIDevice4_OfferResources(This,NumResources,ppResources,Priority) (This)->lpVtbl->OfferResources(This,NumResources,ppResources,Priority)
985#define IDXGIDevice4_ReclaimResources(This,NumResources,ppResources,pDiscarded) (This)->lpVtbl->ReclaimResources(This,NumResources,ppResources,pDiscarded)
986#define IDXGIDevice4_EnqueueSetEvent(This,hEvent) (This)->lpVtbl->EnqueueSetEvent(This,hEvent)
987/*** IDXGIDevice3 methods ***/
988#define IDXGIDevice4_Trim(This) (This)->lpVtbl->Trim(This)
989/*** IDXGIDevice4 methods ***/
990#define IDXGIDevice4_OfferResources1(This,resource_count,resources,priority,flags) (This)->lpVtbl->OfferResources1(This,resource_count,resources,priority,flags)
991#define IDXGIDevice4_ReclaimResources1(This,resource_count,resources,results) (This)->lpVtbl->ReclaimResources1(This,resource_count,resources,results)
992#else
993/*** IUnknown methods ***/
994static FORCEINLINE HRESULT IDXGIDevice4_QueryInterface(IDXGIDevice4* This,REFIID riid,void **ppvObject) {
995 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
996}
997static FORCEINLINE ULONG IDXGIDevice4_AddRef(IDXGIDevice4* This) {
998 return This->lpVtbl->AddRef(This);
999}
1000static FORCEINLINE ULONG IDXGIDevice4_Release(IDXGIDevice4* This) {
1001 return This->lpVtbl->Release(This);
1002}
1003/*** IDXGIObject methods ***/
1004static FORCEINLINE HRESULT IDXGIDevice4_SetPrivateData(IDXGIDevice4* This,REFGUID guid,UINT data_size,const void *data) {
1005 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
1006}
1007static FORCEINLINE HRESULT IDXGIDevice4_SetPrivateDataInterface(IDXGIDevice4* This,REFGUID guid,const IUnknown *object) {
1008 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
1009}
1010static FORCEINLINE HRESULT IDXGIDevice4_GetPrivateData(IDXGIDevice4* This,REFGUID guid,UINT *data_size,void *data) {
1011 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
1012}
1013static FORCEINLINE HRESULT IDXGIDevice4_GetParent(IDXGIDevice4* This,REFIID riid,void **parent) {
1014 return This->lpVtbl->GetParent(This,riid,parent);
1015}
1016/*** IDXGIDevice methods ***/
1017static FORCEINLINE HRESULT IDXGIDevice4_GetAdapter(IDXGIDevice4* This,IDXGIAdapter **adapter) {
1018 return This->lpVtbl->GetAdapter(This,adapter);
1019}
1020static FORCEINLINE HRESULT IDXGIDevice4_CreateSurface(IDXGIDevice4* This,const DXGI_SURFACE_DESC *desc,UINT surface_count,DXGI_USAGE usage,const DXGI_SHARED_RESOURCE *shared_resource,IDXGISurface **surface) {
1021 return This->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface);
1022}
1023static FORCEINLINE HRESULT IDXGIDevice4_QueryResourceResidency(IDXGIDevice4* This,IUnknown *const *resources,DXGI_RESIDENCY *residency,UINT resource_count) {
1024 return This->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count);
1025}
1026static FORCEINLINE HRESULT IDXGIDevice4_SetGPUThreadPriority(IDXGIDevice4* This,INT priority) {
1027 return This->lpVtbl->SetGPUThreadPriority(This,priority);
1028}
1029static FORCEINLINE HRESULT IDXGIDevice4_GetGPUThreadPriority(IDXGIDevice4* This,INT *priority) {
1030 return This->lpVtbl->GetGPUThreadPriority(This,priority);
1031}
1032/*** IDXGIDevice1 methods ***/
1033static FORCEINLINE HRESULT IDXGIDevice4_SetMaximumFrameLatency(IDXGIDevice4* This,UINT MaxLatency) {
1034 return This->lpVtbl->SetMaximumFrameLatency(This,MaxLatency);
1035}
1036static FORCEINLINE HRESULT IDXGIDevice4_GetMaximumFrameLatency(IDXGIDevice4* This,UINT *pMaxLatency) {
1037 return This->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency);
1038}
1039/*** IDXGIDevice2 methods ***/
1040static FORCEINLINE HRESULT IDXGIDevice4_OfferResources(IDXGIDevice4* This,UINT NumResources,IDXGIResource *const *ppResources,DXGI_OFFER_RESOURCE_PRIORITY Priority) {
1041 return This->lpVtbl->OfferResources(This,NumResources,ppResources,Priority);
1042}
1043static FORCEINLINE HRESULT IDXGIDevice4_ReclaimResources(IDXGIDevice4* This,UINT NumResources,IDXGIResource *const *ppResources,WINBOOL *pDiscarded) {
1044 return This->lpVtbl->ReclaimResources(This,NumResources,ppResources,pDiscarded);
1045}
1046static FORCEINLINE HRESULT IDXGIDevice4_EnqueueSetEvent(IDXGIDevice4* This,HANDLE hEvent) {
1047 return This->lpVtbl->EnqueueSetEvent(This,hEvent);
1048}
1049/*** IDXGIDevice3 methods ***/
1050static FORCEINLINE void IDXGIDevice4_Trim(IDXGIDevice4* This) {
1051 This->lpVtbl->Trim(This);
1052}
1053/*** IDXGIDevice4 methods ***/
1054static FORCEINLINE HRESULT IDXGIDevice4_OfferResources1(IDXGIDevice4* This,UINT resource_count,IDXGIResource *const *resources,DXGI_OFFER_RESOURCE_PRIORITY priority,UINT flags) {
1055 return This->lpVtbl->OfferResources1(This,resource_count,resources,priority,flags);
1056}
1057static FORCEINLINE HRESULT IDXGIDevice4_ReclaimResources1(IDXGIDevice4* This,UINT resource_count,IDXGIResource *const *resources,DXGI_RECLAIM_RESOURCE_RESULTS *results) {
1058 return This->lpVtbl->ReclaimResources1(This,resource_count,resources,results);
1059}
1060#endif
1061#endif
1062
1063#endif
1064
1065
1066#endif /* __IDXGIDevice4_INTERFACE_DEFINED__ */
1067
1068/*****************************************************************************
1069 * IDXGIFactory5 interface
1070 */
1071#ifndef __IDXGIFactory5_INTERFACE_DEFINED__
1072#define __IDXGIFactory5_INTERFACE_DEFINED__
1073
1074DEFINE_GUID(IID_IDXGIFactory5, 0x7632e1f5, 0xee65, 0x4dca, 0x87,0xfd, 0x84,0xcd,0x75,0xf8,0x83,0x8d);
1075#if defined(__cplusplus) && !defined(CINTERFACE)
1076MIDL_INTERFACE("7632e1f5-ee65-4dca-87fd-84cd75f8838d")
1077IDXGIFactory5 : public IDXGIFactory4
1078{
1079 virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
1080 DXGI_FEATURE feature,
1081 void *support_data,
1082 UINT support_data_size) = 0;
1083
1084};
1085#ifdef __CRT_UUID_DECL
1086__CRT_UUID_DECL(IDXGIFactory5, 0x7632e1f5, 0xee65, 0x4dca, 0x87,0xfd, 0x84,0xcd,0x75,0xf8,0x83,0x8d)
1087#endif
1088#else
1089typedef struct IDXGIFactory5Vtbl {
1090 BEGIN_INTERFACE
1091
1092 /*** IUnknown methods ***/
1093 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1094 IDXGIFactory5 *This,
1095 REFIID riid,
1096 void **ppvObject);
1097
1098 ULONG (STDMETHODCALLTYPE *AddRef)(
1099 IDXGIFactory5 *This);
1100
1101 ULONG (STDMETHODCALLTYPE *Release)(
1102 IDXGIFactory5 *This);
1103
1104 /*** IDXGIObject methods ***/
1105 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
1106 IDXGIFactory5 *This,
1107 REFGUID guid,
1108 UINT data_size,
1109 const void *data);
1110
1111 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
1112 IDXGIFactory5 *This,
1113 REFGUID guid,
1114 const IUnknown *object);
1115
1116 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
1117 IDXGIFactory5 *This,
1118 REFGUID guid,
1119 UINT *data_size,
1120 void *data);
1121
1122 HRESULT (STDMETHODCALLTYPE *GetParent)(
1123 IDXGIFactory5 *This,
1124 REFIID riid,
1125 void **parent);
1126
1127 /*** IDXGIFactory methods ***/
1128 HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
1129 IDXGIFactory5 *This,
1130 UINT adapter_idx,
1131 IDXGIAdapter **adapter);
1132
1133 HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
1134 IDXGIFactory5 *This,
1135 HWND window,
1136 UINT flags);
1137
1138 HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
1139 IDXGIFactory5 *This,
1140 HWND *window);
1141
1142 HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
1143 IDXGIFactory5 *This,
1144 IUnknown *device,
1145 DXGI_SWAP_CHAIN_DESC *desc,
1146 IDXGISwapChain **swapchain);
1147
1148 HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
1149 IDXGIFactory5 *This,
1150 HMODULE swrast,
1151 IDXGIAdapter **adapter);
1152
1153 /*** IDXGIFactory1 methods ***/
1154 HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
1155 IDXGIFactory5 *This,
1156 UINT Adapter,
1157 IDXGIAdapter1 **ppAdapter);
1158
1159 WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
1160 IDXGIFactory5 *This);
1161
1162 /*** IDXGIFactory2 methods ***/
1163 WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
1164 IDXGIFactory5 *This);
1165
1166 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
1167 IDXGIFactory5 *This,
1168 IUnknown *pDevice,
1169 HWND hWnd,
1170 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1171 const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
1172 IDXGIOutput *pRestrictToOutput,
1173 IDXGISwapChain1 **ppSwapChain);
1174
1175 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
1176 IDXGIFactory5 *This,
1177 IUnknown *pDevice,
1178 IUnknown *pWindow,
1179 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1180 IDXGIOutput *pRestrictToOutput,
1181 IDXGISwapChain1 **ppSwapChain);
1182
1183 HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
1184 IDXGIFactory5 *This,
1185 HANDLE hResource,
1186 LUID *pLuid);
1187
1188 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
1189 IDXGIFactory5 *This,
1190 HWND WindowHandle,
1191 UINT wMsg,
1192 DWORD *pdwCookie);
1193
1194 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
1195 IDXGIFactory5 *This,
1196 HANDLE hEvent,
1197 DWORD *pdwCookie);
1198
1199 void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
1200 IDXGIFactory5 *This,
1201 DWORD dwCookie);
1202
1203 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
1204 IDXGIFactory5 *This,
1205 HWND WindowHandle,
1206 UINT wMsg,
1207 DWORD *pdwCookie);
1208
1209 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
1210 IDXGIFactory5 *This,
1211 HANDLE hEvent,
1212 DWORD *pdwCookie);
1213
1214 void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
1215 IDXGIFactory5 *This,
1216 DWORD dwCookie);
1217
1218 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
1219 IDXGIFactory5 *This,
1220 IUnknown *pDevice,
1221 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1222 IDXGIOutput *pRestrictToOutput,
1223 IDXGISwapChain1 **ppSwapChain);
1224
1225 /*** IDXGIFactory3 methods ***/
1226 UINT (STDMETHODCALLTYPE *GetCreationFlags)(
1227 IDXGIFactory5 *This);
1228
1229 /*** IDXGIFactory4 methods ***/
1230 HRESULT (STDMETHODCALLTYPE *EnumAdapterByLuid)(
1231 IDXGIFactory5 *This,
1232 LUID luid,
1233 REFIID iid,
1234 void **adapter);
1235
1236 HRESULT (STDMETHODCALLTYPE *EnumWarpAdapter)(
1237 IDXGIFactory5 *This,
1238 REFIID iid,
1239 void **adapter);
1240
1241 /*** IDXGIFactory5 methods ***/
1242 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
1243 IDXGIFactory5 *This,
1244 DXGI_FEATURE feature,
1245 void *support_data,
1246 UINT support_data_size);
1247
1248 END_INTERFACE
1249} IDXGIFactory5Vtbl;
1250
1251interface IDXGIFactory5 {
1252 CONST_VTBL IDXGIFactory5Vtbl* lpVtbl;
1253};
1254
1255#ifdef COBJMACROS
1256#ifndef WIDL_C_INLINE_WRAPPERS
1257/*** IUnknown methods ***/
1258#define IDXGIFactory5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1259#define IDXGIFactory5_AddRef(This) (This)->lpVtbl->AddRef(This)
1260#define IDXGIFactory5_Release(This) (This)->lpVtbl->Release(This)
1261/*** IDXGIObject methods ***/
1262#define IDXGIFactory5_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
1263#define IDXGIFactory5_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
1264#define IDXGIFactory5_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
1265#define IDXGIFactory5_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
1266/*** IDXGIFactory methods ***/
1267#define IDXGIFactory5_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
1268#define IDXGIFactory5_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
1269#define IDXGIFactory5_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
1270#define IDXGIFactory5_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
1271#define IDXGIFactory5_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
1272/*** IDXGIFactory1 methods ***/
1273#define IDXGIFactory5_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
1274#define IDXGIFactory5_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
1275/*** IDXGIFactory2 methods ***/
1276#define IDXGIFactory5_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
1277#define IDXGIFactory5_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
1278#define IDXGIFactory5_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
1279#define IDXGIFactory5_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
1280#define IDXGIFactory5_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
1281#define IDXGIFactory5_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
1282#define IDXGIFactory5_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
1283#define IDXGIFactory5_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
1284#define IDXGIFactory5_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
1285#define IDXGIFactory5_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
1286#define IDXGIFactory5_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
1287/*** IDXGIFactory3 methods ***/
1288#define IDXGIFactory5_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
1289/*** IDXGIFactory4 methods ***/
1290#define IDXGIFactory5_EnumAdapterByLuid(This,luid,iid,adapter) (This)->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter)
1291#define IDXGIFactory5_EnumWarpAdapter(This,iid,adapter) (This)->lpVtbl->EnumWarpAdapter(This,iid,adapter)
1292/*** IDXGIFactory5 methods ***/
1293#define IDXGIFactory5_CheckFeatureSupport(This,feature,support_data,support_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size)
1294#else
1295/*** IUnknown methods ***/
1296static FORCEINLINE HRESULT IDXGIFactory5_QueryInterface(IDXGIFactory5* This,REFIID riid,void **ppvObject) {
1297 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1298}
1299static FORCEINLINE ULONG IDXGIFactory5_AddRef(IDXGIFactory5* This) {
1300 return This->lpVtbl->AddRef(This);
1301}
1302static FORCEINLINE ULONG IDXGIFactory5_Release(IDXGIFactory5* This) {
1303 return This->lpVtbl->Release(This);
1304}
1305/*** IDXGIObject methods ***/
1306static FORCEINLINE HRESULT IDXGIFactory5_SetPrivateData(IDXGIFactory5* This,REFGUID guid,UINT data_size,const void *data) {
1307 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
1308}
1309static FORCEINLINE HRESULT IDXGIFactory5_SetPrivateDataInterface(IDXGIFactory5* This,REFGUID guid,const IUnknown *object) {
1310 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
1311}
1312static FORCEINLINE HRESULT IDXGIFactory5_GetPrivateData(IDXGIFactory5* This,REFGUID guid,UINT *data_size,void *data) {
1313 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
1314}
1315static FORCEINLINE HRESULT IDXGIFactory5_GetParent(IDXGIFactory5* This,REFIID riid,void **parent) {
1316 return This->lpVtbl->GetParent(This,riid,parent);
1317}
1318/*** IDXGIFactory methods ***/
1319static FORCEINLINE HRESULT IDXGIFactory5_EnumAdapters(IDXGIFactory5* This,UINT adapter_idx,IDXGIAdapter **adapter) {
1320 return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
1321}
1322static FORCEINLINE HRESULT IDXGIFactory5_MakeWindowAssociation(IDXGIFactory5* This,HWND window,UINT flags) {
1323 return This->lpVtbl->MakeWindowAssociation(This,window,flags);
1324}
1325static FORCEINLINE HRESULT IDXGIFactory5_GetWindowAssociation(IDXGIFactory5* This,HWND *window) {
1326 return This->lpVtbl->GetWindowAssociation(This,window);
1327}
1328static FORCEINLINE HRESULT IDXGIFactory5_CreateSwapChain(IDXGIFactory5* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
1329 return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
1330}
1331static FORCEINLINE HRESULT IDXGIFactory5_CreateSoftwareAdapter(IDXGIFactory5* This,HMODULE swrast,IDXGIAdapter **adapter) {
1332 return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
1333}
1334/*** IDXGIFactory1 methods ***/
1335static FORCEINLINE HRESULT IDXGIFactory5_EnumAdapters1(IDXGIFactory5* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
1336 return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
1337}
1338static FORCEINLINE WINBOOL IDXGIFactory5_IsCurrent(IDXGIFactory5* This) {
1339 return This->lpVtbl->IsCurrent(This);
1340}
1341/*** IDXGIFactory2 methods ***/
1342static FORCEINLINE WINBOOL IDXGIFactory5_IsWindowedStereoEnabled(IDXGIFactory5* This) {
1343 return This->lpVtbl->IsWindowedStereoEnabled(This);
1344}
1345static FORCEINLINE HRESULT IDXGIFactory5_CreateSwapChainForHwnd(IDXGIFactory5* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1346 return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
1347}
1348static FORCEINLINE HRESULT IDXGIFactory5_CreateSwapChainForCoreWindow(IDXGIFactory5* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1349 return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
1350}
1351static FORCEINLINE HRESULT IDXGIFactory5_GetSharedResourceAdapterLuid(IDXGIFactory5* This,HANDLE hResource,LUID *pLuid) {
1352 return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
1353}
1354static FORCEINLINE HRESULT IDXGIFactory5_RegisterStereoStatusWindow(IDXGIFactory5* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
1355 return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
1356}
1357static FORCEINLINE HRESULT IDXGIFactory5_RegisterStereoStatusEvent(IDXGIFactory5* This,HANDLE hEvent,DWORD *pdwCookie) {
1358 return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
1359}
1360static FORCEINLINE void IDXGIFactory5_UnregisterStereoStatus(IDXGIFactory5* This,DWORD dwCookie) {
1361 This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
1362}
1363static FORCEINLINE HRESULT IDXGIFactory5_RegisterOcclusionStatusWindow(IDXGIFactory5* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
1364 return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
1365}
1366static FORCEINLINE HRESULT IDXGIFactory5_RegisterOcclusionStatusEvent(IDXGIFactory5* This,HANDLE hEvent,DWORD *pdwCookie) {
1367 return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
1368}
1369static FORCEINLINE void IDXGIFactory5_UnregisterOcclusionStatus(IDXGIFactory5* This,DWORD dwCookie) {
1370 This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
1371}
1372static FORCEINLINE HRESULT IDXGIFactory5_CreateSwapChainForComposition(IDXGIFactory5* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1373 return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
1374}
1375/*** IDXGIFactory3 methods ***/
1376static FORCEINLINE UINT IDXGIFactory5_GetCreationFlags(IDXGIFactory5* This) {
1377 return This->lpVtbl->GetCreationFlags(This);
1378}
1379/*** IDXGIFactory4 methods ***/
1380static FORCEINLINE HRESULT IDXGIFactory5_EnumAdapterByLuid(IDXGIFactory5* This,LUID luid,REFIID iid,void **adapter) {
1381 return This->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter);
1382}
1383static FORCEINLINE HRESULT IDXGIFactory5_EnumWarpAdapter(IDXGIFactory5* This,REFIID iid,void **adapter) {
1384 return This->lpVtbl->EnumWarpAdapter(This,iid,adapter);
1385}
1386/*** IDXGIFactory5 methods ***/
1387static FORCEINLINE HRESULT IDXGIFactory5_CheckFeatureSupport(IDXGIFactory5* This,DXGI_FEATURE feature,void *support_data,UINT support_data_size) {
1388 return This->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size);
1389}
1390#endif
1391#endif
1392
1393#endif
1394
1395
1396#endif /* __IDXGIFactory5_INTERFACE_DEFINED__ */
1397
1398/* Begin additional prototypes for all interfaces */
1399
1400
1401/* End additional prototypes */
1402
1403#ifdef __cplusplus
1404}
1405#endif
1406
1407#endif /* __dxgi1_5_h__ */
Note: See TracBrowser for help on using the repository browser.