source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dxgi1_4.h@ 1186

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

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

File size: 57.7 KB
RevLine 
[1166]1/*** Autogenerated by WIDL 6.4 from include/dxgi1_4.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_4_h__
17#define __dxgi1_4_h__
18
19/* Forward declarations */
20
21#ifndef __IDXGISwapChain3_FWD_DEFINED__
22#define __IDXGISwapChain3_FWD_DEFINED__
23typedef interface IDXGISwapChain3 IDXGISwapChain3;
24#ifdef __cplusplus
25interface IDXGISwapChain3;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IDXGIOutput4_FWD_DEFINED__
30#define __IDXGIOutput4_FWD_DEFINED__
31typedef interface IDXGIOutput4 IDXGIOutput4;
32#ifdef __cplusplus
33interface IDXGIOutput4;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IDXGIFactory4_FWD_DEFINED__
38#define __IDXGIFactory4_FWD_DEFINED__
39typedef interface IDXGIFactory4 IDXGIFactory4;
40#ifdef __cplusplus
41interface IDXGIFactory4;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IDXGIAdapter3_FWD_DEFINED__
46#define __IDXGIAdapter3_FWD_DEFINED__
47typedef interface IDXGIAdapter3 IDXGIAdapter3;
48#ifdef __cplusplus
49interface IDXGIAdapter3;
50#endif /* __cplusplus */
51#endif
52
53/* Headers for imported files */
54
55#include <dxgi1_3.h>
56
57#ifdef __cplusplus
58extern "C" {
59#endif
60
61typedef enum DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG {
62 DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1,
63 DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT = 0x2
64} DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG;
65typedef enum DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG {
66 DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1
67} DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG;
68typedef enum DXGI_MEMORY_SEGMENT_GROUP {
69 DXGI_MEMORY_SEGMENT_GROUP_LOCAL = 0x0,
70 DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL = 0x1
71} DXGI_MEMORY_SEGMENT_GROUP;
72typedef struct DXGI_QUERY_VIDEO_MEMORY_INFO {
73 UINT64 Budget;
74 UINT64 CurrentUsage;
75 UINT64 AvailableForReservation;
76 UINT64 CurrentReservation;
77} DXGI_QUERY_VIDEO_MEMORY_INFO;
78/*****************************************************************************
79 * IDXGISwapChain3 interface
80 */
81#ifndef __IDXGISwapChain3_INTERFACE_DEFINED__
82#define __IDXGISwapChain3_INTERFACE_DEFINED__
83
84DEFINE_GUID(IID_IDXGISwapChain3, 0x94d99bdb, 0xf1f8, 0x4ab0, 0xb2,0x36, 0x7d,0xa0,0x17,0x0e,0xda,0xb1);
85#if defined(__cplusplus) && !defined(CINTERFACE)
86MIDL_INTERFACE("94d99bdb-f1f8-4ab0-b236-7da0170edab1")
87IDXGISwapChain3 : public IDXGISwapChain2
88{
89 virtual UINT STDMETHODCALLTYPE GetCurrentBackBufferIndex(
90 ) = 0;
91
92 virtual HRESULT STDMETHODCALLTYPE CheckColorSpaceSupport(
93 DXGI_COLOR_SPACE_TYPE colour_space,
94 UINT *colour_space_support) = 0;
95
96 virtual HRESULT STDMETHODCALLTYPE SetColorSpace1(
97 DXGI_COLOR_SPACE_TYPE colour_space) = 0;
98
99 virtual HRESULT STDMETHODCALLTYPE ResizeBuffers1(
100 UINT buffer_count,
101 UINT width,
102 UINT height,
103 DXGI_FORMAT format,
104 UINT flags,
105 const UINT *node_mask,
106 IUnknown *const *present_queue) = 0;
107
108};
109#ifdef __CRT_UUID_DECL
110__CRT_UUID_DECL(IDXGISwapChain3, 0x94d99bdb, 0xf1f8, 0x4ab0, 0xb2,0x36, 0x7d,0xa0,0x17,0x0e,0xda,0xb1)
111#endif
112#else
113typedef struct IDXGISwapChain3Vtbl {
114 BEGIN_INTERFACE
115
116 /*** IUnknown methods ***/
117 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
118 IDXGISwapChain3 *This,
119 REFIID riid,
120 void **ppvObject);
121
122 ULONG (STDMETHODCALLTYPE *AddRef)(
123 IDXGISwapChain3 *This);
124
125 ULONG (STDMETHODCALLTYPE *Release)(
126 IDXGISwapChain3 *This);
127
128 /*** IDXGIObject methods ***/
129 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
130 IDXGISwapChain3 *This,
131 REFGUID guid,
132 UINT data_size,
133 const void *data);
134
135 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
136 IDXGISwapChain3 *This,
137 REFGUID guid,
138 const IUnknown *object);
139
140 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
141 IDXGISwapChain3 *This,
142 REFGUID guid,
143 UINT *data_size,
144 void *data);
145
146 HRESULT (STDMETHODCALLTYPE *GetParent)(
147 IDXGISwapChain3 *This,
148 REFIID riid,
149 void **parent);
150
151 /*** IDXGIDeviceSubObject methods ***/
152 HRESULT (STDMETHODCALLTYPE *GetDevice)(
153 IDXGISwapChain3 *This,
154 REFIID riid,
155 void **device);
156
157 /*** IDXGISwapChain methods ***/
158 HRESULT (STDMETHODCALLTYPE *Present)(
159 IDXGISwapChain3 *This,
160 UINT sync_interval,
161 UINT flags);
162
163 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
164 IDXGISwapChain3 *This,
165 UINT buffer_idx,
166 REFIID riid,
167 void **surface);
168
169 HRESULT (STDMETHODCALLTYPE *SetFullscreenState)(
170 IDXGISwapChain3 *This,
171 WINBOOL fullscreen,
172 IDXGIOutput *target);
173
174 HRESULT (STDMETHODCALLTYPE *GetFullscreenState)(
175 IDXGISwapChain3 *This,
176 WINBOOL *fullscreen,
177 IDXGIOutput **target);
178
179 HRESULT (STDMETHODCALLTYPE *GetDesc)(
180 IDXGISwapChain3 *This,
181 DXGI_SWAP_CHAIN_DESC *desc);
182
183 HRESULT (STDMETHODCALLTYPE *ResizeBuffers)(
184 IDXGISwapChain3 *This,
185 UINT buffer_count,
186 UINT width,
187 UINT height,
188 DXGI_FORMAT format,
189 UINT flags);
190
191 HRESULT (STDMETHODCALLTYPE *ResizeTarget)(
192 IDXGISwapChain3 *This,
193 const DXGI_MODE_DESC *target_mode_desc);
194
195 HRESULT (STDMETHODCALLTYPE *GetContainingOutput)(
196 IDXGISwapChain3 *This,
197 IDXGIOutput **output);
198
199 HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
200 IDXGISwapChain3 *This,
201 DXGI_FRAME_STATISTICS *stats);
202
203 HRESULT (STDMETHODCALLTYPE *GetLastPresentCount)(
204 IDXGISwapChain3 *This,
205 UINT *last_present_count);
206
207 /*** IDXGISwapChain1 methods ***/
208 HRESULT (STDMETHODCALLTYPE *GetDesc1)(
209 IDXGISwapChain3 *This,
210 DXGI_SWAP_CHAIN_DESC1 *pDesc);
211
212 HRESULT (STDMETHODCALLTYPE *GetFullscreenDesc)(
213 IDXGISwapChain3 *This,
214 DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc);
215
216 HRESULT (STDMETHODCALLTYPE *GetHwnd)(
217 IDXGISwapChain3 *This,
218 HWND *pHwnd);
219
220 HRESULT (STDMETHODCALLTYPE *GetCoreWindow)(
221 IDXGISwapChain3 *This,
222 REFIID refiid,
223 void **ppUnk);
224
225 HRESULT (STDMETHODCALLTYPE *Present1)(
226 IDXGISwapChain3 *This,
227 UINT SyncInterval,
228 UINT PresentFlags,
229 const DXGI_PRESENT_PARAMETERS *pPresentParameters);
230
231 WINBOOL (STDMETHODCALLTYPE *IsTemporaryMonoSupported)(
232 IDXGISwapChain3 *This);
233
234 HRESULT (STDMETHODCALLTYPE *GetRestrictToOutput)(
235 IDXGISwapChain3 *This,
236 IDXGIOutput **ppRestrictToOutput);
237
238 HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
239 IDXGISwapChain3 *This,
240 const DXGI_RGBA *pColor);
241
242 HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)(
243 IDXGISwapChain3 *This,
244 DXGI_RGBA *pColor);
245
246 HRESULT (STDMETHODCALLTYPE *SetRotation)(
247 IDXGISwapChain3 *This,
248 DXGI_MODE_ROTATION Rotation);
249
250 HRESULT (STDMETHODCALLTYPE *GetRotation)(
251 IDXGISwapChain3 *This,
252 DXGI_MODE_ROTATION *pRotation);
253
254 /*** IDXGISwapChain2 methods ***/
255 HRESULT (STDMETHODCALLTYPE *SetSourceSize)(
256 IDXGISwapChain3 *This,
257 UINT width,
258 UINT height);
259
260 HRESULT (STDMETHODCALLTYPE *GetSourceSize)(
261 IDXGISwapChain3 *This,
262 UINT *width,
263 UINT *height);
264
265 HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
266 IDXGISwapChain3 *This,
267 UINT max_latency);
268
269 HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
270 IDXGISwapChain3 *This,
271 UINT *max_latency);
272
273 HANDLE (STDMETHODCALLTYPE *GetFrameLatencyWaitableObject)(
274 IDXGISwapChain3 *This);
275
276 HRESULT (STDMETHODCALLTYPE *SetMatrixTransform)(
277 IDXGISwapChain3 *This,
278 const DXGI_MATRIX_3X2_F *matrix);
279
280 HRESULT (STDMETHODCALLTYPE *GetMatrixTransform)(
281 IDXGISwapChain3 *This,
282 DXGI_MATRIX_3X2_F *matrix);
283
284 /*** IDXGISwapChain3 methods ***/
285 UINT (STDMETHODCALLTYPE *GetCurrentBackBufferIndex)(
286 IDXGISwapChain3 *This);
287
288 HRESULT (STDMETHODCALLTYPE *CheckColorSpaceSupport)(
289 IDXGISwapChain3 *This,
290 DXGI_COLOR_SPACE_TYPE colour_space,
291 UINT *colour_space_support);
292
293 HRESULT (STDMETHODCALLTYPE *SetColorSpace1)(
294 IDXGISwapChain3 *This,
295 DXGI_COLOR_SPACE_TYPE colour_space);
296
297 HRESULT (STDMETHODCALLTYPE *ResizeBuffers1)(
298 IDXGISwapChain3 *This,
299 UINT buffer_count,
300 UINT width,
301 UINT height,
302 DXGI_FORMAT format,
303 UINT flags,
304 const UINT *node_mask,
305 IUnknown *const *present_queue);
306
307 END_INTERFACE
308} IDXGISwapChain3Vtbl;
309
310interface IDXGISwapChain3 {
311 CONST_VTBL IDXGISwapChain3Vtbl* lpVtbl;
312};
313
314#ifdef COBJMACROS
315#ifndef WIDL_C_INLINE_WRAPPERS
316/*** IUnknown methods ***/
317#define IDXGISwapChain3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
318#define IDXGISwapChain3_AddRef(This) (This)->lpVtbl->AddRef(This)
319#define IDXGISwapChain3_Release(This) (This)->lpVtbl->Release(This)
320/*** IDXGIObject methods ***/
321#define IDXGISwapChain3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
322#define IDXGISwapChain3_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
323#define IDXGISwapChain3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
324#define IDXGISwapChain3_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
325/*** IDXGIDeviceSubObject methods ***/
326#define IDXGISwapChain3_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
327/*** IDXGISwapChain methods ***/
328#define IDXGISwapChain3_Present(This,sync_interval,flags) (This)->lpVtbl->Present(This,sync_interval,flags)
329#define IDXGISwapChain3_GetBuffer(This,buffer_idx,riid,surface) (This)->lpVtbl->GetBuffer(This,buffer_idx,riid,surface)
330#define IDXGISwapChain3_SetFullscreenState(This,fullscreen,target) (This)->lpVtbl->SetFullscreenState(This,fullscreen,target)
331#define IDXGISwapChain3_GetFullscreenState(This,fullscreen,target) (This)->lpVtbl->GetFullscreenState(This,fullscreen,target)
332#define IDXGISwapChain3_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
333#define IDXGISwapChain3_ResizeBuffers(This,buffer_count,width,height,format,flags) (This)->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags)
334#define IDXGISwapChain3_ResizeTarget(This,target_mode_desc) (This)->lpVtbl->ResizeTarget(This,target_mode_desc)
335#define IDXGISwapChain3_GetContainingOutput(This,output) (This)->lpVtbl->GetContainingOutput(This,output)
336#define IDXGISwapChain3_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
337#define IDXGISwapChain3_GetLastPresentCount(This,last_present_count) (This)->lpVtbl->GetLastPresentCount(This,last_present_count)
338/*** IDXGISwapChain1 methods ***/
339#define IDXGISwapChain3_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
340#define IDXGISwapChain3_GetFullscreenDesc(This,pDesc) (This)->lpVtbl->GetFullscreenDesc(This,pDesc)
341#define IDXGISwapChain3_GetHwnd(This,pHwnd) (This)->lpVtbl->GetHwnd(This,pHwnd)
342#define IDXGISwapChain3_GetCoreWindow(This,refiid,ppUnk) (This)->lpVtbl->GetCoreWindow(This,refiid,ppUnk)
343#define IDXGISwapChain3_Present1(This,SyncInterval,PresentFlags,pPresentParameters) (This)->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters)
344#define IDXGISwapChain3_IsTemporaryMonoSupported(This) (This)->lpVtbl->IsTemporaryMonoSupported(This)
345#define IDXGISwapChain3_GetRestrictToOutput(This,ppRestrictToOutput) (This)->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput)
346#define IDXGISwapChain3_SetBackgroundColor(This,pColor) (This)->lpVtbl->SetBackgroundColor(This,pColor)
347#define IDXGISwapChain3_GetBackgroundColor(This,pColor) (This)->lpVtbl->GetBackgroundColor(This,pColor)
348#define IDXGISwapChain3_SetRotation(This,Rotation) (This)->lpVtbl->SetRotation(This,Rotation)
349#define IDXGISwapChain3_GetRotation(This,pRotation) (This)->lpVtbl->GetRotation(This,pRotation)
350/*** IDXGISwapChain2 methods ***/
351#define IDXGISwapChain3_SetSourceSize(This,width,height) (This)->lpVtbl->SetSourceSize(This,width,height)
352#define IDXGISwapChain3_GetSourceSize(This,width,height) (This)->lpVtbl->GetSourceSize(This,width,height)
353#define IDXGISwapChain3_SetMaximumFrameLatency(This,max_latency) (This)->lpVtbl->SetMaximumFrameLatency(This,max_latency)
354#define IDXGISwapChain3_GetMaximumFrameLatency(This,max_latency) (This)->lpVtbl->GetMaximumFrameLatency(This,max_latency)
355#define IDXGISwapChain3_GetFrameLatencyWaitableObject(This) (This)->lpVtbl->GetFrameLatencyWaitableObject(This)
356#define IDXGISwapChain3_SetMatrixTransform(This,matrix) (This)->lpVtbl->SetMatrixTransform(This,matrix)
357#define IDXGISwapChain3_GetMatrixTransform(This,matrix) (This)->lpVtbl->GetMatrixTransform(This,matrix)
358/*** IDXGISwapChain3 methods ***/
359#define IDXGISwapChain3_GetCurrentBackBufferIndex(This) (This)->lpVtbl->GetCurrentBackBufferIndex(This)
360#define IDXGISwapChain3_CheckColorSpaceSupport(This,colour_space,colour_space_support) (This)->lpVtbl->CheckColorSpaceSupport(This,colour_space,colour_space_support)
361#define IDXGISwapChain3_SetColorSpace1(This,colour_space) (This)->lpVtbl->SetColorSpace1(This,colour_space)
362#define IDXGISwapChain3_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)
363#else
364/*** IUnknown methods ***/
365static FORCEINLINE HRESULT IDXGISwapChain3_QueryInterface(IDXGISwapChain3* This,REFIID riid,void **ppvObject) {
366 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
367}
368static FORCEINLINE ULONG IDXGISwapChain3_AddRef(IDXGISwapChain3* This) {
369 return This->lpVtbl->AddRef(This);
370}
371static FORCEINLINE ULONG IDXGISwapChain3_Release(IDXGISwapChain3* This) {
372 return This->lpVtbl->Release(This);
373}
374/*** IDXGIObject methods ***/
375static FORCEINLINE HRESULT IDXGISwapChain3_SetPrivateData(IDXGISwapChain3* This,REFGUID guid,UINT data_size,const void *data) {
376 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
377}
378static FORCEINLINE HRESULT IDXGISwapChain3_SetPrivateDataInterface(IDXGISwapChain3* This,REFGUID guid,const IUnknown *object) {
379 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
380}
381static FORCEINLINE HRESULT IDXGISwapChain3_GetPrivateData(IDXGISwapChain3* This,REFGUID guid,UINT *data_size,void *data) {
382 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
383}
384static FORCEINLINE HRESULT IDXGISwapChain3_GetParent(IDXGISwapChain3* This,REFIID riid,void **parent) {
385 return This->lpVtbl->GetParent(This,riid,parent);
386}
387/*** IDXGIDeviceSubObject methods ***/
388static FORCEINLINE HRESULT IDXGISwapChain3_GetDevice(IDXGISwapChain3* This,REFIID riid,void **device) {
389 return This->lpVtbl->GetDevice(This,riid,device);
390}
391/*** IDXGISwapChain methods ***/
392static FORCEINLINE HRESULT IDXGISwapChain3_Present(IDXGISwapChain3* This,UINT sync_interval,UINT flags) {
393 return This->lpVtbl->Present(This,sync_interval,flags);
394}
395static FORCEINLINE HRESULT IDXGISwapChain3_GetBuffer(IDXGISwapChain3* This,UINT buffer_idx,REFIID riid,void **surface) {
396 return This->lpVtbl->GetBuffer(This,buffer_idx,riid,surface);
397}
398static FORCEINLINE HRESULT IDXGISwapChain3_SetFullscreenState(IDXGISwapChain3* This,WINBOOL fullscreen,IDXGIOutput *target) {
399 return This->lpVtbl->SetFullscreenState(This,fullscreen,target);
400}
401static FORCEINLINE HRESULT IDXGISwapChain3_GetFullscreenState(IDXGISwapChain3* This,WINBOOL *fullscreen,IDXGIOutput **target) {
402 return This->lpVtbl->GetFullscreenState(This,fullscreen,target);
403}
404static FORCEINLINE HRESULT IDXGISwapChain3_GetDesc(IDXGISwapChain3* This,DXGI_SWAP_CHAIN_DESC *desc) {
405 return This->lpVtbl->GetDesc(This,desc);
406}
407static FORCEINLINE HRESULT IDXGISwapChain3_ResizeBuffers(IDXGISwapChain3* This,UINT buffer_count,UINT width,UINT height,DXGI_FORMAT format,UINT flags) {
408 return This->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags);
409}
410static FORCEINLINE HRESULT IDXGISwapChain3_ResizeTarget(IDXGISwapChain3* This,const DXGI_MODE_DESC *target_mode_desc) {
411 return This->lpVtbl->ResizeTarget(This,target_mode_desc);
412}
413static FORCEINLINE HRESULT IDXGISwapChain3_GetContainingOutput(IDXGISwapChain3* This,IDXGIOutput **output) {
414 return This->lpVtbl->GetContainingOutput(This,output);
415}
416static FORCEINLINE HRESULT IDXGISwapChain3_GetFrameStatistics(IDXGISwapChain3* This,DXGI_FRAME_STATISTICS *stats) {
417 return This->lpVtbl->GetFrameStatistics(This,stats);
418}
419static FORCEINLINE HRESULT IDXGISwapChain3_GetLastPresentCount(IDXGISwapChain3* This,UINT *last_present_count) {
420 return This->lpVtbl->GetLastPresentCount(This,last_present_count);
421}
422/*** IDXGISwapChain1 methods ***/
423static FORCEINLINE HRESULT IDXGISwapChain3_GetDesc1(IDXGISwapChain3* This,DXGI_SWAP_CHAIN_DESC1 *pDesc) {
424 return This->lpVtbl->GetDesc1(This,pDesc);
425}
426static FORCEINLINE HRESULT IDXGISwapChain3_GetFullscreenDesc(IDXGISwapChain3* This,DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc) {
427 return This->lpVtbl->GetFullscreenDesc(This,pDesc);
428}
429static FORCEINLINE HRESULT IDXGISwapChain3_GetHwnd(IDXGISwapChain3* This,HWND *pHwnd) {
430 return This->lpVtbl->GetHwnd(This,pHwnd);
431}
432static FORCEINLINE HRESULT IDXGISwapChain3_GetCoreWindow(IDXGISwapChain3* This,REFIID refiid,void **ppUnk) {
433 return This->lpVtbl->GetCoreWindow(This,refiid,ppUnk);
434}
435static FORCEINLINE HRESULT IDXGISwapChain3_Present1(IDXGISwapChain3* This,UINT SyncInterval,UINT PresentFlags,const DXGI_PRESENT_PARAMETERS *pPresentParameters) {
436 return This->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters);
437}
438static FORCEINLINE WINBOOL IDXGISwapChain3_IsTemporaryMonoSupported(IDXGISwapChain3* This) {
439 return This->lpVtbl->IsTemporaryMonoSupported(This);
440}
441static FORCEINLINE HRESULT IDXGISwapChain3_GetRestrictToOutput(IDXGISwapChain3* This,IDXGIOutput **ppRestrictToOutput) {
442 return This->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput);
443}
444static FORCEINLINE HRESULT IDXGISwapChain3_SetBackgroundColor(IDXGISwapChain3* This,const DXGI_RGBA *pColor) {
445 return This->lpVtbl->SetBackgroundColor(This,pColor);
446}
447static FORCEINLINE HRESULT IDXGISwapChain3_GetBackgroundColor(IDXGISwapChain3* This,DXGI_RGBA *pColor) {
448 return This->lpVtbl->GetBackgroundColor(This,pColor);
449}
450static FORCEINLINE HRESULT IDXGISwapChain3_SetRotation(IDXGISwapChain3* This,DXGI_MODE_ROTATION Rotation) {
451 return This->lpVtbl->SetRotation(This,Rotation);
452}
453static FORCEINLINE HRESULT IDXGISwapChain3_GetRotation(IDXGISwapChain3* This,DXGI_MODE_ROTATION *pRotation) {
454 return This->lpVtbl->GetRotation(This,pRotation);
455}
456/*** IDXGISwapChain2 methods ***/
457static FORCEINLINE HRESULT IDXGISwapChain3_SetSourceSize(IDXGISwapChain3* This,UINT width,UINT height) {
458 return This->lpVtbl->SetSourceSize(This,width,height);
459}
460static FORCEINLINE HRESULT IDXGISwapChain3_GetSourceSize(IDXGISwapChain3* This,UINT *width,UINT *height) {
461 return This->lpVtbl->GetSourceSize(This,width,height);
462}
463static FORCEINLINE HRESULT IDXGISwapChain3_SetMaximumFrameLatency(IDXGISwapChain3* This,UINT max_latency) {
464 return This->lpVtbl->SetMaximumFrameLatency(This,max_latency);
465}
466static FORCEINLINE HRESULT IDXGISwapChain3_GetMaximumFrameLatency(IDXGISwapChain3* This,UINT *max_latency) {
467 return This->lpVtbl->GetMaximumFrameLatency(This,max_latency);
468}
469static FORCEINLINE HANDLE IDXGISwapChain3_GetFrameLatencyWaitableObject(IDXGISwapChain3* This) {
470 return This->lpVtbl->GetFrameLatencyWaitableObject(This);
471}
472static FORCEINLINE HRESULT IDXGISwapChain3_SetMatrixTransform(IDXGISwapChain3* This,const DXGI_MATRIX_3X2_F *matrix) {
473 return This->lpVtbl->SetMatrixTransform(This,matrix);
474}
475static FORCEINLINE HRESULT IDXGISwapChain3_GetMatrixTransform(IDXGISwapChain3* This,DXGI_MATRIX_3X2_F *matrix) {
476 return This->lpVtbl->GetMatrixTransform(This,matrix);
477}
478/*** IDXGISwapChain3 methods ***/
479static FORCEINLINE UINT IDXGISwapChain3_GetCurrentBackBufferIndex(IDXGISwapChain3* This) {
480 return This->lpVtbl->GetCurrentBackBufferIndex(This);
481}
482static FORCEINLINE HRESULT IDXGISwapChain3_CheckColorSpaceSupport(IDXGISwapChain3* This,DXGI_COLOR_SPACE_TYPE colour_space,UINT *colour_space_support) {
483 return This->lpVtbl->CheckColorSpaceSupport(This,colour_space,colour_space_support);
484}
485static FORCEINLINE HRESULT IDXGISwapChain3_SetColorSpace1(IDXGISwapChain3* This,DXGI_COLOR_SPACE_TYPE colour_space) {
486 return This->lpVtbl->SetColorSpace1(This,colour_space);
487}
488static FORCEINLINE HRESULT IDXGISwapChain3_ResizeBuffers1(IDXGISwapChain3* This,UINT buffer_count,UINT width,UINT height,DXGI_FORMAT format,UINT flags,const UINT *node_mask,IUnknown *const *present_queue) {
489 return This->lpVtbl->ResizeBuffers1(This,buffer_count,width,height,format,flags,node_mask,present_queue);
490}
491#endif
492#endif
493
494#endif
495
496
497#endif /* __IDXGISwapChain3_INTERFACE_DEFINED__ */
498
499/*****************************************************************************
500 * IDXGIOutput4 interface
501 */
502#ifndef __IDXGIOutput4_INTERFACE_DEFINED__
503#define __IDXGIOutput4_INTERFACE_DEFINED__
504
505DEFINE_GUID(IID_IDXGIOutput4, 0xdc7dca35, 0x2196, 0x414d, 0x9f,0x53, 0x61,0x78,0x84,0x03,0x2a,0x60);
506#if defined(__cplusplus) && !defined(CINTERFACE)
507MIDL_INTERFACE("dc7dca35-2196-414d-9f53-617884032a60")
508IDXGIOutput4 : public IDXGIOutput3
509{
510 virtual HRESULT STDMETHODCALLTYPE CheckOverlayColorSpaceSupport(
511 DXGI_FORMAT format,
512 DXGI_COLOR_SPACE_TYPE colour_space,
513 IUnknown *device,
514 UINT *flags) = 0;
515
516};
517#ifdef __CRT_UUID_DECL
518__CRT_UUID_DECL(IDXGIOutput4, 0xdc7dca35, 0x2196, 0x414d, 0x9f,0x53, 0x61,0x78,0x84,0x03,0x2a,0x60)
519#endif
520#else
521typedef struct IDXGIOutput4Vtbl {
522 BEGIN_INTERFACE
523
524 /*** IUnknown methods ***/
525 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
526 IDXGIOutput4 *This,
527 REFIID riid,
528 void **ppvObject);
529
530 ULONG (STDMETHODCALLTYPE *AddRef)(
531 IDXGIOutput4 *This);
532
533 ULONG (STDMETHODCALLTYPE *Release)(
534 IDXGIOutput4 *This);
535
536 /*** IDXGIObject methods ***/
537 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
538 IDXGIOutput4 *This,
539 REFGUID guid,
540 UINT data_size,
541 const void *data);
542
543 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
544 IDXGIOutput4 *This,
545 REFGUID guid,
546 const IUnknown *object);
547
548 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
549 IDXGIOutput4 *This,
550 REFGUID guid,
551 UINT *data_size,
552 void *data);
553
554 HRESULT (STDMETHODCALLTYPE *GetParent)(
555 IDXGIOutput4 *This,
556 REFIID riid,
557 void **parent);
558
559 /*** IDXGIOutput methods ***/
560 HRESULT (STDMETHODCALLTYPE *GetDesc)(
561 IDXGIOutput4 *This,
562 DXGI_OUTPUT_DESC *desc);
563
564 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
565 IDXGIOutput4 *This,
566 DXGI_FORMAT format,
567 UINT flags,
568 UINT *mode_count,
569 DXGI_MODE_DESC *desc);
570
571 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
572 IDXGIOutput4 *This,
573 const DXGI_MODE_DESC *mode,
574 DXGI_MODE_DESC *closest_match,
575 IUnknown *device);
576
577 HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
578 IDXGIOutput4 *This);
579
580 HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
581 IDXGIOutput4 *This,
582 IUnknown *device,
583 WINBOOL exclusive);
584
585 void (STDMETHODCALLTYPE *ReleaseOwnership)(
586 IDXGIOutput4 *This);
587
588 HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
589 IDXGIOutput4 *This,
590 DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
591
592 HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
593 IDXGIOutput4 *This,
594 const DXGI_GAMMA_CONTROL *gamma_control);
595
596 HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
597 IDXGIOutput4 *This,
598 DXGI_GAMMA_CONTROL *gamma_control);
599
600 HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
601 IDXGIOutput4 *This,
602 IDXGISurface *surface);
603
604 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
605 IDXGIOutput4 *This,
606 IDXGISurface *surface);
607
608 HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
609 IDXGIOutput4 *This,
610 DXGI_FRAME_STATISTICS *stats);
611
612 /*** IDXGIOutput1 methods ***/
613 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
614 IDXGIOutput4 *This,
615 DXGI_FORMAT enum_format,
616 UINT flags,
617 UINT *num_modes,
618 DXGI_MODE_DESC1 *desc);
619
620 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
621 IDXGIOutput4 *This,
622 const DXGI_MODE_DESC1 *mode_to_match,
623 DXGI_MODE_DESC1 *closest_match,
624 IUnknown *concerned_device);
625
626 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
627 IDXGIOutput4 *This,
628 IDXGIResource *destination);
629
630 HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
631 IDXGIOutput4 *This,
632 IUnknown *device,
633 IDXGIOutputDuplication **output_duplication);
634
635 /*** IDXGIOutput2 methods ***/
636 WINBOOL (STDMETHODCALLTYPE *SupportsOverlays)(
637 IDXGIOutput4 *This);
638
639 /*** IDXGIOutput3 methods ***/
640 HRESULT (STDMETHODCALLTYPE *CheckOverlaySupport)(
641 IDXGIOutput4 *This,
642 DXGI_FORMAT enum_format,
643 IUnknown *concerned_device,
644 UINT *flags);
645
646 /*** IDXGIOutput4 methods ***/
647 HRESULT (STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport)(
648 IDXGIOutput4 *This,
649 DXGI_FORMAT format,
650 DXGI_COLOR_SPACE_TYPE colour_space,
651 IUnknown *device,
652 UINT *flags);
653
654 END_INTERFACE
655} IDXGIOutput4Vtbl;
656
657interface IDXGIOutput4 {
658 CONST_VTBL IDXGIOutput4Vtbl* lpVtbl;
659};
660
661#ifdef COBJMACROS
662#ifndef WIDL_C_INLINE_WRAPPERS
663/*** IUnknown methods ***/
664#define IDXGIOutput4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
665#define IDXGIOutput4_AddRef(This) (This)->lpVtbl->AddRef(This)
666#define IDXGIOutput4_Release(This) (This)->lpVtbl->Release(This)
667/*** IDXGIObject methods ***/
668#define IDXGIOutput4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
669#define IDXGIOutput4_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
670#define IDXGIOutput4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
671#define IDXGIOutput4_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
672/*** IDXGIOutput methods ***/
673#define IDXGIOutput4_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
674#define IDXGIOutput4_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
675#define IDXGIOutput4_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
676#define IDXGIOutput4_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
677#define IDXGIOutput4_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
678#define IDXGIOutput4_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
679#define IDXGIOutput4_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
680#define IDXGIOutput4_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
681#define IDXGIOutput4_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
682#define IDXGIOutput4_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
683#define IDXGIOutput4_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
684#define IDXGIOutput4_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
685/*** IDXGIOutput1 methods ***/
686#define IDXGIOutput4_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc)
687#define IDXGIOutput4_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device)
688#define IDXGIOutput4_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination)
689#define IDXGIOutput4_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication)
690/*** IDXGIOutput2 methods ***/
691#define IDXGIOutput4_SupportsOverlays(This) (This)->lpVtbl->SupportsOverlays(This)
692/*** IDXGIOutput3 methods ***/
693#define IDXGIOutput4_CheckOverlaySupport(This,enum_format,concerned_device,flags) (This)->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags)
694/*** IDXGIOutput4 methods ***/
695#define IDXGIOutput4_CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags) (This)->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags)
696#else
697/*** IUnknown methods ***/
698static FORCEINLINE HRESULT IDXGIOutput4_QueryInterface(IDXGIOutput4* This,REFIID riid,void **ppvObject) {
699 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
700}
701static FORCEINLINE ULONG IDXGIOutput4_AddRef(IDXGIOutput4* This) {
702 return This->lpVtbl->AddRef(This);
703}
704static FORCEINLINE ULONG IDXGIOutput4_Release(IDXGIOutput4* This) {
705 return This->lpVtbl->Release(This);
706}
707/*** IDXGIObject methods ***/
708static FORCEINLINE HRESULT IDXGIOutput4_SetPrivateData(IDXGIOutput4* This,REFGUID guid,UINT data_size,const void *data) {
709 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
710}
711static FORCEINLINE HRESULT IDXGIOutput4_SetPrivateDataInterface(IDXGIOutput4* This,REFGUID guid,const IUnknown *object) {
712 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
713}
714static FORCEINLINE HRESULT IDXGIOutput4_GetPrivateData(IDXGIOutput4* This,REFGUID guid,UINT *data_size,void *data) {
715 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
716}
717static FORCEINLINE HRESULT IDXGIOutput4_GetParent(IDXGIOutput4* This,REFIID riid,void **parent) {
718 return This->lpVtbl->GetParent(This,riid,parent);
719}
720/*** IDXGIOutput methods ***/
721static FORCEINLINE HRESULT IDXGIOutput4_GetDesc(IDXGIOutput4* This,DXGI_OUTPUT_DESC *desc) {
722 return This->lpVtbl->GetDesc(This,desc);
723}
724static FORCEINLINE HRESULT IDXGIOutput4_GetDisplayModeList(IDXGIOutput4* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
725 return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
726}
727static FORCEINLINE HRESULT IDXGIOutput4_FindClosestMatchingMode(IDXGIOutput4* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
728 return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
729}
730static FORCEINLINE HRESULT IDXGIOutput4_WaitForVBlank(IDXGIOutput4* This) {
731 return This->lpVtbl->WaitForVBlank(This);
732}
733static FORCEINLINE HRESULT IDXGIOutput4_TakeOwnership(IDXGIOutput4* This,IUnknown *device,WINBOOL exclusive) {
734 return This->lpVtbl->TakeOwnership(This,device,exclusive);
735}
736static FORCEINLINE void IDXGIOutput4_ReleaseOwnership(IDXGIOutput4* This) {
737 This->lpVtbl->ReleaseOwnership(This);
738}
739static FORCEINLINE HRESULT IDXGIOutput4_GetGammaControlCapabilities(IDXGIOutput4* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
740 return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
741}
742static FORCEINLINE HRESULT IDXGIOutput4_SetGammaControl(IDXGIOutput4* This,const DXGI_GAMMA_CONTROL *gamma_control) {
743 return This->lpVtbl->SetGammaControl(This,gamma_control);
744}
745static FORCEINLINE HRESULT IDXGIOutput4_GetGammaControl(IDXGIOutput4* This,DXGI_GAMMA_CONTROL *gamma_control) {
746 return This->lpVtbl->GetGammaControl(This,gamma_control);
747}
748static FORCEINLINE HRESULT IDXGIOutput4_SetDisplaySurface(IDXGIOutput4* This,IDXGISurface *surface) {
749 return This->lpVtbl->SetDisplaySurface(This,surface);
750}
751static FORCEINLINE HRESULT IDXGIOutput4_GetDisplaySurfaceData(IDXGIOutput4* This,IDXGISurface *surface) {
752 return This->lpVtbl->GetDisplaySurfaceData(This,surface);
753}
754static FORCEINLINE HRESULT IDXGIOutput4_GetFrameStatistics(IDXGIOutput4* This,DXGI_FRAME_STATISTICS *stats) {
755 return This->lpVtbl->GetFrameStatistics(This,stats);
756}
757/*** IDXGIOutput1 methods ***/
758static FORCEINLINE HRESULT IDXGIOutput4_GetDisplayModeList1(IDXGIOutput4* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) {
759 return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc);
760}
761static FORCEINLINE HRESULT IDXGIOutput4_FindClosestMatchingMode1(IDXGIOutput4* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) {
762 return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device);
763}
764static FORCEINLINE HRESULT IDXGIOutput4_GetDisplaySurfaceData1(IDXGIOutput4* This,IDXGIResource *destination) {
765 return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
766}
767static FORCEINLINE HRESULT IDXGIOutput4_DuplicateOutput(IDXGIOutput4* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
768 return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
769}
770/*** IDXGIOutput2 methods ***/
771static FORCEINLINE WINBOOL IDXGIOutput4_SupportsOverlays(IDXGIOutput4* This) {
772 return This->lpVtbl->SupportsOverlays(This);
773}
774/*** IDXGIOutput3 methods ***/
775static FORCEINLINE HRESULT IDXGIOutput4_CheckOverlaySupport(IDXGIOutput4* This,DXGI_FORMAT enum_format,IUnknown *concerned_device,UINT *flags) {
776 return This->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags);
777}
778/*** IDXGIOutput4 methods ***/
779static FORCEINLINE HRESULT IDXGIOutput4_CheckOverlayColorSpaceSupport(IDXGIOutput4* This,DXGI_FORMAT format,DXGI_COLOR_SPACE_TYPE colour_space,IUnknown *device,UINT *flags) {
780 return This->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags);
781}
782#endif
783#endif
784
785#endif
786
787
788#endif /* __IDXGIOutput4_INTERFACE_DEFINED__ */
789
790/*****************************************************************************
791 * IDXGIFactory4 interface
792 */
793#ifndef __IDXGIFactory4_INTERFACE_DEFINED__
794#define __IDXGIFactory4_INTERFACE_DEFINED__
795
796DEFINE_GUID(IID_IDXGIFactory4, 0x1bc6ea02, 0xef36, 0x464f, 0xbf,0x0c, 0x21,0xca,0x39,0xe5,0x16,0x8a);
797#if defined(__cplusplus) && !defined(CINTERFACE)
798MIDL_INTERFACE("1bc6ea02-ef36-464f-bf0c-21ca39e5168a")
799IDXGIFactory4 : public IDXGIFactory3
800{
801 virtual HRESULT STDMETHODCALLTYPE EnumAdapterByLuid(
802 LUID luid,
803 REFIID iid,
804 void **adapter) = 0;
805
806 virtual HRESULT STDMETHODCALLTYPE EnumWarpAdapter(
807 REFIID iid,
808 void **adapter) = 0;
809
810};
811#ifdef __CRT_UUID_DECL
812__CRT_UUID_DECL(IDXGIFactory4, 0x1bc6ea02, 0xef36, 0x464f, 0xbf,0x0c, 0x21,0xca,0x39,0xe5,0x16,0x8a)
813#endif
814#else
815typedef struct IDXGIFactory4Vtbl {
816 BEGIN_INTERFACE
817
818 /*** IUnknown methods ***/
819 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
820 IDXGIFactory4 *This,
821 REFIID riid,
822 void **ppvObject);
823
824 ULONG (STDMETHODCALLTYPE *AddRef)(
825 IDXGIFactory4 *This);
826
827 ULONG (STDMETHODCALLTYPE *Release)(
828 IDXGIFactory4 *This);
829
830 /*** IDXGIObject methods ***/
831 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
832 IDXGIFactory4 *This,
833 REFGUID guid,
834 UINT data_size,
835 const void *data);
836
837 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
838 IDXGIFactory4 *This,
839 REFGUID guid,
840 const IUnknown *object);
841
842 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
843 IDXGIFactory4 *This,
844 REFGUID guid,
845 UINT *data_size,
846 void *data);
847
848 HRESULT (STDMETHODCALLTYPE *GetParent)(
849 IDXGIFactory4 *This,
850 REFIID riid,
851 void **parent);
852
853 /*** IDXGIFactory methods ***/
854 HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
855 IDXGIFactory4 *This,
856 UINT adapter_idx,
857 IDXGIAdapter **adapter);
858
859 HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
860 IDXGIFactory4 *This,
861 HWND window,
862 UINT flags);
863
864 HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
865 IDXGIFactory4 *This,
866 HWND *window);
867
868 HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
869 IDXGIFactory4 *This,
870 IUnknown *device,
871 DXGI_SWAP_CHAIN_DESC *desc,
872 IDXGISwapChain **swapchain);
873
874 HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
875 IDXGIFactory4 *This,
876 HMODULE swrast,
877 IDXGIAdapter **adapter);
878
879 /*** IDXGIFactory1 methods ***/
880 HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
881 IDXGIFactory4 *This,
882 UINT Adapter,
883 IDXGIAdapter1 **ppAdapter);
884
885 WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
886 IDXGIFactory4 *This);
887
888 /*** IDXGIFactory2 methods ***/
889 WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
890 IDXGIFactory4 *This);
891
892 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
893 IDXGIFactory4 *This,
894 IUnknown *pDevice,
895 HWND hWnd,
896 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
897 const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
898 IDXGIOutput *pRestrictToOutput,
899 IDXGISwapChain1 **ppSwapChain);
900
901 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
902 IDXGIFactory4 *This,
903 IUnknown *pDevice,
904 IUnknown *pWindow,
905 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
906 IDXGIOutput *pRestrictToOutput,
907 IDXGISwapChain1 **ppSwapChain);
908
909 HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
910 IDXGIFactory4 *This,
911 HANDLE hResource,
912 LUID *pLuid);
913
914 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
915 IDXGIFactory4 *This,
916 HWND WindowHandle,
917 UINT wMsg,
918 DWORD *pdwCookie);
919
920 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
921 IDXGIFactory4 *This,
922 HANDLE hEvent,
923 DWORD *pdwCookie);
924
925 void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
926 IDXGIFactory4 *This,
927 DWORD dwCookie);
928
929 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
930 IDXGIFactory4 *This,
931 HWND WindowHandle,
932 UINT wMsg,
933 DWORD *pdwCookie);
934
935 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
936 IDXGIFactory4 *This,
937 HANDLE hEvent,
938 DWORD *pdwCookie);
939
940 void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
941 IDXGIFactory4 *This,
942 DWORD dwCookie);
943
944 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
945 IDXGIFactory4 *This,
946 IUnknown *pDevice,
947 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
948 IDXGIOutput *pRestrictToOutput,
949 IDXGISwapChain1 **ppSwapChain);
950
951 /*** IDXGIFactory3 methods ***/
952 UINT (STDMETHODCALLTYPE *GetCreationFlags)(
953 IDXGIFactory4 *This);
954
955 /*** IDXGIFactory4 methods ***/
956 HRESULT (STDMETHODCALLTYPE *EnumAdapterByLuid)(
957 IDXGIFactory4 *This,
958 LUID luid,
959 REFIID iid,
960 void **adapter);
961
962 HRESULT (STDMETHODCALLTYPE *EnumWarpAdapter)(
963 IDXGIFactory4 *This,
964 REFIID iid,
965 void **adapter);
966
967 END_INTERFACE
968} IDXGIFactory4Vtbl;
969
970interface IDXGIFactory4 {
971 CONST_VTBL IDXGIFactory4Vtbl* lpVtbl;
972};
973
974#ifdef COBJMACROS
975#ifndef WIDL_C_INLINE_WRAPPERS
976/*** IUnknown methods ***/
977#define IDXGIFactory4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
978#define IDXGIFactory4_AddRef(This) (This)->lpVtbl->AddRef(This)
979#define IDXGIFactory4_Release(This) (This)->lpVtbl->Release(This)
980/*** IDXGIObject methods ***/
981#define IDXGIFactory4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
982#define IDXGIFactory4_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
983#define IDXGIFactory4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
984#define IDXGIFactory4_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
985/*** IDXGIFactory methods ***/
986#define IDXGIFactory4_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
987#define IDXGIFactory4_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
988#define IDXGIFactory4_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
989#define IDXGIFactory4_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
990#define IDXGIFactory4_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
991/*** IDXGIFactory1 methods ***/
992#define IDXGIFactory4_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
993#define IDXGIFactory4_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
994/*** IDXGIFactory2 methods ***/
995#define IDXGIFactory4_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
996#define IDXGIFactory4_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
997#define IDXGIFactory4_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
998#define IDXGIFactory4_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
999#define IDXGIFactory4_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
1000#define IDXGIFactory4_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
1001#define IDXGIFactory4_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
1002#define IDXGIFactory4_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
1003#define IDXGIFactory4_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
1004#define IDXGIFactory4_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
1005#define IDXGIFactory4_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
1006/*** IDXGIFactory3 methods ***/
1007#define IDXGIFactory4_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
1008/*** IDXGIFactory4 methods ***/
1009#define IDXGIFactory4_EnumAdapterByLuid(This,luid,iid,adapter) (This)->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter)
1010#define IDXGIFactory4_EnumWarpAdapter(This,iid,adapter) (This)->lpVtbl->EnumWarpAdapter(This,iid,adapter)
1011#else
1012/*** IUnknown methods ***/
1013static FORCEINLINE HRESULT IDXGIFactory4_QueryInterface(IDXGIFactory4* This,REFIID riid,void **ppvObject) {
1014 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1015}
1016static FORCEINLINE ULONG IDXGIFactory4_AddRef(IDXGIFactory4* This) {
1017 return This->lpVtbl->AddRef(This);
1018}
1019static FORCEINLINE ULONG IDXGIFactory4_Release(IDXGIFactory4* This) {
1020 return This->lpVtbl->Release(This);
1021}
1022/*** IDXGIObject methods ***/
1023static FORCEINLINE HRESULT IDXGIFactory4_SetPrivateData(IDXGIFactory4* This,REFGUID guid,UINT data_size,const void *data) {
1024 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
1025}
1026static FORCEINLINE HRESULT IDXGIFactory4_SetPrivateDataInterface(IDXGIFactory4* This,REFGUID guid,const IUnknown *object) {
1027 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
1028}
1029static FORCEINLINE HRESULT IDXGIFactory4_GetPrivateData(IDXGIFactory4* This,REFGUID guid,UINT *data_size,void *data) {
1030 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
1031}
1032static FORCEINLINE HRESULT IDXGIFactory4_GetParent(IDXGIFactory4* This,REFIID riid,void **parent) {
1033 return This->lpVtbl->GetParent(This,riid,parent);
1034}
1035/*** IDXGIFactory methods ***/
1036static FORCEINLINE HRESULT IDXGIFactory4_EnumAdapters(IDXGIFactory4* This,UINT adapter_idx,IDXGIAdapter **adapter) {
1037 return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
1038}
1039static FORCEINLINE HRESULT IDXGIFactory4_MakeWindowAssociation(IDXGIFactory4* This,HWND window,UINT flags) {
1040 return This->lpVtbl->MakeWindowAssociation(This,window,flags);
1041}
1042static FORCEINLINE HRESULT IDXGIFactory4_GetWindowAssociation(IDXGIFactory4* This,HWND *window) {
1043 return This->lpVtbl->GetWindowAssociation(This,window);
1044}
1045static FORCEINLINE HRESULT IDXGIFactory4_CreateSwapChain(IDXGIFactory4* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
1046 return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
1047}
1048static FORCEINLINE HRESULT IDXGIFactory4_CreateSoftwareAdapter(IDXGIFactory4* This,HMODULE swrast,IDXGIAdapter **adapter) {
1049 return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
1050}
1051/*** IDXGIFactory1 methods ***/
1052static FORCEINLINE HRESULT IDXGIFactory4_EnumAdapters1(IDXGIFactory4* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
1053 return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
1054}
1055static FORCEINLINE WINBOOL IDXGIFactory4_IsCurrent(IDXGIFactory4* This) {
1056 return This->lpVtbl->IsCurrent(This);
1057}
1058/*** IDXGIFactory2 methods ***/
1059static FORCEINLINE WINBOOL IDXGIFactory4_IsWindowedStereoEnabled(IDXGIFactory4* This) {
1060 return This->lpVtbl->IsWindowedStereoEnabled(This);
1061}
1062static FORCEINLINE HRESULT IDXGIFactory4_CreateSwapChainForHwnd(IDXGIFactory4* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1063 return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
1064}
1065static FORCEINLINE HRESULT IDXGIFactory4_CreateSwapChainForCoreWindow(IDXGIFactory4* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1066 return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
1067}
1068static FORCEINLINE HRESULT IDXGIFactory4_GetSharedResourceAdapterLuid(IDXGIFactory4* This,HANDLE hResource,LUID *pLuid) {
1069 return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
1070}
1071static FORCEINLINE HRESULT IDXGIFactory4_RegisterStereoStatusWindow(IDXGIFactory4* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
1072 return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
1073}
1074static FORCEINLINE HRESULT IDXGIFactory4_RegisterStereoStatusEvent(IDXGIFactory4* This,HANDLE hEvent,DWORD *pdwCookie) {
1075 return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
1076}
1077static FORCEINLINE void IDXGIFactory4_UnregisterStereoStatus(IDXGIFactory4* This,DWORD dwCookie) {
1078 This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
1079}
1080static FORCEINLINE HRESULT IDXGIFactory4_RegisterOcclusionStatusWindow(IDXGIFactory4* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
1081 return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
1082}
1083static FORCEINLINE HRESULT IDXGIFactory4_RegisterOcclusionStatusEvent(IDXGIFactory4* This,HANDLE hEvent,DWORD *pdwCookie) {
1084 return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
1085}
1086static FORCEINLINE void IDXGIFactory4_UnregisterOcclusionStatus(IDXGIFactory4* This,DWORD dwCookie) {
1087 This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
1088}
1089static FORCEINLINE HRESULT IDXGIFactory4_CreateSwapChainForComposition(IDXGIFactory4* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1090 return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
1091}
1092/*** IDXGIFactory3 methods ***/
1093static FORCEINLINE UINT IDXGIFactory4_GetCreationFlags(IDXGIFactory4* This) {
1094 return This->lpVtbl->GetCreationFlags(This);
1095}
1096/*** IDXGIFactory4 methods ***/
1097static FORCEINLINE HRESULT IDXGIFactory4_EnumAdapterByLuid(IDXGIFactory4* This,LUID luid,REFIID iid,void **adapter) {
1098 return This->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter);
1099}
1100static FORCEINLINE HRESULT IDXGIFactory4_EnumWarpAdapter(IDXGIFactory4* This,REFIID iid,void **adapter) {
1101 return This->lpVtbl->EnumWarpAdapter(This,iid,adapter);
1102}
1103#endif
1104#endif
1105
1106#endif
1107
1108
1109#endif /* __IDXGIFactory4_INTERFACE_DEFINED__ */
1110
1111/*****************************************************************************
1112 * IDXGIAdapter3 interface
1113 */
1114#ifndef __IDXGIAdapter3_INTERFACE_DEFINED__
1115#define __IDXGIAdapter3_INTERFACE_DEFINED__
1116
1117DEFINE_GUID(IID_IDXGIAdapter3, 0x645967a4, 0x1392, 0x4310, 0xa7,0x98, 0x80,0x53,0xce,0x3e,0x93,0xfd);
1118#if defined(__cplusplus) && !defined(CINTERFACE)
1119MIDL_INTERFACE("645967a4-1392-4310-a798-8053ce3e93fd")
1120IDXGIAdapter3 : public IDXGIAdapter2
1121{
1122 virtual HRESULT STDMETHODCALLTYPE RegisterHardwareContentProtectionTeardownStatusEvent(
1123 HANDLE event,
1124 DWORD *cookie) = 0;
1125
1126 virtual void STDMETHODCALLTYPE UnregisterHardwareContentProtectionTeardownStatus(
1127 DWORD cookie) = 0;
1128
1129 virtual HRESULT STDMETHODCALLTYPE QueryVideoMemoryInfo(
1130 UINT node_index,
1131 DXGI_MEMORY_SEGMENT_GROUP segment_group,
1132 DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info) = 0;
1133
1134 virtual HRESULT STDMETHODCALLTYPE SetVideoMemoryReservation(
1135 UINT node_index,
1136 DXGI_MEMORY_SEGMENT_GROUP segment_group,
1137 UINT64 reservation) = 0;
1138
1139 virtual HRESULT STDMETHODCALLTYPE RegisterVideoMemoryBudgetChangeNotificationEvent(
1140 HANDLE event,
1141 DWORD *cookie) = 0;
1142
1143 virtual void STDMETHODCALLTYPE UnregisterVideoMemoryBudgetChangeNotification(
1144 DWORD cookie) = 0;
1145
1146};
1147#ifdef __CRT_UUID_DECL
1148__CRT_UUID_DECL(IDXGIAdapter3, 0x645967a4, 0x1392, 0x4310, 0xa7,0x98, 0x80,0x53,0xce,0x3e,0x93,0xfd)
1149#endif
1150#else
1151typedef struct IDXGIAdapter3Vtbl {
1152 BEGIN_INTERFACE
1153
1154 /*** IUnknown methods ***/
1155 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1156 IDXGIAdapter3 *This,
1157 REFIID riid,
1158 void **ppvObject);
1159
1160 ULONG (STDMETHODCALLTYPE *AddRef)(
1161 IDXGIAdapter3 *This);
1162
1163 ULONG (STDMETHODCALLTYPE *Release)(
1164 IDXGIAdapter3 *This);
1165
1166 /*** IDXGIObject methods ***/
1167 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
1168 IDXGIAdapter3 *This,
1169 REFGUID guid,
1170 UINT data_size,
1171 const void *data);
1172
1173 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
1174 IDXGIAdapter3 *This,
1175 REFGUID guid,
1176 const IUnknown *object);
1177
1178 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
1179 IDXGIAdapter3 *This,
1180 REFGUID guid,
1181 UINT *data_size,
1182 void *data);
1183
1184 HRESULT (STDMETHODCALLTYPE *GetParent)(
1185 IDXGIAdapter3 *This,
1186 REFIID riid,
1187 void **parent);
1188
1189 /*** IDXGIAdapter methods ***/
1190 HRESULT (STDMETHODCALLTYPE *EnumOutputs)(
1191 IDXGIAdapter3 *This,
1192 UINT output_idx,
1193 IDXGIOutput **output);
1194
1195 HRESULT (STDMETHODCALLTYPE *GetDesc)(
1196 IDXGIAdapter3 *This,
1197 DXGI_ADAPTER_DESC *desc);
1198
1199 HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)(
1200 IDXGIAdapter3 *This,
1201 REFGUID guid,
1202 LARGE_INTEGER *umd_version);
1203
1204 /*** IDXGIAdapter1 methods ***/
1205 HRESULT (STDMETHODCALLTYPE *GetDesc1)(
1206 IDXGIAdapter3 *This,
1207 DXGI_ADAPTER_DESC1 *pDesc);
1208
1209 /*** IDXGIAdapter2 methods ***/
1210 HRESULT (STDMETHODCALLTYPE *GetDesc2)(
1211 IDXGIAdapter3 *This,
1212 DXGI_ADAPTER_DESC2 *pDesc);
1213
1214 /*** IDXGIAdapter3 methods ***/
1215 HRESULT (STDMETHODCALLTYPE *RegisterHardwareContentProtectionTeardownStatusEvent)(
1216 IDXGIAdapter3 *This,
1217 HANDLE event,
1218 DWORD *cookie);
1219
1220 void (STDMETHODCALLTYPE *UnregisterHardwareContentProtectionTeardownStatus)(
1221 IDXGIAdapter3 *This,
1222 DWORD cookie);
1223
1224 HRESULT (STDMETHODCALLTYPE *QueryVideoMemoryInfo)(
1225 IDXGIAdapter3 *This,
1226 UINT node_index,
1227 DXGI_MEMORY_SEGMENT_GROUP segment_group,
1228 DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info);
1229
1230 HRESULT (STDMETHODCALLTYPE *SetVideoMemoryReservation)(
1231 IDXGIAdapter3 *This,
1232 UINT node_index,
1233 DXGI_MEMORY_SEGMENT_GROUP segment_group,
1234 UINT64 reservation);
1235
1236 HRESULT (STDMETHODCALLTYPE *RegisterVideoMemoryBudgetChangeNotificationEvent)(
1237 IDXGIAdapter3 *This,
1238 HANDLE event,
1239 DWORD *cookie);
1240
1241 void (STDMETHODCALLTYPE *UnregisterVideoMemoryBudgetChangeNotification)(
1242 IDXGIAdapter3 *This,
1243 DWORD cookie);
1244
1245 END_INTERFACE
1246} IDXGIAdapter3Vtbl;
1247
1248interface IDXGIAdapter3 {
1249 CONST_VTBL IDXGIAdapter3Vtbl* lpVtbl;
1250};
1251
1252#ifdef COBJMACROS
1253#ifndef WIDL_C_INLINE_WRAPPERS
1254/*** IUnknown methods ***/
1255#define IDXGIAdapter3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1256#define IDXGIAdapter3_AddRef(This) (This)->lpVtbl->AddRef(This)
1257#define IDXGIAdapter3_Release(This) (This)->lpVtbl->Release(This)
1258/*** IDXGIObject methods ***/
1259#define IDXGIAdapter3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
1260#define IDXGIAdapter3_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
1261#define IDXGIAdapter3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
1262#define IDXGIAdapter3_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
1263/*** IDXGIAdapter methods ***/
1264#define IDXGIAdapter3_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output)
1265#define IDXGIAdapter3_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
1266#define IDXGIAdapter3_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version)
1267/*** IDXGIAdapter1 methods ***/
1268#define IDXGIAdapter3_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
1269/*** IDXGIAdapter2 methods ***/
1270#define IDXGIAdapter3_GetDesc2(This,pDesc) (This)->lpVtbl->GetDesc2(This,pDesc)
1271/*** IDXGIAdapter3 methods ***/
1272#define IDXGIAdapter3_RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie)
1273#define IDXGIAdapter3_UnregisterHardwareContentProtectionTeardownStatus(This,cookie) (This)->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie)
1274#define IDXGIAdapter3_QueryVideoMemoryInfo(This,node_index,segment_group,memory_info) (This)->lpVtbl->QueryVideoMemoryInfo(This,node_index,segment_group,memory_info)
1275#define IDXGIAdapter3_SetVideoMemoryReservation(This,node_index,segment_group,reservation) (This)->lpVtbl->SetVideoMemoryReservation(This,node_index,segment_group,reservation)
1276#define IDXGIAdapter3_RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie) (This)->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie)
1277#define IDXGIAdapter3_UnregisterVideoMemoryBudgetChangeNotification(This,cookie) (This)->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie)
1278#else
1279/*** IUnknown methods ***/
1280static FORCEINLINE HRESULT IDXGIAdapter3_QueryInterface(IDXGIAdapter3* This,REFIID riid,void **ppvObject) {
1281 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1282}
1283static FORCEINLINE ULONG IDXGIAdapter3_AddRef(IDXGIAdapter3* This) {
1284 return This->lpVtbl->AddRef(This);
1285}
1286static FORCEINLINE ULONG IDXGIAdapter3_Release(IDXGIAdapter3* This) {
1287 return This->lpVtbl->Release(This);
1288}
1289/*** IDXGIObject methods ***/
1290static FORCEINLINE HRESULT IDXGIAdapter3_SetPrivateData(IDXGIAdapter3* This,REFGUID guid,UINT data_size,const void *data) {
1291 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
1292}
1293static FORCEINLINE HRESULT IDXGIAdapter3_SetPrivateDataInterface(IDXGIAdapter3* This,REFGUID guid,const IUnknown *object) {
1294 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
1295}
1296static FORCEINLINE HRESULT IDXGIAdapter3_GetPrivateData(IDXGIAdapter3* This,REFGUID guid,UINT *data_size,void *data) {
1297 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
1298}
1299static FORCEINLINE HRESULT IDXGIAdapter3_GetParent(IDXGIAdapter3* This,REFIID riid,void **parent) {
1300 return This->lpVtbl->GetParent(This,riid,parent);
1301}
1302/*** IDXGIAdapter methods ***/
1303static FORCEINLINE HRESULT IDXGIAdapter3_EnumOutputs(IDXGIAdapter3* This,UINT output_idx,IDXGIOutput **output) {
1304 return This->lpVtbl->EnumOutputs(This,output_idx,output);
1305}
1306static FORCEINLINE HRESULT IDXGIAdapter3_GetDesc(IDXGIAdapter3* This,DXGI_ADAPTER_DESC *desc) {
1307 return This->lpVtbl->GetDesc(This,desc);
1308}
1309static FORCEINLINE HRESULT IDXGIAdapter3_CheckInterfaceSupport(IDXGIAdapter3* This,REFGUID guid,LARGE_INTEGER *umd_version) {
1310 return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version);
1311}
1312/*** IDXGIAdapter1 methods ***/
1313static FORCEINLINE HRESULT IDXGIAdapter3_GetDesc1(IDXGIAdapter3* This,DXGI_ADAPTER_DESC1 *pDesc) {
1314 return This->lpVtbl->GetDesc1(This,pDesc);
1315}
1316/*** IDXGIAdapter2 methods ***/
1317static FORCEINLINE HRESULT IDXGIAdapter3_GetDesc2(IDXGIAdapter3* This,DXGI_ADAPTER_DESC2 *pDesc) {
1318 return This->lpVtbl->GetDesc2(This,pDesc);
1319}
1320/*** IDXGIAdapter3 methods ***/
1321static FORCEINLINE HRESULT IDXGIAdapter3_RegisterHardwareContentProtectionTeardownStatusEvent(IDXGIAdapter3* This,HANDLE event,DWORD *cookie) {
1322 return This->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie);
1323}
1324static FORCEINLINE void IDXGIAdapter3_UnregisterHardwareContentProtectionTeardownStatus(IDXGIAdapter3* This,DWORD cookie) {
1325 This->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie);
1326}
1327static FORCEINLINE HRESULT IDXGIAdapter3_QueryVideoMemoryInfo(IDXGIAdapter3* This,UINT node_index,DXGI_MEMORY_SEGMENT_GROUP segment_group,DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info) {
1328 return This->lpVtbl->QueryVideoMemoryInfo(This,node_index,segment_group,memory_info);
1329}
1330static FORCEINLINE HRESULT IDXGIAdapter3_SetVideoMemoryReservation(IDXGIAdapter3* This,UINT node_index,DXGI_MEMORY_SEGMENT_GROUP segment_group,UINT64 reservation) {
1331 return This->lpVtbl->SetVideoMemoryReservation(This,node_index,segment_group,reservation);
1332}
1333static FORCEINLINE HRESULT IDXGIAdapter3_RegisterVideoMemoryBudgetChangeNotificationEvent(IDXGIAdapter3* This,HANDLE event,DWORD *cookie) {
1334 return This->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie);
1335}
1336static FORCEINLINE void IDXGIAdapter3_UnregisterVideoMemoryBudgetChangeNotification(IDXGIAdapter3* This,DWORD cookie) {
1337 This->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie);
1338}
1339#endif
1340#endif
1341
1342#endif
1343
1344
1345#endif /* __IDXGIAdapter3_INTERFACE_DEFINED__ */
1346
1347/* Begin additional prototypes for all interfaces */
1348
1349
1350/* End additional prototypes */
1351
1352#ifdef __cplusplus
1353}
1354#endif
1355
1356#endif /* __dxgi1_4_h__ */
Note: See TracBrowser for help on using the repository browser.