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 // Packed formats
195
196 WGPUTextureFormat_Undefined, // Undefined
197 WGPUTextureFormat_RGB10A2Unorm,
198 WGPUTextureFormat_RGB10A2Uint,
199 WGPUTextureFormat_RG11B10Ufloat,
200 WGPUTextureFormat_Undefined, // Undefined
201 WGPUTextureFormat_Undefined, // Undefined
202 WGPUTextureFormat_Undefined, // Undefined
203 WGPUTextureFormat_RGB9E5Ufloat,
204
205 // Matrix format for instancing
206
207 WGPUTextureFormat_Undefined, // Undefined
208};
209 STATIC_ASSERT_MAPPING(Cogs::TextureFormatsWebGPU, (int)Cogs::TextureFormat::TextureFormat_Size);
210
211const WGPUVertexFormat Cogs::VertexFormatsWebGPU[] = {
212 static_cast<WGPUVertexFormat>(0),
213
214 // Unsigned normalized byte formats
215
216 WGPUVertexFormat_Unorm8,
217 WGPUVertexFormat_Unorm8x2,
218 static_cast<WGPUVertexFormat>(0),
219 WGPUVertexFormat_Unorm8x4,
220
221 // Unsigned 16 bit normalized integer formats
222
223 WGPUVertexFormat_Unorm16,
224 WGPUVertexFormat_Unorm16x2,
225 static_cast<WGPUVertexFormat>(0),
226 WGPUVertexFormat_Unorm16x4,
227
228 // Signed normalized byte formats
229
230 WGPUVertexFormat_Snorm8,
231 WGPUVertexFormat_Snorm8x2,
232 static_cast<WGPUVertexFormat>(0),
233 WGPUVertexFormat_Snorm8x4,
234
235 // Signed 16 bit normalized integer formats
236
237 WGPUVertexFormat_Snorm16,
238 WGPUVertexFormat_Snorm16x2,
239 static_cast<WGPUVertexFormat>(0),
240 WGPUVertexFormat_Snorm16x4,
241
242 // Unsigned byte formats
243
244 WGPUVertexFormat_Uint8,
245 WGPUVertexFormat_Uint8x2,
246 static_cast<WGPUVertexFormat>(0),
247 WGPUVertexFormat_Uint8x4,
248
249 // Unsigned 16 bit integer formats
250
251 WGPUVertexFormat_Uint16,
252 WGPUVertexFormat_Uint16x2,
253 static_cast<WGPUVertexFormat>(0),
254 WGPUVertexFormat_Uint16x4,
255
256 // Unsigned 32 bit integer formats
257
258 WGPUVertexFormat_Uint32,
259 WGPUVertexFormat_Uint32x2,
260 WGPUVertexFormat_Uint32x3,
261 WGPUVertexFormat_Uint32x4,
262
263 // Signed byte formats
264
265 WGPUVertexFormat_Sint8,
266 WGPUVertexFormat_Sint8x2,
267 static_cast<WGPUVertexFormat>(0),
268 WGPUVertexFormat_Sint8x4,
269
270 // Signed 16 bit integer formats
271
272 WGPUVertexFormat_Sint16,
273 WGPUVertexFormat_Sint16x2,
274 static_cast<WGPUVertexFormat>(0),
275 WGPUVertexFormat_Sint16x4,
276
277 // Signed 32 bit integer formats
278
279 WGPUVertexFormat_Sint32,
280 WGPUVertexFormat_Sint32x2,
281 WGPUVertexFormat_Sint32x3,
282 WGPUVertexFormat_Sint32x4,
283
284 // 16 bit floating point formats
285
286 WGPUVertexFormat_Float16,
287 WGPUVertexFormat_Float16x2,
288 static_cast<WGPUVertexFormat>(0),
289 WGPUVertexFormat_Float16x4,
290
291 // 32 bit floating point formats
292
293 WGPUVertexFormat_Float32,
294 WGPUVertexFormat_Float32x2,
295 WGPUVertexFormat_Float32x3,
296 WGPUVertexFormat_Float32x4,
297
298 // Depth buffer formats
299
300 static_cast<WGPUVertexFormat>(0),
301 static_cast<WGPUVertexFormat>(0),
302 static_cast<WGPUVertexFormat>(0),
303 static_cast<WGPUVertexFormat>(0),
304 static_cast<WGPUVertexFormat>(0),
305 static_cast<WGPUVertexFormat>(0),
306
307 // 8 bit typeless formats
308
309 static_cast<WGPUVertexFormat>(0),
310 static_cast<WGPUVertexFormat>(0),
311 static_cast<WGPUVertexFormat>(0),
312 static_cast<WGPUVertexFormat>(0),
313
314 // Reverse component order formats.
315
316 static_cast<WGPUVertexFormat>(0),
317 WGPUVertexFormat_Unorm8x4BGRA,
318
319 // Alpha formats
320
321 static_cast<WGPUVertexFormat>(0),
322
323 // Compressed formats
324
325 static_cast<WGPUVertexFormat>(0),
326 static_cast<WGPUVertexFormat>(0),
327 static_cast<WGPUVertexFormat>(0),
328 static_cast<WGPUVertexFormat>(0),
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
341 // BPTC
342 static_cast<WGPUVertexFormat>(0),
343 static_cast<WGPUVertexFormat>(0),
344 static_cast<WGPUVertexFormat>(0),
345 static_cast<WGPUVertexFormat>(0),
346
347 // PVRTC
348 static_cast<WGPUVertexFormat>(0),
349 static_cast<WGPUVertexFormat>(0),
350 static_cast<WGPUVertexFormat>(0),
351 static_cast<WGPUVertexFormat>(0),
352
353 //ETC
354 static_cast<WGPUVertexFormat>(0),
355 static_cast<WGPUVertexFormat>(0),
356 static_cast<WGPUVertexFormat>(0),
357 static_cast<WGPUVertexFormat>(0),
358
359 static_cast<WGPUVertexFormat>(0),
360 static_cast<WGPUVertexFormat>(0),
361 static_cast<WGPUVertexFormat>(0),
362 static_cast<WGPUVertexFormat>(0),
363
364 // ASTC
365 static_cast<WGPUVertexFormat>(0),
366 static_cast<WGPUVertexFormat>(0),
367 static_cast<WGPUVertexFormat>(0),
368 static_cast<WGPUVertexFormat>(0),
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 // ASTC SRGBA
380 static_cast<WGPUVertexFormat>(0),
381 static_cast<WGPUVertexFormat>(0),
382 static_cast<WGPUVertexFormat>(0),
383 static_cast<WGPUVertexFormat>(0),
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
395 // SRGB formats
396
397 static_cast<WGPUVertexFormat>(0),
398 static_cast<WGPUVertexFormat>(0),
399
400 // Packed formats
401
402 static_cast<WGPUVertexFormat>(0),
403 WGPUVertexFormat_Unorm10_10_10_2,
404 static_cast<WGPUVertexFormat>(0),
405 static_cast<WGPUVertexFormat>(0),
406 static_cast<WGPUVertexFormat>(0),
407 static_cast<WGPUVertexFormat>(0),
408 static_cast<WGPUVertexFormat>(0),
409 static_cast<WGPUVertexFormat>(0),
410
411 // Matrix format for instancing
412
413 static_cast<WGPUVertexFormat>(0),
414};
415 STATIC_ASSERT_MAPPING(Cogs::VertexFormatsWebGPU, (int)Cogs::TextureFormat::Format_Size);