1
|
1 /***********************************************************************\
|
|
2 * dxgitype.d *
|
|
3 * *
|
|
4 * Windows API header module *
|
|
5 * *
|
|
6 * Placed into public domain *
|
|
7 \***********************************************************************/
|
|
8 module win32.directx.dxgitype;
|
|
9
|
|
10 private import win32.windows;
|
|
11
|
|
12 const _FACDXGI = 0x87a;
|
|
13
|
|
14 HRESULT MAKE_DXGI_HRESULT(T)(T code) {
|
|
15 return MAKE_HRESULT(1, _FACDXGI, code);
|
|
16 }
|
|
17
|
|
18 HRESULT MAKE_DXGI_STATUS(T)(T code) {
|
|
19 return MAKE_HRESULT(0, _FACDXGI, code);
|
|
20 }
|
|
21
|
|
22 const HRESULT DXGI_STATUS_OCCLUDED = MAKE_DXGI_STATUS(1);
|
|
23 const HRESULT DXGI_STATUS_CLIPPED = MAKE_DXGI_STATUS(2);
|
|
24 const HRESULT DXGI_STATUS_NO_REDIRECTION = MAKE_DXGI_STATUS(4);
|
|
25 const HRESULT DXGI_STATUS_NO_DESKTOP_ACCESS = MAKE_DXGI_STATUS(5);
|
|
26 const HRESULT DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE = MAKE_DXGI_STATUS(6);
|
|
27 const HRESULT DXGI_STATUS_MODE_CHANGED = MAKE_DXGI_STATUS(7);
|
|
28 const HRESULT DXGI_STATUS_MODE_CHANGE_IN_PROGRESS = MAKE_DXGI_STATUS(8);
|
|
29 const HRESULT DXGI_ERROR_INVALID_CALL = MAKE_DXGI_HRESULT( 1);
|
|
30 const HRESULT DXGI_ERROR_NOT_FOUND = MAKE_DXGI_HRESULT( 2);
|
|
31 const HRESULT DXGI_ERROR_MORE_DATA = MAKE_DXGI_HRESULT( 3);
|
|
32 const HRESULT DXGI_ERROR_UNSUPPORTED = MAKE_DXGI_HRESULT( 4);
|
|
33 const HRESULT DXGI_ERROR_DEVICE_REMOVED = MAKE_DXGI_HRESULT( 5);
|
|
34 const HRESULT DXGI_ERROR_DEVICE_HUNG = MAKE_DXGI_HRESULT( 6);
|
|
35 const HRESULT DXGI_ERROR_DEVICE_RESET = MAKE_DXGI_HRESULT( 7);
|
|
36 const HRESULT DXGI_ERROR_WAS_STILL_DRAWING = MAKE_DXGI_HRESULT(10);
|
|
37 const HRESULT DXGI_ERROR_FRAME_STATISTICS_DISJOINT = MAKE_DXGI_HRESULT(11);
|
|
38 const HRESULT DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE = MAKE_DXGI_HRESULT(12);
|
|
39 const HRESULT DXGI_ERROR_DRIVER_INTERNAL_ERROR = MAKE_DXGI_HRESULT(32);
|
|
40 const HRESULT DXGI_ERROR_NONEXCLUSIVE = MAKE_DXGI_HRESULT(33);
|
|
41 const HRESULT DXGI_ERROR_NOT_CURRENTLY_AVAILABLE = MAKE_DXGI_HRESULT(34);
|
|
42 const HRESULT DXGI_FORMAT_DEFINED = 1;
|
|
43
|
|
44 enum DXGI_FORMAT {
|
|
45 DXGI_FORMAT_UNKNOWN = 0,
|
|
46 DXGI_FORMAT_R32G32B32A32_TYPELESS,
|
|
47 DXGI_FORMAT_R32G32B32A32_FLOAT,
|
|
48 DXGI_FORMAT_R32G32B32A32_UINT,
|
|
49 DXGI_FORMAT_R32G32B32A32_SINT,
|
|
50 DXGI_FORMAT_R32G32B32_TYPELESS,
|
|
51 DXGI_FORMAT_R32G32B32_FLOAT,
|
|
52 DXGI_FORMAT_R32G32B32_UINT,
|
|
53 DXGI_FORMAT_R32G32B32_SINT,
|
|
54 DXGI_FORMAT_R16G16B16A16_TYPELESS,
|
|
55 DXGI_FORMAT_R16G16B16A16_FLOAT,
|
|
56 DXGI_FORMAT_R16G16B16A16_UNORM,
|
|
57 DXGI_FORMAT_R16G16B16A16_UINT,
|
|
58 DXGI_FORMAT_R16G16B16A16_SNORM,
|
|
59 DXGI_FORMAT_R16G16B16A16_SINT,
|
|
60 DXGI_FORMAT_R32G32_TYPELESS,
|
|
61 DXGI_FORMAT_R32G32_FLOAT,
|
|
62 DXGI_FORMAT_R32G32_UINT,
|
|
63 DXGI_FORMAT_R32G32_SINT,
|
|
64 DXGI_FORMAT_R32G8X24_TYPELESS,
|
|
65 DXGI_FORMAT_D32_FLOAT_S8X24_UINT,
|
|
66 DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS,
|
|
67 DXGI_FORMAT_X32_TYPELESS_G8X24_UINT,
|
|
68 DXGI_FORMAT_R10G10B10A2_TYPELESS,
|
|
69 DXGI_FORMAT_R10G10B10A2_UNORM,
|
|
70 DXGI_FORMAT_R10G10B10A2_UINT,
|
|
71 DXGI_FORMAT_R11G11B10_FLOAT,
|
|
72 DXGI_FORMAT_R8G8B8A8_TYPELESS,
|
|
73 DXGI_FORMAT_R8G8B8A8_UNORM,
|
|
74 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
|
75 DXGI_FORMAT_R8G8B8A8_UINT,
|
|
76 DXGI_FORMAT_R8G8B8A8_SNORM,
|
|
77 DXGI_FORMAT_R8G8B8A8_SINT,
|
|
78 DXGI_FORMAT_R16G16_TYPELESS,
|
|
79 DXGI_FORMAT_R16G16_FLOAT,
|
|
80 DXGI_FORMAT_R16G16_UNORM,
|
|
81 DXGI_FORMAT_R16G16_UINT,
|
|
82 DXGI_FORMAT_R16G16_SNORM,
|
|
83 DXGI_FORMAT_R16G16_SINT,
|
|
84 DXGI_FORMAT_R32_TYPELESS,
|
|
85 DXGI_FORMAT_D32_FLOAT,
|
|
86 DXGI_FORMAT_R32_FLOAT,
|
|
87 DXGI_FORMAT_R32_UINT,
|
|
88 DXGI_FORMAT_R32_SINT,
|
|
89 DXGI_FORMAT_R24G8_TYPELESS,
|
|
90 DXGI_FORMAT_D24_UNORM_S8_UINT,
|
|
91 DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
|
|
92 DXGI_FORMAT_X24_TYPELESS_G8_UINT,
|
|
93 DXGI_FORMAT_R8G8_TYPELESS,
|
|
94 DXGI_FORMAT_R8G8_UNORM,
|
|
95 DXGI_FORMAT_R8G8_UINT,
|
|
96 DXGI_FORMAT_R8G8_SNORM,
|
|
97 DXGI_FORMAT_R8G8_SINT,
|
|
98 DXGI_FORMAT_R16_TYPELESS,
|
|
99 DXGI_FORMAT_R16_FLOAT,
|
|
100 DXGI_FORMAT_D16_UNORM,
|
|
101 DXGI_FORMAT_R16_UNORM,
|
|
102 DXGI_FORMAT_R16_UINT,
|
|
103 DXGI_FORMAT_R16_SNORM,
|
|
104 DXGI_FORMAT_R16_SINT,
|
|
105 DXGI_FORMAT_R8_TYPELESS,
|
|
106 DXGI_FORMAT_R8_UNORM,
|
|
107 DXGI_FORMAT_R8_UINT,
|
|
108 DXGI_FORMAT_R8_SNORM,
|
|
109 DXGI_FORMAT_R8_SINT,
|
|
110 DXGI_FORMAT_A8_UNORM,
|
|
111 DXGI_FORMAT_R1_UNORM,
|
|
112 DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
|
|
113 DXGI_FORMAT_R8G8_B8G8_UNORM,
|
|
114 DXGI_FORMAT_G8R8_G8B8_UNORM,
|
|
115 DXGI_FORMAT_BC1_TYPELESS,
|
|
116 DXGI_FORMAT_BC1_UNORM,
|
|
117 DXGI_FORMAT_BC1_UNORM_SRGB,
|
|
118 DXGI_FORMAT_BC2_TYPELESS,
|
|
119 DXGI_FORMAT_BC2_UNORM,
|
|
120 DXGI_FORMAT_BC2_UNORM_SRGB,
|
|
121 DXGI_FORMAT_BC3_TYPELESS,
|
|
122 DXGI_FORMAT_BC3_UNORM,
|
|
123 DXGI_FORMAT_BC3_UNORM_SRGB,
|
|
124 DXGI_FORMAT_BC4_TYPELESS,
|
|
125 DXGI_FORMAT_BC4_UNORM,
|
|
126 DXGI_FORMAT_BC4_SNORM,
|
|
127 DXGI_FORMAT_BC5_TYPELESS,
|
|
128 DXGI_FORMAT_BC5_UNORM,
|
|
129 DXGI_FORMAT_BC5_SNORM,
|
|
130 DXGI_FORMAT_B5G6R5_UNORM,
|
|
131 DXGI_FORMAT_B5G5R5A1_UNORM,
|
|
132 DXGI_FORMAT_B8G8R8A8_UNORM,
|
|
133 DXGI_FORMAT_B8G8R8X8_UNORM,
|
|
134 DXGI_FORMAT_FORCE_UINT = 0xffffffff
|
|
135 }
|
|
136
|
|
137 struct DXGI_RGB {
|
|
138 float Red;
|
|
139 float Green;
|
|
140 float Blue;
|
|
141 }
|
|
142
|
|
143 struct DXGI_GAMMA_CONTROL {
|
|
144 DXGI_RGB Scale;
|
|
145 DXGI_RGB Offset;
|
|
146 DXGI_RGB[1025] GammaCurve;
|
|
147 }
|
|
148
|
|
149 struct DXGI_GAMMA_CONTROL_CAPABILITIES {
|
|
150 BOOL ScaleAndOffsetSupported;
|
|
151 float MaxConvertedValue;
|
|
152 float MinConvertedValue;
|
|
153 UINT NumGammaControlPoints;
|
|
154 float[1025] ControlPointPositions;
|
|
155 }
|
|
156
|
|
157 struct DXGI_RATIONAL {
|
|
158 UINT Numerator;
|
|
159 UINT Denominator;
|
|
160 }
|
|
161
|
|
162 enum DXGI_MODE_SCANLINE_ORDER {
|
|
163 DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED = 0,
|
|
164 DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE = 1,
|
|
165 DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST = 2,
|
|
166 DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST = 3
|
|
167 }
|
|
168
|
|
169 enum DXGI_MODE_SCALING {
|
|
170 DXGI_MODE_SCALING_UNSPECIFIED = 0,
|
|
171 DXGI_MODE_SCALING_CENTERED = 1,
|
|
172 DXGI_MODE_SCALING_STRETCHED = 2
|
|
173 }
|
|
174
|
|
175 enum DXGI_MODE_ROTATION {
|
|
176 DXGI_MODE_ROTATION_UNSPECIFIED = 0,
|
|
177 DXGI_MODE_ROTATION_IDENTITY = 1,
|
|
178 DXGI_MODE_ROTATION_ROTATE90 = 2,
|
|
179 DXGI_MODE_ROTATION_ROTATE180 = 3,
|
|
180 DXGI_MODE_ROTATION_ROTATE270 = 4
|
|
181 }
|
|
182
|
|
183 struct DXGI_MODE_DESC {
|
|
184 UINT Width;
|
|
185 UINT Height;
|
|
186 DXGI_RATIONAL RefreshRate;
|
|
187 DXGI_FORMAT Format;
|
|
188 DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
|
|
189 DXGI_MODE_SCALING Scaling;
|
|
190 }
|
|
191
|
|
192 struct DXGI_SAMPLE_DESC {
|
|
193 UINT Count;
|
|
194 UINT Quality;
|
|
195 }
|