1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by gen_load_functions_table.py using data from load_functions_data.json
3 //
4 // Copyright 2020 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // load_functions_table:
9 // Contains the GetLoadFunctionsMap for texture_format_util.h
10 //
11
12 #include "libANGLE/renderer/load_functions_table.h"
13
14 #include "image_util/copyimage.h"
15 #include "image_util/generatemip.h"
16 #include "image_util/loadimage.h"
17
18 using namespace rx;
19
20 namespace angle
21 {
22
23 namespace
24 {
25
26 // ES3 image loading functions vary based on:
27 // - the GL internal format (supplied to glTex*Image*D)
28 // - the GL data type given (supplied to glTex*Image*D)
29 // - the target DXGI_FORMAT that the image will be loaded into (which is chosen based on the D3D
30 // device's capabilities)
31 // This map type determines which loading function to use, based on these three parameters.
32 // Source formats and types are taken from Tables 3.2 and 3.3 of the ES 3 spec.
UnimplementedLoadFunction(const ImageLoadContext & context,size_t width,size_t height,size_t depth,const uint8_t * input,size_t inputRowPitch,size_t inputDepthPitch,uint8_t * output,size_t outputRowPitch,size_t outputDepthPitch)33 void UnimplementedLoadFunction(const ImageLoadContext &context,
34 size_t width,
35 size_t height,
36 size_t depth,
37 const uint8_t *input,
38 size_t inputRowPitch,
39 size_t inputDepthPitch,
40 uint8_t *output,
41 size_t outputRowPitch,
42 size_t outputDepthPitch)
43 {
44 UNIMPLEMENTED();
45 }
46
UnreachableLoadFunction(const ImageLoadContext & context,size_t width,size_t height,size_t depth,const uint8_t * input,size_t inputRowPitch,size_t inputDepthPitch,uint8_t * output,size_t outputRowPitch,size_t outputDepthPitch)47 void UnreachableLoadFunction(const ImageLoadContext &context,
48 size_t width,
49 size_t height,
50 size_t depth,
51 const uint8_t *input,
52 size_t inputRowPitch,
53 size_t inputDepthPitch,
54 uint8_t *output,
55 size_t outputRowPitch,
56 size_t outputDepthPitch)
57 {
58 UNREACHABLE();
59 }
60
A1RGB5_ANGLEX_to_A1R5G5B5_UNORM(GLenum type)61 LoadImageFunctionInfo A1RGB5_ANGLEX_to_A1R5G5B5_UNORM(GLenum type)
62 {
63 switch (type)
64 {
65 case GL_UNSIGNED_BYTE:
66 return LoadImageFunctionInfo(LoadRGB5A1ToRGBA8, true);
67 case GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT:
68 return LoadImageFunctionInfo(LoadToNative<GLushort, 1>, false);
69 default:
70 UNREACHABLE();
71 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
72 }
73 }
74
ALPHA_to_R16G16B16A16_FLOAT(GLenum type)75 LoadImageFunctionInfo ALPHA_to_R16G16B16A16_FLOAT(GLenum type)
76 {
77 switch (type)
78 {
79 case GL_HALF_FLOAT:
80 return LoadImageFunctionInfo(LoadA16FToRGBA16F, true);
81 case GL_HALF_FLOAT_OES:
82 return LoadImageFunctionInfo(LoadA16FToRGBA16F, true);
83 case GL_UNSIGNED_BYTE:
84 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
85 default:
86 UNREACHABLE();
87 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
88 }
89 }
90
ALPHA_to_R32G32B32A32_FLOAT(GLenum type)91 LoadImageFunctionInfo ALPHA_to_R32G32B32A32_FLOAT(GLenum type)
92 {
93 switch (type)
94 {
95 case GL_FLOAT:
96 return LoadImageFunctionInfo(LoadA32FToRGBA32F, true);
97 case GL_UNSIGNED_BYTE:
98 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
99 default:
100 UNREACHABLE();
101 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
102 }
103 }
104
ALPHA_to_default(GLenum type)105 LoadImageFunctionInfo ALPHA_to_default(GLenum type)
106 {
107 switch (type)
108 {
109 case GL_UNSIGNED_BYTE:
110 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
111 default:
112 UNREACHABLE();
113 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
114 }
115 }
116
ALPHA16F_EXT_to_R16_FLOAT(GLenum type)117 LoadImageFunctionInfo ALPHA16F_EXT_to_R16_FLOAT(GLenum type)
118 {
119 switch (type)
120 {
121 case GL_HALF_FLOAT:
122 return LoadImageFunctionInfo(LoadToNative<GLhalf, 1>, false);
123 case GL_HALF_FLOAT_OES:
124 return LoadImageFunctionInfo(LoadToNative<GLhalf, 1>, false);
125 default:
126 UNREACHABLE();
127 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
128 }
129 }
130
ALPHA16F_EXT_to_default(GLenum type)131 LoadImageFunctionInfo ALPHA16F_EXT_to_default(GLenum type)
132 {
133 switch (type)
134 {
135 case GL_HALF_FLOAT:
136 return LoadImageFunctionInfo(LoadA16FToRGBA16F, true);
137 case GL_HALF_FLOAT_OES:
138 return LoadImageFunctionInfo(LoadA16FToRGBA16F, true);
139 default:
140 UNREACHABLE();
141 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
142 }
143 }
144
ALPHA32F_EXT_to_R32_FLOAT(GLenum type)145 LoadImageFunctionInfo ALPHA32F_EXT_to_R32_FLOAT(GLenum type)
146 {
147 switch (type)
148 {
149 case GL_FLOAT:
150 return LoadImageFunctionInfo(LoadToNative<GLfloat, 1>, false);
151 default:
152 UNREACHABLE();
153 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
154 }
155 }
156
ALPHA32F_EXT_to_default(GLenum type)157 LoadImageFunctionInfo ALPHA32F_EXT_to_default(GLenum type)
158 {
159 switch (type)
160 {
161 case GL_FLOAT:
162 return LoadImageFunctionInfo(LoadA32FToRGBA32F, true);
163 default:
164 UNREACHABLE();
165 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
166 }
167 }
168
ALPHA8_EXT_to_A8_UNORM(GLenum type)169 LoadImageFunctionInfo ALPHA8_EXT_to_A8_UNORM(GLenum type)
170 {
171 switch (type)
172 {
173 case GL_UNSIGNED_BYTE:
174 return LoadImageFunctionInfo(LoadToNative<GLubyte, 1>, false);
175 default:
176 UNREACHABLE();
177 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
178 }
179 }
180
ALPHA8_EXT_to_R8G8B8A8_UNORM(GLenum type)181 LoadImageFunctionInfo ALPHA8_EXT_to_R8G8B8A8_UNORM(GLenum type)
182 {
183 switch (type)
184 {
185 case GL_UNSIGNED_BYTE:
186 return LoadImageFunctionInfo(LoadA8ToRGBA8, true);
187 default:
188 UNREACHABLE();
189 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
190 }
191 }
192
ALPHA8_EXT_to_R8_UNORM(GLenum type)193 LoadImageFunctionInfo ALPHA8_EXT_to_R8_UNORM(GLenum type)
194 {
195 switch (type)
196 {
197 case GL_UNSIGNED_BYTE:
198 return LoadImageFunctionInfo(LoadToNative<GLubyte, 1>, false);
199 default:
200 UNREACHABLE();
201 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
202 }
203 }
204
BGR10_A2_ANGLEX_to_B10G10R10A2_UNORM(GLenum type)205 LoadImageFunctionInfo BGR10_A2_ANGLEX_to_B10G10R10A2_UNORM(GLenum type)
206 {
207 switch (type)
208 {
209 case GL_UNSIGNED_INT_2_10_10_10_REV:
210 return LoadImageFunctionInfo(LoadToNative<GLuint, 1>, false);
211 default:
212 UNREACHABLE();
213 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
214 }
215 }
216
BGR565_ANGLEX_to_B5G6R5_UNORM(GLenum type)217 LoadImageFunctionInfo BGR565_ANGLEX_to_B5G6R5_UNORM(GLenum type)
218 {
219 switch (type)
220 {
221 case GL_UNSIGNED_BYTE:
222 return LoadImageFunctionInfo(LoadRGB8ToBGR565, true);
223 case GL_UNSIGNED_SHORT_5_6_5:
224 return LoadImageFunctionInfo(LoadRGB565ToBGR565, true);
225 default:
226 UNREACHABLE();
227 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
228 }
229 }
230
BGR5_A1_ANGLEX_to_default(GLenum type)231 LoadImageFunctionInfo BGR5_A1_ANGLEX_to_default(GLenum type)
232 {
233 switch (type)
234 {
235 case GL_UNSIGNED_BYTE:
236 return LoadImageFunctionInfo(LoadRGB5A1ToRGBA8, true);
237 case GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT:
238 return LoadImageFunctionInfo(LoadToNative<GLushort, 1>, false);
239 default:
240 UNREACHABLE();
241 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
242 }
243 }
244
BGRA4_ANGLEX_to_default(GLenum type)245 LoadImageFunctionInfo BGRA4_ANGLEX_to_default(GLenum type)
246 {
247 switch (type)
248 {
249 case GL_UNSIGNED_BYTE:
250 return LoadImageFunctionInfo(LoadToNative<GLubyte, 4>, false);
251 case GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT:
252 return LoadImageFunctionInfo(LoadRGBA4ToRGBA8, true);
253 default:
254 UNREACHABLE();
255 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
256 }
257 }
258
BGRA8_EXT_to_default(GLenum type)259 LoadImageFunctionInfo BGRA8_EXT_to_default(GLenum type)
260 {
261 switch (type)
262 {
263 case GL_UNSIGNED_BYTE:
264 return LoadImageFunctionInfo(LoadToNative<GLubyte, 4>, false);
265 default:
266 UNREACHABLE();
267 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
268 }
269 }
270
BGRA8_SRGB_ANGLEX_to_B8G8R8A8_UNORM_SRGB(GLenum type)271 LoadImageFunctionInfo BGRA8_SRGB_ANGLEX_to_B8G8R8A8_UNORM_SRGB(GLenum type)
272 {
273 switch (type)
274 {
275 case GL_UNSIGNED_BYTE:
276 return LoadImageFunctionInfo(LoadToNative<GLubyte, 4>, false);
277 default:
278 UNREACHABLE();
279 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
280 }
281 }
282
BGRA_EXT_to_default(GLenum type)283 LoadImageFunctionInfo BGRA_EXT_to_default(GLenum type)
284 {
285 switch (type)
286 {
287 case GL_UNSIGNED_BYTE:
288 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
289 default:
290 UNREACHABLE();
291 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
292 }
293 }
294
BGRX8_ANGLEX_to_B8G8R8A8_UNORM(GLenum type)295 LoadImageFunctionInfo BGRX8_ANGLEX_to_B8G8R8A8_UNORM(GLenum type)
296 {
297 switch (type)
298 {
299 case GL_UNSIGNED_BYTE:
300 return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
301 default:
302 UNREACHABLE();
303 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
304 }
305 }
306
BGRX8_ANGLEX_to_B8G8R8X8_UNORM(GLenum type)307 LoadImageFunctionInfo BGRX8_ANGLEX_to_B8G8R8X8_UNORM(GLenum type)
308 {
309 switch (type)
310 {
311 case GL_UNSIGNED_BYTE:
312 return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
313 default:
314 UNREACHABLE();
315 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
316 }
317 }
318
BGRX8_SRGB_ANGLEX_to_B8G8R8A8_UNORM_SRGB(GLenum type)319 LoadImageFunctionInfo BGRX8_SRGB_ANGLEX_to_B8G8R8A8_UNORM_SRGB(GLenum type)
320 {
321 switch (type)
322 {
323 case GL_UNSIGNED_BYTE:
324 return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
325 default:
326 UNREACHABLE();
327 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
328 }
329 }
330
BGRX8_SRGB_ANGLEX_to_B8G8R8X8_UNORM_SRGB(GLenum type)331 LoadImageFunctionInfo BGRX8_SRGB_ANGLEX_to_B8G8R8X8_UNORM_SRGB(GLenum type)
332 {
333 switch (type)
334 {
335 case GL_UNSIGNED_BYTE:
336 return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
337 default:
338 UNREACHABLE();
339 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
340 }
341 }
342
COMPRESSED_R11_EAC_to_EAC_R11_UNORM_BLOCK(GLenum type)343 LoadImageFunctionInfo COMPRESSED_R11_EAC_to_EAC_R11_UNORM_BLOCK(GLenum type)
344 {
345 switch (type)
346 {
347 case GL_UNSIGNED_BYTE:
348 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 8>, false);
349 default:
350 UNREACHABLE();
351 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
352 }
353 }
354
COMPRESSED_R11_EAC_to_R16_FLOAT(GLenum type)355 LoadImageFunctionInfo COMPRESSED_R11_EAC_to_R16_FLOAT(GLenum type)
356 {
357 switch (type)
358 {
359 case GL_UNSIGNED_BYTE:
360 return LoadImageFunctionInfo(LoadEACR11ToR16F, true);
361 default:
362 UNREACHABLE();
363 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
364 }
365 }
366
COMPRESSED_R11_EAC_to_R16_UNORM(GLenum type)367 LoadImageFunctionInfo COMPRESSED_R11_EAC_to_R16_UNORM(GLenum type)
368 {
369 switch (type)
370 {
371 case GL_UNSIGNED_BYTE:
372 return LoadImageFunctionInfo(LoadEACR11ToR16, true);
373 default:
374 UNREACHABLE();
375 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
376 }
377 }
378
COMPRESSED_RED_GREEN_RGTC2_EXT_to_default(GLenum type)379 LoadImageFunctionInfo COMPRESSED_RED_GREEN_RGTC2_EXT_to_default(GLenum type)
380 {
381 switch (type)
382 {
383 case GL_UNSIGNED_BYTE:
384 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
385 default:
386 UNREACHABLE();
387 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
388 }
389 }
390
COMPRESSED_RED_RGTC1_EXT_to_default(GLenum type)391 LoadImageFunctionInfo COMPRESSED_RED_RGTC1_EXT_to_default(GLenum type)
392 {
393 switch (type)
394 {
395 case GL_UNSIGNED_BYTE:
396 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 8>, false);
397 default:
398 UNREACHABLE();
399 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
400 }
401 }
402
COMPRESSED_RG11_EAC_to_EAC_R11G11_UNORM_BLOCK(GLenum type)403 LoadImageFunctionInfo COMPRESSED_RG11_EAC_to_EAC_R11G11_UNORM_BLOCK(GLenum type)
404 {
405 switch (type)
406 {
407 case GL_UNSIGNED_BYTE:
408 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
409 default:
410 UNREACHABLE();
411 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
412 }
413 }
414
COMPRESSED_RG11_EAC_to_R16G16_FLOAT(GLenum type)415 LoadImageFunctionInfo COMPRESSED_RG11_EAC_to_R16G16_FLOAT(GLenum type)
416 {
417 switch (type)
418 {
419 case GL_UNSIGNED_BYTE:
420 return LoadImageFunctionInfo(LoadEACRG11ToRG16F, true);
421 default:
422 UNREACHABLE();
423 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
424 }
425 }
426
COMPRESSED_RG11_EAC_to_R16G16_UNORM(GLenum type)427 LoadImageFunctionInfo COMPRESSED_RG11_EAC_to_R16G16_UNORM(GLenum type)
428 {
429 switch (type)
430 {
431 case GL_UNSIGNED_BYTE:
432 return LoadImageFunctionInfo(LoadEACRG11ToRG16, true);
433 default:
434 UNREACHABLE();
435 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
436 }
437 }
438
COMPRESSED_RGB8_ETC2_to_ETC2_R8G8B8_UNORM_BLOCK(GLenum type)439 LoadImageFunctionInfo COMPRESSED_RGB8_ETC2_to_ETC2_R8G8B8_UNORM_BLOCK(GLenum type)
440 {
441 switch (type)
442 {
443 case GL_UNSIGNED_BYTE:
444 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 8>, false);
445 default:
446 UNREACHABLE();
447 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
448 }
449 }
450
COMPRESSED_RGB8_ETC2_to_R8G8B8A8_UNORM(GLenum type)451 LoadImageFunctionInfo COMPRESSED_RGB8_ETC2_to_R8G8B8A8_UNORM(GLenum type)
452 {
453 switch (type)
454 {
455 case GL_UNSIGNED_BYTE:
456 return LoadImageFunctionInfo(LoadETC2RGB8ToRGBA8, true);
457 default:
458 UNREACHABLE();
459 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
460 }
461 }
462
COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGB_UNORM_BLOCK(GLenum type)463 LoadImageFunctionInfo COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGB_UNORM_BLOCK(GLenum type)
464 {
465 switch (type)
466 {
467 case GL_UNSIGNED_BYTE:
468 return LoadImageFunctionInfo(LoadETC2RGB8ToBC1, true);
469 default:
470 UNREACHABLE();
471 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
472 }
473 }
474
COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_to_ETC2_R8G8B8A1_UNORM_BLOCK(GLenum type)475 LoadImageFunctionInfo COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_to_ETC2_R8G8B8A1_UNORM_BLOCK(
476 GLenum type)
477 {
478 switch (type)
479 {
480 case GL_UNSIGNED_BYTE:
481 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 8>, false);
482 default:
483 UNREACHABLE();
484 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
485 }
486 }
487
COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_to_R8G8B8A8_UNORM(GLenum type)488 LoadImageFunctionInfo COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_to_R8G8B8A8_UNORM(GLenum type)
489 {
490 switch (type)
491 {
492 case GL_UNSIGNED_BYTE:
493 return LoadImageFunctionInfo(LoadETC2RGB8A1ToRGBA8, true);
494 default:
495 UNREACHABLE();
496 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
497 }
498 }
499
500 LoadImageFunctionInfo
COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGBA_UNORM_BLOCK(GLenum type)501 COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGBA_UNORM_BLOCK(GLenum type)
502 {
503 switch (type)
504 {
505 case GL_UNSIGNED_BYTE:
506 return LoadImageFunctionInfo(LoadETC2RGB8A1ToBC1, true);
507 default:
508 UNREACHABLE();
509 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
510 }
511 }
512
COMPRESSED_RGBA8_ETC2_EAC_to_ETC2_R8G8B8A8_UNORM_BLOCK(GLenum type)513 LoadImageFunctionInfo COMPRESSED_RGBA8_ETC2_EAC_to_ETC2_R8G8B8A8_UNORM_BLOCK(GLenum type)
514 {
515 switch (type)
516 {
517 case GL_UNSIGNED_BYTE:
518 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
519 default:
520 UNREACHABLE();
521 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
522 }
523 }
524
COMPRESSED_RGBA8_ETC2_EAC_to_R8G8B8A8_UNORM(GLenum type)525 LoadImageFunctionInfo COMPRESSED_RGBA8_ETC2_EAC_to_R8G8B8A8_UNORM(GLenum type)
526 {
527 switch (type)
528 {
529 case GL_UNSIGNED_BYTE:
530 return LoadImageFunctionInfo(LoadETC2RGBA8ToRGBA8, true);
531 default:
532 UNREACHABLE();
533 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
534 }
535 }
536
COMPRESSED_RGBA_ASTC_10x10_KHR_to_R8G8B8A8_UNORM(GLenum type)537 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_10x10_KHR_to_R8G8B8A8_UNORM(GLenum type)
538 {
539 switch (type)
540 {
541 case GL_UNSIGNED_BYTE:
542 return LoadImageFunctionInfo(LoadASTCToRGBA8<10, 10>, true);
543 default:
544 UNREACHABLE();
545 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
546 }
547 }
548
COMPRESSED_RGBA_ASTC_10x10_KHR_to_default(GLenum type)549 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_10x10_KHR_to_default(GLenum type)
550 {
551 switch (type)
552 {
553 case GL_UNSIGNED_BYTE:
554 return LoadImageFunctionInfo(LoadCompressedToNative<10, 10, 1, 16>, false);
555 default:
556 UNREACHABLE();
557 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
558 }
559 }
560
COMPRESSED_RGBA_ASTC_10x5_KHR_to_R8G8B8A8_UNORM(GLenum type)561 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_10x5_KHR_to_R8G8B8A8_UNORM(GLenum type)
562 {
563 switch (type)
564 {
565 case GL_UNSIGNED_BYTE:
566 return LoadImageFunctionInfo(LoadASTCToRGBA8<10, 5>, true);
567 default:
568 UNREACHABLE();
569 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
570 }
571 }
572
COMPRESSED_RGBA_ASTC_10x5_KHR_to_default(GLenum type)573 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_10x5_KHR_to_default(GLenum type)
574 {
575 switch (type)
576 {
577 case GL_UNSIGNED_BYTE:
578 return LoadImageFunctionInfo(LoadCompressedToNative<10, 5, 1, 16>, false);
579 default:
580 UNREACHABLE();
581 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
582 }
583 }
584
COMPRESSED_RGBA_ASTC_10x6_KHR_to_R8G8B8A8_UNORM(GLenum type)585 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_10x6_KHR_to_R8G8B8A8_UNORM(GLenum type)
586 {
587 switch (type)
588 {
589 case GL_UNSIGNED_BYTE:
590 return LoadImageFunctionInfo(LoadASTCToRGBA8<10, 6>, true);
591 default:
592 UNREACHABLE();
593 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
594 }
595 }
596
COMPRESSED_RGBA_ASTC_10x6_KHR_to_default(GLenum type)597 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_10x6_KHR_to_default(GLenum type)
598 {
599 switch (type)
600 {
601 case GL_UNSIGNED_BYTE:
602 return LoadImageFunctionInfo(LoadCompressedToNative<10, 6, 1, 16>, false);
603 default:
604 UNREACHABLE();
605 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
606 }
607 }
608
COMPRESSED_RGBA_ASTC_10x8_KHR_to_R8G8B8A8_UNORM(GLenum type)609 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_10x8_KHR_to_R8G8B8A8_UNORM(GLenum type)
610 {
611 switch (type)
612 {
613 case GL_UNSIGNED_BYTE:
614 return LoadImageFunctionInfo(LoadASTCToRGBA8<10, 8>, true);
615 default:
616 UNREACHABLE();
617 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
618 }
619 }
620
COMPRESSED_RGBA_ASTC_10x8_KHR_to_default(GLenum type)621 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_10x8_KHR_to_default(GLenum type)
622 {
623 switch (type)
624 {
625 case GL_UNSIGNED_BYTE:
626 return LoadImageFunctionInfo(LoadCompressedToNative<10, 8, 1, 16>, false);
627 default:
628 UNREACHABLE();
629 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
630 }
631 }
632
COMPRESSED_RGBA_ASTC_12x10_KHR_to_R8G8B8A8_UNORM(GLenum type)633 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_12x10_KHR_to_R8G8B8A8_UNORM(GLenum type)
634 {
635 switch (type)
636 {
637 case GL_UNSIGNED_BYTE:
638 return LoadImageFunctionInfo(LoadASTCToRGBA8<12, 10>, true);
639 default:
640 UNREACHABLE();
641 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
642 }
643 }
644
COMPRESSED_RGBA_ASTC_12x10_KHR_to_default(GLenum type)645 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_12x10_KHR_to_default(GLenum type)
646 {
647 switch (type)
648 {
649 case GL_UNSIGNED_BYTE:
650 return LoadImageFunctionInfo(LoadCompressedToNative<12, 10, 1, 16>, false);
651 default:
652 UNREACHABLE();
653 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
654 }
655 }
656
COMPRESSED_RGBA_ASTC_12x12_KHR_to_R8G8B8A8_UNORM(GLenum type)657 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_12x12_KHR_to_R8G8B8A8_UNORM(GLenum type)
658 {
659 switch (type)
660 {
661 case GL_UNSIGNED_BYTE:
662 return LoadImageFunctionInfo(LoadASTCToRGBA8<12, 12>, true);
663 default:
664 UNREACHABLE();
665 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
666 }
667 }
668
COMPRESSED_RGBA_ASTC_12x12_KHR_to_default(GLenum type)669 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_12x12_KHR_to_default(GLenum type)
670 {
671 switch (type)
672 {
673 case GL_UNSIGNED_BYTE:
674 return LoadImageFunctionInfo(LoadCompressedToNative<12, 12, 1, 16>, false);
675 default:
676 UNREACHABLE();
677 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
678 }
679 }
680
COMPRESSED_RGBA_ASTC_3x3x3_OES_to_default(GLenum type)681 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_3x3x3_OES_to_default(GLenum type)
682 {
683 switch (type)
684 {
685 case GL_UNSIGNED_BYTE:
686 return LoadImageFunctionInfo(LoadCompressedToNative<3, 3, 3, 16>, false);
687 default:
688 UNREACHABLE();
689 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
690 }
691 }
692
COMPRESSED_RGBA_ASTC_4x3x3_OES_to_default(GLenum type)693 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_4x3x3_OES_to_default(GLenum type)
694 {
695 switch (type)
696 {
697 case GL_UNSIGNED_BYTE:
698 return LoadImageFunctionInfo(LoadCompressedToNative<4, 3, 3, 16>, false);
699 default:
700 UNREACHABLE();
701 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
702 }
703 }
704
COMPRESSED_RGBA_ASTC_4x4_KHR_to_R8G8B8A8_UNORM(GLenum type)705 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_4x4_KHR_to_R8G8B8A8_UNORM(GLenum type)
706 {
707 switch (type)
708 {
709 case GL_UNSIGNED_BYTE:
710 return LoadImageFunctionInfo(LoadASTCToRGBA8<4, 4>, true);
711 default:
712 UNREACHABLE();
713 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
714 }
715 }
716
COMPRESSED_RGBA_ASTC_4x4_KHR_to_default(GLenum type)717 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_4x4_KHR_to_default(GLenum type)
718 {
719 switch (type)
720 {
721 case GL_UNSIGNED_BYTE:
722 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
723 default:
724 UNREACHABLE();
725 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
726 }
727 }
728
COMPRESSED_RGBA_ASTC_4x4x3_OES_to_default(GLenum type)729 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_4x4x3_OES_to_default(GLenum type)
730 {
731 switch (type)
732 {
733 case GL_UNSIGNED_BYTE:
734 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 3, 16>, false);
735 default:
736 UNREACHABLE();
737 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
738 }
739 }
740
COMPRESSED_RGBA_ASTC_4x4x4_OES_to_default(GLenum type)741 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_4x4x4_OES_to_default(GLenum type)
742 {
743 switch (type)
744 {
745 case GL_UNSIGNED_BYTE:
746 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 4, 16>, false);
747 default:
748 UNREACHABLE();
749 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
750 }
751 }
752
COMPRESSED_RGBA_ASTC_5x4_KHR_to_R8G8B8A8_UNORM(GLenum type)753 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_5x4_KHR_to_R8G8B8A8_UNORM(GLenum type)
754 {
755 switch (type)
756 {
757 case GL_UNSIGNED_BYTE:
758 return LoadImageFunctionInfo(LoadASTCToRGBA8<5, 4>, true);
759 default:
760 UNREACHABLE();
761 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
762 }
763 }
764
COMPRESSED_RGBA_ASTC_5x4_KHR_to_default(GLenum type)765 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_5x4_KHR_to_default(GLenum type)
766 {
767 switch (type)
768 {
769 case GL_UNSIGNED_BYTE:
770 return LoadImageFunctionInfo(LoadCompressedToNative<5, 4, 1, 16>, false);
771 default:
772 UNREACHABLE();
773 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
774 }
775 }
776
COMPRESSED_RGBA_ASTC_5x4x4_OES_to_default(GLenum type)777 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_5x4x4_OES_to_default(GLenum type)
778 {
779 switch (type)
780 {
781 case GL_UNSIGNED_BYTE:
782 return LoadImageFunctionInfo(LoadCompressedToNative<5, 4, 4, 16>, false);
783 default:
784 UNREACHABLE();
785 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
786 }
787 }
788
COMPRESSED_RGBA_ASTC_5x5_KHR_to_R8G8B8A8_UNORM(GLenum type)789 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_5x5_KHR_to_R8G8B8A8_UNORM(GLenum type)
790 {
791 switch (type)
792 {
793 case GL_UNSIGNED_BYTE:
794 return LoadImageFunctionInfo(LoadASTCToRGBA8<5, 5>, true);
795 default:
796 UNREACHABLE();
797 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
798 }
799 }
800
COMPRESSED_RGBA_ASTC_5x5_KHR_to_default(GLenum type)801 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_5x5_KHR_to_default(GLenum type)
802 {
803 switch (type)
804 {
805 case GL_UNSIGNED_BYTE:
806 return LoadImageFunctionInfo(LoadCompressedToNative<5, 5, 1, 16>, false);
807 default:
808 UNREACHABLE();
809 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
810 }
811 }
812
COMPRESSED_RGBA_ASTC_5x5x4_OES_to_default(GLenum type)813 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_5x5x4_OES_to_default(GLenum type)
814 {
815 switch (type)
816 {
817 case GL_UNSIGNED_BYTE:
818 return LoadImageFunctionInfo(LoadCompressedToNative<5, 5, 4, 16>, false);
819 default:
820 UNREACHABLE();
821 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
822 }
823 }
824
COMPRESSED_RGBA_ASTC_5x5x5_OES_to_default(GLenum type)825 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_5x5x5_OES_to_default(GLenum type)
826 {
827 switch (type)
828 {
829 case GL_UNSIGNED_BYTE:
830 return LoadImageFunctionInfo(LoadCompressedToNative<5, 5, 5, 16>, false);
831 default:
832 UNREACHABLE();
833 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
834 }
835 }
836
COMPRESSED_RGBA_ASTC_6x5_KHR_to_R8G8B8A8_UNORM(GLenum type)837 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_6x5_KHR_to_R8G8B8A8_UNORM(GLenum type)
838 {
839 switch (type)
840 {
841 case GL_UNSIGNED_BYTE:
842 return LoadImageFunctionInfo(LoadASTCToRGBA8<6, 5>, true);
843 default:
844 UNREACHABLE();
845 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
846 }
847 }
848
COMPRESSED_RGBA_ASTC_6x5_KHR_to_default(GLenum type)849 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_6x5_KHR_to_default(GLenum type)
850 {
851 switch (type)
852 {
853 case GL_UNSIGNED_BYTE:
854 return LoadImageFunctionInfo(LoadCompressedToNative<6, 5, 1, 16>, false);
855 default:
856 UNREACHABLE();
857 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
858 }
859 }
860
COMPRESSED_RGBA_ASTC_6x5x5_OES_to_default(GLenum type)861 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_6x5x5_OES_to_default(GLenum type)
862 {
863 switch (type)
864 {
865 case GL_UNSIGNED_BYTE:
866 return LoadImageFunctionInfo(LoadCompressedToNative<6, 5, 5, 16>, false);
867 default:
868 UNREACHABLE();
869 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
870 }
871 }
872
COMPRESSED_RGBA_ASTC_6x6_KHR_to_R8G8B8A8_UNORM(GLenum type)873 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_6x6_KHR_to_R8G8B8A8_UNORM(GLenum type)
874 {
875 switch (type)
876 {
877 case GL_UNSIGNED_BYTE:
878 return LoadImageFunctionInfo(LoadASTCToRGBA8<6, 6>, true);
879 default:
880 UNREACHABLE();
881 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
882 }
883 }
884
COMPRESSED_RGBA_ASTC_6x6_KHR_to_default(GLenum type)885 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_6x6_KHR_to_default(GLenum type)
886 {
887 switch (type)
888 {
889 case GL_UNSIGNED_BYTE:
890 return LoadImageFunctionInfo(LoadCompressedToNative<6, 6, 1, 16>, false);
891 default:
892 UNREACHABLE();
893 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
894 }
895 }
896
COMPRESSED_RGBA_ASTC_6x6x5_OES_to_default(GLenum type)897 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_6x6x5_OES_to_default(GLenum type)
898 {
899 switch (type)
900 {
901 case GL_UNSIGNED_BYTE:
902 return LoadImageFunctionInfo(LoadCompressedToNative<6, 6, 5, 16>, false);
903 default:
904 UNREACHABLE();
905 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
906 }
907 }
908
COMPRESSED_RGBA_ASTC_6x6x6_OES_to_default(GLenum type)909 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_6x6x6_OES_to_default(GLenum type)
910 {
911 switch (type)
912 {
913 case GL_UNSIGNED_BYTE:
914 return LoadImageFunctionInfo(LoadCompressedToNative<6, 6, 6, 16>, false);
915 default:
916 UNREACHABLE();
917 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
918 }
919 }
920
COMPRESSED_RGBA_ASTC_8x5_KHR_to_R8G8B8A8_UNORM(GLenum type)921 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_8x5_KHR_to_R8G8B8A8_UNORM(GLenum type)
922 {
923 switch (type)
924 {
925 case GL_UNSIGNED_BYTE:
926 return LoadImageFunctionInfo(LoadASTCToRGBA8<8, 5>, true);
927 default:
928 UNREACHABLE();
929 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
930 }
931 }
932
COMPRESSED_RGBA_ASTC_8x5_KHR_to_default(GLenum type)933 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_8x5_KHR_to_default(GLenum type)
934 {
935 switch (type)
936 {
937 case GL_UNSIGNED_BYTE:
938 return LoadImageFunctionInfo(LoadCompressedToNative<8, 5, 1, 16>, false);
939 default:
940 UNREACHABLE();
941 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
942 }
943 }
944
COMPRESSED_RGBA_ASTC_8x6_KHR_to_R8G8B8A8_UNORM(GLenum type)945 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_8x6_KHR_to_R8G8B8A8_UNORM(GLenum type)
946 {
947 switch (type)
948 {
949 case GL_UNSIGNED_BYTE:
950 return LoadImageFunctionInfo(LoadASTCToRGBA8<8, 6>, true);
951 default:
952 UNREACHABLE();
953 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
954 }
955 }
956
COMPRESSED_RGBA_ASTC_8x6_KHR_to_default(GLenum type)957 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_8x6_KHR_to_default(GLenum type)
958 {
959 switch (type)
960 {
961 case GL_UNSIGNED_BYTE:
962 return LoadImageFunctionInfo(LoadCompressedToNative<8, 6, 1, 16>, false);
963 default:
964 UNREACHABLE();
965 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
966 }
967 }
968
COMPRESSED_RGBA_ASTC_8x8_KHR_to_R8G8B8A8_UNORM(GLenum type)969 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_8x8_KHR_to_R8G8B8A8_UNORM(GLenum type)
970 {
971 switch (type)
972 {
973 case GL_UNSIGNED_BYTE:
974 return LoadImageFunctionInfo(LoadASTCToRGBA8<8, 8>, true);
975 default:
976 UNREACHABLE();
977 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
978 }
979 }
980
COMPRESSED_RGBA_ASTC_8x8_KHR_to_default(GLenum type)981 LoadImageFunctionInfo COMPRESSED_RGBA_ASTC_8x8_KHR_to_default(GLenum type)
982 {
983 switch (type)
984 {
985 case GL_UNSIGNED_BYTE:
986 return LoadImageFunctionInfo(LoadCompressedToNative<8, 8, 1, 16>, false);
987 default:
988 UNREACHABLE();
989 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
990 }
991 }
992
COMPRESSED_RGBA_BPTC_UNORM_EXT_to_default(GLenum type)993 LoadImageFunctionInfo COMPRESSED_RGBA_BPTC_UNORM_EXT_to_default(GLenum type)
994 {
995 switch (type)
996 {
997 case GL_UNSIGNED_BYTE:
998 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
999 default:
1000 UNREACHABLE();
1001 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1002 }
1003 }
1004
COMPRESSED_RGBA_S3TC_DXT1_EXT_to_default(GLenum type)1005 LoadImageFunctionInfo COMPRESSED_RGBA_S3TC_DXT1_EXT_to_default(GLenum type)
1006 {
1007 switch (type)
1008 {
1009 case GL_UNSIGNED_BYTE:
1010 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 8>, false);
1011 default:
1012 UNREACHABLE();
1013 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1014 }
1015 }
1016
COMPRESSED_RGBA_S3TC_DXT3_ANGLE_to_default(GLenum type)1017 LoadImageFunctionInfo COMPRESSED_RGBA_S3TC_DXT3_ANGLE_to_default(GLenum type)
1018 {
1019 switch (type)
1020 {
1021 case GL_UNSIGNED_BYTE:
1022 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
1023 default:
1024 UNREACHABLE();
1025 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1026 }
1027 }
1028
COMPRESSED_RGBA_S3TC_DXT5_ANGLE_to_default(GLenum type)1029 LoadImageFunctionInfo COMPRESSED_RGBA_S3TC_DXT5_ANGLE_to_default(GLenum type)
1030 {
1031 switch (type)
1032 {
1033 case GL_UNSIGNED_BYTE:
1034 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
1035 default:
1036 UNREACHABLE();
1037 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1038 }
1039 }
1040
COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT_to_default(GLenum type)1041 LoadImageFunctionInfo COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT_to_default(GLenum type)
1042 {
1043 switch (type)
1044 {
1045 case GL_UNSIGNED_BYTE:
1046 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
1047 default:
1048 UNREACHABLE();
1049 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1050 }
1051 }
1052
COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT_to_default(GLenum type)1053 LoadImageFunctionInfo COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT_to_default(GLenum type)
1054 {
1055 switch (type)
1056 {
1057 case GL_UNSIGNED_BYTE:
1058 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
1059 default:
1060 UNREACHABLE();
1061 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1062 }
1063 }
1064
COMPRESSED_RGB_S3TC_DXT1_EXT_to_default(GLenum type)1065 LoadImageFunctionInfo COMPRESSED_RGB_S3TC_DXT1_EXT_to_default(GLenum type)
1066 {
1067 switch (type)
1068 {
1069 case GL_UNSIGNED_BYTE:
1070 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 8>, false);
1071 default:
1072 UNREACHABLE();
1073 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1074 }
1075 }
1076
COMPRESSED_SIGNED_R11_EAC_to_EAC_R11_SNORM_BLOCK(GLenum type)1077 LoadImageFunctionInfo COMPRESSED_SIGNED_R11_EAC_to_EAC_R11_SNORM_BLOCK(GLenum type)
1078 {
1079 switch (type)
1080 {
1081 case GL_UNSIGNED_BYTE:
1082 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 8>, false);
1083 default:
1084 UNREACHABLE();
1085 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1086 }
1087 }
1088
COMPRESSED_SIGNED_R11_EAC_to_R16_FLOAT(GLenum type)1089 LoadImageFunctionInfo COMPRESSED_SIGNED_R11_EAC_to_R16_FLOAT(GLenum type)
1090 {
1091 switch (type)
1092 {
1093 case GL_UNSIGNED_BYTE:
1094 return LoadImageFunctionInfo(LoadEACR11SToR16F, true);
1095 default:
1096 UNREACHABLE();
1097 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1098 }
1099 }
1100
COMPRESSED_SIGNED_R11_EAC_to_R16_SNORM(GLenum type)1101 LoadImageFunctionInfo COMPRESSED_SIGNED_R11_EAC_to_R16_SNORM(GLenum type)
1102 {
1103 switch (type)
1104 {
1105 case GL_UNSIGNED_BYTE:
1106 return LoadImageFunctionInfo(LoadEACR11SToR16, true);
1107 default:
1108 UNREACHABLE();
1109 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1110 }
1111 }
1112
COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT_to_default(GLenum type)1113 LoadImageFunctionInfo COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT_to_default(GLenum type)
1114 {
1115 switch (type)
1116 {
1117 case GL_UNSIGNED_BYTE:
1118 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
1119 default:
1120 UNREACHABLE();
1121 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1122 }
1123 }
1124
COMPRESSED_SIGNED_RED_RGTC1_EXT_to_default(GLenum type)1125 LoadImageFunctionInfo COMPRESSED_SIGNED_RED_RGTC1_EXT_to_default(GLenum type)
1126 {
1127 switch (type)
1128 {
1129 case GL_UNSIGNED_BYTE:
1130 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 8>, false);
1131 default:
1132 UNREACHABLE();
1133 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1134 }
1135 }
1136
COMPRESSED_SIGNED_RG11_EAC_to_EAC_R11G11_SNORM_BLOCK(GLenum type)1137 LoadImageFunctionInfo COMPRESSED_SIGNED_RG11_EAC_to_EAC_R11G11_SNORM_BLOCK(GLenum type)
1138 {
1139 switch (type)
1140 {
1141 case GL_UNSIGNED_BYTE:
1142 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
1143 default:
1144 UNREACHABLE();
1145 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1146 }
1147 }
1148
COMPRESSED_SIGNED_RG11_EAC_to_R16G16_FLOAT(GLenum type)1149 LoadImageFunctionInfo COMPRESSED_SIGNED_RG11_EAC_to_R16G16_FLOAT(GLenum type)
1150 {
1151 switch (type)
1152 {
1153 case GL_UNSIGNED_BYTE:
1154 return LoadImageFunctionInfo(LoadEACRG11SToRG16F, true);
1155 default:
1156 UNREACHABLE();
1157 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1158 }
1159 }
1160
COMPRESSED_SIGNED_RG11_EAC_to_R16G16_SNORM(GLenum type)1161 LoadImageFunctionInfo COMPRESSED_SIGNED_RG11_EAC_to_R16G16_SNORM(GLenum type)
1162 {
1163 switch (type)
1164 {
1165 case GL_UNSIGNED_BYTE:
1166 return LoadImageFunctionInfo(LoadEACRG11SToRG16, true);
1167 default:
1168 UNREACHABLE();
1169 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1170 }
1171 }
1172
COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)1173 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1174 {
1175 switch (type)
1176 {
1177 case GL_UNSIGNED_BYTE:
1178 return LoadImageFunctionInfo(LoadASTCToRGBA8<10, 10>, true);
1179 default:
1180 UNREACHABLE();
1181 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1182 }
1183 }
1184
COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR_to_default(GLenum type)1185 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR_to_default(GLenum type)
1186 {
1187 switch (type)
1188 {
1189 case GL_UNSIGNED_BYTE:
1190 return LoadImageFunctionInfo(LoadCompressedToNative<10, 10, 1, 16>, false);
1191 default:
1192 UNREACHABLE();
1193 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1194 }
1195 }
1196
COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)1197 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1198 {
1199 switch (type)
1200 {
1201 case GL_UNSIGNED_BYTE:
1202 return LoadImageFunctionInfo(LoadASTCToRGBA8<10, 5>, true);
1203 default:
1204 UNREACHABLE();
1205 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1206 }
1207 }
1208
COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR_to_default(GLenum type)1209 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR_to_default(GLenum type)
1210 {
1211 switch (type)
1212 {
1213 case GL_UNSIGNED_BYTE:
1214 return LoadImageFunctionInfo(LoadCompressedToNative<10, 5, 1, 16>, false);
1215 default:
1216 UNREACHABLE();
1217 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1218 }
1219 }
1220
COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)1221 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1222 {
1223 switch (type)
1224 {
1225 case GL_UNSIGNED_BYTE:
1226 return LoadImageFunctionInfo(LoadASTCToRGBA8<10, 6>, true);
1227 default:
1228 UNREACHABLE();
1229 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1230 }
1231 }
1232
COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR_to_default(GLenum type)1233 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR_to_default(GLenum type)
1234 {
1235 switch (type)
1236 {
1237 case GL_UNSIGNED_BYTE:
1238 return LoadImageFunctionInfo(LoadCompressedToNative<10, 6, 1, 16>, false);
1239 default:
1240 UNREACHABLE();
1241 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1242 }
1243 }
1244
COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)1245 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1246 {
1247 switch (type)
1248 {
1249 case GL_UNSIGNED_BYTE:
1250 return LoadImageFunctionInfo(LoadASTCToRGBA8<10, 8>, true);
1251 default:
1252 UNREACHABLE();
1253 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1254 }
1255 }
1256
COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR_to_default(GLenum type)1257 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR_to_default(GLenum type)
1258 {
1259 switch (type)
1260 {
1261 case GL_UNSIGNED_BYTE:
1262 return LoadImageFunctionInfo(LoadCompressedToNative<10, 8, 1, 16>, false);
1263 default:
1264 UNREACHABLE();
1265 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1266 }
1267 }
1268
COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)1269 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1270 {
1271 switch (type)
1272 {
1273 case GL_UNSIGNED_BYTE:
1274 return LoadImageFunctionInfo(LoadASTCToRGBA8<12, 10>, true);
1275 default:
1276 UNREACHABLE();
1277 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1278 }
1279 }
1280
COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR_to_default(GLenum type)1281 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR_to_default(GLenum type)
1282 {
1283 switch (type)
1284 {
1285 case GL_UNSIGNED_BYTE:
1286 return LoadImageFunctionInfo(LoadCompressedToNative<12, 10, 1, 16>, false);
1287 default:
1288 UNREACHABLE();
1289 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1290 }
1291 }
1292
COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)1293 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1294 {
1295 switch (type)
1296 {
1297 case GL_UNSIGNED_BYTE:
1298 return LoadImageFunctionInfo(LoadASTCToRGBA8<12, 12>, true);
1299 default:
1300 UNREACHABLE();
1301 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1302 }
1303 }
1304
COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR_to_default(GLenum type)1305 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR_to_default(GLenum type)
1306 {
1307 switch (type)
1308 {
1309 case GL_UNSIGNED_BYTE:
1310 return LoadImageFunctionInfo(LoadCompressedToNative<12, 12, 1, 16>, false);
1311 default:
1312 UNREACHABLE();
1313 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1314 }
1315 }
1316
COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES_to_default(GLenum type)1317 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES_to_default(GLenum type)
1318 {
1319 switch (type)
1320 {
1321 case GL_UNSIGNED_BYTE:
1322 return LoadImageFunctionInfo(LoadCompressedToNative<3, 3, 3, 16>, false);
1323 default:
1324 UNREACHABLE();
1325 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1326 }
1327 }
1328
COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES_to_default(GLenum type)1329 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES_to_default(GLenum type)
1330 {
1331 switch (type)
1332 {
1333 case GL_UNSIGNED_BYTE:
1334 return LoadImageFunctionInfo(LoadCompressedToNative<4, 3, 3, 16>, false);
1335 default:
1336 UNREACHABLE();
1337 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1338 }
1339 }
1340
COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)1341 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1342 {
1343 switch (type)
1344 {
1345 case GL_UNSIGNED_BYTE:
1346 return LoadImageFunctionInfo(LoadASTCToRGBA8<4, 4>, true);
1347 default:
1348 UNREACHABLE();
1349 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1350 }
1351 }
1352
COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR_to_default(GLenum type)1353 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR_to_default(GLenum type)
1354 {
1355 switch (type)
1356 {
1357 case GL_UNSIGNED_BYTE:
1358 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
1359 default:
1360 UNREACHABLE();
1361 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1362 }
1363 }
1364
COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES_to_default(GLenum type)1365 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES_to_default(GLenum type)
1366 {
1367 switch (type)
1368 {
1369 case GL_UNSIGNED_BYTE:
1370 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 3, 16>, false);
1371 default:
1372 UNREACHABLE();
1373 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1374 }
1375 }
1376
COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES_to_default(GLenum type)1377 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES_to_default(GLenum type)
1378 {
1379 switch (type)
1380 {
1381 case GL_UNSIGNED_BYTE:
1382 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 4, 16>, false);
1383 default:
1384 UNREACHABLE();
1385 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1386 }
1387 }
1388
COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)1389 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1390 {
1391 switch (type)
1392 {
1393 case GL_UNSIGNED_BYTE:
1394 return LoadImageFunctionInfo(LoadASTCToRGBA8<5, 4>, true);
1395 default:
1396 UNREACHABLE();
1397 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1398 }
1399 }
1400
COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR_to_default(GLenum type)1401 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR_to_default(GLenum type)
1402 {
1403 switch (type)
1404 {
1405 case GL_UNSIGNED_BYTE:
1406 return LoadImageFunctionInfo(LoadCompressedToNative<5, 4, 1, 16>, false);
1407 default:
1408 UNREACHABLE();
1409 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1410 }
1411 }
1412
COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES_to_default(GLenum type)1413 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES_to_default(GLenum type)
1414 {
1415 switch (type)
1416 {
1417 case GL_UNSIGNED_BYTE:
1418 return LoadImageFunctionInfo(LoadCompressedToNative<5, 4, 4, 16>, false);
1419 default:
1420 UNREACHABLE();
1421 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1422 }
1423 }
1424
COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)1425 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1426 {
1427 switch (type)
1428 {
1429 case GL_UNSIGNED_BYTE:
1430 return LoadImageFunctionInfo(LoadASTCToRGBA8<5, 5>, true);
1431 default:
1432 UNREACHABLE();
1433 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1434 }
1435 }
1436
COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR_to_default(GLenum type)1437 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR_to_default(GLenum type)
1438 {
1439 switch (type)
1440 {
1441 case GL_UNSIGNED_BYTE:
1442 return LoadImageFunctionInfo(LoadCompressedToNative<5, 5, 1, 16>, false);
1443 default:
1444 UNREACHABLE();
1445 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1446 }
1447 }
1448
COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES_to_default(GLenum type)1449 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES_to_default(GLenum type)
1450 {
1451 switch (type)
1452 {
1453 case GL_UNSIGNED_BYTE:
1454 return LoadImageFunctionInfo(LoadCompressedToNative<5, 5, 4, 16>, false);
1455 default:
1456 UNREACHABLE();
1457 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1458 }
1459 }
1460
COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES_to_default(GLenum type)1461 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES_to_default(GLenum type)
1462 {
1463 switch (type)
1464 {
1465 case GL_UNSIGNED_BYTE:
1466 return LoadImageFunctionInfo(LoadCompressedToNative<5, 5, 5, 16>, false);
1467 default:
1468 UNREACHABLE();
1469 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1470 }
1471 }
1472
COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)1473 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1474 {
1475 switch (type)
1476 {
1477 case GL_UNSIGNED_BYTE:
1478 return LoadImageFunctionInfo(LoadASTCToRGBA8<6, 5>, true);
1479 default:
1480 UNREACHABLE();
1481 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1482 }
1483 }
1484
COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR_to_default(GLenum type)1485 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR_to_default(GLenum type)
1486 {
1487 switch (type)
1488 {
1489 case GL_UNSIGNED_BYTE:
1490 return LoadImageFunctionInfo(LoadCompressedToNative<6, 5, 1, 16>, false);
1491 default:
1492 UNREACHABLE();
1493 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1494 }
1495 }
1496
COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES_to_default(GLenum type)1497 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES_to_default(GLenum type)
1498 {
1499 switch (type)
1500 {
1501 case GL_UNSIGNED_BYTE:
1502 return LoadImageFunctionInfo(LoadCompressedToNative<6, 5, 5, 16>, false);
1503 default:
1504 UNREACHABLE();
1505 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1506 }
1507 }
1508
COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)1509 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1510 {
1511 switch (type)
1512 {
1513 case GL_UNSIGNED_BYTE:
1514 return LoadImageFunctionInfo(LoadASTCToRGBA8<6, 6>, true);
1515 default:
1516 UNREACHABLE();
1517 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1518 }
1519 }
1520
COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR_to_default(GLenum type)1521 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR_to_default(GLenum type)
1522 {
1523 switch (type)
1524 {
1525 case GL_UNSIGNED_BYTE:
1526 return LoadImageFunctionInfo(LoadCompressedToNative<6, 6, 1, 16>, false);
1527 default:
1528 UNREACHABLE();
1529 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1530 }
1531 }
1532
COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES_to_default(GLenum type)1533 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES_to_default(GLenum type)
1534 {
1535 switch (type)
1536 {
1537 case GL_UNSIGNED_BYTE:
1538 return LoadImageFunctionInfo(LoadCompressedToNative<6, 6, 5, 16>, false);
1539 default:
1540 UNREACHABLE();
1541 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1542 }
1543 }
1544
COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES_to_default(GLenum type)1545 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES_to_default(GLenum type)
1546 {
1547 switch (type)
1548 {
1549 case GL_UNSIGNED_BYTE:
1550 return LoadImageFunctionInfo(LoadCompressedToNative<6, 6, 6, 16>, false);
1551 default:
1552 UNREACHABLE();
1553 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1554 }
1555 }
1556
COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)1557 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1558 {
1559 switch (type)
1560 {
1561 case GL_UNSIGNED_BYTE:
1562 return LoadImageFunctionInfo(LoadASTCToRGBA8<8, 5>, true);
1563 default:
1564 UNREACHABLE();
1565 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1566 }
1567 }
1568
COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR_to_default(GLenum type)1569 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR_to_default(GLenum type)
1570 {
1571 switch (type)
1572 {
1573 case GL_UNSIGNED_BYTE:
1574 return LoadImageFunctionInfo(LoadCompressedToNative<8, 5, 1, 16>, false);
1575 default:
1576 UNREACHABLE();
1577 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1578 }
1579 }
1580
COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)1581 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1582 {
1583 switch (type)
1584 {
1585 case GL_UNSIGNED_BYTE:
1586 return LoadImageFunctionInfo(LoadASTCToRGBA8<8, 6>, true);
1587 default:
1588 UNREACHABLE();
1589 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1590 }
1591 }
1592
COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR_to_default(GLenum type)1593 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR_to_default(GLenum type)
1594 {
1595 switch (type)
1596 {
1597 case GL_UNSIGNED_BYTE:
1598 return LoadImageFunctionInfo(LoadCompressedToNative<8, 6, 1, 16>, false);
1599 default:
1600 UNREACHABLE();
1601 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1602 }
1603 }
1604
COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)1605 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1606 {
1607 switch (type)
1608 {
1609 case GL_UNSIGNED_BYTE:
1610 return LoadImageFunctionInfo(LoadASTCToRGBA8<8, 8>, true);
1611 default:
1612 UNREACHABLE();
1613 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1614 }
1615 }
1616
COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR_to_default(GLenum type)1617 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR_to_default(GLenum type)
1618 {
1619 switch (type)
1620 {
1621 case GL_UNSIGNED_BYTE:
1622 return LoadImageFunctionInfo(LoadCompressedToNative<8, 8, 1, 16>, false);
1623 default:
1624 UNREACHABLE();
1625 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1626 }
1627 }
1628
COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_to_ETC2_R8G8B8A8_SRGB_BLOCK(GLenum type)1629 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_to_ETC2_R8G8B8A8_SRGB_BLOCK(GLenum type)
1630 {
1631 switch (type)
1632 {
1633 case GL_UNSIGNED_BYTE:
1634 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
1635 default:
1636 UNREACHABLE();
1637 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1638 }
1639 }
1640
COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_to_R8G8B8A8_UNORM_SRGB(GLenum type)1641 LoadImageFunctionInfo COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1642 {
1643 switch (type)
1644 {
1645 case GL_UNSIGNED_BYTE:
1646 return LoadImageFunctionInfo(LoadETC2SRGBA8ToSRGBA8, true);
1647 default:
1648 UNREACHABLE();
1649 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1650 }
1651 }
1652
COMPRESSED_SRGB8_ETC2_to_ETC2_R8G8B8_SRGB_BLOCK(GLenum type)1653 LoadImageFunctionInfo COMPRESSED_SRGB8_ETC2_to_ETC2_R8G8B8_SRGB_BLOCK(GLenum type)
1654 {
1655 switch (type)
1656 {
1657 case GL_UNSIGNED_BYTE:
1658 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 8>, false);
1659 default:
1660 UNREACHABLE();
1661 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1662 }
1663 }
1664
COMPRESSED_SRGB8_ETC2_to_R8G8B8A8_UNORM_SRGB(GLenum type)1665 LoadImageFunctionInfo COMPRESSED_SRGB8_ETC2_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1666 {
1667 switch (type)
1668 {
1669 case GL_UNSIGNED_BYTE:
1670 return LoadImageFunctionInfo(LoadETC2SRGB8ToRGBA8, true);
1671 default:
1672 UNREACHABLE();
1673 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1674 }
1675 }
1676
COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGB_UNORM_SRGB_BLOCK(GLenum type)1677 LoadImageFunctionInfo COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGB_UNORM_SRGB_BLOCK(
1678 GLenum type)
1679 {
1680 switch (type)
1681 {
1682 case GL_UNSIGNED_BYTE:
1683 return LoadImageFunctionInfo(LoadETC2SRGB8ToBC1, true);
1684 default:
1685 UNREACHABLE();
1686 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1687 }
1688 }
1689
COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_to_ETC2_R8G8B8A1_SRGB_BLOCK(GLenum type)1690 LoadImageFunctionInfo COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_to_ETC2_R8G8B8A1_SRGB_BLOCK(
1691 GLenum type)
1692 {
1693 switch (type)
1694 {
1695 case GL_UNSIGNED_BYTE:
1696 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 8>, false);
1697 default:
1698 UNREACHABLE();
1699 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1700 }
1701 }
1702
COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_to_R8G8B8A8_UNORM_SRGB(GLenum type)1703 LoadImageFunctionInfo COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_to_R8G8B8A8_UNORM_SRGB(GLenum type)
1704 {
1705 switch (type)
1706 {
1707 case GL_UNSIGNED_BYTE:
1708 return LoadImageFunctionInfo(LoadETC2SRGB8A1ToRGBA8, true);
1709 default:
1710 UNREACHABLE();
1711 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1712 }
1713 }
1714
1715 LoadImageFunctionInfo
COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGBA_UNORM_SRGB_BLOCK(GLenum type)1716 COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGBA_UNORM_SRGB_BLOCK(
1717 GLenum type)
1718 {
1719 switch (type)
1720 {
1721 case GL_UNSIGNED_BYTE:
1722 return LoadImageFunctionInfo(LoadETC2SRGB8A1ToBC1, true);
1723 default:
1724 UNREACHABLE();
1725 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1726 }
1727 }
1728
COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT_to_default(GLenum type)1729 LoadImageFunctionInfo COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT_to_default(GLenum type)
1730 {
1731 switch (type)
1732 {
1733 case GL_UNSIGNED_BYTE:
1734 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
1735 default:
1736 UNREACHABLE();
1737 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1738 }
1739 }
1740
COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT_to_default(GLenum type)1741 LoadImageFunctionInfo COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT_to_default(GLenum type)
1742 {
1743 switch (type)
1744 {
1745 case GL_UNSIGNED_BYTE:
1746 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 8>, false);
1747 default:
1748 UNREACHABLE();
1749 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1750 }
1751 }
1752
COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT_to_default(GLenum type)1753 LoadImageFunctionInfo COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT_to_default(GLenum type)
1754 {
1755 switch (type)
1756 {
1757 case GL_UNSIGNED_BYTE:
1758 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
1759 default:
1760 UNREACHABLE();
1761 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1762 }
1763 }
1764
COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT_to_default(GLenum type)1765 LoadImageFunctionInfo COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT_to_default(GLenum type)
1766 {
1767 switch (type)
1768 {
1769 case GL_UNSIGNED_BYTE:
1770 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 16>, false);
1771 default:
1772 UNREACHABLE();
1773 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1774 }
1775 }
1776
COMPRESSED_SRGB_S3TC_DXT1_EXT_to_default(GLenum type)1777 LoadImageFunctionInfo COMPRESSED_SRGB_S3TC_DXT1_EXT_to_default(GLenum type)
1778 {
1779 switch (type)
1780 {
1781 case GL_UNSIGNED_BYTE:
1782 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 8>, false);
1783 default:
1784 UNREACHABLE();
1785 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1786 }
1787 }
1788
DEPTH24_STENCIL8_to_D24_UNORM_S8_UINT(GLenum type)1789 LoadImageFunctionInfo DEPTH24_STENCIL8_to_D24_UNORM_S8_UINT(GLenum type)
1790 {
1791 switch (type)
1792 {
1793 case GL_UNSIGNED_INT_24_8:
1794 return LoadImageFunctionInfo(LoadD24S8ToS8D24, true);
1795 default:
1796 UNREACHABLE();
1797 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1798 }
1799 }
1800
DEPTH24_STENCIL8_to_D32_FLOAT_S8X24_UINT(GLenum type)1801 LoadImageFunctionInfo DEPTH24_STENCIL8_to_D32_FLOAT_S8X24_UINT(GLenum type)
1802 {
1803 switch (type)
1804 {
1805 case GL_UNSIGNED_INT_24_8:
1806 return LoadImageFunctionInfo(LoadD24S8ToD32FS8X24, true);
1807 default:
1808 UNREACHABLE();
1809 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1810 }
1811 }
1812
DEPTH32F_STENCIL8_to_D24_UNORM_S8_UINT(GLenum type)1813 LoadImageFunctionInfo DEPTH32F_STENCIL8_to_D24_UNORM_S8_UINT(GLenum type)
1814 {
1815 switch (type)
1816 {
1817 case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:
1818 return LoadImageFunctionInfo(LoadD32FS8X24ToS8D24, true);
1819 default:
1820 UNREACHABLE();
1821 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1822 }
1823 }
1824
DEPTH32F_STENCIL8_to_D32_FLOAT_S8X24_UINT(GLenum type)1825 LoadImageFunctionInfo DEPTH32F_STENCIL8_to_D32_FLOAT_S8X24_UINT(GLenum type)
1826 {
1827 switch (type)
1828 {
1829 case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:
1830 return LoadImageFunctionInfo(LoadD32FS8X24ToD32FS8X24, true);
1831 default:
1832 UNREACHABLE();
1833 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1834 }
1835 }
1836
DEPTH_COMPONENT16_to_D16_UNORM(GLenum type)1837 LoadImageFunctionInfo DEPTH_COMPONENT16_to_D16_UNORM(GLenum type)
1838 {
1839 switch (type)
1840 {
1841 case GL_UNSIGNED_INT:
1842 return LoadImageFunctionInfo(LoadR32ToR16, true);
1843 case GL_UNSIGNED_SHORT:
1844 return LoadImageFunctionInfo(LoadToNative<GLushort, 1>, false);
1845 default:
1846 UNREACHABLE();
1847 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1848 }
1849 }
1850
DEPTH_COMPONENT16_to_D32_FLOAT(GLenum type)1851 LoadImageFunctionInfo DEPTH_COMPONENT16_to_D32_FLOAT(GLenum type)
1852 {
1853 switch (type)
1854 {
1855 case GL_UNSIGNED_INT:
1856 return LoadImageFunctionInfo(LoadD32ToD32F, true);
1857 case GL_UNSIGNED_SHORT:
1858 return LoadImageFunctionInfo(LoadD16ToD32F, true);
1859 default:
1860 UNREACHABLE();
1861 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1862 }
1863 }
1864
DEPTH_COMPONENT24_to_D24_UNORM_S8_UINT(GLenum type)1865 LoadImageFunctionInfo DEPTH_COMPONENT24_to_D24_UNORM_S8_UINT(GLenum type)
1866 {
1867 switch (type)
1868 {
1869 case GL_UNSIGNED_INT:
1870 return LoadImageFunctionInfo(LoadD32ToX8D24, true);
1871 default:
1872 UNREACHABLE();
1873 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1874 }
1875 }
1876
DEPTH_COMPONENT24_to_D24_UNORM_X8_UINT(GLenum type)1877 LoadImageFunctionInfo DEPTH_COMPONENT24_to_D24_UNORM_X8_UINT(GLenum type)
1878 {
1879 switch (type)
1880 {
1881 case GL_UNSIGNED_INT:
1882 return LoadImageFunctionInfo(LoadD32ToX8D24, true);
1883 default:
1884 UNREACHABLE();
1885 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1886 }
1887 }
1888
DEPTH_COMPONENT24_to_D32_FLOAT(GLenum type)1889 LoadImageFunctionInfo DEPTH_COMPONENT24_to_D32_FLOAT(GLenum type)
1890 {
1891 switch (type)
1892 {
1893 case GL_UNSIGNED_INT:
1894 return LoadImageFunctionInfo(LoadD32ToD32F, true);
1895 default:
1896 UNREACHABLE();
1897 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1898 }
1899 }
1900
DEPTH_COMPONENT24_to_D32_FLOAT_S8X24_UINT(GLenum type)1901 LoadImageFunctionInfo DEPTH_COMPONENT24_to_D32_FLOAT_S8X24_UINT(GLenum type)
1902 {
1903 switch (type)
1904 {
1905 case GL_UNSIGNED_INT:
1906 return LoadImageFunctionInfo(LoadD32ToD32FX32, true);
1907 case GL_UNSIGNED_INT_24_8:
1908 return LoadImageFunctionInfo(LoadD24S8ToD32FS8X24, true);
1909 default:
1910 UNREACHABLE();
1911 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1912 }
1913 }
1914
DEPTH_COMPONENT32F_to_D32_FLOAT(GLenum type)1915 LoadImageFunctionInfo DEPTH_COMPONENT32F_to_D32_FLOAT(GLenum type)
1916 {
1917 switch (type)
1918 {
1919 case GL_FLOAT:
1920 return LoadImageFunctionInfo(LoadD32FToD32F, true);
1921 default:
1922 UNREACHABLE();
1923 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1924 }
1925 }
1926
DEPTH_COMPONENT32_OES_to_D32_FLOAT(GLenum type)1927 LoadImageFunctionInfo DEPTH_COMPONENT32_OES_to_D32_FLOAT(GLenum type)
1928 {
1929 switch (type)
1930 {
1931 case GL_UNSIGNED_INT:
1932 return LoadImageFunctionInfo(LoadD32ToD32F, true);
1933 default:
1934 UNREACHABLE();
1935 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1936 }
1937 }
1938
DEPTH_COMPONENT32_OES_to_default(GLenum type)1939 LoadImageFunctionInfo DEPTH_COMPONENT32_OES_to_default(GLenum type)
1940 {
1941 switch (type)
1942 {
1943 case GL_UNSIGNED_INT:
1944 return LoadImageFunctionInfo(LoadD32ToX8D24, true);
1945 default:
1946 UNREACHABLE();
1947 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1948 }
1949 }
1950
ETC1_RGB8_LOSSY_DECODE_ANGLE_to_BC1_RGB_UNORM_BLOCK(GLenum type)1951 LoadImageFunctionInfo ETC1_RGB8_LOSSY_DECODE_ANGLE_to_BC1_RGB_UNORM_BLOCK(GLenum type)
1952 {
1953 switch (type)
1954 {
1955 case GL_UNSIGNED_BYTE:
1956 return LoadImageFunctionInfo(LoadETC1RGB8ToBC1, true);
1957 default:
1958 UNREACHABLE();
1959 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1960 }
1961 }
1962
ETC1_RGB8_OES_to_ETC1_R8G8B8_UNORM_BLOCK(GLenum type)1963 LoadImageFunctionInfo ETC1_RGB8_OES_to_ETC1_R8G8B8_UNORM_BLOCK(GLenum type)
1964 {
1965 switch (type)
1966 {
1967 case GL_UNSIGNED_BYTE:
1968 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 8>, false);
1969 default:
1970 UNREACHABLE();
1971 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1972 }
1973 }
1974
ETC1_RGB8_OES_to_ETC2_R8G8B8_UNORM_BLOCK(GLenum type)1975 LoadImageFunctionInfo ETC1_RGB8_OES_to_ETC2_R8G8B8_UNORM_BLOCK(GLenum type)
1976 {
1977 switch (type)
1978 {
1979 case GL_UNSIGNED_BYTE:
1980 return LoadImageFunctionInfo(LoadCompressedToNative<4, 4, 1, 8>, false);
1981 default:
1982 UNREACHABLE();
1983 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1984 }
1985 }
1986
ETC1_RGB8_OES_to_R8G8B8A8_UNORM(GLenum type)1987 LoadImageFunctionInfo ETC1_RGB8_OES_to_R8G8B8A8_UNORM(GLenum type)
1988 {
1989 switch (type)
1990 {
1991 case GL_UNSIGNED_BYTE:
1992 return LoadImageFunctionInfo(LoadETC1RGB8ToRGBA8, true);
1993 default:
1994 UNREACHABLE();
1995 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
1996 }
1997 }
1998
G8_B8R8_2PLANE_420_UNORM_ANGLE_to_default(GLenum type)1999 LoadImageFunctionInfo G8_B8R8_2PLANE_420_UNORM_ANGLE_to_default(GLenum type)
2000 {
2001 switch (type)
2002 {
2003 case GL_UNSIGNED_BYTE:
2004 return LoadImageFunctionInfo(LoadYuvToNative, true);
2005 default:
2006 UNREACHABLE();
2007 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2008 }
2009 }
2010
G8_B8_R8_3PLANE_420_UNORM_ANGLE_to_default(GLenum type)2011 LoadImageFunctionInfo G8_B8_R8_3PLANE_420_UNORM_ANGLE_to_default(GLenum type)
2012 {
2013 switch (type)
2014 {
2015 case GL_UNSIGNED_BYTE:
2016 return LoadImageFunctionInfo(UnimplementedLoadFunction, true);
2017 default:
2018 UNREACHABLE();
2019 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2020 }
2021 }
2022
LUMINANCE_to_R16G16B16A16_FLOAT(GLenum type)2023 LoadImageFunctionInfo LUMINANCE_to_R16G16B16A16_FLOAT(GLenum type)
2024 {
2025 switch (type)
2026 {
2027 case GL_HALF_FLOAT:
2028 return LoadImageFunctionInfo(LoadL16FToRGBA16F, true);
2029 case GL_HALF_FLOAT_OES:
2030 return LoadImageFunctionInfo(LoadL16FToRGBA16F, true);
2031 case GL_UNSIGNED_BYTE:
2032 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2033 default:
2034 UNREACHABLE();
2035 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2036 }
2037 }
2038
LUMINANCE_to_R32G32B32A32_FLOAT(GLenum type)2039 LoadImageFunctionInfo LUMINANCE_to_R32G32B32A32_FLOAT(GLenum type)
2040 {
2041 switch (type)
2042 {
2043 case GL_FLOAT:
2044 return LoadImageFunctionInfo(LoadL32FToRGBA32F, true);
2045 case GL_UNSIGNED_BYTE:
2046 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2047 default:
2048 UNREACHABLE();
2049 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2050 }
2051 }
2052
LUMINANCE_to_default(GLenum type)2053 LoadImageFunctionInfo LUMINANCE_to_default(GLenum type)
2054 {
2055 switch (type)
2056 {
2057 case GL_UNSIGNED_BYTE:
2058 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2059 default:
2060 UNREACHABLE();
2061 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2062 }
2063 }
2064
LUMINANCE16F_EXT_to_R16_FLOAT(GLenum type)2065 LoadImageFunctionInfo LUMINANCE16F_EXT_to_R16_FLOAT(GLenum type)
2066 {
2067 switch (type)
2068 {
2069 case GL_HALF_FLOAT:
2070 return LoadImageFunctionInfo(LoadToNative<GLhalf, 1>, false);
2071 case GL_HALF_FLOAT_OES:
2072 return LoadImageFunctionInfo(LoadToNative<GLhalf, 1>, false);
2073 default:
2074 UNREACHABLE();
2075 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2076 }
2077 }
2078
LUMINANCE16F_EXT_to_default(GLenum type)2079 LoadImageFunctionInfo LUMINANCE16F_EXT_to_default(GLenum type)
2080 {
2081 switch (type)
2082 {
2083 case GL_HALF_FLOAT:
2084 return LoadImageFunctionInfo(LoadL16FToRGBA16F, true);
2085 case GL_HALF_FLOAT_OES:
2086 return LoadImageFunctionInfo(LoadL16FToRGBA16F, true);
2087 default:
2088 UNREACHABLE();
2089 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2090 }
2091 }
2092
LUMINANCE32F_EXT_to_R32_FLOAT(GLenum type)2093 LoadImageFunctionInfo LUMINANCE32F_EXT_to_R32_FLOAT(GLenum type)
2094 {
2095 switch (type)
2096 {
2097 case GL_FLOAT:
2098 return LoadImageFunctionInfo(LoadToNative<GLfloat, 1>, false);
2099 default:
2100 UNREACHABLE();
2101 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2102 }
2103 }
2104
LUMINANCE32F_EXT_to_default(GLenum type)2105 LoadImageFunctionInfo LUMINANCE32F_EXT_to_default(GLenum type)
2106 {
2107 switch (type)
2108 {
2109 case GL_FLOAT:
2110 return LoadImageFunctionInfo(LoadL32FToRGBA32F, true);
2111 default:
2112 UNREACHABLE();
2113 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2114 }
2115 }
2116
LUMINANCE8_ALPHA8_EXT_to_R8G8B8A8_UNORM(GLenum type)2117 LoadImageFunctionInfo LUMINANCE8_ALPHA8_EXT_to_R8G8B8A8_UNORM(GLenum type)
2118 {
2119 switch (type)
2120 {
2121 case GL_UNSIGNED_BYTE:
2122 return LoadImageFunctionInfo(LoadLA8ToRGBA8, true);
2123 default:
2124 UNREACHABLE();
2125 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2126 }
2127 }
2128
LUMINANCE8_ALPHA8_EXT_to_R8G8_UNORM(GLenum type)2129 LoadImageFunctionInfo LUMINANCE8_ALPHA8_EXT_to_R8G8_UNORM(GLenum type)
2130 {
2131 switch (type)
2132 {
2133 case GL_UNSIGNED_BYTE:
2134 return LoadImageFunctionInfo(LoadToNative<GLubyte, 2>, false);
2135 default:
2136 UNREACHABLE();
2137 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2138 }
2139 }
2140
LUMINANCE8_EXT_to_R8G8B8A8_UNORM(GLenum type)2141 LoadImageFunctionInfo LUMINANCE8_EXT_to_R8G8B8A8_UNORM(GLenum type)
2142 {
2143 switch (type)
2144 {
2145 case GL_UNSIGNED_BYTE:
2146 return LoadImageFunctionInfo(LoadL8ToRGBA8, true);
2147 default:
2148 UNREACHABLE();
2149 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2150 }
2151 }
2152
LUMINANCE8_EXT_to_R8_UNORM(GLenum type)2153 LoadImageFunctionInfo LUMINANCE8_EXT_to_R8_UNORM(GLenum type)
2154 {
2155 switch (type)
2156 {
2157 case GL_UNSIGNED_BYTE:
2158 return LoadImageFunctionInfo(LoadToNative<GLubyte, 1>, false);
2159 default:
2160 UNREACHABLE();
2161 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2162 }
2163 }
2164
LUMINANCE_ALPHA_to_R16G16B16A16_FLOAT(GLenum type)2165 LoadImageFunctionInfo LUMINANCE_ALPHA_to_R16G16B16A16_FLOAT(GLenum type)
2166 {
2167 switch (type)
2168 {
2169 case GL_HALF_FLOAT:
2170 return LoadImageFunctionInfo(LoadLA16FToRGBA16F, true);
2171 case GL_HALF_FLOAT_OES:
2172 return LoadImageFunctionInfo(LoadLA16FToRGBA16F, true);
2173 case GL_UNSIGNED_BYTE:
2174 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2175 default:
2176 UNREACHABLE();
2177 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2178 }
2179 }
2180
LUMINANCE_ALPHA_to_R32G32B32A32_FLOAT(GLenum type)2181 LoadImageFunctionInfo LUMINANCE_ALPHA_to_R32G32B32A32_FLOAT(GLenum type)
2182 {
2183 switch (type)
2184 {
2185 case GL_FLOAT:
2186 return LoadImageFunctionInfo(LoadLA32FToRGBA32F, true);
2187 case GL_UNSIGNED_BYTE:
2188 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2189 default:
2190 UNREACHABLE();
2191 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2192 }
2193 }
2194
LUMINANCE_ALPHA_to_default(GLenum type)2195 LoadImageFunctionInfo LUMINANCE_ALPHA_to_default(GLenum type)
2196 {
2197 switch (type)
2198 {
2199 case GL_UNSIGNED_BYTE:
2200 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2201 default:
2202 UNREACHABLE();
2203 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2204 }
2205 }
2206
LUMINANCE_ALPHA16F_EXT_to_R16G16_FLOAT(GLenum type)2207 LoadImageFunctionInfo LUMINANCE_ALPHA16F_EXT_to_R16G16_FLOAT(GLenum type)
2208 {
2209 switch (type)
2210 {
2211 case GL_HALF_FLOAT:
2212 return LoadImageFunctionInfo(LoadToNative<GLhalf, 2>, false);
2213 case GL_HALF_FLOAT_OES:
2214 return LoadImageFunctionInfo(LoadToNative<GLhalf, 2>, false);
2215 default:
2216 UNREACHABLE();
2217 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2218 }
2219 }
2220
LUMINANCE_ALPHA16F_EXT_to_default(GLenum type)2221 LoadImageFunctionInfo LUMINANCE_ALPHA16F_EXT_to_default(GLenum type)
2222 {
2223 switch (type)
2224 {
2225 case GL_HALF_FLOAT:
2226 return LoadImageFunctionInfo(LoadLA16FToRGBA16F, true);
2227 case GL_HALF_FLOAT_OES:
2228 return LoadImageFunctionInfo(LoadLA16FToRGBA16F, true);
2229 default:
2230 UNREACHABLE();
2231 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2232 }
2233 }
2234
LUMINANCE_ALPHA32F_EXT_to_R32G32_FLOAT(GLenum type)2235 LoadImageFunctionInfo LUMINANCE_ALPHA32F_EXT_to_R32G32_FLOAT(GLenum type)
2236 {
2237 switch (type)
2238 {
2239 case GL_FLOAT:
2240 return LoadImageFunctionInfo(LoadToNative<GLfloat, 2>, false);
2241 default:
2242 UNREACHABLE();
2243 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2244 }
2245 }
2246
LUMINANCE_ALPHA32F_EXT_to_default(GLenum type)2247 LoadImageFunctionInfo LUMINANCE_ALPHA32F_EXT_to_default(GLenum type)
2248 {
2249 switch (type)
2250 {
2251 case GL_FLOAT:
2252 return LoadImageFunctionInfo(LoadLA32FToRGBA32F, true);
2253 default:
2254 UNREACHABLE();
2255 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2256 }
2257 }
2258
PALETTE4_R5_G6_B5_OES_to_R8G8B8A8_UNORM(GLenum type)2259 LoadImageFunctionInfo PALETTE4_R5_G6_B5_OES_to_R8G8B8A8_UNORM(GLenum type)
2260 {
2261 switch (type)
2262 {
2263 case GL_UNSIGNED_BYTE:
2264 return LoadImageFunctionInfo(LoadPalettedToRGBA8<4, 5, 6, 0>, true);
2265 default:
2266 UNREACHABLE();
2267 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2268 }
2269 }
2270
PALETTE4_RGB5_A1_OES_to_R8G8B8A8_UNORM(GLenum type)2271 LoadImageFunctionInfo PALETTE4_RGB5_A1_OES_to_R8G8B8A8_UNORM(GLenum type)
2272 {
2273 switch (type)
2274 {
2275 case GL_UNSIGNED_BYTE:
2276 return LoadImageFunctionInfo(LoadPalettedToRGBA8<4, 5, 5, 1>, true);
2277 default:
2278 UNREACHABLE();
2279 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2280 }
2281 }
2282
PALETTE4_RGB8_OES_to_R8G8B8A8_UNORM(GLenum type)2283 LoadImageFunctionInfo PALETTE4_RGB8_OES_to_R8G8B8A8_UNORM(GLenum type)
2284 {
2285 switch (type)
2286 {
2287 case GL_UNSIGNED_BYTE:
2288 return LoadImageFunctionInfo(LoadPalettedToRGBA8<4, 8, 8, 0>, true);
2289 default:
2290 UNREACHABLE();
2291 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2292 }
2293 }
2294
PALETTE4_RGBA4_OES_to_R8G8B8A8_UNORM(GLenum type)2295 LoadImageFunctionInfo PALETTE4_RGBA4_OES_to_R8G8B8A8_UNORM(GLenum type)
2296 {
2297 switch (type)
2298 {
2299 case GL_UNSIGNED_BYTE:
2300 return LoadImageFunctionInfo(LoadPalettedToRGBA8<4, 4, 4, 4>, true);
2301 default:
2302 UNREACHABLE();
2303 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2304 }
2305 }
2306
PALETTE4_RGBA8_OES_to_R8G8B8A8_UNORM(GLenum type)2307 LoadImageFunctionInfo PALETTE4_RGBA8_OES_to_R8G8B8A8_UNORM(GLenum type)
2308 {
2309 switch (type)
2310 {
2311 case GL_UNSIGNED_BYTE:
2312 return LoadImageFunctionInfo(LoadPalettedToRGBA8<4, 8, 8, 8>, true);
2313 default:
2314 UNREACHABLE();
2315 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2316 }
2317 }
2318
PALETTE8_R5_G6_B5_OES_to_R8G8B8A8_UNORM(GLenum type)2319 LoadImageFunctionInfo PALETTE8_R5_G6_B5_OES_to_R8G8B8A8_UNORM(GLenum type)
2320 {
2321 switch (type)
2322 {
2323 case GL_UNSIGNED_BYTE:
2324 return LoadImageFunctionInfo(LoadPalettedToRGBA8<8, 5, 6, 0>, true);
2325 default:
2326 UNREACHABLE();
2327 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2328 }
2329 }
2330
PALETTE8_RGB5_A1_OES_to_R8G8B8A8_UNORM(GLenum type)2331 LoadImageFunctionInfo PALETTE8_RGB5_A1_OES_to_R8G8B8A8_UNORM(GLenum type)
2332 {
2333 switch (type)
2334 {
2335 case GL_UNSIGNED_BYTE:
2336 return LoadImageFunctionInfo(LoadPalettedToRGBA8<8, 5, 5, 1>, true);
2337 default:
2338 UNREACHABLE();
2339 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2340 }
2341 }
2342
PALETTE8_RGB8_OES_to_R8G8B8A8_UNORM(GLenum type)2343 LoadImageFunctionInfo PALETTE8_RGB8_OES_to_R8G8B8A8_UNORM(GLenum type)
2344 {
2345 switch (type)
2346 {
2347 case GL_UNSIGNED_BYTE:
2348 return LoadImageFunctionInfo(LoadPalettedToRGBA8<8, 8, 8, 0>, true);
2349 default:
2350 UNREACHABLE();
2351 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2352 }
2353 }
2354
PALETTE8_RGBA4_OES_to_R8G8B8A8_UNORM(GLenum type)2355 LoadImageFunctionInfo PALETTE8_RGBA4_OES_to_R8G8B8A8_UNORM(GLenum type)
2356 {
2357 switch (type)
2358 {
2359 case GL_UNSIGNED_BYTE:
2360 return LoadImageFunctionInfo(LoadPalettedToRGBA8<8, 4, 4, 4>, true);
2361 default:
2362 UNREACHABLE();
2363 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2364 }
2365 }
2366
PALETTE8_RGBA8_OES_to_R8G8B8A8_UNORM(GLenum type)2367 LoadImageFunctionInfo PALETTE8_RGBA8_OES_to_R8G8B8A8_UNORM(GLenum type)
2368 {
2369 switch (type)
2370 {
2371 case GL_UNSIGNED_BYTE:
2372 return LoadImageFunctionInfo(LoadPalettedToRGBA8<8, 8, 8, 8>, true);
2373 default:
2374 UNREACHABLE();
2375 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2376 }
2377 }
2378
R11F_G11F_B10F_to_R11G11B10_FLOAT(GLenum type)2379 LoadImageFunctionInfo R11F_G11F_B10F_to_R11G11B10_FLOAT(GLenum type)
2380 {
2381 switch (type)
2382 {
2383 case GL_FLOAT:
2384 return LoadImageFunctionInfo(LoadRGB32FToRG11B10F, true);
2385 case GL_HALF_FLOAT:
2386 return LoadImageFunctionInfo(LoadRGB16FToRG11B10F, true);
2387 case GL_HALF_FLOAT_OES:
2388 return LoadImageFunctionInfo(LoadRGB16FToRG11B10F, true);
2389 case GL_UNSIGNED_INT_10F_11F_11F_REV:
2390 return LoadImageFunctionInfo(LoadToNative<GLuint, 1>, false);
2391 default:
2392 UNREACHABLE();
2393 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2394 }
2395 }
2396
R16F_to_R16_FLOAT(GLenum type)2397 LoadImageFunctionInfo R16F_to_R16_FLOAT(GLenum type)
2398 {
2399 switch (type)
2400 {
2401 case GL_FLOAT:
2402 return LoadImageFunctionInfo(Load32FTo16F<1>, true);
2403 case GL_HALF_FLOAT:
2404 return LoadImageFunctionInfo(LoadToNative<GLhalf, 1>, false);
2405 case GL_HALF_FLOAT_OES:
2406 return LoadImageFunctionInfo(LoadToNative<GLhalf, 1>, false);
2407 default:
2408 UNREACHABLE();
2409 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2410 }
2411 }
2412
R16I_to_R16_SINT(GLenum type)2413 LoadImageFunctionInfo R16I_to_R16_SINT(GLenum type)
2414 {
2415 switch (type)
2416 {
2417 case GL_SHORT:
2418 return LoadImageFunctionInfo(LoadToNative<GLshort, 1>, false);
2419 default:
2420 UNREACHABLE();
2421 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2422 }
2423 }
2424
R16UI_to_R16_UINT(GLenum type)2425 LoadImageFunctionInfo R16UI_to_R16_UINT(GLenum type)
2426 {
2427 switch (type)
2428 {
2429 case GL_UNSIGNED_SHORT:
2430 return LoadImageFunctionInfo(LoadToNative<GLushort, 1>, false);
2431 default:
2432 UNREACHABLE();
2433 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2434 }
2435 }
2436
R16_EXT_to_R16_UNORM(GLenum type)2437 LoadImageFunctionInfo R16_EXT_to_R16_UNORM(GLenum type)
2438 {
2439 switch (type)
2440 {
2441 case GL_UNSIGNED_SHORT:
2442 return LoadImageFunctionInfo(LoadToNative<GLushort, 1>, false);
2443 default:
2444 UNREACHABLE();
2445 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2446 }
2447 }
2448
R16_SNORM_EXT_to_R16_SNORM(GLenum type)2449 LoadImageFunctionInfo R16_SNORM_EXT_to_R16_SNORM(GLenum type)
2450 {
2451 switch (type)
2452 {
2453 case GL_SHORT:
2454 return LoadImageFunctionInfo(LoadToNative<GLushort, 1>, false);
2455 default:
2456 UNREACHABLE();
2457 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2458 }
2459 }
2460
R16_SSCALED_ANGLEX_to_default(GLenum type)2461 LoadImageFunctionInfo R16_SSCALED_ANGLEX_to_default(GLenum type)
2462 {
2463 switch (type)
2464 {
2465 case GL_UNSIGNED_BYTE:
2466 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2467 default:
2468 UNREACHABLE();
2469 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2470 }
2471 }
2472
R16_USCALED_ANGLEX_to_default(GLenum type)2473 LoadImageFunctionInfo R16_USCALED_ANGLEX_to_default(GLenum type)
2474 {
2475 switch (type)
2476 {
2477 case GL_UNSIGNED_BYTE:
2478 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2479 default:
2480 UNREACHABLE();
2481 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2482 }
2483 }
2484
R32F_to_R32_FLOAT(GLenum type)2485 LoadImageFunctionInfo R32F_to_R32_FLOAT(GLenum type)
2486 {
2487 switch (type)
2488 {
2489 case GL_FLOAT:
2490 return LoadImageFunctionInfo(LoadToNative<GLfloat, 1>, false);
2491 default:
2492 UNREACHABLE();
2493 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2494 }
2495 }
2496
R32I_to_R32_SINT(GLenum type)2497 LoadImageFunctionInfo R32I_to_R32_SINT(GLenum type)
2498 {
2499 switch (type)
2500 {
2501 case GL_INT:
2502 return LoadImageFunctionInfo(LoadToNative<GLint, 1>, false);
2503 default:
2504 UNREACHABLE();
2505 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2506 }
2507 }
2508
R32UI_to_R32_UINT(GLenum type)2509 LoadImageFunctionInfo R32UI_to_R32_UINT(GLenum type)
2510 {
2511 switch (type)
2512 {
2513 case GL_UNSIGNED_INT:
2514 return LoadImageFunctionInfo(LoadToNative<GLuint, 1>, false);
2515 default:
2516 UNREACHABLE();
2517 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2518 }
2519 }
2520
R8_to_R8_UNORM(GLenum type)2521 LoadImageFunctionInfo R8_to_R8_UNORM(GLenum type)
2522 {
2523 switch (type)
2524 {
2525 case GL_UNSIGNED_BYTE:
2526 return LoadImageFunctionInfo(LoadToNative<GLubyte, 1>, false);
2527 default:
2528 UNREACHABLE();
2529 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2530 }
2531 }
2532
R8I_to_R8_SINT(GLenum type)2533 LoadImageFunctionInfo R8I_to_R8_SINT(GLenum type)
2534 {
2535 switch (type)
2536 {
2537 case GL_BYTE:
2538 return LoadImageFunctionInfo(LoadToNative<GLbyte, 1>, false);
2539 default:
2540 UNREACHABLE();
2541 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2542 }
2543 }
2544
R8UI_to_R8_UINT(GLenum type)2545 LoadImageFunctionInfo R8UI_to_R8_UINT(GLenum type)
2546 {
2547 switch (type)
2548 {
2549 case GL_UNSIGNED_BYTE:
2550 return LoadImageFunctionInfo(LoadToNative<GLubyte, 1>, false);
2551 default:
2552 UNREACHABLE();
2553 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2554 }
2555 }
2556
R8_SNORM_to_R8_SNORM(GLenum type)2557 LoadImageFunctionInfo R8_SNORM_to_R8_SNORM(GLenum type)
2558 {
2559 switch (type)
2560 {
2561 case GL_BYTE:
2562 return LoadImageFunctionInfo(LoadToNative<GLbyte, 1>, false);
2563 default:
2564 UNREACHABLE();
2565 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2566 }
2567 }
2568
R8_SSCALED_ANGLEX_to_default(GLenum type)2569 LoadImageFunctionInfo R8_SSCALED_ANGLEX_to_default(GLenum type)
2570 {
2571 switch (type)
2572 {
2573 case GL_UNSIGNED_BYTE:
2574 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2575 default:
2576 UNREACHABLE();
2577 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2578 }
2579 }
2580
R8_USCALED_ANGLEX_to_default(GLenum type)2581 LoadImageFunctionInfo R8_USCALED_ANGLEX_to_default(GLenum type)
2582 {
2583 switch (type)
2584 {
2585 case GL_UNSIGNED_BYTE:
2586 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2587 default:
2588 UNREACHABLE();
2589 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2590 }
2591 }
2592
RG16F_to_R16G16_FLOAT(GLenum type)2593 LoadImageFunctionInfo RG16F_to_R16G16_FLOAT(GLenum type)
2594 {
2595 switch (type)
2596 {
2597 case GL_FLOAT:
2598 return LoadImageFunctionInfo(Load32FTo16F<2>, true);
2599 case GL_HALF_FLOAT:
2600 return LoadImageFunctionInfo(LoadToNative<GLhalf, 2>, false);
2601 case GL_HALF_FLOAT_OES:
2602 return LoadImageFunctionInfo(LoadToNative<GLhalf, 2>, false);
2603 default:
2604 UNREACHABLE();
2605 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2606 }
2607 }
2608
RG16I_to_R16G16_SINT(GLenum type)2609 LoadImageFunctionInfo RG16I_to_R16G16_SINT(GLenum type)
2610 {
2611 switch (type)
2612 {
2613 case GL_SHORT:
2614 return LoadImageFunctionInfo(LoadToNative<GLshort, 2>, false);
2615 default:
2616 UNREACHABLE();
2617 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2618 }
2619 }
2620
RG16UI_to_R16G16_UINT(GLenum type)2621 LoadImageFunctionInfo RG16UI_to_R16G16_UINT(GLenum type)
2622 {
2623 switch (type)
2624 {
2625 case GL_UNSIGNED_SHORT:
2626 return LoadImageFunctionInfo(LoadToNative<GLushort, 2>, false);
2627 default:
2628 UNREACHABLE();
2629 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2630 }
2631 }
2632
RG16_EXT_to_R16G16_UNORM(GLenum type)2633 LoadImageFunctionInfo RG16_EXT_to_R16G16_UNORM(GLenum type)
2634 {
2635 switch (type)
2636 {
2637 case GL_UNSIGNED_SHORT:
2638 return LoadImageFunctionInfo(LoadToNative<GLushort, 2>, false);
2639 default:
2640 UNREACHABLE();
2641 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2642 }
2643 }
2644
RG16_SNORM_EXT_to_R16G16_SNORM(GLenum type)2645 LoadImageFunctionInfo RG16_SNORM_EXT_to_R16G16_SNORM(GLenum type)
2646 {
2647 switch (type)
2648 {
2649 case GL_SHORT:
2650 return LoadImageFunctionInfo(LoadToNative<GLushort, 2>, false);
2651 default:
2652 UNREACHABLE();
2653 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2654 }
2655 }
2656
RG16_SSCALED_ANGLEX_to_default(GLenum type)2657 LoadImageFunctionInfo RG16_SSCALED_ANGLEX_to_default(GLenum type)
2658 {
2659 switch (type)
2660 {
2661 case GL_UNSIGNED_BYTE:
2662 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2663 default:
2664 UNREACHABLE();
2665 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2666 }
2667 }
2668
RG16_USCALED_ANGLEX_to_default(GLenum type)2669 LoadImageFunctionInfo RG16_USCALED_ANGLEX_to_default(GLenum type)
2670 {
2671 switch (type)
2672 {
2673 case GL_UNSIGNED_BYTE:
2674 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2675 default:
2676 UNREACHABLE();
2677 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2678 }
2679 }
2680
RG32F_to_R32G32_FLOAT(GLenum type)2681 LoadImageFunctionInfo RG32F_to_R32G32_FLOAT(GLenum type)
2682 {
2683 switch (type)
2684 {
2685 case GL_FLOAT:
2686 return LoadImageFunctionInfo(LoadToNative<GLfloat, 2>, false);
2687 default:
2688 UNREACHABLE();
2689 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2690 }
2691 }
2692
RG32I_to_R32G32_SINT(GLenum type)2693 LoadImageFunctionInfo RG32I_to_R32G32_SINT(GLenum type)
2694 {
2695 switch (type)
2696 {
2697 case GL_INT:
2698 return LoadImageFunctionInfo(LoadToNative<GLint, 2>, false);
2699 default:
2700 UNREACHABLE();
2701 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2702 }
2703 }
2704
RG32UI_to_R32G32_UINT(GLenum type)2705 LoadImageFunctionInfo RG32UI_to_R32G32_UINT(GLenum type)
2706 {
2707 switch (type)
2708 {
2709 case GL_UNSIGNED_INT:
2710 return LoadImageFunctionInfo(LoadToNative<GLuint, 2>, false);
2711 default:
2712 UNREACHABLE();
2713 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2714 }
2715 }
2716
RG8_to_R8G8_UNORM(GLenum type)2717 LoadImageFunctionInfo RG8_to_R8G8_UNORM(GLenum type)
2718 {
2719 switch (type)
2720 {
2721 case GL_UNSIGNED_BYTE:
2722 return LoadImageFunctionInfo(LoadToNative<GLubyte, 2>, false);
2723 default:
2724 UNREACHABLE();
2725 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2726 }
2727 }
2728
RG8I_to_R8G8_SINT(GLenum type)2729 LoadImageFunctionInfo RG8I_to_R8G8_SINT(GLenum type)
2730 {
2731 switch (type)
2732 {
2733 case GL_BYTE:
2734 return LoadImageFunctionInfo(LoadToNative<GLbyte, 2>, false);
2735 default:
2736 UNREACHABLE();
2737 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2738 }
2739 }
2740
RG8UI_to_R8G8_UINT(GLenum type)2741 LoadImageFunctionInfo RG8UI_to_R8G8_UINT(GLenum type)
2742 {
2743 switch (type)
2744 {
2745 case GL_UNSIGNED_BYTE:
2746 return LoadImageFunctionInfo(LoadToNative<GLubyte, 2>, false);
2747 default:
2748 UNREACHABLE();
2749 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2750 }
2751 }
2752
RG8_SNORM_to_R8G8_SNORM(GLenum type)2753 LoadImageFunctionInfo RG8_SNORM_to_R8G8_SNORM(GLenum type)
2754 {
2755 switch (type)
2756 {
2757 case GL_BYTE:
2758 return LoadImageFunctionInfo(LoadToNative<GLbyte, 2>, false);
2759 default:
2760 UNREACHABLE();
2761 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2762 }
2763 }
2764
RG8_SSCALED_ANGLEX_to_default(GLenum type)2765 LoadImageFunctionInfo RG8_SSCALED_ANGLEX_to_default(GLenum type)
2766 {
2767 switch (type)
2768 {
2769 case GL_UNSIGNED_BYTE:
2770 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2771 default:
2772 UNREACHABLE();
2773 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2774 }
2775 }
2776
RG8_USCALED_ANGLEX_to_default(GLenum type)2777 LoadImageFunctionInfo RG8_USCALED_ANGLEX_to_default(GLenum type)
2778 {
2779 switch (type)
2780 {
2781 case GL_UNSIGNED_BYTE:
2782 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2783 default:
2784 UNREACHABLE();
2785 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2786 }
2787 }
2788
RGB_to_default(GLenum type)2789 LoadImageFunctionInfo RGB_to_default(GLenum type)
2790 {
2791 switch (type)
2792 {
2793 case GL_UNSIGNED_BYTE:
2794 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2795 case GL_UNSIGNED_SHORT_5_6_5:
2796 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2797 default:
2798 UNREACHABLE();
2799 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2800 }
2801 }
2802
RGB10_A2_to_R10G10B10A2_UNORM(GLenum type)2803 LoadImageFunctionInfo RGB10_A2_to_R10G10B10A2_UNORM(GLenum type)
2804 {
2805 switch (type)
2806 {
2807 case GL_UNSIGNED_INT_2_10_10_10_REV:
2808 return LoadImageFunctionInfo(LoadToNative<GLuint, 1>, false);
2809 default:
2810 UNREACHABLE();
2811 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2812 }
2813 }
2814
RGB10_A2UI_to_R10G10B10A2_UINT(GLenum type)2815 LoadImageFunctionInfo RGB10_A2UI_to_R10G10B10A2_UINT(GLenum type)
2816 {
2817 switch (type)
2818 {
2819 case GL_UNSIGNED_INT_2_10_10_10_REV:
2820 return LoadImageFunctionInfo(LoadToNative<GLuint, 1>, false);
2821 default:
2822 UNREACHABLE();
2823 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2824 }
2825 }
2826
RGB10_A2_SINT_ANGLEX_to_R10G10B10A2_SINT(GLenum type)2827 LoadImageFunctionInfo RGB10_A2_SINT_ANGLEX_to_R10G10B10A2_SINT(GLenum type)
2828 {
2829 switch (type)
2830 {
2831 case GL_UNSIGNED_BYTE:
2832 return LoadImageFunctionInfo(LoadRGB10A2ToRGBA8, true);
2833 case GL_UNSIGNED_INT_2_10_10_10_REV:
2834 return LoadImageFunctionInfo(LoadToNative<GLuint, 1>, false);
2835 default:
2836 UNREACHABLE();
2837 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2838 }
2839 }
2840
RGB10_A2_SNORM_ANGLEX_to_R10G10B10A2_SNORM(GLenum type)2841 LoadImageFunctionInfo RGB10_A2_SNORM_ANGLEX_to_R10G10B10A2_SNORM(GLenum type)
2842 {
2843 switch (type)
2844 {
2845 case GL_UNSIGNED_BYTE:
2846 return LoadImageFunctionInfo(LoadRGB10A2ToRGBA8, true);
2847 case GL_UNSIGNED_INT_2_10_10_10_REV:
2848 return LoadImageFunctionInfo(LoadToNative<GLuint, 1>, false);
2849 default:
2850 UNREACHABLE();
2851 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2852 }
2853 }
2854
RGB10_A2_SSCALED_ANGLEX_to_default(GLenum type)2855 LoadImageFunctionInfo RGB10_A2_SSCALED_ANGLEX_to_default(GLenum type)
2856 {
2857 switch (type)
2858 {
2859 case GL_UNSIGNED_BYTE:
2860 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2861 default:
2862 UNREACHABLE();
2863 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2864 }
2865 }
2866
RGB10_A2_USCALED_ANGLEX_to_default(GLenum type)2867 LoadImageFunctionInfo RGB10_A2_USCALED_ANGLEX_to_default(GLenum type)
2868 {
2869 switch (type)
2870 {
2871 case GL_UNSIGNED_BYTE:
2872 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2873 default:
2874 UNREACHABLE();
2875 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2876 }
2877 }
2878
RGB10_UNORM_ANGLEX_to_R10G10B10A2_UNORM(GLenum type)2879 LoadImageFunctionInfo RGB10_UNORM_ANGLEX_to_R10G10B10A2_UNORM(GLenum type)
2880 {
2881 switch (type)
2882 {
2883 case GL_UNSIGNED_INT_2_10_10_10_REV:
2884 return LoadImageFunctionInfo(LoadRGB10A2ToRGB10X2, true);
2885 default:
2886 UNREACHABLE();
2887 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2888 }
2889 }
2890
RGB10_UNORM_ANGLEX_to_R10G10B10X2_UNORM(GLenum type)2891 LoadImageFunctionInfo RGB10_UNORM_ANGLEX_to_R10G10B10X2_UNORM(GLenum type)
2892 {
2893 switch (type)
2894 {
2895 case GL_UNSIGNED_INT_2_10_10_10_REV:
2896 return LoadImageFunctionInfo(LoadRGB10A2ToRGB10X2, true);
2897 default:
2898 UNREACHABLE();
2899 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2900 }
2901 }
2902
RGB16F_to_R16G16B16A16_FLOAT(GLenum type)2903 LoadImageFunctionInfo RGB16F_to_R16G16B16A16_FLOAT(GLenum type)
2904 {
2905 switch (type)
2906 {
2907 case GL_FLOAT:
2908 return LoadImageFunctionInfo(LoadRGB32FToRGBA16F, true);
2909 case GL_HALF_FLOAT:
2910 return LoadImageFunctionInfo(LoadToNative3To4<GLhalf, gl::Float16One>, true);
2911 case GL_HALF_FLOAT_OES:
2912 return LoadImageFunctionInfo(LoadToNative3To4<GLhalf, gl::Float16One>, true);
2913 default:
2914 UNREACHABLE();
2915 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2916 }
2917 }
2918
RGB16F_to_R16G16B16_FLOAT(GLenum type)2919 LoadImageFunctionInfo RGB16F_to_R16G16B16_FLOAT(GLenum type)
2920 {
2921 switch (type)
2922 {
2923 case GL_FLOAT:
2924 return LoadImageFunctionInfo(LoadRGB32FToRGB16F, true);
2925 case GL_HALF_FLOAT:
2926 return LoadImageFunctionInfo(LoadToNative<GLhalf, 3>, false);
2927 case GL_HALF_FLOAT_OES:
2928 return LoadImageFunctionInfo(LoadToNative<GLhalf, 3>, false);
2929 default:
2930 UNREACHABLE();
2931 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2932 }
2933 }
2934
RGB16I_to_R16G16B16A16_SINT(GLenum type)2935 LoadImageFunctionInfo RGB16I_to_R16G16B16A16_SINT(GLenum type)
2936 {
2937 switch (type)
2938 {
2939 case GL_SHORT:
2940 return LoadImageFunctionInfo(LoadToNative3To4<GLshort, 0x0001>, true);
2941 default:
2942 UNREACHABLE();
2943 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2944 }
2945 }
2946
RGB16I_to_R16G16B16_SINT(GLenum type)2947 LoadImageFunctionInfo RGB16I_to_R16G16B16_SINT(GLenum type)
2948 {
2949 switch (type)
2950 {
2951 case GL_SHORT:
2952 return LoadImageFunctionInfo(LoadToNative<GLshort, 3>, false);
2953 default:
2954 UNREACHABLE();
2955 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2956 }
2957 }
2958
RGB16UI_to_R16G16B16A16_UINT(GLenum type)2959 LoadImageFunctionInfo RGB16UI_to_R16G16B16A16_UINT(GLenum type)
2960 {
2961 switch (type)
2962 {
2963 case GL_UNSIGNED_SHORT:
2964 return LoadImageFunctionInfo(LoadToNative3To4<GLushort, 0x0001>, true);
2965 default:
2966 UNREACHABLE();
2967 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2968 }
2969 }
2970
RGB16UI_to_R16G16B16_UINT(GLenum type)2971 LoadImageFunctionInfo RGB16UI_to_R16G16B16_UINT(GLenum type)
2972 {
2973 switch (type)
2974 {
2975 case GL_UNSIGNED_SHORT:
2976 return LoadImageFunctionInfo(LoadToNative<GLushort, 3>, false);
2977 default:
2978 UNREACHABLE();
2979 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2980 }
2981 }
2982
RGB16_EXT_to_R16G16B16A16_UNORM(GLenum type)2983 LoadImageFunctionInfo RGB16_EXT_to_R16G16B16A16_UNORM(GLenum type)
2984 {
2985 switch (type)
2986 {
2987 case GL_UNSIGNED_SHORT:
2988 return LoadImageFunctionInfo(LoadToNative3To4<GLushort, 0xFFFF>, true);
2989 default:
2990 UNREACHABLE();
2991 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
2992 }
2993 }
2994
RGB16_EXT_to_R16G16B16_UNORM(GLenum type)2995 LoadImageFunctionInfo RGB16_EXT_to_R16G16B16_UNORM(GLenum type)
2996 {
2997 switch (type)
2998 {
2999 case GL_UNSIGNED_SHORT:
3000 return LoadImageFunctionInfo(LoadToNative<GLushort, 3>, false);
3001 default:
3002 UNREACHABLE();
3003 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3004 }
3005 }
3006
RGB16_EXT_to_R32G32B32A32_FLOAT(GLenum type)3007 LoadImageFunctionInfo RGB16_EXT_to_R32G32B32A32_FLOAT(GLenum type)
3008 {
3009 switch (type)
3010 {
3011 case GL_UNSIGNED_SHORT:
3012 return LoadImageFunctionInfo(LoadToFloat<GLushort, 3, 4, true>, true);
3013 default:
3014 UNREACHABLE();
3015 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3016 }
3017 }
3018
RGB16_EXT_to_R32G32B32_FLOAT(GLenum type)3019 LoadImageFunctionInfo RGB16_EXT_to_R32G32B32_FLOAT(GLenum type)
3020 {
3021 switch (type)
3022 {
3023 case GL_UNSIGNED_SHORT:
3024 return LoadImageFunctionInfo(LoadToFloat<GLushort, 3, 3, true>, true);
3025 default:
3026 UNREACHABLE();
3027 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3028 }
3029 }
3030
RGB16_SNORM_EXT_to_R16G16B16A16_SNORM(GLenum type)3031 LoadImageFunctionInfo RGB16_SNORM_EXT_to_R16G16B16A16_SNORM(GLenum type)
3032 {
3033 switch (type)
3034 {
3035 case GL_SHORT:
3036 return LoadImageFunctionInfo(LoadToNative3To4<GLushort, 0x7FFF>, true);
3037 default:
3038 UNREACHABLE();
3039 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3040 }
3041 }
3042
RGB16_SNORM_EXT_to_R16G16B16_SNORM(GLenum type)3043 LoadImageFunctionInfo RGB16_SNORM_EXT_to_R16G16B16_SNORM(GLenum type)
3044 {
3045 switch (type)
3046 {
3047 case GL_SHORT:
3048 return LoadImageFunctionInfo(LoadToNative<GLushort, 3>, false);
3049 default:
3050 UNREACHABLE();
3051 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3052 }
3053 }
3054
RGB16_SNORM_EXT_to_R32G32B32A32_FLOAT(GLenum type)3055 LoadImageFunctionInfo RGB16_SNORM_EXT_to_R32G32B32A32_FLOAT(GLenum type)
3056 {
3057 switch (type)
3058 {
3059 case GL_SHORT:
3060 return LoadImageFunctionInfo(LoadToFloat<GLshort, 3, 4, true>, true);
3061 default:
3062 UNREACHABLE();
3063 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3064 }
3065 }
3066
RGB16_SNORM_EXT_to_R32G32B32_FLOAT(GLenum type)3067 LoadImageFunctionInfo RGB16_SNORM_EXT_to_R32G32B32_FLOAT(GLenum type)
3068 {
3069 switch (type)
3070 {
3071 case GL_SHORT:
3072 return LoadImageFunctionInfo(LoadToFloat<GLshort, 3, 3, true>, true);
3073 default:
3074 UNREACHABLE();
3075 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3076 }
3077 }
3078
RGB16_SSCALED_ANGLEX_to_default(GLenum type)3079 LoadImageFunctionInfo RGB16_SSCALED_ANGLEX_to_default(GLenum type)
3080 {
3081 switch (type)
3082 {
3083 case GL_UNSIGNED_BYTE:
3084 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3085 default:
3086 UNREACHABLE();
3087 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3088 }
3089 }
3090
RGB16_USCALED_ANGLEX_to_default(GLenum type)3091 LoadImageFunctionInfo RGB16_USCALED_ANGLEX_to_default(GLenum type)
3092 {
3093 switch (type)
3094 {
3095 case GL_UNSIGNED_BYTE:
3096 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3097 default:
3098 UNREACHABLE();
3099 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3100 }
3101 }
3102
RGB32F_to_R32G32B32A32_FLOAT(GLenum type)3103 LoadImageFunctionInfo RGB32F_to_R32G32B32A32_FLOAT(GLenum type)
3104 {
3105 switch (type)
3106 {
3107 case GL_FLOAT:
3108 return LoadImageFunctionInfo(LoadToNative3To4<GLfloat, gl::Float32One>, true);
3109 default:
3110 UNREACHABLE();
3111 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3112 }
3113 }
3114
RGB32F_to_R32G32B32_FLOAT(GLenum type)3115 LoadImageFunctionInfo RGB32F_to_R32G32B32_FLOAT(GLenum type)
3116 {
3117 switch (type)
3118 {
3119 case GL_FLOAT:
3120 return LoadImageFunctionInfo(LoadToNative<GLfloat, 3>, false);
3121 default:
3122 UNREACHABLE();
3123 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3124 }
3125 }
3126
RGB32I_to_R32G32B32A32_SINT(GLenum type)3127 LoadImageFunctionInfo RGB32I_to_R32G32B32A32_SINT(GLenum type)
3128 {
3129 switch (type)
3130 {
3131 case GL_INT:
3132 return LoadImageFunctionInfo(LoadToNative3To4<GLint, 0x00000001>, true);
3133 default:
3134 UNREACHABLE();
3135 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3136 }
3137 }
3138
RGB32I_to_R32G32B32_SINT(GLenum type)3139 LoadImageFunctionInfo RGB32I_to_R32G32B32_SINT(GLenum type)
3140 {
3141 switch (type)
3142 {
3143 case GL_INT:
3144 return LoadImageFunctionInfo(LoadToNative<GLint, 3>, false);
3145 default:
3146 UNREACHABLE();
3147 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3148 }
3149 }
3150
RGB32UI_to_R32G32B32A32_UINT(GLenum type)3151 LoadImageFunctionInfo RGB32UI_to_R32G32B32A32_UINT(GLenum type)
3152 {
3153 switch (type)
3154 {
3155 case GL_UNSIGNED_INT:
3156 return LoadImageFunctionInfo(LoadToNative3To4<GLuint, 0x00000001>, true);
3157 default:
3158 UNREACHABLE();
3159 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3160 }
3161 }
3162
RGB32UI_to_R32G32B32_UINT(GLenum type)3163 LoadImageFunctionInfo RGB32UI_to_R32G32B32_UINT(GLenum type)
3164 {
3165 switch (type)
3166 {
3167 case GL_UNSIGNED_INT:
3168 return LoadImageFunctionInfo(LoadToNative<GLuint, 3>, false);
3169 default:
3170 UNREACHABLE();
3171 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3172 }
3173 }
3174
RGB565_to_B5G6R5_UNORM(GLenum type)3175 LoadImageFunctionInfo RGB565_to_B5G6R5_UNORM(GLenum type)
3176 {
3177 switch (type)
3178 {
3179 case GL_UNSIGNED_BYTE:
3180 return LoadImageFunctionInfo(LoadRGB8ToBGR565, true);
3181 case GL_UNSIGNED_SHORT_5_6_5:
3182 return LoadImageFunctionInfo(LoadToNative<GLushort, 1>, false);
3183 default:
3184 UNREACHABLE();
3185 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3186 }
3187 }
3188
RGB565_to_R5G6B5_UNORM(GLenum type)3189 LoadImageFunctionInfo RGB565_to_R5G6B5_UNORM(GLenum type)
3190 {
3191 switch (type)
3192 {
3193 case GL_UNSIGNED_BYTE:
3194 return LoadImageFunctionInfo(LoadRGB8ToBGR565, true);
3195 case GL_UNSIGNED_SHORT_5_6_5:
3196 return LoadImageFunctionInfo(LoadToNative<GLushort, 1>, false);
3197 default:
3198 UNREACHABLE();
3199 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3200 }
3201 }
3202
RGB565_to_R8G8B8A8_UNORM(GLenum type)3203 LoadImageFunctionInfo RGB565_to_R8G8B8A8_UNORM(GLenum type)
3204 {
3205 switch (type)
3206 {
3207 case GL_UNSIGNED_BYTE:
3208 return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
3209 case GL_UNSIGNED_SHORT_5_6_5:
3210 return LoadImageFunctionInfo(LoadR5G6B5ToRGBA8, true);
3211 default:
3212 UNREACHABLE();
3213 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3214 }
3215 }
3216
RGB5_A1_to_A1R5G5B5_UNORM(GLenum type)3217 LoadImageFunctionInfo RGB5_A1_to_A1R5G5B5_UNORM(GLenum type)
3218 {
3219 switch (type)
3220 {
3221 case GL_UNSIGNED_BYTE:
3222 return LoadImageFunctionInfo(LoadRGBA8ToBGR5A1, true);
3223 case GL_UNSIGNED_INT_2_10_10_10_REV:
3224 return LoadImageFunctionInfo(LoadRGB10A2ToBGR5A1, true);
3225 case GL_UNSIGNED_SHORT_5_5_5_1:
3226 return LoadImageFunctionInfo(LoadRGB5A1ToA1RGB5, true);
3227 default:
3228 UNREACHABLE();
3229 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3230 }
3231 }
3232
RGB5_A1_to_B5G5R5A1_UNORM(GLenum type)3233 LoadImageFunctionInfo RGB5_A1_to_B5G5R5A1_UNORM(GLenum type)
3234 {
3235 switch (type)
3236 {
3237 case GL_UNSIGNED_BYTE:
3238 return LoadImageFunctionInfo(LoadRGBA8ToBGR5A1, true);
3239 case GL_UNSIGNED_INT_2_10_10_10_REV:
3240 return LoadImageFunctionInfo(LoadRGB10A2ToBGR5A1, true);
3241 case GL_UNSIGNED_SHORT_5_5_5_1:
3242 return LoadImageFunctionInfo(LoadRGB5A1ToA1RGB5, true);
3243 default:
3244 UNREACHABLE();
3245 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3246 }
3247 }
3248
RGB5_A1_to_R5G5B5A1_UNORM(GLenum type)3249 LoadImageFunctionInfo RGB5_A1_to_R5G5B5A1_UNORM(GLenum type)
3250 {
3251 switch (type)
3252 {
3253 case GL_UNSIGNED_BYTE:
3254 return LoadImageFunctionInfo(LoadRGBA8ToRGB5A1, true);
3255 case GL_UNSIGNED_INT_2_10_10_10_REV:
3256 return LoadImageFunctionInfo(LoadRGB10A2ToRGB5A1, true);
3257 case GL_UNSIGNED_SHORT_5_5_5_1:
3258 return LoadImageFunctionInfo(LoadToNative<GLushort, 1>, false);
3259 default:
3260 UNREACHABLE();
3261 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3262 }
3263 }
3264
RGB5_A1_to_R8G8B8A8_UNORM(GLenum type)3265 LoadImageFunctionInfo RGB5_A1_to_R8G8B8A8_UNORM(GLenum type)
3266 {
3267 switch (type)
3268 {
3269 case GL_UNSIGNED_BYTE:
3270 return LoadImageFunctionInfo(LoadToNative<GLubyte, 4>, false);
3271 case GL_UNSIGNED_INT_2_10_10_10_REV:
3272 return LoadImageFunctionInfo(LoadRGB10A2ToRGBA8, true);
3273 case GL_UNSIGNED_SHORT_5_5_5_1:
3274 return LoadImageFunctionInfo(LoadRGB5A1ToRGBA8, true);
3275 default:
3276 UNREACHABLE();
3277 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3278 }
3279 }
3280
RGB8_to_R8G8B8A8_UNORM(GLenum type)3281 LoadImageFunctionInfo RGB8_to_R8G8B8A8_UNORM(GLenum type)
3282 {
3283 switch (type)
3284 {
3285 case GL_UNSIGNED_BYTE:
3286 return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
3287 default:
3288 UNREACHABLE();
3289 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3290 }
3291 }
3292
RGB8_to_R8G8B8_UNORM(GLenum type)3293 LoadImageFunctionInfo RGB8_to_R8G8B8_UNORM(GLenum type)
3294 {
3295 switch (type)
3296 {
3297 case GL_UNSIGNED_BYTE:
3298 return LoadImageFunctionInfo(LoadToNative<GLbyte, 3>, false);
3299 default:
3300 UNREACHABLE();
3301 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3302 }
3303 }
3304
RGB8I_to_R8G8B8A8_SINT(GLenum type)3305 LoadImageFunctionInfo RGB8I_to_R8G8B8A8_SINT(GLenum type)
3306 {
3307 switch (type)
3308 {
3309 case GL_BYTE:
3310 return LoadImageFunctionInfo(LoadToNative3To4<GLbyte, 0x01>, true);
3311 default:
3312 UNREACHABLE();
3313 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3314 }
3315 }
3316
RGB8I_to_R8G8B8_SINT(GLenum type)3317 LoadImageFunctionInfo RGB8I_to_R8G8B8_SINT(GLenum type)
3318 {
3319 switch (type)
3320 {
3321 case GL_BYTE:
3322 return LoadImageFunctionInfo(LoadToNative<GLbyte, 3>, false);
3323 default:
3324 UNREACHABLE();
3325 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3326 }
3327 }
3328
RGB8UI_to_R8G8B8A8_UINT(GLenum type)3329 LoadImageFunctionInfo RGB8UI_to_R8G8B8A8_UINT(GLenum type)
3330 {
3331 switch (type)
3332 {
3333 case GL_UNSIGNED_BYTE:
3334 return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0x01>, true);
3335 default:
3336 UNREACHABLE();
3337 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3338 }
3339 }
3340
RGB8UI_to_R8G8B8_UINT(GLenum type)3341 LoadImageFunctionInfo RGB8UI_to_R8G8B8_UINT(GLenum type)
3342 {
3343 switch (type)
3344 {
3345 case GL_UNSIGNED_BYTE:
3346 return LoadImageFunctionInfo(LoadToNative<GLubyte, 3>, false);
3347 default:
3348 UNREACHABLE();
3349 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3350 }
3351 }
3352
RGB8_SNORM_to_R8G8B8A8_SNORM(GLenum type)3353 LoadImageFunctionInfo RGB8_SNORM_to_R8G8B8A8_SNORM(GLenum type)
3354 {
3355 switch (type)
3356 {
3357 case GL_BYTE:
3358 return LoadImageFunctionInfo(LoadToNative3To4<GLbyte, 0x7F>, true);
3359 default:
3360 UNREACHABLE();
3361 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3362 }
3363 }
3364
RGB8_SNORM_to_R8G8B8_SNORM(GLenum type)3365 LoadImageFunctionInfo RGB8_SNORM_to_R8G8B8_SNORM(GLenum type)
3366 {
3367 switch (type)
3368 {
3369 case GL_BYTE:
3370 return LoadImageFunctionInfo(LoadToNative<GLbyte, 3>, false);
3371 default:
3372 UNREACHABLE();
3373 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3374 }
3375 }
3376
RGB8_SSCALED_ANGLEX_to_default(GLenum type)3377 LoadImageFunctionInfo RGB8_SSCALED_ANGLEX_to_default(GLenum type)
3378 {
3379 switch (type)
3380 {
3381 case GL_UNSIGNED_BYTE:
3382 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3383 default:
3384 UNREACHABLE();
3385 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3386 }
3387 }
3388
RGB8_USCALED_ANGLEX_to_default(GLenum type)3389 LoadImageFunctionInfo RGB8_USCALED_ANGLEX_to_default(GLenum type)
3390 {
3391 switch (type)
3392 {
3393 case GL_UNSIGNED_BYTE:
3394 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3395 default:
3396 UNREACHABLE();
3397 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3398 }
3399 }
3400
RGB9_E5_to_R9G9B9E5_SHAREDEXP(GLenum type)3401 LoadImageFunctionInfo RGB9_E5_to_R9G9B9E5_SHAREDEXP(GLenum type)
3402 {
3403 switch (type)
3404 {
3405 case GL_FLOAT:
3406 return LoadImageFunctionInfo(LoadRGB32FToRGB9E5, true);
3407 case GL_HALF_FLOAT:
3408 return LoadImageFunctionInfo(LoadRGB16FToRGB9E5, true);
3409 case GL_HALF_FLOAT_OES:
3410 return LoadImageFunctionInfo(LoadRGB16FToRGB9E5, true);
3411 case GL_UNSIGNED_INT_5_9_9_9_REV:
3412 return LoadImageFunctionInfo(LoadToNative<GLuint, 1>, false);
3413 default:
3414 UNREACHABLE();
3415 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3416 }
3417 }
3418
RGBA_to_default(GLenum type)3419 LoadImageFunctionInfo RGBA_to_default(GLenum type)
3420 {
3421 switch (type)
3422 {
3423 case GL_UNSIGNED_BYTE:
3424 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3425 case GL_UNSIGNED_SHORT_4_4_4_4:
3426 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3427 case GL_UNSIGNED_SHORT_5_5_5_1:
3428 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3429 default:
3430 UNREACHABLE();
3431 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3432 }
3433 }
3434
RGBA16F_to_R16G16B16A16_FLOAT(GLenum type)3435 LoadImageFunctionInfo RGBA16F_to_R16G16B16A16_FLOAT(GLenum type)
3436 {
3437 switch (type)
3438 {
3439 case GL_FLOAT:
3440 return LoadImageFunctionInfo(Load32FTo16F<4>, true);
3441 case GL_HALF_FLOAT:
3442 return LoadImageFunctionInfo(LoadToNative<GLhalf, 4>, false);
3443 case GL_HALF_FLOAT_OES:
3444 return LoadImageFunctionInfo(LoadToNative<GLhalf, 4>, false);
3445 default:
3446 UNREACHABLE();
3447 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3448 }
3449 }
3450
RGBA16I_to_R16G16B16A16_SINT(GLenum type)3451 LoadImageFunctionInfo RGBA16I_to_R16G16B16A16_SINT(GLenum type)
3452 {
3453 switch (type)
3454 {
3455 case GL_SHORT:
3456 return LoadImageFunctionInfo(LoadToNative<GLshort, 4>, false);
3457 default:
3458 UNREACHABLE();
3459 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3460 }
3461 }
3462
RGBA16UI_to_R16G16B16A16_UINT(GLenum type)3463 LoadImageFunctionInfo RGBA16UI_to_R16G16B16A16_UINT(GLenum type)
3464 {
3465 switch (type)
3466 {
3467 case GL_UNSIGNED_SHORT:
3468 return LoadImageFunctionInfo(LoadToNative<GLushort, 4>, false);
3469 default:
3470 UNREACHABLE();
3471 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3472 }
3473 }
3474
RGBA16_EXT_to_R16G16B16A16_UNORM(GLenum type)3475 LoadImageFunctionInfo RGBA16_EXT_to_R16G16B16A16_UNORM(GLenum type)
3476 {
3477 switch (type)
3478 {
3479 case GL_UNSIGNED_SHORT:
3480 return LoadImageFunctionInfo(LoadToNative<GLushort, 4>, false);
3481 default:
3482 UNREACHABLE();
3483 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3484 }
3485 }
3486
RGBA16_SNORM_EXT_to_R16G16B16A16_SNORM(GLenum type)3487 LoadImageFunctionInfo RGBA16_SNORM_EXT_to_R16G16B16A16_SNORM(GLenum type)
3488 {
3489 switch (type)
3490 {
3491 case GL_SHORT:
3492 return LoadImageFunctionInfo(LoadToNative<GLushort, 4>, false);
3493 default:
3494 UNREACHABLE();
3495 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3496 }
3497 }
3498
RGBA16_SSCALED_ANGLEX_to_default(GLenum type)3499 LoadImageFunctionInfo RGBA16_SSCALED_ANGLEX_to_default(GLenum type)
3500 {
3501 switch (type)
3502 {
3503 case GL_UNSIGNED_BYTE:
3504 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3505 default:
3506 UNREACHABLE();
3507 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3508 }
3509 }
3510
RGBA16_USCALED_ANGLEX_to_default(GLenum type)3511 LoadImageFunctionInfo RGBA16_USCALED_ANGLEX_to_default(GLenum type)
3512 {
3513 switch (type)
3514 {
3515 case GL_UNSIGNED_BYTE:
3516 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3517 default:
3518 UNREACHABLE();
3519 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3520 }
3521 }
3522
RGBA32F_to_R32G32B32A32_FLOAT(GLenum type)3523 LoadImageFunctionInfo RGBA32F_to_R32G32B32A32_FLOAT(GLenum type)
3524 {
3525 switch (type)
3526 {
3527 case GL_FLOAT:
3528 return LoadImageFunctionInfo(LoadToNative<GLfloat, 4>, false);
3529 default:
3530 UNREACHABLE();
3531 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3532 }
3533 }
3534
RGBA32I_to_R32G32B32A32_SINT(GLenum type)3535 LoadImageFunctionInfo RGBA32I_to_R32G32B32A32_SINT(GLenum type)
3536 {
3537 switch (type)
3538 {
3539 case GL_INT:
3540 return LoadImageFunctionInfo(LoadToNative<GLint, 4>, false);
3541 default:
3542 UNREACHABLE();
3543 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3544 }
3545 }
3546
RGBA32UI_to_R32G32B32A32_UINT(GLenum type)3547 LoadImageFunctionInfo RGBA32UI_to_R32G32B32A32_UINT(GLenum type)
3548 {
3549 switch (type)
3550 {
3551 case GL_UNSIGNED_INT:
3552 return LoadImageFunctionInfo(LoadToNative<GLuint, 4>, false);
3553 default:
3554 UNREACHABLE();
3555 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3556 }
3557 }
3558
RGBA4_to_B4G4R4A4_UNORM(GLenum type)3559 LoadImageFunctionInfo RGBA4_to_B4G4R4A4_UNORM(GLenum type)
3560 {
3561 switch (type)
3562 {
3563 case GL_UNSIGNED_BYTE:
3564 return LoadImageFunctionInfo(LoadRGBA8ToBGRA4, true);
3565 case GL_UNSIGNED_SHORT_4_4_4_4:
3566 return LoadImageFunctionInfo(LoadRGBA4ToARGB4, true);
3567 default:
3568 UNREACHABLE();
3569 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3570 }
3571 }
3572
RGBA4_to_R4G4B4A4_UNORM(GLenum type)3573 LoadImageFunctionInfo RGBA4_to_R4G4B4A4_UNORM(GLenum type)
3574 {
3575 switch (type)
3576 {
3577 case GL_UNSIGNED_BYTE:
3578 return LoadImageFunctionInfo(LoadRGBA8ToRGBA4, true);
3579 case GL_UNSIGNED_SHORT_4_4_4_4:
3580 return LoadImageFunctionInfo(LoadToNative<GLushort, 1>, false);
3581 default:
3582 UNREACHABLE();
3583 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3584 }
3585 }
3586
RGBA4_to_R8G8B8A8_UNORM(GLenum type)3587 LoadImageFunctionInfo RGBA4_to_R8G8B8A8_UNORM(GLenum type)
3588 {
3589 switch (type)
3590 {
3591 case GL_UNSIGNED_BYTE:
3592 return LoadImageFunctionInfo(LoadToNative<GLubyte, 4>, false);
3593 case GL_UNSIGNED_SHORT_4_4_4_4:
3594 return LoadImageFunctionInfo(LoadRGBA4ToRGBA8, true);
3595 default:
3596 UNREACHABLE();
3597 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3598 }
3599 }
3600
RGBA8_to_R8G8B8A8_UNORM(GLenum type)3601 LoadImageFunctionInfo RGBA8_to_R8G8B8A8_UNORM(GLenum type)
3602 {
3603 switch (type)
3604 {
3605 case GL_UNSIGNED_BYTE:
3606 return LoadImageFunctionInfo(LoadToNative<GLubyte, 4>, false);
3607 default:
3608 UNREACHABLE();
3609 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3610 }
3611 }
3612
RGBA8I_to_R8G8B8A8_SINT(GLenum type)3613 LoadImageFunctionInfo RGBA8I_to_R8G8B8A8_SINT(GLenum type)
3614 {
3615 switch (type)
3616 {
3617 case GL_BYTE:
3618 return LoadImageFunctionInfo(LoadToNative<GLbyte, 4>, false);
3619 default:
3620 UNREACHABLE();
3621 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3622 }
3623 }
3624
RGBA8UI_to_R8G8B8A8_UINT(GLenum type)3625 LoadImageFunctionInfo RGBA8UI_to_R8G8B8A8_UINT(GLenum type)
3626 {
3627 switch (type)
3628 {
3629 case GL_UNSIGNED_BYTE:
3630 return LoadImageFunctionInfo(LoadToNative<GLubyte, 4>, false);
3631 default:
3632 UNREACHABLE();
3633 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3634 }
3635 }
3636
RGBA8_SNORM_to_R8G8B8A8_SNORM(GLenum type)3637 LoadImageFunctionInfo RGBA8_SNORM_to_R8G8B8A8_SNORM(GLenum type)
3638 {
3639 switch (type)
3640 {
3641 case GL_BYTE:
3642 return LoadImageFunctionInfo(LoadToNative<GLbyte, 4>, false);
3643 default:
3644 UNREACHABLE();
3645 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3646 }
3647 }
3648
RGBA8_SSCALED_ANGLEX_to_default(GLenum type)3649 LoadImageFunctionInfo RGBA8_SSCALED_ANGLEX_to_default(GLenum type)
3650 {
3651 switch (type)
3652 {
3653 case GL_UNSIGNED_BYTE:
3654 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3655 default:
3656 UNREACHABLE();
3657 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3658 }
3659 }
3660
RGBA8_USCALED_ANGLEX_to_default(GLenum type)3661 LoadImageFunctionInfo RGBA8_USCALED_ANGLEX_to_default(GLenum type)
3662 {
3663 switch (type)
3664 {
3665 case GL_UNSIGNED_BYTE:
3666 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3667 default:
3668 UNREACHABLE();
3669 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3670 }
3671 }
3672
RGBX8_ANGLE_to_R8G8B8A8_UNORM(GLenum type)3673 LoadImageFunctionInfo RGBX8_ANGLE_to_R8G8B8A8_UNORM(GLenum type)
3674 {
3675 switch (type)
3676 {
3677 case GL_UNSIGNED_BYTE:
3678 return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
3679 default:
3680 UNREACHABLE();
3681 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3682 }
3683 }
3684
RGBX8_ANGLE_to_R8G8B8X8_UNORM(GLenum type)3685 LoadImageFunctionInfo RGBX8_ANGLE_to_R8G8B8X8_UNORM(GLenum type)
3686 {
3687 switch (type)
3688 {
3689 case GL_UNSIGNED_BYTE:
3690 return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
3691 default:
3692 UNREACHABLE();
3693 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3694 }
3695 }
3696
RGBX8_SRGB_ANGLEX_to_R8G8B8A8_UNORM_SRGB(GLenum type)3697 LoadImageFunctionInfo RGBX8_SRGB_ANGLEX_to_R8G8B8A8_UNORM_SRGB(GLenum type)
3698 {
3699 switch (type)
3700 {
3701 case GL_UNSIGNED_BYTE:
3702 return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
3703 default:
3704 UNREACHABLE();
3705 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3706 }
3707 }
3708
RGBX8_SRGB_ANGLEX_to_R8G8B8X8_UNORM_SRGB(GLenum type)3709 LoadImageFunctionInfo RGBX8_SRGB_ANGLEX_to_R8G8B8X8_UNORM_SRGB(GLenum type)
3710 {
3711 switch (type)
3712 {
3713 case GL_UNSIGNED_BYTE:
3714 return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
3715 default:
3716 UNREACHABLE();
3717 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3718 }
3719 }
3720
SR8_EXT_to_R8_UNORM_SRGB(GLenum type)3721 LoadImageFunctionInfo SR8_EXT_to_R8_UNORM_SRGB(GLenum type)
3722 {
3723 switch (type)
3724 {
3725 case GL_UNSIGNED_BYTE:
3726 return LoadImageFunctionInfo(LoadToNative<GLubyte, 1>, false);
3727 default:
3728 UNREACHABLE();
3729 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3730 }
3731 }
3732
SRG8_EXT_to_R8G8_UNORM_SRGB(GLenum type)3733 LoadImageFunctionInfo SRG8_EXT_to_R8G8_UNORM_SRGB(GLenum type)
3734 {
3735 switch (type)
3736 {
3737 case GL_UNSIGNED_BYTE:
3738 return LoadImageFunctionInfo(LoadToNative<GLubyte, 2>, false);
3739 default:
3740 UNREACHABLE();
3741 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3742 }
3743 }
3744
SRGB8_to_R8G8B8A8_UNORM_SRGB(GLenum type)3745 LoadImageFunctionInfo SRGB8_to_R8G8B8A8_UNORM_SRGB(GLenum type)
3746 {
3747 switch (type)
3748 {
3749 case GL_UNSIGNED_BYTE:
3750 return LoadImageFunctionInfo(LoadToNative3To4<GLubyte, 0xFF>, true);
3751 default:
3752 UNREACHABLE();
3753 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3754 }
3755 }
3756
SRGB8_to_R8G8B8_UNORM_SRGB(GLenum type)3757 LoadImageFunctionInfo SRGB8_to_R8G8B8_UNORM_SRGB(GLenum type)
3758 {
3759 switch (type)
3760 {
3761 case GL_UNSIGNED_BYTE:
3762 return LoadImageFunctionInfo(LoadToNative<GLubyte, 3>, false);
3763 default:
3764 UNREACHABLE();
3765 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3766 }
3767 }
3768
SRGB8_ALPHA8_to_R8G8B8A8_UNORM_SRGB(GLenum type)3769 LoadImageFunctionInfo SRGB8_ALPHA8_to_R8G8B8A8_UNORM_SRGB(GLenum type)
3770 {
3771 switch (type)
3772 {
3773 case GL_UNSIGNED_BYTE:
3774 return LoadImageFunctionInfo(LoadToNative<GLubyte, 4>, false);
3775 default:
3776 UNREACHABLE();
3777 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3778 }
3779 }
3780
STENCIL_INDEX8_to_D24_UNORM_S8_UINT(GLenum type)3781 LoadImageFunctionInfo STENCIL_INDEX8_to_D24_UNORM_S8_UINT(GLenum type)
3782 {
3783 switch (type)
3784 {
3785 case GL_UNSIGNED_BYTE:
3786 return LoadImageFunctionInfo(LoadS8ToS8X24, true);
3787 default:
3788 UNREACHABLE();
3789 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3790 }
3791 }
3792
STENCIL_INDEX8_to_S8_UINT(GLenum type)3793 LoadImageFunctionInfo STENCIL_INDEX8_to_S8_UINT(GLenum type)
3794 {
3795 switch (type)
3796 {
3797 case GL_UNSIGNED_BYTE:
3798 return LoadImageFunctionInfo(LoadToNative<GLubyte, 1>, false);
3799 default:
3800 UNREACHABLE();
3801 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3802 }
3803 }
3804
STENCIL_INDEX8_to_default(GLenum type)3805 LoadImageFunctionInfo STENCIL_INDEX8_to_default(GLenum type)
3806 {
3807 switch (type)
3808 {
3809 case GL_UNSIGNED_BYTE:
3810 return LoadImageFunctionInfo(UnimplementedLoadFunction, true);
3811 default:
3812 UNREACHABLE();
3813 return LoadImageFunctionInfo(UnreachableLoadFunction, true);
3814 }
3815 }
3816
3817 } // namespace
3818
GetLoadFunctionsMap(GLenum internalFormat,FormatID angleFormat)3819 LoadFunctionMap GetLoadFunctionsMap(GLenum internalFormat, FormatID angleFormat)
3820 {
3821 // clang-format off
3822 switch (internalFormat)
3823 {
3824 case GL_A1RGB5_ANGLEX:
3825 {
3826 switch (angleFormat)
3827 {
3828 case FormatID::A1R5G5B5_UNORM:
3829 return A1RGB5_ANGLEX_to_A1R5G5B5_UNORM;
3830 default:
3831 break;
3832 }
3833 break;
3834 }
3835 case GL_ALPHA:
3836 {
3837 switch (angleFormat)
3838 {
3839 case FormatID::R16G16B16A16_FLOAT:
3840 return ALPHA_to_R16G16B16A16_FLOAT;
3841 case FormatID::R32G32B32A32_FLOAT:
3842 return ALPHA_to_R32G32B32A32_FLOAT;
3843 default:
3844 return ALPHA_to_default;
3845 }
3846 }
3847 case GL_ALPHA16F_EXT:
3848 {
3849 switch (angleFormat)
3850 {
3851 case FormatID::R16_FLOAT:
3852 return ALPHA16F_EXT_to_R16_FLOAT;
3853 default:
3854 return ALPHA16F_EXT_to_default;
3855 }
3856 }
3857 case GL_ALPHA32F_EXT:
3858 {
3859 switch (angleFormat)
3860 {
3861 case FormatID::R32_FLOAT:
3862 return ALPHA32F_EXT_to_R32_FLOAT;
3863 default:
3864 return ALPHA32F_EXT_to_default;
3865 }
3866 }
3867 case GL_ALPHA8_EXT:
3868 {
3869 switch (angleFormat)
3870 {
3871 case FormatID::A8_UNORM:
3872 return ALPHA8_EXT_to_A8_UNORM;
3873 case FormatID::R8G8B8A8_UNORM:
3874 return ALPHA8_EXT_to_R8G8B8A8_UNORM;
3875 case FormatID::R8_UNORM:
3876 return ALPHA8_EXT_to_R8_UNORM;
3877 default:
3878 break;
3879 }
3880 break;
3881 }
3882 case GL_BGR10_A2_ANGLEX:
3883 {
3884 switch (angleFormat)
3885 {
3886 case FormatID::B10G10R10A2_UNORM:
3887 return BGR10_A2_ANGLEX_to_B10G10R10A2_UNORM;
3888 default:
3889 break;
3890 }
3891 break;
3892 }
3893 case GL_BGR565_ANGLEX:
3894 {
3895 switch (angleFormat)
3896 {
3897 case FormatID::B5G6R5_UNORM:
3898 return BGR565_ANGLEX_to_B5G6R5_UNORM;
3899 default:
3900 break;
3901 }
3902 break;
3903 }
3904 case GL_BGR5_A1_ANGLEX:
3905 return BGR5_A1_ANGLEX_to_default;
3906 case GL_BGRA4_ANGLEX:
3907 return BGRA4_ANGLEX_to_default;
3908 case GL_BGRA8_EXT:
3909 return BGRA8_EXT_to_default;
3910 case GL_BGRA8_SRGB_ANGLEX:
3911 {
3912 switch (angleFormat)
3913 {
3914 case FormatID::B8G8R8A8_UNORM_SRGB:
3915 return BGRA8_SRGB_ANGLEX_to_B8G8R8A8_UNORM_SRGB;
3916 default:
3917 break;
3918 }
3919 break;
3920 }
3921 case GL_BGRA_EXT:
3922 return BGRA_EXT_to_default;
3923 case GL_BGRX8_ANGLEX:
3924 {
3925 switch (angleFormat)
3926 {
3927 case FormatID::B8G8R8A8_UNORM:
3928 return BGRX8_ANGLEX_to_B8G8R8A8_UNORM;
3929 case FormatID::B8G8R8X8_UNORM:
3930 return BGRX8_ANGLEX_to_B8G8R8X8_UNORM;
3931 default:
3932 break;
3933 }
3934 break;
3935 }
3936 case GL_BGRX8_SRGB_ANGLEX:
3937 {
3938 switch (angleFormat)
3939 {
3940 case FormatID::B8G8R8A8_UNORM_SRGB:
3941 return BGRX8_SRGB_ANGLEX_to_B8G8R8A8_UNORM_SRGB;
3942 case FormatID::B8G8R8X8_UNORM_SRGB:
3943 return BGRX8_SRGB_ANGLEX_to_B8G8R8X8_UNORM_SRGB;
3944 default:
3945 break;
3946 }
3947 break;
3948 }
3949 case GL_COMPRESSED_R11_EAC:
3950 {
3951 switch (angleFormat)
3952 {
3953 case FormatID::EAC_R11_UNORM_BLOCK:
3954 return COMPRESSED_R11_EAC_to_EAC_R11_UNORM_BLOCK;
3955 case FormatID::R16_FLOAT:
3956 return COMPRESSED_R11_EAC_to_R16_FLOAT;
3957 case FormatID::R16_UNORM:
3958 return COMPRESSED_R11_EAC_to_R16_UNORM;
3959 default:
3960 break;
3961 }
3962 break;
3963 }
3964 case GL_COMPRESSED_RED_GREEN_RGTC2_EXT:
3965 return COMPRESSED_RED_GREEN_RGTC2_EXT_to_default;
3966 case GL_COMPRESSED_RED_RGTC1_EXT:
3967 return COMPRESSED_RED_RGTC1_EXT_to_default;
3968 case GL_COMPRESSED_RG11_EAC:
3969 {
3970 switch (angleFormat)
3971 {
3972 case FormatID::EAC_R11G11_UNORM_BLOCK:
3973 return COMPRESSED_RG11_EAC_to_EAC_R11G11_UNORM_BLOCK;
3974 case FormatID::R16G16_FLOAT:
3975 return COMPRESSED_RG11_EAC_to_R16G16_FLOAT;
3976 case FormatID::R16G16_UNORM:
3977 return COMPRESSED_RG11_EAC_to_R16G16_UNORM;
3978 default:
3979 break;
3980 }
3981 break;
3982 }
3983 case GL_COMPRESSED_RGB8_ETC2:
3984 {
3985 switch (angleFormat)
3986 {
3987 case FormatID::ETC2_R8G8B8_UNORM_BLOCK:
3988 return COMPRESSED_RGB8_ETC2_to_ETC2_R8G8B8_UNORM_BLOCK;
3989 case FormatID::R8G8B8A8_UNORM:
3990 return COMPRESSED_RGB8_ETC2_to_R8G8B8A8_UNORM;
3991 default:
3992 break;
3993 }
3994 break;
3995 }
3996 case GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE:
3997 {
3998 switch (angleFormat)
3999 {
4000 case FormatID::BC1_RGB_UNORM_BLOCK:
4001 return COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGB_UNORM_BLOCK;
4002 default:
4003 break;
4004 }
4005 break;
4006 }
4007 case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
4008 {
4009 switch (angleFormat)
4010 {
4011 case FormatID::ETC2_R8G8B8A1_UNORM_BLOCK:
4012 return COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_to_ETC2_R8G8B8A1_UNORM_BLOCK;
4013 case FormatID::R8G8B8A8_UNORM:
4014 return COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_to_R8G8B8A8_UNORM;
4015 default:
4016 break;
4017 }
4018 break;
4019 }
4020 case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE:
4021 {
4022 switch (angleFormat)
4023 {
4024 case FormatID::BC1_RGBA_UNORM_BLOCK:
4025 return COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGBA_UNORM_BLOCK;
4026 default:
4027 break;
4028 }
4029 break;
4030 }
4031 case GL_COMPRESSED_RGBA8_ETC2_EAC:
4032 {
4033 switch (angleFormat)
4034 {
4035 case FormatID::ETC2_R8G8B8A8_UNORM_BLOCK:
4036 return COMPRESSED_RGBA8_ETC2_EAC_to_ETC2_R8G8B8A8_UNORM_BLOCK;
4037 case FormatID::R8G8B8A8_UNORM:
4038 return COMPRESSED_RGBA8_ETC2_EAC_to_R8G8B8A8_UNORM;
4039 default:
4040 break;
4041 }
4042 break;
4043 }
4044 case GL_COMPRESSED_RGBA_ASTC_10x10_KHR:
4045 {
4046 switch (angleFormat)
4047 {
4048 case FormatID::R8G8B8A8_UNORM:
4049 return COMPRESSED_RGBA_ASTC_10x10_KHR_to_R8G8B8A8_UNORM;
4050 default:
4051 return COMPRESSED_RGBA_ASTC_10x10_KHR_to_default;
4052 }
4053 }
4054 case GL_COMPRESSED_RGBA_ASTC_10x5_KHR:
4055 {
4056 switch (angleFormat)
4057 {
4058 case FormatID::R8G8B8A8_UNORM:
4059 return COMPRESSED_RGBA_ASTC_10x5_KHR_to_R8G8B8A8_UNORM;
4060 default:
4061 return COMPRESSED_RGBA_ASTC_10x5_KHR_to_default;
4062 }
4063 }
4064 case GL_COMPRESSED_RGBA_ASTC_10x6_KHR:
4065 {
4066 switch (angleFormat)
4067 {
4068 case FormatID::R8G8B8A8_UNORM:
4069 return COMPRESSED_RGBA_ASTC_10x6_KHR_to_R8G8B8A8_UNORM;
4070 default:
4071 return COMPRESSED_RGBA_ASTC_10x6_KHR_to_default;
4072 }
4073 }
4074 case GL_COMPRESSED_RGBA_ASTC_10x8_KHR:
4075 {
4076 switch (angleFormat)
4077 {
4078 case FormatID::R8G8B8A8_UNORM:
4079 return COMPRESSED_RGBA_ASTC_10x8_KHR_to_R8G8B8A8_UNORM;
4080 default:
4081 return COMPRESSED_RGBA_ASTC_10x8_KHR_to_default;
4082 }
4083 }
4084 case GL_COMPRESSED_RGBA_ASTC_12x10_KHR:
4085 {
4086 switch (angleFormat)
4087 {
4088 case FormatID::R8G8B8A8_UNORM:
4089 return COMPRESSED_RGBA_ASTC_12x10_KHR_to_R8G8B8A8_UNORM;
4090 default:
4091 return COMPRESSED_RGBA_ASTC_12x10_KHR_to_default;
4092 }
4093 }
4094 case GL_COMPRESSED_RGBA_ASTC_12x12_KHR:
4095 {
4096 switch (angleFormat)
4097 {
4098 case FormatID::R8G8B8A8_UNORM:
4099 return COMPRESSED_RGBA_ASTC_12x12_KHR_to_R8G8B8A8_UNORM;
4100 default:
4101 return COMPRESSED_RGBA_ASTC_12x12_KHR_to_default;
4102 }
4103 }
4104 case GL_COMPRESSED_RGBA_ASTC_3x3x3_OES:
4105 return COMPRESSED_RGBA_ASTC_3x3x3_OES_to_default;
4106 case GL_COMPRESSED_RGBA_ASTC_4x3x3_OES:
4107 return COMPRESSED_RGBA_ASTC_4x3x3_OES_to_default;
4108 case GL_COMPRESSED_RGBA_ASTC_4x4_KHR:
4109 {
4110 switch (angleFormat)
4111 {
4112 case FormatID::R8G8B8A8_UNORM:
4113 return COMPRESSED_RGBA_ASTC_4x4_KHR_to_R8G8B8A8_UNORM;
4114 default:
4115 return COMPRESSED_RGBA_ASTC_4x4_KHR_to_default;
4116 }
4117 }
4118 case GL_COMPRESSED_RGBA_ASTC_4x4x3_OES:
4119 return COMPRESSED_RGBA_ASTC_4x4x3_OES_to_default;
4120 case GL_COMPRESSED_RGBA_ASTC_4x4x4_OES:
4121 return COMPRESSED_RGBA_ASTC_4x4x4_OES_to_default;
4122 case GL_COMPRESSED_RGBA_ASTC_5x4_KHR:
4123 {
4124 switch (angleFormat)
4125 {
4126 case FormatID::R8G8B8A8_UNORM:
4127 return COMPRESSED_RGBA_ASTC_5x4_KHR_to_R8G8B8A8_UNORM;
4128 default:
4129 return COMPRESSED_RGBA_ASTC_5x4_KHR_to_default;
4130 }
4131 }
4132 case GL_COMPRESSED_RGBA_ASTC_5x4x4_OES:
4133 return COMPRESSED_RGBA_ASTC_5x4x4_OES_to_default;
4134 case GL_COMPRESSED_RGBA_ASTC_5x5_KHR:
4135 {
4136 switch (angleFormat)
4137 {
4138 case FormatID::R8G8B8A8_UNORM:
4139 return COMPRESSED_RGBA_ASTC_5x5_KHR_to_R8G8B8A8_UNORM;
4140 default:
4141 return COMPRESSED_RGBA_ASTC_5x5_KHR_to_default;
4142 }
4143 }
4144 case GL_COMPRESSED_RGBA_ASTC_5x5x4_OES:
4145 return COMPRESSED_RGBA_ASTC_5x5x4_OES_to_default;
4146 case GL_COMPRESSED_RGBA_ASTC_5x5x5_OES:
4147 return COMPRESSED_RGBA_ASTC_5x5x5_OES_to_default;
4148 case GL_COMPRESSED_RGBA_ASTC_6x5_KHR:
4149 {
4150 switch (angleFormat)
4151 {
4152 case FormatID::R8G8B8A8_UNORM:
4153 return COMPRESSED_RGBA_ASTC_6x5_KHR_to_R8G8B8A8_UNORM;
4154 default:
4155 return COMPRESSED_RGBA_ASTC_6x5_KHR_to_default;
4156 }
4157 }
4158 case GL_COMPRESSED_RGBA_ASTC_6x5x5_OES:
4159 return COMPRESSED_RGBA_ASTC_6x5x5_OES_to_default;
4160 case GL_COMPRESSED_RGBA_ASTC_6x6_KHR:
4161 {
4162 switch (angleFormat)
4163 {
4164 case FormatID::R8G8B8A8_UNORM:
4165 return COMPRESSED_RGBA_ASTC_6x6_KHR_to_R8G8B8A8_UNORM;
4166 default:
4167 return COMPRESSED_RGBA_ASTC_6x6_KHR_to_default;
4168 }
4169 }
4170 case GL_COMPRESSED_RGBA_ASTC_6x6x5_OES:
4171 return COMPRESSED_RGBA_ASTC_6x6x5_OES_to_default;
4172 case GL_COMPRESSED_RGBA_ASTC_6x6x6_OES:
4173 return COMPRESSED_RGBA_ASTC_6x6x6_OES_to_default;
4174 case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:
4175 {
4176 switch (angleFormat)
4177 {
4178 case FormatID::R8G8B8A8_UNORM:
4179 return COMPRESSED_RGBA_ASTC_8x5_KHR_to_R8G8B8A8_UNORM;
4180 default:
4181 return COMPRESSED_RGBA_ASTC_8x5_KHR_to_default;
4182 }
4183 }
4184 case GL_COMPRESSED_RGBA_ASTC_8x6_KHR:
4185 {
4186 switch (angleFormat)
4187 {
4188 case FormatID::R8G8B8A8_UNORM:
4189 return COMPRESSED_RGBA_ASTC_8x6_KHR_to_R8G8B8A8_UNORM;
4190 default:
4191 return COMPRESSED_RGBA_ASTC_8x6_KHR_to_default;
4192 }
4193 }
4194 case GL_COMPRESSED_RGBA_ASTC_8x8_KHR:
4195 {
4196 switch (angleFormat)
4197 {
4198 case FormatID::R8G8B8A8_UNORM:
4199 return COMPRESSED_RGBA_ASTC_8x8_KHR_to_R8G8B8A8_UNORM;
4200 default:
4201 return COMPRESSED_RGBA_ASTC_8x8_KHR_to_default;
4202 }
4203 }
4204 case GL_COMPRESSED_RGBA_BPTC_UNORM_EXT:
4205 return COMPRESSED_RGBA_BPTC_UNORM_EXT_to_default;
4206 case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
4207 return COMPRESSED_RGBA_S3TC_DXT1_EXT_to_default;
4208 case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
4209 return COMPRESSED_RGBA_S3TC_DXT3_ANGLE_to_default;
4210 case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
4211 return COMPRESSED_RGBA_S3TC_DXT5_ANGLE_to_default;
4212 case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT:
4213 return COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT_to_default;
4214 case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT:
4215 return COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT_to_default;
4216 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
4217 return COMPRESSED_RGB_S3TC_DXT1_EXT_to_default;
4218 case GL_COMPRESSED_SIGNED_R11_EAC:
4219 {
4220 switch (angleFormat)
4221 {
4222 case FormatID::EAC_R11_SNORM_BLOCK:
4223 return COMPRESSED_SIGNED_R11_EAC_to_EAC_R11_SNORM_BLOCK;
4224 case FormatID::R16_FLOAT:
4225 return COMPRESSED_SIGNED_R11_EAC_to_R16_FLOAT;
4226 case FormatID::R16_SNORM:
4227 return COMPRESSED_SIGNED_R11_EAC_to_R16_SNORM;
4228 default:
4229 break;
4230 }
4231 break;
4232 }
4233 case GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT:
4234 return COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT_to_default;
4235 case GL_COMPRESSED_SIGNED_RED_RGTC1_EXT:
4236 return COMPRESSED_SIGNED_RED_RGTC1_EXT_to_default;
4237 case GL_COMPRESSED_SIGNED_RG11_EAC:
4238 {
4239 switch (angleFormat)
4240 {
4241 case FormatID::EAC_R11G11_SNORM_BLOCK:
4242 return COMPRESSED_SIGNED_RG11_EAC_to_EAC_R11G11_SNORM_BLOCK;
4243 case FormatID::R16G16_FLOAT:
4244 return COMPRESSED_SIGNED_RG11_EAC_to_R16G16_FLOAT;
4245 case FormatID::R16G16_SNORM:
4246 return COMPRESSED_SIGNED_RG11_EAC_to_R16G16_SNORM;
4247 default:
4248 break;
4249 }
4250 break;
4251 }
4252 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:
4253 {
4254 switch (angleFormat)
4255 {
4256 case FormatID::R8G8B8A8_UNORM_SRGB:
4257 return COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR_to_R8G8B8A8_UNORM_SRGB;
4258 default:
4259 return COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR_to_default;
4260 }
4261 }
4262 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:
4263 {
4264 switch (angleFormat)
4265 {
4266 case FormatID::R8G8B8A8_UNORM_SRGB:
4267 return COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR_to_R8G8B8A8_UNORM_SRGB;
4268 default:
4269 return COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR_to_default;
4270 }
4271 }
4272 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:
4273 {
4274 switch (angleFormat)
4275 {
4276 case FormatID::R8G8B8A8_UNORM_SRGB:
4277 return COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR_to_R8G8B8A8_UNORM_SRGB;
4278 default:
4279 return COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR_to_default;
4280 }
4281 }
4282 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:
4283 {
4284 switch (angleFormat)
4285 {
4286 case FormatID::R8G8B8A8_UNORM_SRGB:
4287 return COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR_to_R8G8B8A8_UNORM_SRGB;
4288 default:
4289 return COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR_to_default;
4290 }
4291 }
4292 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:
4293 {
4294 switch (angleFormat)
4295 {
4296 case FormatID::R8G8B8A8_UNORM_SRGB:
4297 return COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR_to_R8G8B8A8_UNORM_SRGB;
4298 default:
4299 return COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR_to_default;
4300 }
4301 }
4302 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:
4303 {
4304 switch (angleFormat)
4305 {
4306 case FormatID::R8G8B8A8_UNORM_SRGB:
4307 return COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR_to_R8G8B8A8_UNORM_SRGB;
4308 default:
4309 return COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR_to_default;
4310 }
4311 }
4312 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES:
4313 return COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES_to_default;
4314 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES:
4315 return COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES_to_default;
4316 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:
4317 {
4318 switch (angleFormat)
4319 {
4320 case FormatID::R8G8B8A8_UNORM_SRGB:
4321 return COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR_to_R8G8B8A8_UNORM_SRGB;
4322 default:
4323 return COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR_to_default;
4324 }
4325 }
4326 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES:
4327 return COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES_to_default;
4328 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES:
4329 return COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES_to_default;
4330 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:
4331 {
4332 switch (angleFormat)
4333 {
4334 case FormatID::R8G8B8A8_UNORM_SRGB:
4335 return COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR_to_R8G8B8A8_UNORM_SRGB;
4336 default:
4337 return COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR_to_default;
4338 }
4339 }
4340 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES:
4341 return COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES_to_default;
4342 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:
4343 {
4344 switch (angleFormat)
4345 {
4346 case FormatID::R8G8B8A8_UNORM_SRGB:
4347 return COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR_to_R8G8B8A8_UNORM_SRGB;
4348 default:
4349 return COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR_to_default;
4350 }
4351 }
4352 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES:
4353 return COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES_to_default;
4354 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES:
4355 return COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES_to_default;
4356 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:
4357 {
4358 switch (angleFormat)
4359 {
4360 case FormatID::R8G8B8A8_UNORM_SRGB:
4361 return COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR_to_R8G8B8A8_UNORM_SRGB;
4362 default:
4363 return COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR_to_default;
4364 }
4365 }
4366 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES:
4367 return COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES_to_default;
4368 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:
4369 {
4370 switch (angleFormat)
4371 {
4372 case FormatID::R8G8B8A8_UNORM_SRGB:
4373 return COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR_to_R8G8B8A8_UNORM_SRGB;
4374 default:
4375 return COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR_to_default;
4376 }
4377 }
4378 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES:
4379 return COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES_to_default;
4380 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES:
4381 return COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES_to_default;
4382 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:
4383 {
4384 switch (angleFormat)
4385 {
4386 case FormatID::R8G8B8A8_UNORM_SRGB:
4387 return COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR_to_R8G8B8A8_UNORM_SRGB;
4388 default:
4389 return COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR_to_default;
4390 }
4391 }
4392 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:
4393 {
4394 switch (angleFormat)
4395 {
4396 case FormatID::R8G8B8A8_UNORM_SRGB:
4397 return COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR_to_R8G8B8A8_UNORM_SRGB;
4398 default:
4399 return COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR_to_default;
4400 }
4401 }
4402 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:
4403 {
4404 switch (angleFormat)
4405 {
4406 case FormatID::R8G8B8A8_UNORM_SRGB:
4407 return COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR_to_R8G8B8A8_UNORM_SRGB;
4408 default:
4409 return COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR_to_default;
4410 }
4411 }
4412 case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:
4413 {
4414 switch (angleFormat)
4415 {
4416 case FormatID::ETC2_R8G8B8A8_SRGB_BLOCK:
4417 return COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_to_ETC2_R8G8B8A8_SRGB_BLOCK;
4418 case FormatID::R8G8B8A8_UNORM_SRGB:
4419 return COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_to_R8G8B8A8_UNORM_SRGB;
4420 default:
4421 break;
4422 }
4423 break;
4424 }
4425 case GL_COMPRESSED_SRGB8_ETC2:
4426 {
4427 switch (angleFormat)
4428 {
4429 case FormatID::ETC2_R8G8B8_SRGB_BLOCK:
4430 return COMPRESSED_SRGB8_ETC2_to_ETC2_R8G8B8_SRGB_BLOCK;
4431 case FormatID::R8G8B8A8_UNORM_SRGB:
4432 return COMPRESSED_SRGB8_ETC2_to_R8G8B8A8_UNORM_SRGB;
4433 default:
4434 break;
4435 }
4436 break;
4437 }
4438 case GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE:
4439 {
4440 switch (angleFormat)
4441 {
4442 case FormatID::BC1_RGB_UNORM_SRGB_BLOCK:
4443 return COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGB_UNORM_SRGB_BLOCK;
4444 default:
4445 break;
4446 }
4447 break;
4448 }
4449 case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
4450 {
4451 switch (angleFormat)
4452 {
4453 case FormatID::ETC2_R8G8B8A1_SRGB_BLOCK:
4454 return COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_to_ETC2_R8G8B8A1_SRGB_BLOCK;
4455 case FormatID::R8G8B8A8_UNORM_SRGB:
4456 return COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_to_R8G8B8A8_UNORM_SRGB;
4457 default:
4458 break;
4459 }
4460 break;
4461 }
4462 case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE:
4463 {
4464 switch (angleFormat)
4465 {
4466 case FormatID::BC1_RGBA_UNORM_SRGB_BLOCK:
4467 return COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGBA_UNORM_SRGB_BLOCK;
4468 default:
4469 break;
4470 }
4471 break;
4472 }
4473 case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:
4474 return COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT_to_default;
4475 case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
4476 return COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT_to_default;
4477 case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
4478 return COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT_to_default;
4479 case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
4480 return COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT_to_default;
4481 case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
4482 return COMPRESSED_SRGB_S3TC_DXT1_EXT_to_default;
4483 case GL_DEPTH24_STENCIL8:
4484 {
4485 switch (angleFormat)
4486 {
4487 case FormatID::D24_UNORM_S8_UINT:
4488 return DEPTH24_STENCIL8_to_D24_UNORM_S8_UINT;
4489 case FormatID::D32_FLOAT_S8X24_UINT:
4490 return DEPTH24_STENCIL8_to_D32_FLOAT_S8X24_UINT;
4491 default:
4492 break;
4493 }
4494 break;
4495 }
4496 case GL_DEPTH32F_STENCIL8:
4497 {
4498 switch (angleFormat)
4499 {
4500 case FormatID::D24_UNORM_S8_UINT:
4501 return DEPTH32F_STENCIL8_to_D24_UNORM_S8_UINT;
4502 case FormatID::D32_FLOAT_S8X24_UINT:
4503 return DEPTH32F_STENCIL8_to_D32_FLOAT_S8X24_UINT;
4504 default:
4505 break;
4506 }
4507 break;
4508 }
4509 case GL_DEPTH_COMPONENT16:
4510 {
4511 switch (angleFormat)
4512 {
4513 case FormatID::D16_UNORM:
4514 return DEPTH_COMPONENT16_to_D16_UNORM;
4515 case FormatID::D32_FLOAT:
4516 return DEPTH_COMPONENT16_to_D32_FLOAT;
4517 default:
4518 break;
4519 }
4520 break;
4521 }
4522 case GL_DEPTH_COMPONENT24:
4523 {
4524 switch (angleFormat)
4525 {
4526 case FormatID::D24_UNORM_S8_UINT:
4527 return DEPTH_COMPONENT24_to_D24_UNORM_S8_UINT;
4528 case FormatID::D24_UNORM_X8_UINT:
4529 return DEPTH_COMPONENT24_to_D24_UNORM_X8_UINT;
4530 case FormatID::D32_FLOAT:
4531 return DEPTH_COMPONENT24_to_D32_FLOAT;
4532 case FormatID::D32_FLOAT_S8X24_UINT:
4533 return DEPTH_COMPONENT24_to_D32_FLOAT_S8X24_UINT;
4534 default:
4535 break;
4536 }
4537 break;
4538 }
4539 case GL_DEPTH_COMPONENT32F:
4540 {
4541 switch (angleFormat)
4542 {
4543 case FormatID::D32_FLOAT:
4544 return DEPTH_COMPONENT32F_to_D32_FLOAT;
4545 default:
4546 break;
4547 }
4548 break;
4549 }
4550 case GL_DEPTH_COMPONENT32_OES:
4551 {
4552 switch (angleFormat)
4553 {
4554 case FormatID::D32_FLOAT:
4555 return DEPTH_COMPONENT32_OES_to_D32_FLOAT;
4556 default:
4557 return DEPTH_COMPONENT32_OES_to_default;
4558 }
4559 }
4560 case GL_ETC1_RGB8_LOSSY_DECODE_ANGLE:
4561 {
4562 switch (angleFormat)
4563 {
4564 case FormatID::BC1_RGB_UNORM_BLOCK:
4565 return ETC1_RGB8_LOSSY_DECODE_ANGLE_to_BC1_RGB_UNORM_BLOCK;
4566 default:
4567 break;
4568 }
4569 break;
4570 }
4571 case GL_ETC1_RGB8_OES:
4572 {
4573 switch (angleFormat)
4574 {
4575 case FormatID::ETC1_R8G8B8_UNORM_BLOCK:
4576 return ETC1_RGB8_OES_to_ETC1_R8G8B8_UNORM_BLOCK;
4577 case FormatID::ETC2_R8G8B8_UNORM_BLOCK:
4578 return ETC1_RGB8_OES_to_ETC2_R8G8B8_UNORM_BLOCK;
4579 case FormatID::R8G8B8A8_UNORM:
4580 return ETC1_RGB8_OES_to_R8G8B8A8_UNORM;
4581 default:
4582 break;
4583 }
4584 break;
4585 }
4586 case GL_G8_B8R8_2PLANE_420_UNORM_ANGLE:
4587 return G8_B8R8_2PLANE_420_UNORM_ANGLE_to_default;
4588 case GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE:
4589 return G8_B8_R8_3PLANE_420_UNORM_ANGLE_to_default;
4590 case GL_LUMINANCE:
4591 {
4592 switch (angleFormat)
4593 {
4594 case FormatID::R16G16B16A16_FLOAT:
4595 return LUMINANCE_to_R16G16B16A16_FLOAT;
4596 case FormatID::R32G32B32A32_FLOAT:
4597 return LUMINANCE_to_R32G32B32A32_FLOAT;
4598 default:
4599 return LUMINANCE_to_default;
4600 }
4601 }
4602 case GL_LUMINANCE16F_EXT:
4603 {
4604 switch (angleFormat)
4605 {
4606 case FormatID::R16_FLOAT:
4607 return LUMINANCE16F_EXT_to_R16_FLOAT;
4608 default:
4609 return LUMINANCE16F_EXT_to_default;
4610 }
4611 }
4612 case GL_LUMINANCE32F_EXT:
4613 {
4614 switch (angleFormat)
4615 {
4616 case FormatID::R32_FLOAT:
4617 return LUMINANCE32F_EXT_to_R32_FLOAT;
4618 default:
4619 return LUMINANCE32F_EXT_to_default;
4620 }
4621 }
4622 case GL_LUMINANCE8_ALPHA8_EXT:
4623 {
4624 switch (angleFormat)
4625 {
4626 case FormatID::R8G8B8A8_UNORM:
4627 return LUMINANCE8_ALPHA8_EXT_to_R8G8B8A8_UNORM;
4628 case FormatID::R8G8_UNORM:
4629 return LUMINANCE8_ALPHA8_EXT_to_R8G8_UNORM;
4630 default:
4631 break;
4632 }
4633 break;
4634 }
4635 case GL_LUMINANCE8_EXT:
4636 {
4637 switch (angleFormat)
4638 {
4639 case FormatID::R8G8B8A8_UNORM:
4640 return LUMINANCE8_EXT_to_R8G8B8A8_UNORM;
4641 case FormatID::R8_UNORM:
4642 return LUMINANCE8_EXT_to_R8_UNORM;
4643 default:
4644 break;
4645 }
4646 break;
4647 }
4648 case GL_LUMINANCE_ALPHA:
4649 {
4650 switch (angleFormat)
4651 {
4652 case FormatID::R16G16B16A16_FLOAT:
4653 return LUMINANCE_ALPHA_to_R16G16B16A16_FLOAT;
4654 case FormatID::R32G32B32A32_FLOAT:
4655 return LUMINANCE_ALPHA_to_R32G32B32A32_FLOAT;
4656 default:
4657 return LUMINANCE_ALPHA_to_default;
4658 }
4659 }
4660 case GL_LUMINANCE_ALPHA16F_EXT:
4661 {
4662 switch (angleFormat)
4663 {
4664 case FormatID::R16G16_FLOAT:
4665 return LUMINANCE_ALPHA16F_EXT_to_R16G16_FLOAT;
4666 default:
4667 return LUMINANCE_ALPHA16F_EXT_to_default;
4668 }
4669 }
4670 case GL_LUMINANCE_ALPHA32F_EXT:
4671 {
4672 switch (angleFormat)
4673 {
4674 case FormatID::R32G32_FLOAT:
4675 return LUMINANCE_ALPHA32F_EXT_to_R32G32_FLOAT;
4676 default:
4677 return LUMINANCE_ALPHA32F_EXT_to_default;
4678 }
4679 }
4680 case GL_PALETTE4_R5_G6_B5_OES:
4681 {
4682 switch (angleFormat)
4683 {
4684 case FormatID::R8G8B8A8_UNORM:
4685 return PALETTE4_R5_G6_B5_OES_to_R8G8B8A8_UNORM;
4686 default:
4687 break;
4688 }
4689 break;
4690 }
4691 case GL_PALETTE4_RGB5_A1_OES:
4692 {
4693 switch (angleFormat)
4694 {
4695 case FormatID::R8G8B8A8_UNORM:
4696 return PALETTE4_RGB5_A1_OES_to_R8G8B8A8_UNORM;
4697 default:
4698 break;
4699 }
4700 break;
4701 }
4702 case GL_PALETTE4_RGB8_OES:
4703 {
4704 switch (angleFormat)
4705 {
4706 case FormatID::R8G8B8A8_UNORM:
4707 return PALETTE4_RGB8_OES_to_R8G8B8A8_UNORM;
4708 default:
4709 break;
4710 }
4711 break;
4712 }
4713 case GL_PALETTE4_RGBA4_OES:
4714 {
4715 switch (angleFormat)
4716 {
4717 case FormatID::R8G8B8A8_UNORM:
4718 return PALETTE4_RGBA4_OES_to_R8G8B8A8_UNORM;
4719 default:
4720 break;
4721 }
4722 break;
4723 }
4724 case GL_PALETTE4_RGBA8_OES:
4725 {
4726 switch (angleFormat)
4727 {
4728 case FormatID::R8G8B8A8_UNORM:
4729 return PALETTE4_RGBA8_OES_to_R8G8B8A8_UNORM;
4730 default:
4731 break;
4732 }
4733 break;
4734 }
4735 case GL_PALETTE8_R5_G6_B5_OES:
4736 {
4737 switch (angleFormat)
4738 {
4739 case FormatID::R8G8B8A8_UNORM:
4740 return PALETTE8_R5_G6_B5_OES_to_R8G8B8A8_UNORM;
4741 default:
4742 break;
4743 }
4744 break;
4745 }
4746 case GL_PALETTE8_RGB5_A1_OES:
4747 {
4748 switch (angleFormat)
4749 {
4750 case FormatID::R8G8B8A8_UNORM:
4751 return PALETTE8_RGB5_A1_OES_to_R8G8B8A8_UNORM;
4752 default:
4753 break;
4754 }
4755 break;
4756 }
4757 case GL_PALETTE8_RGB8_OES:
4758 {
4759 switch (angleFormat)
4760 {
4761 case FormatID::R8G8B8A8_UNORM:
4762 return PALETTE8_RGB8_OES_to_R8G8B8A8_UNORM;
4763 default:
4764 break;
4765 }
4766 break;
4767 }
4768 case GL_PALETTE8_RGBA4_OES:
4769 {
4770 switch (angleFormat)
4771 {
4772 case FormatID::R8G8B8A8_UNORM:
4773 return PALETTE8_RGBA4_OES_to_R8G8B8A8_UNORM;
4774 default:
4775 break;
4776 }
4777 break;
4778 }
4779 case GL_PALETTE8_RGBA8_OES:
4780 {
4781 switch (angleFormat)
4782 {
4783 case FormatID::R8G8B8A8_UNORM:
4784 return PALETTE8_RGBA8_OES_to_R8G8B8A8_UNORM;
4785 default:
4786 break;
4787 }
4788 break;
4789 }
4790 case GL_R11F_G11F_B10F:
4791 {
4792 switch (angleFormat)
4793 {
4794 case FormatID::R11G11B10_FLOAT:
4795 return R11F_G11F_B10F_to_R11G11B10_FLOAT;
4796 default:
4797 break;
4798 }
4799 break;
4800 }
4801 case GL_R16F:
4802 {
4803 switch (angleFormat)
4804 {
4805 case FormatID::R16_FLOAT:
4806 return R16F_to_R16_FLOAT;
4807 default:
4808 break;
4809 }
4810 break;
4811 }
4812 case GL_R16I:
4813 {
4814 switch (angleFormat)
4815 {
4816 case FormatID::R16_SINT:
4817 return R16I_to_R16_SINT;
4818 default:
4819 break;
4820 }
4821 break;
4822 }
4823 case GL_R16UI:
4824 {
4825 switch (angleFormat)
4826 {
4827 case FormatID::R16_UINT:
4828 return R16UI_to_R16_UINT;
4829 default:
4830 break;
4831 }
4832 break;
4833 }
4834 case GL_R16_EXT:
4835 {
4836 switch (angleFormat)
4837 {
4838 case FormatID::R16_UNORM:
4839 return R16_EXT_to_R16_UNORM;
4840 default:
4841 break;
4842 }
4843 break;
4844 }
4845 case GL_R16_SNORM_EXT:
4846 {
4847 switch (angleFormat)
4848 {
4849 case FormatID::R16_SNORM:
4850 return R16_SNORM_EXT_to_R16_SNORM;
4851 default:
4852 break;
4853 }
4854 break;
4855 }
4856 case GL_R16_SSCALED_ANGLEX:
4857 return R16_SSCALED_ANGLEX_to_default;
4858 case GL_R16_USCALED_ANGLEX:
4859 return R16_USCALED_ANGLEX_to_default;
4860 case GL_R32F:
4861 {
4862 switch (angleFormat)
4863 {
4864 case FormatID::R32_FLOAT:
4865 return R32F_to_R32_FLOAT;
4866 default:
4867 break;
4868 }
4869 break;
4870 }
4871 case GL_R32I:
4872 {
4873 switch (angleFormat)
4874 {
4875 case FormatID::R32_SINT:
4876 return R32I_to_R32_SINT;
4877 default:
4878 break;
4879 }
4880 break;
4881 }
4882 case GL_R32UI:
4883 {
4884 switch (angleFormat)
4885 {
4886 case FormatID::R32_UINT:
4887 return R32UI_to_R32_UINT;
4888 default:
4889 break;
4890 }
4891 break;
4892 }
4893 case GL_R8:
4894 {
4895 switch (angleFormat)
4896 {
4897 case FormatID::R8_UNORM:
4898 return R8_to_R8_UNORM;
4899 default:
4900 break;
4901 }
4902 break;
4903 }
4904 case GL_R8I:
4905 {
4906 switch (angleFormat)
4907 {
4908 case FormatID::R8_SINT:
4909 return R8I_to_R8_SINT;
4910 default:
4911 break;
4912 }
4913 break;
4914 }
4915 case GL_R8UI:
4916 {
4917 switch (angleFormat)
4918 {
4919 case FormatID::R8_UINT:
4920 return R8UI_to_R8_UINT;
4921 default:
4922 break;
4923 }
4924 break;
4925 }
4926 case GL_R8_SNORM:
4927 {
4928 switch (angleFormat)
4929 {
4930 case FormatID::R8_SNORM:
4931 return R8_SNORM_to_R8_SNORM;
4932 default:
4933 break;
4934 }
4935 break;
4936 }
4937 case GL_R8_SSCALED_ANGLEX:
4938 return R8_SSCALED_ANGLEX_to_default;
4939 case GL_R8_USCALED_ANGLEX:
4940 return R8_USCALED_ANGLEX_to_default;
4941 case GL_RG16F:
4942 {
4943 switch (angleFormat)
4944 {
4945 case FormatID::R16G16_FLOAT:
4946 return RG16F_to_R16G16_FLOAT;
4947 default:
4948 break;
4949 }
4950 break;
4951 }
4952 case GL_RG16I:
4953 {
4954 switch (angleFormat)
4955 {
4956 case FormatID::R16G16_SINT:
4957 return RG16I_to_R16G16_SINT;
4958 default:
4959 break;
4960 }
4961 break;
4962 }
4963 case GL_RG16UI:
4964 {
4965 switch (angleFormat)
4966 {
4967 case FormatID::R16G16_UINT:
4968 return RG16UI_to_R16G16_UINT;
4969 default:
4970 break;
4971 }
4972 break;
4973 }
4974 case GL_RG16_EXT:
4975 {
4976 switch (angleFormat)
4977 {
4978 case FormatID::R16G16_UNORM:
4979 return RG16_EXT_to_R16G16_UNORM;
4980 default:
4981 break;
4982 }
4983 break;
4984 }
4985 case GL_RG16_SNORM_EXT:
4986 {
4987 switch (angleFormat)
4988 {
4989 case FormatID::R16G16_SNORM:
4990 return RG16_SNORM_EXT_to_R16G16_SNORM;
4991 default:
4992 break;
4993 }
4994 break;
4995 }
4996 case GL_RG16_SSCALED_ANGLEX:
4997 return RG16_SSCALED_ANGLEX_to_default;
4998 case GL_RG16_USCALED_ANGLEX:
4999 return RG16_USCALED_ANGLEX_to_default;
5000 case GL_RG32F:
5001 {
5002 switch (angleFormat)
5003 {
5004 case FormatID::R32G32_FLOAT:
5005 return RG32F_to_R32G32_FLOAT;
5006 default:
5007 break;
5008 }
5009 break;
5010 }
5011 case GL_RG32I:
5012 {
5013 switch (angleFormat)
5014 {
5015 case FormatID::R32G32_SINT:
5016 return RG32I_to_R32G32_SINT;
5017 default:
5018 break;
5019 }
5020 break;
5021 }
5022 case GL_RG32UI:
5023 {
5024 switch (angleFormat)
5025 {
5026 case FormatID::R32G32_UINT:
5027 return RG32UI_to_R32G32_UINT;
5028 default:
5029 break;
5030 }
5031 break;
5032 }
5033 case GL_RG8:
5034 {
5035 switch (angleFormat)
5036 {
5037 case FormatID::R8G8_UNORM:
5038 return RG8_to_R8G8_UNORM;
5039 default:
5040 break;
5041 }
5042 break;
5043 }
5044 case GL_RG8I:
5045 {
5046 switch (angleFormat)
5047 {
5048 case FormatID::R8G8_SINT:
5049 return RG8I_to_R8G8_SINT;
5050 default:
5051 break;
5052 }
5053 break;
5054 }
5055 case GL_RG8UI:
5056 {
5057 switch (angleFormat)
5058 {
5059 case FormatID::R8G8_UINT:
5060 return RG8UI_to_R8G8_UINT;
5061 default:
5062 break;
5063 }
5064 break;
5065 }
5066 case GL_RG8_SNORM:
5067 {
5068 switch (angleFormat)
5069 {
5070 case FormatID::R8G8_SNORM:
5071 return RG8_SNORM_to_R8G8_SNORM;
5072 default:
5073 break;
5074 }
5075 break;
5076 }
5077 case GL_RG8_SSCALED_ANGLEX:
5078 return RG8_SSCALED_ANGLEX_to_default;
5079 case GL_RG8_USCALED_ANGLEX:
5080 return RG8_USCALED_ANGLEX_to_default;
5081 case GL_RGB:
5082 return RGB_to_default;
5083 case GL_RGB10_A2:
5084 {
5085 switch (angleFormat)
5086 {
5087 case FormatID::R10G10B10A2_UNORM:
5088 return RGB10_A2_to_R10G10B10A2_UNORM;
5089 default:
5090 break;
5091 }
5092 break;
5093 }
5094 case GL_RGB10_A2UI:
5095 {
5096 switch (angleFormat)
5097 {
5098 case FormatID::R10G10B10A2_UINT:
5099 return RGB10_A2UI_to_R10G10B10A2_UINT;
5100 default:
5101 break;
5102 }
5103 break;
5104 }
5105 case GL_RGB10_A2_SINT_ANGLEX:
5106 {
5107 switch (angleFormat)
5108 {
5109 case FormatID::R10G10B10A2_SINT:
5110 return RGB10_A2_SINT_ANGLEX_to_R10G10B10A2_SINT;
5111 default:
5112 break;
5113 }
5114 break;
5115 }
5116 case GL_RGB10_A2_SNORM_ANGLEX:
5117 {
5118 switch (angleFormat)
5119 {
5120 case FormatID::R10G10B10A2_SNORM:
5121 return RGB10_A2_SNORM_ANGLEX_to_R10G10B10A2_SNORM;
5122 default:
5123 break;
5124 }
5125 break;
5126 }
5127 case GL_RGB10_A2_SSCALED_ANGLEX:
5128 return RGB10_A2_SSCALED_ANGLEX_to_default;
5129 case GL_RGB10_A2_USCALED_ANGLEX:
5130 return RGB10_A2_USCALED_ANGLEX_to_default;
5131 case GL_RGB10_UNORM_ANGLEX:
5132 {
5133 switch (angleFormat)
5134 {
5135 case FormatID::R10G10B10A2_UNORM:
5136 return RGB10_UNORM_ANGLEX_to_R10G10B10A2_UNORM;
5137 case FormatID::R10G10B10X2_UNORM:
5138 return RGB10_UNORM_ANGLEX_to_R10G10B10X2_UNORM;
5139 default:
5140 break;
5141 }
5142 break;
5143 }
5144 case GL_RGB16F:
5145 {
5146 switch (angleFormat)
5147 {
5148 case FormatID::R16G16B16A16_FLOAT:
5149 return RGB16F_to_R16G16B16A16_FLOAT;
5150 case FormatID::R16G16B16_FLOAT:
5151 return RGB16F_to_R16G16B16_FLOAT;
5152 default:
5153 break;
5154 }
5155 break;
5156 }
5157 case GL_RGB16I:
5158 {
5159 switch (angleFormat)
5160 {
5161 case FormatID::R16G16B16A16_SINT:
5162 return RGB16I_to_R16G16B16A16_SINT;
5163 case FormatID::R16G16B16_SINT:
5164 return RGB16I_to_R16G16B16_SINT;
5165 default:
5166 break;
5167 }
5168 break;
5169 }
5170 case GL_RGB16UI:
5171 {
5172 switch (angleFormat)
5173 {
5174 case FormatID::R16G16B16A16_UINT:
5175 return RGB16UI_to_R16G16B16A16_UINT;
5176 case FormatID::R16G16B16_UINT:
5177 return RGB16UI_to_R16G16B16_UINT;
5178 default:
5179 break;
5180 }
5181 break;
5182 }
5183 case GL_RGB16_EXT:
5184 {
5185 switch (angleFormat)
5186 {
5187 case FormatID::R16G16B16A16_UNORM:
5188 return RGB16_EXT_to_R16G16B16A16_UNORM;
5189 case FormatID::R16G16B16_UNORM:
5190 return RGB16_EXT_to_R16G16B16_UNORM;
5191 case FormatID::R32G32B32A32_FLOAT:
5192 return RGB16_EXT_to_R32G32B32A32_FLOAT;
5193 case FormatID::R32G32B32_FLOAT:
5194 return RGB16_EXT_to_R32G32B32_FLOAT;
5195 default:
5196 break;
5197 }
5198 break;
5199 }
5200 case GL_RGB16_SNORM_EXT:
5201 {
5202 switch (angleFormat)
5203 {
5204 case FormatID::R16G16B16A16_SNORM:
5205 return RGB16_SNORM_EXT_to_R16G16B16A16_SNORM;
5206 case FormatID::R16G16B16_SNORM:
5207 return RGB16_SNORM_EXT_to_R16G16B16_SNORM;
5208 case FormatID::R32G32B32A32_FLOAT:
5209 return RGB16_SNORM_EXT_to_R32G32B32A32_FLOAT;
5210 case FormatID::R32G32B32_FLOAT:
5211 return RGB16_SNORM_EXT_to_R32G32B32_FLOAT;
5212 default:
5213 break;
5214 }
5215 break;
5216 }
5217 case GL_RGB16_SSCALED_ANGLEX:
5218 return RGB16_SSCALED_ANGLEX_to_default;
5219 case GL_RGB16_USCALED_ANGLEX:
5220 return RGB16_USCALED_ANGLEX_to_default;
5221 case GL_RGB32F:
5222 {
5223 switch (angleFormat)
5224 {
5225 case FormatID::R32G32B32A32_FLOAT:
5226 return RGB32F_to_R32G32B32A32_FLOAT;
5227 case FormatID::R32G32B32_FLOAT:
5228 return RGB32F_to_R32G32B32_FLOAT;
5229 default:
5230 break;
5231 }
5232 break;
5233 }
5234 case GL_RGB32I:
5235 {
5236 switch (angleFormat)
5237 {
5238 case FormatID::R32G32B32A32_SINT:
5239 return RGB32I_to_R32G32B32A32_SINT;
5240 case FormatID::R32G32B32_SINT:
5241 return RGB32I_to_R32G32B32_SINT;
5242 default:
5243 break;
5244 }
5245 break;
5246 }
5247 case GL_RGB32UI:
5248 {
5249 switch (angleFormat)
5250 {
5251 case FormatID::R32G32B32A32_UINT:
5252 return RGB32UI_to_R32G32B32A32_UINT;
5253 case FormatID::R32G32B32_UINT:
5254 return RGB32UI_to_R32G32B32_UINT;
5255 default:
5256 break;
5257 }
5258 break;
5259 }
5260 case GL_RGB565:
5261 {
5262 switch (angleFormat)
5263 {
5264 case FormatID::B5G6R5_UNORM:
5265 return RGB565_to_B5G6R5_UNORM;
5266 case FormatID::R5G6B5_UNORM:
5267 return RGB565_to_R5G6B5_UNORM;
5268 case FormatID::R8G8B8A8_UNORM:
5269 return RGB565_to_R8G8B8A8_UNORM;
5270 default:
5271 break;
5272 }
5273 break;
5274 }
5275 case GL_RGB5_A1:
5276 {
5277 switch (angleFormat)
5278 {
5279 case FormatID::A1R5G5B5_UNORM:
5280 return RGB5_A1_to_A1R5G5B5_UNORM;
5281 case FormatID::B5G5R5A1_UNORM:
5282 return RGB5_A1_to_B5G5R5A1_UNORM;
5283 case FormatID::R5G5B5A1_UNORM:
5284 return RGB5_A1_to_R5G5B5A1_UNORM;
5285 case FormatID::R8G8B8A8_UNORM:
5286 return RGB5_A1_to_R8G8B8A8_UNORM;
5287 default:
5288 break;
5289 }
5290 break;
5291 }
5292 case GL_RGB8:
5293 {
5294 switch (angleFormat)
5295 {
5296 case FormatID::R8G8B8A8_UNORM:
5297 return RGB8_to_R8G8B8A8_UNORM;
5298 case FormatID::R8G8B8_UNORM:
5299 return RGB8_to_R8G8B8_UNORM;
5300 default:
5301 break;
5302 }
5303 break;
5304 }
5305 case GL_RGB8I:
5306 {
5307 switch (angleFormat)
5308 {
5309 case FormatID::R8G8B8A8_SINT:
5310 return RGB8I_to_R8G8B8A8_SINT;
5311 case FormatID::R8G8B8_SINT:
5312 return RGB8I_to_R8G8B8_SINT;
5313 default:
5314 break;
5315 }
5316 break;
5317 }
5318 case GL_RGB8UI:
5319 {
5320 switch (angleFormat)
5321 {
5322 case FormatID::R8G8B8A8_UINT:
5323 return RGB8UI_to_R8G8B8A8_UINT;
5324 case FormatID::R8G8B8_UINT:
5325 return RGB8UI_to_R8G8B8_UINT;
5326 default:
5327 break;
5328 }
5329 break;
5330 }
5331 case GL_RGB8_SNORM:
5332 {
5333 switch (angleFormat)
5334 {
5335 case FormatID::R8G8B8A8_SNORM:
5336 return RGB8_SNORM_to_R8G8B8A8_SNORM;
5337 case FormatID::R8G8B8_SNORM:
5338 return RGB8_SNORM_to_R8G8B8_SNORM;
5339 default:
5340 break;
5341 }
5342 break;
5343 }
5344 case GL_RGB8_SSCALED_ANGLEX:
5345 return RGB8_SSCALED_ANGLEX_to_default;
5346 case GL_RGB8_USCALED_ANGLEX:
5347 return RGB8_USCALED_ANGLEX_to_default;
5348 case GL_RGB9_E5:
5349 {
5350 switch (angleFormat)
5351 {
5352 case FormatID::R9G9B9E5_SHAREDEXP:
5353 return RGB9_E5_to_R9G9B9E5_SHAREDEXP;
5354 default:
5355 break;
5356 }
5357 break;
5358 }
5359 case GL_RGBA:
5360 return RGBA_to_default;
5361 case GL_RGBA16F:
5362 {
5363 switch (angleFormat)
5364 {
5365 case FormatID::R16G16B16A16_FLOAT:
5366 return RGBA16F_to_R16G16B16A16_FLOAT;
5367 default:
5368 break;
5369 }
5370 break;
5371 }
5372 case GL_RGBA16I:
5373 {
5374 switch (angleFormat)
5375 {
5376 case FormatID::R16G16B16A16_SINT:
5377 return RGBA16I_to_R16G16B16A16_SINT;
5378 default:
5379 break;
5380 }
5381 break;
5382 }
5383 case GL_RGBA16UI:
5384 {
5385 switch (angleFormat)
5386 {
5387 case FormatID::R16G16B16A16_UINT:
5388 return RGBA16UI_to_R16G16B16A16_UINT;
5389 default:
5390 break;
5391 }
5392 break;
5393 }
5394 case GL_RGBA16_EXT:
5395 {
5396 switch (angleFormat)
5397 {
5398 case FormatID::R16G16B16A16_UNORM:
5399 return RGBA16_EXT_to_R16G16B16A16_UNORM;
5400 default:
5401 break;
5402 }
5403 break;
5404 }
5405 case GL_RGBA16_SNORM_EXT:
5406 {
5407 switch (angleFormat)
5408 {
5409 case FormatID::R16G16B16A16_SNORM:
5410 return RGBA16_SNORM_EXT_to_R16G16B16A16_SNORM;
5411 default:
5412 break;
5413 }
5414 break;
5415 }
5416 case GL_RGBA16_SSCALED_ANGLEX:
5417 return RGBA16_SSCALED_ANGLEX_to_default;
5418 case GL_RGBA16_USCALED_ANGLEX:
5419 return RGBA16_USCALED_ANGLEX_to_default;
5420 case GL_RGBA32F:
5421 {
5422 switch (angleFormat)
5423 {
5424 case FormatID::R32G32B32A32_FLOAT:
5425 return RGBA32F_to_R32G32B32A32_FLOAT;
5426 default:
5427 break;
5428 }
5429 break;
5430 }
5431 case GL_RGBA32I:
5432 {
5433 switch (angleFormat)
5434 {
5435 case FormatID::R32G32B32A32_SINT:
5436 return RGBA32I_to_R32G32B32A32_SINT;
5437 default:
5438 break;
5439 }
5440 break;
5441 }
5442 case GL_RGBA32UI:
5443 {
5444 switch (angleFormat)
5445 {
5446 case FormatID::R32G32B32A32_UINT:
5447 return RGBA32UI_to_R32G32B32A32_UINT;
5448 default:
5449 break;
5450 }
5451 break;
5452 }
5453 case GL_RGBA4:
5454 {
5455 switch (angleFormat)
5456 {
5457 case FormatID::B4G4R4A4_UNORM:
5458 return RGBA4_to_B4G4R4A4_UNORM;
5459 case FormatID::R4G4B4A4_UNORM:
5460 return RGBA4_to_R4G4B4A4_UNORM;
5461 case FormatID::R8G8B8A8_UNORM:
5462 return RGBA4_to_R8G8B8A8_UNORM;
5463 default:
5464 break;
5465 }
5466 break;
5467 }
5468 case GL_RGBA8:
5469 {
5470 switch (angleFormat)
5471 {
5472 case FormatID::R8G8B8A8_UNORM:
5473 return RGBA8_to_R8G8B8A8_UNORM;
5474 default:
5475 break;
5476 }
5477 break;
5478 }
5479 case GL_RGBA8I:
5480 {
5481 switch (angleFormat)
5482 {
5483 case FormatID::R8G8B8A8_SINT:
5484 return RGBA8I_to_R8G8B8A8_SINT;
5485 default:
5486 break;
5487 }
5488 break;
5489 }
5490 case GL_RGBA8UI:
5491 {
5492 switch (angleFormat)
5493 {
5494 case FormatID::R8G8B8A8_UINT:
5495 return RGBA8UI_to_R8G8B8A8_UINT;
5496 default:
5497 break;
5498 }
5499 break;
5500 }
5501 case GL_RGBA8_SNORM:
5502 {
5503 switch (angleFormat)
5504 {
5505 case FormatID::R8G8B8A8_SNORM:
5506 return RGBA8_SNORM_to_R8G8B8A8_SNORM;
5507 default:
5508 break;
5509 }
5510 break;
5511 }
5512 case GL_RGBA8_SSCALED_ANGLEX:
5513 return RGBA8_SSCALED_ANGLEX_to_default;
5514 case GL_RGBA8_USCALED_ANGLEX:
5515 return RGBA8_USCALED_ANGLEX_to_default;
5516 case GL_RGBX8_ANGLE:
5517 {
5518 switch (angleFormat)
5519 {
5520 case FormatID::R8G8B8A8_UNORM:
5521 return RGBX8_ANGLE_to_R8G8B8A8_UNORM;
5522 case FormatID::R8G8B8X8_UNORM:
5523 return RGBX8_ANGLE_to_R8G8B8X8_UNORM;
5524 default:
5525 break;
5526 }
5527 break;
5528 }
5529 case GL_RGBX8_SRGB_ANGLEX:
5530 {
5531 switch (angleFormat)
5532 {
5533 case FormatID::R8G8B8A8_UNORM_SRGB:
5534 return RGBX8_SRGB_ANGLEX_to_R8G8B8A8_UNORM_SRGB;
5535 case FormatID::R8G8B8X8_UNORM_SRGB:
5536 return RGBX8_SRGB_ANGLEX_to_R8G8B8X8_UNORM_SRGB;
5537 default:
5538 break;
5539 }
5540 break;
5541 }
5542 case GL_SR8_EXT:
5543 {
5544 switch (angleFormat)
5545 {
5546 case FormatID::R8_UNORM_SRGB:
5547 return SR8_EXT_to_R8_UNORM_SRGB;
5548 default:
5549 break;
5550 }
5551 break;
5552 }
5553 case GL_SRG8_EXT:
5554 {
5555 switch (angleFormat)
5556 {
5557 case FormatID::R8G8_UNORM_SRGB:
5558 return SRG8_EXT_to_R8G8_UNORM_SRGB;
5559 default:
5560 break;
5561 }
5562 break;
5563 }
5564 case GL_SRGB8:
5565 {
5566 switch (angleFormat)
5567 {
5568 case FormatID::R8G8B8A8_UNORM_SRGB:
5569 return SRGB8_to_R8G8B8A8_UNORM_SRGB;
5570 case FormatID::R8G8B8_UNORM_SRGB:
5571 return SRGB8_to_R8G8B8_UNORM_SRGB;
5572 default:
5573 break;
5574 }
5575 break;
5576 }
5577 case GL_SRGB8_ALPHA8:
5578 {
5579 switch (angleFormat)
5580 {
5581 case FormatID::R8G8B8A8_UNORM_SRGB:
5582 return SRGB8_ALPHA8_to_R8G8B8A8_UNORM_SRGB;
5583 default:
5584 break;
5585 }
5586 break;
5587 }
5588 case GL_STENCIL_INDEX8:
5589 {
5590 switch (angleFormat)
5591 {
5592 case FormatID::D24_UNORM_S8_UINT:
5593 return STENCIL_INDEX8_to_D24_UNORM_S8_UINT;
5594 case FormatID::S8_UINT:
5595 return STENCIL_INDEX8_to_S8_UINT;
5596 default:
5597 return STENCIL_INDEX8_to_default;
5598 }
5599 }
5600
5601 default:
5602 break;
5603 }
5604 // clang-format on
5605 ASSERT(internalFormat == GL_NONE || angleFormat == angle::FormatID::NONE);
5606 static LoadFunctionMap emptyLoadFunctionsMap;
5607 return emptyLoadFunctionsMap;
5608
5609 } // GetLoadFunctionsMap
5610
5611 } // namespace angle
5612