1 /*** Autogenerated by WIDL 6.4 from 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 #ifndef __IDXGIFactory6_FWD_DEFINED__ 38 #define __IDXGIFactory6_FWD_DEFINED__ 39 typedef interface IDXGIFactory6 IDXGIFactory6; 40 #ifdef __cplusplus 41 interface IDXGIFactory6; 42 #endif /* __cplusplus */ 43 #endif 44 45 #ifndef __IDXGIFactory7_FWD_DEFINED__ 46 #define __IDXGIFactory7_FWD_DEFINED__ 47 typedef interface IDXGIFactory7 IDXGIFactory7; 48 #ifdef __cplusplus 49 interface IDXGIFactory7; 50 #endif /* __cplusplus */ 51 #endif 52 53 /* Headers for imported files */ 54 55 #include <dxgi1_5.h> 56 57 #ifdef __cplusplus 58 extern "C" { 59 #endif 60 61 typedef enum DXGI_ADAPTER_FLAG3 { 62 DXGI_ADAPTER_FLAG3_NONE = 0x0, 63 DXGI_ADAPTER_FLAG3_REMOTE = 0x1, 64 DXGI_ADAPTER_FLAG3_SOFTWARE = 0x2, 65 DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE = 0x4, 66 DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES = 0x8, 67 DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES = 0x10, 68 DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE = 0x20, 69 DXGI_ADAPTER_FLAG3_FORCE_DWORD = 0xffffffff 70 } DXGI_ADAPTER_FLAG3; 71 typedef enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS { 72 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN = 0x1, 73 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED = 0x2, 74 DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED = 0x4 75 } DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS; 76 typedef enum DXGI_GPU_PREFERENCE { 77 DXGI_GPU_PREFERENCE_UNSPECIFIED = 0x0, 78 DXGI_GPU_PREFERENCE_MINIMUM_POWER = 0x1, 79 DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE = 0x2 80 } DXGI_GPU_PREFERENCE; 81 typedef struct DXGI_ADAPTER_DESC3 { 82 WCHAR Description[128]; 83 UINT VendorId; 84 UINT DeviceId; 85 UINT SubSysId; 86 UINT Revision; 87 SIZE_T DedicatedVideoMemory; 88 SIZE_T DedicatedSystemMemory; 89 SIZE_T SharedSystemMemory; 90 LUID AdapterLuid; 91 DXGI_ADAPTER_FLAG3 Flags; 92 DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; 93 DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; 94 } DXGI_ADAPTER_DESC3; 95 typedef struct DXGI_OUTPUT_DESC1 { 96 WCHAR DeviceName[32]; 97 RECT DesktopCoordinates; 98 WINBOOL AttachedToDesktop; 99 DXGI_MODE_ROTATION Rotation; 100 HMONITOR Monitor; 101 UINT BitsPerColor; 102 DXGI_COLOR_SPACE_TYPE ColorSpace; 103 FLOAT RedPrimary[2]; 104 FLOAT GreenPrimary[2]; 105 FLOAT BluePrimary[2]; 106 FLOAT WhitePoint[2]; 107 FLOAT MinLuminance; 108 FLOAT MaxLuminance; 109 FLOAT MaxFullFrameLuminance; 110 } DXGI_OUTPUT_DESC1; 111 /***************************************************************************** 112 * IDXGIAdapter4 interface 113 */ 114 #ifndef __IDXGIAdapter4_INTERFACE_DEFINED__ 115 #define __IDXGIAdapter4_INTERFACE_DEFINED__ 116 117 DEFINE_GUID(IID_IDXGIAdapter4, 0x3c8d99d1, 0x4fbf, 0x4181, 0xa8,0x2c, 0xaf,0x66,0xbf,0x7b,0xd2,0x4e); 118 #if defined(__cplusplus) && !defined(CINTERFACE) 119 MIDL_INTERFACE("3c8d99d1-4fbf-4181-a82c-af66bf7bd24e") 120 IDXGIAdapter4 : public IDXGIAdapter3 121 { 122 virtual HRESULT STDMETHODCALLTYPE GetDesc3( 123 DXGI_ADAPTER_DESC3 *desc) = 0; 124 125 }; 126 #ifdef __CRT_UUID_DECL 127 __CRT_UUID_DECL(IDXGIAdapter4, 0x3c8d99d1, 0x4fbf, 0x4181, 0xa8,0x2c, 0xaf,0x66,0xbf,0x7b,0xd2,0x4e) 128 #endif 129 #else 130 typedef struct IDXGIAdapter4Vtbl { 131 BEGIN_INTERFACE 132 133 /*** IUnknown methods ***/ 134 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 135 IDXGIAdapter4 *This, 136 REFIID riid, 137 void **ppvObject); 138 139 ULONG (STDMETHODCALLTYPE *AddRef)( 140 IDXGIAdapter4 *This); 141 142 ULONG (STDMETHODCALLTYPE *Release)( 143 IDXGIAdapter4 *This); 144 145 /*** IDXGIObject methods ***/ 146 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 147 IDXGIAdapter4 *This, 148 REFGUID guid, 149 UINT data_size, 150 const void *data); 151 152 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 153 IDXGIAdapter4 *This, 154 REFGUID guid, 155 const IUnknown *object); 156 157 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 158 IDXGIAdapter4 *This, 159 REFGUID guid, 160 UINT *data_size, 161 void *data); 162 163 HRESULT (STDMETHODCALLTYPE *GetParent)( 164 IDXGIAdapter4 *This, 165 REFIID riid, 166 void **parent); 167 168 /*** IDXGIAdapter methods ***/ 169 HRESULT (STDMETHODCALLTYPE *EnumOutputs)( 170 IDXGIAdapter4 *This, 171 UINT output_idx, 172 IDXGIOutput **output); 173 174 HRESULT (STDMETHODCALLTYPE *GetDesc)( 175 IDXGIAdapter4 *This, 176 DXGI_ADAPTER_DESC *desc); 177 178 HRESULT (STDMETHODCALLTYPE *CheckInterfaceSupport)( 179 IDXGIAdapter4 *This, 180 REFGUID guid, 181 LARGE_INTEGER *umd_version); 182 183 /*** IDXGIAdapter1 methods ***/ 184 HRESULT (STDMETHODCALLTYPE *GetDesc1)( 185 IDXGIAdapter4 *This, 186 DXGI_ADAPTER_DESC1 *pDesc); 187 188 /*** IDXGIAdapter2 methods ***/ 189 HRESULT (STDMETHODCALLTYPE *GetDesc2)( 190 IDXGIAdapter4 *This, 191 DXGI_ADAPTER_DESC2 *pDesc); 192 193 /*** IDXGIAdapter3 methods ***/ 194 HRESULT (STDMETHODCALLTYPE *RegisterHardwareContentProtectionTeardownStatusEvent)( 195 IDXGIAdapter4 *This, 196 HANDLE event, 197 DWORD *cookie); 198 199 void (STDMETHODCALLTYPE *UnregisterHardwareContentProtectionTeardownStatus)( 200 IDXGIAdapter4 *This, 201 DWORD cookie); 202 203 HRESULT (STDMETHODCALLTYPE *QueryVideoMemoryInfo)( 204 IDXGIAdapter4 *This, 205 UINT node_index, 206 DXGI_MEMORY_SEGMENT_GROUP segment_group, 207 DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info); 208 209 HRESULT (STDMETHODCALLTYPE *SetVideoMemoryReservation)( 210 IDXGIAdapter4 *This, 211 UINT node_index, 212 DXGI_MEMORY_SEGMENT_GROUP segment_group, 213 UINT64 reservation); 214 215 HRESULT (STDMETHODCALLTYPE *RegisterVideoMemoryBudgetChangeNotificationEvent)( 216 IDXGIAdapter4 *This, 217 HANDLE event, 218 DWORD *cookie); 219 220 void (STDMETHODCALLTYPE *UnregisterVideoMemoryBudgetChangeNotification)( 221 IDXGIAdapter4 *This, 222 DWORD cookie); 223 224 /*** IDXGIAdapter4 methods ***/ 225 HRESULT (STDMETHODCALLTYPE *GetDesc3)( 226 IDXGIAdapter4 *This, 227 DXGI_ADAPTER_DESC3 *desc); 228 229 END_INTERFACE 230 } IDXGIAdapter4Vtbl; 231 232 interface IDXGIAdapter4 { 233 CONST_VTBL IDXGIAdapter4Vtbl* lpVtbl; 234 }; 235 236 #ifdef COBJMACROS 237 #ifndef WIDL_C_INLINE_WRAPPERS 238 /*** IUnknown methods ***/ 239 #define IDXGIAdapter4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 240 #define IDXGIAdapter4_AddRef(This) (This)->lpVtbl->AddRef(This) 241 #define IDXGIAdapter4_Release(This) (This)->lpVtbl->Release(This) 242 /*** IDXGIObject methods ***/ 243 #define IDXGIAdapter4_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 244 #define IDXGIAdapter4_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 245 #define IDXGIAdapter4_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 246 #define IDXGIAdapter4_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 247 /*** IDXGIAdapter methods ***/ 248 #define IDXGIAdapter4_EnumOutputs(This,output_idx,output) (This)->lpVtbl->EnumOutputs(This,output_idx,output) 249 #define IDXGIAdapter4_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) 250 #define IDXGIAdapter4_CheckInterfaceSupport(This,guid,umd_version) (This)->lpVtbl->CheckInterfaceSupport(This,guid,umd_version) 251 /*** IDXGIAdapter1 methods ***/ 252 #define IDXGIAdapter4_GetDesc1(This,pDesc) (This)->lpVtbl->GetDesc1(This,pDesc) 253 /*** IDXGIAdapter2 methods ***/ 254 #define IDXGIAdapter4_GetDesc2(This,pDesc) (This)->lpVtbl->GetDesc2(This,pDesc) 255 /*** IDXGIAdapter3 methods ***/ 256 #define IDXGIAdapter4_RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie) (This)->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie) 257 #define IDXGIAdapter4_UnregisterHardwareContentProtectionTeardownStatus(This,cookie) (This)->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie) 258 #define IDXGIAdapter4_QueryVideoMemoryInfo(This,node_index,segment_group,memory_info) (This)->lpVtbl->QueryVideoMemoryInfo(This,node_index,segment_group,memory_info) 259 #define IDXGIAdapter4_SetVideoMemoryReservation(This,node_index,segment_group,reservation) (This)->lpVtbl->SetVideoMemoryReservation(This,node_index,segment_group,reservation) 260 #define IDXGIAdapter4_RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie) (This)->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie) 261 #define IDXGIAdapter4_UnregisterVideoMemoryBudgetChangeNotification(This,cookie) (This)->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie) 262 /*** IDXGIAdapter4 methods ***/ 263 #define IDXGIAdapter4_GetDesc3(This,desc) (This)->lpVtbl->GetDesc3(This,desc) 264 #else 265 /*** IUnknown methods ***/ 266 static FORCEINLINE HRESULT IDXGIAdapter4_QueryInterface(IDXGIAdapter4* This,REFIID riid,void **ppvObject) { 267 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 268 } 269 static FORCEINLINE ULONG IDXGIAdapter4_AddRef(IDXGIAdapter4* This) { 270 return This->lpVtbl->AddRef(This); 271 } 272 static FORCEINLINE ULONG IDXGIAdapter4_Release(IDXGIAdapter4* This) { 273 return This->lpVtbl->Release(This); 274 } 275 /*** IDXGIObject methods ***/ 276 static FORCEINLINE HRESULT IDXGIAdapter4_SetPrivateData(IDXGIAdapter4* This,REFGUID guid,UINT data_size,const void *data) { 277 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 278 } 279 static FORCEINLINE HRESULT IDXGIAdapter4_SetPrivateDataInterface(IDXGIAdapter4* This,REFGUID guid,const IUnknown *object) { 280 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 281 } 282 static FORCEINLINE HRESULT IDXGIAdapter4_GetPrivateData(IDXGIAdapter4* This,REFGUID guid,UINT *data_size,void *data) { 283 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 284 } 285 static FORCEINLINE HRESULT IDXGIAdapter4_GetParent(IDXGIAdapter4* This,REFIID riid,void **parent) { 286 return This->lpVtbl->GetParent(This,riid,parent); 287 } 288 /*** IDXGIAdapter methods ***/ 289 static FORCEINLINE HRESULT IDXGIAdapter4_EnumOutputs(IDXGIAdapter4* This,UINT output_idx,IDXGIOutput **output) { 290 return This->lpVtbl->EnumOutputs(This,output_idx,output); 291 } 292 static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc(IDXGIAdapter4* This,DXGI_ADAPTER_DESC *desc) { 293 return This->lpVtbl->GetDesc(This,desc); 294 } 295 static FORCEINLINE HRESULT IDXGIAdapter4_CheckInterfaceSupport(IDXGIAdapter4* This,REFGUID guid,LARGE_INTEGER *umd_version) { 296 return This->lpVtbl->CheckInterfaceSupport(This,guid,umd_version); 297 } 298 /*** IDXGIAdapter1 methods ***/ 299 static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc1(IDXGIAdapter4* This,DXGI_ADAPTER_DESC1 *pDesc) { 300 return This->lpVtbl->GetDesc1(This,pDesc); 301 } 302 /*** IDXGIAdapter2 methods ***/ 303 static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc2(IDXGIAdapter4* This,DXGI_ADAPTER_DESC2 *pDesc) { 304 return This->lpVtbl->GetDesc2(This,pDesc); 305 } 306 /*** IDXGIAdapter3 methods ***/ 307 static FORCEINLINE HRESULT IDXGIAdapter4_RegisterHardwareContentProtectionTeardownStatusEvent(IDXGIAdapter4* This,HANDLE event,DWORD *cookie) { 308 return This->lpVtbl->RegisterHardwareContentProtectionTeardownStatusEvent(This,event,cookie); 309 } 310 static FORCEINLINE void IDXGIAdapter4_UnregisterHardwareContentProtectionTeardownStatus(IDXGIAdapter4* This,DWORD cookie) { 311 This->lpVtbl->UnregisterHardwareContentProtectionTeardownStatus(This,cookie); 312 } 313 static FORCEINLINE HRESULT IDXGIAdapter4_QueryVideoMemoryInfo(IDXGIAdapter4* This,UINT node_index,DXGI_MEMORY_SEGMENT_GROUP segment_group,DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info) { 314 return This->lpVtbl->QueryVideoMemoryInfo(This,node_index,segment_group,memory_info); 315 } 316 static FORCEINLINE HRESULT IDXGIAdapter4_SetVideoMemoryReservation(IDXGIAdapter4* This,UINT node_index,DXGI_MEMORY_SEGMENT_GROUP segment_group,UINT64 reservation) { 317 return This->lpVtbl->SetVideoMemoryReservation(This,node_index,segment_group,reservation); 318 } 319 static FORCEINLINE HRESULT IDXGIAdapter4_RegisterVideoMemoryBudgetChangeNotificationEvent(IDXGIAdapter4* This,HANDLE event,DWORD *cookie) { 320 return This->lpVtbl->RegisterVideoMemoryBudgetChangeNotificationEvent(This,event,cookie); 321 } 322 static FORCEINLINE void IDXGIAdapter4_UnregisterVideoMemoryBudgetChangeNotification(IDXGIAdapter4* This,DWORD cookie) { 323 This->lpVtbl->UnregisterVideoMemoryBudgetChangeNotification(This,cookie); 324 } 325 /*** IDXGIAdapter4 methods ***/ 326 static FORCEINLINE HRESULT IDXGIAdapter4_GetDesc3(IDXGIAdapter4* This,DXGI_ADAPTER_DESC3 *desc) { 327 return This->lpVtbl->GetDesc3(This,desc); 328 } 329 #endif 330 #endif 331 332 #endif 333 334 335 #endif /* __IDXGIAdapter4_INTERFACE_DEFINED__ */ 336 337 /***************************************************************************** 338 * IDXGIOutput6 interface 339 */ 340 #ifndef __IDXGIOutput6_INTERFACE_DEFINED__ 341 #define __IDXGIOutput6_INTERFACE_DEFINED__ 342 343 DEFINE_GUID(IID_IDXGIOutput6, 0x068346e8, 0xaaec, 0x4b84, 0xad,0xd7, 0x13,0x7f,0x51,0x3f,0x77,0xa1); 344 #if defined(__cplusplus) && !defined(CINTERFACE) 345 MIDL_INTERFACE("068346e8-aaec-4b84-add7-137f513f77a1") 346 IDXGIOutput6 : public IDXGIOutput5 347 { 348 virtual HRESULT STDMETHODCALLTYPE GetDesc1( 349 DXGI_OUTPUT_DESC1 *desc) = 0; 350 351 virtual HRESULT STDMETHODCALLTYPE CheckHardwareCompositionSupport( 352 UINT *flags) = 0; 353 354 }; 355 #ifdef __CRT_UUID_DECL 356 __CRT_UUID_DECL(IDXGIOutput6, 0x068346e8, 0xaaec, 0x4b84, 0xad,0xd7, 0x13,0x7f,0x51,0x3f,0x77,0xa1) 357 #endif 358 #else 359 typedef struct IDXGIOutput6Vtbl { 360 BEGIN_INTERFACE 361 362 /*** IUnknown methods ***/ 363 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 364 IDXGIOutput6 *This, 365 REFIID riid, 366 void **ppvObject); 367 368 ULONG (STDMETHODCALLTYPE *AddRef)( 369 IDXGIOutput6 *This); 370 371 ULONG (STDMETHODCALLTYPE *Release)( 372 IDXGIOutput6 *This); 373 374 /*** IDXGIObject methods ***/ 375 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 376 IDXGIOutput6 *This, 377 REFGUID guid, 378 UINT data_size, 379 const void *data); 380 381 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 382 IDXGIOutput6 *This, 383 REFGUID guid, 384 const IUnknown *object); 385 386 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 387 IDXGIOutput6 *This, 388 REFGUID guid, 389 UINT *data_size, 390 void *data); 391 392 HRESULT (STDMETHODCALLTYPE *GetParent)( 393 IDXGIOutput6 *This, 394 REFIID riid, 395 void **parent); 396 397 /*** IDXGIOutput methods ***/ 398 HRESULT (STDMETHODCALLTYPE *GetDesc)( 399 IDXGIOutput6 *This, 400 DXGI_OUTPUT_DESC *desc); 401 402 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)( 403 IDXGIOutput6 *This, 404 DXGI_FORMAT format, 405 UINT flags, 406 UINT *mode_count, 407 DXGI_MODE_DESC *desc); 408 409 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)( 410 IDXGIOutput6 *This, 411 const DXGI_MODE_DESC *mode, 412 DXGI_MODE_DESC *closest_match, 413 IUnknown *device); 414 415 HRESULT (STDMETHODCALLTYPE *WaitForVBlank)( 416 IDXGIOutput6 *This); 417 418 HRESULT (STDMETHODCALLTYPE *TakeOwnership)( 419 IDXGIOutput6 *This, 420 IUnknown *device, 421 WINBOOL exclusive); 422 423 void (STDMETHODCALLTYPE *ReleaseOwnership)( 424 IDXGIOutput6 *This); 425 426 HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)( 427 IDXGIOutput6 *This, 428 DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps); 429 430 HRESULT (STDMETHODCALLTYPE *SetGammaControl)( 431 IDXGIOutput6 *This, 432 const DXGI_GAMMA_CONTROL *gamma_control); 433 434 HRESULT (STDMETHODCALLTYPE *GetGammaControl)( 435 IDXGIOutput6 *This, 436 DXGI_GAMMA_CONTROL *gamma_control); 437 438 HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)( 439 IDXGIOutput6 *This, 440 IDXGISurface *surface); 441 442 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)( 443 IDXGIOutput6 *This, 444 IDXGISurface *surface); 445 446 HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)( 447 IDXGIOutput6 *This, 448 DXGI_FRAME_STATISTICS *stats); 449 450 /*** IDXGIOutput1 methods ***/ 451 HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)( 452 IDXGIOutput6 *This, 453 DXGI_FORMAT enum_format, 454 UINT flags, 455 UINT *num_modes, 456 DXGI_MODE_DESC1 *desc); 457 458 HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)( 459 IDXGIOutput6 *This, 460 const DXGI_MODE_DESC1 *mode_to_match, 461 DXGI_MODE_DESC1 *closest_match, 462 IUnknown *concerned_device); 463 464 HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)( 465 IDXGIOutput6 *This, 466 IDXGIResource *destination); 467 468 HRESULT (STDMETHODCALLTYPE *DuplicateOutput)( 469 IDXGIOutput6 *This, 470 IUnknown *device, 471 IDXGIOutputDuplication **output_duplication); 472 473 /*** IDXGIOutput2 methods ***/ 474 WINBOOL (STDMETHODCALLTYPE *SupportsOverlays)( 475 IDXGIOutput6 *This); 476 477 /*** IDXGIOutput3 methods ***/ 478 HRESULT (STDMETHODCALLTYPE *CheckOverlaySupport)( 479 IDXGIOutput6 *This, 480 DXGI_FORMAT enum_format, 481 IUnknown *concerned_device, 482 UINT *flags); 483 484 /*** IDXGIOutput4 methods ***/ 485 HRESULT (STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport)( 486 IDXGIOutput6 *This, 487 DXGI_FORMAT format, 488 DXGI_COLOR_SPACE_TYPE colour_space, 489 IUnknown *device, 490 UINT *flags); 491 492 /*** IDXGIOutput5 methods ***/ 493 HRESULT (STDMETHODCALLTYPE *DuplicateOutput1)( 494 IDXGIOutput6 *This, 495 IUnknown *device, 496 UINT flags, 497 UINT format_count, 498 const DXGI_FORMAT *formats, 499 IDXGIOutputDuplication **duplication); 500 501 /*** IDXGIOutput6 methods ***/ 502 HRESULT (STDMETHODCALLTYPE *GetDesc1)( 503 IDXGIOutput6 *This, 504 DXGI_OUTPUT_DESC1 *desc); 505 506 HRESULT (STDMETHODCALLTYPE *CheckHardwareCompositionSupport)( 507 IDXGIOutput6 *This, 508 UINT *flags); 509 510 END_INTERFACE 511 } IDXGIOutput6Vtbl; 512 513 interface IDXGIOutput6 { 514 CONST_VTBL IDXGIOutput6Vtbl* lpVtbl; 515 }; 516 517 #ifdef COBJMACROS 518 #ifndef WIDL_C_INLINE_WRAPPERS 519 /*** IUnknown methods ***/ 520 #define IDXGIOutput6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 521 #define IDXGIOutput6_AddRef(This) (This)->lpVtbl->AddRef(This) 522 #define IDXGIOutput6_Release(This) (This)->lpVtbl->Release(This) 523 /*** IDXGIObject methods ***/ 524 #define IDXGIOutput6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 525 #define IDXGIOutput6_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 526 #define IDXGIOutput6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 527 #define IDXGIOutput6_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 528 /*** IDXGIOutput methods ***/ 529 #define IDXGIOutput6_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc) 530 #define IDXGIOutput6_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc) 531 #define IDXGIOutput6_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device) 532 #define IDXGIOutput6_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This) 533 #define IDXGIOutput6_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive) 534 #define IDXGIOutput6_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This) 535 #define IDXGIOutput6_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps) 536 #define IDXGIOutput6_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control) 537 #define IDXGIOutput6_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control) 538 #define IDXGIOutput6_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface) 539 #define IDXGIOutput6_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface) 540 #define IDXGIOutput6_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats) 541 /*** IDXGIOutput1 methods ***/ 542 #define IDXGIOutput6_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc) 543 #define IDXGIOutput6_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) 544 #define IDXGIOutput6_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination) 545 #define IDXGIOutput6_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication) 546 /*** IDXGIOutput2 methods ***/ 547 #define IDXGIOutput6_SupportsOverlays(This) (This)->lpVtbl->SupportsOverlays(This) 548 /*** IDXGIOutput3 methods ***/ 549 #define IDXGIOutput6_CheckOverlaySupport(This,enum_format,concerned_device,flags) (This)->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags) 550 /*** IDXGIOutput4 methods ***/ 551 #define IDXGIOutput6_CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags) (This)->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags) 552 /*** IDXGIOutput5 methods ***/ 553 #define IDXGIOutput6_DuplicateOutput1(This,device,flags,format_count,formats,duplication) (This)->lpVtbl->DuplicateOutput1(This,device,flags,format_count,formats,duplication) 554 /*** IDXGIOutput6 methods ***/ 555 #define IDXGIOutput6_GetDesc1(This,desc) (This)->lpVtbl->GetDesc1(This,desc) 556 #define IDXGIOutput6_CheckHardwareCompositionSupport(This,flags) (This)->lpVtbl->CheckHardwareCompositionSupport(This,flags) 557 #else 558 /*** IUnknown methods ***/ 559 static FORCEINLINE HRESULT IDXGIOutput6_QueryInterface(IDXGIOutput6* This,REFIID riid,void **ppvObject) { 560 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 561 } 562 static FORCEINLINE ULONG IDXGIOutput6_AddRef(IDXGIOutput6* This) { 563 return This->lpVtbl->AddRef(This); 564 } 565 static FORCEINLINE ULONG IDXGIOutput6_Release(IDXGIOutput6* This) { 566 return This->lpVtbl->Release(This); 567 } 568 /*** IDXGIObject methods ***/ 569 static FORCEINLINE HRESULT IDXGIOutput6_SetPrivateData(IDXGIOutput6* This,REFGUID guid,UINT data_size,const void *data) { 570 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 571 } 572 static FORCEINLINE HRESULT IDXGIOutput6_SetPrivateDataInterface(IDXGIOutput6* This,REFGUID guid,const IUnknown *object) { 573 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 574 } 575 static FORCEINLINE HRESULT IDXGIOutput6_GetPrivateData(IDXGIOutput6* This,REFGUID guid,UINT *data_size,void *data) { 576 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 577 } 578 static FORCEINLINE HRESULT IDXGIOutput6_GetParent(IDXGIOutput6* This,REFIID riid,void **parent) { 579 return This->lpVtbl->GetParent(This,riid,parent); 580 } 581 /*** IDXGIOutput methods ***/ 582 static FORCEINLINE HRESULT IDXGIOutput6_GetDesc(IDXGIOutput6* This,DXGI_OUTPUT_DESC *desc) { 583 return This->lpVtbl->GetDesc(This,desc); 584 } 585 static FORCEINLINE HRESULT IDXGIOutput6_GetDisplayModeList(IDXGIOutput6* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) { 586 return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc); 587 } 588 static FORCEINLINE HRESULT IDXGIOutput6_FindClosestMatchingMode(IDXGIOutput6* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) { 589 return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device); 590 } 591 static FORCEINLINE HRESULT IDXGIOutput6_WaitForVBlank(IDXGIOutput6* This) { 592 return This->lpVtbl->WaitForVBlank(This); 593 } 594 static FORCEINLINE HRESULT IDXGIOutput6_TakeOwnership(IDXGIOutput6* This,IUnknown *device,WINBOOL exclusive) { 595 return This->lpVtbl->TakeOwnership(This,device,exclusive); 596 } 597 static FORCEINLINE void IDXGIOutput6_ReleaseOwnership(IDXGIOutput6* This) { 598 This->lpVtbl->ReleaseOwnership(This); 599 } 600 static FORCEINLINE HRESULT IDXGIOutput6_GetGammaControlCapabilities(IDXGIOutput6* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) { 601 return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps); 602 } 603 static FORCEINLINE HRESULT IDXGIOutput6_SetGammaControl(IDXGIOutput6* This,const DXGI_GAMMA_CONTROL *gamma_control) { 604 return This->lpVtbl->SetGammaControl(This,gamma_control); 605 } 606 static FORCEINLINE HRESULT IDXGIOutput6_GetGammaControl(IDXGIOutput6* This,DXGI_GAMMA_CONTROL *gamma_control) { 607 return This->lpVtbl->GetGammaControl(This,gamma_control); 608 } 609 static FORCEINLINE HRESULT IDXGIOutput6_SetDisplaySurface(IDXGIOutput6* This,IDXGISurface *surface) { 610 return This->lpVtbl->SetDisplaySurface(This,surface); 611 } 612 static FORCEINLINE HRESULT IDXGIOutput6_GetDisplaySurfaceData(IDXGIOutput6* This,IDXGISurface *surface) { 613 return This->lpVtbl->GetDisplaySurfaceData(This,surface); 614 } 615 static FORCEINLINE HRESULT IDXGIOutput6_GetFrameStatistics(IDXGIOutput6* This,DXGI_FRAME_STATISTICS *stats) { 616 return This->lpVtbl->GetFrameStatistics(This,stats); 617 } 618 /*** IDXGIOutput1 methods ***/ 619 static FORCEINLINE HRESULT IDXGIOutput6_GetDisplayModeList1(IDXGIOutput6* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) { 620 return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc); 621 } 622 static FORCEINLINE HRESULT IDXGIOutput6_FindClosestMatchingMode1(IDXGIOutput6* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) { 623 return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device); 624 } 625 static FORCEINLINE HRESULT IDXGIOutput6_GetDisplaySurfaceData1(IDXGIOutput6* This,IDXGIResource *destination) { 626 return This->lpVtbl->GetDisplaySurfaceData1(This,destination); 627 } 628 static FORCEINLINE HRESULT IDXGIOutput6_DuplicateOutput(IDXGIOutput6* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) { 629 return This->lpVtbl->DuplicateOutput(This,device,output_duplication); 630 } 631 /*** IDXGIOutput2 methods ***/ 632 static FORCEINLINE WINBOOL IDXGIOutput6_SupportsOverlays(IDXGIOutput6* This) { 633 return This->lpVtbl->SupportsOverlays(This); 634 } 635 /*** IDXGIOutput3 methods ***/ 636 static FORCEINLINE HRESULT IDXGIOutput6_CheckOverlaySupport(IDXGIOutput6* This,DXGI_FORMAT enum_format,IUnknown *concerned_device,UINT *flags) { 637 return This->lpVtbl->CheckOverlaySupport(This,enum_format,concerned_device,flags); 638 } 639 /*** IDXGIOutput4 methods ***/ 640 static FORCEINLINE HRESULT IDXGIOutput6_CheckOverlayColorSpaceSupport(IDXGIOutput6* This,DXGI_FORMAT format,DXGI_COLOR_SPACE_TYPE colour_space,IUnknown *device,UINT *flags) { 641 return This->lpVtbl->CheckOverlayColorSpaceSupport(This,format,colour_space,device,flags); 642 } 643 /*** IDXGIOutput5 methods ***/ 644 static FORCEINLINE HRESULT IDXGIOutput6_DuplicateOutput1(IDXGIOutput6* This,IUnknown *device,UINT flags,UINT format_count,const DXGI_FORMAT *formats,IDXGIOutputDuplication **duplication) { 645 return This->lpVtbl->DuplicateOutput1(This,device,flags,format_count,formats,duplication); 646 } 647 /*** IDXGIOutput6 methods ***/ 648 static FORCEINLINE HRESULT IDXGIOutput6_GetDesc1(IDXGIOutput6* This,DXGI_OUTPUT_DESC1 *desc) { 649 return This->lpVtbl->GetDesc1(This,desc); 650 } 651 static FORCEINLINE HRESULT IDXGIOutput6_CheckHardwareCompositionSupport(IDXGIOutput6* This,UINT *flags) { 652 return This->lpVtbl->CheckHardwareCompositionSupport(This,flags); 653 } 654 #endif 655 #endif 656 657 #endif 658 659 660 #endif /* __IDXGIOutput6_INTERFACE_DEFINED__ */ 661 662 /***************************************************************************** 663 * IDXGIFactory6 interface 664 */ 665 #ifndef __IDXGIFactory6_INTERFACE_DEFINED__ 666 #define __IDXGIFactory6_INTERFACE_DEFINED__ 667 668 DEFINE_GUID(IID_IDXGIFactory6, 0xc1b6694f, 0xff09, 0x44a9, 0xb0,0x3c, 0x77,0x90,0x0a,0x0a,0x1d,0x17); 669 #if defined(__cplusplus) && !defined(CINTERFACE) 670 MIDL_INTERFACE("c1b6694f-ff09-44a9-b03c-77900a0a1d17") 671 IDXGIFactory6 : public IDXGIFactory5 672 { 673 virtual HRESULT STDMETHODCALLTYPE EnumAdapterByGpuPreference( 674 UINT adapter_idx, 675 DXGI_GPU_PREFERENCE gpu_preference, 676 REFIID iid, 677 void **adapter) = 0; 678 679 }; 680 #ifdef __CRT_UUID_DECL 681 __CRT_UUID_DECL(IDXGIFactory6, 0xc1b6694f, 0xff09, 0x44a9, 0xb0,0x3c, 0x77,0x90,0x0a,0x0a,0x1d,0x17) 682 #endif 683 #else 684 typedef struct IDXGIFactory6Vtbl { 685 BEGIN_INTERFACE 686 687 /*** IUnknown methods ***/ 688 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 689 IDXGIFactory6 *This, 690 REFIID riid, 691 void **ppvObject); 692 693 ULONG (STDMETHODCALLTYPE *AddRef)( 694 IDXGIFactory6 *This); 695 696 ULONG (STDMETHODCALLTYPE *Release)( 697 IDXGIFactory6 *This); 698 699 /*** IDXGIObject methods ***/ 700 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 701 IDXGIFactory6 *This, 702 REFGUID guid, 703 UINT data_size, 704 const void *data); 705 706 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 707 IDXGIFactory6 *This, 708 REFGUID guid, 709 const IUnknown *object); 710 711 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 712 IDXGIFactory6 *This, 713 REFGUID guid, 714 UINT *data_size, 715 void *data); 716 717 HRESULT (STDMETHODCALLTYPE *GetParent)( 718 IDXGIFactory6 *This, 719 REFIID riid, 720 void **parent); 721 722 /*** IDXGIFactory methods ***/ 723 HRESULT (STDMETHODCALLTYPE *EnumAdapters)( 724 IDXGIFactory6 *This, 725 UINT adapter_idx, 726 IDXGIAdapter **adapter); 727 728 HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)( 729 IDXGIFactory6 *This, 730 HWND window, 731 UINT flags); 732 733 HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)( 734 IDXGIFactory6 *This, 735 HWND *window); 736 737 HRESULT (STDMETHODCALLTYPE *CreateSwapChain)( 738 IDXGIFactory6 *This, 739 IUnknown *device, 740 DXGI_SWAP_CHAIN_DESC *desc, 741 IDXGISwapChain **swapchain); 742 743 HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)( 744 IDXGIFactory6 *This, 745 HMODULE swrast, 746 IDXGIAdapter **adapter); 747 748 /*** IDXGIFactory1 methods ***/ 749 HRESULT (STDMETHODCALLTYPE *EnumAdapters1)( 750 IDXGIFactory6 *This, 751 UINT Adapter, 752 IDXGIAdapter1 **ppAdapter); 753 754 WINBOOL (STDMETHODCALLTYPE *IsCurrent)( 755 IDXGIFactory6 *This); 756 757 /*** IDXGIFactory2 methods ***/ 758 WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)( 759 IDXGIFactory6 *This); 760 761 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)( 762 IDXGIFactory6 *This, 763 IUnknown *pDevice, 764 HWND hWnd, 765 const DXGI_SWAP_CHAIN_DESC1 *pDesc, 766 const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc, 767 IDXGIOutput *pRestrictToOutput, 768 IDXGISwapChain1 **ppSwapChain); 769 770 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)( 771 IDXGIFactory6 *This, 772 IUnknown *pDevice, 773 IUnknown *pWindow, 774 const DXGI_SWAP_CHAIN_DESC1 *pDesc, 775 IDXGIOutput *pRestrictToOutput, 776 IDXGISwapChain1 **ppSwapChain); 777 778 HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)( 779 IDXGIFactory6 *This, 780 HANDLE hResource, 781 LUID *pLuid); 782 783 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)( 784 IDXGIFactory6 *This, 785 HWND WindowHandle, 786 UINT wMsg, 787 DWORD *pdwCookie); 788 789 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)( 790 IDXGIFactory6 *This, 791 HANDLE hEvent, 792 DWORD *pdwCookie); 793 794 void (STDMETHODCALLTYPE *UnregisterStereoStatus)( 795 IDXGIFactory6 *This, 796 DWORD dwCookie); 797 798 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)( 799 IDXGIFactory6 *This, 800 HWND WindowHandle, 801 UINT wMsg, 802 DWORD *pdwCookie); 803 804 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)( 805 IDXGIFactory6 *This, 806 HANDLE hEvent, 807 DWORD *pdwCookie); 808 809 void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)( 810 IDXGIFactory6 *This, 811 DWORD dwCookie); 812 813 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)( 814 IDXGIFactory6 *This, 815 IUnknown *pDevice, 816 const DXGI_SWAP_CHAIN_DESC1 *pDesc, 817 IDXGIOutput *pRestrictToOutput, 818 IDXGISwapChain1 **ppSwapChain); 819 820 /*** IDXGIFactory3 methods ***/ 821 UINT (STDMETHODCALLTYPE *GetCreationFlags)( 822 IDXGIFactory6 *This); 823 824 /*** IDXGIFactory4 methods ***/ 825 HRESULT (STDMETHODCALLTYPE *EnumAdapterByLuid)( 826 IDXGIFactory6 *This, 827 LUID luid, 828 REFIID iid, 829 void **adapter); 830 831 HRESULT (STDMETHODCALLTYPE *EnumWarpAdapter)( 832 IDXGIFactory6 *This, 833 REFIID iid, 834 void **adapter); 835 836 /*** IDXGIFactory5 methods ***/ 837 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( 838 IDXGIFactory6 *This, 839 DXGI_FEATURE feature, 840 void *support_data, 841 UINT support_data_size); 842 843 /*** IDXGIFactory6 methods ***/ 844 HRESULT (STDMETHODCALLTYPE *EnumAdapterByGpuPreference)( 845 IDXGIFactory6 *This, 846 UINT adapter_idx, 847 DXGI_GPU_PREFERENCE gpu_preference, 848 REFIID iid, 849 void **adapter); 850 851 END_INTERFACE 852 } IDXGIFactory6Vtbl; 853 854 interface IDXGIFactory6 { 855 CONST_VTBL IDXGIFactory6Vtbl* lpVtbl; 856 }; 857 858 #ifdef COBJMACROS 859 #ifndef WIDL_C_INLINE_WRAPPERS 860 /*** IUnknown methods ***/ 861 #define IDXGIFactory6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 862 #define IDXGIFactory6_AddRef(This) (This)->lpVtbl->AddRef(This) 863 #define IDXGIFactory6_Release(This) (This)->lpVtbl->Release(This) 864 /*** IDXGIObject methods ***/ 865 #define IDXGIFactory6_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 866 #define IDXGIFactory6_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 867 #define IDXGIFactory6_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 868 #define IDXGIFactory6_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 869 /*** IDXGIFactory methods ***/ 870 #define IDXGIFactory6_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter) 871 #define IDXGIFactory6_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags) 872 #define IDXGIFactory6_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window) 873 #define IDXGIFactory6_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain) 874 #define IDXGIFactory6_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter) 875 /*** IDXGIFactory1 methods ***/ 876 #define IDXGIFactory6_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter) 877 #define IDXGIFactory6_IsCurrent(This) (This)->lpVtbl->IsCurrent(This) 878 /*** IDXGIFactory2 methods ***/ 879 #define IDXGIFactory6_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This) 880 #define IDXGIFactory6_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) 881 #define IDXGIFactory6_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) 882 #define IDXGIFactory6_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid) 883 #define IDXGIFactory6_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) 884 #define IDXGIFactory6_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie) 885 #define IDXGIFactory6_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie) 886 #define IDXGIFactory6_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) 887 #define IDXGIFactory6_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) 888 #define IDXGIFactory6_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie) 889 #define IDXGIFactory6_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) 890 /*** IDXGIFactory3 methods ***/ 891 #define IDXGIFactory6_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This) 892 /*** IDXGIFactory4 methods ***/ 893 #define IDXGIFactory6_EnumAdapterByLuid(This,luid,iid,adapter) (This)->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter) 894 #define IDXGIFactory6_EnumWarpAdapter(This,iid,adapter) (This)->lpVtbl->EnumWarpAdapter(This,iid,adapter) 895 /*** IDXGIFactory5 methods ***/ 896 #define IDXGIFactory6_CheckFeatureSupport(This,feature,support_data,support_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size) 897 /*** IDXGIFactory6 methods ***/ 898 #define IDXGIFactory6_EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter) (This)->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter) 899 #else 900 /*** IUnknown methods ***/ 901 static FORCEINLINE HRESULT IDXGIFactory6_QueryInterface(IDXGIFactory6* This,REFIID riid,void **ppvObject) { 902 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 903 } 904 static FORCEINLINE ULONG IDXGIFactory6_AddRef(IDXGIFactory6* This) { 905 return This->lpVtbl->AddRef(This); 906 } 907 static FORCEINLINE ULONG IDXGIFactory6_Release(IDXGIFactory6* This) { 908 return This->lpVtbl->Release(This); 909 } 910 /*** IDXGIObject methods ***/ 911 static FORCEINLINE HRESULT IDXGIFactory6_SetPrivateData(IDXGIFactory6* This,REFGUID guid,UINT data_size,const void *data) { 912 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 913 } 914 static FORCEINLINE HRESULT IDXGIFactory6_SetPrivateDataInterface(IDXGIFactory6* This,REFGUID guid,const IUnknown *object) { 915 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 916 } 917 static FORCEINLINE HRESULT IDXGIFactory6_GetPrivateData(IDXGIFactory6* This,REFGUID guid,UINT *data_size,void *data) { 918 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 919 } 920 static FORCEINLINE HRESULT IDXGIFactory6_GetParent(IDXGIFactory6* This,REFIID riid,void **parent) { 921 return This->lpVtbl->GetParent(This,riid,parent); 922 } 923 /*** IDXGIFactory methods ***/ 924 static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapters(IDXGIFactory6* This,UINT adapter_idx,IDXGIAdapter **adapter) { 925 return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter); 926 } 927 static FORCEINLINE HRESULT IDXGIFactory6_MakeWindowAssociation(IDXGIFactory6* This,HWND window,UINT flags) { 928 return This->lpVtbl->MakeWindowAssociation(This,window,flags); 929 } 930 static FORCEINLINE HRESULT IDXGIFactory6_GetWindowAssociation(IDXGIFactory6* This,HWND *window) { 931 return This->lpVtbl->GetWindowAssociation(This,window); 932 } 933 static FORCEINLINE HRESULT IDXGIFactory6_CreateSwapChain(IDXGIFactory6* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) { 934 return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain); 935 } 936 static FORCEINLINE HRESULT IDXGIFactory6_CreateSoftwareAdapter(IDXGIFactory6* This,HMODULE swrast,IDXGIAdapter **adapter) { 937 return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter); 938 } 939 /*** IDXGIFactory1 methods ***/ 940 static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapters1(IDXGIFactory6* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) { 941 return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter); 942 } 943 static FORCEINLINE WINBOOL IDXGIFactory6_IsCurrent(IDXGIFactory6* This) { 944 return This->lpVtbl->IsCurrent(This); 945 } 946 /*** IDXGIFactory2 methods ***/ 947 static FORCEINLINE WINBOOL IDXGIFactory6_IsWindowedStereoEnabled(IDXGIFactory6* This) { 948 return This->lpVtbl->IsWindowedStereoEnabled(This); 949 } 950 static FORCEINLINE HRESULT IDXGIFactory6_CreateSwapChainForHwnd(IDXGIFactory6* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) { 951 return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain); 952 } 953 static FORCEINLINE HRESULT IDXGIFactory6_CreateSwapChainForCoreWindow(IDXGIFactory6* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) { 954 return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain); 955 } 956 static FORCEINLINE HRESULT IDXGIFactory6_GetSharedResourceAdapterLuid(IDXGIFactory6* This,HANDLE hResource,LUID *pLuid) { 957 return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid); 958 } 959 static FORCEINLINE HRESULT IDXGIFactory6_RegisterStereoStatusWindow(IDXGIFactory6* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) { 960 return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie); 961 } 962 static FORCEINLINE HRESULT IDXGIFactory6_RegisterStereoStatusEvent(IDXGIFactory6* This,HANDLE hEvent,DWORD *pdwCookie) { 963 return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie); 964 } 965 static FORCEINLINE void IDXGIFactory6_UnregisterStereoStatus(IDXGIFactory6* This,DWORD dwCookie) { 966 This->lpVtbl->UnregisterStereoStatus(This,dwCookie); 967 } 968 static FORCEINLINE HRESULT IDXGIFactory6_RegisterOcclusionStatusWindow(IDXGIFactory6* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) { 969 return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie); 970 } 971 static FORCEINLINE HRESULT IDXGIFactory6_RegisterOcclusionStatusEvent(IDXGIFactory6* This,HANDLE hEvent,DWORD *pdwCookie) { 972 return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie); 973 } 974 static FORCEINLINE void IDXGIFactory6_UnregisterOcclusionStatus(IDXGIFactory6* This,DWORD dwCookie) { 975 This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie); 976 } 977 static FORCEINLINE HRESULT IDXGIFactory6_CreateSwapChainForComposition(IDXGIFactory6* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) { 978 return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain); 979 } 980 /*** IDXGIFactory3 methods ***/ 981 static FORCEINLINE UINT IDXGIFactory6_GetCreationFlags(IDXGIFactory6* This) { 982 return This->lpVtbl->GetCreationFlags(This); 983 } 984 /*** IDXGIFactory4 methods ***/ 985 static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapterByLuid(IDXGIFactory6* This,LUID luid,REFIID iid,void **adapter) { 986 return This->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter); 987 } 988 static FORCEINLINE HRESULT IDXGIFactory6_EnumWarpAdapter(IDXGIFactory6* This,REFIID iid,void **adapter) { 989 return This->lpVtbl->EnumWarpAdapter(This,iid,adapter); 990 } 991 /*** IDXGIFactory5 methods ***/ 992 static FORCEINLINE HRESULT IDXGIFactory6_CheckFeatureSupport(IDXGIFactory6* This,DXGI_FEATURE feature,void *support_data,UINT support_data_size) { 993 return This->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size); 994 } 995 /*** IDXGIFactory6 methods ***/ 996 static FORCEINLINE HRESULT IDXGIFactory6_EnumAdapterByGpuPreference(IDXGIFactory6* This,UINT adapter_idx,DXGI_GPU_PREFERENCE gpu_preference,REFIID iid,void **adapter) { 997 return This->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter); 998 } 999 #endif 1000 #endif 1001 1002 #endif 1003 1004 1005 #endif /* __IDXGIFactory6_INTERFACE_DEFINED__ */ 1006 1007 /***************************************************************************** 1008 * IDXGIFactory7 interface 1009 */ 1010 #ifndef __IDXGIFactory7_INTERFACE_DEFINED__ 1011 #define __IDXGIFactory7_INTERFACE_DEFINED__ 1012 1013 DEFINE_GUID(IID_IDXGIFactory7, 0xa4966eed, 0x76db, 0x44da, 0x84,0xc1, 0xee,0x9a,0x7a,0xfb,0x20,0xa8); 1014 #if defined(__cplusplus) && !defined(CINTERFACE) 1015 MIDL_INTERFACE("a4966eed-76db-44da-84c1-ee9a7afb20a8") 1016 IDXGIFactory7 : public IDXGIFactory6 1017 { 1018 virtual HRESULT STDMETHODCALLTYPE RegisterAdaptersChangedEvent( 1019 HANDLE event, 1020 DWORD *cookie) = 0; 1021 1022 virtual HRESULT STDMETHODCALLTYPE UnregisterAdaptersChangedEvent( 1023 DWORD cookie) = 0; 1024 1025 }; 1026 #ifdef __CRT_UUID_DECL 1027 __CRT_UUID_DECL(IDXGIFactory7, 0xa4966eed, 0x76db, 0x44da, 0x84,0xc1, 0xee,0x9a,0x7a,0xfb,0x20,0xa8) 1028 #endif 1029 #else 1030 typedef struct IDXGIFactory7Vtbl { 1031 BEGIN_INTERFACE 1032 1033 /*** IUnknown methods ***/ 1034 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1035 IDXGIFactory7 *This, 1036 REFIID riid, 1037 void **ppvObject); 1038 1039 ULONG (STDMETHODCALLTYPE *AddRef)( 1040 IDXGIFactory7 *This); 1041 1042 ULONG (STDMETHODCALLTYPE *Release)( 1043 IDXGIFactory7 *This); 1044 1045 /*** IDXGIObject methods ***/ 1046 HRESULT (STDMETHODCALLTYPE *SetPrivateData)( 1047 IDXGIFactory7 *This, 1048 REFGUID guid, 1049 UINT data_size, 1050 const void *data); 1051 1052 HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( 1053 IDXGIFactory7 *This, 1054 REFGUID guid, 1055 const IUnknown *object); 1056 1057 HRESULT (STDMETHODCALLTYPE *GetPrivateData)( 1058 IDXGIFactory7 *This, 1059 REFGUID guid, 1060 UINT *data_size, 1061 void *data); 1062 1063 HRESULT (STDMETHODCALLTYPE *GetParent)( 1064 IDXGIFactory7 *This, 1065 REFIID riid, 1066 void **parent); 1067 1068 /*** IDXGIFactory methods ***/ 1069 HRESULT (STDMETHODCALLTYPE *EnumAdapters)( 1070 IDXGIFactory7 *This, 1071 UINT adapter_idx, 1072 IDXGIAdapter **adapter); 1073 1074 HRESULT (STDMETHODCALLTYPE *MakeWindowAssociation)( 1075 IDXGIFactory7 *This, 1076 HWND window, 1077 UINT flags); 1078 1079 HRESULT (STDMETHODCALLTYPE *GetWindowAssociation)( 1080 IDXGIFactory7 *This, 1081 HWND *window); 1082 1083 HRESULT (STDMETHODCALLTYPE *CreateSwapChain)( 1084 IDXGIFactory7 *This, 1085 IUnknown *device, 1086 DXGI_SWAP_CHAIN_DESC *desc, 1087 IDXGISwapChain **swapchain); 1088 1089 HRESULT (STDMETHODCALLTYPE *CreateSoftwareAdapter)( 1090 IDXGIFactory7 *This, 1091 HMODULE swrast, 1092 IDXGIAdapter **adapter); 1093 1094 /*** IDXGIFactory1 methods ***/ 1095 HRESULT (STDMETHODCALLTYPE *EnumAdapters1)( 1096 IDXGIFactory7 *This, 1097 UINT Adapter, 1098 IDXGIAdapter1 **ppAdapter); 1099 1100 WINBOOL (STDMETHODCALLTYPE *IsCurrent)( 1101 IDXGIFactory7 *This); 1102 1103 /*** IDXGIFactory2 methods ***/ 1104 WINBOOL (STDMETHODCALLTYPE *IsWindowedStereoEnabled)( 1105 IDXGIFactory7 *This); 1106 1107 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForHwnd)( 1108 IDXGIFactory7 *This, 1109 IUnknown *pDevice, 1110 HWND hWnd, 1111 const DXGI_SWAP_CHAIN_DESC1 *pDesc, 1112 const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc, 1113 IDXGIOutput *pRestrictToOutput, 1114 IDXGISwapChain1 **ppSwapChain); 1115 1116 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForCoreWindow)( 1117 IDXGIFactory7 *This, 1118 IUnknown *pDevice, 1119 IUnknown *pWindow, 1120 const DXGI_SWAP_CHAIN_DESC1 *pDesc, 1121 IDXGIOutput *pRestrictToOutput, 1122 IDXGISwapChain1 **ppSwapChain); 1123 1124 HRESULT (STDMETHODCALLTYPE *GetSharedResourceAdapterLuid)( 1125 IDXGIFactory7 *This, 1126 HANDLE hResource, 1127 LUID *pLuid); 1128 1129 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusWindow)( 1130 IDXGIFactory7 *This, 1131 HWND WindowHandle, 1132 UINT wMsg, 1133 DWORD *pdwCookie); 1134 1135 HRESULT (STDMETHODCALLTYPE *RegisterStereoStatusEvent)( 1136 IDXGIFactory7 *This, 1137 HANDLE hEvent, 1138 DWORD *pdwCookie); 1139 1140 void (STDMETHODCALLTYPE *UnregisterStereoStatus)( 1141 IDXGIFactory7 *This, 1142 DWORD dwCookie); 1143 1144 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusWindow)( 1145 IDXGIFactory7 *This, 1146 HWND WindowHandle, 1147 UINT wMsg, 1148 DWORD *pdwCookie); 1149 1150 HRESULT (STDMETHODCALLTYPE *RegisterOcclusionStatusEvent)( 1151 IDXGIFactory7 *This, 1152 HANDLE hEvent, 1153 DWORD *pdwCookie); 1154 1155 void (STDMETHODCALLTYPE *UnregisterOcclusionStatus)( 1156 IDXGIFactory7 *This, 1157 DWORD dwCookie); 1158 1159 HRESULT (STDMETHODCALLTYPE *CreateSwapChainForComposition)( 1160 IDXGIFactory7 *This, 1161 IUnknown *pDevice, 1162 const DXGI_SWAP_CHAIN_DESC1 *pDesc, 1163 IDXGIOutput *pRestrictToOutput, 1164 IDXGISwapChain1 **ppSwapChain); 1165 1166 /*** IDXGIFactory3 methods ***/ 1167 UINT (STDMETHODCALLTYPE *GetCreationFlags)( 1168 IDXGIFactory7 *This); 1169 1170 /*** IDXGIFactory4 methods ***/ 1171 HRESULT (STDMETHODCALLTYPE *EnumAdapterByLuid)( 1172 IDXGIFactory7 *This, 1173 LUID luid, 1174 REFIID iid, 1175 void **adapter); 1176 1177 HRESULT (STDMETHODCALLTYPE *EnumWarpAdapter)( 1178 IDXGIFactory7 *This, 1179 REFIID iid, 1180 void **adapter); 1181 1182 /*** IDXGIFactory5 methods ***/ 1183 HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)( 1184 IDXGIFactory7 *This, 1185 DXGI_FEATURE feature, 1186 void *support_data, 1187 UINT support_data_size); 1188 1189 /*** IDXGIFactory6 methods ***/ 1190 HRESULT (STDMETHODCALLTYPE *EnumAdapterByGpuPreference)( 1191 IDXGIFactory7 *This, 1192 UINT adapter_idx, 1193 DXGI_GPU_PREFERENCE gpu_preference, 1194 REFIID iid, 1195 void **adapter); 1196 1197 /*** IDXGIFactory7 methods ***/ 1198 HRESULT (STDMETHODCALLTYPE *RegisterAdaptersChangedEvent)( 1199 IDXGIFactory7 *This, 1200 HANDLE event, 1201 DWORD *cookie); 1202 1203 HRESULT (STDMETHODCALLTYPE *UnregisterAdaptersChangedEvent)( 1204 IDXGIFactory7 *This, 1205 DWORD cookie); 1206 1207 END_INTERFACE 1208 } IDXGIFactory7Vtbl; 1209 1210 interface IDXGIFactory7 { 1211 CONST_VTBL IDXGIFactory7Vtbl* lpVtbl; 1212 }; 1213 1214 #ifdef COBJMACROS 1215 #ifndef WIDL_C_INLINE_WRAPPERS 1216 /*** IUnknown methods ***/ 1217 #define IDXGIFactory7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1218 #define IDXGIFactory7_AddRef(This) (This)->lpVtbl->AddRef(This) 1219 #define IDXGIFactory7_Release(This) (This)->lpVtbl->Release(This) 1220 /*** IDXGIObject methods ***/ 1221 #define IDXGIFactory7_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data) 1222 #define IDXGIFactory7_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object) 1223 #define IDXGIFactory7_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data) 1224 #define IDXGIFactory7_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent) 1225 /*** IDXGIFactory methods ***/ 1226 #define IDXGIFactory7_EnumAdapters(This,adapter_idx,adapter) (This)->lpVtbl->EnumAdapters(This,adapter_idx,adapter) 1227 #define IDXGIFactory7_MakeWindowAssociation(This,window,flags) (This)->lpVtbl->MakeWindowAssociation(This,window,flags) 1228 #define IDXGIFactory7_GetWindowAssociation(This,window) (This)->lpVtbl->GetWindowAssociation(This,window) 1229 #define IDXGIFactory7_CreateSwapChain(This,device,desc,swapchain) (This)->lpVtbl->CreateSwapChain(This,device,desc,swapchain) 1230 #define IDXGIFactory7_CreateSoftwareAdapter(This,swrast,adapter) (This)->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter) 1231 /*** IDXGIFactory1 methods ***/ 1232 #define IDXGIFactory7_EnumAdapters1(This,Adapter,ppAdapter) (This)->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter) 1233 #define IDXGIFactory7_IsCurrent(This) (This)->lpVtbl->IsCurrent(This) 1234 /*** IDXGIFactory2 methods ***/ 1235 #define IDXGIFactory7_IsWindowedStereoEnabled(This) (This)->lpVtbl->IsWindowedStereoEnabled(This) 1236 #define IDXGIFactory7_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) 1237 #define IDXGIFactory7_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) 1238 #define IDXGIFactory7_GetSharedResourceAdapterLuid(This,hResource,pLuid) (This)->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid) 1239 #define IDXGIFactory7_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) 1240 #define IDXGIFactory7_RegisterStereoStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie) 1241 #define IDXGIFactory7_UnregisterStereoStatus(This,dwCookie) (This)->lpVtbl->UnregisterStereoStatus(This,dwCookie) 1242 #define IDXGIFactory7_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) 1243 #define IDXGIFactory7_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) (This)->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) 1244 #define IDXGIFactory7_UnregisterOcclusionStatus(This,dwCookie) (This)->lpVtbl->UnregisterOcclusionStatus(This,dwCookie) 1245 #define IDXGIFactory7_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) (This)->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) 1246 /*** IDXGIFactory3 methods ***/ 1247 #define IDXGIFactory7_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This) 1248 /*** IDXGIFactory4 methods ***/ 1249 #define IDXGIFactory7_EnumAdapterByLuid(This,luid,iid,adapter) (This)->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter) 1250 #define IDXGIFactory7_EnumWarpAdapter(This,iid,adapter) (This)->lpVtbl->EnumWarpAdapter(This,iid,adapter) 1251 /*** IDXGIFactory5 methods ***/ 1252 #define IDXGIFactory7_CheckFeatureSupport(This,feature,support_data,support_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size) 1253 /*** IDXGIFactory6 methods ***/ 1254 #define IDXGIFactory7_EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter) (This)->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter) 1255 /*** IDXGIFactory7 methods ***/ 1256 #define IDXGIFactory7_RegisterAdaptersChangedEvent(This,event,cookie) (This)->lpVtbl->RegisterAdaptersChangedEvent(This,event,cookie) 1257 #define IDXGIFactory7_UnregisterAdaptersChangedEvent(This,cookie) (This)->lpVtbl->UnregisterAdaptersChangedEvent(This,cookie) 1258 #else 1259 /*** IUnknown methods ***/ 1260 static FORCEINLINE HRESULT IDXGIFactory7_QueryInterface(IDXGIFactory7* This,REFIID riid,void **ppvObject) { 1261 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1262 } 1263 static FORCEINLINE ULONG IDXGIFactory7_AddRef(IDXGIFactory7* This) { 1264 return This->lpVtbl->AddRef(This); 1265 } 1266 static FORCEINLINE ULONG IDXGIFactory7_Release(IDXGIFactory7* This) { 1267 return This->lpVtbl->Release(This); 1268 } 1269 /*** IDXGIObject methods ***/ 1270 static FORCEINLINE HRESULT IDXGIFactory7_SetPrivateData(IDXGIFactory7* This,REFGUID guid,UINT data_size,const void *data) { 1271 return This->lpVtbl->SetPrivateData(This,guid,data_size,data); 1272 } 1273 static FORCEINLINE HRESULT IDXGIFactory7_SetPrivateDataInterface(IDXGIFactory7* This,REFGUID guid,const IUnknown *object) { 1274 return This->lpVtbl->SetPrivateDataInterface(This,guid,object); 1275 } 1276 static FORCEINLINE HRESULT IDXGIFactory7_GetPrivateData(IDXGIFactory7* This,REFGUID guid,UINT *data_size,void *data) { 1277 return This->lpVtbl->GetPrivateData(This,guid,data_size,data); 1278 } 1279 static FORCEINLINE HRESULT IDXGIFactory7_GetParent(IDXGIFactory7* This,REFIID riid,void **parent) { 1280 return This->lpVtbl->GetParent(This,riid,parent); 1281 } 1282 /*** IDXGIFactory methods ***/ 1283 static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapters(IDXGIFactory7* This,UINT adapter_idx,IDXGIAdapter **adapter) { 1284 return This->lpVtbl->EnumAdapters(This,adapter_idx,adapter); 1285 } 1286 static FORCEINLINE HRESULT IDXGIFactory7_MakeWindowAssociation(IDXGIFactory7* This,HWND window,UINT flags) { 1287 return This->lpVtbl->MakeWindowAssociation(This,window,flags); 1288 } 1289 static FORCEINLINE HRESULT IDXGIFactory7_GetWindowAssociation(IDXGIFactory7* This,HWND *window) { 1290 return This->lpVtbl->GetWindowAssociation(This,window); 1291 } 1292 static FORCEINLINE HRESULT IDXGIFactory7_CreateSwapChain(IDXGIFactory7* This,IUnknown *device,DXGI_SWAP_CHAIN_DESC *desc,IDXGISwapChain **swapchain) { 1293 return This->lpVtbl->CreateSwapChain(This,device,desc,swapchain); 1294 } 1295 static FORCEINLINE HRESULT IDXGIFactory7_CreateSoftwareAdapter(IDXGIFactory7* This,HMODULE swrast,IDXGIAdapter **adapter) { 1296 return This->lpVtbl->CreateSoftwareAdapter(This,swrast,adapter); 1297 } 1298 /*** IDXGIFactory1 methods ***/ 1299 static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapters1(IDXGIFactory7* This,UINT Adapter,IDXGIAdapter1 **ppAdapter) { 1300 return This->lpVtbl->EnumAdapters1(This,Adapter,ppAdapter); 1301 } 1302 static FORCEINLINE WINBOOL IDXGIFactory7_IsCurrent(IDXGIFactory7* This) { 1303 return This->lpVtbl->IsCurrent(This); 1304 } 1305 /*** IDXGIFactory2 methods ***/ 1306 static FORCEINLINE WINBOOL IDXGIFactory7_IsWindowedStereoEnabled(IDXGIFactory7* This) { 1307 return This->lpVtbl->IsWindowedStereoEnabled(This); 1308 } 1309 static FORCEINLINE HRESULT IDXGIFactory7_CreateSwapChainForHwnd(IDXGIFactory7* This,IUnknown *pDevice,HWND hWnd,const DXGI_SWAP_CHAIN_DESC1 *pDesc,const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) { 1310 return This->lpVtbl->CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain); 1311 } 1312 static FORCEINLINE HRESULT IDXGIFactory7_CreateSwapChainForCoreWindow(IDXGIFactory7* This,IUnknown *pDevice,IUnknown *pWindow,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) { 1313 return This->lpVtbl->CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain); 1314 } 1315 static FORCEINLINE HRESULT IDXGIFactory7_GetSharedResourceAdapterLuid(IDXGIFactory7* This,HANDLE hResource,LUID *pLuid) { 1316 return This->lpVtbl->GetSharedResourceAdapterLuid(This,hResource,pLuid); 1317 } 1318 static FORCEINLINE HRESULT IDXGIFactory7_RegisterStereoStatusWindow(IDXGIFactory7* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) { 1319 return This->lpVtbl->RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie); 1320 } 1321 static FORCEINLINE HRESULT IDXGIFactory7_RegisterStereoStatusEvent(IDXGIFactory7* This,HANDLE hEvent,DWORD *pdwCookie) { 1322 return This->lpVtbl->RegisterStereoStatusEvent(This,hEvent,pdwCookie); 1323 } 1324 static FORCEINLINE void IDXGIFactory7_UnregisterStereoStatus(IDXGIFactory7* This,DWORD dwCookie) { 1325 This->lpVtbl->UnregisterStereoStatus(This,dwCookie); 1326 } 1327 static FORCEINLINE HRESULT IDXGIFactory7_RegisterOcclusionStatusWindow(IDXGIFactory7* This,HWND WindowHandle,UINT wMsg,DWORD *pdwCookie) { 1328 return This->lpVtbl->RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie); 1329 } 1330 static FORCEINLINE HRESULT IDXGIFactory7_RegisterOcclusionStatusEvent(IDXGIFactory7* This,HANDLE hEvent,DWORD *pdwCookie) { 1331 return This->lpVtbl->RegisterOcclusionStatusEvent(This,hEvent,pdwCookie); 1332 } 1333 static FORCEINLINE void IDXGIFactory7_UnregisterOcclusionStatus(IDXGIFactory7* This,DWORD dwCookie) { 1334 This->lpVtbl->UnregisterOcclusionStatus(This,dwCookie); 1335 } 1336 static FORCEINLINE HRESULT IDXGIFactory7_CreateSwapChainForComposition(IDXGIFactory7* This,IUnknown *pDevice,const DXGI_SWAP_CHAIN_DESC1 *pDesc,IDXGIOutput *pRestrictToOutput,IDXGISwapChain1 **ppSwapChain) { 1337 return This->lpVtbl->CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain); 1338 } 1339 /*** IDXGIFactory3 methods ***/ 1340 static FORCEINLINE UINT IDXGIFactory7_GetCreationFlags(IDXGIFactory7* This) { 1341 return This->lpVtbl->GetCreationFlags(This); 1342 } 1343 /*** IDXGIFactory4 methods ***/ 1344 static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapterByLuid(IDXGIFactory7* This,LUID luid,REFIID iid,void **adapter) { 1345 return This->lpVtbl->EnumAdapterByLuid(This,luid,iid,adapter); 1346 } 1347 static FORCEINLINE HRESULT IDXGIFactory7_EnumWarpAdapter(IDXGIFactory7* This,REFIID iid,void **adapter) { 1348 return This->lpVtbl->EnumWarpAdapter(This,iid,adapter); 1349 } 1350 /*** IDXGIFactory5 methods ***/ 1351 static FORCEINLINE HRESULT IDXGIFactory7_CheckFeatureSupport(IDXGIFactory7* This,DXGI_FEATURE feature,void *support_data,UINT support_data_size) { 1352 return This->lpVtbl->CheckFeatureSupport(This,feature,support_data,support_data_size); 1353 } 1354 /*** IDXGIFactory6 methods ***/ 1355 static FORCEINLINE HRESULT IDXGIFactory7_EnumAdapterByGpuPreference(IDXGIFactory7* This,UINT adapter_idx,DXGI_GPU_PREFERENCE gpu_preference,REFIID iid,void **adapter) { 1356 return This->lpVtbl->EnumAdapterByGpuPreference(This,adapter_idx,gpu_preference,iid,adapter); 1357 } 1358 /*** IDXGIFactory7 methods ***/ 1359 static FORCEINLINE HRESULT IDXGIFactory7_RegisterAdaptersChangedEvent(IDXGIFactory7* This,HANDLE event,DWORD *cookie) { 1360 return This->lpVtbl->RegisterAdaptersChangedEvent(This,event,cookie); 1361 } 1362 static FORCEINLINE HRESULT IDXGIFactory7_UnregisterAdaptersChangedEvent(IDXGIFactory7* This,DWORD cookie) { 1363 return This->lpVtbl->UnregisterAdaptersChangedEvent(This,cookie); 1364 } 1365 #endif 1366 #endif 1367 1368 #endif 1369 1370 1371 #endif /* __IDXGIFactory7_INTERFACE_DEFINED__ */ 1372 1373 /* Begin additional prototypes for all interfaces */ 1374 1375 1376 /* End additional prototypes */ 1377 1378 #ifdef __cplusplus 1379 } 1380 #endif 1381 1382 #endif /* __dxgi1_6_h__ */ 1383