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