tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

format_map_autogen.cpp (52515B)


      1 // GENERATED FILE - DO NOT EDIT.
      2 // Generated by gen_format_map.py using data from format_map_data.json.
      3 // ES3 format info from es3_format_type_combinations.json.
      4 //
      5 // Copyright 2016 The ANGLE Project Authors. All rights reserved.
      6 // Use of this source code is governed by a BSD-style license that can be
      7 // found in the LICENSE file.
      8 //
      9 // format_map:
     10 //   Determining the sized internal format from a (format,type) pair.
     11 //   Also check es3 format combinations for validity.
     12 
     13 #include "angle_gl.h"
     14 #include "common/debug.h"
     15 
     16 namespace gl
     17 {
     18 
     19 GLenum GetSizedFormatInternal(GLenum format, GLenum type)
     20 {
     21    switch (format)
     22    {
     23        case GL_ALPHA:
     24            switch (type)
     25            {
     26                case GL_FLOAT:
     27                    return GL_ALPHA32F_EXT;
     28                case GL_HALF_FLOAT:
     29                    return GL_ALPHA16F_EXT;
     30                case GL_HALF_FLOAT_OES:
     31                    return GL_ALPHA16F_EXT;
     32                case GL_UNSIGNED_BYTE:
     33                    return GL_ALPHA8_EXT;
     34                default:
     35                    break;
     36            }
     37            break;
     38 
     39        case GL_BGRA_EXT:
     40            switch (type)
     41            {
     42                case GL_UNSIGNED_BYTE:
     43                    return GL_BGRA8_EXT;
     44                case GL_UNSIGNED_INT_2_10_10_10_REV:
     45                    return GL_BGR10_A2_ANGLEX;
     46                case GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT:
     47                    return GL_BGR5_A1_ANGLEX;
     48                case GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT:
     49                    return GL_BGRA4_ANGLEX;
     50                case GL_UNSIGNED_SHORT_5_6_5:
     51                    return GL_BGR565_ANGLEX;
     52                default:
     53                    break;
     54            }
     55            break;
     56 
     57        case GL_COMPRESSED_RED_GREEN_RGTC2_EXT:
     58            switch (type)
     59            {
     60                case GL_UNSIGNED_BYTE:
     61                    return GL_COMPRESSED_RED_GREEN_RGTC2_EXT;
     62                default:
     63                    break;
     64            }
     65            break;
     66 
     67        case GL_COMPRESSED_RED_RGTC1_EXT:
     68            switch (type)
     69            {
     70                case GL_UNSIGNED_BYTE:
     71                    return GL_COMPRESSED_RED_RGTC1_EXT;
     72                default:
     73                    break;
     74            }
     75            break;
     76 
     77        case GL_COMPRESSED_RGBA_BPTC_UNORM_EXT:
     78            switch (type)
     79            {
     80                case GL_UNSIGNED_BYTE:
     81                    return GL_COMPRESSED_RGBA_BPTC_UNORM_EXT;
     82                default:
     83                    break;
     84            }
     85            break;
     86 
     87        case GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:
     88            switch (type)
     89            {
     90                case GL_UNSIGNED_BYTE:
     91                    return GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;
     92                default:
     93                    break;
     94            }
     95            break;
     96 
     97        case GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:
     98            switch (type)
     99            {
    100                case GL_UNSIGNED_BYTE:
    101                    return GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;
    102                default:
    103                    break;
    104            }
    105            break;
    106 
    107        case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
    108            switch (type)
    109            {
    110                case GL_UNSIGNED_BYTE:
    111                    return GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
    112                default:
    113                    break;
    114            }
    115            break;
    116 
    117        case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
    118            switch (type)
    119            {
    120                case GL_UNSIGNED_BYTE:
    121                    return GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE;
    122                default:
    123                    break;
    124            }
    125            break;
    126 
    127        case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
    128            switch (type)
    129            {
    130                case GL_UNSIGNED_BYTE:
    131                    return GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE;
    132                default:
    133                    break;
    134            }
    135            break;
    136 
    137        case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT:
    138            switch (type)
    139            {
    140                case GL_UNSIGNED_BYTE:
    141                    return GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;
    142                default:
    143                    break;
    144            }
    145            break;
    146 
    147        case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT:
    148            switch (type)
    149            {
    150                case GL_UNSIGNED_BYTE:
    151                    return GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT;
    152                default:
    153                    break;
    154            }
    155            break;
    156 
    157        case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG:
    158            switch (type)
    159            {
    160                case GL_UNSIGNED_BYTE:
    161                    return GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG;
    162                default:
    163                    break;
    164            }
    165            break;
    166 
    167        case GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG:
    168            switch (type)
    169            {
    170                case GL_UNSIGNED_BYTE:
    171                    return GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG;
    172                default:
    173                    break;
    174            }
    175            break;
    176 
    177        case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
    178            switch (type)
    179            {
    180                case GL_UNSIGNED_BYTE:
    181                    return GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
    182                default:
    183                    break;
    184            }
    185            break;
    186 
    187        case GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT:
    188            switch (type)
    189            {
    190                case GL_UNSIGNED_BYTE:
    191                    return GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT;
    192                default:
    193                    break;
    194            }
    195            break;
    196 
    197        case GL_COMPRESSED_SIGNED_RED_RGTC1_EXT:
    198            switch (type)
    199            {
    200                case GL_UNSIGNED_BYTE:
    201                    return GL_COMPRESSED_SIGNED_RED_RGTC1_EXT;
    202                default:
    203                    break;
    204            }
    205            break;
    206 
    207        case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:
    208            switch (type)
    209            {
    210                case GL_UNSIGNED_BYTE:
    211                    return GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT;
    212                default:
    213                    break;
    214            }
    215            break;
    216 
    217        case GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT:
    218            switch (type)
    219            {
    220                case GL_UNSIGNED_BYTE:
    221                    return GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT;
    222                default:
    223                    break;
    224            }
    225            break;
    226 
    227        case GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT:
    228            switch (type)
    229            {
    230                case GL_UNSIGNED_BYTE:
    231                    return GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT;
    232                default:
    233                    break;
    234            }
    235            break;
    236 
    237        case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
    238            switch (type)
    239            {
    240                case GL_UNSIGNED_BYTE:
    241                    return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;
    242                default:
    243                    break;
    244            }
    245            break;
    246 
    247        case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
    248            switch (type)
    249            {
    250                case GL_UNSIGNED_BYTE:
    251                    return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;
    252                default:
    253                    break;
    254            }
    255            break;
    256 
    257        case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
    258            switch (type)
    259            {
    260                case GL_UNSIGNED_BYTE:
    261                    return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;
    262                default:
    263                    break;
    264            }
    265            break;
    266 
    267        case GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT:
    268            switch (type)
    269            {
    270                case GL_UNSIGNED_BYTE:
    271                    return GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT;
    272                default:
    273                    break;
    274            }
    275            break;
    276 
    277        case GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT:
    278            switch (type)
    279            {
    280                case GL_UNSIGNED_BYTE:
    281                    return GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT;
    282                default:
    283                    break;
    284            }
    285            break;
    286 
    287        case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
    288            switch (type)
    289            {
    290                case GL_UNSIGNED_BYTE:
    291                    return GL_COMPRESSED_SRGB_S3TC_DXT1_EXT;
    292                default:
    293                    break;
    294            }
    295            break;
    296 
    297        case GL_DEPTH_COMPONENT:
    298            switch (type)
    299            {
    300                case GL_FLOAT:
    301                    return GL_DEPTH_COMPONENT32F;
    302                case GL_UNSIGNED_INT:
    303                    return GL_DEPTH_COMPONENT32_OES;
    304                case GL_UNSIGNED_INT_24_8:
    305                    return GL_DEPTH24_STENCIL8;
    306                case GL_UNSIGNED_SHORT:
    307                    return GL_DEPTH_COMPONENT16;
    308                default:
    309                    break;
    310            }
    311            break;
    312 
    313        case GL_DEPTH_STENCIL:
    314            switch (type)
    315            {
    316                case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:
    317                    return GL_DEPTH32F_STENCIL8;
    318                case GL_UNSIGNED_INT_24_8:
    319                    return GL_DEPTH24_STENCIL8;
    320                default:
    321                    break;
    322            }
    323            break;
    324 
    325        case GL_LUMINANCE:
    326            switch (type)
    327            {
    328                case GL_FLOAT:
    329                    return GL_LUMINANCE32F_EXT;
    330                case GL_HALF_FLOAT:
    331                    return GL_LUMINANCE16F_EXT;
    332                case GL_HALF_FLOAT_OES:
    333                    return GL_LUMINANCE16F_EXT;
    334                case GL_UNSIGNED_BYTE:
    335                    return GL_LUMINANCE8_EXT;
    336                default:
    337                    break;
    338            }
    339            break;
    340 
    341        case GL_LUMINANCE_ALPHA:
    342            switch (type)
    343            {
    344                case GL_FLOAT:
    345                    return GL_LUMINANCE_ALPHA32F_EXT;
    346                case GL_HALF_FLOAT:
    347                    return GL_LUMINANCE_ALPHA16F_EXT;
    348                case GL_HALF_FLOAT_OES:
    349                    return GL_LUMINANCE_ALPHA16F_EXT;
    350                case GL_UNSIGNED_BYTE:
    351                    return GL_LUMINANCE8_ALPHA8_EXT;
    352                default:
    353                    break;
    354            }
    355            break;
    356 
    357        case GL_RED:
    358            switch (type)
    359            {
    360                case GL_BYTE:
    361                    return GL_R8_SNORM;
    362                case GL_FLOAT:
    363                    return GL_R32F;
    364                case GL_HALF_FLOAT:
    365                    return GL_R16F;
    366                case GL_HALF_FLOAT_OES:
    367                    return GL_R16F;
    368                case GL_SHORT:
    369                    return GL_R16_SNORM_EXT;
    370                case GL_UNSIGNED_BYTE:
    371                    return GL_R8;
    372                case GL_UNSIGNED_SHORT:
    373                    return GL_R16_EXT;
    374                default:
    375                    break;
    376            }
    377            break;
    378 
    379        case GL_RED_INTEGER:
    380            switch (type)
    381            {
    382                case GL_BYTE:
    383                    return GL_R8I;
    384                case GL_INT:
    385                    return GL_R32I;
    386                case GL_SHORT:
    387                    return GL_R16I;
    388                case GL_UNSIGNED_BYTE:
    389                    return GL_R8UI;
    390                case GL_UNSIGNED_INT:
    391                    return GL_R32UI;
    392                case GL_UNSIGNED_SHORT:
    393                    return GL_R16UI;
    394                default:
    395                    break;
    396            }
    397            break;
    398 
    399        case GL_RG:
    400            switch (type)
    401            {
    402                case GL_BYTE:
    403                    return GL_RG8_SNORM;
    404                case GL_FLOAT:
    405                    return GL_RG32F;
    406                case GL_HALF_FLOAT:
    407                    return GL_RG16F;
    408                case GL_HALF_FLOAT_OES:
    409                    return GL_RG16F;
    410                case GL_SHORT:
    411                    return GL_RG16_SNORM_EXT;
    412                case GL_UNSIGNED_BYTE:
    413                    return GL_RG8;
    414                case GL_UNSIGNED_SHORT:
    415                    return GL_RG16_EXT;
    416                default:
    417                    break;
    418            }
    419            break;
    420 
    421        case GL_RGB:
    422            switch (type)
    423            {
    424                case GL_BYTE:
    425                    return GL_RGB8_SNORM;
    426                case GL_FLOAT:
    427                    return GL_RGB32F;
    428                case GL_HALF_FLOAT:
    429                    return GL_RGB16F;
    430                case GL_HALF_FLOAT_OES:
    431                    return GL_RGB16F;
    432                case GL_SHORT:
    433                    return GL_RGB16_SNORM_EXT;
    434                case GL_UNSIGNED_BYTE:
    435                    return GL_RGB8;
    436                case GL_UNSIGNED_INT_10F_11F_11F_REV:
    437                    return GL_R11F_G11F_B10F;
    438                case GL_UNSIGNED_INT_2_10_10_10_REV:
    439                    return GL_RGB10_UNORM_ANGLEX;
    440                case GL_UNSIGNED_INT_5_9_9_9_REV:
    441                    return GL_RGB9_E5;
    442                case GL_UNSIGNED_SHORT:
    443                    return GL_RGB16_EXT;
    444                case GL_UNSIGNED_SHORT_5_6_5:
    445                    return GL_RGB565;
    446                default:
    447                    break;
    448            }
    449            break;
    450 
    451        case GL_RGBA:
    452            switch (type)
    453            {
    454                case GL_BYTE:
    455                    return GL_RGBA8_SNORM;
    456                case GL_FLOAT:
    457                    return GL_RGBA32F;
    458                case GL_HALF_FLOAT:
    459                    return GL_RGBA16F;
    460                case GL_HALF_FLOAT_OES:
    461                    return GL_RGBA16F;
    462                case GL_SHORT:
    463                    return GL_RGBA16_SNORM_EXT;
    464                case GL_UNSIGNED_BYTE:
    465                    return GL_RGBA8;
    466                case GL_UNSIGNED_INT_2_10_10_10_REV:
    467                    return GL_RGB10_A2;
    468                case GL_UNSIGNED_SHORT:
    469                    return GL_RGBA16_EXT;
    470                case GL_UNSIGNED_SHORT_4_4_4_4:
    471                    return GL_RGBA4;
    472                case GL_UNSIGNED_SHORT_5_5_5_1:
    473                    return GL_RGB5_A1;
    474                default:
    475                    break;
    476            }
    477            break;
    478 
    479        case GL_RGBA_INTEGER:
    480            switch (type)
    481            {
    482                case GL_BYTE:
    483                    return GL_RGBA8I;
    484                case GL_INT:
    485                    return GL_RGBA32I;
    486                case GL_SHORT:
    487                    return GL_RGBA16I;
    488                case GL_UNSIGNED_BYTE:
    489                    return GL_RGBA8UI;
    490                case GL_UNSIGNED_INT:
    491                    return GL_RGBA32UI;
    492                case GL_UNSIGNED_INT_2_10_10_10_REV:
    493                    return GL_RGB10_A2UI;
    494                case GL_UNSIGNED_SHORT:
    495                    return GL_RGBA16UI;
    496                default:
    497                    break;
    498            }
    499            break;
    500 
    501        case GL_RGB_INTEGER:
    502            switch (type)
    503            {
    504                case GL_BYTE:
    505                    return GL_RGB8I;
    506                case GL_INT:
    507                    return GL_RGB32I;
    508                case GL_SHORT:
    509                    return GL_RGB16I;
    510                case GL_UNSIGNED_BYTE:
    511                    return GL_RGB8UI;
    512                case GL_UNSIGNED_INT:
    513                    return GL_RGB32UI;
    514                case GL_UNSIGNED_SHORT:
    515                    return GL_RGB16UI;
    516                default:
    517                    break;
    518            }
    519            break;
    520 
    521        case GL_RG_INTEGER:
    522            switch (type)
    523            {
    524                case GL_BYTE:
    525                    return GL_RG8I;
    526                case GL_INT:
    527                    return GL_RG32I;
    528                case GL_SHORT:
    529                    return GL_RG16I;
    530                case GL_UNSIGNED_BYTE:
    531                    return GL_RG8UI;
    532                case GL_UNSIGNED_INT:
    533                    return GL_RG32UI;
    534                case GL_UNSIGNED_SHORT:
    535                    return GL_RG16UI;
    536                default:
    537                    break;
    538            }
    539            break;
    540 
    541        case GL_SRGB_ALPHA_EXT:
    542            switch (type)
    543            {
    544                case GL_UNSIGNED_BYTE:
    545                    return GL_SRGB8_ALPHA8;
    546                default:
    547                    break;
    548            }
    549            break;
    550 
    551        case GL_SRGB_EXT:
    552            switch (type)
    553            {
    554                case GL_UNSIGNED_BYTE:
    555                    return GL_SRGB8;
    556                default:
    557                    break;
    558            }
    559            break;
    560 
    561        case GL_STENCIL:
    562            switch (type)
    563            {
    564                case GL_UNSIGNED_BYTE:
    565                    return GL_STENCIL_INDEX8;
    566                default:
    567                    break;
    568            }
    569            break;
    570 
    571        case GL_STENCIL_INDEX_OES:
    572            switch (type)
    573            {
    574                case GL_UNSIGNED_BYTE:
    575                    return GL_STENCIL_INDEX8;
    576                default:
    577                    break;
    578            }
    579            break;
    580 
    581        case GL_NONE:
    582            return GL_NONE;
    583 
    584        default:
    585            break;
    586    }
    587 
    588    return GL_NONE;
    589 }
    590 
    591 bool ValidES3Format(GLenum format)
    592 {
    593    switch (format)
    594    {
    595        case GL_ALPHA:
    596        case GL_BGRA_EXT:
    597        case GL_DEPTH_COMPONENT:
    598        case GL_DEPTH_STENCIL:
    599        case GL_LUMINANCE:
    600        case GL_LUMINANCE_ALPHA:
    601        case GL_RED:
    602        case GL_RED_INTEGER:
    603        case GL_RG:
    604        case GL_RGB:
    605        case GL_RGBA:
    606        case GL_RGBA_INTEGER:
    607        case GL_RGB_INTEGER:
    608        case GL_RG_INTEGER:
    609        case GL_SRGB_ALPHA_EXT:
    610        case GL_SRGB_EXT:
    611        case GL_STENCIL_INDEX:
    612            return true;
    613 
    614        default:
    615            return false;
    616    }
    617 }
    618 
    619 bool ValidES3Type(GLenum type)
    620 {
    621    switch (type)
    622    {
    623        case GL_BYTE:
    624        case GL_FLOAT:
    625        case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:
    626        case GL_HALF_FLOAT:
    627        case GL_HALF_FLOAT_OES:
    628        case GL_INT:
    629        case GL_SHORT:
    630        case GL_UNSIGNED_BYTE:
    631        case GL_UNSIGNED_INT:
    632        case GL_UNSIGNED_INT_10F_11F_11F_REV:
    633        case GL_UNSIGNED_INT_24_8:
    634        case GL_UNSIGNED_INT_2_10_10_10_REV:
    635        case GL_UNSIGNED_INT_5_9_9_9_REV:
    636        case GL_UNSIGNED_SHORT:
    637        case GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT:
    638        case GL_UNSIGNED_SHORT_4_4_4_4:
    639        case GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT:
    640        case GL_UNSIGNED_SHORT_5_5_5_1:
    641        case GL_UNSIGNED_SHORT_5_6_5:
    642            return true;
    643 
    644        default:
    645            return false;
    646    }
    647 }
    648 
    649 bool ValidES3FormatCombination(GLenum format, GLenum type, GLenum internalFormat)
    650 {
    651    ASSERT(ValidES3Format(format) && ValidES3Type(type));
    652 
    653    switch (format)
    654    {
    655        case GL_ALPHA:
    656            switch (type)
    657            {
    658                case GL_FLOAT:
    659                {
    660                    switch (internalFormat)
    661                    {
    662                        case GL_ALPHA:
    663                        case GL_ALPHA32F_EXT:
    664                            return true;
    665                        default:
    666                            break;
    667                    }
    668                    break;
    669                }
    670                case GL_HALF_FLOAT:
    671                {
    672                    switch (internalFormat)
    673                    {
    674                        case GL_ALPHA:
    675                        case GL_ALPHA16F_EXT:
    676                            return true;
    677                        default:
    678                            break;
    679                    }
    680                    break;
    681                }
    682                case GL_HALF_FLOAT_OES:
    683                {
    684                    switch (internalFormat)
    685                    {
    686                        case GL_ALPHA:
    687                        case GL_ALPHA16F_EXT:
    688                            return true;
    689                        default:
    690                            break;
    691                    }
    692                    break;
    693                }
    694                case GL_UNSIGNED_BYTE:
    695                {
    696                    switch (internalFormat)
    697                    {
    698                        case GL_ALPHA:
    699                        case GL_ALPHA8_EXT:
    700                            return true;
    701                        default:
    702                            break;
    703                    }
    704                    break;
    705                }
    706                default:
    707                    break;
    708            }
    709            break;
    710 
    711        case GL_BGRA_EXT:
    712            switch (type)
    713            {
    714                case GL_UNSIGNED_BYTE:
    715                {
    716                    switch (internalFormat)
    717                    {
    718                        case GL_BGRA_EXT:
    719                        case GL_BGRA8_EXT:
    720                        case GL_BGRA4_ANGLEX:
    721                        case GL_BGR5_A1_ANGLEX:
    722                            return true;
    723                        default:
    724                            break;
    725                    }
    726                    break;
    727                }
    728                case GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT:
    729                {
    730                    switch (internalFormat)
    731                    {
    732                        case GL_BGR5_A1_ANGLEX:
    733                            return true;
    734                        default:
    735                            break;
    736                    }
    737                    break;
    738                }
    739                case GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT:
    740                {
    741                    switch (internalFormat)
    742                    {
    743                        case GL_BGRA4_ANGLEX:
    744                            return true;
    745                        default:
    746                            break;
    747                    }
    748                    break;
    749                }
    750                default:
    751                    break;
    752            }
    753            break;
    754 
    755        case GL_DEPTH_COMPONENT:
    756            switch (type)
    757            {
    758                case GL_FLOAT:
    759                {
    760                    switch (internalFormat)
    761                    {
    762                        case GL_DEPTH_COMPONENT32F:
    763                            return true;
    764                        default:
    765                            break;
    766                    }
    767                    break;
    768                }
    769                case GL_UNSIGNED_INT:
    770                {
    771                    switch (internalFormat)
    772                    {
    773                        case GL_DEPTH_COMPONENT24:
    774                        case GL_DEPTH_COMPONENT16:
    775                        case GL_DEPTH_COMPONENT:
    776                            return true;
    777                        default:
    778                            break;
    779                    }
    780                    break;
    781                }
    782                case GL_UNSIGNED_INT_24_8:
    783                {
    784                    switch (internalFormat)
    785                    {
    786                        case GL_DEPTH_COMPONENT32_OES:
    787                            return true;
    788                        default:
    789                            break;
    790                    }
    791                    break;
    792                }
    793                case GL_UNSIGNED_SHORT:
    794                {
    795                    switch (internalFormat)
    796                    {
    797                        case GL_DEPTH_COMPONENT16:
    798                        case GL_DEPTH_COMPONENT:
    799                            return true;
    800                        default:
    801                            break;
    802                    }
    803                    break;
    804                }
    805                default:
    806                    break;
    807            }
    808            break;
    809 
    810        case GL_DEPTH_STENCIL:
    811            switch (type)
    812            {
    813                case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:
    814                {
    815                    switch (internalFormat)
    816                    {
    817                        case GL_DEPTH32F_STENCIL8:
    818                            return true;
    819                        default:
    820                            break;
    821                    }
    822                    break;
    823                }
    824                case GL_UNSIGNED_INT_24_8:
    825                {
    826                    switch (internalFormat)
    827                    {
    828                        case GL_DEPTH_STENCIL:
    829                        case GL_DEPTH24_STENCIL8:
    830                            return true;
    831                        default:
    832                            break;
    833                    }
    834                    break;
    835                }
    836                default:
    837                    break;
    838            }
    839            break;
    840 
    841        case GL_LUMINANCE:
    842            switch (type)
    843            {
    844                case GL_FLOAT:
    845                {
    846                    switch (internalFormat)
    847                    {
    848                        case GL_LUMINANCE:
    849                        case GL_LUMINANCE32F_EXT:
    850                            return true;
    851                        default:
    852                            break;
    853                    }
    854                    break;
    855                }
    856                case GL_HALF_FLOAT:
    857                {
    858                    switch (internalFormat)
    859                    {
    860                        case GL_LUMINANCE:
    861                        case GL_LUMINANCE16F_EXT:
    862                            return true;
    863                        default:
    864                            break;
    865                    }
    866                    break;
    867                }
    868                case GL_HALF_FLOAT_OES:
    869                {
    870                    switch (internalFormat)
    871                    {
    872                        case GL_LUMINANCE:
    873                        case GL_LUMINANCE16F_EXT:
    874                            return true;
    875                        default:
    876                            break;
    877                    }
    878                    break;
    879                }
    880                case GL_UNSIGNED_BYTE:
    881                {
    882                    switch (internalFormat)
    883                    {
    884                        case GL_LUMINANCE:
    885                        case GL_LUMINANCE8_EXT:
    886                            return true;
    887                        default:
    888                            break;
    889                    }
    890                    break;
    891                }
    892                default:
    893                    break;
    894            }
    895            break;
    896 
    897        case GL_LUMINANCE_ALPHA:
    898            switch (type)
    899            {
    900                case GL_FLOAT:
    901                {
    902                    switch (internalFormat)
    903                    {
    904                        case GL_LUMINANCE_ALPHA:
    905                        case GL_LUMINANCE_ALPHA32F_EXT:
    906                            return true;
    907                        default:
    908                            break;
    909                    }
    910                    break;
    911                }
    912                case GL_HALF_FLOAT:
    913                {
    914                    switch (internalFormat)
    915                    {
    916                        case GL_LUMINANCE_ALPHA:
    917                        case GL_LUMINANCE_ALPHA16F_EXT:
    918                            return true;
    919                        default:
    920                            break;
    921                    }
    922                    break;
    923                }
    924                case GL_HALF_FLOAT_OES:
    925                {
    926                    switch (internalFormat)
    927                    {
    928                        case GL_LUMINANCE_ALPHA:
    929                        case GL_LUMINANCE_ALPHA16F_EXT:
    930                            return true;
    931                        default:
    932                            break;
    933                    }
    934                    break;
    935                }
    936                case GL_UNSIGNED_BYTE:
    937                {
    938                    switch (internalFormat)
    939                    {
    940                        case GL_LUMINANCE_ALPHA:
    941                        case GL_LUMINANCE8_ALPHA8_EXT:
    942                            return true;
    943                        default:
    944                            break;
    945                    }
    946                    break;
    947                }
    948                default:
    949                    break;
    950            }
    951            break;
    952 
    953        case GL_RED:
    954            switch (type)
    955            {
    956                case GL_BYTE:
    957                {
    958                    switch (internalFormat)
    959                    {
    960                        case GL_R8_SNORM:
    961                            return true;
    962                        default:
    963                            break;
    964                    }
    965                    break;
    966                }
    967                case GL_FLOAT:
    968                {
    969                    switch (internalFormat)
    970                    {
    971                        case GL_R32F:
    972                        case GL_R16F:
    973                        case GL_RED:
    974                            return true;
    975                        default:
    976                            break;
    977                    }
    978                    break;
    979                }
    980                case GL_HALF_FLOAT:
    981                {
    982                    switch (internalFormat)
    983                    {
    984                        case GL_R16F:
    985                        case GL_RED:
    986                            return true;
    987                        default:
    988                            break;
    989                    }
    990                    break;
    991                }
    992                case GL_HALF_FLOAT_OES:
    993                {
    994                    switch (internalFormat)
    995                    {
    996                        case GL_R16F:
    997                        case GL_RED:
    998                            return true;
    999                        default:
   1000                            break;
   1001                    }
   1002                    break;
   1003                }
   1004                case GL_SHORT:
   1005                {
   1006                    switch (internalFormat)
   1007                    {
   1008                        case GL_R16_SNORM_EXT:
   1009                            return true;
   1010                        default:
   1011                            break;
   1012                    }
   1013                    break;
   1014                }
   1015                case GL_UNSIGNED_BYTE:
   1016                {
   1017                    switch (internalFormat)
   1018                    {
   1019                        case GL_R8:
   1020                        case GL_RED:
   1021                        case GL_SR8_EXT:
   1022                            return true;
   1023                        default:
   1024                            break;
   1025                    }
   1026                    break;
   1027                }
   1028                case GL_UNSIGNED_SHORT:
   1029                {
   1030                    switch (internalFormat)
   1031                    {
   1032                        case GL_R16_EXT:
   1033                            return true;
   1034                        default:
   1035                            break;
   1036                    }
   1037                    break;
   1038                }
   1039                default:
   1040                    break;
   1041            }
   1042            break;
   1043 
   1044        case GL_RED_INTEGER:
   1045            switch (type)
   1046            {
   1047                case GL_BYTE:
   1048                {
   1049                    switch (internalFormat)
   1050                    {
   1051                        case GL_R8I:
   1052                            return true;
   1053                        default:
   1054                            break;
   1055                    }
   1056                    break;
   1057                }
   1058                case GL_INT:
   1059                {
   1060                    switch (internalFormat)
   1061                    {
   1062                        case GL_R32I:
   1063                            return true;
   1064                        default:
   1065                            break;
   1066                    }
   1067                    break;
   1068                }
   1069                case GL_SHORT:
   1070                {
   1071                    switch (internalFormat)
   1072                    {
   1073                        case GL_R16I:
   1074                            return true;
   1075                        default:
   1076                            break;
   1077                    }
   1078                    break;
   1079                }
   1080                case GL_UNSIGNED_BYTE:
   1081                {
   1082                    switch (internalFormat)
   1083                    {
   1084                        case GL_R8UI:
   1085                            return true;
   1086                        default:
   1087                            break;
   1088                    }
   1089                    break;
   1090                }
   1091                case GL_UNSIGNED_INT:
   1092                {
   1093                    switch (internalFormat)
   1094                    {
   1095                        case GL_R32UI:
   1096                            return true;
   1097                        default:
   1098                            break;
   1099                    }
   1100                    break;
   1101                }
   1102                case GL_UNSIGNED_SHORT:
   1103                {
   1104                    switch (internalFormat)
   1105                    {
   1106                        case GL_R16UI:
   1107                            return true;
   1108                        default:
   1109                            break;
   1110                    }
   1111                    break;
   1112                }
   1113                default:
   1114                    break;
   1115            }
   1116            break;
   1117 
   1118        case GL_RG:
   1119            switch (type)
   1120            {
   1121                case GL_BYTE:
   1122                {
   1123                    switch (internalFormat)
   1124                    {
   1125                        case GL_RG8_SNORM:
   1126                            return true;
   1127                        default:
   1128                            break;
   1129                    }
   1130                    break;
   1131                }
   1132                case GL_FLOAT:
   1133                {
   1134                    switch (internalFormat)
   1135                    {
   1136                        case GL_RG32F:
   1137                        case GL_RG16F:
   1138                        case GL_RG:
   1139                            return true;
   1140                        default:
   1141                            break;
   1142                    }
   1143                    break;
   1144                }
   1145                case GL_HALF_FLOAT:
   1146                {
   1147                    switch (internalFormat)
   1148                    {
   1149                        case GL_RG16F:
   1150                        case GL_RG:
   1151                            return true;
   1152                        default:
   1153                            break;
   1154                    }
   1155                    break;
   1156                }
   1157                case GL_HALF_FLOAT_OES:
   1158                {
   1159                    switch (internalFormat)
   1160                    {
   1161                        case GL_RG16F:
   1162                        case GL_RG:
   1163                            return true;
   1164                        default:
   1165                            break;
   1166                    }
   1167                    break;
   1168                }
   1169                case GL_SHORT:
   1170                {
   1171                    switch (internalFormat)
   1172                    {
   1173                        case GL_RG16_SNORM_EXT:
   1174                            return true;
   1175                        default:
   1176                            break;
   1177                    }
   1178                    break;
   1179                }
   1180                case GL_UNSIGNED_BYTE:
   1181                {
   1182                    switch (internalFormat)
   1183                    {
   1184                        case GL_RG8:
   1185                        case GL_RG:
   1186                        case GL_SRG8_EXT:
   1187                            return true;
   1188                        default:
   1189                            break;
   1190                    }
   1191                    break;
   1192                }
   1193                case GL_UNSIGNED_SHORT:
   1194                {
   1195                    switch (internalFormat)
   1196                    {
   1197                        case GL_RG16_EXT:
   1198                            return true;
   1199                        default:
   1200                            break;
   1201                    }
   1202                    break;
   1203                }
   1204                default:
   1205                    break;
   1206            }
   1207            break;
   1208 
   1209        case GL_RGB:
   1210            switch (type)
   1211            {
   1212                case GL_BYTE:
   1213                {
   1214                    switch (internalFormat)
   1215                    {
   1216                        case GL_RGB8_SNORM:
   1217                            return true;
   1218                        default:
   1219                            break;
   1220                    }
   1221                    break;
   1222                }
   1223                case GL_FLOAT:
   1224                {
   1225                    switch (internalFormat)
   1226                    {
   1227                        case GL_RGB32F:
   1228                        case GL_RGB16F:
   1229                        case GL_R11F_G11F_B10F:
   1230                        case GL_RGB9_E5:
   1231                        case GL_RGB:
   1232                            return true;
   1233                        default:
   1234                            break;
   1235                    }
   1236                    break;
   1237                }
   1238                case GL_HALF_FLOAT:
   1239                {
   1240                    switch (internalFormat)
   1241                    {
   1242                        case GL_RGB16F:
   1243                        case GL_R11F_G11F_B10F:
   1244                        case GL_RGB9_E5:
   1245                            return true;
   1246                        default:
   1247                            break;
   1248                    }
   1249                    break;
   1250                }
   1251                case GL_HALF_FLOAT_OES:
   1252                {
   1253                    switch (internalFormat)
   1254                    {
   1255                        case GL_RGB16F:
   1256                        case GL_R11F_G11F_B10F:
   1257                        case GL_RGB9_E5:
   1258                        case GL_RGB:
   1259                            return true;
   1260                        default:
   1261                            break;
   1262                    }
   1263                    break;
   1264                }
   1265                case GL_SHORT:
   1266                {
   1267                    switch (internalFormat)
   1268                    {
   1269                        case GL_RGB16_SNORM_EXT:
   1270                            return true;
   1271                        default:
   1272                            break;
   1273                    }
   1274                    break;
   1275                }
   1276                case GL_UNSIGNED_BYTE:
   1277                {
   1278                    switch (internalFormat)
   1279                    {
   1280                        case GL_RGB8:
   1281                        case GL_RGB565:
   1282                        case GL_SRGB8:
   1283                        case GL_RGB:
   1284                        case GL_RGBX8_ANGLE:
   1285                            return true;
   1286                        default:
   1287                            break;
   1288                    }
   1289                    break;
   1290                }
   1291                case GL_UNSIGNED_INT_10F_11F_11F_REV:
   1292                {
   1293                    switch (internalFormat)
   1294                    {
   1295                        case GL_R11F_G11F_B10F:
   1296                            return true;
   1297                        default:
   1298                            break;
   1299                    }
   1300                    break;
   1301                }
   1302                case GL_UNSIGNED_INT_2_10_10_10_REV:
   1303                {
   1304                    switch (internalFormat)
   1305                    {
   1306                        case GL_RGB:
   1307                            return true;
   1308                        default:
   1309                            break;
   1310                    }
   1311                    break;
   1312                }
   1313                case GL_UNSIGNED_INT_5_9_9_9_REV:
   1314                {
   1315                    switch (internalFormat)
   1316                    {
   1317                        case GL_RGB9_E5:
   1318                            return true;
   1319                        default:
   1320                            break;
   1321                    }
   1322                    break;
   1323                }
   1324                case GL_UNSIGNED_SHORT:
   1325                {
   1326                    switch (internalFormat)
   1327                    {
   1328                        case GL_RGB16_EXT:
   1329                            return true;
   1330                        default:
   1331                            break;
   1332                    }
   1333                    break;
   1334                }
   1335                case GL_UNSIGNED_SHORT_5_6_5:
   1336                {
   1337                    switch (internalFormat)
   1338                    {
   1339                        case GL_RGB565:
   1340                        case GL_RGB:
   1341                            return true;
   1342                        default:
   1343                            break;
   1344                    }
   1345                    break;
   1346                }
   1347                default:
   1348                    break;
   1349            }
   1350            break;
   1351 
   1352        case GL_RGBA:
   1353            switch (type)
   1354            {
   1355                case GL_BYTE:
   1356                {
   1357                    switch (internalFormat)
   1358                    {
   1359                        case GL_RGBA8_SNORM:
   1360                            return true;
   1361                        default:
   1362                            break;
   1363                    }
   1364                    break;
   1365                }
   1366                case GL_FLOAT:
   1367                {
   1368                    switch (internalFormat)
   1369                    {
   1370                        case GL_RGBA32F:
   1371                        case GL_RGBA16F:
   1372                        case GL_RGBA:
   1373                            return true;
   1374                        default:
   1375                            break;
   1376                    }
   1377                    break;
   1378                }
   1379                case GL_HALF_FLOAT:
   1380                {
   1381                    switch (internalFormat)
   1382                    {
   1383                        case GL_RGBA16F:
   1384                            return true;
   1385                        default:
   1386                            break;
   1387                    }
   1388                    break;
   1389                }
   1390                case GL_HALF_FLOAT_OES:
   1391                {
   1392                    switch (internalFormat)
   1393                    {
   1394                        case GL_RGBA16F:
   1395                        case GL_RGBA:
   1396                            return true;
   1397                        default:
   1398                            break;
   1399                    }
   1400                    break;
   1401                }
   1402                case GL_SHORT:
   1403                {
   1404                    switch (internalFormat)
   1405                    {
   1406                        case GL_RGBA16_SNORM_EXT:
   1407                            return true;
   1408                        default:
   1409                            break;
   1410                    }
   1411                    break;
   1412                }
   1413                case GL_UNSIGNED_BYTE:
   1414                {
   1415                    switch (internalFormat)
   1416                    {
   1417                        case GL_RGBA8:
   1418                        case GL_RGB5_A1:
   1419                        case GL_RGBA4:
   1420                        case GL_SRGB8_ALPHA8:
   1421                        case GL_RGBA:
   1422                            return true;
   1423                        default:
   1424                            break;
   1425                    }
   1426                    break;
   1427                }
   1428                case GL_UNSIGNED_INT_2_10_10_10_REV:
   1429                {
   1430                    switch (internalFormat)
   1431                    {
   1432                        case GL_RGB10_A2:
   1433                        case GL_RGB5_A1:
   1434                        case GL_RGBA:
   1435                            return true;
   1436                        default:
   1437                            break;
   1438                    }
   1439                    break;
   1440                }
   1441                case GL_UNSIGNED_SHORT:
   1442                {
   1443                    switch (internalFormat)
   1444                    {
   1445                        case GL_RGBA16_EXT:
   1446                            return true;
   1447                        default:
   1448                            break;
   1449                    }
   1450                    break;
   1451                }
   1452                case GL_UNSIGNED_SHORT_4_4_4_4:
   1453                {
   1454                    switch (internalFormat)
   1455                    {
   1456                        case GL_RGBA4:
   1457                        case GL_RGBA:
   1458                            return true;
   1459                        default:
   1460                            break;
   1461                    }
   1462                    break;
   1463                }
   1464                case GL_UNSIGNED_SHORT_5_5_5_1:
   1465                {
   1466                    switch (internalFormat)
   1467                    {
   1468                        case GL_RGB5_A1:
   1469                        case GL_RGBA:
   1470                            return true;
   1471                        default:
   1472                            break;
   1473                    }
   1474                    break;
   1475                }
   1476                default:
   1477                    break;
   1478            }
   1479            break;
   1480 
   1481        case GL_RGBA_INTEGER:
   1482            switch (type)
   1483            {
   1484                case GL_BYTE:
   1485                {
   1486                    switch (internalFormat)
   1487                    {
   1488                        case GL_RGBA8I:
   1489                            return true;
   1490                        default:
   1491                            break;
   1492                    }
   1493                    break;
   1494                }
   1495                case GL_INT:
   1496                {
   1497                    switch (internalFormat)
   1498                    {
   1499                        case GL_RGBA32I:
   1500                            return true;
   1501                        default:
   1502                            break;
   1503                    }
   1504                    break;
   1505                }
   1506                case GL_SHORT:
   1507                {
   1508                    switch (internalFormat)
   1509                    {
   1510                        case GL_RGBA16I:
   1511                            return true;
   1512                        default:
   1513                            break;
   1514                    }
   1515                    break;
   1516                }
   1517                case GL_UNSIGNED_BYTE:
   1518                {
   1519                    switch (internalFormat)
   1520                    {
   1521                        case GL_RGBA8UI:
   1522                            return true;
   1523                        default:
   1524                            break;
   1525                    }
   1526                    break;
   1527                }
   1528                case GL_UNSIGNED_INT:
   1529                {
   1530                    switch (internalFormat)
   1531                    {
   1532                        case GL_RGBA32UI:
   1533                            return true;
   1534                        default:
   1535                            break;
   1536                    }
   1537                    break;
   1538                }
   1539                case GL_UNSIGNED_INT_2_10_10_10_REV:
   1540                {
   1541                    switch (internalFormat)
   1542                    {
   1543                        case GL_RGB10_A2UI:
   1544                            return true;
   1545                        default:
   1546                            break;
   1547                    }
   1548                    break;
   1549                }
   1550                case GL_UNSIGNED_SHORT:
   1551                {
   1552                    switch (internalFormat)
   1553                    {
   1554                        case GL_RGBA16UI:
   1555                            return true;
   1556                        default:
   1557                            break;
   1558                    }
   1559                    break;
   1560                }
   1561                default:
   1562                    break;
   1563            }
   1564            break;
   1565 
   1566        case GL_RGB_INTEGER:
   1567            switch (type)
   1568            {
   1569                case GL_BYTE:
   1570                {
   1571                    switch (internalFormat)
   1572                    {
   1573                        case GL_RGB8I:
   1574                            return true;
   1575                        default:
   1576                            break;
   1577                    }
   1578                    break;
   1579                }
   1580                case GL_INT:
   1581                {
   1582                    switch (internalFormat)
   1583                    {
   1584                        case GL_RGB32I:
   1585                            return true;
   1586                        default:
   1587                            break;
   1588                    }
   1589                    break;
   1590                }
   1591                case GL_SHORT:
   1592                {
   1593                    switch (internalFormat)
   1594                    {
   1595                        case GL_RGB16I:
   1596                            return true;
   1597                        default:
   1598                            break;
   1599                    }
   1600                    break;
   1601                }
   1602                case GL_UNSIGNED_BYTE:
   1603                {
   1604                    switch (internalFormat)
   1605                    {
   1606                        case GL_RGB8UI:
   1607                            return true;
   1608                        default:
   1609                            break;
   1610                    }
   1611                    break;
   1612                }
   1613                case GL_UNSIGNED_INT:
   1614                {
   1615                    switch (internalFormat)
   1616                    {
   1617                        case GL_RGB32UI:
   1618                            return true;
   1619                        default:
   1620                            break;
   1621                    }
   1622                    break;
   1623                }
   1624                case GL_UNSIGNED_SHORT:
   1625                {
   1626                    switch (internalFormat)
   1627                    {
   1628                        case GL_RGB16UI:
   1629                            return true;
   1630                        default:
   1631                            break;
   1632                    }
   1633                    break;
   1634                }
   1635                default:
   1636                    break;
   1637            }
   1638            break;
   1639 
   1640        case GL_RG_INTEGER:
   1641            switch (type)
   1642            {
   1643                case GL_BYTE:
   1644                {
   1645                    switch (internalFormat)
   1646                    {
   1647                        case GL_RG8I:
   1648                            return true;
   1649                        default:
   1650                            break;
   1651                    }
   1652                    break;
   1653                }
   1654                case GL_INT:
   1655                {
   1656                    switch (internalFormat)
   1657                    {
   1658                        case GL_RG32I:
   1659                            return true;
   1660                        default:
   1661                            break;
   1662                    }
   1663                    break;
   1664                }
   1665                case GL_SHORT:
   1666                {
   1667                    switch (internalFormat)
   1668                    {
   1669                        case GL_RG16I:
   1670                            return true;
   1671                        default:
   1672                            break;
   1673                    }
   1674                    break;
   1675                }
   1676                case GL_UNSIGNED_BYTE:
   1677                {
   1678                    switch (internalFormat)
   1679                    {
   1680                        case GL_RG8UI:
   1681                            return true;
   1682                        default:
   1683                            break;
   1684                    }
   1685                    break;
   1686                }
   1687                case GL_UNSIGNED_INT:
   1688                {
   1689                    switch (internalFormat)
   1690                    {
   1691                        case GL_RG32UI:
   1692                            return true;
   1693                        default:
   1694                            break;
   1695                    }
   1696                    break;
   1697                }
   1698                case GL_UNSIGNED_SHORT:
   1699                {
   1700                    switch (internalFormat)
   1701                    {
   1702                        case GL_RG16UI:
   1703                            return true;
   1704                        default:
   1705                            break;
   1706                    }
   1707                    break;
   1708                }
   1709                default:
   1710                    break;
   1711            }
   1712            break;
   1713 
   1714        case GL_SRGB_ALPHA_EXT:
   1715            switch (type)
   1716            {
   1717                case GL_UNSIGNED_BYTE:
   1718                {
   1719                    switch (internalFormat)
   1720                    {
   1721                        case GL_SRGB_ALPHA_EXT:
   1722                        case GL_SRGB8_ALPHA8_EXT:
   1723                            return true;
   1724                        default:
   1725                            break;
   1726                    }
   1727                    break;
   1728                }
   1729                default:
   1730                    break;
   1731            }
   1732            break;
   1733 
   1734        case GL_SRGB_EXT:
   1735            switch (type)
   1736            {
   1737                case GL_UNSIGNED_BYTE:
   1738                {
   1739                    switch (internalFormat)
   1740                    {
   1741                        case GL_SRGB_EXT:
   1742                        case GL_SRGB8:
   1743                            return true;
   1744                        default:
   1745                            break;
   1746                    }
   1747                    break;
   1748                }
   1749                default:
   1750                    break;
   1751            }
   1752            break;
   1753 
   1754        case GL_STENCIL_INDEX:
   1755            switch (type)
   1756            {
   1757                case GL_UNSIGNED_BYTE:
   1758                {
   1759                    switch (internalFormat)
   1760                    {
   1761                        case GL_STENCIL_INDEX8:
   1762                            return true;
   1763                        default:
   1764                            break;
   1765                    }
   1766                    break;
   1767                }
   1768                default:
   1769                    break;
   1770            }
   1771            break;
   1772 
   1773        default:
   1774            UNREACHABLE();
   1775            break;
   1776    }
   1777 
   1778    return false;
   1779 }
   1780 
   1781 }  // namespace gl