SPARK  0.1.0
A general purpose game engine written in C++.
Loading...
Searching...
No Matches
Format.h
1#pragma once
2
3#include <format>
4
5// ReSharper disable StringLiteralTypo
6// ReSharper disable CppInconsistentNaming
7// ReSharper disable IdentifierTypo
8
9namespace spark::render
10{
14 enum class Format
15 {
16 None = 0x00000000,
17 R4G4_UNORM,
18 R4G4B4A4_UNORM,
19 B4G4R4A4_UNORM,
20 R5G6B5_UNORM,
21 B5G6R5_UNORM,
22 R5G5B5A1_UNORM,
23 B5G5R5A1_UNORM,
24 A1R5G5B5_UNORM,
25 R8_UNORM,
26 R8_SNORM,
27 R8_USCALED,
28 R8_SSCALED,
29 R8_UINT,
30 R8_SINT,
31 R8_SRGB,
32 R8G8_UNORM,
33 R8G8_SNORM,
34 R8G8_USCALED,
35 R8G8_SSCALED,
36 R8G8_UINT,
37 R8G8_SINT,
38 R8G8_SRGB,
39 R8G8B8_UNORM,
40 R8G8B8_SNORM,
41 R8G8B8_USCALED,
42 R8G8B8_SSCALED,
43 R8G8B8_UINT,
44 R8G8B8_SINT,
45 R8G8B8_SRGB,
46 B8G8R8_UNORM,
47 B8G8R8_SNORM,
48 B8G8R8_USCALED,
49 B8G8R8_SSCALED,
50 B8G8R8_UINT,
51 B8G8R8_SINT,
52 B8G8R8_SRGB,
53 R8G8B8A8_UNORM,
54 R8G8B8A8_SNORM,
55 R8G8B8A8_USCALED,
56 R8G8B8A8_SSCALED,
57 R8G8B8A8_UINT,
58 R8G8B8A8_SINT,
59 R8G8B8A8_SRGB,
60 B8G8R8A8_UNORM,
61 B8G8R8A8_SNORM,
62 B8G8R8A8_USCALED,
63 B8G8R8A8_SSCALED,
64 B8G8R8A8_UINT,
65 B8G8R8A8_SINT,
66 B8G8R8A8_SRGB,
67 A8B8G8R8_UNORM,
68 A8B8G8R8_SNORM,
69 A8B8G8R8_USCALED,
70 A8B8G8R8_SSCALED,
71 A8B8G8R8_UINT,
72 A8B8G8R8_SINT,
73 A8B8G8R8_SRGB,
74 A2R10G10B10_UNORM,
75 A2R10G10B10_SNORM,
76 A2R10G10B10_USCALED,
77 A2R10G10B10_SSCALED,
78 A2R10G10B10_UINT,
79 A2R10G10B10_SINT,
80 A2B10G10R10_UNORM,
81 A2B10G10R10_SNORM,
82 A2B10G10R10_USCALED,
83 A2B10G10R10_SSCALED,
84 A2B10G10R10_UINT,
85 A2B10G10R10_SINT,
86 R16_UNORM,
87 R16_SNORM,
88 R16_USCALED,
89 R16_SSCALED,
90 R16_UINT,
91 R16_SINT,
92 R16_SFLOAT,
93 R16G16_UNORM,
94 R16G16_SNORM,
95 R16G16_USCALED,
96 R16G16_SSCALED,
97 R16G16_UINT,
98 R16G16_SINT,
99 R16G16_SFLOAT,
100 R16G16B16_UNORM,
101 R16G16B16_SNORM,
102 R16G16B16_USCALED,
103 R16G16B16_SSCALED,
104 R16G16B16_UINT,
105 R16G16B16_SINT,
106 R16G16B16_SFLOAT,
107 R16G16B16A16_UNORM,
108 R16G16B16A16_SNORM,
109 R16G16B16A16_USCALED,
110 R16G16B16A16_SSCALED,
111 R16G16B16A16_UINT,
112 R16G16B16A16_SINT,
113 R16G16B16A16_SFLOAT,
114 R32_UINT,
115 R32_SINT,
116 R32_SFLOAT,
117 R32G32_UINT,
118 R32G32_SINT,
119 R32G32_SFLOAT,
120 R32G32B32_UINT,
121 R32G32B32_SINT,
122 R32G32B32_SFLOAT,
123 R32G32B32A32_UINT,
124 R32G32B32A32_SINT,
125 R32G32B32A32_SFLOAT,
126 R64_UINT,
127 R64_SINT,
128 R64_SFLOAT,
129 R64G64_UINT,
130 R64G64_SINT,
131 R64G64_SFLOAT,
132 R64G64B64_UINT,
133 R64G64B64_SINT,
134 R64G64B64_SFLOAT,
135 R64G64B64A64_UINT,
136 R64G64B64A64_SINT,
137 R64G64B64A64_SFLOAT,
138 B10G11R11_UFLOAT,
139 E5B9G9R9_UFLOAT,
140 D16_UNORM,
141 X8_D24_UNORM,
142 D32_SFLOAT,
143 S8_UINT,
144 D16_UNORM_S8_UINT,
145 D24_UNORM_S8_UINT,
146 D32_SFLOAT_S8_UINT,
147 BC1_RGB_UNORM,
148 BC1_RGB_SRGB,
149 BC1_RGBA_UNORM,
150 BC1_RGBA_SRGB,
151 BC2_UNORM,
152 BC2_SRGB,
153 BC3_UNORM,
154 BC3_SRGB,
155 BC4_UNORM,
156 BC4_SNORM,
157 BC5_UNORM,
158 BC5_SNORM,
159 BC6H_UFLOAT,
160 BC6H_SFLOAT,
161 BC7_UNORM,
162 BC7_SRGB,
163 Other = 0x7FFFFFFF
164 // ReSharper restore CppInconsistentNaming
165 };
166}
167
168template <>
169struct std::formatter<spark::render::Format> : std::formatter<std::string_view>
170{
171 static constexpr auto parse(format_parse_context& ctx) { return ctx.begin(); }
172
173 static constexpr auto format(const spark::render::Format format, format_context& ctx)
174 {
175 switch (format)
176 {
177 case spark::render::Format::R4G4_UNORM:
178 return std::format_to(ctx.out(), "R4G4_UNORM");
179 case spark::render::Format::R4G4B4A4_UNORM:
180 return std::format_to(ctx.out(), "R4G4B4A4_UNORM");
181 case spark::render::Format::B4G4R4A4_UNORM:
182 return std::format_to(ctx.out(), "B4G4R4A4_UNORM");
183 case spark::render::Format::R5G6B5_UNORM:
184 return std::format_to(ctx.out(), "R5G6B5_UNORM");
185 case spark::render::Format::B5G6R5_UNORM:
186 return std::format_to(ctx.out(), "B5G6R5_UNORM");
187 case spark::render::Format::R5G5B5A1_UNORM:
188 return std::format_to(ctx.out(), "R5G5B5A1_UNORM");
189 case spark::render::Format::B5G5R5A1_UNORM:
190 return std::format_to(ctx.out(), "B5G5R5A1_UNORM");
191 case spark::render::Format::A1R5G5B5_UNORM:
192 return std::format_to(ctx.out(), "A1R5G5B5_UNORM");
193 case spark::render::Format::R8_UNORM:
194 return std::format_to(ctx.out(), "R8_UNORM");
195 case spark::render::Format::R8_SNORM:
196 return std::format_to(ctx.out(), "R8_SNORM");
197 case spark::render::Format::R8_USCALED:
198 return std::format_to(ctx.out(), "R8_USCALED");
199 case spark::render::Format::R8_SSCALED:
200 return std::format_to(ctx.out(), "R8_SSCALED");
201 case spark::render::Format::R8_UINT:
202 return std::format_to(ctx.out(), "R8_UINT");
203 case spark::render::Format::R8_SINT:
204 return std::format_to(ctx.out(), "R8_SINT");
205 case spark::render::Format::R8_SRGB:
206 return std::format_to(ctx.out(), "R8_SRGB");
207 case spark::render::Format::R8G8_UNORM:
208 return std::format_to(ctx.out(), "R8G8_UNORM");
209 case spark::render::Format::R8G8_SNORM:
210 return std::format_to(ctx.out(), "R8G8_SNORM");
211 case spark::render::Format::R8G8_USCALED:
212 return std::format_to(ctx.out(), "R8G8_USCALED");
213 case spark::render::Format::R8G8_SSCALED:
214 return std::format_to(ctx.out(), "R8G8_SSCALED");
215 case spark::render::Format::R8G8_UINT:
216 return std::format_to(ctx.out(), "R8G8_UINT");
217 case spark::render::Format::R8G8_SINT:
218 return std::format_to(ctx.out(), "R8G8_SINT");
219 case spark::render::Format::R8G8_SRGB:
220 return std::format_to(ctx.out(), "R8G8_SRGB");
221 case spark::render::Format::R8G8B8_UNORM:
222 return std::format_to(ctx.out(), "R8G8B8_UNORM");
223 case spark::render::Format::R8G8B8_SNORM:
224 return std::format_to(ctx.out(), "R8G8B8_SNORM");
225 case spark::render::Format::R8G8B8_USCALED:
226 return std::format_to(ctx.out(), "R8G8B8_USCALED");
227 case spark::render::Format::R8G8B8_SSCALED:
228 return std::format_to(ctx.out(), "R8G8B8_SSCALED");
229 case spark::render::Format::R8G8B8_UINT:
230 return std::format_to(ctx.out(), "R8G8B8_UINT");
231 case spark::render::Format::R8G8B8_SINT:
232 return std::format_to(ctx.out(), "R8G8B8_SINT");
233 case spark::render::Format::R8G8B8_SRGB:
234 return std::format_to(ctx.out(), "R8G8B8_SRGB");
235 case spark::render::Format::B8G8R8_UNORM:
236 return std::format_to(ctx.out(), "B8G8R8_UNORM");
237 case spark::render::Format::B8G8R8_SNORM:
238 return std::format_to(ctx.out(), "B8G8R8_SNORM");
239 case spark::render::Format::B8G8R8_USCALED:
240 return std::format_to(ctx.out(), "B8G8R8_USCALED");
241 case spark::render::Format::B8G8R8_SSCALED:
242 return std::format_to(ctx.out(), "B8G8R8_SSCALED");
243 case spark::render::Format::B8G8R8_UINT:
244 return std::format_to(ctx.out(), "B8G8R8_UINT");
245 case spark::render::Format::B8G8R8_SINT:
246 return std::format_to(ctx.out(), "B8G8R8_SINT");
247 case spark::render::Format::B8G8R8_SRGB:
248 return std::format_to(ctx.out(), "B8G8R8_SRGB");
249 case spark::render::Format::R8G8B8A8_UNORM:
250 return std::format_to(ctx.out(), "R8G8B8A8_UNORM");
251 case spark::render::Format::R8G8B8A8_SNORM:
252 return std::format_to(ctx.out(), "R8G8B8A8_SNORM");
253 case spark::render::Format::R8G8B8A8_USCALED:
254 return std::format_to(ctx.out(), "R8G8B8A8_USCALED");
255 case spark::render::Format::R8G8B8A8_SSCALED:
256 return std::format_to(ctx.out(), "R8G8B8A8_SSCALED");
257 case spark::render::Format::R8G8B8A8_UINT:
258 return std::format_to(ctx.out(), "R8G8B8A8_UINT");
259 case spark::render::Format::R8G8B8A8_SINT:
260 return std::format_to(ctx.out(), "R8G8B8A8_SINT");
261 case spark::render::Format::R8G8B8A8_SRGB:
262 return std::format_to(ctx.out(), "R8G8B8A8_SRGB");
263 case spark::render::Format::B8G8R8A8_UNORM:
264 return std::format_to(ctx.out(), "B8G8R8A8_UNORM");
265 case spark::render::Format::B8G8R8A8_SNORM:
266 return std::format_to(ctx.out(), "B8G8R8A8_SNORM");
267 case spark::render::Format::B8G8R8A8_USCALED:
268 return std::format_to(ctx.out(), "B8G8R8A8_USCALED");
269 case spark::render::Format::B8G8R8A8_SSCALED:
270 return std::format_to(ctx.out(), "B8G8R8A8_SSCALED");
271 case spark::render::Format::B8G8R8A8_UINT:
272 return std::format_to(ctx.out(), "B8G8R8A8_UINT");
273 case spark::render::Format::B8G8R8A8_SINT:
274 return std::format_to(ctx.out(), "B8G8R8A8_SINT");
275 case spark::render::Format::B8G8R8A8_SRGB:
276 return std::format_to(ctx.out(), "B8G8R8A8_SRGB");
277 case spark::render::Format::A8B8G8R8_UNORM:
278 return std::format_to(ctx.out(), "A8B8G8R8_UNORM");
279 case spark::render::Format::A8B8G8R8_SNORM:
280 return std::format_to(ctx.out(), "A8B8G8R8_SNORM");
281 case spark::render::Format::A8B8G8R8_USCALED:
282 return std::format_to(ctx.out(), "A8B8G8R8_USCALED");
283 case spark::render::Format::A8B8G8R8_SSCALED:
284 return std::format_to(ctx.out(), "A8B8G8R8_SSCALED");
285 case spark::render::Format::A8B8G8R8_UINT:
286 return std::format_to(ctx.out(), "A8B8G8R8_UINT");
287 case spark::render::Format::A8B8G8R8_SINT:
288 return std::format_to(ctx.out(), "A8B8G8R8_SINT");
289 case spark::render::Format::A8B8G8R8_SRGB:
290 return std::format_to(ctx.out(), "A8B8G8R8_SRGB");
291 case spark::render::Format::A2R10G10B10_UNORM:
292 return std::format_to(ctx.out(), "A2R10G10B10_UNORM");
293 case spark::render::Format::A2R10G10B10_SNORM:
294 return std::format_to(ctx.out(), "A2R10G10B10_SNORM");
295 case spark::render::Format::A2R10G10B10_USCALED:
296 return std::format_to(ctx.out(), "A2R10G10B10_USCALED");
297 case spark::render::Format::A2R10G10B10_SSCALED:
298 return std::format_to(ctx.out(), "A2R10G10B10_SSCALED");
299 case spark::render::Format::A2R10G10B10_UINT:
300 return std::format_to(ctx.out(), "A2R10G10B10_UINT");
301 case spark::render::Format::A2R10G10B10_SINT:
302 return std::format_to(ctx.out(), "A2R10G10B10_SINT");
303 case spark::render::Format::A2B10G10R10_UNORM:
304 return std::format_to(ctx.out(), "A2B10G10R10_UNORM");
305 case spark::render::Format::A2B10G10R10_SNORM:
306 return std::format_to(ctx.out(), "A2B10G10R10_SNORM");
307 case spark::render::Format::A2B10G10R10_USCALED:
308 return std::format_to(ctx.out(), "A2B10G10R10_USCALED");
309 case spark::render::Format::A2B10G10R10_SSCALED:
310 return std::format_to(ctx.out(), "A2B10G10R10_SSCALED");
311 case spark::render::Format::A2B10G10R10_UINT:
312 return std::format_to(ctx.out(), "A2B10G10R10_UINT");
313 case spark::render::Format::A2B10G10R10_SINT:
314 return std::format_to(ctx.out(), "A2B10G10R10_SINT");
315 case spark::render::Format::R16_UNORM:
316 return std::format_to(ctx.out(), "R16_UNORM");
317 case spark::render::Format::R16_SNORM:
318 return std::format_to(ctx.out(), "R16_SNORM");
319 case spark::render::Format::R16_USCALED:
320 return std::format_to(ctx.out(), "R16_USCALED");
321 case spark::render::Format::R16_SSCALED:
322 return std::format_to(ctx.out(), "R16_SSCALED");
323 case spark::render::Format::R16_UINT:
324 return std::format_to(ctx.out(), "R16_UINT");
325 case spark::render::Format::R16_SINT:
326 return std::format_to(ctx.out(), "R16_SINT");
327 case spark::render::Format::R16_SFLOAT:
328 return std::format_to(ctx.out(), "R16_SFLOAT");
329 case spark::render::Format::R16G16_UNORM:
330 return std::format_to(ctx.out(), "R16G16_UNORM");
331 case spark::render::Format::R16G16_SNORM:
332 return std::format_to(ctx.out(), "R16G16_SNORM");
333 case spark::render::Format::R16G16_USCALED:
334 return std::format_to(ctx.out(), "R16G16_USCALED");
335 case spark::render::Format::R16G16_SSCALED:
336 return std::format_to(ctx.out(), "R16G16_SSCALED");
337 case spark::render::Format::R16G16_UINT:
338 return std::format_to(ctx.out(), "R16G16_UINT");
339 case spark::render::Format::R16G16_SINT:
340 return std::format_to(ctx.out(), "R16G16_SINT");
341 case spark::render::Format::R16G16_SFLOAT:
342 return std::format_to(ctx.out(), "R16G16_SFLOAT");
343 case spark::render::Format::R16G16B16_UNORM:
344 return std::format_to(ctx.out(), "R16G16B16_UNORM");
345 case spark::render::Format::R16G16B16_SNORM:
346 return std::format_to(ctx.out(), "R16G16B16_SNORM");
347 case spark::render::Format::R16G16B16_USCALED:
348 return std::format_to(ctx.out(), "R16G16B16_USCALED");
349 case spark::render::Format::R16G16B16_SSCALED:
350 return std::format_to(ctx.out(), "R16G16B16_SSCALED");
351 case spark::render::Format::R16G16B16_UINT:
352 return std::format_to(ctx.out(), "R16G16B16_UINT");
353 case spark::render::Format::R16G16B16_SINT:
354 return std::format_to(ctx.out(), "R16G16B16_SINT");
355 case spark::render::Format::R16G16B16_SFLOAT:
356 return std::format_to(ctx.out(), "R16G16B16_SFLOAT");
357 case spark::render::Format::R16G16B16A16_UNORM:
358 return std::format_to(ctx.out(), "R16G16B16A16_UNORM");
359 case spark::render::Format::R16G16B16A16_SNORM:
360 return std::format_to(ctx.out(), "R16G16B16A16_SNORM");
361 case spark::render::Format::R16G16B16A16_USCALED:
362 return std::format_to(ctx.out(), "R16G16B16A16_USCALED");
363 case spark::render::Format::R16G16B16A16_SSCALED:
364 return std::format_to(ctx.out(), "R16G16B16A16_SSCALED");
365 case spark::render::Format::R16G16B16A16_UINT:
366 return std::format_to(ctx.out(), "R16G16B16A16_UINT");
367 case spark::render::Format::R16G16B16A16_SINT:
368 return std::format_to(ctx.out(), "R16G16B16A16_SINT");
369 case spark::render::Format::R16G16B16A16_SFLOAT:
370 return std::format_to(ctx.out(), "R16G16B16A16_SFLOAT");
371 case spark::render::Format::R32_UINT:
372 return std::format_to(ctx.out(), "R32_UINT");
373 case spark::render::Format::R32_SINT:
374 return std::format_to(ctx.out(), "R32_SINT");
375 case spark::render::Format::R32_SFLOAT:
376 return std::format_to(ctx.out(), "R32_SFLOAT");
377 case spark::render::Format::R32G32_UINT:
378 return std::format_to(ctx.out(), "R32G32_UINT");
379 case spark::render::Format::R32G32_SINT:
380 return std::format_to(ctx.out(), "R32G32_SINT");
381 case spark::render::Format::R32G32_SFLOAT:
382 return std::format_to(ctx.out(), "R32G32_SFLOAT");
383 case spark::render::Format::R32G32B32_UINT:
384 return std::format_to(ctx.out(), "R32G32B32_UINT");
385 case spark::render::Format::R32G32B32_SINT:
386 return std::format_to(ctx.out(), "R32G32B32_SINT");
387 case spark::render::Format::R32G32B32_SFLOAT:
388 return std::format_to(ctx.out(), "R32G32B32_SFLOAT");
389 case spark::render::Format::R32G32B32A32_UINT:
390 return std::format_to(ctx.out(), "R32G32B32A32_UINT");
391 case spark::render::Format::R32G32B32A32_SINT:
392 return std::format_to(ctx.out(), "R32G32B32A32_SINT");
393 case spark::render::Format::R32G32B32A32_SFLOAT:
394 return std::format_to(ctx.out(), "R32G32B32A32_SFLOAT");
395 case spark::render::Format::R64_UINT:
396 return std::format_to(ctx.out(), "R64_UINT");
397 case spark::render::Format::R64_SINT:
398 return std::format_to(ctx.out(), "R64_SINT");
399 case spark::render::Format::R64_SFLOAT:
400 return std::format_to(ctx.out(), "R64_SFLOAT");
401 case spark::render::Format::R64G64_UINT:
402 return std::format_to(ctx.out(), "R64G64_UINT");
403 case spark::render::Format::R64G64_SINT:
404 return std::format_to(ctx.out(), "R64G64_SINT");
405 case spark::render::Format::R64G64_SFLOAT:
406 return std::format_to(ctx.out(), "R64G64_SFLOAT");
407 case spark::render::Format::R64G64B64_UINT:
408 return std::format_to(ctx.out(), "R64G64B64_UINT");
409 case spark::render::Format::R64G64B64_SINT:
410 return std::format_to(ctx.out(), "R64G64B64_SINT");
411 case spark::render::Format::R64G64B64_SFLOAT:
412 return std::format_to(ctx.out(), "R64G64B64_SFLOAT");
413 case spark::render::Format::R64G64B64A64_UINT:
414 return std::format_to(ctx.out(), "R64G64B64A64_UINT");
415 case spark::render::Format::R64G64B64A64_SINT:
416 return std::format_to(ctx.out(), "R64G64B64A64_SINT");
417 case spark::render::Format::R64G64B64A64_SFLOAT:
418 return std::format_to(ctx.out(), "R64G64B64A64_SFLOAT");
419 case spark::render::Format::B10G11R11_UFLOAT:
420 return std::format_to(ctx.out(), "B10G11R11_UFLOAT");
421 case spark::render::Format::E5B9G9R9_UFLOAT:
422 return std::format_to(ctx.out(), "E5B9G9R9_UFLOAT");
423 case spark::render::Format::D16_UNORM:
424 return std::format_to(ctx.out(), "D16_UNORM");
425 case spark::render::Format::X8_D24_UNORM:
426 return std::format_to(ctx.out(), "X8_D24_UNORM");
427 case spark::render::Format::D32_SFLOAT:
428 return std::format_to(ctx.out(), "D32_SFLOAT");
429 case spark::render::Format::S8_UINT:
430 return std::format_to(ctx.out(), "S8_UINT");
431 case spark::render::Format::D16_UNORM_S8_UINT:
432 return std::format_to(ctx.out(), "D16_UNORM_S8_UINT");
433 case spark::render::Format::D24_UNORM_S8_UINT:
434 return std::format_to(ctx.out(), "D24_UNORM_S8_UINT");
435 case spark::render::Format::D32_SFLOAT_S8_UINT:
436 return std::format_to(ctx.out(), "D32_SFLOAT_S8_UINT");
437 case spark::render::Format::BC1_RGB_UNORM:
438 return std::format_to(ctx.out(), "BC1_RGB_UNORM");
439 case spark::render::Format::BC1_RGB_SRGB:
440 return std::format_to(ctx.out(), "BC1_RGB_SRGB");
441 case spark::render::Format::BC1_RGBA_UNORM:
442 return std::format_to(ctx.out(), "BC1_RGBA_UNORM");
443 case spark::render::Format::BC1_RGBA_SRGB:
444 return std::format_to(ctx.out(), "BC1_RGBA_SRGB");
445 case spark::render::Format::BC2_UNORM:
446 return std::format_to(ctx.out(), "BC2_UNORM");
447 case spark::render::Format::BC2_SRGB:
448 return std::format_to(ctx.out(), "BC2_SRGB");
449 case spark::render::Format::BC3_UNORM:
450 return std::format_to(ctx.out(), "BC3_UNORM");
451 case spark::render::Format::BC3_SRGB:
452 return std::format_to(ctx.out(), "BC3_SRGB");
453 case spark::render::Format::BC4_UNORM:
454 return std::format_to(ctx.out(), "BC4_UNORM");
455 case spark::render::Format::BC4_SNORM:
456 return std::format_to(ctx.out(), "BC4_SNORM");
457 case spark::render::Format::BC5_UNORM:
458 return std::format_to(ctx.out(), "BC5_UNORM");
459 case spark::render::Format::BC5_SNORM:
460 return std::format_to(ctx.out(), "BC5_SNORM");
461 case spark::render::Format::BC6H_UFLOAT:
462 return std::format_to(ctx.out(), "BC6H_UFLOAT");
463 case spark::render::Format::BC6H_SFLOAT:
464 return std::format_to(ctx.out(), "BC6H_SFLOAT");
465 case spark::render::Format::BC7_UNORM:
466 return std::format_to(ctx.out(), "BC7_UNORM");
467 case spark::render::Format::BC7_SRGB:
468 return std::format_to(ctx.out(), "BC7_SRGB");
469 case spark::render::Format::None:
470 return std::format_to(ctx.out(), "None");
471 case spark::render::Format::Other:
472 break;
473 }
474 return std::format_to(ctx.out(), "Other");
475 }
476};