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