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