Cogs.Core
FormatsWebGPU.cpp
1#include "FormatsWebGPU.h"
2
3#include "../TextureData.h"
4
5const WGPUTextureFormat Cogs::TextureFormatsWebGPU[] = {
6 WGPUTextureFormat_Undefined,
7
8 // Unsigned normalized byte formats
9
10 WGPUTextureFormat_R8Unorm,
11 WGPUTextureFormat_RG8Unorm,
12 WGPUTextureFormat_Undefined, // Undefined
13 WGPUTextureFormat_RGBA8Unorm,
14
15 // Unsigned 16 bit normalized integer formats
16
17 WGPUTextureFormat_Undefined, // Undefined
18 WGPUTextureFormat_Undefined, // Undefined
19 WGPUTextureFormat_Undefined, // Undefined
20 WGPUTextureFormat_Undefined, // Undefined
21
22 // Signed normalized byte formats
23
24 WGPUTextureFormat_R8Snorm,
25 WGPUTextureFormat_RG8Snorm,
26 WGPUTextureFormat_Undefined, // Undefined
27 WGPUTextureFormat_RGBA8Snorm,
28
29 // Signed 16 bit normalized integer formats
30
31 WGPUTextureFormat_Undefined, // Undefined
32 WGPUTextureFormat_Undefined, // Undefined
33 WGPUTextureFormat_Undefined, // Undefined
34 WGPUTextureFormat_Undefined, // Undefined
35
36 // Unsigned byte formats
37
38 WGPUTextureFormat_R8Uint,
39 WGPUTextureFormat_RG8Uint,
40 WGPUTextureFormat_Undefined, // Undefined
41 WGPUTextureFormat_RGBA8Uint,
42
43 // Unsigned 16 bit integer formats
44
45 WGPUTextureFormat_R16Uint,
46 WGPUTextureFormat_RG16Uint,
47 WGPUTextureFormat_Undefined, // Undefined
48 WGPUTextureFormat_RGBA16Uint,
49
50 // Unsigned 32 bit integer formats
51
52 WGPUTextureFormat_R32Uint,
53 WGPUTextureFormat_RG32Uint,
54 WGPUTextureFormat_Undefined, // Undefined
55 WGPUTextureFormat_RGBA32Uint,
56
57 // Signed byte formats
58
59 WGPUTextureFormat_R8Sint,
60 WGPUTextureFormat_RG8Sint,
61 WGPUTextureFormat_Undefined, // Undefined
62 WGPUTextureFormat_RGBA8Sint,
63
64 // Signed 16 bit integer formats
65
66 WGPUTextureFormat_R16Sint,
67 WGPUTextureFormat_RG16Sint,
68 WGPUTextureFormat_Undefined, // Undefined
69 WGPUTextureFormat_RGBA16Sint,
70
71 // Signed 32 bit integer formats
72
73 WGPUTextureFormat_R32Sint,
74 WGPUTextureFormat_RG32Sint,
75 WGPUTextureFormat_Undefined, // Undefined
76 WGPUTextureFormat_RGBA32Sint,
77
78 // 16 bit floating point formats
79
80 WGPUTextureFormat_R16Float,
81 WGPUTextureFormat_RG16Float,
82 WGPUTextureFormat_Undefined, // Undefined
83 WGPUTextureFormat_RGBA16Float,
84
85 // 32 bit floating point formats
86
87 WGPUTextureFormat_R32Float,
88 WGPUTextureFormat_RG32Float,
89 WGPUTextureFormat_Undefined, // Undefined
90 WGPUTextureFormat_RGBA32Float,
91
92 // Depth buffer formats
93
94 WGPUTextureFormat_Depth16Unorm,
95 WGPUTextureFormat_Depth24Plus,
96 WGPUTextureFormat_Depth24PlusStencil8,
97 WGPUTextureFormat_Depth32Float,
98 WGPUTextureFormat_Depth32Float, // R32_TYPELESS = WGPUTextureFormat_Depth32Float
99 WGPUTextureFormat_Depth16Unorm, // R16_TYPELESS WGPUTextureFormat_Depth16Unorm
100
101 // 8 bit typeless formats
102
103 WGPUTextureFormat_Undefined, // Undefined
104 WGPUTextureFormat_Undefined, // Undefined
105 WGPUTextureFormat_Undefined, // Undefined
106 WGPUTextureFormat_Undefined, // Undefined
107
108 // Reverse component order formats.
109
110 WGPUTextureFormat_Undefined, // Undefined
111 WGPUTextureFormat_BGRA8Unorm,
112
113 // Alpha formats
114
115 WGPUTextureFormat_Undefined, // Undefined
116
117 // Compressed formats
118
119 WGPUTextureFormat_Undefined, // Undefined
120 WGPUTextureFormat_BC1RGBAUnorm,
121 WGPUTextureFormat_BC1RGBAUnormSrgb,
122 WGPUTextureFormat_Undefined, // Undefined
123 WGPUTextureFormat_BC2RGBAUnorm,
124 WGPUTextureFormat_BC2RGBAUnormSrgb,
125 WGPUTextureFormat_Undefined, // Undefined
126 WGPUTextureFormat_BC3RGBAUnorm,
127 WGPUTextureFormat_BC3RGBAUnormSrgb,
128 WGPUTextureFormat_Undefined, // Undefined
129 WGPUTextureFormat_BC4RUnorm,
130 WGPUTextureFormat_BC4RSnorm,
131 WGPUTextureFormat_Undefined, // Undefined
132 WGPUTextureFormat_BC5RGUnorm,
133 WGPUTextureFormat_BC5RGSnorm,
134
135 // BPTC
136 WGPUTextureFormat_BC6HRGBFloat,
137 WGPUTextureFormat_BC6HRGBUfloat,
138 WGPUTextureFormat_BC7RGBAUnorm,
139 WGPUTextureFormat_BC7RGBAUnormSrgb,
140
141 // PVRTC TODO
142 WGPUTextureFormat_Undefined,
143 WGPUTextureFormat_Undefined,
144 WGPUTextureFormat_Undefined,
145 WGPUTextureFormat_Undefined,
146
147 //ETC
148 WGPUTextureFormat_EACR11Unorm,
149 WGPUTextureFormat_EACR11Snorm,
150 WGPUTextureFormat_EACRG11Unorm,
151 WGPUTextureFormat_EACRG11Snorm,
152
153 WGPUTextureFormat_ETC2RGB8Unorm,
154 WGPUTextureFormat_ETC2RGB8UnormSrgb,
155 WGPUTextureFormat_ETC2RGBA8Unorm,
156 WGPUTextureFormat_ETC2RGBA8UnormSrgb,
157
158 // ASTC
159 WGPUTextureFormat_ASTC4x4Unorm,
160 WGPUTextureFormat_ASTC5x4Unorm,
161 WGPUTextureFormat_ASTC5x5Unorm,
162 WGPUTextureFormat_ASTC6x5Unorm,
163 WGPUTextureFormat_ASTC6x6Unorm,
164 WGPUTextureFormat_ASTC8x5Unorm,
165 WGPUTextureFormat_ASTC8x6Unorm,
166 WGPUTextureFormat_ASTC8x8Unorm,
167 WGPUTextureFormat_ASTC10x5Unorm,
168 WGPUTextureFormat_ASTC10x6Unorm,
169 WGPUTextureFormat_ASTC10x8Unorm,
170 WGPUTextureFormat_ASTC10x10Unorm,
171 WGPUTextureFormat_ASTC12x10Unorm,
172 WGPUTextureFormat_ASTC12x12Unorm,
173 // ASTC SRGBA
174 WGPUTextureFormat_ASTC4x4UnormSrgb,
175 WGPUTextureFormat_ASTC5x4UnormSrgb,
176 WGPUTextureFormat_ASTC5x5UnormSrgb,
177 WGPUTextureFormat_ASTC6x5UnormSrgb,
178 WGPUTextureFormat_ASTC6x6UnormSrgb,
179 WGPUTextureFormat_ASTC8x5UnormSrgb,
180 WGPUTextureFormat_ASTC8x6UnormSrgb,
181 WGPUTextureFormat_ASTC8x8UnormSrgb,
182 WGPUTextureFormat_ASTC10x5UnormSrgb,
183 WGPUTextureFormat_ASTC10x6UnormSrgb,
184 WGPUTextureFormat_ASTC10x8UnormSrgb,
185 WGPUTextureFormat_ASTC10x10UnormSrgb,
186 WGPUTextureFormat_ASTC12x10UnormSrgb,
187 WGPUTextureFormat_ASTC12x12UnormSrgb,
188
189 // SRGB formats
190
191 WGPUTextureFormat_Undefined, // Undefined
192 WGPUTextureFormat_RGBA8UnormSrgb,
193
194 // Reverse SRGB formats
195
196 WGPUTextureFormat_BGRA8UnormSrgb,
197
198 // Packed formats
199
200 WGPUTextureFormat_Undefined, // Undefined
201 WGPUTextureFormat_RGB10A2Unorm,
202 WGPUTextureFormat_RGB10A2Uint,
203 WGPUTextureFormat_RG11B10Ufloat,
204 WGPUTextureFormat_Undefined, // Undefined
205 WGPUTextureFormat_Undefined, // Undefined
206 WGPUTextureFormat_Undefined, // Undefined
207 WGPUTextureFormat_RGB9E5Ufloat,
208
209 // Matrix format for instancing
210
211 WGPUTextureFormat_Undefined, // Undefined
212};
213 STATIC_ASSERT_MAPPING(Cogs::TextureFormatsWebGPU, (int)Cogs::TextureFormat::TextureFormat_Size);
214
215const WGPUVertexFormat Cogs::VertexFormatsWebGPU[] = {
216 static_cast<WGPUVertexFormat>(0),
217
218 // Unsigned normalized byte formats
219
220 WGPUVertexFormat_Unorm8,
221 WGPUVertexFormat_Unorm8x2,
222 static_cast<WGPUVertexFormat>(0),
223 WGPUVertexFormat_Unorm8x4,
224
225 // Unsigned 16 bit normalized integer formats
226
227 WGPUVertexFormat_Unorm16,
228 WGPUVertexFormat_Unorm16x2,
229 static_cast<WGPUVertexFormat>(0),
230 WGPUVertexFormat_Unorm16x4,
231
232 // Signed normalized byte formats
233
234 WGPUVertexFormat_Snorm8,
235 WGPUVertexFormat_Snorm8x2,
236 static_cast<WGPUVertexFormat>(0),
237 WGPUVertexFormat_Snorm8x4,
238
239 // Signed 16 bit normalized integer formats
240
241 WGPUVertexFormat_Snorm16,
242 WGPUVertexFormat_Snorm16x2,
243 static_cast<WGPUVertexFormat>(0),
244 WGPUVertexFormat_Snorm16x4,
245
246 // Unsigned byte formats
247
248 WGPUVertexFormat_Uint8,
249 WGPUVertexFormat_Uint8x2,
250 static_cast<WGPUVertexFormat>(0),
251 WGPUVertexFormat_Uint8x4,
252
253 // Unsigned 16 bit integer formats
254
255 WGPUVertexFormat_Uint16,
256 WGPUVertexFormat_Uint16x2,
257 static_cast<WGPUVertexFormat>(0),
258 WGPUVertexFormat_Uint16x4,
259
260 // Unsigned 32 bit integer formats
261
262 WGPUVertexFormat_Uint32,
263 WGPUVertexFormat_Uint32x2,
264 WGPUVertexFormat_Uint32x3,
265 WGPUVertexFormat_Uint32x4,
266
267 // Signed byte formats
268
269 WGPUVertexFormat_Sint8,
270 WGPUVertexFormat_Sint8x2,
271 static_cast<WGPUVertexFormat>(0),
272 WGPUVertexFormat_Sint8x4,
273
274 // Signed 16 bit integer formats
275
276 WGPUVertexFormat_Sint16,
277 WGPUVertexFormat_Sint16x2,
278 static_cast<WGPUVertexFormat>(0),
279 WGPUVertexFormat_Sint16x4,
280
281 // Signed 32 bit integer formats
282
283 WGPUVertexFormat_Sint32,
284 WGPUVertexFormat_Sint32x2,
285 WGPUVertexFormat_Sint32x3,
286 WGPUVertexFormat_Sint32x4,
287
288 // 16 bit floating point formats
289
290 WGPUVertexFormat_Float16,
291 WGPUVertexFormat_Float16x2,
292 static_cast<WGPUVertexFormat>(0),
293 WGPUVertexFormat_Float16x4,
294
295 // 32 bit floating point formats
296
297 WGPUVertexFormat_Float32,
298 WGPUVertexFormat_Float32x2,
299 WGPUVertexFormat_Float32x3,
300 WGPUVertexFormat_Float32x4,
301
302 // Depth buffer formats
303
304 static_cast<WGPUVertexFormat>(0),
305 static_cast<WGPUVertexFormat>(0),
306 static_cast<WGPUVertexFormat>(0),
307 static_cast<WGPUVertexFormat>(0),
308 static_cast<WGPUVertexFormat>(0),
309 static_cast<WGPUVertexFormat>(0),
310
311 // 8 bit typeless formats
312
313 static_cast<WGPUVertexFormat>(0),
314 static_cast<WGPUVertexFormat>(0),
315 static_cast<WGPUVertexFormat>(0),
316 static_cast<WGPUVertexFormat>(0),
317
318 // Reverse component order formats.
319
320 static_cast<WGPUVertexFormat>(0),
321 WGPUVertexFormat_Unorm8x4BGRA,
322
323 // Alpha formats
324
325 static_cast<WGPUVertexFormat>(0),
326
327 // Compressed formats
328
329 static_cast<WGPUVertexFormat>(0),
330 static_cast<WGPUVertexFormat>(0),
331 static_cast<WGPUVertexFormat>(0),
332 static_cast<WGPUVertexFormat>(0),
333 static_cast<WGPUVertexFormat>(0),
334 static_cast<WGPUVertexFormat>(0),
335 static_cast<WGPUVertexFormat>(0),
336 static_cast<WGPUVertexFormat>(0),
337 static_cast<WGPUVertexFormat>(0),
338 static_cast<WGPUVertexFormat>(0),
339 static_cast<WGPUVertexFormat>(0),
340 static_cast<WGPUVertexFormat>(0),
341 static_cast<WGPUVertexFormat>(0),
342 static_cast<WGPUVertexFormat>(0),
343 static_cast<WGPUVertexFormat>(0),
344
345 // BPTC
346 static_cast<WGPUVertexFormat>(0),
347 static_cast<WGPUVertexFormat>(0),
348 static_cast<WGPUVertexFormat>(0),
349 static_cast<WGPUVertexFormat>(0),
350
351 // PVRTC
352 static_cast<WGPUVertexFormat>(0),
353 static_cast<WGPUVertexFormat>(0),
354 static_cast<WGPUVertexFormat>(0),
355 static_cast<WGPUVertexFormat>(0),
356
357 //ETC
358 static_cast<WGPUVertexFormat>(0),
359 static_cast<WGPUVertexFormat>(0),
360 static_cast<WGPUVertexFormat>(0),
361 static_cast<WGPUVertexFormat>(0),
362
363 static_cast<WGPUVertexFormat>(0),
364 static_cast<WGPUVertexFormat>(0),
365 static_cast<WGPUVertexFormat>(0),
366 static_cast<WGPUVertexFormat>(0),
367
368 // ASTC
369 static_cast<WGPUVertexFormat>(0),
370 static_cast<WGPUVertexFormat>(0),
371 static_cast<WGPUVertexFormat>(0),
372 static_cast<WGPUVertexFormat>(0),
373 static_cast<WGPUVertexFormat>(0),
374 static_cast<WGPUVertexFormat>(0),
375 static_cast<WGPUVertexFormat>(0),
376 static_cast<WGPUVertexFormat>(0),
377 static_cast<WGPUVertexFormat>(0),
378 static_cast<WGPUVertexFormat>(0),
379 static_cast<WGPUVertexFormat>(0),
380 static_cast<WGPUVertexFormat>(0),
381 static_cast<WGPUVertexFormat>(0),
382 static_cast<WGPUVertexFormat>(0),
383 // ASTC SRGBA
384 static_cast<WGPUVertexFormat>(0),
385 static_cast<WGPUVertexFormat>(0),
386 static_cast<WGPUVertexFormat>(0),
387 static_cast<WGPUVertexFormat>(0),
388 static_cast<WGPUVertexFormat>(0),
389 static_cast<WGPUVertexFormat>(0),
390 static_cast<WGPUVertexFormat>(0),
391 static_cast<WGPUVertexFormat>(0),
392 static_cast<WGPUVertexFormat>(0),
393 static_cast<WGPUVertexFormat>(0),
394 static_cast<WGPUVertexFormat>(0),
395 static_cast<WGPUVertexFormat>(0),
396 static_cast<WGPUVertexFormat>(0),
397 static_cast<WGPUVertexFormat>(0),
398
399 // SRGB formats
400
401 static_cast<WGPUVertexFormat>(0),
402 static_cast<WGPUVertexFormat>(0),
403
404 // Reverse SRGB formats
405
406 static_cast<WGPUVertexFormat>(0),
407
408 // Packed formats
409
410 static_cast<WGPUVertexFormat>(0),
411 WGPUVertexFormat_Unorm10_10_10_2,
412 static_cast<WGPUVertexFormat>(0),
413 static_cast<WGPUVertexFormat>(0),
414 static_cast<WGPUVertexFormat>(0),
415 static_cast<WGPUVertexFormat>(0),
416 static_cast<WGPUVertexFormat>(0),
417 static_cast<WGPUVertexFormat>(0),
418
419 // Matrix format for instancing
420
421 static_cast<WGPUVertexFormat>(0),
422};
423 STATIC_ASSERT_MAPPING(Cogs::VertexFormatsWebGPU, (int)Cogs::TextureFormat::Format_Size);