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