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 }