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