1 2 3 /* this ALWAYS GENERATED file contains the definitions for the interfaces */ 4 5 6 /* File created by MIDL compiler version 8.01.0622 */ 7 /* @@MIDL_FILE_HEADING( ) */ 8 9 10 11 /* verify that the <rpcndr.h> version is high enough to compile this file*/ 12 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 13 #define __REQUIRED_RPCNDR_H_VERSION__ 500 14 #endif 15 16 /* verify that the <rpcsal.h> version is high enough to compile this file*/ 17 #ifndef __REQUIRED_RPCSAL_H_VERSION__ 18 #define __REQUIRED_RPCSAL_H_VERSION__ 100 19 #endif 20 21 #include "rpc.h" 22 #include "rpcndr.h" 23 24 #ifndef __RPCNDR_H_VERSION__ 25 #error this stub requires an updated version of <rpcndr.h> 26 #endif /* __RPCNDR_H_VERSION__ */ 27 28 #ifndef COM_NO_WINDOWS_H 29 #include "windows.h" 30 #include "ole2.h" 31 #endif /*COM_NO_WINDOWS_H*/ 32 33 #ifndef __dxgi1_5_h__ 34 #define __dxgi1_5_h__ 35 36 #if defined(_MSC_VER) && (_MSC_VER >= 1020) 37 #pragma once 38 #endif 39 40 /* Forward Declarations */ 41 42 #ifndef __IDXGIOutput5_FWD_DEFINED__ 43 #define __IDXGIOutput5_FWD_DEFINED__ 44 typedef interface IDXGIOutput5 IDXGIOutput5; 45 46 #endif /* __IDXGIOutput5_FWD_DEFINED__ */ 47 48 49 #ifndef __IDXGISwapChain4_FWD_DEFINED__ 50 #define __IDXGISwapChain4_FWD_DEFINED__ 51 typedef interface IDXGISwapChain4 IDXGISwapChain4; 52 53 #endif /* __IDXGISwapChain4_FWD_DEFINED__ */ 54 55 56 #ifndef __IDXGIDevice4_FWD_DEFINED__ 57 #define __IDXGIDevice4_FWD_DEFINED__ 58 typedef interface IDXGIDevice4 IDXGIDevice4; 59 60 #endif /* __IDXGIDevice4_FWD_DEFINED__ */ 61 62 63 #ifndef __IDXGIFactory5_FWD_DEFINED__ 64 #define __IDXGIFactory5_FWD_DEFINED__ 65 typedef interface IDXGIFactory5 IDXGIFactory5; 66 67 #endif /* __IDXGIFactory5_FWD_DEFINED__ */ 68 69 70 /* header files for imported files */ 71 #include "dxgi1_4.h" 72 73 #ifdef __cplusplus 74 extern "C"{ 75 #endif 76 77 78 /* interface __MIDL_itf_dxgi1_5_0000_0000 */ 79 /* [local] */ 80 81 #include <winapifamily.h> 82 // BK - pragma region App Family 83 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) 84 typedef 85 enum DXGI_OUTDUPL_FLAG 86 { 87 DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY = 1 88 } DXGI_OUTDUPL_FLAG; 89 90 91 92 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0000_v0_0_c_ifspec; 93 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0000_v0_0_s_ifspec; 94 95 #ifndef __IDXGIOutput5_INTERFACE_DEFINED__ 96 #define __IDXGIOutput5_INTERFACE_DEFINED__ 97 98 /* interface IDXGIOutput5 */ 99 /* [unique][local][uuid][object] */ 100 101 102 EXTERN_C const IID IID_IDXGIOutput5; 103 104 #if defined(__cplusplus) && !defined(CINTERFACE) 105 106 MIDL_INTERFACE("80A07424-AB52-42EB-833C-0C42FD282D98") 107 IDXGIOutput5 : public IDXGIOutput4 108 { 109 public: 110 virtual HRESULT STDMETHODCALLTYPE DuplicateOutput1( 111 /* [annotation][in] */ 112 _In_ IUnknown *pDevice, 113 /* [in] */ UINT Flags, 114 /* [annotation][in] */ 115 _In_ UINT SupportedFormatsCount, 116 /* [annotation][in] */ 117 _In_reads_(SupportedFormatsCount) const DXGI_FORMAT *pSupportedFormats, 118 /* [annotation][out] */ 119 _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication) = 0; 120 121 }; 122 123 124 #else /* C style interface */ 125 126 typedef struct IDXGIOutput5Vtbl 127 { 128 BEGIN_INTERFACE 129 130 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 131 IDXGIOutput5 * This, 132 /* [in] */ REFIID riid, 133 /* [annotation][iid_is][out] */ 134 _COM_Outptr_ void **ppvObject); 135 136 ULONG ( STDMETHODCALLTYPE *AddRef )( 137 IDXGIOutput5 * This); 138 139 ULONG ( STDMETHODCALLTYPE *Release )( 140 IDXGIOutput5 * This); 141 142 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 143 IDXGIOutput5 * This, 144 /* [annotation][in] */ 145 _In_ REFGUID Name, 146 /* [in] */ UINT DataSize, 147 /* [annotation][in] */ 148 _In_reads_bytes_(DataSize) const void *pData); 149 150 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 151 IDXGIOutput5 * This, 152 /* [annotation][in] */ 153 _In_ REFGUID Name, 154 /* [annotation][in] */ 155 _In_opt_ const IUnknown *pUnknown); 156 157 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 158 IDXGIOutput5 * This, 159 /* [annotation][in] */ 160 _In_ REFGUID Name, 161 /* [annotation][out][in] */ 162 _Inout_ UINT *pDataSize, 163 /* [annotation][out] */ 164 _Out_writes_bytes_(*pDataSize) void *pData); 165 166 HRESULT ( STDMETHODCALLTYPE *GetParent )( 167 IDXGIOutput5 * This, 168 /* [annotation][in] */ 169 _In_ REFIID riid, 170 /* [annotation][retval][out] */ 171 _COM_Outptr_ void **ppParent); 172 173 HRESULT ( STDMETHODCALLTYPE *GetDesc )( 174 IDXGIOutput5 * This, 175 /* [annotation][out] */ 176 _Out_ DXGI_OUTPUT_DESC *pDesc); 177 178 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList )( 179 IDXGIOutput5 * This, 180 /* [in] */ DXGI_FORMAT EnumFormat, 181 /* [in] */ UINT Flags, 182 /* [annotation][out][in] */ 183 _Inout_ UINT *pNumModes, 184 /* [annotation][out] */ 185 _Out_writes_to_opt_(*pNumModes,*pNumModes) DXGI_MODE_DESC *pDesc); 186 187 HRESULT ( STDMETHODCALLTYPE *FindClosestMatchingMode )( 188 IDXGIOutput5 * This, 189 /* [annotation][in] */ 190 _In_ const DXGI_MODE_DESC *pModeToMatch, 191 /* [annotation][out] */ 192 _Out_ DXGI_MODE_DESC *pClosestMatch, 193 /* [annotation][in] */ 194 _In_opt_ IUnknown *pConcernedDevice); 195 196 HRESULT ( STDMETHODCALLTYPE *WaitForVBlank )( 197 IDXGIOutput5 * This); 198 199 HRESULT ( STDMETHODCALLTYPE *TakeOwnership )( 200 IDXGIOutput5 * This, 201 /* [annotation][in] */ 202 _In_ IUnknown *pDevice, 203 BOOL Exclusive); 204 205 void ( STDMETHODCALLTYPE *ReleaseOwnership )( 206 IDXGIOutput5 * This); 207 208 HRESULT ( STDMETHODCALLTYPE *GetGammaControlCapabilities )( 209 IDXGIOutput5 * This, 210 /* [annotation][out] */ 211 _Out_ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps); 212 213 HRESULT ( STDMETHODCALLTYPE *SetGammaControl )( 214 IDXGIOutput5 * This, 215 /* [annotation][in] */ 216 _In_ const DXGI_GAMMA_CONTROL *pArray); 217 218 HRESULT ( STDMETHODCALLTYPE *GetGammaControl )( 219 IDXGIOutput5 * This, 220 /* [annotation][out] */ 221 _Out_ DXGI_GAMMA_CONTROL *pArray); 222 223 HRESULT ( STDMETHODCALLTYPE *SetDisplaySurface )( 224 IDXGIOutput5 * This, 225 /* [annotation][in] */ 226 _In_ IDXGISurface *pScanoutSurface); 227 228 HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData )( 229 IDXGIOutput5 * This, 230 /* [annotation][in] */ 231 _In_ IDXGISurface *pDestination); 232 233 HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( 234 IDXGIOutput5 * This, 235 /* [annotation][out] */ 236 _Out_ DXGI_FRAME_STATISTICS *pStats); 237 238 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList1 )( 239 IDXGIOutput5 * This, 240 /* [in] */ DXGI_FORMAT EnumFormat, 241 /* [in] */ UINT Flags, 242 /* [annotation][out][in] */ 243 _Inout_ UINT *pNumModes, 244 /* [annotation][out] */ 245 _Out_writes_to_opt_(*pNumModes,*pNumModes) DXGI_MODE_DESC1 *pDesc); 246 247 HRESULT ( STDMETHODCALLTYPE *FindClosestMatchingMode1 )( 248 IDXGIOutput5 * This, 249 /* [annotation][in] */ 250 _In_ const DXGI_MODE_DESC1 *pModeToMatch, 251 /* [annotation][out] */ 252 _Out_ DXGI_MODE_DESC1 *pClosestMatch, 253 /* [annotation][in] */ 254 _In_opt_ IUnknown *pConcernedDevice); 255 256 HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData1 )( 257 IDXGIOutput5 * This, 258 /* [annotation][in] */ 259 _In_ IDXGIResource *pDestination); 260 261 HRESULT ( STDMETHODCALLTYPE *DuplicateOutput )( 262 IDXGIOutput5 * This, 263 /* [annotation][in] */ 264 _In_ IUnknown *pDevice, 265 /* [annotation][out] */ 266 _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication); 267 268 BOOL ( STDMETHODCALLTYPE *SupportsOverlays )( 269 IDXGIOutput5 * This); 270 271 HRESULT ( STDMETHODCALLTYPE *CheckOverlaySupport )( 272 IDXGIOutput5 * This, 273 /* [annotation][in] */ 274 _In_ DXGI_FORMAT EnumFormat, 275 /* [annotation][out] */ 276 _In_ IUnknown *pConcernedDevice, 277 /* [annotation][out] */ 278 _Out_ UINT *pFlags); 279 280 HRESULT ( STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport )( 281 IDXGIOutput5 * This, 282 /* [annotation][in] */ 283 _In_ DXGI_FORMAT Format, 284 /* [annotation][in] */ 285 _In_ DXGI_COLOR_SPACE_TYPE ColorSpace, 286 /* [annotation][in] */ 287 _In_ IUnknown *pConcernedDevice, 288 /* [annotation][out] */ 289 _Out_ UINT *pFlags); 290 291 HRESULT ( STDMETHODCALLTYPE *DuplicateOutput1 )( 292 IDXGIOutput5 * This, 293 /* [annotation][in] */ 294 _In_ IUnknown *pDevice, 295 /* [in] */ UINT Flags, 296 /* [annotation][in] */ 297 _In_ UINT SupportedFormatsCount, 298 /* [annotation][in] */ 299 _In_reads_(SupportedFormatsCount) const DXGI_FORMAT *pSupportedFormats, 300 /* [annotation][out] */ 301 _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication); 302 303 END_INTERFACE 304 } IDXGIOutput5Vtbl; 305 306 interface IDXGIOutput5 307 { 308 CONST_VTBL struct IDXGIOutput5Vtbl *lpVtbl; 309 }; 310 311 312 313 #ifdef COBJMACROS 314 315 316 #define IDXGIOutput5_QueryInterface(This,riid,ppvObject) \ 317 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 318 319 #define IDXGIOutput5_AddRef(This) \ 320 ( (This)->lpVtbl -> AddRef(This) ) 321 322 #define IDXGIOutput5_Release(This) \ 323 ( (This)->lpVtbl -> Release(This) ) 324 325 326 #define IDXGIOutput5_SetPrivateData(This,Name,DataSize,pData) \ 327 ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 328 329 #define IDXGIOutput5_SetPrivateDataInterface(This,Name,pUnknown) \ 330 ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 331 332 #define IDXGIOutput5_GetPrivateData(This,Name,pDataSize,pData) \ 333 ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 334 335 #define IDXGIOutput5_GetParent(This,riid,ppParent) \ 336 ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 337 338 339 #define IDXGIOutput5_GetDesc(This,pDesc) \ 340 ( (This)->lpVtbl -> GetDesc(This,pDesc) ) 341 342 #define IDXGIOutput5_GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) \ 343 ( (This)->lpVtbl -> GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) ) 344 345 #define IDXGIOutput5_FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ 346 ( (This)->lpVtbl -> FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) 347 348 #define IDXGIOutput5_WaitForVBlank(This) \ 349 ( (This)->lpVtbl -> WaitForVBlank(This) ) 350 351 #define IDXGIOutput5_TakeOwnership(This,pDevice,Exclusive) \ 352 ( (This)->lpVtbl -> TakeOwnership(This,pDevice,Exclusive) ) 353 354 #define IDXGIOutput5_ReleaseOwnership(This) \ 355 ( (This)->lpVtbl -> ReleaseOwnership(This) ) 356 357 #define IDXGIOutput5_GetGammaControlCapabilities(This,pGammaCaps) \ 358 ( (This)->lpVtbl -> GetGammaControlCapabilities(This,pGammaCaps) ) 359 360 #define IDXGIOutput5_SetGammaControl(This,pArray) \ 361 ( (This)->lpVtbl -> SetGammaControl(This,pArray) ) 362 363 #define IDXGIOutput5_GetGammaControl(This,pArray) \ 364 ( (This)->lpVtbl -> GetGammaControl(This,pArray) ) 365 366 #define IDXGIOutput5_SetDisplaySurface(This,pScanoutSurface) \ 367 ( (This)->lpVtbl -> SetDisplaySurface(This,pScanoutSurface) ) 368 369 #define IDXGIOutput5_GetDisplaySurfaceData(This,pDestination) \ 370 ( (This)->lpVtbl -> GetDisplaySurfaceData(This,pDestination) ) 371 372 #define IDXGIOutput5_GetFrameStatistics(This,pStats) \ 373 ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) 374 375 376 #define IDXGIOutput5_GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) \ 377 ( (This)->lpVtbl -> GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) ) 378 379 #define IDXGIOutput5_FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ 380 ( (This)->lpVtbl -> FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) 381 382 #define IDXGIOutput5_GetDisplaySurfaceData1(This,pDestination) \ 383 ( (This)->lpVtbl -> GetDisplaySurfaceData1(This,pDestination) ) 384 385 #define IDXGIOutput5_DuplicateOutput(This,pDevice,ppOutputDuplication) \ 386 ( (This)->lpVtbl -> DuplicateOutput(This,pDevice,ppOutputDuplication) ) 387 388 389 #define IDXGIOutput5_SupportsOverlays(This) \ 390 ( (This)->lpVtbl -> SupportsOverlays(This) ) 391 392 393 #define IDXGIOutput5_CheckOverlaySupport(This,EnumFormat,pConcernedDevice,pFlags) \ 394 ( (This)->lpVtbl -> CheckOverlaySupport(This,EnumFormat,pConcernedDevice,pFlags) ) 395 396 397 #define IDXGIOutput5_CheckOverlayColorSpaceSupport(This,Format,ColorSpace,pConcernedDevice,pFlags) \ 398 ( (This)->lpVtbl -> CheckOverlayColorSpaceSupport(This,Format,ColorSpace,pConcernedDevice,pFlags) ) 399 400 401 #define IDXGIOutput5_DuplicateOutput1(This,pDevice,Flags,SupportedFormatsCount,pSupportedFormats,ppOutputDuplication) \ 402 ( (This)->lpVtbl -> DuplicateOutput1(This,pDevice,Flags,SupportedFormatsCount,pSupportedFormats,ppOutputDuplication) ) 403 404 #endif /* COBJMACROS */ 405 406 407 #endif /* C style interface */ 408 409 410 411 412 #endif /* __IDXGIOutput5_INTERFACE_DEFINED__ */ 413 414 415 /* interface __MIDL_itf_dxgi1_5_0000_0001 */ 416 /* [local] */ 417 418 typedef 419 enum DXGI_HDR_METADATA_TYPE 420 { 421 DXGI_HDR_METADATA_TYPE_NONE = 0, 422 DXGI_HDR_METADATA_TYPE_HDR10 = 1, 423 DXGI_HDR_METADATA_TYPE_HDR10PLUS = 2 424 } DXGI_HDR_METADATA_TYPE; 425 426 typedef struct DXGI_HDR_METADATA_HDR10 427 { 428 UINT16 RedPrimary[ 2 ]; 429 UINT16 GreenPrimary[ 2 ]; 430 UINT16 BluePrimary[ 2 ]; 431 UINT16 WhitePoint[ 2 ]; 432 UINT MaxMasteringLuminance; 433 UINT MinMasteringLuminance; 434 UINT16 MaxContentLightLevel; 435 UINT16 MaxFrameAverageLightLevel; 436 } DXGI_HDR_METADATA_HDR10; 437 438 typedef struct DXGI_HDR_METADATA_HDR10PLUS 439 { 440 BYTE Data[ 72 ]; 441 } DXGI_HDR_METADATA_HDR10PLUS; 442 443 444 445 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0001_v0_0_c_ifspec; 446 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0001_v0_0_s_ifspec; 447 448 #ifndef __IDXGISwapChain4_INTERFACE_DEFINED__ 449 #define __IDXGISwapChain4_INTERFACE_DEFINED__ 450 451 /* interface IDXGISwapChain4 */ 452 /* [unique][local][uuid][object] */ 453 454 455 EXTERN_C const IID IID_IDXGISwapChain4; 456 457 #if defined(__cplusplus) && !defined(CINTERFACE) 458 459 MIDL_INTERFACE("3D585D5A-BD4A-489E-B1F4-3DBCB6452FFB") 460 IDXGISwapChain4 : public IDXGISwapChain3 461 { 462 public: 463 virtual HRESULT STDMETHODCALLTYPE SetHDRMetaData( 464 /* [annotation][in] */ 465 _In_ DXGI_HDR_METADATA_TYPE Type, 466 /* [annotation][in] */ 467 _In_ UINT Size, 468 /* [annotation][size_is][in] */ 469 _In_reads_opt_(Size) void *pMetaData) = 0; 470 471 }; 472 473 474 #else /* C style interface */ 475 476 typedef struct IDXGISwapChain4Vtbl 477 { 478 BEGIN_INTERFACE 479 480 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 481 IDXGISwapChain4 * This, 482 /* [in] */ REFIID riid, 483 /* [annotation][iid_is][out] */ 484 _COM_Outptr_ void **ppvObject); 485 486 ULONG ( STDMETHODCALLTYPE *AddRef )( 487 IDXGISwapChain4 * This); 488 489 ULONG ( STDMETHODCALLTYPE *Release )( 490 IDXGISwapChain4 * This); 491 492 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 493 IDXGISwapChain4 * This, 494 /* [annotation][in] */ 495 _In_ REFGUID Name, 496 /* [in] */ UINT DataSize, 497 /* [annotation][in] */ 498 _In_reads_bytes_(DataSize) const void *pData); 499 500 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 501 IDXGISwapChain4 * This, 502 /* [annotation][in] */ 503 _In_ REFGUID Name, 504 /* [annotation][in] */ 505 _In_opt_ const IUnknown *pUnknown); 506 507 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 508 IDXGISwapChain4 * This, 509 /* [annotation][in] */ 510 _In_ REFGUID Name, 511 /* [annotation][out][in] */ 512 _Inout_ UINT *pDataSize, 513 /* [annotation][out] */ 514 _Out_writes_bytes_(*pDataSize) void *pData); 515 516 HRESULT ( STDMETHODCALLTYPE *GetParent )( 517 IDXGISwapChain4 * This, 518 /* [annotation][in] */ 519 _In_ REFIID riid, 520 /* [annotation][retval][out] */ 521 _COM_Outptr_ void **ppParent); 522 523 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 524 IDXGISwapChain4 * This, 525 /* [annotation][in] */ 526 _In_ REFIID riid, 527 /* [annotation][retval][out] */ 528 _COM_Outptr_ void **ppDevice); 529 530 HRESULT ( STDMETHODCALLTYPE *Present )( 531 IDXGISwapChain4 * This, 532 /* [in] */ UINT SyncInterval, 533 /* [in] */ UINT Flags); 534 535 HRESULT ( STDMETHODCALLTYPE *GetBuffer )( 536 IDXGISwapChain4 * This, 537 /* [in] */ UINT Buffer, 538 /* [annotation][in] */ 539 _In_ REFIID riid, 540 /* [annotation][out][in] */ 541 _COM_Outptr_ void **ppSurface); 542 543 HRESULT ( STDMETHODCALLTYPE *SetFullscreenState )( 544 IDXGISwapChain4 * This, 545 /* [in] */ BOOL Fullscreen, 546 /* [annotation][in] */ 547 _In_opt_ IDXGIOutput *pTarget); 548 549 HRESULT ( STDMETHODCALLTYPE *GetFullscreenState )( 550 IDXGISwapChain4 * This, 551 /* [annotation][out] */ 552 _Out_opt_ BOOL *pFullscreen, 553 /* [annotation][out] */ 554 _COM_Outptr_opt_result_maybenull_ IDXGIOutput **ppTarget); 555 556 HRESULT ( STDMETHODCALLTYPE *GetDesc )( 557 IDXGISwapChain4 * This, 558 /* [annotation][out] */ 559 _Out_ DXGI_SWAP_CHAIN_DESC *pDesc); 560 561 HRESULT ( STDMETHODCALLTYPE *ResizeBuffers )( 562 IDXGISwapChain4 * This, 563 /* [in] */ UINT BufferCount, 564 /* [in] */ UINT Width, 565 /* [in] */ UINT Height, 566 /* [in] */ DXGI_FORMAT NewFormat, 567 /* [in] */ UINT SwapChainFlags); 568 569 HRESULT ( STDMETHODCALLTYPE *ResizeTarget )( 570 IDXGISwapChain4 * This, 571 /* [annotation][in] */ 572 _In_ const DXGI_MODE_DESC *pNewTargetParameters); 573 574 HRESULT ( STDMETHODCALLTYPE *GetContainingOutput )( 575 IDXGISwapChain4 * This, 576 /* [annotation][out] */ 577 _COM_Outptr_ IDXGIOutput **ppOutput); 578 579 HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( 580 IDXGISwapChain4 * This, 581 /* [annotation][out] */ 582 _Out_ DXGI_FRAME_STATISTICS *pStats); 583 584 HRESULT ( STDMETHODCALLTYPE *GetLastPresentCount )( 585 IDXGISwapChain4 * This, 586 /* [annotation][out] */ 587 _Out_ UINT *pLastPresentCount); 588 589 HRESULT ( STDMETHODCALLTYPE *GetDesc1 )( 590 IDXGISwapChain4 * This, 591 /* [annotation][out] */ 592 _Out_ DXGI_SWAP_CHAIN_DESC1 *pDesc); 593 594 HRESULT ( STDMETHODCALLTYPE *GetFullscreenDesc )( 595 IDXGISwapChain4 * This, 596 /* [annotation][out] */ 597 _Out_ DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc); 598 599 HRESULT ( STDMETHODCALLTYPE *GetHwnd )( 600 IDXGISwapChain4 * This, 601 /* [annotation][out] */ 602 _Out_ HWND *pHwnd); 603 604 HRESULT ( STDMETHODCALLTYPE *GetCoreWindow )( 605 IDXGISwapChain4 * This, 606 /* [annotation][in] */ 607 _In_ REFIID refiid, 608 /* [annotation][out] */ 609 _COM_Outptr_ void **ppUnk); 610 611 HRESULT ( STDMETHODCALLTYPE *Present1 )( 612 IDXGISwapChain4 * This, 613 /* [in] */ UINT SyncInterval, 614 /* [in] */ UINT PresentFlags, 615 /* [annotation][in] */ 616 _In_ const DXGI_PRESENT_PARAMETERS *pPresentParameters); 617 618 BOOL ( STDMETHODCALLTYPE *IsTemporaryMonoSupported )( 619 IDXGISwapChain4 * This); 620 621 HRESULT ( STDMETHODCALLTYPE *GetRestrictToOutput )( 622 IDXGISwapChain4 * This, 623 /* [annotation][out] */ 624 _Out_ IDXGIOutput **ppRestrictToOutput); 625 626 HRESULT ( STDMETHODCALLTYPE *SetBackgroundColor )( 627 IDXGISwapChain4 * This, 628 /* [annotation][in] */ 629 _In_ const DXGI_RGBA *pColor); 630 631 HRESULT ( STDMETHODCALLTYPE *GetBackgroundColor )( 632 IDXGISwapChain4 * This, 633 /* [annotation][out] */ 634 _Out_ DXGI_RGBA *pColor); 635 636 HRESULT ( STDMETHODCALLTYPE *SetRotation )( 637 IDXGISwapChain4 * This, 638 /* [annotation][in] */ 639 _In_ DXGI_MODE_ROTATION Rotation); 640 641 HRESULT ( STDMETHODCALLTYPE *GetRotation )( 642 IDXGISwapChain4 * This, 643 /* [annotation][out] */ 644 _Out_ DXGI_MODE_ROTATION *pRotation); 645 646 HRESULT ( STDMETHODCALLTYPE *SetSourceSize )( 647 IDXGISwapChain4 * This, 648 UINT Width, 649 UINT Height); 650 651 HRESULT ( STDMETHODCALLTYPE *GetSourceSize )( 652 IDXGISwapChain4 * This, 653 /* [annotation][out] */ 654 _Out_ UINT *pWidth, 655 /* [annotation][out] */ 656 _Out_ UINT *pHeight); 657 658 HRESULT ( STDMETHODCALLTYPE *SetMaximumFrameLatency )( 659 IDXGISwapChain4 * This, 660 UINT MaxLatency); 661 662 HRESULT ( STDMETHODCALLTYPE *GetMaximumFrameLatency )( 663 IDXGISwapChain4 * This, 664 /* [annotation][out] */ 665 _Out_ UINT *pMaxLatency); 666 667 HANDLE ( STDMETHODCALLTYPE *GetFrameLatencyWaitableObject )( 668 IDXGISwapChain4 * This); 669 670 HRESULT ( STDMETHODCALLTYPE *SetMatrixTransform )( 671 IDXGISwapChain4 * This, 672 const DXGI_MATRIX_3X2_F *pMatrix); 673 674 HRESULT ( STDMETHODCALLTYPE *GetMatrixTransform )( 675 IDXGISwapChain4 * This, 676 /* [annotation][out] */ 677 _Out_ DXGI_MATRIX_3X2_F *pMatrix); 678 679 UINT ( STDMETHODCALLTYPE *GetCurrentBackBufferIndex )( 680 IDXGISwapChain4 * This); 681 682 HRESULT ( STDMETHODCALLTYPE *CheckColorSpaceSupport )( 683 IDXGISwapChain4 * This, 684 /* [annotation][in] */ 685 _In_ DXGI_COLOR_SPACE_TYPE ColorSpace, 686 /* [annotation][out] */ 687 _Out_ UINT *pColorSpaceSupport); 688 689 HRESULT ( STDMETHODCALLTYPE *SetColorSpace1 )( 690 IDXGISwapChain4 * This, 691 /* [annotation][in] */ 692 _In_ DXGI_COLOR_SPACE_TYPE ColorSpace); 693 694 HRESULT ( STDMETHODCALLTYPE *ResizeBuffers1 )( 695 IDXGISwapChain4 * This, 696 /* [annotation][in] */ 697 _In_ UINT BufferCount, 698 /* [annotation][in] */ 699 _In_ UINT Width, 700 /* [annotation][in] */ 701 _In_ UINT Height, 702 /* [annotation][in] */ 703 _In_ DXGI_FORMAT Format, 704 /* [annotation][in] */ 705 _In_ UINT SwapChainFlags, 706 /* [annotation][in] */ 707 _In_reads_(BufferCount) const UINT *pCreationNodeMask, 708 /* [annotation][in] */ 709 _In_reads_(BufferCount) IUnknown *const *ppPresentQueue); 710 711 HRESULT ( STDMETHODCALLTYPE *SetHDRMetaData )( 712 IDXGISwapChain4 * This, 713 /* [annotation][in] */ 714 _In_ DXGI_HDR_METADATA_TYPE Type, 715 /* [annotation][in] */ 716 _In_ UINT Size, 717 /* [annotation][size_is][in] */ 718 _In_reads_opt_(Size) void *pMetaData); 719 720 END_INTERFACE 721 } IDXGISwapChain4Vtbl; 722 723 interface IDXGISwapChain4 724 { 725 CONST_VTBL struct IDXGISwapChain4Vtbl *lpVtbl; 726 }; 727 728 729 730 #ifdef COBJMACROS 731 732 733 #define IDXGISwapChain4_QueryInterface(This,riid,ppvObject) \ 734 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 735 736 #define IDXGISwapChain4_AddRef(This) \ 737 ( (This)->lpVtbl -> AddRef(This) ) 738 739 #define IDXGISwapChain4_Release(This) \ 740 ( (This)->lpVtbl -> Release(This) ) 741 742 743 #define IDXGISwapChain4_SetPrivateData(This,Name,DataSize,pData) \ 744 ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 745 746 #define IDXGISwapChain4_SetPrivateDataInterface(This,Name,pUnknown) \ 747 ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 748 749 #define IDXGISwapChain4_GetPrivateData(This,Name,pDataSize,pData) \ 750 ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 751 752 #define IDXGISwapChain4_GetParent(This,riid,ppParent) \ 753 ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 754 755 756 #define IDXGISwapChain4_GetDevice(This,riid,ppDevice) \ 757 ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) 758 759 760 #define IDXGISwapChain4_Present(This,SyncInterval,Flags) \ 761 ( (This)->lpVtbl -> Present(This,SyncInterval,Flags) ) 762 763 #define IDXGISwapChain4_GetBuffer(This,Buffer,riid,ppSurface) \ 764 ( (This)->lpVtbl -> GetBuffer(This,Buffer,riid,ppSurface) ) 765 766 #define IDXGISwapChain4_SetFullscreenState(This,Fullscreen,pTarget) \ 767 ( (This)->lpVtbl -> SetFullscreenState(This,Fullscreen,pTarget) ) 768 769 #define IDXGISwapChain4_GetFullscreenState(This,pFullscreen,ppTarget) \ 770 ( (This)->lpVtbl -> GetFullscreenState(This,pFullscreen,ppTarget) ) 771 772 #define IDXGISwapChain4_GetDesc(This,pDesc) \ 773 ( (This)->lpVtbl -> GetDesc(This,pDesc) ) 774 775 #define IDXGISwapChain4_ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) \ 776 ( (This)->lpVtbl -> ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) ) 777 778 #define IDXGISwapChain4_ResizeTarget(This,pNewTargetParameters) \ 779 ( (This)->lpVtbl -> ResizeTarget(This,pNewTargetParameters) ) 780 781 #define IDXGISwapChain4_GetContainingOutput(This,ppOutput) \ 782 ( (This)->lpVtbl -> GetContainingOutput(This,ppOutput) ) 783 784 #define IDXGISwapChain4_GetFrameStatistics(This,pStats) \ 785 ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) 786 787 #define IDXGISwapChain4_GetLastPresentCount(This,pLastPresentCount) \ 788 ( (This)->lpVtbl -> GetLastPresentCount(This,pLastPresentCount) ) 789 790 791 #define IDXGISwapChain4_GetDesc1(This,pDesc) \ 792 ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) 793 794 #define IDXGISwapChain4_GetFullscreenDesc(This,pDesc) \ 795 ( (This)->lpVtbl -> GetFullscreenDesc(This,pDesc) ) 796 797 #define IDXGISwapChain4_GetHwnd(This,pHwnd) \ 798 ( (This)->lpVtbl -> GetHwnd(This,pHwnd) ) 799 800 #define IDXGISwapChain4_GetCoreWindow(This,refiid,ppUnk) \ 801 ( (This)->lpVtbl -> GetCoreWindow(This,refiid,ppUnk) ) 802 803 #define IDXGISwapChain4_Present1(This,SyncInterval,PresentFlags,pPresentParameters) \ 804 ( (This)->lpVtbl -> Present1(This,SyncInterval,PresentFlags,pPresentParameters) ) 805 806 #define IDXGISwapChain4_IsTemporaryMonoSupported(This) \ 807 ( (This)->lpVtbl -> IsTemporaryMonoSupported(This) ) 808 809 #define IDXGISwapChain4_GetRestrictToOutput(This,ppRestrictToOutput) \ 810 ( (This)->lpVtbl -> GetRestrictToOutput(This,ppRestrictToOutput) ) 811 812 #define IDXGISwapChain4_SetBackgroundColor(This,pColor) \ 813 ( (This)->lpVtbl -> SetBackgroundColor(This,pColor) ) 814 815 #define IDXGISwapChain4_GetBackgroundColor(This,pColor) \ 816 ( (This)->lpVtbl -> GetBackgroundColor(This,pColor) ) 817 818 #define IDXGISwapChain4_SetRotation(This,Rotation) \ 819 ( (This)->lpVtbl -> SetRotation(This,Rotation) ) 820 821 #define IDXGISwapChain4_GetRotation(This,pRotation) \ 822 ( (This)->lpVtbl -> GetRotation(This,pRotation) ) 823 824 825 #define IDXGISwapChain4_SetSourceSize(This,Width,Height) \ 826 ( (This)->lpVtbl -> SetSourceSize(This,Width,Height) ) 827 828 #define IDXGISwapChain4_GetSourceSize(This,pWidth,pHeight) \ 829 ( (This)->lpVtbl -> GetSourceSize(This,pWidth,pHeight) ) 830 831 #define IDXGISwapChain4_SetMaximumFrameLatency(This,MaxLatency) \ 832 ( (This)->lpVtbl -> SetMaximumFrameLatency(This,MaxLatency) ) 833 834 #define IDXGISwapChain4_GetMaximumFrameLatency(This,pMaxLatency) \ 835 ( (This)->lpVtbl -> GetMaximumFrameLatency(This,pMaxLatency) ) 836 837 #define IDXGISwapChain4_GetFrameLatencyWaitableObject(This) \ 838 ( (This)->lpVtbl -> GetFrameLatencyWaitableObject(This) ) 839 840 #define IDXGISwapChain4_SetMatrixTransform(This,pMatrix) \ 841 ( (This)->lpVtbl -> SetMatrixTransform(This,pMatrix) ) 842 843 #define IDXGISwapChain4_GetMatrixTransform(This,pMatrix) \ 844 ( (This)->lpVtbl -> GetMatrixTransform(This,pMatrix) ) 845 846 847 #define IDXGISwapChain4_GetCurrentBackBufferIndex(This) \ 848 ( (This)->lpVtbl -> GetCurrentBackBufferIndex(This) ) 849 850 #define IDXGISwapChain4_CheckColorSpaceSupport(This,ColorSpace,pColorSpaceSupport) \ 851 ( (This)->lpVtbl -> CheckColorSpaceSupport(This,ColorSpace,pColorSpaceSupport) ) 852 853 #define IDXGISwapChain4_SetColorSpace1(This,ColorSpace) \ 854 ( (This)->lpVtbl -> SetColorSpace1(This,ColorSpace) ) 855 856 #define IDXGISwapChain4_ResizeBuffers1(This,BufferCount,Width,Height,Format,SwapChainFlags,pCreationNodeMask,ppPresentQueue) \ 857 ( (This)->lpVtbl -> ResizeBuffers1(This,BufferCount,Width,Height,Format,SwapChainFlags,pCreationNodeMask,ppPresentQueue) ) 858 859 860 #define IDXGISwapChain4_SetHDRMetaData(This,Type,Size,pMetaData) \ 861 ( (This)->lpVtbl -> SetHDRMetaData(This,Type,Size,pMetaData) ) 862 863 #endif /* COBJMACROS */ 864 865 866 #endif /* C style interface */ 867 868 869 870 871 #endif /* __IDXGISwapChain4_INTERFACE_DEFINED__ */ 872 873 874 /* interface __MIDL_itf_dxgi1_5_0000_0002 */ 875 /* [local] */ 876 877 typedef 878 enum _DXGI_OFFER_RESOURCE_FLAGS 879 { 880 DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT = 0x1 881 } DXGI_OFFER_RESOURCE_FLAGS; 882 883 typedef 884 enum _DXGI_RECLAIM_RESOURCE_RESULTS 885 { 886 DXGI_RECLAIM_RESOURCE_RESULT_OK = 0, 887 DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED = 1, 888 DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED = 2 889 } DXGI_RECLAIM_RESOURCE_RESULTS; 890 891 892 893 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0002_v0_0_c_ifspec; 894 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0002_v0_0_s_ifspec; 895 896 #ifndef __IDXGIDevice4_INTERFACE_DEFINED__ 897 #define __IDXGIDevice4_INTERFACE_DEFINED__ 898 899 /* interface IDXGIDevice4 */ 900 /* [unique][local][uuid][object] */ 901 902 903 EXTERN_C const IID IID_IDXGIDevice4; 904 905 #if defined(__cplusplus) && !defined(CINTERFACE) 906 907 MIDL_INTERFACE("95B4F95F-D8DA-4CA4-9EE6-3B76D5968A10") 908 IDXGIDevice4 : public IDXGIDevice3 909 { 910 public: 911 virtual HRESULT STDMETHODCALLTYPE OfferResources1( 912 /* [annotation][in] */ 913 _In_ UINT NumResources, 914 /* [annotation][size_is][in] */ 915 _In_reads_(NumResources) IDXGIResource *const *ppResources, 916 /* [annotation][in] */ 917 _In_ DXGI_OFFER_RESOURCE_PRIORITY Priority, 918 /* [annotation][in] */ 919 _In_ UINT Flags) = 0; 920 921 virtual HRESULT STDMETHODCALLTYPE ReclaimResources1( 922 /* [annotation][in] */ 923 _In_ UINT NumResources, 924 /* [annotation][size_is][in] */ 925 _In_reads_(NumResources) IDXGIResource *const *ppResources, 926 /* [annotation][size_is][out] */ 927 _Out_writes_all_(NumResources) DXGI_RECLAIM_RESOURCE_RESULTS *pResults) = 0; 928 929 }; 930 931 932 #else /* C style interface */ 933 934 typedef struct IDXGIDevice4Vtbl 935 { 936 BEGIN_INTERFACE 937 938 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 939 IDXGIDevice4 * This, 940 /* [in] */ REFIID riid, 941 /* [annotation][iid_is][out] */ 942 _COM_Outptr_ void **ppvObject); 943 944 ULONG ( STDMETHODCALLTYPE *AddRef )( 945 IDXGIDevice4 * This); 946 947 ULONG ( STDMETHODCALLTYPE *Release )( 948 IDXGIDevice4 * This); 949 950 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 951 IDXGIDevice4 * This, 952 /* [annotation][in] */ 953 _In_ REFGUID Name, 954 /* [in] */ UINT DataSize, 955 /* [annotation][in] */ 956 _In_reads_bytes_(DataSize) const void *pData); 957 958 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 959 IDXGIDevice4 * This, 960 /* [annotation][in] */ 961 _In_ REFGUID Name, 962 /* [annotation][in] */ 963 _In_opt_ const IUnknown *pUnknown); 964 965 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 966 IDXGIDevice4 * This, 967 /* [annotation][in] */ 968 _In_ REFGUID Name, 969 /* [annotation][out][in] */ 970 _Inout_ UINT *pDataSize, 971 /* [annotation][out] */ 972 _Out_writes_bytes_(*pDataSize) void *pData); 973 974 HRESULT ( STDMETHODCALLTYPE *GetParent )( 975 IDXGIDevice4 * This, 976 /* [annotation][in] */ 977 _In_ REFIID riid, 978 /* [annotation][retval][out] */ 979 _COM_Outptr_ void **ppParent); 980 981 HRESULT ( STDMETHODCALLTYPE *GetAdapter )( 982 IDXGIDevice4 * This, 983 /* [annotation][out] */ 984 _COM_Outptr_ IDXGIAdapter **pAdapter); 985 986 HRESULT ( STDMETHODCALLTYPE *CreateSurface )( 987 IDXGIDevice4 * This, 988 /* [annotation][in] */ 989 _In_ const DXGI_SURFACE_DESC *pDesc, 990 /* [in] */ UINT NumSurfaces, 991 /* [in] */ DXGI_USAGE Usage, 992 /* [annotation][in] */ 993 _In_opt_ const DXGI_SHARED_RESOURCE *pSharedResource, 994 /* [annotation][out] */ 995 _COM_Outptr_ IDXGISurface **ppSurface); 996 997 HRESULT ( STDMETHODCALLTYPE *QueryResourceResidency )( 998 IDXGIDevice4 * This, 999 /* [annotation][size_is][in] */ 1000 _In_reads_(NumResources) IUnknown *const *ppResources, 1001 /* [annotation][size_is][out] */ 1002 _Out_writes_(NumResources) DXGI_RESIDENCY *pResidencyStatus, 1003 /* [in] */ UINT NumResources); 1004 1005 HRESULT ( STDMETHODCALLTYPE *SetGPUThreadPriority )( 1006 IDXGIDevice4 * This, 1007 /* [in] */ INT Priority); 1008 1009 HRESULT ( STDMETHODCALLTYPE *GetGPUThreadPriority )( 1010 IDXGIDevice4 * This, 1011 /* [annotation][retval][out] */ 1012 _Out_ INT *pPriority); 1013 1014 HRESULT ( STDMETHODCALLTYPE *SetMaximumFrameLatency )( 1015 IDXGIDevice4 * This, 1016 /* [in] */ UINT MaxLatency); 1017 1018 HRESULT ( STDMETHODCALLTYPE *GetMaximumFrameLatency )( 1019 IDXGIDevice4 * This, 1020 /* [annotation][out] */ 1021 _Out_ UINT *pMaxLatency); 1022 1023 HRESULT ( STDMETHODCALLTYPE *OfferResources )( 1024 IDXGIDevice4 * This, 1025 /* [annotation][in] */ 1026 _In_ UINT NumResources, 1027 /* [annotation][size_is][in] */ 1028 _In_reads_(NumResources) IDXGIResource *const *ppResources, 1029 /* [annotation][in] */ 1030 _In_ DXGI_OFFER_RESOURCE_PRIORITY Priority); 1031 1032 HRESULT ( STDMETHODCALLTYPE *ReclaimResources )( 1033 IDXGIDevice4 * This, 1034 /* [annotation][in] */ 1035 _In_ UINT NumResources, 1036 /* [annotation][size_is][in] */ 1037 _In_reads_(NumResources) IDXGIResource *const *ppResources, 1038 /* [annotation][size_is][out] */ 1039 _Out_writes_all_opt_(NumResources) BOOL *pDiscarded); 1040 1041 HRESULT ( STDMETHODCALLTYPE *EnqueueSetEvent )( 1042 IDXGIDevice4 * This, 1043 /* [annotation][in] */ 1044 _In_ HANDLE hEvent); 1045 1046 void ( STDMETHODCALLTYPE *Trim )( 1047 IDXGIDevice4 * This); 1048 1049 HRESULT ( STDMETHODCALLTYPE *OfferResources1 )( 1050 IDXGIDevice4 * This, 1051 /* [annotation][in] */ 1052 _In_ UINT NumResources, 1053 /* [annotation][size_is][in] */ 1054 _In_reads_(NumResources) IDXGIResource *const *ppResources, 1055 /* [annotation][in] */ 1056 _In_ DXGI_OFFER_RESOURCE_PRIORITY Priority, 1057 /* [annotation][in] */ 1058 _In_ UINT Flags); 1059 1060 HRESULT ( STDMETHODCALLTYPE *ReclaimResources1 )( 1061 IDXGIDevice4 * This, 1062 /* [annotation][in] */ 1063 _In_ UINT NumResources, 1064 /* [annotation][size_is][in] */ 1065 _In_reads_(NumResources) IDXGIResource *const *ppResources, 1066 /* [annotation][size_is][out] */ 1067 _Out_writes_all_(NumResources) DXGI_RECLAIM_RESOURCE_RESULTS *pResults); 1068 1069 END_INTERFACE 1070 } IDXGIDevice4Vtbl; 1071 1072 interface IDXGIDevice4 1073 { 1074 CONST_VTBL struct IDXGIDevice4Vtbl *lpVtbl; 1075 }; 1076 1077 1078 1079 #ifdef COBJMACROS 1080 1081 1082 #define IDXGIDevice4_QueryInterface(This,riid,ppvObject) \ 1083 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 1084 1085 #define IDXGIDevice4_AddRef(This) \ 1086 ( (This)->lpVtbl -> AddRef(This) ) 1087 1088 #define IDXGIDevice4_Release(This) \ 1089 ( (This)->lpVtbl -> Release(This) ) 1090 1091 1092 #define IDXGIDevice4_SetPrivateData(This,Name,DataSize,pData) \ 1093 ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 1094 1095 #define IDXGIDevice4_SetPrivateDataInterface(This,Name,pUnknown) \ 1096 ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 1097 1098 #define IDXGIDevice4_GetPrivateData(This,Name,pDataSize,pData) \ 1099 ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 1100 1101 #define IDXGIDevice4_GetParent(This,riid,ppParent) \ 1102 ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 1103 1104 1105 #define IDXGIDevice4_GetAdapter(This,pAdapter) \ 1106 ( (This)->lpVtbl -> GetAdapter(This,pAdapter) ) 1107 1108 #define IDXGIDevice4_CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) \ 1109 ( (This)->lpVtbl -> CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) ) 1110 1111 #define IDXGIDevice4_QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) \ 1112 ( (This)->lpVtbl -> QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) ) 1113 1114 #define IDXGIDevice4_SetGPUThreadPriority(This,Priority) \ 1115 ( (This)->lpVtbl -> SetGPUThreadPriority(This,Priority) ) 1116 1117 #define IDXGIDevice4_GetGPUThreadPriority(This,pPriority) \ 1118 ( (This)->lpVtbl -> GetGPUThreadPriority(This,pPriority) ) 1119 1120 1121 #define IDXGIDevice4_SetMaximumFrameLatency(This,MaxLatency) \ 1122 ( (This)->lpVtbl -> SetMaximumFrameLatency(This,MaxLatency) ) 1123 1124 #define IDXGIDevice4_GetMaximumFrameLatency(This,pMaxLatency) \ 1125 ( (This)->lpVtbl -> GetMaximumFrameLatency(This,pMaxLatency) ) 1126 1127 1128 #define IDXGIDevice4_OfferResources(This,NumResources,ppResources,Priority) \ 1129 ( (This)->lpVtbl -> OfferResources(This,NumResources,ppResources,Priority) ) 1130 1131 #define IDXGIDevice4_ReclaimResources(This,NumResources,ppResources,pDiscarded) \ 1132 ( (This)->lpVtbl -> ReclaimResources(This,NumResources,ppResources,pDiscarded) ) 1133 1134 #define IDXGIDevice4_EnqueueSetEvent(This,hEvent) \ 1135 ( (This)->lpVtbl -> EnqueueSetEvent(This,hEvent) ) 1136 1137 1138 #define IDXGIDevice4_Trim(This) \ 1139 ( (This)->lpVtbl -> Trim(This) ) 1140 1141 1142 #define IDXGIDevice4_OfferResources1(This,NumResources,ppResources,Priority,Flags) \ 1143 ( (This)->lpVtbl -> OfferResources1(This,NumResources,ppResources,Priority,Flags) ) 1144 1145 #define IDXGIDevice4_ReclaimResources1(This,NumResources,ppResources,pResults) \ 1146 ( (This)->lpVtbl -> ReclaimResources1(This,NumResources,ppResources,pResults) ) 1147 1148 #endif /* COBJMACROS */ 1149 1150 1151 #endif /* C style interface */ 1152 1153 1154 1155 1156 #endif /* __IDXGIDevice4_INTERFACE_DEFINED__ */ 1157 1158 1159 /* interface __MIDL_itf_dxgi1_5_0000_0003 */ 1160 /* [local] */ 1161 1162 typedef 1163 enum DXGI_FEATURE 1164 { 1165 DXGI_FEATURE_PRESENT_ALLOW_TEARING = 0 1166 } DXGI_FEATURE; 1167 1168 1169 1170 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0003_v0_0_c_ifspec; 1171 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0003_v0_0_s_ifspec; 1172 1173 #ifndef __IDXGIFactory5_INTERFACE_DEFINED__ 1174 #define __IDXGIFactory5_INTERFACE_DEFINED__ 1175 1176 /* interface IDXGIFactory5 */ 1177 /* [unique][local][uuid][object] */ 1178 1179 1180 EXTERN_C const IID IID_IDXGIFactory5; 1181 1182 #if defined(__cplusplus) && !defined(CINTERFACE) 1183 1184 MIDL_INTERFACE("7632e1f5-ee65-4dca-87fd-84cd75f8838d") 1185 IDXGIFactory5 : public IDXGIFactory4 1186 { 1187 public: 1188 virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport( 1189 DXGI_FEATURE Feature, 1190 /* [annotation] */ 1191 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 1192 UINT FeatureSupportDataSize) = 0; 1193 1194 }; 1195 1196 1197 #else /* C style interface */ 1198 1199 typedef struct IDXGIFactory5Vtbl 1200 { 1201 BEGIN_INTERFACE 1202 1203 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 1204 IDXGIFactory5 * This, 1205 /* [in] */ REFIID riid, 1206 /* [annotation][iid_is][out] */ 1207 _COM_Outptr_ void **ppvObject); 1208 1209 ULONG ( STDMETHODCALLTYPE *AddRef )( 1210 IDXGIFactory5 * This); 1211 1212 ULONG ( STDMETHODCALLTYPE *Release )( 1213 IDXGIFactory5 * This); 1214 1215 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 1216 IDXGIFactory5 * This, 1217 /* [annotation][in] */ 1218 _In_ REFGUID Name, 1219 /* [in] */ UINT DataSize, 1220 /* [annotation][in] */ 1221 _In_reads_bytes_(DataSize) const void *pData); 1222 1223 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 1224 IDXGIFactory5 * This, 1225 /* [annotation][in] */ 1226 _In_ REFGUID Name, 1227 /* [annotation][in] */ 1228 _In_opt_ const IUnknown *pUnknown); 1229 1230 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 1231 IDXGIFactory5 * This, 1232 /* [annotation][in] */ 1233 _In_ REFGUID Name, 1234 /* [annotation][out][in] */ 1235 _Inout_ UINT *pDataSize, 1236 /* [annotation][out] */ 1237 _Out_writes_bytes_(*pDataSize) void *pData); 1238 1239 HRESULT ( STDMETHODCALLTYPE *GetParent )( 1240 IDXGIFactory5 * This, 1241 /* [annotation][in] */ 1242 _In_ REFIID riid, 1243 /* [annotation][retval][out] */ 1244 _COM_Outptr_ void **ppParent); 1245 1246 HRESULT ( STDMETHODCALLTYPE *EnumAdapters )( 1247 IDXGIFactory5 * This, 1248 /* [in] */ UINT Adapter, 1249 /* [annotation][out] */ 1250 _COM_Outptr_ IDXGIAdapter **ppAdapter); 1251 1252 HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )( 1253 IDXGIFactory5 * This, 1254 HWND WindowHandle, 1255 UINT Flags); 1256 1257 HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )( 1258 IDXGIFactory5 * This, 1259 /* [annotation][out] */ 1260 _Out_ HWND *pWindowHandle); 1261 1262 HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )( 1263 IDXGIFactory5 * This, 1264 /* [annotation][in] */ 1265 _In_ IUnknown *pDevice, 1266 /* [annotation][in] */ 1267 _In_ DXGI_SWAP_CHAIN_DESC *pDesc, 1268 /* [annotation][out] */ 1269 _COM_Outptr_ IDXGISwapChain **ppSwapChain); 1270 1271 HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )( 1272 IDXGIFactory5 * This, 1273 /* [in] */ HMODULE Module, 1274 /* [annotation][out] */ 1275 _COM_Outptr_ IDXGIAdapter **ppAdapter); 1276 1277 HRESULT ( STDMETHODCALLTYPE *EnumAdapters1 )( 1278 IDXGIFactory5 * This, 1279 /* [in] */ UINT Adapter, 1280 /* [annotation][out] */ 1281 _COM_Outptr_ IDXGIAdapter1 **ppAdapter); 1282 1283 BOOL ( STDMETHODCALLTYPE *IsCurrent )( 1284 IDXGIFactory5 * This); 1285 1286 BOOL ( STDMETHODCALLTYPE *IsWindowedStereoEnabled )( 1287 IDXGIFactory5 * This); 1288 1289 HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForHwnd )( 1290 IDXGIFactory5 * This, 1291 /* [annotation][in] */ 1292 _In_ IUnknown *pDevice, 1293 /* [annotation][in] */ 1294 _In_ HWND hWnd, 1295 /* [annotation][in] */ 1296 _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc, 1297 /* [annotation][in] */ 1298 _In_opt_ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc, 1299 /* [annotation][in] */ 1300 _In_opt_ IDXGIOutput *pRestrictToOutput, 1301 /* [annotation][out] */ 1302 _COM_Outptr_ IDXGISwapChain1 **ppSwapChain); 1303 1304 HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForCoreWindow )( 1305 IDXGIFactory5 * This, 1306 /* [annotation][in] */ 1307 _In_ IUnknown *pDevice, 1308 /* [annotation][in] */ 1309 _In_ IUnknown *pWindow, 1310 /* [annotation][in] */ 1311 _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc, 1312 /* [annotation][in] */ 1313 _In_opt_ IDXGIOutput *pRestrictToOutput, 1314 /* [annotation][out] */ 1315 _COM_Outptr_ IDXGISwapChain1 **ppSwapChain); 1316 1317 HRESULT ( STDMETHODCALLTYPE *GetSharedResourceAdapterLuid )( 1318 IDXGIFactory5 * This, 1319 /* [annotation] */ 1320 _In_ HANDLE hResource, 1321 /* [annotation] */ 1322 _Out_ LUID *pLuid); 1323 1324 HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusWindow )( 1325 IDXGIFactory5 * This, 1326 /* [annotation][in] */ 1327 _In_ HWND WindowHandle, 1328 /* [annotation][in] */ 1329 _In_ UINT wMsg, 1330 /* [annotation][out] */ 1331 _Out_ DWORD *pdwCookie); 1332 1333 HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusEvent )( 1334 IDXGIFactory5 * This, 1335 /* [annotation][in] */ 1336 _In_ HANDLE hEvent, 1337 /* [annotation][out] */ 1338 _Out_ DWORD *pdwCookie); 1339 1340 void ( STDMETHODCALLTYPE *UnregisterStereoStatus )( 1341 IDXGIFactory5 * This, 1342 /* [annotation][in] */ 1343 _In_ DWORD dwCookie); 1344 1345 HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusWindow )( 1346 IDXGIFactory5 * This, 1347 /* [annotation][in] */ 1348 _In_ HWND WindowHandle, 1349 /* [annotation][in] */ 1350 _In_ UINT wMsg, 1351 /* [annotation][out] */ 1352 _Out_ DWORD *pdwCookie); 1353 1354 HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusEvent )( 1355 IDXGIFactory5 * This, 1356 /* [annotation][in] */ 1357 _In_ HANDLE hEvent, 1358 /* [annotation][out] */ 1359 _Out_ DWORD *pdwCookie); 1360 1361 void ( STDMETHODCALLTYPE *UnregisterOcclusionStatus )( 1362 IDXGIFactory5 * This, 1363 /* [annotation][in] */ 1364 _In_ DWORD dwCookie); 1365 1366 HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForComposition )( 1367 IDXGIFactory5 * This, 1368 /* [annotation][in] */ 1369 _In_ IUnknown *pDevice, 1370 /* [annotation][in] */ 1371 _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc, 1372 /* [annotation][in] */ 1373 _In_opt_ IDXGIOutput *pRestrictToOutput, 1374 /* [annotation][out] */ 1375 _COM_Outptr_ IDXGISwapChain1 **ppSwapChain); 1376 1377 UINT ( STDMETHODCALLTYPE *GetCreationFlags )( 1378 IDXGIFactory5 * This); 1379 1380 HRESULT ( STDMETHODCALLTYPE *EnumAdapterByLuid )( 1381 IDXGIFactory5 * This, 1382 /* [annotation] */ 1383 _In_ LUID AdapterLuid, 1384 /* [annotation] */ 1385 _In_ REFIID riid, 1386 /* [annotation] */ 1387 _COM_Outptr_ void **ppvAdapter); 1388 1389 HRESULT ( STDMETHODCALLTYPE *EnumWarpAdapter )( 1390 IDXGIFactory5 * This, 1391 /* [annotation] */ 1392 _In_ REFIID riid, 1393 /* [annotation] */ 1394 _COM_Outptr_ void **ppvAdapter); 1395 1396 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 1397 IDXGIFactory5 * This, 1398 DXGI_FEATURE Feature, 1399 /* [annotation] */ 1400 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 1401 UINT FeatureSupportDataSize); 1402 1403 END_INTERFACE 1404 } IDXGIFactory5Vtbl; 1405 1406 interface IDXGIFactory5 1407 { 1408 CONST_VTBL struct IDXGIFactory5Vtbl *lpVtbl; 1409 }; 1410 1411 1412 1413 #ifdef COBJMACROS 1414 1415 1416 #define IDXGIFactory5_QueryInterface(This,riid,ppvObject) \ 1417 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 1418 1419 #define IDXGIFactory5_AddRef(This) \ 1420 ( (This)->lpVtbl -> AddRef(This) ) 1421 1422 #define IDXGIFactory5_Release(This) \ 1423 ( (This)->lpVtbl -> Release(This) ) 1424 1425 1426 #define IDXGIFactory5_SetPrivateData(This,Name,DataSize,pData) \ 1427 ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 1428 1429 #define IDXGIFactory5_SetPrivateDataInterface(This,Name,pUnknown) \ 1430 ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 1431 1432 #define IDXGIFactory5_GetPrivateData(This,Name,pDataSize,pData) \ 1433 ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 1434 1435 #define IDXGIFactory5_GetParent(This,riid,ppParent) \ 1436 ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 1437 1438 1439 #define IDXGIFactory5_EnumAdapters(This,Adapter,ppAdapter) \ 1440 ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) ) 1441 1442 #define IDXGIFactory5_MakeWindowAssociation(This,WindowHandle,Flags) \ 1443 ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) ) 1444 1445 #define IDXGIFactory5_GetWindowAssociation(This,pWindowHandle) \ 1446 ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) ) 1447 1448 #define IDXGIFactory5_CreateSwapChain(This,pDevice,pDesc,ppSwapChain) \ 1449 ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) ) 1450 1451 #define IDXGIFactory5_CreateSoftwareAdapter(This,Module,ppAdapter) \ 1452 ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) ) 1453 1454 1455 #define IDXGIFactory5_EnumAdapters1(This,Adapter,ppAdapter) \ 1456 ( (This)->lpVtbl -> EnumAdapters1(This,Adapter,ppAdapter) ) 1457 1458 #define IDXGIFactory5_IsCurrent(This) \ 1459 ( (This)->lpVtbl -> IsCurrent(This) ) 1460 1461 1462 #define IDXGIFactory5_IsWindowedStereoEnabled(This) \ 1463 ( (This)->lpVtbl -> IsWindowedStereoEnabled(This) ) 1464 1465 #define IDXGIFactory5_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) \ 1466 ( (This)->lpVtbl -> CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) ) 1467 1468 #define IDXGIFactory5_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) \ 1469 ( (This)->lpVtbl -> CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) ) 1470 1471 #define IDXGIFactory5_GetSharedResourceAdapterLuid(This,hResource,pLuid) \ 1472 ( (This)->lpVtbl -> GetSharedResourceAdapterLuid(This,hResource,pLuid) ) 1473 1474 #define IDXGIFactory5_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) \ 1475 ( (This)->lpVtbl -> RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) ) 1476 1477 #define IDXGIFactory5_RegisterStereoStatusEvent(This,hEvent,pdwCookie) \ 1478 ( (This)->lpVtbl -> RegisterStereoStatusEvent(This,hEvent,pdwCookie) ) 1479 1480 #define IDXGIFactory5_UnregisterStereoStatus(This,dwCookie) \ 1481 ( (This)->lpVtbl -> UnregisterStereoStatus(This,dwCookie) ) 1482 1483 #define IDXGIFactory5_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) \ 1484 ( (This)->lpVtbl -> RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) ) 1485 1486 #define IDXGIFactory5_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) \ 1487 ( (This)->lpVtbl -> RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) ) 1488 1489 #define IDXGIFactory5_UnregisterOcclusionStatus(This,dwCookie) \ 1490 ( (This)->lpVtbl -> UnregisterOcclusionStatus(This,dwCookie) ) 1491 1492 #define IDXGIFactory5_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) \ 1493 ( (This)->lpVtbl -> CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) ) 1494 1495 1496 #define IDXGIFactory5_GetCreationFlags(This) \ 1497 ( (This)->lpVtbl -> GetCreationFlags(This) ) 1498 1499 1500 #define IDXGIFactory5_EnumAdapterByLuid(This,AdapterLuid,riid,ppvAdapter) \ 1501 ( (This)->lpVtbl -> EnumAdapterByLuid(This,AdapterLuid,riid,ppvAdapter) ) 1502 1503 #define IDXGIFactory5_EnumWarpAdapter(This,riid,ppvAdapter) \ 1504 ( (This)->lpVtbl -> EnumWarpAdapter(This,riid,ppvAdapter) ) 1505 1506 1507 #define IDXGIFactory5_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ 1508 ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) 1509 1510 #endif /* COBJMACROS */ 1511 1512 1513 #endif /* C style interface */ 1514 1515 1516 1517 1518 #endif /* __IDXGIFactory5_INTERFACE_DEFINED__ */ 1519 1520 1521 /* interface __MIDL_itf_dxgi1_5_0000_0004 */ 1522 /* [local] */ 1523 1524 #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ 1525 // BK - pragma endregion 1526 DEFINE_GUID(IID_IDXGIOutput5,0x80A07424,0xAB52,0x42EB,0x83,0x3C,0x0C,0x42,0xFD,0x28,0x2D,0x98); 1527 DEFINE_GUID(IID_IDXGISwapChain4,0x3D585D5A,0xBD4A,0x489E,0xB1,0xF4,0x3D,0xBC,0xB6,0x45,0x2F,0xFB); 1528 DEFINE_GUID(IID_IDXGIDevice4,0x95B4F95F,0xD8DA,0x4CA4,0x9E,0xE6,0x3B,0x76,0xD5,0x96,0x8A,0x10); 1529 DEFINE_GUID(IID_IDXGIFactory5,0x7632e1f5,0xee65,0x4dca,0x87,0xfd,0x84,0xcd,0x75,0xf8,0x83,0x8d); 1530 1531 1532 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0004_v0_0_c_ifspec; 1533 extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0004_v0_0_s_ifspec; 1534 1535 /* Additional Prototypes for ALL interfaces */ 1536 1537 /* end of Additional Prototypes */ 1538 1539 #ifdef __cplusplus 1540 } 1541 #endif 1542 1543 #endif 1544 1545 1546