1 module aurora.directx.dxgi.dxgi1_6; 2 3 import aurora.directx.com; 4 public import aurora.directx.dxgi.dxgi1_5; 5 6 public: 7 8 /// 9 /// Constants 10 /// 11 12 /// 13 /// Functions 14 /// 15 16 /// 17 /// Enumerations 18 /// 19 20 enum DXGI_ADAPTER_FLAG3 21 { 22 NONE = 0, 23 REMOTE = 1, 24 SOFTWARE = 2, 25 ACG_COMPATIBLE = 4, 26 SUPPORT_MONITORED_FENCES = 8, 27 SUPPORT_NON_MONITORED_FENCES = 0x10, 28 KEYED_MUTEX_CONFORMANCE = 0x20, 29 FORCE_DWORD = 0xffffffff 30 } 31 32 enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS 33 { 34 FULLSCREEN= 1, 35 WINDOWED = 2, 36 CURSOR_STRETCHED = 4 37 } 38 39 /// 40 /// Structures 41 /// 42 43 struct DXGI_ADAPTER_DESC3 44 { 45 wchar[128] Description; 46 uint VendorId; 47 uint DeviceId; 48 uint SubSysId; 49 uint Revision; 50 size_t DedicatedVideoMemory; 51 size_t DedicatedSystemMemory; 52 size_t SharedSystemMemory; 53 LUID AdapterLuid; 54 DXGI_ADAPTER_FLAG3 Flags; 55 DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; 56 DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; 57 } 58 59 struct DXGI_OUTPUT_DESC1 60 { 61 wchar[32] DeviceName; 62 RECT DesktopCoordinates; 63 bool AttachedToDesktop; 64 DXGI_MODE_ROTATION Rotation; 65 HMONITOR Monitor; 66 uint BitsPerColor; 67 DXGI_COLOR_SPACE_TYPE ColorSpace; 68 float[2] RedPrimary; 69 float[2] GreenPrimary; 70 float[2] BluePrimary; 71 float[2] WhitePoint; 72 float MinLuminance; 73 float MaxLuminance; 74 float MaxFullFrameLuminance; 75 } 76 77 /// 78 /// Interfaces 79 /// 80 81 mixin(uuid!(IDXGIAdapter4, "3c8d99d1-4fbf-4181-a82c-af66bf7bd24e")); 82 public interface IDXGIAdapter4 : IDXGIAdapter3 83 { 84 extern(Windows): 85 HRESULT GetDesc3(DXGI_ADAPTER_DESC3 *pDesc); 86 } 87 88 mixin(uuid!(IDXGIOutput6, "068346e8-aaec-4b84-add7-137f513f77a1")); 89 public interface IDXGIOutput6 : IDXGIOutput5 90 { 91 extern(Windows): 92 HRESULT GetDesc1(DXGI_OUTPUT_DESC1 *pDesc); 93 } 94 95 enum DXGI_GPU_PREFERENCE 96 { 97 DXGI_GPU_PREFERENCE_UNSPECIFIED = 0, 98 DXGI_GPU_PREFERENCE_MINIMUM_POWER = ( DXGI_GPU_PREFERENCE_UNSPECIFIED + 1 ), 99 DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE = ( DXGI_GPU_PREFERENCE_MINIMUM_POWER + 1 ) 100 } 101 102 mixin(uuid!(IDXGIFactory6, "c1b6694f-ff09-44a9-b03c-77900a0a1d17")); 103 public interface IDXGIFactory6 : IDXGIFactory5 104 { 105 extern(Windows): 106 HRESULT EnumAdapterByGpuPreference(uint Adapter, DXGI_GPU_PREFERENCE GpuPreference, REFIID riid, void **ppvAdapter); 107 } 108 109 mixin(uuid!(IDXGIFactory7, "a4966eed-76db-44da-84c1-ee9a7afb20a8")); 110 public interface IDXGIFactory7 : IDXGIFactory6 111 { 112 extern(Windows): 113 HRESULT RegisterAdaptersChangedEvent(HANDLE hEvent, uint *pdwCookie); 114 HRESULT UnregisterAdaptersChangedEvent(uint dwCookie); 115 }