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 }