source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dxgi1_3.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: 80.5 KB
Line 
1/*** Autogenerated by WIDL 6.4 from include/dxgi1_3.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_3_h__
17#define __dxgi1_3_h__
18
19/* Forward declarations */
20
21#ifndef __IDXGIDevice3_FWD_DEFINED__
22#define __IDXGIDevice3_FWD_DEFINED__
23typedef interface IDXGIDevice3 IDXGIDevice3;
24#ifdef __cplusplus
25interface IDXGIDevice3;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IDXGISwapChain2_FWD_DEFINED__
30#define __IDXGISwapChain2_FWD_DEFINED__
31typedef interface IDXGISwapChain2 IDXGISwapChain2;
32#ifdef __cplusplus
33interface IDXGISwapChain2;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IDXGIOutput2_FWD_DEFINED__
38#define __IDXGIOutput2_FWD_DEFINED__
39typedef interface IDXGIOutput2 IDXGIOutput2;
40#ifdef __cplusplus
41interface IDXGIOutput2;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IDXGIFactory3_FWD_DEFINED__
46#define __IDXGIFactory3_FWD_DEFINED__
47typedef interface IDXGIFactory3 IDXGIFactory3;
48#ifdef __cplusplus
49interface IDXGIFactory3;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IDXGIDecodeSwapChain_FWD_DEFINED__
54#define __IDXGIDecodeSwapChain_FWD_DEFINED__
55typedef interface IDXGIDecodeSwapChain IDXGIDecodeSwapChain;
56#ifdef __cplusplus
57interface IDXGIDecodeSwapChain;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IDXGIFactoryMedia_FWD_DEFINED__
62#define __IDXGIFactoryMedia_FWD_DEFINED__
63typedef interface IDXGIFactoryMedia IDXGIFactoryMedia;
64#ifdef __cplusplus
65interface IDXGIFactoryMedia;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IDXGISwapChainMedia_FWD_DEFINED__
70#define __IDXGISwapChainMedia_FWD_DEFINED__
71typedef interface IDXGISwapChainMedia IDXGISwapChainMedia;
72#ifdef __cplusplus
73interface IDXGISwapChainMedia;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IDXGIOutput3_FWD_DEFINED__
78#define __IDXGIOutput3_FWD_DEFINED__
79typedef interface IDXGIOutput3 IDXGIOutput3;
80#ifdef __cplusplus
81interface IDXGIOutput3;
82#endif /* __cplusplus */
83#endif
84
85/* Headers for imported files */
86
87#include <dxgi1_2.h>
88
89#ifdef __cplusplus
90extern "C" {
91#endif
92
93typedef struct DXGI_MATRIX_3X2_F {
94 float _11;
95 float _12;
96 float _21;
97 float _22;
98 float _31;
99 float _32;
100} DXGI_MATRIX_3X2_F;
101typedef struct DXGI_DECODE_SWAP_CHAIN_DESC {
102 UINT Flags;
103} DXGI_DECODE_SWAP_CHAIN_DESC;
104typedef enum DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS {
105 DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE = 0x1,
106 DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709 = 0x2,
107 DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC = 0x4
108} DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS;
109typedef enum DXGI_FRAME_PRESENTATION_MODE {
110 DXGI_FRAME_PRESENTATION_MODE_COMPOSED = 0,
111 DXGI_FRAME_PRESENTATION_MODE_OVERLAY = 1,
112 DXGI_FRAME_PRESENTATION_MODE_NONE = 2,
113 DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE = 3
114} DXGI_FRAME_PRESENTATION_MODE;
115typedef struct DXGI_FRAME_STATISTICS_MEDIA {
116 UINT PresentCount;
117 UINT PresentRefreshCount;
118 UINT SyncRefreshCount;
119 LARGE_INTEGER SyncQPCTime;
120 LARGE_INTEGER SyncGPUTime;
121 DXGI_FRAME_PRESENTATION_MODE CompositionMode;
122 UINT ApprovedPresentDuration;
123} DXGI_FRAME_STATISTICS_MEDIA;
124typedef enum DXGI_OVERLAY_SUPPORT_FLAG {
125 DXGI_OVERLAY_SUPPORT_FLAG_DIRECT = 0x1,
126 DXGI_OVERLAY_SUPPORT_FLAG_SCALING = 0x2
127} DXGI_OVERLAY_SUPPORT_FLAG;
128/*****************************************************************************
129 * IDXGIDevice3 interface
130 */
131#ifndef __IDXGIDevice3_INTERFACE_DEFINED__
132#define __IDXGIDevice3_INTERFACE_DEFINED__
133
134DEFINE_GUID(IID_IDXGIDevice3, 0x6007896c, 0x3244, 0x4afd, 0xbf,0x18, 0xa6,0xd3,0xbe,0xda,0x50,0x23);
135#if defined(__cplusplus) && !defined(CINTERFACE)
136MIDL_INTERFACE("6007896c-3244-4afd-bf18-a6d3beda5023")
137IDXGIDevice3 : public IDXGIDevice2
138{
139 virtual void STDMETHODCALLTYPE Trim(
140 ) = 0;
141
142};
143#ifdef __CRT_UUID_DECL
144__CRT_UUID_DECL(IDXGIDevice3, 0x6007896c, 0x3244, 0x4afd, 0xbf,0x18, 0xa6,0xd3,0xbe,0xda,0x50,0x23)
145#endif
146#else
147typedef struct IDXGIDevice3Vtbl {
148 BEGIN_INTERFACE
149
150 /*** IUnknown methods ***/
151 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
152 IDXGIDevice3 *This,
153 REFIID riid,
154 void **ppvObject);
155
156 ULONG (STDMETHODCALLTYPE *AddRef)(
157 IDXGIDevice3 *This);
158
159 ULONG (STDMETHODCALLTYPE *Release)(
160 IDXGIDevice3 *This);
161
162 /*** IDXGIObject methods ***/
163 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
164 IDXGIDevice3 *This,
165 REFGUID guid,
166 UINT data_size,
167 const void *data);
168
169 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
170 IDXGIDevice3 *This,
171 REFGUID guid,
172 const IUnknown *object);
173
174 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
175 IDXGIDevice3 *This,
176 REFGUID guid,
177 UINT *data_size,
178 void *data);
179
180 HRESULT (STDMETHODCALLTYPE *GetParent)(
181 IDXGIDevice3 *This,
182 REFIID riid,
183 void **parent);
184
185 /*** IDXGIDevice methods ***/
186 HRESULT (STDMETHODCALLTYPE *GetAdapter)(
187 IDXGIDevice3 *This,
188 IDXGIAdapter **adapter);
189
190 HRESULT (STDMETHODCALLTYPE *CreateSurface)(
191 IDXGIDevice3 *This,
192 const DXGI_SURFACE_DESC *desc,
193 UINT surface_count,
194 DXGI_USAGE usage,
195 const DXGI_SHARED_RESOURCE *shared_resource,
196 IDXGISurface **surface);
197
198 HRESULT (STDMETHODCALLTYPE *QueryResourceResidency)(
199 IDXGIDevice3 *This,
200 IUnknown *const *resources,
201 DXGI_RESIDENCY *residency,
202 UINT resource_count);
203
204 HRESULT (STDMETHODCALLTYPE *SetGPUThreadPriority)(
205 IDXGIDevice3 *This,
206 INT priority);
207
208 HRESULT (STDMETHODCALLTYPE *GetGPUThreadPriority)(
209 IDXGIDevice3 *This,
210 INT *priority);
211
212 /*** IDXGIDevice1 methods ***/
213 HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
214 IDXGIDevice3 *This,
215 UINT MaxLatency);
216
217 HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
218 IDXGIDevice3 *This,
219 UINT *pMaxLatency);
220
221 /*** IDXGIDevice2 methods ***/
222 HRESULT (STDMETHODCALLTYPE *OfferResources)(
223 IDXGIDevice3 *This,
224 UINT NumResources,
225 IDXGIResource *const *ppResources,
226 DXGI_OFFER_RESOURCE_PRIORITY Priority);
227
228 HRESULT (STDMETHODCALLTYPE *ReclaimResources)(
229 IDXGIDevice3 *This,
230 UINT NumResources,
231 IDXGIResource *const *ppResources,
232 WINBOOL *pDiscarded);
233
234 HRESULT (STDMETHODCALLTYPE *EnqueueSetEvent)(
235 IDXGIDevice3 *This,
236 HANDLE hEvent);
237
238 /*** IDXGIDevice3 methods ***/
239 void (STDMETHODCALLTYPE *Trim)(
240 IDXGIDevice3 *This);
241
242 END_INTERFACE
243} IDXGIDevice3Vtbl;
244
245interface IDXGIDevice3 {
246 CONST_VTBL IDXGIDevice3Vtbl* lpVtbl;
247};
248
249#ifdef COBJMACROS
250#ifndef WIDL_C_INLINE_WRAPPERS
251/*** IUnknown methods ***/
252#define IDXGIDevice3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
253#define IDXGIDevice3_AddRef(This) (This)->lpVtbl->AddRef(This)
254#define IDXGIDevice3_Release(This) (This)->lpVtbl->Release(This)
255/*** IDXGIObject methods ***/
256#define IDXGIDevice3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
257#define IDXGIDevice3_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
258#define IDXGIDevice3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
259#define IDXGIDevice3_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
260/*** IDXGIDevice methods ***/
261#define IDXGIDevice3_GetAdapter(This,adapter) (This)->lpVtbl->GetAdapter(This,adapter)
262#define IDXGIDevice3_CreateSurface(This,desc,surface_count,usage,shared_resource,surface) (This)->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface)
263#define IDXGIDevice3_QueryResourceResidency(This,resources,residency,resource_count) (This)->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count)
264#define IDXGIDevice3_SetGPUThreadPriority(This,priority) (This)->lpVtbl->SetGPUThreadPriority(This,priority)
265#define IDXGIDevice3_GetGPUThreadPriority(This,priority) (This)->lpVtbl->GetGPUThreadPriority(This,priority)
266/*** IDXGIDevice1 methods ***/
267#define IDXGIDevice3_SetMaximumFrameLatency(This,MaxLatency) (This)->lpVtbl->SetMaximumFrameLatency(This,MaxLatency)
268#define IDXGIDevice3_GetMaximumFrameLatency(This,pMaxLatency) (This)->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency)
269/*** IDXGIDevice2 methods ***/
270#define IDXGIDevice3_OfferResources(This,NumResources,ppResources,Priority) (This)->lpVtbl->OfferResources(This,NumResources,ppResources,Priority)
271#define IDXGIDevice3_ReclaimResources(This,NumResources,ppResources,pDiscarded) (This)->lpVtbl->ReclaimResources(This,NumResources,ppResources,pDiscarded)
272#define IDXGIDevice3_EnqueueSetEvent(This,hEvent) (This)->lpVtbl->EnqueueSetEvent(This,hEvent)
273/*** IDXGIDevice3 methods ***/
274#define IDXGIDevice3_Trim(This) (This)->lpVtbl->Trim(This)
275#else
276/*** IUnknown methods ***/
277static FORCEINLINE HRESULT IDXGIDevice3_QueryInterface(IDXGIDevice3* This,REFIID riid,void **ppvObject) {
278 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
279}
280static FORCEINLINE ULONG IDXGIDevice3_AddRef(IDXGIDevice3* This) {
281 return This->lpVtbl->AddRef(This);
282}
283static FORCEINLINE ULONG IDXGIDevice3_Release(IDXGIDevice3* This) {
284 return This->lpVtbl->Release(This);
285}
286/*** IDXGIObject methods ***/
287static FORCEINLINE HRESULT IDXGIDevice3_SetPrivateData(IDXGIDevice3* This,REFGUID guid,UINT data_size,const void *data) {
288 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
289}
290static FORCEINLINE HRESULT IDXGIDevice3_SetPrivateDataInterface(IDXGIDevice3* This,REFGUID guid,const IUnknown *object) {
291 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
292}
293static FORCEINLINE HRESULT IDXGIDevice3_GetPrivateData(IDXGIDevice3* This,REFGUID guid,UINT *data_size,void *data) {
294 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
295}
296static FORCEINLINE HRESULT IDXGIDevice3_GetParent(IDXGIDevice3* This,REFIID riid,void **parent) {
297 return This->lpVtbl->GetParent(This,riid,parent);
298}
299/*** IDXGIDevice methods ***/
300static FORCEINLINE HRESULT IDXGIDevice3_GetAdapter(IDXGIDevice3* This,IDXGIAdapter **adapter) {
301 return This->lpVtbl->GetAdapter(This,adapter);
302}
303static FORCEINLINE HRESULT IDXGIDevice3_CreateSurface(IDXGIDevice3* This,const DXGI_SURFACE_DESC *desc,UINT surface_count,DXGI_USAGE usage,const DXGI_SHARED_RESOURCE *shared_resource,IDXGISurface **surface) {
304 return This->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface);
305}
306static FORCEINLINE HRESULT IDXGIDevice3_QueryResourceResidency(IDXGIDevice3* This,IUnknown *const *resources,DXGI_RESIDENCY *residency,UINT resource_count) {
307 return This->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count);
308}
309static FORCEINLINE HRESULT IDXGIDevice3_SetGPUThreadPriority(IDXGIDevice3* This,INT priority) {
310 return This->lpVtbl->SetGPUThreadPriority(This,priority);
311}
312static FORCEINLINE HRESULT IDXGIDevice3_GetGPUThreadPriority(IDXGIDevice3* This,INT *priority) {
313 return This->lpVtbl->GetGPUThreadPriority(This,priority);
314}
315/*** IDXGIDevice1 methods ***/
316static FORCEINLINE HRESULT IDXGIDevice3_SetMaximumFrameLatency(IDXGIDevice3* This,UINT MaxLatency) {
317 return This->lpVtbl->SetMaximumFrameLatency(This,MaxLatency);
318}
319static FORCEINLINE HRESULT IDXGIDevice3_GetMaximumFrameLatency(IDXGIDevice3* This,UINT *pMaxLatency) {
320 return This->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency);
321}
322/*** IDXGIDevice2 methods ***/
323static FORCEINLINE HRESULT IDXGIDevice3_OfferResources(IDXGIDevice3* This,UINT NumResources,IDXGIResource *const *ppResources,DXGI_OFFER_RESOURCE_PRIORITY Priority) {
324 return This->lpVtbl->OfferResources(This,NumResources,ppResources,Priority);
325}
326static FORCEINLINE HRESULT IDXGIDevice3_ReclaimResources(IDXGIDevice3* This,UINT NumResources,IDXGIResource *const *ppResources,WINBOOL *pDiscarded) {
327 return This->lpVtbl->ReclaimResources(This,NumResources,ppResources,pDiscarded);
328}
329static FORCEINLINE HRESULT IDXGIDevice3_EnqueueSetEvent(IDXGIDevice3* This,HANDLE hEvent) {
330 return This->lpVtbl->EnqueueSetEvent(This,hEvent);
331}
332/*** IDXGIDevice3 methods ***/
333static FORCEINLINE void IDXGIDevice3_Trim(IDXGIDevice3* This) {
334 This->lpVtbl->Trim(This);
335}
336#endif
337#endif
338
339#endif
340
341
342#endif /* __IDXGIDevice3_INTERFACE_DEFINED__ */
343
344/*****************************************************************************
345 * IDXGISwapChain2 interface
346 */
347#ifndef __IDXGISwapChain2_INTERFACE_DEFINED__
348#define __IDXGISwapChain2_INTERFACE_DEFINED__
349
350DEFINE_GUID(IID_IDXGISwapChain2, 0xa8be2ac4, 0x199f, 0x4946, 0xb3,0x31, 0x79,0x59,0x9f,0xb9,0x8d,0xe7);
351#if defined(__cplusplus) && !defined(CINTERFACE)
352MIDL_INTERFACE("a8be2ac4-199f-4946-b331-79599fb98de7")
353IDXGISwapChain2 : public IDXGISwapChain1
354{
355 virtual HRESULT STDMETHODCALLTYPE SetSourceSize(
356 UINT width,
357 UINT height) = 0;
358
359 virtual HRESULT STDMETHODCALLTYPE GetSourceSize(
360 UINT *width,
361 UINT *height) = 0;
362
363 virtual HRESULT STDMETHODCALLTYPE SetMaximumFrameLatency(
364 UINT max_latency) = 0;
365
366 virtual HRESULT STDMETHODCALLTYPE GetMaximumFrameLatency(
367 UINT *max_latency) = 0;
368
369 virtual HANDLE STDMETHODCALLTYPE GetFrameLatencyWaitableObject(
370 ) = 0;
371
372 virtual HRESULT STDMETHODCALLTYPE SetMatrixTransform(
373 const DXGI_MATRIX_3X2_F *matrix) = 0;
374
375 virtual HRESULT STDMETHODCALLTYPE GetMatrixTransform(
376 DXGI_MATRIX_3X2_F *matrix) = 0;
377
378};
379#ifdef __CRT_UUID_DECL
380__CRT_UUID_DECL(IDXGISwapChain2, 0xa8be2ac4, 0x199f, 0x4946, 0xb3,0x31, 0x79,0x59,0x9f,0xb9,0x8d,0xe7)
381#endif
382#else
383typedef struct IDXGISwapChain2Vtbl {
384 BEGIN_INTERFACE
385
386 /*** IUnknown methods ***/
387 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
388 IDXGISwapChain2 *This,
389 REFIID riid,
390 void **ppvObject);
391
392 ULONG (STDMETHODCALLTYPE *AddRef)(
393 IDXGISwapChain2 *This);
394
395 ULONG (STDMETHODCALLTYPE *Release)(
396 IDXGISwapChain2 *This);
397
398 /*** IDXGIObject methods ***/
399 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
400 IDXGISwapChain2 *This,
401 REFGUID guid,
402 UINT data_size,
403 const void *data);
404
405 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
406 IDXGISwapChain2 *This,
407 REFGUID guid,
408 const IUnknown *object);
409
410 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
411 IDXGISwapChain2 *This,
412 REFGUID guid,
413 UINT *data_size,
414 void *data);
415
416 HRESULT (STDMETHODCALLTYPE *GetParent)(
417 IDXGISwapChain2 *This,
418 REFIID riid,
419 void **parent);
420
421 /*** IDXGIDeviceSubObject methods ***/
422 HRESULT (STDMETHODCALLTYPE *GetDevice)(
423 IDXGISwapChain2 *This,
424 REFIID riid,
425 void **device);
426
427 /*** IDXGISwapChain methods ***/
428 HRESULT (STDMETHODCALLTYPE *Present)(
429 IDXGISwapChain2 *This,
430 UINT sync_interval,
431 UINT flags);
432
433 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
434 IDXGISwapChain2 *This,
435 UINT buffer_idx,
436 REFIID riid,
437 void **surface);
438
439 HRESULT (STDMETHODCALLTYPE *SetFullscreenState)(
440 IDXGISwapChain2 *This,
441 WINBOOL fullscreen,
442 IDXGIOutput *target);
443
444 HRESULT (STDMETHODCALLTYPE *GetFullscreenState)(
445 IDXGISwapChain2 *This,
446 WINBOOL *fullscreen,
447 IDXGIOutput **target);
448
449 HRESULT (STDMETHODCALLTYPE *GetDesc)(
450 IDXGISwapChain2 *This,
451 DXGI_SWAP_CHAIN_DESC *desc);
452
453 HRESULT (STDMETHODCALLTYPE *ResizeBuffers)(
454 IDXGISwapChain2 *This,
455 UINT buffer_count,
456 UINT width,
457 UINT height,
458 DXGI_FORMAT format,
459 UINT flags);
460
461 HRESULT (STDMETHODCALLTYPE *ResizeTarget)(
462 IDXGISwapChain2 *This,
463 const DXGI_MODE_DESC *target_mode_desc);
464
465 HRESULT (STDMETHODCALLTYPE *GetContainingOutput)(
466 IDXGISwapChain2 *This,
467 IDXGIOutput **output);
468
469 HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
470 IDXGISwapChain2 *This,
471 DXGI_FRAME_STATISTICS *stats);
472
473 HRESULT (STDMETHODCALLTYPE *GetLastPresentCount)(
474 IDXGISwapChain2 *This,
475 UINT *last_present_count);
476
477 /*** IDXGISwapChain1 methods ***/
478 HRESULT (STDMETHODCALLTYPE *GetDesc1)(
479 IDXGISwapChain2 *This,
480 DXGI_SWAP_CHAIN_DESC1 *pDesc);
481
482 HRESULT (STDMETHODCALLTYPE *GetFullscreenDesc)(
483 IDXGISwapChain2 *This,
484 DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc);
485
486 HRESULT (STDMETHODCALLTYPE *GetHwnd)(
487 IDXGISwapChain2 *This,
488 HWND *pHwnd);
489
490 HRESULT (STDMETHODCALLTYPE *GetCoreWindow)(
491 IDXGISwapChain2 *This,
492 REFIID refiid,
493 void **ppUnk);
494
495 HRESULT (STDMETHODCALLTYPE *Present1)(
496 IDXGISwapChain2 *This,
497 UINT SyncInterval,
498 UINT PresentFlags,
499 const DXGI_PRESENT_PARAMETERS *pPresentParameters);
500
501 WINBOOL (STDMETHODCALLTYPE *IsTemporaryMonoSupported)(
502 IDXGISwapChain2 *This);
503
504 HRESULT (STDMETHODCALLTYPE *GetRestrictToOutput)(
505 IDXGISwapChain2 *This,
506 IDXGIOutput **ppRestrictToOutput);
507
508 HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
509 IDXGISwapChain2 *This,
510 const DXGI_RGBA *pColor);
511
512 HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)(
513 IDXGISwapChain2 *This,
514 DXGI_RGBA *pColor);
515
516 HRESULT (STDMETHODCALLTYPE *SetRotation)(
517 IDXGISwapChain2 *This,
518 DXGI_MODE_ROTATION Rotation);
519
520 HRESULT (STDMETHODCALLTYPE *GetRotation)(
521 IDXGISwapChain2 *This,
522 DXGI_MODE_ROTATION *pRotation);
523
524 /*** IDXGISwapChain2 methods ***/
525 HRESULT (STDMETHODCALLTYPE *SetSourceSize)(
526 IDXGISwapChain2 *This,
527 UINT width,
528 UINT height);
529
530 HRESULT (STDMETHODCALLTYPE *GetSourceSize)(
531 IDXGISwapChain2 *This,
532 UINT *width,
533 UINT *height);
534
535 HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
536 IDXGISwapChain2 *This,
537 UINT max_latency);
538
539 HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
540 IDXGISwapChain2 *This,
541 UINT *max_latency);
542
543 HANDLE (STDMETHODCALLTYPE *GetFrameLatencyWaitableObject)(
544 IDXGISwapChain2 *This);
545
546 HRESULT (STDMETHODCALLTYPE *SetMatrixTransform)(
547 IDXGISwapChain2 *This,
548 const DXGI_MATRIX_3X2_F *matrix);
549
550 HRESULT (STDMETHODCALLTYPE *GetMatrixTransform)(
551 IDXGISwapChain2 *This,
552 DXGI_MATRIX_3X2_F *matrix);
553
554 END_INTERFACE
555} IDXGISwapChain2Vtbl;
556
557interface IDXGISwapChain2 {
558 CONST_VTBL IDXGISwapChain2Vtbl* lpVtbl;
559};
560
561#ifdef COBJMACROS
562#ifndef WIDL_C_INLINE_WRAPPERS
563/*** IUnknown methods ***/
564#define IDXGISwapChain2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
565#define IDXGISwapChain2_AddRef(This) (This)->lpVtbl->AddRef(This)
566#define IDXGISwapChain2_Release(This) (This)->lpVtbl->Release(This)
567/*** IDXGIObject methods ***/
568#define IDXGISwapChain2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
569#define IDXGISwapChain2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
570#define IDXGISwapChain2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
571#define IDXGISwapChain2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
572/*** IDXGIDeviceSubObject methods ***/
573#define IDXGISwapChain2_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
574/*** IDXGISwapChain methods ***/
575#define IDXGISwapChain2_Present(This,sync_interval,flags) (This)->lpVtbl->Present(This,sync_interval,flags)
576#define IDXGISwapChain2_GetBuffer(This,buffer_idx,riid,surface) (This)->lpVtbl->GetBuffer(This,buffer_idx,riid,surface)
577#define IDXGISwapChain2_SetFullscreenState(This,fullscreen,target) (This)->lpVtbl->SetFullscreenState(This,fullscreen,target)
578#define IDXGISwapChain2_GetFullscreenState(This,fullscreen,target) (This)->lpVtbl->GetFullscreenState(This,fullscreen,target)
579#define IDXGISwapChain2_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
580#define IDXGISwapChain2_ResizeBuffers(This,buffer_count,width,height,format,flags) (This)->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags)
581#define IDXGISwapChain2_ResizeTarget(This,target_mode_desc) (This)->lpVtbl->ResizeTarget(This,target_mode_desc)
582#define IDXGISwapChain2_GetContainingOutput(This,output) (This)->lpVtbl->GetContainingOutput(This,output)
583#define IDXGISwapChain2_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
584#define IDXGISwapChain2_GetLastPresentCount(This,last_present_count) (This)->lpVtbl->GetLastPresentCount(This,last_present_count)
585/*** IDXGISwapChain1 methods ***/
586#define IDXGISwapChain2_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
587#define IDXGISwapChain2_GetFullscreenDesc(This,pDesc) (This)->lpVtbl->GetFullscreenDesc(This,pDesc)
588#define IDXGISwapChain2_GetHwnd(This,pHwnd) (This)->lpVtbl->GetHwnd(This,pHwnd)
589#define IDXGISwapChain2_GetCoreWindow(This,refiid,ppUnk) (This)->lpVtbl->GetCoreWindow(This,refiid,ppUnk)
590#define IDXGISwapChain2_Present1(This,SyncInterval,PresentFlags,pPresentParameters) (This)->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters)
591#define IDXGISwapChain2_IsTemporaryMonoSupported(This) (This)->lpVtbl->IsTemporaryMonoSupported(This)
592#define IDXGISwapChain2_GetRestrictToOutput(This,ppRestrictToOutput) (This)->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput)
593#define IDXGISwapChain2_SetBackgroundColor(This,pColor) (This)->lpVtbl->SetBackgroundColor(This,pColor)
594#define IDXGISwapChain2_GetBackgroundColor(This,pColor) (This)->lpVtbl->GetBackgroundColor(This,pColor)
595#define IDXGISwapChain2_SetRotation(This,Rotation) (This)->lpVtbl->SetRotation(This,Rotation)
596#define IDXGISwapChain2_GetRotation(This,pRotation) (This)->lpVtbl->GetRotation(This,pRotation)
597/*** IDXGISwapChain2 methods ***/
598#define IDXGISwapChain2_SetSourceSize(This,width,height) (This)->lpVtbl->SetSourceSize(This,width,height)
599#define IDXGISwapChain2_GetSourceSize(This,width,height) (This)->lpVtbl->GetSourceSize(This,width,height)
600#define IDXGISwapChain2_SetMaximumFrameLatency(This,max_latency) (This)->lpVtbl->SetMaximumFrameLatency(This,max_latency)
601#define IDXGISwapChain2_GetMaximumFrameLatency(This,max_latency) (This)->lpVtbl->GetMaximumFrameLatency(This,max_latency)
602#define IDXGISwapChain2_GetFrameLatencyWaitableObject(This) (This)->lpVtbl->GetFrameLatencyWaitableObject(This)
603#define IDXGISwapChain2_SetMatrixTransform(This,matrix) (This)->lpVtbl->SetMatrixTransform(This,matrix)
604#define IDXGISwapChain2_GetMatrixTransform(This,matrix) (This)->lpVtbl->GetMatrixTransform(This,matrix)
605#else
606/*** IUnknown methods ***/
607static FORCEINLINE HRESULT IDXGISwapChain2_QueryInterface(IDXGISwapChain2* This,REFIID riid,void **ppvObject) {
608 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
609}
610static FORCEINLINE ULONG IDXGISwapChain2_AddRef(IDXGISwapChain2* This) {
611 return This->lpVtbl->AddRef(This);
612}
613static FORCEINLINE ULONG IDXGISwapChain2_Release(IDXGISwapChain2* This) {
614 return This->lpVtbl->Release(This);
615}
616/*** IDXGIObject methods ***/
617static FORCEINLINE HRESULT IDXGISwapChain2_SetPrivateData(IDXGISwapChain2* This,REFGUID guid,UINT data_size,const void *data) {
618 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
619}
620static FORCEINLINE HRESULT IDXGISwapChain2_SetPrivateDataInterface(IDXGISwapChain2* This,REFGUID guid,const IUnknown *object) {
621 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
622}
623static FORCEINLINE HRESULT IDXGISwapChain2_GetPrivateData(IDXGISwapChain2* This,REFGUID guid,UINT *data_size,void *data) {
624 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
625}
626static FORCEINLINE HRESULT IDXGISwapChain2_GetParent(IDXGISwapChain2* This,REFIID riid,void **parent) {
627 return This->lpVtbl->GetParent(This,riid,parent);
628}
629/*** IDXGIDeviceSubObject methods ***/
630static FORCEINLINE HRESULT IDXGISwapChain2_GetDevice(IDXGISwapChain2* This,REFIID riid,void **device) {
631 return This->lpVtbl->GetDevice(This,riid,device);
632}
633/*** IDXGISwapChain methods ***/
634static FORCEINLINE HRESULT IDXGISwapChain2_Present(IDXGISwapChain2* This,UINT sync_interval,UINT flags) {
635 return This->lpVtbl->Present(This,sync_interval,flags);
636}
637static FORCEINLINE HRESULT IDXGISwapChain2_GetBuffer(IDXGISwapChain2* This,UINT buffer_idx,REFIID riid,void **surface) {
638 return This->lpVtbl->GetBuffer(This,buffer_idx,riid,surface);
639}
640static FORCEINLINE HRESULT IDXGISwapChain2_SetFullscreenState(IDXGISwapChain2* This,WINBOOL fullscreen,IDXGIOutput *target) {
641 return This->lpVtbl->SetFullscreenState(This,fullscreen,target);
642}
643static FORCEINLINE HRESULT IDXGISwapChain2_GetFullscreenState(IDXGISwapChain2* This,WINBOOL *fullscreen,IDXGIOutput **target) {
644 return This->lpVtbl->GetFullscreenState(This,fullscreen,target);
645}
646static FORCEINLINE HRESULT IDXGISwapChain2_GetDesc(IDXGISwapChain2* This,DXGI_SWAP_CHAIN_DESC *desc) {
647 return This->lpVtbl->GetDesc(This,desc);
648}
649static FORCEINLINE HRESULT IDXGISwapChain2_ResizeBuffers(IDXGISwapChain2* This,UINT buffer_count,UINT width,UINT height,DXGI_FORMAT format,UINT flags) {
650 return This->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags);
651}
652static FORCEINLINE HRESULT IDXGISwapChain2_ResizeTarget(IDXGISwapChain2* This,const DXGI_MODE_DESC *target_mode_desc) {
653 return This->lpVtbl->ResizeTarget(This,target_mode_desc);
654}
655static FORCEINLINE HRESULT IDXGISwapChain2_GetContainingOutput(IDXGISwapChain2* This,IDXGIOutput **output) {
656 return This->lpVtbl->GetContainingOutput(This,output);
657}
658static FORCEINLINE HRESULT IDXGISwapChain2_GetFrameStatistics(IDXGISwapChain2* This,DXGI_FRAME_STATISTICS *stats) {
659 return This->lpVtbl->GetFrameStatistics(This,stats);
660}
661static FORCEINLINE HRESULT IDXGISwapChain2_GetLastPresentCount(IDXGISwapChain2* This,UINT *last_present_count) {
662 return This->lpVtbl->GetLastPresentCount(This,last_present_count);
663}
664/*** IDXGISwapChain1 methods ***/
665static FORCEINLINE HRESULT IDXGISwapChain2_GetDesc1(IDXGISwapChain2* This,DXGI_SWAP_CHAIN_DESC1 *pDesc) {
666 return This->lpVtbl->GetDesc1(This,pDesc);
667}
668static FORCEINLINE HRESULT IDXGISwapChain2_GetFullscreenDesc(IDXGISwapChain2* This,DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc) {
669 return This->lpVtbl->GetFullscreenDesc(This,pDesc);
670}
671static FORCEINLINE HRESULT IDXGISwapChain2_GetHwnd(IDXGISwapChain2* This,HWND *pHwnd) {
672 return This->lpVtbl->GetHwnd(This,pHwnd);
673}
674static FORCEINLINE HRESULT IDXGISwapChain2_GetCoreWindow(IDXGISwapChain2* This,REFIID refiid,void **ppUnk) {
675 return This->lpVtbl->GetCoreWindow(This,refiid,ppUnk);
676}
677static FORCEINLINE HRESULT IDXGISwapChain2_Present1(IDXGISwapChain2* This,UINT SyncInterval,UINT PresentFlags,const DXGI_PRESENT_PARAMETERS *pPresentParameters) {
678 return This->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters);
679}
680static FORCEINLINE WINBOOL IDXGISwapChain2_IsTemporaryMonoSupported(IDXGISwapChain2* This) {
681 return This->lpVtbl->IsTemporaryMonoSupported(This);
682}
683static FORCEINLINE HRESULT IDXGISwapChain2_GetRestrictToOutput(IDXGISwapChain2* This,IDXGIOutput **ppRestrictToOutput) {
684 return This->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput);
685}
686static FORCEINLINE HRESULT IDXGISwapChain2_SetBackgroundColor(IDXGISwapChain2* This,const DXGI_RGBA *pColor) {
687 return This->lpVtbl->SetBackgroundColor(This,pColor);
688}
689static FORCEINLINE HRESULT IDXGISwapChain2_GetBackgroundColor(IDXGISwapChain2* This,DXGI_RGBA *pColor) {
690 return This->lpVtbl->GetBackgroundColor(This,pColor);
691}
692static FORCEINLINE HRESULT IDXGISwapChain2_SetRotation(IDXGISwapChain2* This,DXGI_MODE_ROTATION Rotation) {
693 return This->lpVtbl->SetRotation(This,Rotation);
694}
695static FORCEINLINE HRESULT IDXGISwapChain2_GetRotation(IDXGISwapChain2* This,DXGI_MODE_ROTATION *pRotation) {
696 return This->lpVtbl->GetRotation(This,pRotation);
697}
698/*** IDXGISwapChain2 methods ***/
699static FORCEINLINE HRESULT IDXGISwapChain2_SetSourceSize(IDXGISwapChain2* This,UINT width,UINT height) {
700 return This->lpVtbl->SetSourceSize(This,width,height);
701}
702static FORCEINLINE HRESULT IDXGISwapChain2_GetSourceSize(IDXGISwapChain2* This,UINT *width,UINT *height) {
703 return This->lpVtbl->GetSourceSize(This,width,height);
704}
705static FORCEINLINE HRESULT IDXGISwapChain2_SetMaximumFrameLatency(IDXGISwapChain2* This,UINT max_latency) {
706 return This->lpVtbl->SetMaximumFrameLatency(This,max_latency);
707}
708static FORCEINLINE HRESULT IDXGISwapChain2_GetMaximumFrameLatency(IDXGISwapChain2* This,UINT *max_latency) {
709 return This->lpVtbl->GetMaximumFrameLatency(This,max_latency);
710}
711static FORCEINLINE HANDLE IDXGISwapChain2_GetFrameLatencyWaitableObject(IDXGISwapChain2* This) {
712 return This->lpVtbl->GetFrameLatencyWaitableObject(This);
713}
714static FORCEINLINE HRESULT IDXGISwapChain2_SetMatrixTransform(IDXGISwapChain2* This,const DXGI_MATRIX_3X2_F *matrix) {
715 return This->lpVtbl->SetMatrixTransform(This,matrix);
716}
717static FORCEINLINE HRESULT IDXGISwapChain2_GetMatrixTransform(IDXGISwapChain2* This,DXGI_MATRIX_3X2_F *matrix) {
718 return This->lpVtbl->GetMatrixTransform(This,matrix);
719}
720#endif
721#endif
722
723#endif
724
725
726#endif /* __IDXGISwapChain2_INTERFACE_DEFINED__ */
727
728/*****************************************************************************
729 * IDXGIOutput2 interface
730 */
731#ifndef __IDXGIOutput2_INTERFACE_DEFINED__
732#define __IDXGIOutput2_INTERFACE_DEFINED__
733
734DEFINE_GUID(IID_IDXGIOutput2, 0x595e39d1, 0x2724, 0x4663, 0x99,0xb1, 0xda,0x96,0x9d,0xe2,0x83,0x64);
735#if defined(__cplusplus) && !defined(CINTERFACE)
736MIDL_INTERFACE("595e39d1-2724-4663-99b1-da969de28364")
737IDXGIOutput2 : public IDXGIOutput1
738{
739 virtual WINBOOL STDMETHODCALLTYPE SupportsOverlays(
740 ) = 0;
741
742};
743#ifdef __CRT_UUID_DECL
744__CRT_UUID_DECL(IDXGIOutput2, 0x595e39d1, 0x2724, 0x4663, 0x99,0xb1, 0xda,0x96,0x9d,0xe2,0x83,0x64)
745#endif
746#else
747typedef struct IDXGIOutput2Vtbl {
748 BEGIN_INTERFACE
749
750 /*** IUnknown methods ***/
751 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
752 IDXGIOutput2 *This,
753 REFIID riid,
754 void **ppvObject);
755
756 ULONG (STDMETHODCALLTYPE *AddRef)(
757 IDXGIOutput2 *This);
758
759 ULONG (STDMETHODCALLTYPE *Release)(
760 IDXGIOutput2 *This);
761
762 /*** IDXGIObject methods ***/
763 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
764 IDXGIOutput2 *This,
765 REFGUID guid,
766 UINT data_size,
767 const void *data);
768
769 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
770 IDXGIOutput2 *This,
771 REFGUID guid,
772 const IUnknown *object);
773
774 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
775 IDXGIOutput2 *This,
776 REFGUID guid,
777 UINT *data_size,
778 void *data);
779
780 HRESULT (STDMETHODCALLTYPE *GetParent)(
781 IDXGIOutput2 *This,
782 REFIID riid,
783 void **parent);
784
785 /*** IDXGIOutput methods ***/
786 HRESULT (STDMETHODCALLTYPE *GetDesc)(
787 IDXGIOutput2 *This,
788 DXGI_OUTPUT_DESC *desc);
789
790 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
791 IDXGIOutput2 *This,
792 DXGI_FORMAT format,
793 UINT flags,
794 UINT *mode_count,
795 DXGI_MODE_DESC *desc);
796
797 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
798 IDXGIOutput2 *This,
799 const DXGI_MODE_DESC *mode,
800 DXGI_MODE_DESC *closest_match,
801 IUnknown *device);
802
803 HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
804 IDXGIOutput2 *This);
805
806 HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
807 IDXGIOutput2 *This,
808 IUnknown *device,
809 WINBOOL exclusive);
810
811 void (STDMETHODCALLTYPE *ReleaseOwnership)(
812 IDXGIOutput2 *This);
813
814 HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
815 IDXGIOutput2 *This,
816 DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
817
818 HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
819 IDXGIOutput2 *This,
820 const DXGI_GAMMA_CONTROL *gamma_control);
821
822 HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
823 IDXGIOutput2 *This,
824 DXGI_GAMMA_CONTROL *gamma_control);
825
826 HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
827 IDXGIOutput2 *This,
828 IDXGISurface *surface);
829
830 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
831 IDXGIOutput2 *This,
832 IDXGISurface *surface);
833
834 HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
835 IDXGIOutput2 *This,
836 DXGI_FRAME_STATISTICS *stats);
837
838 /*** IDXGIOutput1 methods ***/
839 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
840 IDXGIOutput2 *This,
841 DXGI_FORMAT enum_format,
842 UINT flags,
843 UINT *num_modes,
844 DXGI_MODE_DESC1 *desc);
845
846 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
847 IDXGIOutput2 *This,
848 const DXGI_MODE_DESC1 *mode_to_match,
849 DXGI_MODE_DESC1 *closest_match,
850 IUnknown *concerned_device);
851
852 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
853 IDXGIOutput2 *This,
854 IDXGIResource *destination);
855
856 HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
857 IDXGIOutput2 *This,
858 IUnknown *device,
859 IDXGIOutputDuplication **output_duplication);
860
861 /*** IDXGIOutput2 methods ***/
862 WINBOOL (STDMETHODCALLTYPE *SupportsOverlays)(
863 IDXGIOutput2 *This);
864
865 END_INTERFACE
866} IDXGIOutput2Vtbl;
867
868interface IDXGIOutput2 {
869 CONST_VTBL IDXGIOutput2Vtbl* lpVtbl;
870};
871
872#ifdef COBJMACROS
873#ifndef WIDL_C_INLINE_WRAPPERS
874/*** IUnknown methods ***/
875#define IDXGIOutput2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
876#define IDXGIOutput2_AddRef(This) (This)->lpVtbl->AddRef(This)
877#define IDXGIOutput2_Release(This) (This)->lpVtbl->Release(This)
878/*** IDXGIObject methods ***/
879#define IDXGIOutput2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
880#define IDXGIOutput2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
881#define IDXGIOutput2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
882#define IDXGIOutput2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
883/*** IDXGIOutput methods ***/
884#define IDXGIOutput2_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
885#define IDXGIOutput2_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
886#define IDXGIOutput2_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
887#define IDXGIOutput2_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
888#define IDXGIOutput2_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
889#define IDXGIOutput2_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
890#define IDXGIOutput2_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
891#define IDXGIOutput2_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
892#define IDXGIOutput2_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
893#define IDXGIOutput2_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
894#define IDXGIOutput2_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
895#define IDXGIOutput2_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
896/*** IDXGIOutput1 methods ***/
897#define IDXGIOutput2_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc)
898#define IDXGIOutput2_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device)
899#define IDXGIOutput2_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination)
900#define IDXGIOutput2_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication)
901/*** IDXGIOutput2 methods ***/
902#define IDXGIOutput2_SupportsOverlays(This) (This)->lpVtbl->SupportsOverlays(This)
903#else
904/*** IUnknown methods ***/
905static FORCEINLINE HRESULT IDXGIOutput2_QueryInterface(IDXGIOutput2* This,REFIID riid,void **ppvObject) {
906 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
907}
908static FORCEINLINE ULONG IDXGIOutput2_AddRef(IDXGIOutput2* This) {
909 return This->lpVtbl->AddRef(This);
910}
911static FORCEINLINE ULONG IDXGIOutput2_Release(IDXGIOutput2* This) {
912 return This->lpVtbl->Release(This);
913}
914/*** IDXGIObject methods ***/
915static FORCEINLINE HRESULT IDXGIOutput2_SetPrivateData(IDXGIOutput2* This,REFGUID guid,UINT data_size,const void *data) {
916 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
917}
918static FORCEINLINE HRESULT IDXGIOutput2_SetPrivateDataInterface(IDXGIOutput2* This,REFGUID guid,const IUnknown *object) {
919 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
920}
921static FORCEINLINE HRESULT IDXGIOutput2_GetPrivateData(IDXGIOutput2* This,REFGUID guid,UINT *data_size,void *data) {
922 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
923}
924static FORCEINLINE HRESULT IDXGIOutput2_GetParent(IDXGIOutput2* This,REFIID riid,void **parent) {
925 return This->lpVtbl->GetParent(This,riid,parent);
926}
927/*** IDXGIOutput methods ***/
928static FORCEINLINE HRESULT IDXGIOutput2_GetDesc(IDXGIOutput2* This,DXGI_OUTPUT_DESC *desc) {
929 return This->lpVtbl->GetDesc(This,desc);
930}
931static FORCEINLINE HRESULT IDXGIOutput2_GetDisplayModeList(IDXGIOutput2* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
932 return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
933}
934static FORCEINLINE HRESULT IDXGIOutput2_FindClosestMatchingMode(IDXGIOutput2* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
935 return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
936}
937static FORCEINLINE HRESULT IDXGIOutput2_WaitForVBlank(IDXGIOutput2* This) {
938 return This->lpVtbl->WaitForVBlank(This);
939}
940static FORCEINLINE HRESULT IDXGIOutput2_TakeOwnership(IDXGIOutput2* This,IUnknown *device,WINBOOL exclusive) {
941 return This->lpVtbl->TakeOwnership(This,device,exclusive);
942}
943static FORCEINLINE void IDXGIOutput2_ReleaseOwnership(IDXGIOutput2* This) {
944 This->lpVtbl->ReleaseOwnership(This);
945}
946static FORCEINLINE HRESULT IDXGIOutput2_GetGammaControlCapabilities(IDXGIOutput2* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
947 return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
948}
949static FORCEINLINE HRESULT IDXGIOutput2_SetGammaControl(IDXGIOutput2* This,const DXGI_GAMMA_CONTROL *gamma_control) {
950 return This->lpVtbl->SetGammaControl(This,gamma_control);
951}
952static FORCEINLINE HRESULT IDXGIOutput2_GetGammaControl(IDXGIOutput2* This,DXGI_GAMMA_CONTROL *gamma_control) {
953 return This->lpVtbl->GetGammaControl(This,gamma_control);
954}
955static FORCEINLINE HRESULT IDXGIOutput2_SetDisplaySurface(IDXGIOutput2* This,IDXGISurface *surface) {
956 return This->lpVtbl->SetDisplaySurface(This,surface);
957}
958static FORCEINLINE HRESULT IDXGIOutput2_GetDisplaySurfaceData(IDXGIOutput2* This,IDXGISurface *surface) {
959 return This->lpVtbl->GetDisplaySurfaceData(This,surface);
960}
961static FORCEINLINE HRESULT IDXGIOutput2_GetFrameStatistics(IDXGIOutput2* This,DXGI_FRAME_STATISTICS *stats) {
962 return This->lpVtbl->GetFrameStatistics(This,stats);
963}
964/*** IDXGIOutput1 methods ***/
965static FORCEINLINE HRESULT IDXGIOutput2_GetDisplayModeList1(IDXGIOutput2* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) {
966 return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc);
967}
968static FORCEINLINE HRESULT IDXGIOutput2_FindClosestMatchingMode1(IDXGIOutput2* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) {
969 return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device);
970}
971static FORCEINLINE HRESULT IDXGIOutput2_GetDisplaySurfaceData1(IDXGIOutput2* This,IDXGIResource *destination) {
972 return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
973}
974static FORCEINLINE HRESULT IDXGIOutput2_DuplicateOutput(IDXGIOutput2* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
975 return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
976}
977/*** IDXGIOutput2 methods ***/
978static FORCEINLINE WINBOOL IDXGIOutput2_SupportsOverlays(IDXGIOutput2* This) {
979 return This->lpVtbl->SupportsOverlays(This);
980}
981#endif
982#endif
983
984#endif
985
986
987#endif /* __IDXGIOutput2_INTERFACE_DEFINED__ */
988
989/*****************************************************************************
990 * IDXGIFactory3 interface
991 */
992#ifndef __IDXGIFactory3_INTERFACE_DEFINED__
993#define __IDXGIFactory3_INTERFACE_DEFINED__
994
995DEFINE_GUID(IID_IDXGIFactory3, 0x25483823, 0xcd46, 0x4c7d, 0x86,0xca, 0x47,0xaa,0x95,0xb8,0x37,0xbd);
996#if defined(__cplusplus) && !defined(CINTERFACE)
997MIDL_INTERFACE("25483823-cd46-4c7d-86ca-47aa95b837bd")
998IDXGIFactory3 : public IDXGIFactory2
999{
1000 virtual UINT STDMETHODCALLTYPE GetCreationFlags(
1001 ) = 0;
1002
1003};
1004#ifdef __CRT_UUID_DECL
1005__CRT_UUID_DECL(IDXGIFactory3, 0x25483823, 0xcd46, 0x4c7d, 0x86,0xca, 0x47,0xaa,0x95,0xb8,0x37,0xbd)
1006#endif
1007#else
1008typedef struct IDXGIFactory3Vtbl {
1009 BEGIN_INTERFACE
1010
1011 /*** IUnknown methods ***/
1012 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1013 IDXGIFactory3 *This,
1014 REFIID riid,
1015 void **ppvObject);
1016
1017 ULONG (STDMETHODCALLTYPE *AddRef)(
1018 IDXGIFactory3 *This);
1019
1020 ULONG (STDMETHODCALLTYPE *Release)(
1021 IDXGIFactory3 *This);
1022
1023 /*** IDXGIObject methods ***/
1024 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
1025 IDXGIFactory3 *This,
1026 REFGUID guid,
1027 UINT data_size,
1028 const void *data);
1029
1030 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
1031 IDXGIFactory3 *This,
1032 REFGUID guid,
1033 const IUnknown *object);
1034
1035 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
1036 IDXGIFactory3 *This,
1037 REFGUID guid,
1038 UINT *data_size,
1039 void *data);
1040
1041 HRESULT (STDMETHODCALLTYPE *GetParent)(
1042 IDXGIFactory3 *This,
1043 REFIID riid,
1044 void **parent);
1045
1046 /*** IDXGIFactory methods ***/
1047 HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
1048 IDXGIFactory3 *This,
1049 UINT adapter_idx,
1050 IDXGIAdapter **adapter);
1051
1052 HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
1053 IDXGIFactory3 *This,
1054 HWND window,
1055 UINT flags);
1056
1057 HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
1058 IDXGIFactory3 *This,
1059 HWND *window);
1060
1061 HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
1062 IDXGIFactory3 *This,
1063 IUnknown *device,
1064 DXGI_SWAP_CHAIN_DESC *desc,
1065 IDXGISwapChain **swapchain);
1066
1067 HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
1068 IDXGIFactory3 *This,
1069 HMODULE swrast,
1070 IDXGIAdapter **adapter);
1071
1072 /*** IDXGIFactory1 methods ***/
1073 HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
1074 IDXGIFactory3 *This,
1075 UINT Adapter,
1076 IDXGIAdapter1 **ppAdapter);
1077
1078 WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
1079 IDXGIFactory3 *This);
1080
1081 /*** IDXGIFactory2 methods ***/
1082 WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
1083 IDXGIFactory3 *This);
1084
1085 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
1086 IDXGIFactory3 *This,
1087 IUnknown *pDevice,
1088 HWND hWnd,
1089 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1090 const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
1091 IDXGIOutput *pRestrictToOutput,
1092 IDXGISwapChain1 **ppSwapChain);
1093
1094 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
1095 IDXGIFactory3 *This,
1096 IUnknown *pDevice,
1097 IUnknown *pWindow,
1098 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1099 IDXGIOutput *pRestrictToOutput,
1100 IDXGISwapChain1 **ppSwapChain);
1101
1102 HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
1103 IDXGIFactory3 *This,
1104 HANDLE hResource,
1105 LUID *pLuid);
1106
1107 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
1108 IDXGIFactory3 *This,
1109 HWND WindowHandle,
1110 UINT wMsg,
1111 DWORD *pdwCookie);
1112
1113 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
1114 IDXGIFactory3 *This,
1115 HANDLE hEvent,
1116 DWORD *pdwCookie);
1117
1118 void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
1119 IDXGIFactory3 *This,
1120 DWORD dwCookie);
1121
1122 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
1123 IDXGIFactory3 *This,
1124 HWND WindowHandle,
1125 UINT wMsg,
1126 DWORD *pdwCookie);
1127
1128 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
1129 IDXGIFactory3 *This,
1130 HANDLE hEvent,
1131 DWORD *pdwCookie);
1132
1133 void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
1134 IDXGIFactory3 *This,
1135 DWORD dwCookie);
1136
1137 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
1138 IDXGIFactory3 *This,
1139 IUnknown *pDevice,
1140 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1141 IDXGIOutput *pRestrictToOutput,
1142 IDXGISwapChain1 **ppSwapChain);
1143
1144 /*** IDXGIFactory3 methods ***/
1145 UINT (STDMETHODCALLTYPE *GetCreationFlags)(
1146 IDXGIFactory3 *This);
1147
1148 END_INTERFACE
1149} IDXGIFactory3Vtbl;
1150
1151interface IDXGIFactory3 {
1152 CONST_VTBL IDXGIFactory3Vtbl* lpVtbl;
1153};
1154
1155#ifdef COBJMACROS
1156#ifndef WIDL_C_INLINE_WRAPPERS
1157/*** IUnknown methods ***/
1158#define IDXGIFactory3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1159#define IDXGIFactory3_AddRef(This) (This)->lpVtbl->AddRef(This)
1160#define IDXGIFactory3_Release(This) (This)->lpVtbl->Release(This)
1161/*** IDXGIObject methods ***/
1162#define IDXGIFactory3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
1163#define IDXGIFactory3_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
1164#define IDXGIFactory3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
1165#define IDXGIFactory3_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
1166/*** IDXGIFactory methods ***/
1167#define IDXGIFactory3_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
1168#define IDXGIFactory3_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
1169#define IDXGIFactory3_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
1170#define IDXGIFactory3_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
1171#define IDXGIFactory3_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
1172/*** IDXGIFactory1 methods ***/
1173#define IDXGIFactory3_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
1174#define IDXGIFactory3_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
1175/*** IDXGIFactory2 methods ***/
1176#define IDXGIFactory3_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
1177#define IDXGIFactory3_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
1178#define IDXGIFactory3_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
1179#define IDXGIFactory3_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
1180#define IDXGIFactory3_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
1181#define IDXGIFactory3_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
1182#define IDXGIFactory3_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
1183#define IDXGIFactory3_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
1184#define IDXGIFactory3_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
1185#define IDXGIFactory3_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
1186#define IDXGIFactory3_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
1187/*** IDXGIFactory3 methods ***/
1188#define IDXGIFactory3_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
1189#else
1190/*** IUnknown methods ***/
1191static FORCEINLINE HRESULT IDXGIFactory3_QueryInterface(IDXGIFactory3* This,REFIID riid,void **ppvObject) {
1192 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1193}
1194static FORCEINLINE ULONG IDXGIFactory3_AddRef(IDXGIFactory3* This) {
1195 return This->lpVtbl->AddRef(This);
1196}
1197static FORCEINLINE ULONG IDXGIFactory3_Release(IDXGIFactory3* This) {
1198 return This->lpVtbl->Release(This);
1199}
1200/*** IDXGIObject methods ***/
1201static FORCEINLINE HRESULT IDXGIFactory3_SetPrivateData(IDXGIFactory3* This,REFGUID guid,UINT data_size,const void *data) {
1202 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
1203}
1204static FORCEINLINE HRESULT IDXGIFactory3_SetPrivateDataInterface(IDXGIFactory3* This,REFGUID guid,const IUnknown *object) {
1205 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
1206}
1207static FORCEINLINE HRESULT IDXGIFactory3_GetPrivateData(IDXGIFactory3* This,REFGUID guid,UINT *data_size,void *data) {
1208 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
1209}
1210static FORCEINLINE HRESULT IDXGIFactory3_GetParent(IDXGIFactory3* This,REFIID riid,void **parent) {
1211 return This->lpVtbl->GetParent(This,riid,parent);
1212}
1213/*** IDXGIFactory methods ***/
1214static FORCEINLINE HRESULT IDXGIFactory3_EnumAdapters(IDXGIFactory3* This,UINT adapter_idx,IDXGIAdapter **adapter) {
1215 return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
1216}
1217static FORCEINLINE HRESULT IDXGIFactory3_MakeWindowAssociation(IDXGIFactory3* This,HWND window,UINT flags) {
1218 return This->lpVtbl->MakeWindowAssociation(This,window,flags);
1219}
1220static FORCEINLINE HRESULT IDXGIFactory3_GetWindowAssociation(IDXGIFactory3* This,HWND *window) {
1221 return This->lpVtbl->GetWindowAssociation(This,window);
1222}
1223static FORCEINLINE HRESULT IDXGIFactory3_CreateSwapChain(IDXGIFactory3* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
1224 return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
1225}
1226static FORCEINLINE HRESULT IDXGIFactory3_CreateSoftwareAdapter(IDXGIFactory3* This,HMODULE swrast,IDXGIAdapter **adapter) {
1227 return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
1228}
1229/*** IDXGIFactory1 methods ***/
1230static FORCEINLINE HRESULT IDXGIFactory3_EnumAdapters1(IDXGIFactory3* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
1231 return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
1232}
1233static FORCEINLINE WINBOOL IDXGIFactory3_IsCurrent(IDXGIFactory3* This) {
1234 return This->lpVtbl->IsCurrent(This);
1235}
1236/*** IDXGIFactory2 methods ***/
1237static FORCEINLINE WINBOOL IDXGIFactory3_IsWindowedStereoEnabled(IDXGIFactory3* This) {
1238 return This->lpVtbl->IsWindowedStereoEnabled(This);
1239}
1240static FORCEINLINE HRESULT IDXGIFactory3_CreateSwapChainForHwnd(IDXGIFactory3* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1241 return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
1242}
1243static FORCEINLINE HRESULT IDXGIFactory3_CreateSwapChainForCoreWindow(IDXGIFactory3* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1244 return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
1245}
1246static FORCEINLINE HRESULT IDXGIFactory3_GetSharedResourceAdapterLuid(IDXGIFactory3* This,HANDLE hResource,LUID *pLuid) {
1247 return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
1248}
1249static FORCEINLINE HRESULT IDXGIFactory3_RegisterStereoStatusWindow(IDXGIFactory3* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
1250 return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
1251}
1252static FORCEINLINE HRESULT IDXGIFactory3_RegisterStereoStatusEvent(IDXGIFactory3* This,HANDLE hEvent,DWORD *pdwCookie) {
1253 return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
1254}
1255static FORCEINLINE void IDXGIFactory3_UnregisterStereoStatus(IDXGIFactory3* This,DWORD dwCookie) {
1256 This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
1257}
1258static FORCEINLINE HRESULT IDXGIFactory3_RegisterOcclusionStatusWindow(IDXGIFactory3* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
1259 return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
1260}
1261static FORCEINLINE HRESULT IDXGIFactory3_RegisterOcclusionStatusEvent(IDXGIFactory3* This,HANDLE hEvent,DWORD *pdwCookie) {
1262 return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
1263}
1264static FORCEINLINE void IDXGIFactory3_UnregisterOcclusionStatus(IDXGIFactory3* This,DWORD dwCookie) {
1265 This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
1266}
1267static FORCEINLINE HRESULT IDXGIFactory3_CreateSwapChainForComposition(IDXGIFactory3* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1268 return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
1269}
1270/*** IDXGIFactory3 methods ***/
1271static FORCEINLINE UINT IDXGIFactory3_GetCreationFlags(IDXGIFactory3* This) {
1272 return This->lpVtbl->GetCreationFlags(This);
1273}
1274#endif
1275#endif
1276
1277#endif
1278
1279
1280#endif /* __IDXGIFactory3_INTERFACE_DEFINED__ */
1281
1282/*****************************************************************************
1283 * IDXGIDecodeSwapChain interface
1284 */
1285#ifndef __IDXGIDecodeSwapChain_INTERFACE_DEFINED__
1286#define __IDXGIDecodeSwapChain_INTERFACE_DEFINED__
1287
1288DEFINE_GUID(IID_IDXGIDecodeSwapChain, 0x2633066b, 0x4514, 0x4c7a, 0x8f,0xd8, 0x12,0xea,0x98,0x05,0x9d,0x18);
1289#if defined(__cplusplus) && !defined(CINTERFACE)
1290MIDL_INTERFACE("2633066b-4514-4c7a-8fd8-12ea98059d18")
1291IDXGIDecodeSwapChain : public IUnknown
1292{
1293 virtual HRESULT STDMETHODCALLTYPE PresentBuffer(
1294 UINT buffer_to_present,
1295 UINT sync_interval,
1296 UINT flags) = 0;
1297
1298 virtual HRESULT STDMETHODCALLTYPE SetSourceRect(
1299 const RECT *rect) = 0;
1300
1301 virtual HRESULT STDMETHODCALLTYPE SetTargetRect(
1302 const RECT *rect) = 0;
1303
1304 virtual HRESULT STDMETHODCALLTYPE SetDestSize(
1305 UINT width,
1306 UINT height) = 0;
1307
1308 virtual HRESULT STDMETHODCALLTYPE GetSourceRect(
1309 RECT *rect) = 0;
1310
1311 virtual HRESULT STDMETHODCALLTYPE GetTargetRect(
1312 RECT *rect) = 0;
1313
1314 virtual HRESULT STDMETHODCALLTYPE GetDestSize(
1315 UINT *width,
1316 UINT *height) = 0;
1317
1318 virtual HRESULT STDMETHODCALLTYPE SetColorSpace(
1319 DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS colorspace) = 0;
1320
1321 virtual DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS STDMETHODCALLTYPE GetColorSpace(
1322 ) = 0;
1323
1324};
1325#ifdef __CRT_UUID_DECL
1326__CRT_UUID_DECL(IDXGIDecodeSwapChain, 0x2633066b, 0x4514, 0x4c7a, 0x8f,0xd8, 0x12,0xea,0x98,0x05,0x9d,0x18)
1327#endif
1328#else
1329typedef struct IDXGIDecodeSwapChainVtbl {
1330 BEGIN_INTERFACE
1331
1332 /*** IUnknown methods ***/
1333 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1334 IDXGIDecodeSwapChain *This,
1335 REFIID riid,
1336 void **ppvObject);
1337
1338 ULONG (STDMETHODCALLTYPE *AddRef)(
1339 IDXGIDecodeSwapChain *This);
1340
1341 ULONG (STDMETHODCALLTYPE *Release)(
1342 IDXGIDecodeSwapChain *This);
1343
1344 /*** IDXGIDecodeSwapChain methods ***/
1345 HRESULT (STDMETHODCALLTYPE *PresentBuffer)(
1346 IDXGIDecodeSwapChain *This,
1347 UINT buffer_to_present,
1348 UINT sync_interval,
1349 UINT flags);
1350
1351 HRESULT (STDMETHODCALLTYPE *SetSourceRect)(
1352 IDXGIDecodeSwapChain *This,
1353 const RECT *rect);
1354
1355 HRESULT (STDMETHODCALLTYPE *SetTargetRect)(
1356 IDXGIDecodeSwapChain *This,
1357 const RECT *rect);
1358
1359 HRESULT (STDMETHODCALLTYPE *SetDestSize)(
1360 IDXGIDecodeSwapChain *This,
1361 UINT width,
1362 UINT height);
1363
1364 HRESULT (STDMETHODCALLTYPE *GetSourceRect)(
1365 IDXGIDecodeSwapChain *This,
1366 RECT *rect);
1367
1368 HRESULT (STDMETHODCALLTYPE *GetTargetRect)(
1369 IDXGIDecodeSwapChain *This,
1370 RECT *rect);
1371
1372 HRESULT (STDMETHODCALLTYPE *GetDestSize)(
1373 IDXGIDecodeSwapChain *This,
1374 UINT *width,
1375 UINT *height);
1376
1377 HRESULT (STDMETHODCALLTYPE *SetColorSpace)(
1378 IDXGIDecodeSwapChain *This,
1379 DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS colorspace);
1380
1381 DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS (STDMETHODCALLTYPE *GetColorSpace)(
1382 IDXGIDecodeSwapChain *This);
1383
1384 END_INTERFACE
1385} IDXGIDecodeSwapChainVtbl;
1386
1387interface IDXGIDecodeSwapChain {
1388 CONST_VTBL IDXGIDecodeSwapChainVtbl* lpVtbl;
1389};
1390
1391#ifdef COBJMACROS
1392#ifndef WIDL_C_INLINE_WRAPPERS
1393/*** IUnknown methods ***/
1394#define IDXGIDecodeSwapChain_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1395#define IDXGIDecodeSwapChain_AddRef(This) (This)->lpVtbl->AddRef(This)
1396#define IDXGIDecodeSwapChain_Release(This) (This)->lpVtbl->Release(This)
1397/*** IDXGIDecodeSwapChain methods ***/
1398#define IDXGIDecodeSwapChain_PresentBuffer(This,buffer_to_present,sync_interval,flags) (This)->lpVtbl->PresentBuffer(This,buffer_to_present,sync_interval,flags)
1399#define IDXGIDecodeSwapChain_SetSourceRect(This,rect) (This)->lpVtbl->SetSourceRect(This,rect)
1400#define IDXGIDecodeSwapChain_SetTargetRect(This,rect) (This)->lpVtbl->SetTargetRect(This,rect)
1401#define IDXGIDecodeSwapChain_SetDestSize(This,width,height) (This)->lpVtbl->SetDestSize(This,width,height)
1402#define IDXGIDecodeSwapChain_GetSourceRect(This,rect) (This)->lpVtbl->GetSourceRect(This,rect)
1403#define IDXGIDecodeSwapChain_GetTargetRect(This,rect) (This)->lpVtbl->GetTargetRect(This,rect)
1404#define IDXGIDecodeSwapChain_GetDestSize(This,width,height) (This)->lpVtbl->GetDestSize(This,width,height)
1405#define IDXGIDecodeSwapChain_SetColorSpace(This,colorspace) (This)->lpVtbl->SetColorSpace(This,colorspace)
1406#define IDXGIDecodeSwapChain_GetColorSpace(This) (This)->lpVtbl->GetColorSpace(This)
1407#else
1408/*** IUnknown methods ***/
1409static FORCEINLINE HRESULT IDXGIDecodeSwapChain_QueryInterface(IDXGIDecodeSwapChain* This,REFIID riid,void **ppvObject) {
1410 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1411}
1412static FORCEINLINE ULONG IDXGIDecodeSwapChain_AddRef(IDXGIDecodeSwapChain* This) {
1413 return This->lpVtbl->AddRef(This);
1414}
1415static FORCEINLINE ULONG IDXGIDecodeSwapChain_Release(IDXGIDecodeSwapChain* This) {
1416 return This->lpVtbl->Release(This);
1417}
1418/*** IDXGIDecodeSwapChain methods ***/
1419static FORCEINLINE HRESULT IDXGIDecodeSwapChain_PresentBuffer(IDXGIDecodeSwapChain* This,UINT buffer_to_present,UINT sync_interval,UINT flags) {
1420 return This->lpVtbl->PresentBuffer(This,buffer_to_present,sync_interval,flags);
1421}
1422static FORCEINLINE HRESULT IDXGIDecodeSwapChain_SetSourceRect(IDXGIDecodeSwapChain* This,const RECT *rect) {
1423 return This->lpVtbl->SetSourceRect(This,rect);
1424}
1425static FORCEINLINE HRESULT IDXGIDecodeSwapChain_SetTargetRect(IDXGIDecodeSwapChain* This,const RECT *rect) {
1426 return This->lpVtbl->SetTargetRect(This,rect);
1427}
1428static FORCEINLINE HRESULT IDXGIDecodeSwapChain_SetDestSize(IDXGIDecodeSwapChain* This,UINT width,UINT height) {
1429 return This->lpVtbl->SetDestSize(This,width,height);
1430}
1431static FORCEINLINE HRESULT IDXGIDecodeSwapChain_GetSourceRect(IDXGIDecodeSwapChain* This,RECT *rect) {
1432 return This->lpVtbl->GetSourceRect(This,rect);
1433}
1434static FORCEINLINE HRESULT IDXGIDecodeSwapChain_GetTargetRect(IDXGIDecodeSwapChain* This,RECT *rect) {
1435 return This->lpVtbl->GetTargetRect(This,rect);
1436}
1437static FORCEINLINE HRESULT IDXGIDecodeSwapChain_GetDestSize(IDXGIDecodeSwapChain* This,UINT *width,UINT *height) {
1438 return This->lpVtbl->GetDestSize(This,width,height);
1439}
1440static FORCEINLINE HRESULT IDXGIDecodeSwapChain_SetColorSpace(IDXGIDecodeSwapChain* This,DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS colorspace) {
1441 return This->lpVtbl->SetColorSpace(This,colorspace);
1442}
1443static FORCEINLINE DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS IDXGIDecodeSwapChain_GetColorSpace(IDXGIDecodeSwapChain* This) {
1444 return This->lpVtbl->GetColorSpace(This);
1445}
1446#endif
1447#endif
1448
1449#endif
1450
1451
1452#endif /* __IDXGIDecodeSwapChain_INTERFACE_DEFINED__ */
1453
1454/*****************************************************************************
1455 * IDXGIFactoryMedia interface
1456 */
1457#ifndef __IDXGIFactoryMedia_INTERFACE_DEFINED__
1458#define __IDXGIFactoryMedia_INTERFACE_DEFINED__
1459
1460DEFINE_GUID(IID_IDXGIFactoryMedia, 0x41e7d1f2, 0xa591, 0x4f7b, 0xa2,0xe5, 0xfa,0x9c,0x84,0x3e,0x1c,0x12);
1461#if defined(__cplusplus) && !defined(CINTERFACE)
1462MIDL_INTERFACE("41e7d1f2-a591-4f7b-a2e5-fa9c843e1c12")
1463IDXGIFactoryMedia : public IUnknown
1464{
1465 virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForCompositionSurfaceHandle(
1466 IUnknown *device,
1467 HANDLE surface,
1468 const DXGI_SWAP_CHAIN_DESC1 *desc,
1469 IDXGIOutput *restrict_to_output,
1470 IDXGISwapChain1 **swapchain) = 0;
1471
1472 virtual HRESULT STDMETHODCALLTYPE CreateDecodeSwapChainForCompositionSurfaceHandle(
1473 IUnknown *device,
1474 HANDLE surface,
1475 DXGI_DECODE_SWAP_CHAIN_DESC *desc,
1476 IDXGIResource *yuv_decode_buffers,
1477 IDXGIOutput *restrict_to_output,
1478 IDXGIDecodeSwapChain **swapchain) = 0;
1479
1480};
1481#ifdef __CRT_UUID_DECL
1482__CRT_UUID_DECL(IDXGIFactoryMedia, 0x41e7d1f2, 0xa591, 0x4f7b, 0xa2,0xe5, 0xfa,0x9c,0x84,0x3e,0x1c,0x12)
1483#endif
1484#else
1485typedef struct IDXGIFactoryMediaVtbl {
1486 BEGIN_INTERFACE
1487
1488 /*** IUnknown methods ***/
1489 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1490 IDXGIFactoryMedia *This,
1491 REFIID riid,
1492 void **ppvObject);
1493
1494 ULONG (STDMETHODCALLTYPE *AddRef)(
1495 IDXGIFactoryMedia *This);
1496
1497 ULONG (STDMETHODCALLTYPE *Release)(
1498 IDXGIFactoryMedia *This);
1499
1500 /*** IDXGIFactoryMedia methods ***/
1501 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCompositionSurfaceHandle)(
1502 IDXGIFactoryMedia *This,
1503 IUnknown *device,
1504 HANDLE surface,
1505 const DXGI_SWAP_CHAIN_DESC1 *desc,
1506 IDXGIOutput *restrict_to_output,
1507 IDXGISwapChain1 **swapchain);
1508
1509 HRESULT (STDMETHODCALLTYPE *CreateDecodeSwapChainForCompositionSurfaceHandle)(
1510 IDXGIFactoryMedia *This,
1511 IUnknown *device,
1512 HANDLE surface,
1513 DXGI_DECODE_SWAP_CHAIN_DESC *desc,
1514 IDXGIResource *yuv_decode_buffers,
1515 IDXGIOutput *restrict_to_output,
1516 IDXGIDecodeSwapChain **swapchain);
1517
1518 END_INTERFACE
1519} IDXGIFactoryMediaVtbl;
1520
1521interface IDXGIFactoryMedia {
1522 CONST_VTBL IDXGIFactoryMediaVtbl* lpVtbl;
1523};
1524
1525#ifdef COBJMACROS
1526#ifndef WIDL_C_INLINE_WRAPPERS
1527/*** IUnknown methods ***/
1528#define IDXGIFactoryMedia_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1529#define IDXGIFactoryMedia_AddRef(This) (This)->lpVtbl->AddRef(This)
1530#define IDXGIFactoryMedia_Release(This) (This)->lpVtbl->Release(This)
1531/*** IDXGIFactoryMedia methods ***/
1532#define IDXGIFactoryMedia_CreateSwapChainForCompositionSurfaceHandle(This,device,surface,desc,restrict_to_output,swapchain) (This)->lpVtbl->CreateSwapChainForCompositionSurfaceHandle(This,device,surface,desc,restrict_to_output,swapchain)
1533#define IDXGIFactoryMedia_CreateDecodeSwapChainForCompositionSurfaceHandle(This,device,surface,desc,yuv_decode_buffers,restrict_to_output,swapchain) (This)->lpVtbl->CreateDecodeSwapChainForCompositionSurfaceHandle(This,device,surface,desc,yuv_decode_buffers,restrict_to_output,swapchain)
1534#else
1535/*** IUnknown methods ***/
1536static FORCEINLINE HRESULT IDXGIFactoryMedia_QueryInterface(IDXGIFactoryMedia* This,REFIID riid,void **ppvObject) {
1537 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1538}
1539static FORCEINLINE ULONG IDXGIFactoryMedia_AddRef(IDXGIFactoryMedia* This) {
1540 return This->lpVtbl->AddRef(This);
1541}
1542static FORCEINLINE ULONG IDXGIFactoryMedia_Release(IDXGIFactoryMedia* This) {
1543 return This->lpVtbl->Release(This);
1544}
1545/*** IDXGIFactoryMedia methods ***/
1546static FORCEINLINE HRESULT IDXGIFactoryMedia_CreateSwapChainForCompositionSurfaceHandle(IDXGIFactoryMedia* This,IUnknown *device,HANDLE surface,const DXGI_SWAP_CHAIN_DESC1 *desc,IDXGIOutput *restrict_to_output,IDXGISwapChain1 **swapchain) {
1547 return This->lpVtbl->CreateSwapChainForCompositionSurfaceHandle(This,device,surface,desc,restrict_to_output,swapchain);
1548}
1549static FORCEINLINE HRESULT IDXGIFactoryMedia_CreateDecodeSwapChainForCompositionSurfaceHandle(IDXGIFactoryMedia* This,IUnknown *device,HANDLE surface,DXGI_DECODE_SWAP_CHAIN_DESC *desc,IDXGIResource *yuv_decode_buffers,IDXGIOutput *restrict_to_output,IDXGIDecodeSwapChain **swapchain) {
1550 return This->lpVtbl->CreateDecodeSwapChainForCompositionSurfaceHandle(This,device,surface,desc,yuv_decode_buffers,restrict_to_output,swapchain);
1551}
1552#endif
1553#endif
1554
1555#endif
1556
1557
1558#endif /* __IDXGIFactoryMedia_INTERFACE_DEFINED__ */
1559
1560/*****************************************************************************
1561 * IDXGISwapChainMedia interface
1562 */
1563#ifndef __IDXGISwapChainMedia_INTERFACE_DEFINED__
1564#define __IDXGISwapChainMedia_INTERFACE_DEFINED__
1565
1566DEFINE_GUID(IID_IDXGISwapChainMedia, 0xdd95b90b, 0xf05f, 0x4f6a, 0xbd,0x65, 0x25,0xbf,0xb2,0x64,0xbd,0x84);
1567#if defined(__cplusplus) && !defined(CINTERFACE)
1568MIDL_INTERFACE("dd95b90b-f05f-4f6a-bd65-25bfb264bd84")
1569IDXGISwapChainMedia : public IUnknown
1570{
1571 virtual HRESULT STDMETHODCALLTYPE GetFrameStatisticsMedia(
1572 DXGI_FRAME_STATISTICS_MEDIA *stats) = 0;
1573
1574 virtual HRESULT STDMETHODCALLTYPE SetPresentDuration(
1575 UINT duration) = 0;
1576
1577 virtual HRESULT STDMETHODCALLTYPE CheckPresentDurationSupport(
1578 UINT desired_present_duration,
1579 UINT *closest_smaller_present_duration,
1580 UINT *closest_larger_present_duration) = 0;
1581
1582};
1583#ifdef __CRT_UUID_DECL
1584__CRT_UUID_DECL(IDXGISwapChainMedia, 0xdd95b90b, 0xf05f, 0x4f6a, 0xbd,0x65, 0x25,0xbf,0xb2,0x64,0xbd,0x84)
1585#endif
1586#else
1587typedef struct IDXGISwapChainMediaVtbl {
1588 BEGIN_INTERFACE
1589
1590 /*** IUnknown methods ***/
1591 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1592 IDXGISwapChainMedia *This,
1593 REFIID riid,
1594 void **ppvObject);
1595
1596 ULONG (STDMETHODCALLTYPE *AddRef)(
1597 IDXGISwapChainMedia *This);
1598
1599 ULONG (STDMETHODCALLTYPE *Release)(
1600 IDXGISwapChainMedia *This);
1601
1602 /*** IDXGISwapChainMedia methods ***/
1603 HRESULT (STDMETHODCALLTYPE *GetFrameStatisticsMedia)(
1604 IDXGISwapChainMedia *This,
1605 DXGI_FRAME_STATISTICS_MEDIA *stats);
1606
1607 HRESULT (STDMETHODCALLTYPE *SetPresentDuration)(
1608 IDXGISwapChainMedia *This,
1609 UINT duration);
1610
1611 HRESULT (STDMETHODCALLTYPE *CheckPresentDurationSupport)(
1612 IDXGISwapChainMedia *This,
1613 UINT desired_present_duration,
1614 UINT *closest_smaller_present_duration,
1615 UINT *closest_larger_present_duration);
1616
1617 END_INTERFACE
1618} IDXGISwapChainMediaVtbl;
1619
1620interface IDXGISwapChainMedia {
1621 CONST_VTBL IDXGISwapChainMediaVtbl* lpVtbl;
1622};
1623
1624#ifdef COBJMACROS
1625#ifndef WIDL_C_INLINE_WRAPPERS
1626/*** IUnknown methods ***/
1627#define IDXGISwapChainMedia_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1628#define IDXGISwapChainMedia_AddRef(This) (This)->lpVtbl->AddRef(This)
1629#define IDXGISwapChainMedia_Release(This) (This)->lpVtbl->Release(This)
1630/*** IDXGISwapChainMedia methods ***/
1631#define IDXGISwapChainMedia_GetFrameStatisticsMedia(This,stats) (This)->lpVtbl->GetFrameStatisticsMedia(This,stats)
1632#define IDXGISwapChainMedia_SetPresentDuration(This,duration) (This)->lpVtbl->SetPresentDuration(This,duration)
1633#define IDXGISwapChainMedia_CheckPresentDurationSupport(This,desired_present_duration,closest_smaller_present_duration,closest_larger_present_duration) (This)->lpVtbl->CheckPresentDurationSupport(This,desired_present_duration,closest_smaller_present_duration,closest_larger_present_duration)
1634#else
1635/*** IUnknown methods ***/
1636static FORCEINLINE HRESULT IDXGISwapChainMedia_QueryInterface(IDXGISwapChainMedia* This,REFIID riid,void **ppvObject) {
1637 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1638}
1639static FORCEINLINE ULONG IDXGISwapChainMedia_AddRef(IDXGISwapChainMedia* This) {
1640 return This->lpVtbl->AddRef(This);
1641}
1642static FORCEINLINE ULONG IDXGISwapChainMedia_Release(IDXGISwapChainMedia* This) {
1643 return This->lpVtbl->Release(This);
1644}
1645/*** IDXGISwapChainMedia methods ***/
1646static FORCEINLINE HRESULT IDXGISwapChainMedia_GetFrameStatisticsMedia(IDXGISwapChainMedia* This,DXGI_FRAME_STATISTICS_MEDIA *stats) {
1647 return This->lpVtbl->GetFrameStatisticsMedia(This,stats);
1648}
1649static FORCEINLINE HRESULT IDXGISwapChainMedia_SetPresentDuration(IDXGISwapChainMedia* This,UINT duration) {
1650 return This->lpVtbl->SetPresentDuration(This,duration);
1651}
1652static FORCEINLINE HRESULT IDXGISwapChainMedia_CheckPresentDurationSupport(IDXGISwapChainMedia* This,UINT desired_present_duration,UINT *closest_smaller_present_duration,UINT *closest_larger_present_duration) {
1653 return This->lpVtbl->CheckPresentDurationSupport(This,desired_present_duration,closest_smaller_present_duration,closest_larger_present_duration);
1654}
1655#endif
1656#endif
1657
1658#endif
1659
1660
1661#endif /* __IDXGISwapChainMedia_INTERFACE_DEFINED__ */
1662
1663/*****************************************************************************
1664 * IDXGIOutput3 interface
1665 */
1666#ifndef __IDXGIOutput3_INTERFACE_DEFINED__
1667#define __IDXGIOutput3_INTERFACE_DEFINED__
1668
1669DEFINE_GUID(IID_IDXGIOutput3, 0x8a6bb301, 0x7e7e, 0x41f4, 0xa8,0xe0, 0x5b,0x32,0xf7,0xf9,0x9b,0x18);
1670#if defined(__cplusplus) && !defined(CINTERFACE)
1671MIDL_INTERFACE("8a6bb301-7e7e-41f4-a8e0-5b32f7f99b18")
1672IDXGIOutput3 : public IDXGIOutput2
1673{
1674 virtual HRESULT STDMETHODCALLTYPE CheckOverlaySupport(
1675 DXGI_FORMAT enum_format,
1676 IUnknown *concerned_device,
1677 UINT *flags) = 0;
1678
1679};
1680#ifdef __CRT_UUID_DECL
1681__CRT_UUID_DECL(IDXGIOutput3, 0x8a6bb301, 0x7e7e, 0x41f4, 0xa8,0xe0, 0x5b,0x32,0xf7,0xf9,0x9b,0x18)
1682#endif
1683#else
1684typedef struct IDXGIOutput3Vtbl {
1685 BEGIN_INTERFACE
1686
1687 /*** IUnknown methods ***/
1688 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1689 IDXGIOutput3 *This,
1690 REFIID riid,
1691 void **ppvObject);
1692
1693 ULONG (STDMETHODCALLTYPE *AddRef)(
1694 IDXGIOutput3 *This);
1695
1696 ULONG (STDMETHODCALLTYPE *Release)(
1697 IDXGIOutput3 *This);
1698
1699 /*** IDXGIObject methods ***/
1700 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
1701 IDXGIOutput3 *This,
1702 REFGUID guid,
1703 UINT data_size,
1704 const void *data);
1705
1706 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
1707 IDXGIOutput3 *This,
1708 REFGUID guid,
1709 const IUnknown *object);
1710
1711 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
1712 IDXGIOutput3 *This,
1713 REFGUID guid,
1714 UINT *data_size,
1715 void *data);
1716
1717 HRESULT (STDMETHODCALLTYPE *GetParent)(
1718 IDXGIOutput3 *This,
1719 REFIID riid,
1720 void **parent);
1721
1722 /*** IDXGIOutput methods ***/
1723 HRESULT (STDMETHODCALLTYPE *GetDesc)(
1724 IDXGIOutput3 *This,
1725 DXGI_OUTPUT_DESC *desc);
1726
1727 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
1728 IDXGIOutput3 *This,
1729 DXGI_FORMAT format,
1730 UINT flags,
1731 UINT *mode_count,
1732 DXGI_MODE_DESC *desc);
1733
1734 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
1735 IDXGIOutput3 *This,
1736 const DXGI_MODE_DESC *mode,
1737 DXGI_MODE_DESC *closest_match,
1738 IUnknown *device);
1739
1740 HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
1741 IDXGIOutput3 *This);
1742
1743 HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
1744 IDXGIOutput3 *This,
1745 IUnknown *device,
1746 WINBOOL exclusive);
1747
1748 void (STDMETHODCALLTYPE *ReleaseOwnership)(
1749 IDXGIOutput3 *This);
1750
1751 HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
1752 IDXGIOutput3 *This,
1753 DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
1754
1755 HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
1756 IDXGIOutput3 *This,
1757 const DXGI_GAMMA_CONTROL *gamma_control);
1758
1759 HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
1760 IDXGIOutput3 *This,
1761 DXGI_GAMMA_CONTROL *gamma_control);
1762
1763 HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
1764 IDXGIOutput3 *This,
1765 IDXGISurface *surface);
1766
1767 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
1768 IDXGIOutput3 *This,
1769 IDXGISurface *surface);
1770
1771 HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
1772 IDXGIOutput3 *This,
1773 DXGI_FRAME_STATISTICS *stats);
1774
1775 /*** IDXGIOutput1 methods ***/
1776 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
1777 IDXGIOutput3 *This,
1778 DXGI_FORMAT enum_format,
1779 UINT flags,
1780 UINT *num_modes,
1781 DXGI_MODE_DESC1 *desc);
1782
1783 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
1784 IDXGIOutput3 *This,
1785 const DXGI_MODE_DESC1 *mode_to_match,
1786 DXGI_MODE_DESC1 *closest_match,
1787 IUnknown *concerned_device);
1788
1789 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
1790 IDXGIOutput3 *This,
1791 IDXGIResource *destination);
1792
1793 HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
1794 IDXGIOutput3 *This,
1795 IUnknown *device,
1796 IDXGIOutputDuplication **output_duplication);
1797
1798 /*** IDXGIOutput2 methods ***/
1799 WINBOOL (STDMETHODCALLTYPE *SupportsOverlays)(
1800 IDXGIOutput3 *This);
1801
1802 /*** IDXGIOutput3 methods ***/
1803 HRESULT (STDMETHODCALLTYPE *CheckOverlaySupport)(
1804 IDXGIOutput3 *This,
1805 DXGI_FORMAT enum_format,
1806 IUnknown *concerned_device,
1807 UINT *flags);
1808
1809 END_INTERFACE
1810} IDXGIOutput3Vtbl;
1811
1812interface IDXGIOutput3 {
1813 CONST_VTBL IDXGIOutput3Vtbl* lpVtbl;
1814};
1815
1816#ifdef COBJMACROS
1817#ifndef WIDL_C_INLINE_WRAPPERS
1818/*** IUnknown methods ***/
1819#define IDXGIOutput3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1820#define IDXGIOutput3_AddRef(This) (This)->lpVtbl->AddRef(This)
1821#define IDXGIOutput3_Release(This) (This)->lpVtbl->Release(This)
1822/*** IDXGIObject methods ***/
1823#define IDXGIOutput3_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
1824#define IDXGIOutput3_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
1825#define IDXGIOutput3_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
1826#define IDXGIOutput3_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
1827/*** IDXGIOutput methods ***/
1828#define IDXGIOutput3_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
1829#define IDXGIOutput3_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
1830#define IDXGIOutput3_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
1831#define IDXGIOutput3_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
1832#define IDXGIOutput3_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
1833#define IDXGIOutput3_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
1834#define IDXGIOutput3_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
1835#define IDXGIOutput3_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
1836#define IDXGIOutput3_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
1837#define IDXGIOutput3_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
1838#define IDXGIOutput3_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
1839#define IDXGIOutput3_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
1840/*** IDXGIOutput1 methods ***/
1841#define IDXGIOutput3_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc)
1842#define IDXGIOutput3_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device)
1843#define IDXGIOutput3_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination)
1844#define IDXGIOutput3_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication)
1845/*** IDXGIOutput2 methods ***/
1846#define IDXGIOutput3_SupportsOverlays(This) (This)->lpVtbl->SupportsOverlays(This)
1847/*** IDXGIOutput3 methods ***/
1848#define IDXGIOutput3_CheckOverlaySupport(This,enum_format,concerned_device,flags) (This)->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags)
1849#else
1850/*** IUnknown methods ***/
1851static FORCEINLINE HRESULT IDXGIOutput3_QueryInterface(IDXGIOutput3* This,REFIID riid,void **ppvObject) {
1852 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1853}
1854static FORCEINLINE ULONG IDXGIOutput3_AddRef(IDXGIOutput3* This) {
1855 return This->lpVtbl->AddRef(This);
1856}
1857static FORCEINLINE ULONG IDXGIOutput3_Release(IDXGIOutput3* This) {
1858 return This->lpVtbl->Release(This);
1859}
1860/*** IDXGIObject methods ***/
1861static FORCEINLINE HRESULT IDXGIOutput3_SetPrivateData(IDXGIOutput3* This,REFGUID guid,UINT data_size,const void *data) {
1862 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
1863}
1864static FORCEINLINE HRESULT IDXGIOutput3_SetPrivateDataInterface(IDXGIOutput3* This,REFGUID guid,const IUnknown *object) {
1865 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
1866}
1867static FORCEINLINE HRESULT IDXGIOutput3_GetPrivateData(IDXGIOutput3* This,REFGUID guid,UINT *data_size,void *data) {
1868 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
1869}
1870static FORCEINLINE HRESULT IDXGIOutput3_GetParent(IDXGIOutput3* This,REFIID riid,void **parent) {
1871 return This->lpVtbl->GetParent(This,riid,parent);
1872}
1873/*** IDXGIOutput methods ***/
1874static FORCEINLINE HRESULT IDXGIOutput3_GetDesc(IDXGIOutput3* This,DXGI_OUTPUT_DESC *desc) {
1875 return This->lpVtbl->GetDesc(This,desc);
1876}
1877static FORCEINLINE HRESULT IDXGIOutput3_GetDisplayModeList(IDXGIOutput3* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
1878 return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
1879}
1880static FORCEINLINE HRESULT IDXGIOutput3_FindClosestMatchingMode(IDXGIOutput3* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
1881 return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
1882}
1883static FORCEINLINE HRESULT IDXGIOutput3_WaitForVBlank(IDXGIOutput3* This) {
1884 return This->lpVtbl->WaitForVBlank(This);
1885}
1886static FORCEINLINE HRESULT IDXGIOutput3_TakeOwnership(IDXGIOutput3* This,IUnknown *device,WINBOOL exclusive) {
1887 return This->lpVtbl->TakeOwnership(This,device,exclusive);
1888}
1889static FORCEINLINE void IDXGIOutput3_ReleaseOwnership(IDXGIOutput3* This) {
1890 This->lpVtbl->ReleaseOwnership(This);
1891}
1892static FORCEINLINE HRESULT IDXGIOutput3_GetGammaControlCapabilities(IDXGIOutput3* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
1893 return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
1894}
1895static FORCEINLINE HRESULT IDXGIOutput3_SetGammaControl(IDXGIOutput3* This,const DXGI_GAMMA_CONTROL *gamma_control) {
1896 return This->lpVtbl->SetGammaControl(This,gamma_control);
1897}
1898static FORCEINLINE HRESULT IDXGIOutput3_GetGammaControl(IDXGIOutput3* This,DXGI_GAMMA_CONTROL *gamma_control) {
1899 return This->lpVtbl->GetGammaControl(This,gamma_control);
1900}
1901static FORCEINLINE HRESULT IDXGIOutput3_SetDisplaySurface(IDXGIOutput3* This,IDXGISurface *surface) {
1902 return This->lpVtbl->SetDisplaySurface(This,surface);
1903}
1904static FORCEINLINE HRESULT IDXGIOutput3_GetDisplaySurfaceData(IDXGIOutput3* This,IDXGISurface *surface) {
1905 return This->lpVtbl->GetDisplaySurfaceData(This,surface);
1906}
1907static FORCEINLINE HRESULT IDXGIOutput3_GetFrameStatistics(IDXGIOutput3* This,DXGI_FRAME_STATISTICS *stats) {
1908 return This->lpVtbl->GetFrameStatistics(This,stats);
1909}
1910/*** IDXGIOutput1 methods ***/
1911static FORCEINLINE HRESULT IDXGIOutput3_GetDisplayModeList1(IDXGIOutput3* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) {
1912 return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc);
1913}
1914static FORCEINLINE HRESULT IDXGIOutput3_FindClosestMatchingMode1(IDXGIOutput3* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) {
1915 return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device);
1916}
1917static FORCEINLINE HRESULT IDXGIOutput3_GetDisplaySurfaceData1(IDXGIOutput3* This,IDXGIResource *destination) {
1918 return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
1919}
1920static FORCEINLINE HRESULT IDXGIOutput3_DuplicateOutput(IDXGIOutput3* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
1921 return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
1922}
1923/*** IDXGIOutput2 methods ***/
1924static FORCEINLINE WINBOOL IDXGIOutput3_SupportsOverlays(IDXGIOutput3* This) {
1925 return This->lpVtbl->SupportsOverlays(This);
1926}
1927/*** IDXGIOutput3 methods ***/
1928static FORCEINLINE HRESULT IDXGIOutput3_CheckOverlaySupport(IDXGIOutput3* This,DXGI_FORMAT enum_format,IUnknown *concerned_device,UINT *flags) {
1929 return This->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags);
1930}
1931#endif
1932#endif
1933
1934#endif
1935
1936
1937#endif /* __IDXGIOutput3_INTERFACE_DEFINED__ */
1938
1939#define DXGI_CREATE_FACTORY_DEBUG (0x1)
1940
1941HRESULT __stdcall CreateDXGIFactory2(UINT flags,REFIID iid,void **factory);
1942
1943HRESULT __stdcall DXGIGetDebugInterface1(UINT flags,REFIID iid,void **debug);
1944
1945/* Begin additional prototypes for all interfaces */
1946
1947
1948/* End additional prototypes */
1949
1950#ifdef __cplusplus
1951}
1952#endif
1953
1954#endif /* __dxgi1_3_h__ */
Note: See TracBrowser for help on using the repository browser.