source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dxgi1_2.h@ 1175

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

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

File size: 87.6 KB
RevLine 
[1166]1/*** Autogenerated by WIDL 6.4 from include/dxgi1_2.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_2_h__
17#define __dxgi1_2_h__
18
19/* Forward declarations */
20
21#ifndef __IDXGIOutputDuplication_FWD_DEFINED__
22#define __IDXGIOutputDuplication_FWD_DEFINED__
23typedef interface IDXGIOutputDuplication IDXGIOutputDuplication;
24#ifdef __cplusplus
25interface IDXGIOutputDuplication;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IDXGISurface2_FWD_DEFINED__
30#define __IDXGISurface2_FWD_DEFINED__
31typedef interface IDXGISurface2 IDXGISurface2;
32#ifdef __cplusplus
33interface IDXGISurface2;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IDXGIResource1_FWD_DEFINED__
38#define __IDXGIResource1_FWD_DEFINED__
39typedef interface IDXGIResource1 IDXGIResource1;
40#ifdef __cplusplus
41interface IDXGIResource1;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IDXGIDisplayControl_FWD_DEFINED__
46#define __IDXGIDisplayControl_FWD_DEFINED__
47typedef interface IDXGIDisplayControl IDXGIDisplayControl;
48#ifdef __cplusplus
49interface IDXGIDisplayControl;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IDXGIDevice2_FWD_DEFINED__
54#define __IDXGIDevice2_FWD_DEFINED__
55typedef interface IDXGIDevice2 IDXGIDevice2;
56#ifdef __cplusplus
57interface IDXGIDevice2;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IDXGISwapChain1_FWD_DEFINED__
62#define __IDXGISwapChain1_FWD_DEFINED__
63typedef interface IDXGISwapChain1 IDXGISwapChain1;
64#ifdef __cplusplus
65interface IDXGISwapChain1;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IDXGIFactory2_FWD_DEFINED__
70#define __IDXGIFactory2_FWD_DEFINED__
71typedef interface IDXGIFactory2 IDXGIFactory2;
72#ifdef __cplusplus
73interface IDXGIFactory2;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IDXGIAdapter2_FWD_DEFINED__
78#define __IDXGIAdapter2_FWD_DEFINED__
79typedef interface IDXGIAdapter2 IDXGIAdapter2;
80#ifdef __cplusplus
81interface IDXGIAdapter2;
82#endif /* __cplusplus */
83#endif
84
85#ifndef __IDXGIOutput1_FWD_DEFINED__
86#define __IDXGIOutput1_FWD_DEFINED__
87typedef interface IDXGIOutput1 IDXGIOutput1;
88#ifdef __cplusplus
89interface IDXGIOutput1;
90#endif /* __cplusplus */
91#endif
92
93/* Headers for imported files */
94
95#include <dxgi.h>
96
97#ifdef __cplusplus
98extern "C" {
99#endif
100
101#define DXGI_ENUM_MODES_STEREO (0x4)
102
103#define DXGI_ENUM_MODES_DISABLED_STEREO (0x8)
104
105#define DXGI_SHARED_RESOURCE_READ (0x80000000)
106
107#define DXGI_SHARED_RESOURCE_WRITE (0x1)
108
109typedef enum _DXGI_OFFER_RESOURCE_PRIORITY {
110 DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1,
111 DXGI_OFFER_RESOURCE_PRIORITY_NORMAL = 2,
112 DXGI_OFFER_RESOURCE_PRIORITY_HIGH = 3
113} DXGI_OFFER_RESOURCE_PRIORITY;
114typedef enum DXGI_ALPHA_MODE {
115 DXGI_ALPHA_MODE_UNSPECIFIED = 0,
116 DXGI_ALPHA_MODE_PREMULTIPLIED = 1,
117 DXGI_ALPHA_MODE_STRAIGHT = 2,
118 DXGI_ALPHA_MODE_IGNORE = 3,
119 DXGI_ALPHA_MODE_FORCE_DWORD = 0xffffffff
120} DXGI_ALPHA_MODE;
121typedef struct DXGI_OUTDUPL_MOVE_RECT {
122 POINT SourcePoint;
123 RECT DestinationRect;
124} DXGI_OUTDUPL_MOVE_RECT;
125typedef struct DXGI_OUTDUPL_DESC {
126 DXGI_MODE_DESC ModeDesc;
127 DXGI_MODE_ROTATION Rotation;
128 WINBOOL DesktopImageInSystemMemory;
129} DXGI_OUTDUPL_DESC;
130typedef struct DXGI_OUTDUPL_POINTER_POSITION {
131 POINT Position;
132 WINBOOL Visible;
133} DXGI_OUTDUPL_POINTER_POSITION;
134typedef enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE {
135 DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x1,
136 DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x2,
137 DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x4
138} DXGI_OUTDUPL_POINTER_SHAPE_TYPE;
139typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO {
140 UINT Type;
141 UINT Width;
142 UINT Height;
143 UINT Pitch;
144 POINT HotSpot;
145} DXGI_OUTDUPL_POINTER_SHAPE_INFO;
146typedef struct DXGI_OUTDUPL_FRAME_INFO {
147 LARGE_INTEGER LastPresentTime;
148 LARGE_INTEGER LastMouseUpdateTime;
149 UINT AccumulatedFrames;
150 WINBOOL RectsCoalesced;
151 WINBOOL ProtectedContentMaskedOut;
152 DXGI_OUTDUPL_POINTER_POSITION PointerPosition;
153 UINT TotalMetadataBufferSize;
154 UINT PointerShapeBufferSize;
155} DXGI_OUTDUPL_FRAME_INFO;
156typedef struct DXGI_MODE_DESC1 {
157 UINT Width;
158 UINT Height;
159 DXGI_RATIONAL RefreshRate;
160 DXGI_FORMAT Format;
161 DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
162 DXGI_MODE_SCALING Scaling;
163 WINBOOL Stereo;
164} DXGI_MODE_DESC1;
165/*****************************************************************************
166 * IDXGIOutputDuplication interface
167 */
168#ifndef __IDXGIOutputDuplication_INTERFACE_DEFINED__
169#define __IDXGIOutputDuplication_INTERFACE_DEFINED__
170
171DEFINE_GUID(IID_IDXGIOutputDuplication, 0x191cfac3, 0xa341, 0x470d, 0xb2,0x6e, 0xa8,0x64,0xf4,0x28,0x31,0x9c);
172#if defined(__cplusplus) && !defined(CINTERFACE)
173MIDL_INTERFACE("191cfac3-a341-470d-b26e-a864f428319c")
174IDXGIOutputDuplication : public IDXGIObject
175{
176 virtual void STDMETHODCALLTYPE GetDesc(
177 DXGI_OUTDUPL_DESC *desc) = 0;
178
179 virtual HRESULT STDMETHODCALLTYPE AcquireNextFrame(
180 UINT timeout_in_milliseconds,
181 DXGI_OUTDUPL_FRAME_INFO *frame_info,
182 IDXGIResource **desktop_resource) = 0;
183
184 virtual HRESULT STDMETHODCALLTYPE GetFrameDirtyRects(
185 UINT dirty_rects_buffer_size,
186 RECT *dirty_rects_buffer,
187 UINT *dirty_rects_buffer_size_required) = 0;
188
189 virtual HRESULT STDMETHODCALLTYPE GetFrameMoveRects(
190 UINT move_rects_buffer_size,
191 DXGI_OUTDUPL_MOVE_RECT *move_rect_buffer,
192 UINT *move_rects_buffer_size_required) = 0;
193
194 virtual HRESULT STDMETHODCALLTYPE GetFramePointerShape(
195 UINT pointer_shape_buffer_size,
196 void *pointer_shape_buffer,
197 UINT *pointer_shape_buffer_size_required,
198 DXGI_OUTDUPL_POINTER_SHAPE_INFO *pointer_shape_info) = 0;
199
200 virtual HRESULT STDMETHODCALLTYPE MapDesktopSurface(
201 DXGI_MAPPED_RECT *locked_rect) = 0;
202
203 virtual HRESULT STDMETHODCALLTYPE UnMapDesktopSurface(
204 ) = 0;
205
206 virtual HRESULT STDMETHODCALLTYPE ReleaseFrame(
207 ) = 0;
208
209};
210#ifdef __CRT_UUID_DECL
211__CRT_UUID_DECL(IDXGIOutputDuplication, 0x191cfac3, 0xa341, 0x470d, 0xb2,0x6e, 0xa8,0x64,0xf4,0x28,0x31,0x9c)
212#endif
213#else
214typedef struct IDXGIOutputDuplicationVtbl {
215 BEGIN_INTERFACE
216
217 /*** IUnknown methods ***/
218 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
219 IDXGIOutputDuplication *This,
220 REFIID riid,
221 void **ppvObject);
222
223 ULONG (STDMETHODCALLTYPE *AddRef)(
224 IDXGIOutputDuplication *This);
225
226 ULONG (STDMETHODCALLTYPE *Release)(
227 IDXGIOutputDuplication *This);
228
229 /*** IDXGIObject methods ***/
230 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
231 IDXGIOutputDuplication *This,
232 REFGUID guid,
233 UINT data_size,
234 const void *data);
235
236 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
237 IDXGIOutputDuplication *This,
238 REFGUID guid,
239 const IUnknown *object);
240
241 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
242 IDXGIOutputDuplication *This,
243 REFGUID guid,
244 UINT *data_size,
245 void *data);
246
247 HRESULT (STDMETHODCALLTYPE *GetParent)(
248 IDXGIOutputDuplication *This,
249 REFIID riid,
250 void **parent);
251
252 /*** IDXGIOutputDuplication methods ***/
253 void (STDMETHODCALLTYPE *GetDesc)(
254 IDXGIOutputDuplication *This,
255 DXGI_OUTDUPL_DESC *desc);
256
257 HRESULT (STDMETHODCALLTYPE *AcquireNextFrame)(
258 IDXGIOutputDuplication *This,
259 UINT timeout_in_milliseconds,
260 DXGI_OUTDUPL_FRAME_INFO *frame_info,
261 IDXGIResource **desktop_resource);
262
263 HRESULT (STDMETHODCALLTYPE *GetFrameDirtyRects)(
264 IDXGIOutputDuplication *This,
265 UINT dirty_rects_buffer_size,
266 RECT *dirty_rects_buffer,
267 UINT *dirty_rects_buffer_size_required);
268
269 HRESULT (STDMETHODCALLTYPE *GetFrameMoveRects)(
270 IDXGIOutputDuplication *This,
271 UINT move_rects_buffer_size,
272 DXGI_OUTDUPL_MOVE_RECT *move_rect_buffer,
273 UINT *move_rects_buffer_size_required);
274
275 HRESULT (STDMETHODCALLTYPE *GetFramePointerShape)(
276 IDXGIOutputDuplication *This,
277 UINT pointer_shape_buffer_size,
278 void *pointer_shape_buffer,
279 UINT *pointer_shape_buffer_size_required,
280 DXGI_OUTDUPL_POINTER_SHAPE_INFO *pointer_shape_info);
281
282 HRESULT (STDMETHODCALLTYPE *MapDesktopSurface)(
283 IDXGIOutputDuplication *This,
284 DXGI_MAPPED_RECT *locked_rect);
285
286 HRESULT (STDMETHODCALLTYPE *UnMapDesktopSurface)(
287 IDXGIOutputDuplication *This);
288
289 HRESULT (STDMETHODCALLTYPE *ReleaseFrame)(
290 IDXGIOutputDuplication *This);
291
292 END_INTERFACE
293} IDXGIOutputDuplicationVtbl;
294
295interface IDXGIOutputDuplication {
296 CONST_VTBL IDXGIOutputDuplicationVtbl* lpVtbl;
297};
298
299#ifdef COBJMACROS
300#ifndef WIDL_C_INLINE_WRAPPERS
301/*** IUnknown methods ***/
302#define IDXGIOutputDuplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
303#define IDXGIOutputDuplication_AddRef(This) (This)->lpVtbl->AddRef(This)
304#define IDXGIOutputDuplication_Release(This) (This)->lpVtbl->Release(This)
305/*** IDXGIObject methods ***/
306#define IDXGIOutputDuplication_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
307#define IDXGIOutputDuplication_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
308#define IDXGIOutputDuplication_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
309#define IDXGIOutputDuplication_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
310/*** IDXGIOutputDuplication methods ***/
311#define IDXGIOutputDuplication_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
312#define IDXGIOutputDuplication_AcquireNextFrame(This,timeout_in_milliseconds,frame_info,desktop_resource) (This)->lpVtbl->AcquireNextFrame(This,timeout_in_milliseconds,frame_info,desktop_resource)
313#define IDXGIOutputDuplication_GetFrameDirtyRects(This,dirty_rects_buffer_size,dirty_rects_buffer,dirty_rects_buffer_size_required) (This)->lpVtbl->GetFrameDirtyRects(This,dirty_rects_buffer_size,dirty_rects_buffer,dirty_rects_buffer_size_required)
314#define IDXGIOutputDuplication_GetFrameMoveRects(This,move_rects_buffer_size,move_rect_buffer,move_rects_buffer_size_required) (This)->lpVtbl->GetFrameMoveRects(This,move_rects_buffer_size,move_rect_buffer,move_rects_buffer_size_required)
315#define IDXGIOutputDuplication_GetFramePointerShape(This,pointer_shape_buffer_size,pointer_shape_buffer,pointer_shape_buffer_size_required,pointer_shape_info) (This)->lpVtbl->GetFramePointerShape(This,pointer_shape_buffer_size,pointer_shape_buffer,pointer_shape_buffer_size_required,pointer_shape_info)
316#define IDXGIOutputDuplication_MapDesktopSurface(This,locked_rect) (This)->lpVtbl->MapDesktopSurface(This,locked_rect)
317#define IDXGIOutputDuplication_UnMapDesktopSurface(This) (This)->lpVtbl->UnMapDesktopSurface(This)
318#define IDXGIOutputDuplication_ReleaseFrame(This) (This)->lpVtbl->ReleaseFrame(This)
319#else
320/*** IUnknown methods ***/
321static FORCEINLINE HRESULT IDXGIOutputDuplication_QueryInterface(IDXGIOutputDuplication* This,REFIID riid,void **ppvObject) {
322 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
323}
324static FORCEINLINE ULONG IDXGIOutputDuplication_AddRef(IDXGIOutputDuplication* This) {
325 return This->lpVtbl->AddRef(This);
326}
327static FORCEINLINE ULONG IDXGIOutputDuplication_Release(IDXGIOutputDuplication* This) {
328 return This->lpVtbl->Release(This);
329}
330/*** IDXGIObject methods ***/
331static FORCEINLINE HRESULT IDXGIOutputDuplication_SetPrivateData(IDXGIOutputDuplication* This,REFGUID guid,UINT data_size,const void *data) {
332 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
333}
334static FORCEINLINE HRESULT IDXGIOutputDuplication_SetPrivateDataInterface(IDXGIOutputDuplication* This,REFGUID guid,const IUnknown *object) {
335 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
336}
337static FORCEINLINE HRESULT IDXGIOutputDuplication_GetPrivateData(IDXGIOutputDuplication* This,REFGUID guid,UINT *data_size,void *data) {
338 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
339}
340static FORCEINLINE HRESULT IDXGIOutputDuplication_GetParent(IDXGIOutputDuplication* This,REFIID riid,void **parent) {
341 return This->lpVtbl->GetParent(This,riid,parent);
342}
343/*** IDXGIOutputDuplication methods ***/
344static FORCEINLINE void IDXGIOutputDuplication_GetDesc(IDXGIOutputDuplication* This,DXGI_OUTDUPL_DESC *desc) {
345 This->lpVtbl->GetDesc(This,desc);
346}
347static FORCEINLINE HRESULT IDXGIOutputDuplication_AcquireNextFrame(IDXGIOutputDuplication* This,UINT timeout_in_milliseconds,DXGI_OUTDUPL_FRAME_INFO *frame_info,IDXGIResource **desktop_resource) {
348 return This->lpVtbl->AcquireNextFrame(This,timeout_in_milliseconds,frame_info,desktop_resource);
349}
350static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFrameDirtyRects(IDXGIOutputDuplication* This,UINT dirty_rects_buffer_size,RECT *dirty_rects_buffer,UINT *dirty_rects_buffer_size_required) {
351 return This->lpVtbl->GetFrameDirtyRects(This,dirty_rects_buffer_size,dirty_rects_buffer,dirty_rects_buffer_size_required);
352}
353static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFrameMoveRects(IDXGIOutputDuplication* This,UINT move_rects_buffer_size,DXGI_OUTDUPL_MOVE_RECT *move_rect_buffer,UINT *move_rects_buffer_size_required) {
354 return This->lpVtbl->GetFrameMoveRects(This,move_rects_buffer_size,move_rect_buffer,move_rects_buffer_size_required);
355}
356static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFramePointerShape(IDXGIOutputDuplication* This,UINT pointer_shape_buffer_size,void *pointer_shape_buffer,UINT *pointer_shape_buffer_size_required,DXGI_OUTDUPL_POINTER_SHAPE_INFO *pointer_shape_info) {
357 return This->lpVtbl->GetFramePointerShape(This,pointer_shape_buffer_size,pointer_shape_buffer,pointer_shape_buffer_size_required,pointer_shape_info);
358}
359static FORCEINLINE HRESULT IDXGIOutputDuplication_MapDesktopSurface(IDXGIOutputDuplication* This,DXGI_MAPPED_RECT *locked_rect) {
360 return This->lpVtbl->MapDesktopSurface(This,locked_rect);
361}
362static FORCEINLINE HRESULT IDXGIOutputDuplication_UnMapDesktopSurface(IDXGIOutputDuplication* This) {
363 return This->lpVtbl->UnMapDesktopSurface(This);
364}
365static FORCEINLINE HRESULT IDXGIOutputDuplication_ReleaseFrame(IDXGIOutputDuplication* This) {
366 return This->lpVtbl->ReleaseFrame(This);
367}
368#endif
369#endif
370
371#endif
372
373
374#endif /* __IDXGIOutputDuplication_INTERFACE_DEFINED__ */
375
376/*****************************************************************************
377 * IDXGISurface2 interface
378 */
379#ifndef __IDXGISurface2_INTERFACE_DEFINED__
380#define __IDXGISurface2_INTERFACE_DEFINED__
381
382DEFINE_GUID(IID_IDXGISurface2, 0xaba496dd, 0xb617, 0x4cb8, 0xa8,0x66, 0xbc,0x44,0xd7,0xeb,0x1f,0xa2);
383#if defined(__cplusplus) && !defined(CINTERFACE)
384MIDL_INTERFACE("aba496dd-b617-4cb8-a866-bc44d7eb1fa2")
385IDXGISurface2 : public IDXGISurface1
386{
387 virtual HRESULT STDMETHODCALLTYPE GetResource(
388 REFIID iid,
389 void **parent_resource,
390 UINT *subresource_idx) = 0;
391
392};
393#ifdef __CRT_UUID_DECL
394__CRT_UUID_DECL(IDXGISurface2, 0xaba496dd, 0xb617, 0x4cb8, 0xa8,0x66, 0xbc,0x44,0xd7,0xeb,0x1f,0xa2)
395#endif
396#else
397typedef struct IDXGISurface2Vtbl {
398 BEGIN_INTERFACE
399
400 /*** IUnknown methods ***/
401 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
402 IDXGISurface2 *This,
403 REFIID riid,
404 void **ppvObject);
405
406 ULONG (STDMETHODCALLTYPE *AddRef)(
407 IDXGISurface2 *This);
408
409 ULONG (STDMETHODCALLTYPE *Release)(
410 IDXGISurface2 *This);
411
412 /*** IDXGIObject methods ***/
413 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
414 IDXGISurface2 *This,
415 REFGUID guid,
416 UINT data_size,
417 const void *data);
418
419 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
420 IDXGISurface2 *This,
421 REFGUID guid,
422 const IUnknown *object);
423
424 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
425 IDXGISurface2 *This,
426 REFGUID guid,
427 UINT *data_size,
428 void *data);
429
430 HRESULT (STDMETHODCALLTYPE *GetParent)(
431 IDXGISurface2 *This,
432 REFIID riid,
433 void **parent);
434
435 /*** IDXGIDeviceSubObject methods ***/
436 HRESULT (STDMETHODCALLTYPE *GetDevice)(
437 IDXGISurface2 *This,
438 REFIID riid,
439 void **device);
440
441 /*** IDXGISurface methods ***/
442 HRESULT (STDMETHODCALLTYPE *GetDesc)(
443 IDXGISurface2 *This,
444 DXGI_SURFACE_DESC *desc);
445
446 HRESULT (STDMETHODCALLTYPE *Map)(
447 IDXGISurface2 *This,
448 DXGI_MAPPED_RECT *mapped_rect,
449 UINT flags);
450
451 HRESULT (STDMETHODCALLTYPE *Unmap)(
452 IDXGISurface2 *This);
453
454 /*** IDXGISurface1 methods ***/
455 HRESULT (STDMETHODCALLTYPE *GetDC)(
456 IDXGISurface2 *This,
457 WINBOOL discard,
458 HDC *hdc);
459
460 HRESULT (STDMETHODCALLTYPE *ReleaseDC)(
461 IDXGISurface2 *This,
462 RECT *dirty_rect);
463
464 /*** IDXGISurface2 methods ***/
465 HRESULT (STDMETHODCALLTYPE *GetResource)(
466 IDXGISurface2 *This,
467 REFIID iid,
468 void **parent_resource,
469 UINT *subresource_idx);
470
471 END_INTERFACE
472} IDXGISurface2Vtbl;
473
474interface IDXGISurface2 {
475 CONST_VTBL IDXGISurface2Vtbl* lpVtbl;
476};
477
478#ifdef COBJMACROS
479#ifndef WIDL_C_INLINE_WRAPPERS
480/*** IUnknown methods ***/
481#define IDXGISurface2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
482#define IDXGISurface2_AddRef(This) (This)->lpVtbl->AddRef(This)
483#define IDXGISurface2_Release(This) (This)->lpVtbl->Release(This)
484/*** IDXGIObject methods ***/
485#define IDXGISurface2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
486#define IDXGISurface2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
487#define IDXGISurface2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
488#define IDXGISurface2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
489/*** IDXGIDeviceSubObject methods ***/
490#define IDXGISurface2_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
491/*** IDXGISurface methods ***/
492#define IDXGISurface2_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
493#define IDXGISurface2_Map(This,mapped_rect,flags) (This)->lpVtbl->Map(This,mapped_rect,flags)
494#define IDXGISurface2_Unmap(This) (This)->lpVtbl->Unmap(This)
495/*** IDXGISurface1 methods ***/
496#define IDXGISurface2_GetDC(This,discard,hdc) (This)->lpVtbl->GetDC(This,discard,hdc)
497#define IDXGISurface2_ReleaseDC(This,dirty_rect) (This)->lpVtbl->ReleaseDC(This,dirty_rect)
498/*** IDXGISurface2 methods ***/
499#define IDXGISurface2_GetResource(This,iid,parent_resource,subresource_idx) (This)->lpVtbl->GetResource(This,iid,parent_resource,subresource_idx)
500#else
501/*** IUnknown methods ***/
502static FORCEINLINE HRESULT IDXGISurface2_QueryInterface(IDXGISurface2* This,REFIID riid,void **ppvObject) {
503 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
504}
505static FORCEINLINE ULONG IDXGISurface2_AddRef(IDXGISurface2* This) {
506 return This->lpVtbl->AddRef(This);
507}
508static FORCEINLINE ULONG IDXGISurface2_Release(IDXGISurface2* This) {
509 return This->lpVtbl->Release(This);
510}
511/*** IDXGIObject methods ***/
512static FORCEINLINE HRESULT IDXGISurface2_SetPrivateData(IDXGISurface2* This,REFGUID guid,UINT data_size,const void *data) {
513 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
514}
515static FORCEINLINE HRESULT IDXGISurface2_SetPrivateDataInterface(IDXGISurface2* This,REFGUID guid,const IUnknown *object) {
516 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
517}
518static FORCEINLINE HRESULT IDXGISurface2_GetPrivateData(IDXGISurface2* This,REFGUID guid,UINT *data_size,void *data) {
519 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
520}
521static FORCEINLINE HRESULT IDXGISurface2_GetParent(IDXGISurface2* This,REFIID riid,void **parent) {
522 return This->lpVtbl->GetParent(This,riid,parent);
523}
524/*** IDXGIDeviceSubObject methods ***/
525static FORCEINLINE HRESULT IDXGISurface2_GetDevice(IDXGISurface2* This,REFIID riid,void **device) {
526 return This->lpVtbl->GetDevice(This,riid,device);
527}
528/*** IDXGISurface methods ***/
529static FORCEINLINE HRESULT IDXGISurface2_GetDesc(IDXGISurface2* This,DXGI_SURFACE_DESC *desc) {
530 return This->lpVtbl->GetDesc(This,desc);
531}
532static FORCEINLINE HRESULT IDXGISurface2_Map(IDXGISurface2* This,DXGI_MAPPED_RECT *mapped_rect,UINT flags) {
533 return This->lpVtbl->Map(This,mapped_rect,flags);
534}
535static FORCEINLINE HRESULT IDXGISurface2_Unmap(IDXGISurface2* This) {
536 return This->lpVtbl->Unmap(This);
537}
538/*** IDXGISurface1 methods ***/
539static FORCEINLINE HRESULT IDXGISurface2_GetDC(IDXGISurface2* This,WINBOOL discard,HDC *hdc) {
540 return This->lpVtbl->GetDC(This,discard,hdc);
541}
542static FORCEINLINE HRESULT IDXGISurface2_ReleaseDC(IDXGISurface2* This,RECT *dirty_rect) {
543 return This->lpVtbl->ReleaseDC(This,dirty_rect);
544}
545/*** IDXGISurface2 methods ***/
546static FORCEINLINE HRESULT IDXGISurface2_GetResource(IDXGISurface2* This,REFIID iid,void **parent_resource,UINT *subresource_idx) {
547 return This->lpVtbl->GetResource(This,iid,parent_resource,subresource_idx);
548}
549#endif
550#endif
551
552#endif
553
554
555#endif /* __IDXGISurface2_INTERFACE_DEFINED__ */
556
557/*****************************************************************************
558 * IDXGIResource1 interface
559 */
560#ifndef __IDXGIResource1_INTERFACE_DEFINED__
561#define __IDXGIResource1_INTERFACE_DEFINED__
562
563DEFINE_GUID(IID_IDXGIResource1, 0x30961379, 0x4609, 0x4a41, 0x99,0x8e, 0x54,0xfe,0x56,0x7e,0xe0,0xc1);
564#if defined(__cplusplus) && !defined(CINTERFACE)
565MIDL_INTERFACE("30961379-4609-4a41-998e-54fe567ee0c1")
566IDXGIResource1 : public IDXGIResource
567{
568 virtual HRESULT STDMETHODCALLTYPE CreateSubresourceSurface(
569 UINT index,
570 IDXGISurface2 **surface) = 0;
571
572 virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
573 const SECURITY_ATTRIBUTES *attributes,
574 DWORD access,
575 const WCHAR *name,
576 HANDLE *handle) = 0;
577
578};
579#ifdef __CRT_UUID_DECL
580__CRT_UUID_DECL(IDXGIResource1, 0x30961379, 0x4609, 0x4a41, 0x99,0x8e, 0x54,0xfe,0x56,0x7e,0xe0,0xc1)
581#endif
582#else
583typedef struct IDXGIResource1Vtbl {
584 BEGIN_INTERFACE
585
586 /*** IUnknown methods ***/
587 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
588 IDXGIResource1 *This,
589 REFIID riid,
590 void **ppvObject);
591
592 ULONG (STDMETHODCALLTYPE *AddRef)(
593 IDXGIResource1 *This);
594
595 ULONG (STDMETHODCALLTYPE *Release)(
596 IDXGIResource1 *This);
597
598 /*** IDXGIObject methods ***/
599 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
600 IDXGIResource1 *This,
601 REFGUID guid,
602 UINT data_size,
603 const void *data);
604
605 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
606 IDXGIResource1 *This,
607 REFGUID guid,
608 const IUnknown *object);
609
610 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
611 IDXGIResource1 *This,
612 REFGUID guid,
613 UINT *data_size,
614 void *data);
615
616 HRESULT (STDMETHODCALLTYPE *GetParent)(
617 IDXGIResource1 *This,
618 REFIID riid,
619 void **parent);
620
621 /*** IDXGIDeviceSubObject methods ***/
622 HRESULT (STDMETHODCALLTYPE *GetDevice)(
623 IDXGIResource1 *This,
624 REFIID riid,
625 void **device);
626
627 /*** IDXGIResource methods ***/
628 HRESULT (STDMETHODCALLTYPE *GetSharedHandle)(
629 IDXGIResource1 *This,
630 HANDLE *pSharedHandle);
631
632 HRESULT (STDMETHODCALLTYPE *GetUsage)(
633 IDXGIResource1 *This,
634 DXGI_USAGE *pUsage);
635
636 HRESULT (STDMETHODCALLTYPE *SetEvictionPriority)(
637 IDXGIResource1 *This,
638 UINT EvictionPriority);
639
640 HRESULT (STDMETHODCALLTYPE *GetEvictionPriority)(
641 IDXGIResource1 *This,
642 UINT *pEvictionPriority);
643
644 /*** IDXGIResource1 methods ***/
645 HRESULT (STDMETHODCALLTYPE *CreateSubresourceSurface)(
646 IDXGIResource1 *This,
647 UINT index,
648 IDXGISurface2 **surface);
649
650 HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
651 IDXGIResource1 *This,
652 const SECURITY_ATTRIBUTES *attributes,
653 DWORD access,
654 const WCHAR *name,
655 HANDLE *handle);
656
657 END_INTERFACE
658} IDXGIResource1Vtbl;
659
660interface IDXGIResource1 {
661 CONST_VTBL IDXGIResource1Vtbl* lpVtbl;
662};
663
664#ifdef COBJMACROS
665#ifndef WIDL_C_INLINE_WRAPPERS
666/*** IUnknown methods ***/
667#define IDXGIResource1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
668#define IDXGIResource1_AddRef(This) (This)->lpVtbl->AddRef(This)
669#define IDXGIResource1_Release(This) (This)->lpVtbl->Release(This)
670/*** IDXGIObject methods ***/
671#define IDXGIResource1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
672#define IDXGIResource1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
673#define IDXGIResource1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
674#define IDXGIResource1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
675/*** IDXGIDeviceSubObject methods ***/
676#define IDXGIResource1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
677/*** IDXGIResource methods ***/
678#define IDXGIResource1_GetSharedHandle(This,pSharedHandle) (This)->lpVtbl->GetSharedHandle(This,pSharedHandle)
679#define IDXGIResource1_GetUsage(This,pUsage) (This)->lpVtbl->GetUsage(This,pUsage)
680#define IDXGIResource1_SetEvictionPriority(This,EvictionPriority) (This)->lpVtbl->SetEvictionPriority(This,EvictionPriority)
681#define IDXGIResource1_GetEvictionPriority(This,pEvictionPriority) (This)->lpVtbl->GetEvictionPriority(This,pEvictionPriority)
682/*** IDXGIResource1 methods ***/
683#define IDXGIResource1_CreateSubresourceSurface(This,index,surface) (This)->lpVtbl->CreateSubresourceSurface(This,index,surface)
684#define IDXGIResource1_CreateSharedHandle(This,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,attributes,access,name,handle)
685#else
686/*** IUnknown methods ***/
687static FORCEINLINE HRESULT IDXGIResource1_QueryInterface(IDXGIResource1* This,REFIID riid,void **ppvObject) {
688 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
689}
690static FORCEINLINE ULONG IDXGIResource1_AddRef(IDXGIResource1* This) {
691 return This->lpVtbl->AddRef(This);
692}
693static FORCEINLINE ULONG IDXGIResource1_Release(IDXGIResource1* This) {
694 return This->lpVtbl->Release(This);
695}
696/*** IDXGIObject methods ***/
697static FORCEINLINE HRESULT IDXGIResource1_SetPrivateData(IDXGIResource1* This,REFGUID guid,UINT data_size,const void *data) {
698 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
699}
700static FORCEINLINE HRESULT IDXGIResource1_SetPrivateDataInterface(IDXGIResource1* This,REFGUID guid,const IUnknown *object) {
701 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
702}
703static FORCEINLINE HRESULT IDXGIResource1_GetPrivateData(IDXGIResource1* This,REFGUID guid,UINT *data_size,void *data) {
704 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
705}
706static FORCEINLINE HRESULT IDXGIResource1_GetParent(IDXGIResource1* This,REFIID riid,void **parent) {
707 return This->lpVtbl->GetParent(This,riid,parent);
708}
709/*** IDXGIDeviceSubObject methods ***/
710static FORCEINLINE HRESULT IDXGIResource1_GetDevice(IDXGIResource1* This,REFIID riid,void **device) {
711 return This->lpVtbl->GetDevice(This,riid,device);
712}
713/*** IDXGIResource methods ***/
714static FORCEINLINE HRESULT IDXGIResource1_GetSharedHandle(IDXGIResource1* This,HANDLE *pSharedHandle) {
715 return This->lpVtbl->GetSharedHandle(This,pSharedHandle);
716}
717static FORCEINLINE HRESULT IDXGIResource1_GetUsage(IDXGIResource1* This,DXGI_USAGE *pUsage) {
718 return This->lpVtbl->GetUsage(This,pUsage);
719}
720static FORCEINLINE HRESULT IDXGIResource1_SetEvictionPriority(IDXGIResource1* This,UINT EvictionPriority) {
721 return This->lpVtbl->SetEvictionPriority(This,EvictionPriority);
722}
723static FORCEINLINE HRESULT IDXGIResource1_GetEvictionPriority(IDXGIResource1* This,UINT *pEvictionPriority) {
724 return This->lpVtbl->GetEvictionPriority(This,pEvictionPriority);
725}
726/*** IDXGIResource1 methods ***/
727static FORCEINLINE HRESULT IDXGIResource1_CreateSubresourceSurface(IDXGIResource1* This,UINT index,IDXGISurface2 **surface) {
728 return This->lpVtbl->CreateSubresourceSurface(This,index,surface);
729}
730static FORCEINLINE HRESULT IDXGIResource1_CreateSharedHandle(IDXGIResource1* This,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
731 return This->lpVtbl->CreateSharedHandle(This,attributes,access,name,handle);
732}
733#endif
734#endif
735
736#endif
737
738
739#endif /* __IDXGIResource1_INTERFACE_DEFINED__ */
740
741/*****************************************************************************
742 * IDXGIDisplayControl interface
743 */
744#ifndef __IDXGIDisplayControl_INTERFACE_DEFINED__
745#define __IDXGIDisplayControl_INTERFACE_DEFINED__
746
747DEFINE_GUID(IID_IDXGIDisplayControl, 0xea9dbf1a, 0xc88e, 0x4486, 0x85,0x4a, 0x98,0xaa,0x01,0x38,0xf3,0x0c);
748#if defined(__cplusplus) && !defined(CINTERFACE)
749MIDL_INTERFACE("ea9dbf1a-c88e-4486-854a-98aa0138f30c")
750IDXGIDisplayControl : public IUnknown
751{
752 virtual WINBOOL STDMETHODCALLTYPE IsStereoEnabled(
753 ) = 0;
754
755 virtual void STDMETHODCALLTYPE SetStereoEnabled(
756 WINBOOL enabled) = 0;
757
758};
759#ifdef __CRT_UUID_DECL
760__CRT_UUID_DECL(IDXGIDisplayControl, 0xea9dbf1a, 0xc88e, 0x4486, 0x85,0x4a, 0x98,0xaa,0x01,0x38,0xf3,0x0c)
761#endif
762#else
763typedef struct IDXGIDisplayControlVtbl {
764 BEGIN_INTERFACE
765
766 /*** IUnknown methods ***/
767 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
768 IDXGIDisplayControl *This,
769 REFIID riid,
770 void **ppvObject);
771
772 ULONG (STDMETHODCALLTYPE *AddRef)(
773 IDXGIDisplayControl *This);
774
775 ULONG (STDMETHODCALLTYPE *Release)(
776 IDXGIDisplayControl *This);
777
778 /*** IDXGIDisplayControl methods ***/
779 WINBOOL (STDMETHODCALLTYPE *IsStereoEnabled)(
780 IDXGIDisplayControl *This);
781
782 void (STDMETHODCALLTYPE *SetStereoEnabled)(
783 IDXGIDisplayControl *This,
784 WINBOOL enabled);
785
786 END_INTERFACE
787} IDXGIDisplayControlVtbl;
788
789interface IDXGIDisplayControl {
790 CONST_VTBL IDXGIDisplayControlVtbl* lpVtbl;
791};
792
793#ifdef COBJMACROS
794#ifndef WIDL_C_INLINE_WRAPPERS
795/*** IUnknown methods ***/
796#define IDXGIDisplayControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
797#define IDXGIDisplayControl_AddRef(This) (This)->lpVtbl->AddRef(This)
798#define IDXGIDisplayControl_Release(This) (This)->lpVtbl->Release(This)
799/*** IDXGIDisplayControl methods ***/
800#define IDXGIDisplayControl_IsStereoEnabled(This) (This)->lpVtbl->IsStereoEnabled(This)
801#define IDXGIDisplayControl_SetStereoEnabled(This,enabled) (This)->lpVtbl->SetStereoEnabled(This,enabled)
802#else
803/*** IUnknown methods ***/
804static FORCEINLINE HRESULT IDXGIDisplayControl_QueryInterface(IDXGIDisplayControl* This,REFIID riid,void **ppvObject) {
805 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
806}
807static FORCEINLINE ULONG IDXGIDisplayControl_AddRef(IDXGIDisplayControl* This) {
808 return This->lpVtbl->AddRef(This);
809}
810static FORCEINLINE ULONG IDXGIDisplayControl_Release(IDXGIDisplayControl* This) {
811 return This->lpVtbl->Release(This);
812}
813/*** IDXGIDisplayControl methods ***/
814static FORCEINLINE WINBOOL IDXGIDisplayControl_IsStereoEnabled(IDXGIDisplayControl* This) {
815 return This->lpVtbl->IsStereoEnabled(This);
816}
817static FORCEINLINE void IDXGIDisplayControl_SetStereoEnabled(IDXGIDisplayControl* This,WINBOOL enabled) {
818 This->lpVtbl->SetStereoEnabled(This,enabled);
819}
820#endif
821#endif
822
823#endif
824
825
826#endif /* __IDXGIDisplayControl_INTERFACE_DEFINED__ */
827
828/*****************************************************************************
829 * IDXGIDevice2 interface
830 */
831#ifndef __IDXGIDevice2_INTERFACE_DEFINED__
832#define __IDXGIDevice2_INTERFACE_DEFINED__
833
834DEFINE_GUID(IID_IDXGIDevice2, 0x05008617, 0xfbfd, 0x4051, 0xa7,0x90, 0x14,0x48,0x84,0xb4,0xf6,0xa9);
835#if defined(__cplusplus) && !defined(CINTERFACE)
836MIDL_INTERFACE("05008617-fbfd-4051-a790-144884b4f6a9")
837IDXGIDevice2 : public IDXGIDevice1
838{
839 virtual HRESULT STDMETHODCALLTYPE OfferResources(
840 UINT NumResources,
841 IDXGIResource *const *ppResources,
842 DXGI_OFFER_RESOURCE_PRIORITY Priority) = 0;
843
844 virtual HRESULT STDMETHODCALLTYPE ReclaimResources(
845 UINT NumResources,
846 IDXGIResource *const *ppResources,
847 WINBOOL *pDiscarded) = 0;
848
849 virtual HRESULT STDMETHODCALLTYPE EnqueueSetEvent(
850 HANDLE hEvent) = 0;
851
852};
853#ifdef __CRT_UUID_DECL
854__CRT_UUID_DECL(IDXGIDevice2, 0x05008617, 0xfbfd, 0x4051, 0xa7,0x90, 0x14,0x48,0x84,0xb4,0xf6,0xa9)
855#endif
856#else
857typedef struct IDXGIDevice2Vtbl {
858 BEGIN_INTERFACE
859
860 /*** IUnknown methods ***/
861 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
862 IDXGIDevice2 *This,
863 REFIID riid,
864 void **ppvObject);
865
866 ULONG (STDMETHODCALLTYPE *AddRef)(
867 IDXGIDevice2 *This);
868
869 ULONG (STDMETHODCALLTYPE *Release)(
870 IDXGIDevice2 *This);
871
872 /*** IDXGIObject methods ***/
873 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
874 IDXGIDevice2 *This,
875 REFGUID guid,
876 UINT data_size,
877 const void *data);
878
879 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
880 IDXGIDevice2 *This,
881 REFGUID guid,
882 const IUnknown *object);
883
884 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
885 IDXGIDevice2 *This,
886 REFGUID guid,
887 UINT *data_size,
888 void *data);
889
890 HRESULT (STDMETHODCALLTYPE *GetParent)(
891 IDXGIDevice2 *This,
892 REFIID riid,
893 void **parent);
894
895 /*** IDXGIDevice methods ***/
896 HRESULT (STDMETHODCALLTYPE *GetAdapter)(
897 IDXGIDevice2 *This,
898 IDXGIAdapter **adapter);
899
900 HRESULT (STDMETHODCALLTYPE *CreateSurface)(
901 IDXGIDevice2 *This,
902 const DXGI_SURFACE_DESC *desc,
903 UINT surface_count,
904 DXGI_USAGE usage,
905 const DXGI_SHARED_RESOURCE *shared_resource,
906 IDXGISurface **surface);
907
908 HRESULT (STDMETHODCALLTYPE *QueryResourceResidency)(
909 IDXGIDevice2 *This,
910 IUnknown *const *resources,
911 DXGI_RESIDENCY *residency,
912 UINT resource_count);
913
914 HRESULT (STDMETHODCALLTYPE *SetGPUThreadPriority)(
915 IDXGIDevice2 *This,
916 INT priority);
917
918 HRESULT (STDMETHODCALLTYPE *GetGPUThreadPriority)(
919 IDXGIDevice2 *This,
920 INT *priority);
921
922 /*** IDXGIDevice1 methods ***/
923 HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
924 IDXGIDevice2 *This,
925 UINT MaxLatency);
926
927 HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
928 IDXGIDevice2 *This,
929 UINT *pMaxLatency);
930
931 /*** IDXGIDevice2 methods ***/
932 HRESULT (STDMETHODCALLTYPE *OfferResources)(
933 IDXGIDevice2 *This,
934 UINT NumResources,
935 IDXGIResource *const *ppResources,
936 DXGI_OFFER_RESOURCE_PRIORITY Priority);
937
938 HRESULT (STDMETHODCALLTYPE *ReclaimResources)(
939 IDXGIDevice2 *This,
940 UINT NumResources,
941 IDXGIResource *const *ppResources,
942 WINBOOL *pDiscarded);
943
944 HRESULT (STDMETHODCALLTYPE *EnqueueSetEvent)(
945 IDXGIDevice2 *This,
946 HANDLE hEvent);
947
948 END_INTERFACE
949} IDXGIDevice2Vtbl;
950
951interface IDXGIDevice2 {
952 CONST_VTBL IDXGIDevice2Vtbl* lpVtbl;
953};
954
955#ifdef COBJMACROS
956#ifndef WIDL_C_INLINE_WRAPPERS
957/*** IUnknown methods ***/
958#define IDXGIDevice2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
959#define IDXGIDevice2_AddRef(This) (This)->lpVtbl->AddRef(This)
960#define IDXGIDevice2_Release(This) (This)->lpVtbl->Release(This)
961/*** IDXGIObject methods ***/
962#define IDXGIDevice2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
963#define IDXGIDevice2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
964#define IDXGIDevice2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
965#define IDXGIDevice2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
966/*** IDXGIDevice methods ***/
967#define IDXGIDevice2_GetAdapter(This,adapter) (This)->lpVtbl->GetAdapter(This,adapter)
968#define IDXGIDevice2_CreateSurface(This,desc,surface_count,usage,shared_resource,surface) (This)->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface)
969#define IDXGIDevice2_QueryResourceResidency(This,resources,residency,resource_count) (This)->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count)
970#define IDXGIDevice2_SetGPUThreadPriority(This,priority) (This)->lpVtbl->SetGPUThreadPriority(This,priority)
971#define IDXGIDevice2_GetGPUThreadPriority(This,priority) (This)->lpVtbl->GetGPUThreadPriority(This,priority)
972/*** IDXGIDevice1 methods ***/
973#define IDXGIDevice2_SetMaximumFrameLatency(This,MaxLatency) (This)->lpVtbl->SetMaximumFrameLatency(This,MaxLatency)
974#define IDXGIDevice2_GetMaximumFrameLatency(This,pMaxLatency) (This)->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency)
975/*** IDXGIDevice2 methods ***/
976#define IDXGIDevice2_OfferResources(This,NumResources,ppResources,Priority) (This)->lpVtbl->OfferResources(This,NumResources,ppResources,Priority)
977#define IDXGIDevice2_ReclaimResources(This,NumResources,ppResources,pDiscarded) (This)->lpVtbl->ReclaimResources(This,NumResources,ppResources,pDiscarded)
978#define IDXGIDevice2_EnqueueSetEvent(This,hEvent) (This)->lpVtbl->EnqueueSetEvent(This,hEvent)
979#else
980/*** IUnknown methods ***/
981static FORCEINLINE HRESULT IDXGIDevice2_QueryInterface(IDXGIDevice2* This,REFIID riid,void **ppvObject) {
982 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
983}
984static FORCEINLINE ULONG IDXGIDevice2_AddRef(IDXGIDevice2* This) {
985 return This->lpVtbl->AddRef(This);
986}
987static FORCEINLINE ULONG IDXGIDevice2_Release(IDXGIDevice2* This) {
988 return This->lpVtbl->Release(This);
989}
990/*** IDXGIObject methods ***/
991static FORCEINLINE HRESULT IDXGIDevice2_SetPrivateData(IDXGIDevice2* This,REFGUID guid,UINT data_size,const void *data) {
992 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
993}
994static FORCEINLINE HRESULT IDXGIDevice2_SetPrivateDataInterface(IDXGIDevice2* This,REFGUID guid,const IUnknown *object) {
995 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
996}
997static FORCEINLINE HRESULT IDXGIDevice2_GetPrivateData(IDXGIDevice2* This,REFGUID guid,UINT *data_size,void *data) {
998 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
999}
1000static FORCEINLINE HRESULT IDXGIDevice2_GetParent(IDXGIDevice2* This,REFIID riid,void **parent) {
1001 return This->lpVtbl->GetParent(This,riid,parent);
1002}
1003/*** IDXGIDevice methods ***/
1004static FORCEINLINE HRESULT IDXGIDevice2_GetAdapter(IDXGIDevice2* This,IDXGIAdapter **adapter) {
1005 return This->lpVtbl->GetAdapter(This,adapter);
1006}
1007static FORCEINLINE HRESULT IDXGIDevice2_CreateSurface(IDXGIDevice2* This,const DXGI_SURFACE_DESC *desc,UINT surface_count,DXGI_USAGE usage,const DXGI_SHARED_RESOURCE *shared_resource,IDXGISurface **surface) {
1008 return This->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface);
1009}
1010static FORCEINLINE HRESULT IDXGIDevice2_QueryResourceResidency(IDXGIDevice2* This,IUnknown *const *resources,DXGI_RESIDENCY *residency,UINT resource_count) {
1011 return This->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count);
1012}
1013static FORCEINLINE HRESULT IDXGIDevice2_SetGPUThreadPriority(IDXGIDevice2* This,INT priority) {
1014 return This->lpVtbl->SetGPUThreadPriority(This,priority);
1015}
1016static FORCEINLINE HRESULT IDXGIDevice2_GetGPUThreadPriority(IDXGIDevice2* This,INT *priority) {
1017 return This->lpVtbl->GetGPUThreadPriority(This,priority);
1018}
1019/*** IDXGIDevice1 methods ***/
1020static FORCEINLINE HRESULT IDXGIDevice2_SetMaximumFrameLatency(IDXGIDevice2* This,UINT MaxLatency) {
1021 return This->lpVtbl->SetMaximumFrameLatency(This,MaxLatency);
1022}
1023static FORCEINLINE HRESULT IDXGIDevice2_GetMaximumFrameLatency(IDXGIDevice2* This,UINT *pMaxLatency) {
1024 return This->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency);
1025}
1026/*** IDXGIDevice2 methods ***/
1027static FORCEINLINE HRESULT IDXGIDevice2_OfferResources(IDXGIDevice2* This,UINT NumResources,IDXGIResource *const *ppResources,DXGI_OFFER_RESOURCE_PRIORITY Priority) {
1028 return This->lpVtbl->OfferResources(This,NumResources,ppResources,Priority);
1029}
1030static FORCEINLINE HRESULT IDXGIDevice2_ReclaimResources(IDXGIDevice2* This,UINT NumResources,IDXGIResource *const *ppResources,WINBOOL *pDiscarded) {
1031 return This->lpVtbl->ReclaimResources(This,NumResources,ppResources,pDiscarded);
1032}
1033static FORCEINLINE HRESULT IDXGIDevice2_EnqueueSetEvent(IDXGIDevice2* This,HANDLE hEvent) {
1034 return This->lpVtbl->EnqueueSetEvent(This,hEvent);
1035}
1036#endif
1037#endif
1038
1039#endif
1040
1041
1042#endif /* __IDXGIDevice2_INTERFACE_DEFINED__ */
1043
1044typedef enum DXGI_SCALING {
1045 DXGI_SCALING_STRETCH = 0,
1046 DXGI_SCALING_NONE = 1,
1047 DXGI_SCALING_ASPECT_RATIO_STRETCH = 2
1048} DXGI_SCALING;
1049typedef struct DXGI_SWAP_CHAIN_DESC1 {
1050 UINT Width;
1051 UINT Height;
1052 DXGI_FORMAT Format;
1053 WINBOOL Stereo;
1054 DXGI_SAMPLE_DESC SampleDesc;
1055 DXGI_USAGE BufferUsage;
1056 UINT BufferCount;
1057 DXGI_SCALING Scaling;
1058 DXGI_SWAP_EFFECT SwapEffect;
1059 DXGI_ALPHA_MODE AlphaMode;
1060 UINT Flags;
1061} DXGI_SWAP_CHAIN_DESC1;
1062typedef struct DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
1063 DXGI_RATIONAL RefreshRate;
1064 DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
1065 DXGI_MODE_SCALING Scaling;
1066 WINBOOL Windowed;
1067} DXGI_SWAP_CHAIN_FULLSCREEN_DESC;
1068typedef struct DXGI_PRESENT_PARAMETERS {
1069 UINT DirtyRectsCount;
1070 RECT *pDirtyRects;
1071 RECT *pScrollRect;
1072 POINT *pScrollOffset;
1073} DXGI_PRESENT_PARAMETERS;
1074/*****************************************************************************
1075 * IDXGISwapChain1 interface
1076 */
1077#ifndef __IDXGISwapChain1_INTERFACE_DEFINED__
1078#define __IDXGISwapChain1_INTERFACE_DEFINED__
1079
1080DEFINE_GUID(IID_IDXGISwapChain1, 0x790a45f7, 0x0d42, 0x4876, 0x98,0x3a, 0x0a,0x55,0xcf,0xe6,0xf4,0xaa);
1081#if defined(__cplusplus) && !defined(CINTERFACE)
1082MIDL_INTERFACE("790a45f7-0d42-4876-983a-0a55cfe6f4aa")
1083IDXGISwapChain1 : public IDXGISwapChain
1084{
1085 virtual HRESULT STDMETHODCALLTYPE GetDesc1(
1086 DXGI_SWAP_CHAIN_DESC1 *pDesc) = 0;
1087
1088 virtual HRESULT STDMETHODCALLTYPE GetFullscreenDesc(
1089 DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc) = 0;
1090
1091 virtual HRESULT STDMETHODCALLTYPE GetHwnd(
1092 HWND *pHwnd) = 0;
1093
1094 virtual HRESULT STDMETHODCALLTYPE GetCoreWindow(
1095 REFIID refiid,
1096 void **ppUnk) = 0;
1097
1098 virtual HRESULT STDMETHODCALLTYPE Present1(
1099 UINT SyncInterval,
1100 UINT PresentFlags,
1101 const DXGI_PRESENT_PARAMETERS *pPresentParameters) = 0;
1102
1103 virtual WINBOOL STDMETHODCALLTYPE IsTemporaryMonoSupported(
1104 ) = 0;
1105
1106 virtual HRESULT STDMETHODCALLTYPE GetRestrictToOutput(
1107 IDXGIOutput **ppRestrictToOutput) = 0;
1108
1109 virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor(
1110 const DXGI_RGBA *pColor) = 0;
1111
1112 virtual HRESULT STDMETHODCALLTYPE GetBackgroundColor(
1113 DXGI_RGBA *pColor) = 0;
1114
1115 virtual HRESULT STDMETHODCALLTYPE SetRotation(
1116 DXGI_MODE_ROTATION Rotation) = 0;
1117
1118 virtual HRESULT STDMETHODCALLTYPE GetRotation(
1119 DXGI_MODE_ROTATION *pRotation) = 0;
1120
1121};
1122#ifdef __CRT_UUID_DECL
1123__CRT_UUID_DECL(IDXGISwapChain1, 0x790a45f7, 0x0d42, 0x4876, 0x98,0x3a, 0x0a,0x55,0xcf,0xe6,0xf4,0xaa)
1124#endif
1125#else
1126typedef struct IDXGISwapChain1Vtbl {
1127 BEGIN_INTERFACE
1128
1129 /*** IUnknown methods ***/
1130 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1131 IDXGISwapChain1 *This,
1132 REFIID riid,
1133 void **ppvObject);
1134
1135 ULONG (STDMETHODCALLTYPE *AddRef)(
1136 IDXGISwapChain1 *This);
1137
1138 ULONG (STDMETHODCALLTYPE *Release)(
1139 IDXGISwapChain1 *This);
1140
1141 /*** IDXGIObject methods ***/
1142 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
1143 IDXGISwapChain1 *This,
1144 REFGUID guid,
1145 UINT data_size,
1146 const void *data);
1147
1148 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
1149 IDXGISwapChain1 *This,
1150 REFGUID guid,
1151 const IUnknown *object);
1152
1153 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
1154 IDXGISwapChain1 *This,
1155 REFGUID guid,
1156 UINT *data_size,
1157 void *data);
1158
1159 HRESULT (STDMETHODCALLTYPE *GetParent)(
1160 IDXGISwapChain1 *This,
1161 REFIID riid,
1162 void **parent);
1163
1164 /*** IDXGIDeviceSubObject methods ***/
1165 HRESULT (STDMETHODCALLTYPE *GetDevice)(
1166 IDXGISwapChain1 *This,
1167 REFIID riid,
1168 void **device);
1169
1170 /*** IDXGISwapChain methods ***/
1171 HRESULT (STDMETHODCALLTYPE *Present)(
1172 IDXGISwapChain1 *This,
1173 UINT sync_interval,
1174 UINT flags);
1175
1176 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
1177 IDXGISwapChain1 *This,
1178 UINT buffer_idx,
1179 REFIID riid,
1180 void **surface);
1181
1182 HRESULT (STDMETHODCALLTYPE *SetFullscreenState)(
1183 IDXGISwapChain1 *This,
1184 WINBOOL fullscreen,
1185 IDXGIOutput *target);
1186
1187 HRESULT (STDMETHODCALLTYPE *GetFullscreenState)(
1188 IDXGISwapChain1 *This,
1189 WINBOOL *fullscreen,
1190 IDXGIOutput **target);
1191
1192 HRESULT (STDMETHODCALLTYPE *GetDesc)(
1193 IDXGISwapChain1 *This,
1194 DXGI_SWAP_CHAIN_DESC *desc);
1195
1196 HRESULT (STDMETHODCALLTYPE *ResizeBuffers)(
1197 IDXGISwapChain1 *This,
1198 UINT buffer_count,
1199 UINT width,
1200 UINT height,
1201 DXGI_FORMAT format,
1202 UINT flags);
1203
1204 HRESULT (STDMETHODCALLTYPE *ResizeTarget)(
1205 IDXGISwapChain1 *This,
1206 const DXGI_MODE_DESC *target_mode_desc);
1207
1208 HRESULT (STDMETHODCALLTYPE *GetContainingOutput)(
1209 IDXGISwapChain1 *This,
1210 IDXGIOutput **output);
1211
1212 HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
1213 IDXGISwapChain1 *This,
1214 DXGI_FRAME_STATISTICS *stats);
1215
1216 HRESULT (STDMETHODCALLTYPE *GetLastPresentCount)(
1217 IDXGISwapChain1 *This,
1218 UINT *last_present_count);
1219
1220 /*** IDXGISwapChain1 methods ***/
1221 HRESULT (STDMETHODCALLTYPE *GetDesc1)(
1222 IDXGISwapChain1 *This,
1223 DXGI_SWAP_CHAIN_DESC1 *pDesc);
1224
1225 HRESULT (STDMETHODCALLTYPE *GetFullscreenDesc)(
1226 IDXGISwapChain1 *This,
1227 DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc);
1228
1229 HRESULT (STDMETHODCALLTYPE *GetHwnd)(
1230 IDXGISwapChain1 *This,
1231 HWND *pHwnd);
1232
1233 HRESULT (STDMETHODCALLTYPE *GetCoreWindow)(
1234 IDXGISwapChain1 *This,
1235 REFIID refiid,
1236 void **ppUnk);
1237
1238 HRESULT (STDMETHODCALLTYPE *Present1)(
1239 IDXGISwapChain1 *This,
1240 UINT SyncInterval,
1241 UINT PresentFlags,
1242 const DXGI_PRESENT_PARAMETERS *pPresentParameters);
1243
1244 WINBOOL (STDMETHODCALLTYPE *IsTemporaryMonoSupported)(
1245 IDXGISwapChain1 *This);
1246
1247 HRESULT (STDMETHODCALLTYPE *GetRestrictToOutput)(
1248 IDXGISwapChain1 *This,
1249 IDXGIOutput **ppRestrictToOutput);
1250
1251 HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
1252 IDXGISwapChain1 *This,
1253 const DXGI_RGBA *pColor);
1254
1255 HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)(
1256 IDXGISwapChain1 *This,
1257 DXGI_RGBA *pColor);
1258
1259 HRESULT (STDMETHODCALLTYPE *SetRotation)(
1260 IDXGISwapChain1 *This,
1261 DXGI_MODE_ROTATION Rotation);
1262
1263 HRESULT (STDMETHODCALLTYPE *GetRotation)(
1264 IDXGISwapChain1 *This,
1265 DXGI_MODE_ROTATION *pRotation);
1266
1267 END_INTERFACE
1268} IDXGISwapChain1Vtbl;
1269
1270interface IDXGISwapChain1 {
1271 CONST_VTBL IDXGISwapChain1Vtbl* lpVtbl;
1272};
1273
1274#ifdef COBJMACROS
1275#ifndef WIDL_C_INLINE_WRAPPERS
1276/*** IUnknown methods ***/
1277#define IDXGISwapChain1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1278#define IDXGISwapChain1_AddRef(This) (This)->lpVtbl->AddRef(This)
1279#define IDXGISwapChain1_Release(This) (This)->lpVtbl->Release(This)
1280/*** IDXGIObject methods ***/
1281#define IDXGISwapChain1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
1282#define IDXGISwapChain1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
1283#define IDXGISwapChain1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
1284#define IDXGISwapChain1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
1285/*** IDXGIDeviceSubObject methods ***/
1286#define IDXGISwapChain1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
1287/*** IDXGISwapChain methods ***/
1288#define IDXGISwapChain1_Present(This,sync_interval,flags) (This)->lpVtbl->Present(This,sync_interval,flags)
1289#define IDXGISwapChain1_GetBuffer(This,buffer_idx,riid,surface) (This)->lpVtbl->GetBuffer(This,buffer_idx,riid,surface)
1290#define IDXGISwapChain1_SetFullscreenState(This,fullscreen,target) (This)->lpVtbl->SetFullscreenState(This,fullscreen,target)
1291#define IDXGISwapChain1_GetFullscreenState(This,fullscreen,target) (This)->lpVtbl->GetFullscreenState(This,fullscreen,target)
1292#define IDXGISwapChain1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
1293#define IDXGISwapChain1_ResizeBuffers(This,buffer_count,width,height,format,flags) (This)->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags)
1294#define IDXGISwapChain1_ResizeTarget(This,target_mode_desc) (This)->lpVtbl->ResizeTarget(This,target_mode_desc)
1295#define IDXGISwapChain1_GetContainingOutput(This,output) (This)->lpVtbl->GetContainingOutput(This,output)
1296#define IDXGISwapChain1_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
1297#define IDXGISwapChain1_GetLastPresentCount(This,last_present_count) (This)->lpVtbl->GetLastPresentCount(This,last_present_count)
1298/*** IDXGISwapChain1 methods ***/
1299#define IDXGISwapChain1_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
1300#define IDXGISwapChain1_GetFullscreenDesc(This,pDesc) (This)->lpVtbl->GetFullscreenDesc(This,pDesc)
1301#define IDXGISwapChain1_GetHwnd(This,pHwnd) (This)->lpVtbl->GetHwnd(This,pHwnd)
1302#define IDXGISwapChain1_GetCoreWindow(This,refiid,ppUnk) (This)->lpVtbl->GetCoreWindow(This,refiid,ppUnk)
1303#define IDXGISwapChain1_Present1(This,SyncInterval,PresentFlags,pPresentParameters) (This)->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters)
1304#define IDXGISwapChain1_IsTemporaryMonoSupported(This) (This)->lpVtbl->IsTemporaryMonoSupported(This)
1305#define IDXGISwapChain1_GetRestrictToOutput(This,ppRestrictToOutput) (This)->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput)
1306#define IDXGISwapChain1_SetBackgroundColor(This,pColor) (This)->lpVtbl->SetBackgroundColor(This,pColor)
1307#define IDXGISwapChain1_GetBackgroundColor(This,pColor) (This)->lpVtbl->GetBackgroundColor(This,pColor)
1308#define IDXGISwapChain1_SetRotation(This,Rotation) (This)->lpVtbl->SetRotation(This,Rotation)
1309#define IDXGISwapChain1_GetRotation(This,pRotation) (This)->lpVtbl->GetRotation(This,pRotation)
1310#else
1311/*** IUnknown methods ***/
1312static FORCEINLINE HRESULT IDXGISwapChain1_QueryInterface(IDXGISwapChain1* This,REFIID riid,void **ppvObject) {
1313 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1314}
1315static FORCEINLINE ULONG IDXGISwapChain1_AddRef(IDXGISwapChain1* This) {
1316 return This->lpVtbl->AddRef(This);
1317}
1318static FORCEINLINE ULONG IDXGISwapChain1_Release(IDXGISwapChain1* This) {
1319 return This->lpVtbl->Release(This);
1320}
1321/*** IDXGIObject methods ***/
1322static FORCEINLINE HRESULT IDXGISwapChain1_SetPrivateData(IDXGISwapChain1* This,REFGUID guid,UINT data_size,const void *data) {
1323 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
1324}
1325static FORCEINLINE HRESULT IDXGISwapChain1_SetPrivateDataInterface(IDXGISwapChain1* This,REFGUID guid,const IUnknown *object) {
1326 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
1327}
1328static FORCEINLINE HRESULT IDXGISwapChain1_GetPrivateData(IDXGISwapChain1* This,REFGUID guid,UINT *data_size,void *data) {
1329 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
1330}
1331static FORCEINLINE HRESULT IDXGISwapChain1_GetParent(IDXGISwapChain1* This,REFIID riid,void **parent) {
1332 return This->lpVtbl->GetParent(This,riid,parent);
1333}
1334/*** IDXGIDeviceSubObject methods ***/
1335static FORCEINLINE HRESULT IDXGISwapChain1_GetDevice(IDXGISwapChain1* This,REFIID riid,void **device) {
1336 return This->lpVtbl->GetDevice(This,riid,device);
1337}
1338/*** IDXGISwapChain methods ***/
1339static FORCEINLINE HRESULT IDXGISwapChain1_Present(IDXGISwapChain1* This,UINT sync_interval,UINT flags) {
1340 return This->lpVtbl->Present(This,sync_interval,flags);
1341}
1342static FORCEINLINE HRESULT IDXGISwapChain1_GetBuffer(IDXGISwapChain1* This,UINT buffer_idx,REFIID riid,void **surface) {
1343 return This->lpVtbl->GetBuffer(This,buffer_idx,riid,surface);
1344}
1345static FORCEINLINE HRESULT IDXGISwapChain1_SetFullscreenState(IDXGISwapChain1* This,WINBOOL fullscreen,IDXGIOutput *target) {
1346 return This->lpVtbl->SetFullscreenState(This,fullscreen,target);
1347}
1348static FORCEINLINE HRESULT IDXGISwapChain1_GetFullscreenState(IDXGISwapChain1* This,WINBOOL *fullscreen,IDXGIOutput **target) {
1349 return This->lpVtbl->GetFullscreenState(This,fullscreen,target);
1350}
1351static FORCEINLINE HRESULT IDXGISwapChain1_GetDesc(IDXGISwapChain1* This,DXGI_SWAP_CHAIN_DESC *desc) {
1352 return This->lpVtbl->GetDesc(This,desc);
1353}
1354static FORCEINLINE HRESULT IDXGISwapChain1_ResizeBuffers(IDXGISwapChain1* This,UINT buffer_count,UINT width,UINT height,DXGI_FORMAT format,UINT flags) {
1355 return This->lpVtbl->ResizeBuffers(This,buffer_count,width,height,format,flags);
1356}
1357static FORCEINLINE HRESULT IDXGISwapChain1_ResizeTarget(IDXGISwapChain1* This,const DXGI_MODE_DESC *target_mode_desc) {
1358 return This->lpVtbl->ResizeTarget(This,target_mode_desc);
1359}
1360static FORCEINLINE HRESULT IDXGISwapChain1_GetContainingOutput(IDXGISwapChain1* This,IDXGIOutput **output) {
1361 return This->lpVtbl->GetContainingOutput(This,output);
1362}
1363static FORCEINLINE HRESULT IDXGISwapChain1_GetFrameStatistics(IDXGISwapChain1* This,DXGI_FRAME_STATISTICS *stats) {
1364 return This->lpVtbl->GetFrameStatistics(This,stats);
1365}
1366static FORCEINLINE HRESULT IDXGISwapChain1_GetLastPresentCount(IDXGISwapChain1* This,UINT *last_present_count) {
1367 return This->lpVtbl->GetLastPresentCount(This,last_present_count);
1368}
1369/*** IDXGISwapChain1 methods ***/
1370static FORCEINLINE HRESULT IDXGISwapChain1_GetDesc1(IDXGISwapChain1* This,DXGI_SWAP_CHAIN_DESC1 *pDesc) {
1371 return This->lpVtbl->GetDesc1(This,pDesc);
1372}
1373static FORCEINLINE HRESULT IDXGISwapChain1_GetFullscreenDesc(IDXGISwapChain1* This,DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc) {
1374 return This->lpVtbl->GetFullscreenDesc(This,pDesc);
1375}
1376static FORCEINLINE HRESULT IDXGISwapChain1_GetHwnd(IDXGISwapChain1* This,HWND *pHwnd) {
1377 return This->lpVtbl->GetHwnd(This,pHwnd);
1378}
1379static FORCEINLINE HRESULT IDXGISwapChain1_GetCoreWindow(IDXGISwapChain1* This,REFIID refiid,void **ppUnk) {
1380 return This->lpVtbl->GetCoreWindow(This,refiid,ppUnk);
1381}
1382static FORCEINLINE HRESULT IDXGISwapChain1_Present1(IDXGISwapChain1* This,UINT SyncInterval,UINT PresentFlags,const DXGI_PRESENT_PARAMETERS *pPresentParameters) {
1383 return This->lpVtbl->Present1(This,SyncInterval,PresentFlags,pPresentParameters);
1384}
1385static FORCEINLINE WINBOOL IDXGISwapChain1_IsTemporaryMonoSupported(IDXGISwapChain1* This) {
1386 return This->lpVtbl->IsTemporaryMonoSupported(This);
1387}
1388static FORCEINLINE HRESULT IDXGISwapChain1_GetRestrictToOutput(IDXGISwapChain1* This,IDXGIOutput **ppRestrictToOutput) {
1389 return This->lpVtbl->GetRestrictToOutput(This,ppRestrictToOutput);
1390}
1391static FORCEINLINE HRESULT IDXGISwapChain1_SetBackgroundColor(IDXGISwapChain1* This,const DXGI_RGBA *pColor) {
1392 return This->lpVtbl->SetBackgroundColor(This,pColor);
1393}
1394static FORCEINLINE HRESULT IDXGISwapChain1_GetBackgroundColor(IDXGISwapChain1* This,DXGI_RGBA *pColor) {
1395 return This->lpVtbl->GetBackgroundColor(This,pColor);
1396}
1397static FORCEINLINE HRESULT IDXGISwapChain1_SetRotation(IDXGISwapChain1* This,DXGI_MODE_ROTATION Rotation) {
1398 return This->lpVtbl->SetRotation(This,Rotation);
1399}
1400static FORCEINLINE HRESULT IDXGISwapChain1_GetRotation(IDXGISwapChain1* This,DXGI_MODE_ROTATION *pRotation) {
1401 return This->lpVtbl->GetRotation(This,pRotation);
1402}
1403#endif
1404#endif
1405
1406#endif
1407
1408
1409#endif /* __IDXGISwapChain1_INTERFACE_DEFINED__ */
1410
1411/*****************************************************************************
1412 * IDXGIFactory2 interface
1413 */
1414#ifndef __IDXGIFactory2_INTERFACE_DEFINED__
1415#define __IDXGIFactory2_INTERFACE_DEFINED__
1416
1417DEFINE_GUID(IID_IDXGIFactory2, 0x50c83a1c, 0xe072, 0x4c48, 0x87,0xb0, 0x36,0x30,0xfa,0x36,0xa6,0xd0);
1418#if defined(__cplusplus) && !defined(CINTERFACE)
1419MIDL_INTERFACE("50c83a1c-e072-4c48-87b0-3630fa36a6d0")
1420IDXGIFactory2 : public IDXGIFactory1
1421{
1422 virtual WINBOOL STDMETHODCALLTYPE IsWindowedStereoEnabled(
1423 ) = 0;
1424
1425 virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForHwnd(
1426 IUnknown *pDevice,
1427 HWND hWnd,
1428 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1429 const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
1430 IDXGIOutput *pRestrictToOutput,
1431 IDXGISwapChain1 **ppSwapChain) = 0;
1432
1433 virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForCoreWindow(
1434 IUnknown *pDevice,
1435 IUnknown *pWindow,
1436 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1437 IDXGIOutput *pRestrictToOutput,
1438 IDXGISwapChain1 **ppSwapChain) = 0;
1439
1440 virtual HRESULT STDMETHODCALLTYPE GetSharedResourceAdapterLuid(
1441 HANDLE hResource,
1442 LUID *pLuid) = 0;
1443
1444 virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusWindow(
1445 HWND WindowHandle,
1446 UINT wMsg,
1447 DWORD *pdwCookie) = 0;
1448
1449 virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusEvent(
1450 HANDLE hEvent,
1451 DWORD *pdwCookie) = 0;
1452
1453 virtual void STDMETHODCALLTYPE UnregisterStereoStatus(
1454 DWORD dwCookie) = 0;
1455
1456 virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusWindow(
1457 HWND WindowHandle,
1458 UINT wMsg,
1459 DWORD *pdwCookie) = 0;
1460
1461 virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusEvent(
1462 HANDLE hEvent,
1463 DWORD *pdwCookie) = 0;
1464
1465 virtual void STDMETHODCALLTYPE UnregisterOcclusionStatus(
1466 DWORD dwCookie) = 0;
1467
1468 virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForComposition(
1469 IUnknown *pDevice,
1470 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1471 IDXGIOutput *pRestrictToOutput,
1472 IDXGISwapChain1 **ppSwapChain) = 0;
1473
1474};
1475#ifdef __CRT_UUID_DECL
1476__CRT_UUID_DECL(IDXGIFactory2, 0x50c83a1c, 0xe072, 0x4c48, 0x87,0xb0, 0x36,0x30,0xfa,0x36,0xa6,0xd0)
1477#endif
1478#else
1479typedef struct IDXGIFactory2Vtbl {
1480 BEGIN_INTERFACE
1481
1482 /*** IUnknown methods ***/
1483 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1484 IDXGIFactory2 *This,
1485 REFIID riid,
1486 void **ppvObject);
1487
1488 ULONG (STDMETHODCALLTYPE *AddRef)(
1489 IDXGIFactory2 *This);
1490
1491 ULONG (STDMETHODCALLTYPE *Release)(
1492 IDXGIFactory2 *This);
1493
1494 /*** IDXGIObject methods ***/
1495 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
1496 IDXGIFactory2 *This,
1497 REFGUID guid,
1498 UINT data_size,
1499 const void *data);
1500
1501 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
1502 IDXGIFactory2 *This,
1503 REFGUID guid,
1504 const IUnknown *object);
1505
1506 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
1507 IDXGIFactory2 *This,
1508 REFGUID guid,
1509 UINT *data_size,
1510 void *data);
1511
1512 HRESULT (STDMETHODCALLTYPE *GetParent)(
1513 IDXGIFactory2 *This,
1514 REFIID riid,
1515 void **parent);
1516
1517 /*** IDXGIFactory methods ***/
1518 HRESULT (STDMETHODCALLTYPE *EnumAdapters)(
1519 IDXGIFactory2 *This,
1520 UINT adapter_idx,
1521 IDXGIAdapter **adapter);
1522
1523 HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)(
1524 IDXGIFactory2 *This,
1525 HWND window,
1526 UINT flags);
1527
1528 HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)(
1529 IDXGIFactory2 *This,
1530 HWND *window);
1531
1532 HRESULT (STDMETHODCALLTYPE *CreateSwapChain)(
1533 IDXGIFactory2 *This,
1534 IUnknown *device,
1535 DXGI_SWAP_CHAIN_DESC *desc,
1536 IDXGISwapChain **swapchain);
1537
1538 HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)(
1539 IDXGIFactory2 *This,
1540 HMODULE swrast,
1541 IDXGIAdapter **adapter);
1542
1543 /*** IDXGIFactory1 methods ***/
1544 HRESULT (STDMETHODCALLTYPE *EnumAdapters1)(
1545 IDXGIFactory2 *This,
1546 UINT Adapter,
1547 IDXGIAdapter1 **ppAdapter);
1548
1549 WINBOOL (STDMETHODCALLTYPE *IsCurrent)(
1550 IDXGIFactory2 *This);
1551
1552 /*** IDXGIFactory2 methods ***/
1553 WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)(
1554 IDXGIFactory2 *This);
1555
1556 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)(
1557 IDXGIFactory2 *This,
1558 IUnknown *pDevice,
1559 HWND hWnd,
1560 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1561 const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
1562 IDXGIOutput *pRestrictToOutput,
1563 IDXGISwapChain1 **ppSwapChain);
1564
1565 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)(
1566 IDXGIFactory2 *This,
1567 IUnknown *pDevice,
1568 IUnknown *pWindow,
1569 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1570 IDXGIOutput *pRestrictToOutput,
1571 IDXGISwapChain1 **ppSwapChain);
1572
1573 HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)(
1574 IDXGIFactory2 *This,
1575 HANDLE hResource,
1576 LUID *pLuid);
1577
1578 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)(
1579 IDXGIFactory2 *This,
1580 HWND WindowHandle,
1581 UINT wMsg,
1582 DWORD *pdwCookie);
1583
1584 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)(
1585 IDXGIFactory2 *This,
1586 HANDLE hEvent,
1587 DWORD *pdwCookie);
1588
1589 void (STDMETHODCALLTYPE *UnregisterStereoStatus)(
1590 IDXGIFactory2 *This,
1591 DWORD dwCookie);
1592
1593 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)(
1594 IDXGIFactory2 *This,
1595 HWND WindowHandle,
1596 UINT wMsg,
1597 DWORD *pdwCookie);
1598
1599 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)(
1600 IDXGIFactory2 *This,
1601 HANDLE hEvent,
1602 DWORD *pdwCookie);
1603
1604 void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)(
1605 IDXGIFactory2 *This,
1606 DWORD dwCookie);
1607
1608 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)(
1609 IDXGIFactory2 *This,
1610 IUnknown *pDevice,
1611 const DXGI_SWAP_CHAIN_DESC1 *pDesc,
1612 IDXGIOutput *pRestrictToOutput,
1613 IDXGISwapChain1 **ppSwapChain);
1614
1615 END_INTERFACE
1616} IDXGIFactory2Vtbl;
1617
1618interface IDXGIFactory2 {
1619 CONST_VTBL IDXGIFactory2Vtbl* lpVtbl;
1620};
1621
1622#ifdef COBJMACROS
1623#ifndef WIDL_C_INLINE_WRAPPERS
1624/*** IUnknown methods ***/
1625#define IDXGIFactory2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1626#define IDXGIFactory2_AddRef(This) (This)->lpVtbl->AddRef(This)
1627#define IDXGIFactory2_Release(This) (This)->lpVtbl->Release(This)
1628/*** IDXGIObject methods ***/
1629#define IDXGIFactory2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
1630#define IDXGIFactory2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
1631#define IDXGIFactory2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
1632#define IDXGIFactory2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
1633/*** IDXGIFactory methods ***/
1634#define IDXGIFactory2_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter)
1635#define IDXGIFactory2_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags)
1636#define IDXGIFactory2_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window)
1637#define IDXGIFactory2_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain)
1638#define IDXGIFactory2_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter)
1639/*** IDXGIFactory1 methods ***/
1640#define IDXGIFactory2_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter)
1641#define IDXGIFactory2_IsCurrent(This) (This)->lpVtbl->IsCurrent(This)
1642/*** IDXGIFactory2 methods ***/
1643#define IDXGIFactory2_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This)
1644#define IDXGIFactory2_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain)
1645#define IDXGIFactory2_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain)
1646#define IDXGIFactory2_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid)
1647#define IDXGIFactory2_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie)
1648#define IDXGIFactory2_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie)
1649#define IDXGIFactory2_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie)
1650#define IDXGIFactory2_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie)
1651#define IDXGIFactory2_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie)
1652#define IDXGIFactory2_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie)
1653#define IDXGIFactory2_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain)
1654#else
1655/*** IUnknown methods ***/
1656static FORCEINLINE HRESULT IDXGIFactory2_QueryInterface(IDXGIFactory2* This,REFIID riid,void **ppvObject) {
1657 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1658}
1659static FORCEINLINE ULONG IDXGIFactory2_AddRef(IDXGIFactory2* This) {
1660 return This->lpVtbl->AddRef(This);
1661}
1662static FORCEINLINE ULONG IDXGIFactory2_Release(IDXGIFactory2* This) {
1663 return This->lpVtbl->Release(This);
1664}
1665/*** IDXGIObject methods ***/
1666static FORCEINLINE HRESULT IDXGIFactory2_SetPrivateData(IDXGIFactory2* This,REFGUID guid,UINT data_size,const void *data) {
1667 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
1668}
1669static FORCEINLINE HRESULT IDXGIFactory2_SetPrivateDataInterface(IDXGIFactory2* This,REFGUID guid,const IUnknown *object) {
1670 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
1671}
1672static FORCEINLINE HRESULT IDXGIFactory2_GetPrivateData(IDXGIFactory2* This,REFGUID guid,UINT *data_size,void *data) {
1673 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
1674}
1675static FORCEINLINE HRESULT IDXGIFactory2_GetParent(IDXGIFactory2* This,REFIID riid,void **parent) {
1676 return This->lpVtbl->GetParent(This,riid,parent);
1677}
1678/*** IDXGIFactory methods ***/
1679static FORCEINLINE HRESULT IDXGIFactory2_EnumAdapters(IDXGIFactory2* This,UINT adapter_idx,IDXGIAdapter **adapter) {
1680 return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter);
1681}
1682static FORCEINLINE HRESULT IDXGIFactory2_MakeWindowAssociation(IDXGIFactory2* This,HWND window,UINT flags) {
1683 return This->lpVtbl->MakeWindowAssociation(This,window,flags);
1684}
1685static FORCEINLINE HRESULT IDXGIFactory2_GetWindowAssociation(IDXGIFactory2* This,HWND *window) {
1686 return This->lpVtbl->GetWindowAssociation(This,window);
1687}
1688static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChain(IDXGIFactory2* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) {
1689 return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain);
1690}
1691static FORCEINLINE HRESULT IDXGIFactory2_CreateSoftwareAdapter(IDXGIFactory2* This,HMODULE swrast,IDXGIAdapter **adapter) {
1692 return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter);
1693}
1694/*** IDXGIFactory1 methods ***/
1695static FORCEINLINE HRESULT IDXGIFactory2_EnumAdapters1(IDXGIFactory2* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) {
1696 return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter);
1697}
1698static FORCEINLINE WINBOOL IDXGIFactory2_IsCurrent(IDXGIFactory2* This) {
1699 return This->lpVtbl->IsCurrent(This);
1700}
1701/*** IDXGIFactory2 methods ***/
1702static FORCEINLINE WINBOOL IDXGIFactory2_IsWindowedStereoEnabled(IDXGIFactory2* This) {
1703 return This->lpVtbl->IsWindowedStereoEnabled(This);
1704}
1705static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForHwnd(IDXGIFactory2* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1706 return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain);
1707}
1708static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForCoreWindow(IDXGIFactory2* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1709 return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain);
1710}
1711static FORCEINLINE HRESULT IDXGIFactory2_GetSharedResourceAdapterLuid(IDXGIFactory2* This,HANDLE hResource,LUID *pLuid) {
1712 return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid);
1713}
1714static FORCEINLINE HRESULT IDXGIFactory2_RegisterStereoStatusWindow(IDXGIFactory2* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
1715 return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie);
1716}
1717static FORCEINLINE HRESULT IDXGIFactory2_RegisterStereoStatusEvent(IDXGIFactory2* This,HANDLE hEvent,DWORD *pdwCookie) {
1718 return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie);
1719}
1720static FORCEINLINE void IDXGIFactory2_UnregisterStereoStatus(IDXGIFactory2* This,DWORD dwCookie) {
1721 This->lpVtbl->UnregisterStereoStatus(This,dwCookie);
1722}
1723static FORCEINLINE HRESULT IDXGIFactory2_RegisterOcclusionStatusWindow(IDXGIFactory2* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) {
1724 return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie);
1725}
1726static FORCEINLINE HRESULT IDXGIFactory2_RegisterOcclusionStatusEvent(IDXGIFactory2* This,HANDLE hEvent,DWORD *pdwCookie) {
1727 return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie);
1728}
1729static FORCEINLINE void IDXGIFactory2_UnregisterOcclusionStatus(IDXGIFactory2* This,DWORD dwCookie) {
1730 This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie);
1731}
1732static FORCEINLINE HRESULT IDXGIFactory2_CreateSwapChainForComposition(IDXGIFactory2* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) {
1733 return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain);
1734}
1735#endif
1736#endif
1737
1738#endif
1739
1740
1741#endif /* __IDXGIFactory2_INTERFACE_DEFINED__ */
1742
1743typedef enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY {
1744 DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0,
1745 DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1,
1746 DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2,
1747 DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3,
1748 DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4
1749} DXGI_GRAPHICS_PREEMPTION_GRANULARITY;
1750typedef enum DXGI_COMPUTE_PREEMPTION_GRANULARITY {
1751 DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0,
1752 DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1,
1753 DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2,
1754 DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3,
1755 DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4
1756} DXGI_COMPUTE_PREEMPTION_GRANULARITY;
1757typedef struct DXGI_ADAPTER_DESC2 {
1758 WCHAR Description[128];
1759 UINT VendorId;
1760 UINT DeviceId;
1761 UINT SubSysId;
1762 UINT Revision;
1763 SIZE_T DedicatedVideoMemory;
1764 SIZE_T DedicatedSystemMemory;
1765 SIZE_T SharedSystemMemory;
1766 LUID AdapterLuid;
1767 UINT Flags;
1768 DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity;
1769 DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity;
1770} DXGI_ADAPTER_DESC2;
1771/*****************************************************************************
1772 * IDXGIAdapter2 interface
1773 */
1774#ifndef __IDXGIAdapter2_INTERFACE_DEFINED__
1775#define __IDXGIAdapter2_INTERFACE_DEFINED__
1776
1777DEFINE_GUID(IID_IDXGIAdapter2, 0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86,0x44, 0xe0,0x5f,0xf8,0xe5,0xac,0xb5);
1778#if defined(__cplusplus) && !defined(CINTERFACE)
1779MIDL_INTERFACE("0aa1ae0a-fa0e-4b84-8644-e05ff8e5acb5")
1780IDXGIAdapter2 : public IDXGIAdapter1
1781{
1782 virtual HRESULT STDMETHODCALLTYPE GetDesc2(
1783 DXGI_ADAPTER_DESC2 *pDesc) = 0;
1784
1785};
1786#ifdef __CRT_UUID_DECL
1787__CRT_UUID_DECL(IDXGIAdapter2, 0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86,0x44, 0xe0,0x5f,0xf8,0xe5,0xac,0xb5)
1788#endif
1789#else
1790typedef struct IDXGIAdapter2Vtbl {
1791 BEGIN_INTERFACE
1792
1793 /*** IUnknown methods ***/
1794 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1795 IDXGIAdapter2 *This,
1796 REFIID riid,
1797 void **ppvObject);
1798
1799 ULONG (STDMETHODCALLTYPE *AddRef)(
1800 IDXGIAdapter2 *This);
1801
1802 ULONG (STDMETHODCALLTYPE *Release)(
1803 IDXGIAdapter2 *This);
1804
1805 /*** IDXGIObject methods ***/
1806 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
1807 IDXGIAdapter2 *This,
1808 REFGUID guid,
1809 UINT data_size,
1810 const void *data);
1811
1812 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
1813 IDXGIAdapter2 *This,
1814 REFGUID guid,
1815 const IUnknown *object);
1816
1817 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
1818 IDXGIAdapter2 *This,
1819 REFGUID guid,
1820 UINT *data_size,
1821 void *data);
1822
1823 HRESULT (STDMETHODCALLTYPE *GetParent)(
1824 IDXGIAdapter2 *This,
1825 REFIID riid,
1826 void **parent);
1827
1828 /*** IDXGIAdapter methods ***/
1829 HRESULT (STDMETHODCALLTYPE *EnumOutputs)(
1830 IDXGIAdapter2 *This,
1831 UINT output_idx,
1832 IDXGIOutput **output);
1833
1834 HRESULT (STDMETHODCALLTYPE *GetDesc)(
1835 IDXGIAdapter2 *This,
1836 DXGI_ADAPTER_DESC *desc);
1837
1838 HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)(
1839 IDXGIAdapter2 *This,
1840 REFGUID guid,
1841 LARGE_INTEGER *umd_version);
1842
1843 /*** IDXGIAdapter1 methods ***/
1844 HRESULT (STDMETHODCALLTYPE *GetDesc1)(
1845 IDXGIAdapter2 *This,
1846 DXGI_ADAPTER_DESC1 *pDesc);
1847
1848 /*** IDXGIAdapter2 methods ***/
1849 HRESULT (STDMETHODCALLTYPE *GetDesc2)(
1850 IDXGIAdapter2 *This,
1851 DXGI_ADAPTER_DESC2 *pDesc);
1852
1853 END_INTERFACE
1854} IDXGIAdapter2Vtbl;
1855
1856interface IDXGIAdapter2 {
1857 CONST_VTBL IDXGIAdapter2Vtbl* lpVtbl;
1858};
1859
1860#ifdef COBJMACROS
1861#ifndef WIDL_C_INLINE_WRAPPERS
1862/*** IUnknown methods ***/
1863#define IDXGIAdapter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1864#define IDXGIAdapter2_AddRef(This) (This)->lpVtbl->AddRef(This)
1865#define IDXGIAdapter2_Release(This) (This)->lpVtbl->Release(This)
1866/*** IDXGIObject methods ***/
1867#define IDXGIAdapter2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
1868#define IDXGIAdapter2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
1869#define IDXGIAdapter2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
1870#define IDXGIAdapter2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
1871/*** IDXGIAdapter methods ***/
1872#define IDXGIAdapter2_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output)
1873#define IDXGIAdapter2_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
1874#define IDXGIAdapter2_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version)
1875/*** IDXGIAdapter1 methods ***/
1876#define IDXGIAdapter2_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc)
1877/*** IDXGIAdapter2 methods ***/
1878#define IDXGIAdapter2_GetDesc2(This,pDesc) (This)->lpVtbl->GetDesc2(This,pDesc)
1879#else
1880/*** IUnknown methods ***/
1881static FORCEINLINE HRESULT IDXGIAdapter2_QueryInterface(IDXGIAdapter2* This,REFIID riid,void **ppvObject) {
1882 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1883}
1884static FORCEINLINE ULONG IDXGIAdapter2_AddRef(IDXGIAdapter2* This) {
1885 return This->lpVtbl->AddRef(This);
1886}
1887static FORCEINLINE ULONG IDXGIAdapter2_Release(IDXGIAdapter2* This) {
1888 return This->lpVtbl->Release(This);
1889}
1890/*** IDXGIObject methods ***/
1891static FORCEINLINE HRESULT IDXGIAdapter2_SetPrivateData(IDXGIAdapter2* This,REFGUID guid,UINT data_size,const void *data) {
1892 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
1893}
1894static FORCEINLINE HRESULT IDXGIAdapter2_SetPrivateDataInterface(IDXGIAdapter2* This,REFGUID guid,const IUnknown *object) {
1895 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
1896}
1897static FORCEINLINE HRESULT IDXGIAdapter2_GetPrivateData(IDXGIAdapter2* This,REFGUID guid,UINT *data_size,void *data) {
1898 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
1899}
1900static FORCEINLINE HRESULT IDXGIAdapter2_GetParent(IDXGIAdapter2* This,REFIID riid,void **parent) {
1901 return This->lpVtbl->GetParent(This,riid,parent);
1902}
1903/*** IDXGIAdapter methods ***/
1904static FORCEINLINE HRESULT IDXGIAdapter2_EnumOutputs(IDXGIAdapter2* This,UINT output_idx,IDXGIOutput **output) {
1905 return This->lpVtbl->EnumOutputs(This,output_idx,output);
1906}
1907static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc(IDXGIAdapter2* This,DXGI_ADAPTER_DESC *desc) {
1908 return This->lpVtbl->GetDesc(This,desc);
1909}
1910static FORCEINLINE HRESULT IDXGIAdapter2_CheckInterfaceSupport(IDXGIAdapter2* This,REFGUID guid,LARGE_INTEGER *umd_version) {
1911 return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version);
1912}
1913/*** IDXGIAdapter1 methods ***/
1914static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc1(IDXGIAdapter2* This,DXGI_ADAPTER_DESC1 *pDesc) {
1915 return This->lpVtbl->GetDesc1(This,pDesc);
1916}
1917/*** IDXGIAdapter2 methods ***/
1918static FORCEINLINE HRESULT IDXGIAdapter2_GetDesc2(IDXGIAdapter2* This,DXGI_ADAPTER_DESC2 *pDesc) {
1919 return This->lpVtbl->GetDesc2(This,pDesc);
1920}
1921#endif
1922#endif
1923
1924#endif
1925
1926
1927#endif /* __IDXGIAdapter2_INTERFACE_DEFINED__ */
1928
1929/*****************************************************************************
1930 * IDXGIOutput1 interface
1931 */
1932#ifndef __IDXGIOutput1_INTERFACE_DEFINED__
1933#define __IDXGIOutput1_INTERFACE_DEFINED__
1934
1935DEFINE_GUID(IID_IDXGIOutput1, 0x00cddea8, 0x939b, 0x4b83, 0xa3,0x40, 0xa6,0x85,0x22,0x66,0x66,0xcc);
1936#if defined(__cplusplus) && !defined(CINTERFACE)
1937MIDL_INTERFACE("00cddea8-939b-4b83-a340-a685226666cc")
1938IDXGIOutput1 : public IDXGIOutput
1939{
1940 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeList1(
1941 DXGI_FORMAT enum_format,
1942 UINT flags,
1943 UINT *num_modes,
1944 DXGI_MODE_DESC1 *desc) = 0;
1945
1946 virtual HRESULT STDMETHODCALLTYPE FindClosestMatchingMode1(
1947 const DXGI_MODE_DESC1 *mode_to_match,
1948 DXGI_MODE_DESC1 *closest_match,
1949 IUnknown *concerned_device) = 0;
1950
1951 virtual HRESULT STDMETHODCALLTYPE GetDisplaySurfaceData1(
1952 IDXGIResource *destination) = 0;
1953
1954 virtual HRESULT STDMETHODCALLTYPE DuplicateOutput(
1955 IUnknown *device,
1956 IDXGIOutputDuplication **output_duplication) = 0;
1957
1958};
1959#ifdef __CRT_UUID_DECL
1960__CRT_UUID_DECL(IDXGIOutput1, 0x00cddea8, 0x939b, 0x4b83, 0xa3,0x40, 0xa6,0x85,0x22,0x66,0x66,0xcc)
1961#endif
1962#else
1963typedef struct IDXGIOutput1Vtbl {
1964 BEGIN_INTERFACE
1965
1966 /*** IUnknown methods ***/
1967 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1968 IDXGIOutput1 *This,
1969 REFIID riid,
1970 void **ppvObject);
1971
1972 ULONG (STDMETHODCALLTYPE *AddRef)(
1973 IDXGIOutput1 *This);
1974
1975 ULONG (STDMETHODCALLTYPE *Release)(
1976 IDXGIOutput1 *This);
1977
1978 /*** IDXGIObject methods ***/
1979 HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
1980 IDXGIOutput1 *This,
1981 REFGUID guid,
1982 UINT data_size,
1983 const void *data);
1984
1985 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
1986 IDXGIOutput1 *This,
1987 REFGUID guid,
1988 const IUnknown *object);
1989
1990 HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
1991 IDXGIOutput1 *This,
1992 REFGUID guid,
1993 UINT *data_size,
1994 void *data);
1995
1996 HRESULT (STDMETHODCALLTYPE *GetParent)(
1997 IDXGIOutput1 *This,
1998 REFIID riid,
1999 void **parent);
2000
2001 /*** IDXGIOutput methods ***/
2002 HRESULT (STDMETHODCALLTYPE *GetDesc)(
2003 IDXGIOutput1 *This,
2004 DXGI_OUTPUT_DESC *desc);
2005
2006 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
2007 IDXGIOutput1 *This,
2008 DXGI_FORMAT format,
2009 UINT flags,
2010 UINT *mode_count,
2011 DXGI_MODE_DESC *desc);
2012
2013 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
2014 IDXGIOutput1 *This,
2015 const DXGI_MODE_DESC *mode,
2016 DXGI_MODE_DESC *closest_match,
2017 IUnknown *device);
2018
2019 HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
2020 IDXGIOutput1 *This);
2021
2022 HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
2023 IDXGIOutput1 *This,
2024 IUnknown *device,
2025 WINBOOL exclusive);
2026
2027 void (STDMETHODCALLTYPE *ReleaseOwnership)(
2028 IDXGIOutput1 *This);
2029
2030 HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
2031 IDXGIOutput1 *This,
2032 DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
2033
2034 HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
2035 IDXGIOutput1 *This,
2036 const DXGI_GAMMA_CONTROL *gamma_control);
2037
2038 HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
2039 IDXGIOutput1 *This,
2040 DXGI_GAMMA_CONTROL *gamma_control);
2041
2042 HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
2043 IDXGIOutput1 *This,
2044 IDXGISurface *surface);
2045
2046 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
2047 IDXGIOutput1 *This,
2048 IDXGISurface *surface);
2049
2050 HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
2051 IDXGIOutput1 *This,
2052 DXGI_FRAME_STATISTICS *stats);
2053
2054 /*** IDXGIOutput1 methods ***/
2055 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
2056 IDXGIOutput1 *This,
2057 DXGI_FORMAT enum_format,
2058 UINT flags,
2059 UINT *num_modes,
2060 DXGI_MODE_DESC1 *desc);
2061
2062 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
2063 IDXGIOutput1 *This,
2064 const DXGI_MODE_DESC1 *mode_to_match,
2065 DXGI_MODE_DESC1 *closest_match,
2066 IUnknown *concerned_device);
2067
2068 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
2069 IDXGIOutput1 *This,
2070 IDXGIResource *destination);
2071
2072 HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
2073 IDXGIOutput1 *This,
2074 IUnknown *device,
2075 IDXGIOutputDuplication **output_duplication);
2076
2077 END_INTERFACE
2078} IDXGIOutput1Vtbl;
2079
2080interface IDXGIOutput1 {
2081 CONST_VTBL IDXGIOutput1Vtbl* lpVtbl;
2082};
2083
2084#ifdef COBJMACROS
2085#ifndef WIDL_C_INLINE_WRAPPERS
2086/*** IUnknown methods ***/
2087#define IDXGIOutput1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2088#define IDXGIOutput1_AddRef(This) (This)->lpVtbl->AddRef(This)
2089#define IDXGIOutput1_Release(This) (This)->lpVtbl->Release(This)
2090/*** IDXGIObject methods ***/
2091#define IDXGIOutput1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
2092#define IDXGIOutput1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
2093#define IDXGIOutput1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
2094#define IDXGIOutput1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
2095/*** IDXGIOutput methods ***/
2096#define IDXGIOutput1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
2097#define IDXGIOutput1_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
2098#define IDXGIOutput1_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
2099#define IDXGIOutput1_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
2100#define IDXGIOutput1_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
2101#define IDXGIOutput1_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
2102#define IDXGIOutput1_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
2103#define IDXGIOutput1_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
2104#define IDXGIOutput1_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
2105#define IDXGIOutput1_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
2106#define IDXGIOutput1_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
2107#define IDXGIOutput1_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
2108/*** IDXGIOutput1 methods ***/
2109#define IDXGIOutput1_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc)
2110#define IDXGIOutput1_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device)
2111#define IDXGIOutput1_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination)
2112#define IDXGIOutput1_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication)
2113#else
2114/*** IUnknown methods ***/
2115static FORCEINLINE HRESULT IDXGIOutput1_QueryInterface(IDXGIOutput1* This,REFIID riid,void **ppvObject) {
2116 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2117}
2118static FORCEINLINE ULONG IDXGIOutput1_AddRef(IDXGIOutput1* This) {
2119 return This->lpVtbl->AddRef(This);
2120}
2121static FORCEINLINE ULONG IDXGIOutput1_Release(IDXGIOutput1* This) {
2122 return This->lpVtbl->Release(This);
2123}
2124/*** IDXGIObject methods ***/
2125static FORCEINLINE HRESULT IDXGIOutput1_SetPrivateData(IDXGIOutput1* This,REFGUID guid,UINT data_size,const void *data) {
2126 return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
2127}
2128static FORCEINLINE HRESULT IDXGIOutput1_SetPrivateDataInterface(IDXGIOutput1* This,REFGUID guid,const IUnknown *object) {
2129 return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
2130}
2131static FORCEINLINE HRESULT IDXGIOutput1_GetPrivateData(IDXGIOutput1* This,REFGUID guid,UINT *data_size,void *data) {
2132 return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
2133}
2134static FORCEINLINE HRESULT IDXGIOutput1_GetParent(IDXGIOutput1* This,REFIID riid,void **parent) {
2135 return This->lpVtbl->GetParent(This,riid,parent);
2136}
2137/*** IDXGIOutput methods ***/
2138static FORCEINLINE HRESULT IDXGIOutput1_GetDesc(IDXGIOutput1* This,DXGI_OUTPUT_DESC *desc) {
2139 return This->lpVtbl->GetDesc(This,desc);
2140}
2141static FORCEINLINE HRESULT IDXGIOutput1_GetDisplayModeList(IDXGIOutput1* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
2142 return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
2143}
2144static FORCEINLINE HRESULT IDXGIOutput1_FindClosestMatchingMode(IDXGIOutput1* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
2145 return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
2146}
2147static FORCEINLINE HRESULT IDXGIOutput1_WaitForVBlank(IDXGIOutput1* This) {
2148 return This->lpVtbl->WaitForVBlank(This);
2149}
2150static FORCEINLINE HRESULT IDXGIOutput1_TakeOwnership(IDXGIOutput1* This,IUnknown *device,WINBOOL exclusive) {
2151 return This->lpVtbl->TakeOwnership(This,device,exclusive);
2152}
2153static FORCEINLINE void IDXGIOutput1_ReleaseOwnership(IDXGIOutput1* This) {
2154 This->lpVtbl->ReleaseOwnership(This);
2155}
2156static FORCEINLINE HRESULT IDXGIOutput1_GetGammaControlCapabilities(IDXGIOutput1* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
2157 return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
2158}
2159static FORCEINLINE HRESULT IDXGIOutput1_SetGammaControl(IDXGIOutput1* This,const DXGI_GAMMA_CONTROL *gamma_control) {
2160 return This->lpVtbl->SetGammaControl(This,gamma_control);
2161}
2162static FORCEINLINE HRESULT IDXGIOutput1_GetGammaControl(IDXGIOutput1* This,DXGI_GAMMA_CONTROL *gamma_control) {
2163 return This->lpVtbl->GetGammaControl(This,gamma_control);
2164}
2165static FORCEINLINE HRESULT IDXGIOutput1_SetDisplaySurface(IDXGIOutput1* This,IDXGISurface *surface) {
2166 return This->lpVtbl->SetDisplaySurface(This,surface);
2167}
2168static FORCEINLINE HRESULT IDXGIOutput1_GetDisplaySurfaceData(IDXGIOutput1* This,IDXGISurface *surface) {
2169 return This->lpVtbl->GetDisplaySurfaceData(This,surface);
2170}
2171static FORCEINLINE HRESULT IDXGIOutput1_GetFrameStatistics(IDXGIOutput1* This,DXGI_FRAME_STATISTICS *stats) {
2172 return This->lpVtbl->GetFrameStatistics(This,stats);
2173}
2174/*** IDXGIOutput1 methods ***/
2175static FORCEINLINE HRESULT IDXGIOutput1_GetDisplayModeList1(IDXGIOutput1* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) {
2176 return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc);
2177}
2178static FORCEINLINE HRESULT IDXGIOutput1_FindClosestMatchingMode1(IDXGIOutput1* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) {
2179 return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device);
2180}
2181static FORCEINLINE HRESULT IDXGIOutput1_GetDisplaySurfaceData1(IDXGIOutput1* This,IDXGIResource *destination) {
2182 return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
2183}
2184static FORCEINLINE HRESULT IDXGIOutput1_DuplicateOutput(IDXGIOutput1* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
2185 return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
2186}
2187#endif
2188#endif
2189
2190#endif
2191
2192
2193#endif /* __IDXGIOutput1_INTERFACE_DEFINED__ */
2194
2195/* Begin additional prototypes for all interfaces */
2196
2197
2198/* End additional prototypes */
2199
2200#ifdef __cplusplus
2201}
2202#endif
2203
2204#endif /* __dxgi1_2_h__ */
Note: See TracBrowser for help on using the repository browser.