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