1 /*** Autogenerated by WIDL 4.19 from direct-x/include/dxgi1_6.idl - Do not edit ***/ 2 3 #ifdef _WIN32 4 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 5 #define __REQUIRED_RPCNDR_H_VERSION__ 475 6 #endif 7 #include <rpc.h> 8 #include <rpcndr.h> 9 #endif 10 11 #ifndef COM_NO_WINDOWS_H 12 #include <windows.h> 13 #include <ole2.h> 14 #endif 15 16 #ifndef __dxgi1_6_h__ 17 #define __dxgi1_6_h__ 18 19 /* Forward declarations */ 20 21 #ifndef __IDXGIAdapter4_FWD_DEFINED__ 22 #define __IDXGIAdapter4_FWD_DEFINED__ 23 typedef interface IDXGIAdapter4 IDXGIAdapter4; 24 #ifdef __cplusplus 25 interface IDXGIAdapter4; 26 #endif /* __cplusplus */ 27 #endif 28 29 #ifndef __IDXGIOutput6_FWD_DEFINED__ 30 #define __IDXGIOutput6_FWD_DEFINED__ 31 typedef interface IDXGIOutput6 IDXGIOutput6; 32 #ifdef __cplusplus 33 interface IDXGIOutput6; 34 #endif /* __cplusplus */ 35 #endif 36 37 /* Headers for imported files */ 38 39 #include <dxgi1_5.h> 40 41 #ifdef __cplusplus 42 extern "C" { 43 #endif 44 45 typedef enum DXGI_ADAPTER_FLAG3 { 46 DXGI_ADAPTER_FLAG3_NONE = 0x0, 47 DXGI_ADAPTER_FLAG3_REMOTE = 0x1, 48 DXGI_ADAPTER_FLAG3_SOFTWARE = 0x2, 49 DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE = 0x4, 50 DXGI_ADAPTER_FLAG3_FORCE_DWORD = 0xffffffff 51 } DXGI_ADAPTER_FLAG3; 52 typedef enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS { 53 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN = 0x1, 54 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED = 0x2, 55 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED = 0x4 56 } DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS; 57 typedef struct DXGI_ADAPTER_DESC3 { 58 WCHAR Description[128]; 59 UINT VendorId; 60 UINT DeviceId; 61 UINT SubSysId; 62 UINT Revision; 63 SIZE_T DedicatedVideoMemory; 64 SIZE_T DedicatedSystemMemory; 65 SIZE_T SharedSystemMemory; 66 LUID AdapterLuid; 67 DXGI_ADAPTER_FLAG3 Flags; 68 DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; 69 DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; 70 } DXGI_ADAPTER_DESC3; 71 typedef struct DXGI_OUTPUT_DESC1 { 72 WCHAR DeviceName[32]; 73 RECT DesktopCoordinates; 74 WINBOOL AttachedToDesktop; 75 DXGI_MODE_ROTATION Rotation; 76 HMONITOR Monitor; 77 UINT BitsPerColor; 78 DXGI_COLOR_SPACE_TYPE ColorSpace; 79 FLOAT RedPrimary[2]; 80 FLOAT GreenPrimary[2]; 81 FLOAT BluePrimary[2]; 82 FLOAT WhitePoint[2]; 83 FLOAT MinLuminance; 84 FLOAT MaxLuminance; 85 FLOAT MaxFullFrameLuminance; 86 } DXGI_OUTPUT_DESC1; 87 /***************************************************************************** 88 * IDXGIAdapter4 interface 89 */ 90 #ifndef __IDXGIAdapter4_INTERFACE_DEFINED__ 91 #define __IDXGIAdapter4_INTERFACE_DEFINED__ 92 93 DEFINE_GUID(IID_IDXGIAdapter4, 0x3c8d99d1, 0x4fbf, 0x4181, 0xa8,0x2c, 0xaf,0x66,0xbf,0x7b,0xd2,0x4e); 94 #if defined(__cplusplus) && !defined(CINTERFACE) 95 MIDL_INTERFACE("3c8d99d1-4fbf-4181-a82c-af66bf7bd24e") 96 IDXGIAdapter4 : public IDXGIAdapter3 97 { 98 virtual HRESULT STDMETHODCALLTYPE GetDesc3( 99 DXGI_ADAPTER_DESC3 *desc) = 0; 100 101 }; 102 #ifdef __CRT_UUID_DECL 103 __CRT_UUID_DECL(IDXGIAdapter4, 0x3c8d99d1, 0x4fbf, 0x4181, 0xa8,0x2c, 0xaf,0x66,0xbf,0x7b,0xd2,0x4e) 104 #endif 105 #else 106 typedef struct IDXGIAdapter4Vtbl { 107 BEGIN_INTERFACE 108 109 /*** IUnknown methods ***/ 110 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 111 IDXGIAdapter4 *This, 112 REFIID riid, 113 void **ppvObject); 114 115 ULONG (STDMETHODCALLTYPE *AddRef)( 116 IDXGIAdapter4 *This); 117 118 ULONG (STDMETHODCALLTYPE *Release)( 119 IDXGIAdapter4 *This); 120 121 /*** IDXGIObject methods ***/ 122 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 123 IDXGIAdapter4 *This, 124 REFGUID guid, 125 UINT data_size, 126 const void *data); 127 128 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 129 IDXGIAdapter4 *This, 130 REFGUID guid, 131 const IUnknown *object); 132 133 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 134 IDXGIAdapter4 *This, 135 REFGUID guid, 136 UINT *data_size, 137 void *data); 138 139 HRESULT (STDMETHODCALLTYPE *GetParent)( 140 IDXGIAdapter4 *This, 141 REFIID riid, 142 void **parent); 143 144 /*** IDXGIAdapter methods ***/ 145 HRESULT (STDMETHODCALLTYPE *EnumOutputs)( 146 IDXGIAdapter4 *This, 147 UINT output_idx, 148 IDXGIOutput **output); 149 150 HRESULT (STDMETHODCALLTYPE *GetDesc)( 151 IDXGIAdapter4 *This, 152 DXGI_ADAPTER_DESC *desc); 153 154 HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)( 155 IDXGIAdapter4 *This, 156 REFGUID guid, 157 LARGE_INTEGER *umd_version); 158 159 /*** IDXGIAdapter1 methods ***/ 160 HRESULT (STDMETHODCALLTYPE *GetDesc1)( 161 IDXGIAdapter4 *This, 162 DXGI_ADAPTER_DESC1 *pDesc); 163 164 /*** IDXGIAdapter2 methods ***/ 165 HRESULT (STDMETHODCALLTYPE *GetDesc2)( 166 IDXGIAdapter4 *This, 167 DXGI_ADAPTER_DESC2 *pDesc); 168 169 /*** IDXGIAdapter3 methods ***/ 170 HRESULT (STDMETHODCALLTYPE *RegisterHardwareContentProtectionTeardownStatusEvent)( 171 IDXGIAdapter4 *This, 172 HANDLE event, 173 DWORD *cookie); 174 175 void (STDMETHODCALLTYPE *UnregisterHardwareContentProtectionTeardownStatus)( 176 IDXGIAdapter4 *This, 177 DWORD cookie); 178 179 HRESULT (STDMETHODCALLTYPE *QueryVideoMemoryInfo)( 180 IDXGIAdapter4 *This, 181 UINT node_index, 182 DXGI_MEMORY_SEGMENT_GROUP segment_group, 183 DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info); 184 185 HRESULT (STDMETHODCALLTYPE *SetVideoMemoryReservation)( 186 IDXGIAdapter4 *This, 187 UINT node_index, 188 DXGI_MEMORY_SEGMENT_GROUP segment_group, 189 UINT64 reservation); 190 191 HRESULT (STDMETHODCALLTYPE *RegisterVideoMemoryBudgetChangeNotificationEvent)( 192 IDXGIAdapter4 *This, 193 HANDLE event, 194 DWORD *cookie); 195 196 void (STDMETHODCALLTYPE *UnregisterVideoMemoryBudgetChangeNotification)( 197 IDXGIAdapter4 *This, 198 DWORD cookie); 199 200 /*** IDXGIAdapter4 methods ***/ 201 HRESULT (STDMETHODCALLTYPE *GetDesc3)( 202 IDXGIAdapter4 *This, 203 DXGI_ADAPTER_DESC3 *desc); 204 205 END_INTERFACE 206 } IDXGIAdapter4Vtbl; 207 208 interface IDXGIAdapter4 { 209 CONST_VTBL IDXGIAdapter4Vtbl* lpVtbl; 210 }; 211 212 #ifdef COBJMACROS 213 #ifndef WIDL_C_INLINE_WRAPPERS 214 /*** IUnknown methods ***/ 215 #define IDXGIAdapter4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 216 #define IDXGIAdapter4_AddRef(This) (This)->lpVtbl->AddRef(This) 217 #define IDXGIAdapter4_Release(This) (This)->lpVtbl->Release(This) 218 /*** IDXGIObject methods ***/ 219 #define IDXGIAdapter4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 220 #define IDXGIAdapter4_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 221 #define IDXGIAdapter4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 222 #define IDXGIAdapter4_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 223 /*** IDXGIAdapter methods ***/ 224 #define IDXGIAdapter4_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output) 225 #define IDXGIAdapter4_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) 226 #define IDXGIAdapter4_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version) 227 /*** IDXGIAdapter1 methods ***/ 228 #define IDXGIAdapter4_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc) 229 /*** IDXGIAdapter2 methods ***/ 230 #define IDXGIAdapter4_GetDesc2(This,pDesc) (This)->lpVtbl->GetDesc2(This,pDesc) 231 /*** IDXGIAdapter3 methods ***/ 232 #define IDXGIAdapter4_RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie) 233 #define IDXGIAdapter4_UnregisterHardwareContentProtectionTeardownStatus(This,cookie) (This)->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie) 234 #define IDXGIAdapter4_QueryVideoMemoryInfo(This,node_index,segment_group,memory_info) (This)->lpVtbl->QueryVideoMemoryInfo(This,node_index,segment_group,memory_info) 235 #define IDXGIAdapter4_SetVideoMemoryReservation(This,node_index,segment_group,reservation) (This)->lpVtbl->SetVideoMemoryReservation(This,node_index,segment_group,reservation) 236 #define IDXGIAdapter4_RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie) (This)->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie) 237 #define IDXGIAdapter4_UnregisterVideoMemoryBudgetChangeNotification(This,cookie) (This)->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie) 238 /*** IDXGIAdapter4 methods ***/ 239 #define IDXGIAdapter4_GetDesc3(This,desc) (This)->lpVtbl->GetDesc3(This,desc) 240 #else 241 /*** IUnknown methods ***/ 242 static FORCEINLINE HRESULT IDXGIAdapter4_QueryInterface(IDXGIAdapter4* This,REFIID riid,void **ppvObject) { 243 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 244 } 245 static FORCEINLINE ULONG IDXGIAdapter4_AddRef(IDXGIAdapter4* This) { 246 return This->lpVtbl->AddRef(This); 247 } 248 static FORCEINLINE ULONG IDXGIAdapter4_Release(IDXGIAdapter4* This) { 249 return This->lpVtbl->Release(This); 250 } 251 /*** IDXGIObject methods ***/ 252 static FORCEINLINE HRESULT IDXGIAdapter4_SetPrivateData(IDXGIAdapter4* This,REFGUID guid,UINT data_size,const void *data) { 253 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 254 } 255 static FORCEINLINE HRESULT IDXGIAdapter4_SetPrivateDataInterface(IDXGIAdapter4* This,REFGUID guid,const IUnknown *object) { 256 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 257 } 258 static FORCEINLINE HRESULT IDXGIAdapter4_GetPrivateData(IDXGIAdapter4* This,REFGUID guid,UINT *data_size,void *data) { 259 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 260 } 261 static FORCEINLINE HRESULT IDXGIAdapter4_GetParent(IDXGIAdapter4* This,REFIID riid,void **parent) { 262 return This->lpVtbl->GetParent(This,riid,parent); 263 } 264 /*** IDXGIAdapter methods ***/ 265 static FORCEINLINE HRESULT IDXGIAdapter4_EnumOutputs(IDXGIAdapter4* This,UINT output_idx,IDXGIOutput **output) { 266 return This->lpVtbl->EnumOutputs(This,output_idx,output); 267 } 268 static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc(IDXGIAdapter4* This,DXGI_ADAPTER_DESC *desc) { 269 return This->lpVtbl->GetDesc(This,desc); 270 } 271 static FORCEINLINE HRESULT IDXGIAdapter4_CheckInterfaceSupport(IDXGIAdapter4* This,REFGUID guid,LARGE_INTEGER *umd_version) { 272 return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version); 273 } 274 /*** IDXGIAdapter1 methods ***/ 275 static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc1(IDXGIAdapter4* This,DXGI_ADAPTER_DESC1 *pDesc) { 276 return This->lpVtbl->GetDesc1(This,pDesc); 277 } 278 /*** IDXGIAdapter2 methods ***/ 279 static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc2(IDXGIAdapter4* This,DXGI_ADAPTER_DESC2 *pDesc) { 280 return This->lpVtbl->GetDesc2(This,pDesc); 281 } 282 /*** IDXGIAdapter3 methods ***/ 283 static FORCEINLINE HRESULT IDXGIAdapter4_RegisterHardwareContentProtectionTeardownStatusEvent(IDXGIAdapter4* This,HANDLE event,DWORD *cookie) { 284 return This->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie); 285 } 286 static FORCEINLINE void IDXGIAdapter4_UnregisterHardwareContentProtectionTeardownStatus(IDXGIAdapter4* This,DWORD cookie) { 287 This->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie); 288 } 289 static FORCEINLINE HRESULT IDXGIAdapter4_QueryVideoMemoryInfo(IDXGIAdapter4* This,UINT node_index,DXGI_MEMORY_SEGMENT_GROUP segment_group,DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info) { 290 return This->lpVtbl->QueryVideoMemoryInfo(This,node_index,segment_group,memory_info); 291 } 292 static FORCEINLINE HRESULT IDXGIAdapter4_SetVideoMemoryReservation(IDXGIAdapter4* This,UINT node_index,DXGI_MEMORY_SEGMENT_GROUP segment_group,UINT64 reservation) { 293 return This->lpVtbl->SetVideoMemoryReservation(This,node_index,segment_group,reservation); 294 } 295 static FORCEINLINE HRESULT IDXGIAdapter4_RegisterVideoMemoryBudgetChangeNotificationEvent(IDXGIAdapter4* This,HANDLE event,DWORD *cookie) { 296 return This->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie); 297 } 298 static FORCEINLINE void IDXGIAdapter4_UnregisterVideoMemoryBudgetChangeNotification(IDXGIAdapter4* This,DWORD cookie) { 299 This->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie); 300 } 301 /*** IDXGIAdapter4 methods ***/ 302 static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc3(IDXGIAdapter4* This,DXGI_ADAPTER_DESC3 *desc) { 303 return This->lpVtbl->GetDesc3(This,desc); 304 } 305 #endif 306 #endif 307 308 #endif 309 310 311 #endif /* __IDXGIAdapter4_INTERFACE_DEFINED__ */ 312 313 /***************************************************************************** 314 * IDXGIOutput6 interface 315 */ 316 #ifndef __IDXGIOutput6_INTERFACE_DEFINED__ 317 #define __IDXGIOutput6_INTERFACE_DEFINED__ 318 319 DEFINE_GUID(IID_IDXGIOutput6, 0x068346e8, 0xaaec, 0x4b84, 0xad,0xd7, 0x13,0x7f,0x51,0x3f,0x77,0xa1); 320 #if defined(__cplusplus) && !defined(CINTERFACE) 321 MIDL_INTERFACE("068346e8-aaec-4b84-add7-137f513f77a1") 322 IDXGIOutput6 : public IDXGIOutput5 323 { 324 virtual HRESULT STDMETHODCALLTYPE GetDesc1( 325 DXGI_OUTPUT_DESC1 *desc) = 0; 326 327 virtual HRESULT STDMETHODCALLTYPE CheckHardwareCompositionSupport( 328 UINT *flags) = 0; 329 330 }; 331 #ifdef __CRT_UUID_DECL 332 __CRT_UUID_DECL(IDXGIOutput6, 0x068346e8, 0xaaec, 0x4b84, 0xad,0xd7, 0x13,0x7f,0x51,0x3f,0x77,0xa1) 333 #endif 334 #else 335 typedef struct IDXGIOutput6Vtbl { 336 BEGIN_INTERFACE 337 338 /*** IUnknown methods ***/ 339 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 340 IDXGIOutput6 *This, 341 REFIID riid, 342 void **ppvObject); 343 344 ULONG (STDMETHODCALLTYPE *AddRef)( 345 IDXGIOutput6 *This); 346 347 ULONG (STDMETHODCALLTYPE *Release)( 348 IDXGIOutput6 *This); 349 350 /*** IDXGIObject methods ***/ 351 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 352 IDXGIOutput6 *This, 353 REFGUID guid, 354 UINT data_size, 355 const void *data); 356 357 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 358 IDXGIOutput6 *This, 359 REFGUID guid, 360 const IUnknown *object); 361 362 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 363 IDXGIOutput6 *This, 364 REFGUID guid, 365 UINT *data_size, 366 void *data); 367 368 HRESULT (STDMETHODCALLTYPE *GetParent)( 369 IDXGIOutput6 *This, 370 REFIID riid, 371 void **parent); 372 373 /*** IDXGIOutput methods ***/ 374 HRESULT (STDMETHODCALLTYPE *GetDesc)( 375 IDXGIOutput6 *This, 376 DXGI_OUTPUT_DESC *desc); 377 378 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)( 379 IDXGIOutput6 *This, 380 DXGI_FORMAT format, 381 UINT flags, 382 UINT *mode_count, 383 DXGI_MODE_DESC *desc); 384 385 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)( 386 IDXGIOutput6 *This, 387 const DXGI_MODE_DESC *mode, 388 DXGI_MODE_DESC *closest_match, 389 IUnknown *device); 390 391 HRESULT (STDMETHODCALLTYPE *WaitForVBlank)( 392 IDXGIOutput6 *This); 393 394 HRESULT (STDMETHODCALLTYPE *TakeOwnership)( 395 IDXGIOutput6 *This, 396 IUnknown *device, 397 WINBOOL exclusive); 398 399 void (STDMETHODCALLTYPE *ReleaseOwnership)( 400 IDXGIOutput6 *This); 401 402 HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)( 403 IDXGIOutput6 *This, 404 DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps); 405 406 HRESULT (STDMETHODCALLTYPE *SetGammaControl)( 407 IDXGIOutput6 *This, 408 const DXGI_GAMMA_CONTROL *gamma_control); 409 410 HRESULT (STDMETHODCALLTYPE *GetGammaControl)( 411 IDXGIOutput6 *This, 412 DXGI_GAMMA_CONTROL *gamma_control); 413 414 HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)( 415 IDXGIOutput6 *This, 416 IDXGISurface *surface); 417 418 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)( 419 IDXGIOutput6 *This, 420 IDXGISurface *surface); 421 422 HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)( 423 IDXGIOutput6 *This, 424 DXGI_FRAME_STATISTICS *stats); 425 426 /*** IDXGIOutput1 methods ***/ 427 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)( 428 IDXGIOutput6 *This, 429 DXGI_FORMAT enum_format, 430 UINT flags, 431 UINT *num_modes, 432 DXGI_MODE_DESC1 *desc); 433 434 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)( 435 IDXGIOutput6 *This, 436 const DXGI_MODE_DESC1 *mode_to_match, 437 DXGI_MODE_DESC1 *closest_match, 438 IUnknown *concerned_device); 439 440 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)( 441 IDXGIOutput6 *This, 442 IDXGIResource *destination); 443 444 HRESULT (STDMETHODCALLTYPE *DuplicateOutput)( 445 IDXGIOutput6 *This, 446 IUnknown *device, 447 IDXGIOutputDuplication **output_duplication); 448 449 /*** IDXGIOutput2 methods ***/ 450 WINBOOL (STDMETHODCALLTYPE *SupportsOverlays)( 451 IDXGIOutput6 *This); 452 453 /*** IDXGIOutput3 methods ***/ 454 HRESULT (STDMETHODCALLTYPE *CheckOverlaySupport)( 455 IDXGIOutput6 *This, 456 DXGI_FORMAT enum_format, 457 IUnknown *concerned_device, 458 UINT *flags); 459 460 /*** IDXGIOutput4 methods ***/ 461 HRESULT (STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport)( 462 IDXGIOutput6 *This, 463 DXGI_FORMAT format, 464 DXGI_COLOR_SPACE_TYPE colour_space, 465 IUnknown *device, 466 UINT *flags); 467 468 /*** IDXGIOutput5 methods ***/ 469 HRESULT (STDMETHODCALLTYPE *DuplicateOutput1)( 470 IDXGIOutput6 *This, 471 IUnknown *device, 472 UINT flags, 473 UINT format_count, 474 const DXGI_FORMAT *formats, 475 IDXGIOutputDuplication **duplication); 476 477 /*** IDXGIOutput6 methods ***/ 478 HRESULT (STDMETHODCALLTYPE *GetDesc1)( 479 IDXGIOutput6 *This, 480 DXGI_OUTPUT_DESC1 *desc); 481 482 HRESULT (STDMETHODCALLTYPE *CheckHardwareCompositionSupport)( 483 IDXGIOutput6 *This, 484 UINT *flags); 485 486 END_INTERFACE 487 } IDXGIOutput6Vtbl; 488 489 interface IDXGIOutput6 { 490 CONST_VTBL IDXGIOutput6Vtbl* lpVtbl; 491 }; 492 493 #ifdef COBJMACROS 494 #ifndef WIDL_C_INLINE_WRAPPERS 495 /*** IUnknown methods ***/ 496 #define IDXGIOutput6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 497 #define IDXGIOutput6_AddRef(This) (This)->lpVtbl->AddRef(This) 498 #define IDXGIOutput6_Release(This) (This)->lpVtbl->Release(This) 499 /*** IDXGIObject methods ***/ 500 #define IDXGIOutput6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 501 #define IDXGIOutput6_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 502 #define IDXGIOutput6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 503 #define IDXGIOutput6_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 504 /*** IDXGIOutput methods ***/ 505 #define IDXGIOutput6_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) 506 #define IDXGIOutput6_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc) 507 #define IDXGIOutput6_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device) 508 #define IDXGIOutput6_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This) 509 #define IDXGIOutput6_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive) 510 #define IDXGIOutput6_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This) 511 #define IDXGIOutput6_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps) 512 #define IDXGIOutput6_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control) 513 #define IDXGIOutput6_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control) 514 #define IDXGIOutput6_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface) 515 #define IDXGIOutput6_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface) 516 #define IDXGIOutput6_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats) 517 /*** IDXGIOutput1 methods ***/ 518 #define IDXGIOutput6_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc) 519 #define IDXGIOutput6_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) 520 #define IDXGIOutput6_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination) 521 #define IDXGIOutput6_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication) 522 /*** IDXGIOutput2 methods ***/ 523 #define IDXGIOutput6_SupportsOverlays(This) (This)->lpVtbl->SupportsOverlays(This) 524 /*** IDXGIOutput3 methods ***/ 525 #define IDXGIOutput6_CheckOverlaySupport(This,enum_format,concerned_device,flags) (This)->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags) 526 /*** IDXGIOutput4 methods ***/ 527 #define IDXGIOutput6_CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags) (This)->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags) 528 /*** IDXGIOutput5 methods ***/ 529 #define IDXGIOutput6_DuplicateOutput1(This,device,flags,format_count,formats,duplication) (This)->lpVtbl->DuplicateOutput1(This,device,flags,format_count,formats,duplication) 530 /*** IDXGIOutput6 methods ***/ 531 #define IDXGIOutput6_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc) 532 #define IDXGIOutput6_CheckHardwareCompositionSupport(This,flags) (This)->lpVtbl->CheckHardwareCompositionSupport(This,flags) 533 #else 534 /*** IUnknown methods ***/ 535 static FORCEINLINE HRESULT IDXGIOutput6_QueryInterface(IDXGIOutput6* This,REFIID riid,void **ppvObject) { 536 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 537 } 538 static FORCEINLINE ULONG IDXGIOutput6_AddRef(IDXGIOutput6* This) { 539 return This->lpVtbl->AddRef(This); 540 } 541 static FORCEINLINE ULONG IDXGIOutput6_Release(IDXGIOutput6* This) { 542 return This->lpVtbl->Release(This); 543 } 544 /*** IDXGIObject methods ***/ 545 static FORCEINLINE HRESULT IDXGIOutput6_SetPrivateData(IDXGIOutput6* This,REFGUID guid,UINT data_size,const void *data) { 546 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 547 } 548 static FORCEINLINE HRESULT IDXGIOutput6_SetPrivateDataInterface(IDXGIOutput6* This,REFGUID guid,const IUnknown *object) { 549 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 550 } 551 static FORCEINLINE HRESULT IDXGIOutput6_GetPrivateData(IDXGIOutput6* This,REFGUID guid,UINT *data_size,void *data) { 552 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 553 } 554 static FORCEINLINE HRESULT IDXGIOutput6_GetParent(IDXGIOutput6* This,REFIID riid,void **parent) { 555 return This->lpVtbl->GetParent(This,riid,parent); 556 } 557 /*** IDXGIOutput methods ***/ 558 static FORCEINLINE HRESULT IDXGIOutput6_GetDesc(IDXGIOutput6* This,DXGI_OUTPUT_DESC *desc) { 559 return This->lpVtbl->GetDesc(This,desc); 560 } 561 static FORCEINLINE HRESULT IDXGIOutput6_GetDisplayModeList(IDXGIOutput6* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) { 562 return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc); 563 } 564 static FORCEINLINE HRESULT IDXGIOutput6_FindClosestMatchingMode(IDXGIOutput6* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) { 565 return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device); 566 } 567 static FORCEINLINE HRESULT IDXGIOutput6_WaitForVBlank(IDXGIOutput6* This) { 568 return This->lpVtbl->WaitForVBlank(This); 569 } 570 static FORCEINLINE HRESULT IDXGIOutput6_TakeOwnership(IDXGIOutput6* This,IUnknown *device,WINBOOL exclusive) { 571 return This->lpVtbl->TakeOwnership(This,device,exclusive); 572 } 573 static FORCEINLINE void IDXGIOutput6_ReleaseOwnership(IDXGIOutput6* This) { 574 This->lpVtbl->ReleaseOwnership(This); 575 } 576 static FORCEINLINE HRESULT IDXGIOutput6_GetGammaControlCapabilities(IDXGIOutput6* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) { 577 return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps); 578 } 579 static FORCEINLINE HRESULT IDXGIOutput6_SetGammaControl(IDXGIOutput6* This,const DXGI_GAMMA_CONTROL *gamma_control) { 580 return This->lpVtbl->SetGammaControl(This,gamma_control); 581 } 582 static FORCEINLINE HRESULT IDXGIOutput6_GetGammaControl(IDXGIOutput6* This,DXGI_GAMMA_CONTROL *gamma_control) { 583 return This->lpVtbl->GetGammaControl(This,gamma_control); 584 } 585 static FORCEINLINE HRESULT IDXGIOutput6_SetDisplaySurface(IDXGIOutput6* This,IDXGISurface *surface) { 586 return This->lpVtbl->SetDisplaySurface(This,surface); 587 } 588 static FORCEINLINE HRESULT IDXGIOutput6_GetDisplaySurfaceData(IDXGIOutput6* This,IDXGISurface *surface) { 589 return This->lpVtbl->GetDisplaySurfaceData(This,surface); 590 } 591 static FORCEINLINE HRESULT IDXGIOutput6_GetFrameStatistics(IDXGIOutput6* This,DXGI_FRAME_STATISTICS *stats) { 592 return This->lpVtbl->GetFrameStatistics(This,stats); 593 } 594 /*** IDXGIOutput1 methods ***/ 595 static FORCEINLINE HRESULT IDXGIOutput6_GetDisplayModeList1(IDXGIOutput6* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) { 596 return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc); 597 } 598 static FORCEINLINE HRESULT IDXGIOutput6_FindClosestMatchingMode1(IDXGIOutput6* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) { 599 return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device); 600 } 601 static FORCEINLINE HRESULT IDXGIOutput6_GetDisplaySurfaceData1(IDXGIOutput6* This,IDXGIResource *destination) { 602 return This->lpVtbl->GetDisplaySurfaceData1(This,destination); 603 } 604 static FORCEINLINE HRESULT IDXGIOutput6_DuplicateOutput(IDXGIOutput6* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) { 605 return This->lpVtbl->DuplicateOutput(This,device,output_duplication); 606 } 607 /*** IDXGIOutput2 methods ***/ 608 static FORCEINLINE WINBOOL IDXGIOutput6_SupportsOverlays(IDXGIOutput6* This) { 609 return This->lpVtbl->SupportsOverlays(This); 610 } 611 /*** IDXGIOutput3 methods ***/ 612 static FORCEINLINE HRESULT IDXGIOutput6_CheckOverlaySupport(IDXGIOutput6* This,DXGI_FORMAT enum_format,IUnknown *concerned_device,UINT *flags) { 613 return This->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags); 614 } 615 /*** IDXGIOutput4 methods ***/ 616 static FORCEINLINE HRESULT IDXGIOutput6_CheckOverlayColorSpaceSupport(IDXGIOutput6* This,DXGI_FORMAT format,DXGI_COLOR_SPACE_TYPE colour_space,IUnknown *device,UINT *flags) { 617 return This->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags); 618 } 619 /*** IDXGIOutput5 methods ***/ 620 static FORCEINLINE HRESULT IDXGIOutput6_DuplicateOutput1(IDXGIOutput6* This,IUnknown *device,UINT flags,UINT format_count,const DXGI_FORMAT *formats,IDXGIOutputDuplication **duplication) { 621 return This->lpVtbl->DuplicateOutput1(This,device,flags,format_count,formats,duplication); 622 } 623 /*** IDXGIOutput6 methods ***/ 624 static FORCEINLINE HRESULT IDXGIOutput6_GetDesc1(IDXGIOutput6* This,DXGI_OUTPUT_DESC1 *desc) { 625 return This->lpVtbl->GetDesc1(This,desc); 626 } 627 static FORCEINLINE HRESULT IDXGIOutput6_CheckHardwareCompositionSupport(IDXGIOutput6* This,UINT *flags) { 628 return This->lpVtbl->CheckHardwareCompositionSupport(This,flags); 629 } 630 #endif 631 #endif 632 633 #endif 634 635 636 #endif /* __IDXGIOutput6_INTERFACE_DEFINED__ */ 637 638 /* Begin additional prototypes for all interfaces */ 639 640 641 /* End additional prototypes */ 642 643 #ifdef __cplusplus 644 } 645 #endif 646 647 #endif /* __dxgi1_6_h__ */ 648