1 module directx.dxgi1_4; 2 3 public import directx.dxgi1_3; 4 5 alias DWORD DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG; 6 enum : DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG { 7 DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1, 8 DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT = 0x2 9 } 10 11 mixin(uuid!(IDXGISwapChain3, "94d99bdb-f1f8-4ab0-b236-7da0170edab1")); 12 extern (C++) interface IDXGISwapChain3 : IDXGISwapChain2 { 13 UINT GetCurrentBackBufferIndex(); 14 15 HRESULT CheckColorSpaceSupport(DXGI_COLOR_SPACE_TYPE ColorSpace, 16 UINT* pColorSpaceSupport); 17 18 HRESULT SetColorSpace1(DXGI_COLOR_SPACE_TYPE ColorSpace); 19 20 HRESULT ResizeBuffers1(UINT BufferCount, 21 UINT Width, 22 UINT Height, 23 DXGI_FORMAT Format, 24 UINT SwapChainFlags, 25 const(UINT)* pCreationNodeMask, 26 const(IUnknown)* ppPresentQueue); 27 } 28 29 alias DWORD DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG; 30 enum : DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG { 31 DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1 32 } 33 34 mixin(uuid!(IDXGIOutput4, "dc7dca35-2196-414d-9F53-617884032a60")); 35 extern (C++) interface IDXGIOutput4 : IDXGIOutput3 { 36 HRESULT CheckOverlayColorSpaceSupport(DXGI_FORMAT Format, 37 DXGI_COLOR_SPACE_TYPE ColorSpace, 38 IUnknown pConcernedDevice, 39 UINT* pFlags); 40 } 41 42 mixin(uuid!(IDXGIFactory4, "1bc6ea02-ef36-464f-bf0c-21ca39e5168a")); 43 extern (C++) interface IDXGIFactory4 : IDXGIFactory3 { 44 HRESULT EnumAdapterByLuid(LUID AdapterLuid, 45 REFIID riid, 46 IDXGIAdapter* ppvAdapter); 47 48 HRESULT EnumWarpAdapter(REFIID riid, IDXGIAdapter* ppvAdapter); 49 } 50 51 alias DWORD DXGI_MEMORY_SEGMENT_GROUP; 52 enum : DXGI_MEMORY_SEGMENT_GROUP { 53 DXGI_MEMORY_SEGMENT_GROUP_LOCAL = 0, 54 DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL = 1 55 } 56 57 struct DXGI_QUERY_VIDEO_MEMORY_INFO { 58 UINT64 Budget; 59 UINT64 CurrentUsage; 60 UINT64 AvailableForReservation; 61 UINT64 CurrentReservation; 62 } 63 64 mixin(uuid!(IDXGIAdapter3, "645967a4-1392-4310-a798-8053ce3e93fd")); 65 extern (C++) interface IDXGIAdapter3 : IDXGIAdapter2 { 66 HRESULT RegisterHardwareContentProtectionTeardownStatusEvent(HANDLE hEvent, 67 DWORD* pdwCookie); 68 69 void UnregisterHardwareContentProtectionTeardownStatus(DWORD dwCookie); 70 71 HRESULT QueryVideoMemoryInfo(UINT NodeIndex, 72 DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, 73 DXGI_QUERY_VIDEO_MEMORY_INFO* pVideoMemoryInfo); 74 75 HRESULT SetVideoMemoryReservation(UINT NodeIndex, 76 DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, 77 UINT64 Reservation); 78 79 HRESULT RegisterVideoMemoryBudgetChangeNotificationEvent(HANDLE hEvent, 80 DWORD* pdwCookie); 81 82 void UnregisterVideoMemoryBudgetChangeNotification(DWORD dwCookie); 83 }