GteDataFormat.cpp
Go to the documentation of this file.
1 // David Eberly, Geometric Tools, Redmond WA 98052
2 // Copyright (c) 1998-2017
3 // Distributed under the Boost Software License, Version 1.0.
4 // http://www.boost.org/LICENSE_1_0.txt
5 // http://www.geometrictools.com/License/Boost/LICENSE_1_0.txt
6 // File Version: 3.0.0 (2016/06/19)
7 
8 #include <GTEnginePCH.h>
10 using namespace gte;
11 
12 std::string const DataFormat::msName[DF_NUM_FORMATS] =
13 {
14  "UNKNOWN",
15  "R32G32B32A32_TYPELESS",
16  "R32G32B32A32_FLOAT",
17  "R32G32B32A32_UINT",
18  "R32G32B32A32_SINT",
19  "R32G32B32_TYPELESS",
20  "R32G32B32_FLOAT",
21  "R32G32B32_UINT",
22  "R32G32B32_SINT",
23  "R16G16B16A16_TYPELESS",
24  "R16G16B16A16_FLOAT",
25  "R16G16B16A16_UNORM",
26  "R16G16B16A16_UINT",
27  "R16G16B16A16_SNORM",
28  "R16G16B16A16_SINT",
29  "R32G32_TYPELESS",
30  "R32G32_FLOAT",
31  "R32G32_UINT",
32  "R32G32_SINT",
33  "R32G8X24_TYPELESS",
34  "D32_FLOAT_S8X24_UINT",
35  "R32_FLOAT_X8X24_TYPELESS",
36  "X32_TYPELESS_G8X24_UINT",
37  "R10G10B10A2_TYPELESS",
38  "R10G10B10A2_UNORM",
39  "R10G10B10A2_UINT",
40  "R11G11B10_FLOAT",
41  "R8G8B8A8_TYPELESS",
42  "R8G8B8A8_UNORM",
43  "R8G8B8A8_UNORM_SRGB",
44  "R8G8B8A8_UINT",
45  "R8G8B8A8_SNORM",
46  "R8G8B8A8_SINT",
47  "R16G16_TYPELESS",
48  "R16G16_FLOAT",
49  "R16G16_UNORM",
50  "R16G16_UINT",
51  "R16G16_SNORM",
52  "R16G16_SINT",
53  "R32_TYPELESS",
54  "D32_FLOAT",
55  "R32_FLOAT",
56  "R32_UINT",
57  "R32_SINT",
58  "R24G8_TYPELESS",
59  "D24_UNORM_S8_UINT",
60  "R24_UNORM_X8_TYPELESS",
61  "X24_TYPELESS_G8_UINT",
62  "R8G8_TYPELESS",
63  "R8G8_UNORM",
64  "R8G8_UINT",
65  "R8G8_SNORM",
66  "R8G8_SINT",
67  "R16_TYPELESS",
68  "R16_FLOAT",
69  "D16_UNORM",
70  "R16_UNORM",
71  "R16_UINT",
72  "R16_SNORM",
73  "R16_SINT",
74  "R8_TYPELESS",
75  "R8_UNORM",
76  "R8_UINT",
77  "R8_SNORM",
78  "R8_SINT",
79  "A8_UNORM",
80  "R1_UNORM",
81  "R9G9B9E5_SHAREDEXP",
82  "R8G8_B8G8_UNORM",
83  "G8R8_G8B8_UNORM",
84  "BC1_TYPELESS",
85  "BC1_UNORM",
86  "BC1_UNORM_SRGB",
87  "BC2_TYPELESS",
88  "BC2_UNORM",
89  "BC2_UNORM_SRGB",
90  "BC3_TYPELESS",
91  "BC3_UNORM",
92  "BC3_UNORM_SRGB",
93  "BC4_TYPELESS",
94  "BC4_UNORM",
95  "BC4_SNORM",
96  "BC5_TYPELESS",
97  "BC5_UNORM",
98  "BC5_SNORM",
99  "B5G6R5_UNORM",
100  "B5G5R5A1_UNORM",
101  "B8G8R8A8_UNORM",
102  "B8G8R8X8_UNORM",
103  "R10G10B10_XR_BIAS_A2_UNORM",
104  "B8G8R8A8_TYPELESS",
105  "B8G8R8A8_UNORM_SRGB",
106  "B8G8R8X8_TYPELESS",
107  "B8G8R8X8_UNORM_SRGB",
108  "BC6H_TYPELESS",
109  "BC6H_UF16",
110  "BC6H_SF16",
111  "BC7_TYPELESS",
112  "BC7_UNORM",
113  "BC7_UNORM_SRGB",
114  "AYUV",
115  "Y410",
116  "Y416",
117  "NV12",
118  "P010",
119  "P016",
120  "420_OPAQUE",
121  "YUY2",
122  "Y210",
123  "Y216",
124  "NV11",
125  "AI44",
126  "IA44",
127  "P8",
128  "A8P8",
129  "B4G4R4A4_UNORM"
130 };
131 
132 unsigned int const DataFormat::msNumBytesPerStruct[DF_NUM_FORMATS] =
133 {
134  0, // DF_UNKNOWN
135  16, // DF_R32G32B32A32_TYPELESS
136  16, // DF_R32G32B32A32_FLOAT
137  16, // DF_R32G32B32A32_UINT
138  16, // DF_R32G32B32A32_SINT
139  12, // DF_R32G32B32_TYPELESS
140  12, // DF_R32G32B32_FLOAT
141  12, // DF_R32G32B32_UINT
142  12, // DF_R32G32B32_SINT
143  8, // DF_R16G16B16A16_TYPELESS
144  8, // DF_R16G16B16A16_FLOAT
145  8, // DF_R16G16B16A16_UNORM
146  8, // DF_R16G16B16A16_UINT
147  8, // DF_R16G16B16A16_SNORM
148  8, // DF_R16G16B16A16_SINT
149  8, // DF_R32G32_TYPELESS
150  8, // DF_R32G32_FLOAT
151  8, // DF_R32G32_UINT
152  8, // DF_R32G32_SINT
153  8, // DF_R32G8X24_TYPELESS
154  4, // DF_D32_FLOAT_S8X24_UINT
155  4, // DF_R32_FLOAT_X8X24_TYPELESS
156  4, // DF_X32_TYPELESS_G8X24_UINT
157  4, // DF_R10G10B10A2_TYPELESS
158  4, // DF_R10G10B10A2_UNORM
159  4, // DF_R10G10B10A2_UINT
160  4, // DF_R11G11B10_FLOAT
161  4, // DF_R8G8B8A8_TYPELESS
162  4, // DF_R8G8B8A8_UNORM
163  4, // DF_R8G8B8A8_UNORM_SRGB
164  4, // DF_R8G8B8A8_UINT
165  4, // DF_R8G8B8A8_SNORM
166  4, // DF_R8G8B8A8_SINT
167  4, // DF_R16G16_TYPELESS
168  4, // DF_R16G16_FLOAT
169  4, // DF_R16G16_UNORM
170  4, // DF_R16G16_UINT
171  4, // DF_R16G16_SNORM
172  4, // DF_R16G16_SINT
173  4, // DF_R32_TYPELESS
174  4, // DF_D32_FLOAT
175  4, // DF_R32_FLOAT
176  4, // DF_R32_UINT
177  4, // DF_R32_SINT
178  4, // DF_R24G8_TYPELESS
179  4, // DF_D24_UNORM_S8_UINT
180  4, // DF_R24_UNORM_X8_TYPELESS
181  4, // DF_X24_TYPELESS_G8_UINT
182  2, // DF_R8G8_TYPELESS
183  2, // DF_R8G8_UNORM
184  2, // DF_R8G8_UINT
185  2, // DF_R8G8_SNORM
186  2, // DF_R8G8_SINT
187  2, // DF_R16_TYPELESS
188  2, // DF_R16_FLOAT
189  2, // DF_D16_UNORM
190  2, // DF_R16_UNORM
191  2, // DF_R16_UINT
192  2, // DF_R16_SNORM
193  2, // DF_R16_SINT
194  1, // DF_R8_TYPELESS
195  1, // DF_R8_UNORM
196  1, // DF_R8_UINT
197  1, // DF_R8_SNORM
198  1, // DF_R8_SINT
199  1, // DF_A8_UNORM
200  0, // DF_R1_UNORM
201  2, // DF_R9G9B9E5_SHAREDEXP
202  2, // DF_R8G8_B8G8_UNORM
203  2, // DF_G8R8_G8B8_UNORM
204  0, // DF_BC1_TYPELESS
205  0, // DF_BC1_UNORM
206  0, // DF_BC1_UNORM_SRGB
207  0, // DF_BC2_TYPELESS
208  0, // DF_BC2_UNORM
209  0, // DF_BC2_UNORM_SRGB
210  0, // DF_BC3_TYPELESS
211  0, // DF_BC3_UNORM
212  0, // DF_BC3_UNORM_SRGB
213  0, // DF_BC4_TYPELESS
214  0, // DF_BC4_UNORM
215  0, // DF_BC4_SNORM
216  0, // DF_BC5_TYPELESS
217  0, // DF_BC5_UNORM
218  0, // DF_BC5_SNORM
219  2, // DF_B5G6R5_UNORM
220  2, // DF_B5G5R5A1_UNORM
221  4, // DF_B8G8R8A8_UNORM
222  4, // DF_B8G8R8X8_UNORM
223  4, // DF_R10G10B10_XR_BIAS_A2_UNORM
224  4, // DF_B8G8R8A8_TYPELESS
225  4, // DF_B8G8R8A8_UNORM_SRGB
226  4, // DF_B8G8R8X8_TYPELESS
227  4, // DF_B8G8R8X8_UNORM_SRGB
228  0, // DF_BC6H_TYPELESS
229  0, // DF_BC6H_UF16
230  0, // DF_BC6H_SF16
231  0, // DF_BC7_TYPELESS
232  0, // DF_BC7_UNORM
233  0, // DF_BC7_UNORM_SRGB
234  // DX11.1 formats (TODO: Determine bytes per channel)
235  0, // DF_AYUV
236  0, // DF_Y410
237  0, // DF_Y416
238  0, // DF_NV12
239  0, // DF_P010
240  0, // DF_P016
241  0, // DF_420_OPAQUE
242  0, // DF_YUY2
243  0, // DF_Y210
244  0, // DF_Y216
245  0, // DF_NV11
246  0, // DF_AI44
247  0, // DF_IA44
248  0, // DF_P8
249  0, // DF_A8P8
250  0 // DF_B4G4R4A4_UNORM
251 };
252 
253 unsigned int const DataFormat::msNumChannels[DF_NUM_FORMATS] =
254 {
255  0, // DF_UNKNOWN
256  4, // DF_R32G32B32A32_TYPELESS
257  4, // DF_R32G32B32A32_FLOAT
258  4, // DF_R32G32B32A32_UINT
259  4, // DF_R32G32B32A32_SINT
260  3, // DF_R32G32B32_TYPELESS
261  3, // DF_R32G32B32_FLOAT
262  3, // DF_R32G32B32_UINT
263  3, // DF_R32G32B32_SINT
264  4, // DF_R16G16B16A16_TYPELESS
265  4, // DF_R16G16B16A16_FLOAT
266  4, // DF_R16G16B16A16_UNORM
267  4, // DF_R16G16B16A16_UINT
268  4, // DF_R16G16B16A16_SNORM
269  4, // DF_R16G16B16A16_SINT
270  2, // DF_R32G32_TYPELESS
271  2, // DF_R32G32_FLOAT
272  2, // DF_R32G32_UINT
273  2, // DF_R32G32_SINT
274  2, // DF_R32G8X24_TYPELESS
275  2, // DF_D32_FLOAT_S8X24_UINT
276  2, // DF_R32_FLOAT_X8X24_TYPELESS
277  2, // DF_X32_TYPELESS_G8X24_UINT
278  4, // DF_R10G10B10A2_TYPELESS
279  4, // DF_R10G10B10A2_UNORM
280  4, // DF_R10G10B10A2_UINT
281  3, // DF_R11G11B10_FLOAT
282  4, // DF_R8G8B8A8_TYPELESS
283  4, // DF_R8G8B8A8_UNORM
284  4, // DF_R8G8B8A8_UNORM_SRGB
285  4, // DF_R8G8B8A8_UINT
286  4, // DF_R8G8B8A8_SNORM
287  4, // DF_R8G8B8A8_SINT
288  2, // DF_R16G16_TYPELESS
289  2, // DF_R16G16_FLOAT
290  2, // DF_R16G16_UNORM
291  2, // DF_R16G16_UINT
292  2, // DF_R16G16_SNORM
293  2, // DF_R16G16_SINT
294  1, // DF_R32_TYPELESS
295  1, // DF_D32_FLOAT
296  1, // DF_R32_FLOAT
297  1, // DF_R32_UINT
298  1, // DF_R32_SINT
299  2, // DF_R24G8_TYPELESS
300  2, // DF_D24_UNORM_S8_UINT
301  2, // DF_R24_UNORM_X8_TYPELESS
302  2, // DF_X24_TYPELESS_G8_UINT
303  2, // DF_R8G8_TYPELESS
304  2, // DF_R8G8_UNORM
305  2, // DF_R8G8_UINT
306  2, // DF_R8G8_SNORM
307  2, // DF_R8G8_SINT
308  1, // DF_R16_TYPELESS
309  1, // DF_R16_FLOAT
310  1, // DF_D16_UNORM
311  1, // DF_R16_UNORM
312  1, // DF_R16_UINT
313  1, // DF_R16_SNORM
314  1, // DF_R16_SINT
315  1, // DF_R8_TYPELESS
316  1, // DF_R8_UNORM
317  1, // DF_R8_UINT
318  1, // DF_R8_SNORM
319  1, // DF_R8_SINT
320  1, // DF_A8_UNORM
321  1, // DF_R1_UNORM
322  4, // DF_R9G9B9E5_SHAREDEXP
323  4, // DF_R8G8_B8G8_UNORM
324  4, // DF_G8R8_G8B8_UNORM
325  0, // DF_BC1_TYPELESS
326  0, // DF_BC1_UNORM
327  0, // DF_BC1_UNORM_SRGB
328  0, // DF_BC2_TYPELESS
329  0, // DF_BC2_UNORM
330  0, // DF_BC2_UNORM_SRGB
331  0, // DF_BC3_TYPELESS
332  0, // DF_BC3_UNORM
333  0, // DF_BC3_UNORM_SRGB
334  0, // DF_BC4_TYPELESS
335  0, // DF_BC4_UNORM
336  0, // DF_BC4_SNORM
337  0, // DF_BC5_TYPELESS
338  0, // DF_BC5_UNORM
339  0, // DF_BC5_SNORM
340  2, // DF_B5G6R5_UNORM
341  4, // DF_B5G5R5A1_UNORM
342  4, // DF_B8G8R8A8_UNORM
343  4, // DF_B8G8R8X8_UNORM
344  4, // DF_R10G10B10_XR_BIAS_A2_UNORM
345  4, // DF_B8G8R8A8_TYPELESS
346  4, // DF_B8G8R8A8_UNORM_SRGB
347  4, // DF_B8G8R8X8_TYPELESS
348  4, // DF_B8G8R8X8_UNORM_SRGB
349  0, // DF_BC6H_TYPELESS
350  0, // DF_BC6H_UF16
351  0, // DF_BC6H_SF16
352  0, // DF_BC7_TYPELESS
353  0, // DF_BC7_UNORM
354  0, // DF_BC7_UNORM_SRGB
355  // DX11.1 formats (TODO: Determine number of channels)
356  0, // DF_AYUV
357  0, // DF_Y410
358  0, // DF_Y416
359  0, // DF_NV12
360  0, // DF_P010
361  0, // DF_P016
362  0, // DF_420_OPAQUE
363  0, // DF_YUY2
364  0, // DF_Y210
365  0, // DF_Y216
366  0, // DF_NV11
367  0, // DF_AI44
368  0, // DF_IA44
369  0, // DF_P8
370  0, // DF_A8P8
371  0 // DF_B4G4R4A4_UNORM
372 };
373 
374 DFChannelType const DataFormat::msChannelType[DF_NUM_FORMATS] =
375 {
376  DF_UNSUPPORTED, // DF_UNKNOWN
377  DF_UNSUPPORTED, // DF_R32G32B32A32_TYPELESS
378  DF_FLOAT, // DF_R32G32B32A32_FLOAT
379  DF_UINT, // DF_R32G32B32A32_UINT
380  DF_INT, // DF_R32G32B32A32_SINT
381  DF_UNSUPPORTED, // DF_R32G32B32_TYPELESS
382  DF_FLOAT, // DF_R32G32B32_FLOAT
383  DF_UINT, // DF_R32G32B32_UINT
384  DF_INT, // DF_R32G32B32_SINT
385  DF_UNSUPPORTED, // DF_R16G16B16A16_TYPELESS
386  DF_HALF_FLOAT, // DF_R16G16B16A16_FLOAT
387  DF_USHORT, // DF_R16G16B16A16_UNORM
388  DF_USHORT, // DF_R16G16B16A16_UINT
389  DF_SHORT, // DF_R16G16B16A16_SNORM
390  DF_SHORT, // DF_R16G16B16A16_SINT
391  DF_UNSUPPORTED, // DF_R32G32_TYPELESS
392  DF_FLOAT, // DF_R32G32_FLOAT
393  DF_UINT, // DF_R32G32_UINT
394  DF_INT, // DF_R32G32_SINT
395  DF_UNSUPPORTED, // DF_R32G8X24_TYPELESS
396  DF_UNSUPPORTED, // DF_D32_FLOAT_S8X24_UINT
397  DF_UNSUPPORTED, // DF_R32_FLOAT_X8X24_TYPELESS
398  DF_UNSUPPORTED, // DF_X32_TYPELESS_G8X24_UINT
399  DF_UNSUPPORTED, // DF_R10G10B10A2_TYPELESS
400  DF_UINT_10_10_2, // DF_R10G10B10A2_UNORM
401  DF_UINT_10_10_2, // DF_R10G10B10A2_UINT
402  DF_FLOAT_11_11_10, // DF_R11G11B10_FLOAT
403  DF_UNSUPPORTED, // DF_R8G8B8A8_TYPELESS
404  DF_UBYTE, // DF_R8G8B8A8_UNORM
405  DF_UBYTE, // DF_R8G8B8A8_UNORM_SRGB
406  DF_UBYTE, // DF_R8G8B8A8_UINT
407  DF_BYTE, // DF_R8G8B8A8_SNORM
408  DF_BYTE, // DF_R8G8B8A8_SINT
409  DF_UNSUPPORTED, // DF_R16G16_TYPELESS
410  DF_FLOAT, // DF_R16G16_FLOAT
411  DF_USHORT, // DF_R16G16_UNORM
412  DF_USHORT, // DF_R16G16_UINT
413  DF_SHORT, // DF_R16G16_SNORM
414  DF_SHORT, // DF_R16G16_SINT
415  DF_UNSUPPORTED, // DF_R32_TYPELESS
416  DF_FLOAT, // DF_D32_FLOAT
417  DF_FLOAT, // DF_R32_FLOAT
418  DF_UINT, // DF_R32_UINT
419  DF_INT, // DF_R32_SINT
420  DF_UNSUPPORTED, // DF_R24G8_TYPELESS
421  DF_UINT, // DF_D24_UNORM_S8_UINT
422  DF_UNSUPPORTED, // DF_R24_UNORM_X8_TYPELESS
423  DF_UNSUPPORTED, // DF_X24_TYPELESS_G8_UINT
424  DF_UNSUPPORTED, // DF_R8G8_TYPELESS
425  DF_UBYTE, // DF_R8G8_UNORM
426  DF_UBYTE, // DF_R8G8_UINT
427  DF_BYTE, // DF_R8G8_SNORM
428  DF_BYTE, // DF_R8G8_SINT
429  DF_UNSUPPORTED, // DF_R16_TYPELESS
430  DF_HALF_FLOAT, // DF_R16_FLOAT
431  DF_USHORT, // DF_D16_UNORM
432  DF_USHORT, // DF_R16_UNORM
433  DF_USHORT, // DF_R16_UINT
434  DF_SHORT, // DF_R16_SNORM
435  DF_SHORT, // DF_R16_SINT
436  DF_UNSUPPORTED, // DF_R8_TYPELESS
437  DF_UBYTE, // DF_R8_UNORM
438  DF_UBYTE, // DF_R8_UINT
439  DF_BYTE, // DF_R8_SNORM
440  DF_BYTE, // DF_R8_SINT
441  DF_UNSUPPORTED, // DF_A8_UNORM
442  DF_UNSUPPORTED, // DF_R1_UNORM
443  DF_UNSUPPORTED, // DF_R9G9B9E5_SHAREDEXP
444  DF_UNSUPPORTED, // DF_R8G8_B8G8_UNORM
445  DF_UNSUPPORTED, // DF_G8R8_G8B8_UNORM
446  DF_UNSUPPORTED, // DF_BC1_TYPELESS
447  DF_UNSUPPORTED, // DF_BC1_UNORM
448  DF_UNSUPPORTED, // DF_BC1_UNORM_SRGB
449  DF_UNSUPPORTED, // DF_BC2_TYPELESS
450  DF_UNSUPPORTED, // DF_BC2_UNORM
451  DF_UNSUPPORTED, // DF_BC2_UNORM_SRGB
452  DF_UNSUPPORTED, // DF_BC3_TYPELESS
453  DF_UNSUPPORTED, // DF_BC3_UNORM
454  DF_UNSUPPORTED, // DF_BC3_UNORM_SRGB
455  DF_UNSUPPORTED, // DF_BC4_TYPELESS
456  DF_UNSUPPORTED, // DF_BC4_UNORM
457  DF_UNSUPPORTED, // DF_BC4_SNORM
458  DF_UNSUPPORTED, // DF_BC5_TYPELESS
459  DF_UNSUPPORTED, // DF_BC5_UNORM
460  DF_UNSUPPORTED, // DF_BC5_SNORM
461  DF_UNSUPPORTED, // DF_B5G6R5_UNORM
462  DF_UNSUPPORTED, // DF_B5G5R5A1_UNORM
463  DF_UNSUPPORTED, // DF_B8G8R8A8_UNORM
464  DF_UNSUPPORTED, // DF_B8G8R8X8_UNORM
465  DF_UNSUPPORTED, // DF_R10G10B10_XR_BIAS_A2_UNORM
466  DF_UNSUPPORTED, // DF_B8G8R8A8_TYPELESS
467  DF_UNSUPPORTED, // DF_B8G8R8A8_UNORM_SRGB
468  DF_UNSUPPORTED, // DF_B8G8R8X8_TYPELESS
469  DF_UNSUPPORTED, // DF_B8G8R8X8_UNORM_SRGB
470  DF_UNSUPPORTED, // DF_BC6H_TYPELESS
471  DF_UNSUPPORTED, // DF_BC6H_UF16
472  DF_UNSUPPORTED, // DF_BC6H_SF16
473  DF_UNSUPPORTED, // DF_BC7_TYPELESS
474  DF_UNSUPPORTED, // DF_BC7_UNORM
475  DF_UNSUPPORTED, // DF_BC7_UNORM_SRGB
476  // DX11.1 formats (TODO: Determine whether we will support these)
477  DF_UNSUPPORTED, // DF_AYUV
478  DF_UNSUPPORTED, // DF_Y410
479  DF_UNSUPPORTED, // DF_Y416
480  DF_UNSUPPORTED, // DF_NV12
481  DF_UNSUPPORTED, // DF_P010
482  DF_UNSUPPORTED, // DF_P016
483  DF_UNSUPPORTED, // DF_420_OPAQUE
484  DF_UNSUPPORTED, // DF_YUY2
485  DF_UNSUPPORTED, // DF_Y210
486  DF_UNSUPPORTED, // DF_Y216
487  DF_UNSUPPORTED, // DF_NV11
488  DF_UNSUPPORTED, // DF_AI44
489  DF_UNSUPPORTED, // DF_IA44
490  DF_UNSUPPORTED, // DF_P8
491  DF_UNSUPPORTED, // DF_A8P8
492  DF_UNSUPPORTED // DF_B4G4R4A4_UNORM
493 };
494 
495 bool const DataFormat::msConvertChannel[DF_NUM_FORMATS] =
496 {
497  false, // DF_UNKNOWN
498  false, // DF_R32G32B32A32_TYPELESS
499  false, // DF_R32G32B32A32_FLOAT
500  false, // DF_R32G32B32A32_UINT
501  false, // DF_R32G32B32A32_SINT
502  false, // DF_R32G32B32_TYPELESS
503  false, // DF_R32G32B32_FLOAT
504  false, // DF_R32G32B32_UINT
505  false, // DF_R32G32B32_SINT
506  false, // DF_R16G16B16A16_TYPELESS
507  false, // DF_R16G16B16A16_FLOAT
508  true, // DF_R16G16B16A16_UNORM
509  false, // DF_R16G16B16A16_UINT
510  true, // DF_R16G16B16A16_SNORM
511  false, // DF_R16G16B16A16_SINT
512  false, // DF_R32G32_TYPELESS
513  false, // DF_R32G32_FLOAT
514  false, // DF_R32G32_UINT
515  false, // DF_R32G32_SINT
516  false, // DF_R32G8X24_TYPELESS
517  false, // DF_D32_FLOAT_S8X24_UINT
518  false, // DF_R32_FLOAT_X8X24_TYPELESS
519  false, // DF_X32_TYPELESS_G8X24_UINT
520  false, // DF_R10G10B10A2_TYPELESS
521  true, // DF_R10G10B10A2_UNORM
522  false, // DF_R10G10B10A2_UINT
523  false, // DF_R11G11B10_FLOAT
524  false, // DF_R8G8B8A8_TYPELESS
525  true, // DF_R8G8B8A8_UNORM
526  true, // DF_R8G8B8A8_UNORM_SRGB
527  false, // DF_R8G8B8A8_UINT
528  true, // DF_R8G8B8A8_SNORM
529  false, // DF_R8G8B8A8_SINT
530  false, // DF_R16G16_TYPELESS
531  false, // DF_R16G16_FLOAT
532  true, // DF_R16G16_UNORM
533  false, // DF_R16G16_UINT
534  true, // DF_R16G16_SNORM
535  false, // DF_R16G16_SINT
536  false, // DF_R32_TYPELESS
537  false, // DF_D32_FLOAT
538  false, // DF_R32_FLOAT
539  false, // DF_R32_UINT
540  false, // DF_R32_SINT
541  false, // DF_R24G8_TYPELESS
542  false, // DF_D24_UNORM_S8_UINT
543  false, // DF_R24_UNORM_X8_TYPELESS
544  false, // DF_X24_TYPELESS_G8_UINT
545  false, // DF_R8G8_TYPELESS
546  true, // DF_R8G8_UNORM
547  false, // DF_R8G8_UINT
548  true, // DF_R8G8_SNORM
549  false, // DF_R8G8_SINT
550  false, // DF_R16_TYPELESS
551  false, // DF_R16_FLOAT
552  true, // DF_D16_UNORM
553  true, // DF_R16_UNORM
554  false, // DF_R16_UINT
555  true, // DF_R16_SNORM
556  false, // DF_R16_SINT
557  false, // DF_R8_TYPELESS
558  true, // DF_R8_UNORM
559  false, // DF_R8_UINT
560  true, // DF_R8_SNORM
561  false, // DF_R8_SINT
562  true, // DF_A8_UNORM
563  true, // DF_R1_UNORM
564  false, // DF_R9G9B9E5_SHAREDEXP
565  true, // DF_R8G8_B8G8_UNORM
566  true, // DF_G8R8_G8B8_UNORM
567  false, // DF_BC1_TYPELESS
568  true, // DF_BC1_UNORM
569  true, // DF_BC1_UNORM_SRGB
570  false, // DF_BC2_TYPELESS
571  true, // DF_BC2_UNORM
572  true, // DF_BC2_UNORM_SRGB
573  false, // DF_BC3_TYPELESS
574  true, // DF_BC3_UNORM
575  true, // DF_BC3_UNORM_SRGB
576  false, // DF_BC4_TYPELESS
577  true, // DF_BC4_UNORM
578  true, // DF_BC4_SNORM
579  false, // DF_BC5_TYPELESS
580  true, // DF_BC5_UNORM
581  true, // DF_BC5_SNORM
582  true, // DF_B5G6R5_UNORM
583  true, // DF_B5G5R5A1_UNORM
584  true, // DF_B8G8R8A8_UNORM
585  true, // DF_B8G8R8X8_UNORM
586  true, // DF_R10G10B10_XR_BIAS_A2_UNORM
587  false, // DF_B8G8R8A8_TYPELESS
588  true, // DF_B8G8R8A8_UNORM_SRGB
589  false, // DF_B8G8R8X8_TYPELESS
590  true, // DF_B8G8R8X8_UNORM_SRGB
591  false, // DF_BC6H_TYPELESS
592  false, // DF_BC6H_UF16
593  false, // DF_BC6H_SF16
594  false, // DF_BC7_TYPELESS
595  true, // DF_BC7_UNORM
596  true, // DF_BC7_UNORM_SRGB
597  // DX11.1 formats (TODO: Determine the appropriate bool value)
598  false, // DF_AYUV
599  false, // DF_Y410
600  false, // DF_Y416
601  false, // DF_NV12
602  false, // DF_P010
603  false, // DF_P016
604  false, // DF_420_OPAQUE
605  false, // DF_YUY2
606  false, // DF_Y210
607  false, // DF_Y216
608  false, // DF_NV11
609  false, // DF_AI44
610  false, // DF_IA44
611  false, // DF_P8
612  false, // DF_A8P8
613  false // DF_B4G4R4A4_UNORM
614 };
615 
616 bool const DataFormat::msSupported[DF_NUM_FORMATS] =
617 {
618  false, // DF_UNKNOWN
619  true, // DF_R32G32B32A32_TYPELESS
620  true, // DF_R32G32B32A32_FLOAT
621  true, // DF_R32G32B32A32_UINT
622  true, // DF_R32G32B32A32_SINT
623  true, // DF_R32G32B32_TYPELESS
624  true, // DF_R32G32B32_FLOAT
625  true, // DF_R32G32B32_UINT
626  true, // DF_R32G32B32_SINT
627  true, // DF_R16G16B16A16_TYPELESS
628  true, // DF_R16G16B16A16_FLOAT
629  true, // DF_R16G16B16A16_UNORM
630  true, // DF_R16G16B16A16_UINT
631  true, // DF_R16G16B16A16_SNORM
632  true, // DF_R16G16B16A16_SINT
633  true, // DF_R32G32_TYPELESS
634  true, // DF_R32G32_FLOAT
635  true, // DF_R32G32_UINT
636  true, // DF_R32G32_SINT
637  true, // DF_R32G8X24_TYPELESS
638  true, // DF_D32_FLOAT_S8X24_UINT
639  true, // DF_R32_FLOAT_X8X24_TYPELESS
640  true, // DF_X32_TYPELESS_G8X24_UINT
641  true, // DF_R10G10B10A2_TYPELESS
642  true, // DF_R10G10B10A2_UNORM
643  true, // DF_R10G10B10A2_UINT
644  true, // DF_R11G11B10_FLOAT
645  true, // DF_R8G8B8A8_TYPELESS
646  true, // DF_R8G8B8A8_UNORM
647  true, // DF_R8G8B8A8_UNORM_SRGB
648  true, // DF_R8G8B8A8_UINT
649  true, // DF_R8G8B8A8_SNORM
650  true, // DF_R8G8B8A8_SINT
651  true, // DF_R16G16_TYPELESS
652  true, // DF_R16G16_FLOAT
653  true, // DF_R16G16_UNORM
654  true, // DF_R16G16_UINT
655  true, // DF_R16G16_SNORM
656  true, // DF_R16G16_SINT
657  true, // DF_R32_TYPELESS
658  true, // DF_D32_FLOAT
659  true, // DF_R32_FLOAT
660  true, // DF_R32_UINT
661  true, // DF_R32_SINT
662  true, // DF_R24G8_TYPELESS
663  true, // DF_D24_UNORM_S8_UINT
664  true, // DF_R24_UNORM_X8_TYPELESS
665  true, // DF_X24_TYPELESS_G8_UINT
666  true, // DF_R8G8_TYPELESS
667  true, // DF_R8G8_UNORM
668  true, // DF_R8G8_UINT
669  true, // DF_R8G8_SNORM
670  true, // DF_R8G8_SINT
671  true, // DF_R16_TYPELESS
672  true, // DF_R16_FLOAT
673  true, // DF_D16_UNORM
674  true, // DF_R16_UNORM
675  true, // DF_R16_UINT
676  true, // DF_R16_SNORM
677  true, // DF_R16_SINT
678  true, // DF_R8_TYPELESS
679  true, // DF_R8_UNORM
680  true, // DF_R8_UINT
681  true, // DF_R8_SNORM
682  true, // DF_R8_SINT
683  true, // DF_A8_UNORM
684  false, // DF_R1_UNORM
685  true, // DF_R9G9B9E5_SHAREDEXP
686  true, // DF_R8G8_B8G8_UNORM
687  true, // DF_G8R8_G8B8_UNORM
688  false, // DF_BC1_TYPELESS
689  false, // DF_BC1_UNORM
690  false, // DF_BC1_UNORM_SRGB
691  false, // DF_BC2_TYPELESS
692  false, // DF_BC2_UNORM
693  false, // DF_BC2_UNORM_SRGB
694  false, // DF_BC3_TYPELESS
695  false, // DF_BC3_UNORM
696  false, // DF_BC3_UNORM_SRGB
697  false, // DF_BC4_TYPELESS
698  false, // DF_BC4_UNORM
699  false, // DF_BC4_SNORM
700  false, // DF_BC5_TYPELESS
701  false, // DF_BC5_UNORM
702  false, // DF_BC5_SNORM
703  true, // DF_B5G6R5_UNORM
704  true, // DF_B5G5R5A1_UNORM
705  true, // DF_B8G8R8A8_UNORM
706  true, // DF_B8G8R8X8_UNORM
707  true, // DF_R10G10B10_XR_BIAS_A2_UNORM
708  true, // DF_B8G8R8A8_TYPELESS
709  true, // DF_B8G8R8A8_UNORM_SRGB
710  true, // DF_B8G8R8X8_TYPELESS
711  true, // DF_B8G8R8X8_UNORM_SRGB
712  false, // DF_BC6H_TYPELESS
713  false, // DF_BC6H_UF16
714  false, // DF_BC6H_SF16
715  false, // DF_BC7_TYPELESS
716  false, // DF_BC7_UNORM
717  false, // DF_BC7_UNORM_SRGB
718  // DX11.1 formats (TODO: Determine whether we will support these)
719  false, // DF_AYUV
720  false, // DF_Y410
721  false, // DF_Y416
722  false, // DF_NV12
723  false, // DF_P010
724  false, // DF_P016
725  false, // DF_420_OPAQUE
726  false, // DF_YUY2
727  false, // DF_Y210
728  false, // DF_Y216
729  false, // DF_NV11
730  false, // DF_AI44
731  false, // DF_IA44
732  false, // DF_P8
733  false, // DF_A8P8
734  false // DF_B4G4R4A4_UNORM
735 };
DF_USHORT
DF_UINT
static DFChannelType const msChannelType[DF_NUM_FORMATS]
DF_UBYTE
DF_UINT_10_10_2
static unsigned int const msNumChannels[DF_NUM_FORMATS]
DF_HALF_FLOAT
DF_INT
GLsizei const GLchar *const * string
Definition: glcorearb.h:809
DF_FLOAT_11_11_10
DF_BYTE
static bool const msSupported[DF_NUM_FORMATS]
static unsigned int const msNumBytesPerStruct[DF_NUM_FORMATS]
static std::string const msName[DF_NUM_FORMATS]
DF_SHORT
DF_FLOAT
DF_UNSUPPORTED
static bool const msConvertChannel[DF_NUM_FORMATS]


geometric_tools_engine
Author(s): Yijiang Huang
autogenerated on Thu Jul 18 2019 03:59:59