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