Edit

kc3-lang/angle/src/libANGLE/gl_enum_utils_autogen.cpp

Branch :

  • Show log

    Commit

  • Author : Jiacheng Lu
    Date : 2019-08-27 09:35:30
    Hash : d0e56cc6
    Message : Add fallback to write GLenum as hex in capture 1. Add extension 'GL_ANGLE_program_binary' to registry_xml.py, this extension brings enum 'GL_PROGRAM_BINARY_ANGLE' which ANGLE already supports. 2. Add a fallback for converting GLenum and GLbitfield to string, for any GLenum value not found in the conversion table, write out its hex value instead of 'EnumUnknown'. It prevents GLenum from some unregistered extensions breaking the frame capture. Bug: angleproject:3804 Change-Id: I36a676305fbbcff2173bbc9f818ff589abe51434 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1775028 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Tobin Ehlis <tobine@google.com>

  • src/libANGLE/gl_enum_utils_autogen.cpp
  • // GENERATED FILE - DO NOT EDIT.
    // Generated by gen_gl_enum_utils.py using data from gl.xml and gl_angle_ext.xml.
    //
    // Copyright 2019 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    // gl_enum_utils_autogen.cpp:
    //   mapping of GLenum value to string.
    
    #include "libANGLE/gl_enum_utils_autogen.h"
    
    #include <sstream>
    
    #include "common/bitset_utils.h"
    
    namespace gl
    {
    
    namespace
    {
    constexpr char kEnumUnknown[] = "EnumUnknown";
    }  // anonymous namespace
    
    void OutputGLenumString(std::ostream &out, GLenumGroup enumGroup, unsigned int value)
    {
        const char *enumStr = GLenumToString(enumGroup, value);
        if (enumStr != kEnumUnknown)
        {
            out << enumStr;
        }
        else
        {
            out << std::hex << value << std::dec;
        }
    }
    
    void OutputGLbitfieldString(std::ostream &out, GLenumGroup enumGroup, unsigned int value)
    {
        out << GLbitfieldToString(enumGroup, value);
    }
    
    const char *GLbooleanToString(unsigned int value)
    {
        switch (value)
        {
            case 0x0:
                return "GL_FALSE";
            case 0x1:
                return "GL_TRUE";
            default:
                return kEnumUnknown;
        }
    }
    
    const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
    {
        switch (enumGroup)
        {
            case GLenumGroup::AccumOp:
            {
                switch (value)
                {
                    case 0x100:
                        return "GL_ACCUM";
                    case 0x101:
                        return "GL_LOAD";
                    case 0x102:
                        return "GL_RETURN";
                    case 0x103:
                        return "GL_MULT";
                    case 0x104:
                        return "GL_ADD";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::AlphaFunction:
            {
                switch (value)
                {
                    case 0x200:
                        return "GL_NEVER";
                    case 0x201:
                        return "GL_LESS";
                    case 0x202:
                        return "GL_EQUAL";
                    case 0x203:
                        return "GL_LEQUAL";
                    case 0x204:
                        return "GL_GREATER";
                    case 0x205:
                        return "GL_NOTEQUAL";
                    case 0x206:
                        return "GL_GEQUAL";
                    case 0x207:
                        return "GL_ALWAYS";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::AtomicCounterBufferPName:
            {
                switch (value)
                {
                    case 0x90ed:
                        return "GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER";
                    case 0x92c1:
                        return "GL_ATOMIC_COUNTER_BUFFER_BINDING";
                    case 0x92c4:
                        return "GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE";
                    case 0x92c5:
                        return "GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS";
                    case 0x92c6:
                        return "GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES";
                    case 0x92c7:
                        return "GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER";
                    case 0x92c8:
                        return "GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER";
                    case 0x92c9:
                        return "GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER";
                    case 0x92ca:
                        return "GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER";
                    case 0x92cb:
                        return "GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::AttribMask:
            {
                switch (value)
                {
                    case 0x1:
                        return "GL_CURRENT_BIT";
                    case 0x2:
                        return "GL_POINT_BIT";
                    case 0x4:
                        return "GL_LINE_BIT";
                    case 0x8:
                        return "GL_POLYGON_BIT";
                    case 0x10:
                        return "GL_POLYGON_STIPPLE_BIT";
                    case 0x20:
                        return "GL_PIXEL_MODE_BIT";
                    case 0x40:
                        return "GL_LIGHTING_BIT";
                    case 0x80:
                        return "GL_FOG_BIT";
                    case 0x100:
                        return "GL_DEPTH_BUFFER_BIT";
                    case 0x200:
                        return "GL_ACCUM_BUFFER_BIT";
                    case 0x400:
                        return "GL_STENCIL_BUFFER_BIT";
                    case 0x800:
                        return "GL_VIEWPORT_BIT";
                    case 0x1000:
                        return "GL_TRANSFORM_BIT";
                    case 0x2000:
                        return "GL_ENABLE_BIT";
                    case 0x4000:
                        return "GL_COLOR_BUFFER_BIT";
                    case 0x8000:
                        return "GL_HINT_BIT";
                    case 0x10000:
                        return "GL_EVAL_BIT";
                    case 0x20000:
                        return "GL_LIST_BIT";
                    case 0x40000:
                        return "GL_TEXTURE_BIT";
                    case 0x80000:
                        return "GL_SCISSOR_BIT";
                    case 0x20000000:
                        return "GL_MULTISAMPLE_BIT";
                    case 0xffffffff:
                        return "GL_ALL_ATTRIB_BITS";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::AttributeType:
            {
                switch (value)
                {
                    case 0x8b50:
                        return "GL_FLOAT_VEC2";
                    case 0x8b51:
                        return "GL_FLOAT_VEC3";
                    case 0x8b52:
                        return "GL_FLOAT_VEC4";
                    case 0x8b53:
                        return "GL_INT_VEC2";
                    case 0x8b54:
                        return "GL_INT_VEC3";
                    case 0x8b55:
                        return "GL_INT_VEC4";
                    case 0x8b56:
                        return "GL_BOOL";
                    case 0x8b57:
                        return "GL_BOOL_VEC2";
                    case 0x8b58:
                        return "GL_BOOL_VEC3";
                    case 0x8b59:
                        return "GL_BOOL_VEC4";
                    case 0x8b5a:
                        return "GL_FLOAT_MAT2";
                    case 0x8b5b:
                        return "GL_FLOAT_MAT3";
                    case 0x8b5c:
                        return "GL_FLOAT_MAT4";
                    case 0x8b5d:
                        return "GL_SAMPLER_1D";
                    case 0x8b5e:
                        return "GL_SAMPLER_2D";
                    case 0x8b5f:
                        return "GL_SAMPLER_3D";
                    case 0x8b60:
                        return "GL_SAMPLER_CUBE";
                    case 0x8b61:
                        return "GL_SAMPLER_1D_SHADOW";
                    case 0x8b62:
                        return "GL_SAMPLER_2D_SHADOW";
                    case 0x8b63:
                        return "GL_SAMPLER_2D_RECT";
                    case 0x8b64:
                        return "GL_SAMPLER_2D_RECT_SHADOW";
                    case 0x8b65:
                        return "GL_FLOAT_MAT2x3";
                    case 0x8b66:
                        return "GL_FLOAT_MAT2x4";
                    case 0x8b67:
                        return "GL_FLOAT_MAT3x2";
                    case 0x8b68:
                        return "GL_FLOAT_MAT3x4";
                    case 0x8b69:
                        return "GL_FLOAT_MAT4x2";
                    case 0x8b6a:
                        return "GL_FLOAT_MAT4x3";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::BindTransformFeedbackTarget:
            {
                switch (value)
                {
                    case 0x8e22:
                        return "GL_TRANSFORM_FEEDBACK";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::BlendEquationModeEXT:
            {
                switch (value)
                {
                    case 0xbf1:
                        return "GL_LOGIC_OP";
                    case 0x8006:
                        return "GL_FUNC_ADD";
                    case 0x800a:
                        return "GL_FUNC_SUBTRACT";
                    case 0x800b:
                        return "GL_FUNC_REVERSE_SUBTRACT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::BlendingFactor:
            {
                switch (value)
                {
                    case 0x0:
                        return "GL_ZERO";
                    case 0x1:
                        return "GL_ONE";
                    case 0x300:
                        return "GL_SRC_COLOR";
                    case 0x301:
                        return "GL_ONE_MINUS_SRC_COLOR";
                    case 0x302:
                        return "GL_SRC_ALPHA";
                    case 0x303:
                        return "GL_ONE_MINUS_SRC_ALPHA";
                    case 0x304:
                        return "GL_DST_ALPHA";
                    case 0x305:
                        return "GL_ONE_MINUS_DST_ALPHA";
                    case 0x306:
                        return "GL_DST_COLOR";
                    case 0x307:
                        return "GL_ONE_MINUS_DST_COLOR";
                    case 0x308:
                        return "GL_SRC_ALPHA_SATURATE";
                    case 0x8001:
                        return "GL_CONSTANT_COLOR";
                    case 0x8002:
                        return "GL_ONE_MINUS_CONSTANT_COLOR";
                    case 0x8003:
                        return "GL_CONSTANT_ALPHA";
                    case 0x8004:
                        return "GL_ONE_MINUS_CONSTANT_ALPHA";
                    case 0x8589:
                        return "GL_SRC1_ALPHA";
                    case 0x88f9:
                        return "GL_SRC1_COLOR";
                    case 0x88fa:
                        return "GL_ONE_MINUS_SRC1_COLOR";
                    case 0x88fb:
                        return "GL_ONE_MINUS_SRC1_ALPHA";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::BlitFramebufferFilter:
            {
                switch (value)
                {
                    case 0x2600:
                        return "GL_NEAREST";
                    case 0x2601:
                        return "GL_LINEAR";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::Boolean:
            {
                switch (value)
                {
                    case 0x0:
                        return "GL_FALSE";
                    case 0x1:
                        return "GL_TRUE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::Buffer:
            {
                switch (value)
                {
                    case 0x1800:
                        return "GL_COLOR";
                    case 0x1801:
                        return "GL_DEPTH";
                    case 0x1802:
                        return "GL_STENCIL";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::BufferAccessARB:
            {
                switch (value)
                {
                    case 0x88b8:
                        return "GL_READ_ONLY";
                    case 0x88b9:
                        return "GL_WRITE_ONLY";
                    case 0x88ba:
                        return "GL_READ_WRITE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::BufferAccessMask:
            {
                switch (value)
                {
                    case 0x1:
                        return "GL_MAP_READ_BIT";
                    case 0x2:
                        return "GL_MAP_WRITE_BIT";
                    case 0x4:
                        return "GL_MAP_INVALIDATE_RANGE_BIT";
                    case 0x8:
                        return "GL_MAP_INVALIDATE_BUFFER_BIT";
                    case 0x10:
                        return "GL_MAP_FLUSH_EXPLICIT_BIT";
                    case 0x20:
                        return "GL_MAP_UNSYNCHRONIZED_BIT";
                    case 0x40:
                        return "GL_MAP_PERSISTENT_BIT";
                    case 0x80:
                        return "GL_MAP_COHERENT_BIT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::BufferStorageTarget:
            {
                switch (value)
                {
                    case 0x8892:
                        return "GL_ARRAY_BUFFER";
                    case 0x8893:
                        return "GL_ELEMENT_ARRAY_BUFFER";
                    case 0x88eb:
                        return "GL_PIXEL_PACK_BUFFER";
                    case 0x88ec:
                        return "GL_PIXEL_UNPACK_BUFFER";
                    case 0x8a11:
                        return "GL_UNIFORM_BUFFER";
                    case 0x8c2a:
                        return "GL_TEXTURE_BUFFER";
                    case 0x8c8e:
                        return "GL_TRANSFORM_FEEDBACK_BUFFER";
                    case 0x8f36:
                        return "GL_COPY_READ_BUFFER";
                    case 0x8f37:
                        return "GL_COPY_WRITE_BUFFER";
                    case 0x8f3f:
                        return "GL_DRAW_INDIRECT_BUFFER";
                    case 0x90d2:
                        return "GL_SHADER_STORAGE_BUFFER";
                    case 0x90ee:
                        return "GL_DISPATCH_INDIRECT_BUFFER";
                    case 0x9192:
                        return "GL_QUERY_BUFFER";
                    case 0x92c0:
                        return "GL_ATOMIC_COUNTER_BUFFER";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::BufferTargetARB:
            {
                switch (value)
                {
                    case 0x8892:
                        return "GL_ARRAY_BUFFER";
                    case 0x8893:
                        return "GL_ELEMENT_ARRAY_BUFFER";
                    case 0x88eb:
                        return "GL_PIXEL_PACK_BUFFER";
                    case 0x88ec:
                        return "GL_PIXEL_UNPACK_BUFFER";
                    case 0x8a11:
                        return "GL_UNIFORM_BUFFER";
                    case 0x8c2a:
                        return "GL_TEXTURE_BUFFER";
                    case 0x8c8e:
                        return "GL_TRANSFORM_FEEDBACK_BUFFER";
                    case 0x8f36:
                        return "GL_COPY_READ_BUFFER";
                    case 0x8f37:
                        return "GL_COPY_WRITE_BUFFER";
                    case 0x8f3f:
                        return "GL_DRAW_INDIRECT_BUFFER";
                    case 0x90d2:
                        return "GL_SHADER_STORAGE_BUFFER";
                    case 0x90ee:
                        return "GL_DISPATCH_INDIRECT_BUFFER";
                    case 0x9192:
                        return "GL_QUERY_BUFFER";
                    case 0x92c0:
                        return "GL_ATOMIC_COUNTER_BUFFER";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::BufferUsageARB:
            {
                switch (value)
                {
                    case 0x88e0:
                        return "GL_STREAM_DRAW";
                    case 0x88e1:
                        return "GL_STREAM_READ";
                    case 0x88e2:
                        return "GL_STREAM_COPY";
                    case 0x88e4:
                        return "GL_STATIC_DRAW";
                    case 0x88e5:
                        return "GL_STATIC_READ";
                    case 0x88e6:
                        return "GL_STATIC_COPY";
                    case 0x88e8:
                        return "GL_DYNAMIC_DRAW";
                    case 0x88e9:
                        return "GL_DYNAMIC_READ";
                    case 0x88ea:
                        return "GL_DYNAMIC_COPY";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::CheckFramebufferStatusTarget:
            {
                switch (value)
                {
                    case 0x8ca8:
                        return "GL_READ_FRAMEBUFFER";
                    case 0x8ca9:
                        return "GL_DRAW_FRAMEBUFFER";
                    case 0x8d40:
                        return "GL_FRAMEBUFFER";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ClearBufferMask:
            {
                switch (value)
                {
                    case 0x100:
                        return "GL_DEPTH_BUFFER_BIT";
                    case 0x200:
                        return "GL_ACCUM_BUFFER_BIT";
                    case 0x400:
                        return "GL_STENCIL_BUFFER_BIT";
                    case 0x4000:
                        return "GL_COLOR_BUFFER_BIT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ClientAttribMask:
            {
                switch (value)
                {
                    case 0x1:
                        return "GL_CLIENT_PIXEL_STORE_BIT";
                    case 0x2:
                        return "GL_CLIENT_VERTEX_ARRAY_BIT";
                    case 0xffffffff:
                        return "GL_CLIENT_ALL_ATTRIB_BITS";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ClipControlDepth:
            {
                switch (value)
                {
                    case 0x935e:
                        return "GL_NEGATIVE_ONE_TO_ONE";
                    case 0x935f:
                        return "GL_ZERO_TO_ONE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ClipControlOrigin:
            {
                switch (value)
                {
                    case 0x8ca1:
                        return "GL_LOWER_LEFT";
                    case 0x8ca2:
                        return "GL_UPPER_LEFT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ClipPlaneName:
            {
                switch (value)
                {
                    case 0x3000:
                        return "GL_CLIP_DISTANCE0";
                    case 0x3001:
                        return "GL_CLIP_DISTANCE1";
                    case 0x3002:
                        return "GL_CLIP_DISTANCE2";
                    case 0x3003:
                        return "GL_CLIP_DISTANCE3";
                    case 0x3004:
                        return "GL_CLIP_DISTANCE4";
                    case 0x3005:
                        return "GL_CLIP_DISTANCE5";
                    case 0x3006:
                        return "GL_CLIP_DISTANCE6";
                    case 0x3007:
                        return "GL_CLIP_DISTANCE7";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ColorBuffer:
            {
                switch (value)
                {
                    case 0x0:
                        return "GL_NONE";
                    case 0x400:
                        return "GL_FRONT_LEFT";
                    case 0x401:
                        return "GL_FRONT_RIGHT";
                    case 0x402:
                        return "GL_BACK_LEFT";
                    case 0x403:
                        return "GL_BACK_RIGHT";
                    case 0x404:
                        return "GL_FRONT";
                    case 0x405:
                        return "GL_BACK";
                    case 0x406:
                        return "GL_LEFT";
                    case 0x407:
                        return "GL_RIGHT";
                    case 0x408:
                        return "GL_FRONT_AND_BACK";
                    case 0x8ce0:
                        return "GL_COLOR_ATTACHMENT0";
                    case 0x8ce1:
                        return "GL_COLOR_ATTACHMENT1";
                    case 0x8ce2:
                        return "GL_COLOR_ATTACHMENT2";
                    case 0x8ce3:
                        return "GL_COLOR_ATTACHMENT3";
                    case 0x8ce4:
                        return "GL_COLOR_ATTACHMENT4";
                    case 0x8ce5:
                        return "GL_COLOR_ATTACHMENT5";
                    case 0x8ce6:
                        return "GL_COLOR_ATTACHMENT6";
                    case 0x8ce7:
                        return "GL_COLOR_ATTACHMENT7";
                    case 0x8ce8:
                        return "GL_COLOR_ATTACHMENT8";
                    case 0x8ce9:
                        return "GL_COLOR_ATTACHMENT9";
                    case 0x8cea:
                        return "GL_COLOR_ATTACHMENT10";
                    case 0x8ceb:
                        return "GL_COLOR_ATTACHMENT11";
                    case 0x8cec:
                        return "GL_COLOR_ATTACHMENT12";
                    case 0x8ced:
                        return "GL_COLOR_ATTACHMENT13";
                    case 0x8cee:
                        return "GL_COLOR_ATTACHMENT14";
                    case 0x8cef:
                        return "GL_COLOR_ATTACHMENT15";
                    case 0x8cf0:
                        return "GL_COLOR_ATTACHMENT16";
                    case 0x8cf1:
                        return "GL_COLOR_ATTACHMENT17";
                    case 0x8cf2:
                        return "GL_COLOR_ATTACHMENT18";
                    case 0x8cf3:
                        return "GL_COLOR_ATTACHMENT19";
                    case 0x8cf4:
                        return "GL_COLOR_ATTACHMENT20";
                    case 0x8cf5:
                        return "GL_COLOR_ATTACHMENT21";
                    case 0x8cf6:
                        return "GL_COLOR_ATTACHMENT22";
                    case 0x8cf7:
                        return "GL_COLOR_ATTACHMENT23";
                    case 0x8cf8:
                        return "GL_COLOR_ATTACHMENT24";
                    case 0x8cf9:
                        return "GL_COLOR_ATTACHMENT25";
                    case 0x8cfa:
                        return "GL_COLOR_ATTACHMENT26";
                    case 0x8cfb:
                        return "GL_COLOR_ATTACHMENT27";
                    case 0x8cfc:
                        return "GL_COLOR_ATTACHMENT28";
                    case 0x8cfd:
                        return "GL_COLOR_ATTACHMENT29";
                    case 0x8cfe:
                        return "GL_COLOR_ATTACHMENT30";
                    case 0x8cff:
                        return "GL_COLOR_ATTACHMENT31";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ColorMaterialFace:
            {
                switch (value)
                {
                    case 0x404:
                        return "GL_FRONT";
                    case 0x405:
                        return "GL_BACK";
                    case 0x408:
                        return "GL_FRONT_AND_BACK";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ColorMaterialParameter:
            {
                switch (value)
                {
                    case 0x1200:
                        return "GL_AMBIENT";
                    case 0x1201:
                        return "GL_DIFFUSE";
                    case 0x1202:
                        return "GL_SPECULAR";
                    case 0x1600:
                        return "GL_EMISSION";
                    case 0x1602:
                        return "GL_AMBIENT_AND_DIFFUSE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ColorPointerType:
            {
                switch (value)
                {
                    case 0x1400:
                        return "GL_BYTE";
                    case 0x1401:
                        return "GL_UNSIGNED_BYTE";
                    case 0x1402:
                        return "GL_SHORT";
                    case 0x1403:
                        return "GL_UNSIGNED_SHORT";
                    case 0x1404:
                        return "GL_INT";
                    case 0x1405:
                        return "GL_UNSIGNED_INT";
                    case 0x1406:
                        return "GL_FLOAT";
                    case 0x140a:
                        return "GL_DOUBLE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ContextFlagMask:
            {
                switch (value)
                {
                    case 0x1:
                        return "GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT";
                    case 0x2:
                        return "GL_CONTEXT_FLAG_DEBUG_BIT";
                    case 0x4:
                        return "GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT";
                    case 0x8:
                        return "GL_CONTEXT_FLAG_NO_ERROR_BIT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ContextProfileMask:
            {
                switch (value)
                {
                    case 0x1:
                        return "GL_CONTEXT_CORE_PROFILE_BIT";
                    case 0x2:
                        return "GL_CONTEXT_COMPATIBILITY_PROFILE_BIT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::CopyBufferSubDataTarget:
            {
                switch (value)
                {
                    case 0x8892:
                        return "GL_ARRAY_BUFFER";
                    case 0x8893:
                        return "GL_ELEMENT_ARRAY_BUFFER";
                    case 0x88eb:
                        return "GL_PIXEL_PACK_BUFFER";
                    case 0x88ec:
                        return "GL_PIXEL_UNPACK_BUFFER";
                    case 0x8a11:
                        return "GL_UNIFORM_BUFFER";
                    case 0x8c2a:
                        return "GL_TEXTURE_BUFFER";
                    case 0x8c8e:
                        return "GL_TRANSFORM_FEEDBACK_BUFFER";
                    case 0x8f36:
                        return "GL_COPY_READ_BUFFER";
                    case 0x8f37:
                        return "GL_COPY_WRITE_BUFFER";
                    case 0x8f3f:
                        return "GL_DRAW_INDIRECT_BUFFER";
                    case 0x90d2:
                        return "GL_SHADER_STORAGE_BUFFER";
                    case 0x90ee:
                        return "GL_DISPATCH_INDIRECT_BUFFER";
                    case 0x9192:
                        return "GL_QUERY_BUFFER";
                    case 0x92c0:
                        return "GL_ATOMIC_COUNTER_BUFFER";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::CullFaceMode:
            {
                switch (value)
                {
                    case 0x404:
                        return "GL_FRONT";
                    case 0x405:
                        return "GL_BACK";
                    case 0x408:
                        return "GL_FRONT_AND_BACK";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::DebugSeverity:
            {
                switch (value)
                {
                    case 0x1100:
                        return "GL_DONT_CARE";
                    case 0x9146:
                        return "GL_DEBUG_SEVERITY_HIGH";
                    case 0x9147:
                        return "GL_DEBUG_SEVERITY_MEDIUM";
                    case 0x9148:
                        return "GL_DEBUG_SEVERITY_LOW";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::DebugSource:
            {
                switch (value)
                {
                    case 0x1100:
                        return "GL_DONT_CARE";
                    case 0x8246:
                        return "GL_DEBUG_SOURCE_API";
                    case 0x8247:
                        return "GL_DEBUG_SOURCE_WINDOW_SYSTEM";
                    case 0x8248:
                        return "GL_DEBUG_SOURCE_SHADER_COMPILER";
                    case 0x8249:
                        return "GL_DEBUG_SOURCE_THIRD_PARTY";
                    case 0x824a:
                        return "GL_DEBUG_SOURCE_APPLICATION";
                    case 0x824b:
                        return "GL_DEBUG_SOURCE_OTHER";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::DebugType:
            {
                switch (value)
                {
                    case 0x1100:
                        return "GL_DONT_CARE";
                    case 0x824c:
                        return "GL_DEBUG_TYPE_ERROR";
                    case 0x824d:
                        return "GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR";
                    case 0x824e:
                        return "GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR";
                    case 0x824f:
                        return "GL_DEBUG_TYPE_PORTABILITY";
                    case 0x8250:
                        return "GL_DEBUG_TYPE_PERFORMANCE";
                    case 0x8251:
                        return "GL_DEBUG_TYPE_OTHER";
                    case 0x8268:
                        return "GL_DEBUG_TYPE_MARKER";
                    case 0x8269:
                        return "GL_DEBUG_TYPE_PUSH_GROUP";
                    case 0x826a:
                        return "GL_DEBUG_TYPE_POP_GROUP";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::DefaultGroup:
            {
                switch (value)
                {
                    case 0x16:
                        return "GL_UUID_SIZE_EXT";
                    case 0x308:
                        return "GL_SRC_ALPHA_SATURATE_EXT";
                    case 0x503:
                        return "GL_STACK_OVERFLOW_KHR";
                    case 0x504:
                        return "GL_STACK_UNDERFLOW_KHR";
                    case 0x507:
                        return "GL_CONTEXT_LOST";
                    case 0x1004:
                        return "GL_TEXTURE_BORDER_COLOR_OES";
                    case 0x1006:
                        return "GL_TEXTURE_TARGET";
                    case 0x2500:
                        return "GL_TEXTURE_GEN_MODE_OES";
                    case 0x8005:
                        return "GL_BLEND_COLOR";
                    case 0x8007:
                        return "GL_MIN";
                    case 0x8008:
                        return "GL_MAX";
                    case 0x8009:
                        return "GL_BLEND_EQUATION";
                    case 0x803a:
                        return "GL_RESCALE_NORMAL";
                    case 0x803c:
                        return "GL_ALPHA8_EXT";
                    case 0x8040:
                        return "GL_LUMINANCE8_EXT";
                    case 0x8045:
                        return "GL_LUMINANCE8_ALPHA8_EXT";
                    case 0x8055:
                        return "GL_RGBA2";
                    case 0x806a:
                        return "GL_TEXTURE_BINDING_3D_OES";
                    case 0x8071:
                        return "GL_TEXTURE_DEPTH";
                    case 0x8073:
                        return "GL_MAX_3D_TEXTURE_SIZE";
                    case 0x8074:
                        return "GL_VERTEX_ARRAY_KHR";
                    case 0x809d:
                        return "GL_MULTISAMPLE";
                    case 0x809e:
                        return "GL_SAMPLE_ALPHA_TO_COVERAGE";
                    case 0x809f:
                        return "GL_SAMPLE_ALPHA_TO_ONE";
                    case 0x80a0:
                        return "GL_SAMPLE_COVERAGE";
                    case 0x80aa:
                        return "GL_SAMPLE_COVERAGE_VALUE";
                    case 0x80ab:
                        return "GL_SAMPLE_COVERAGE_INVERT";
                    case 0x80c8:
                        return "GL_BLEND_DST_RGB";
                    case 0x80c9:
                        return "GL_BLEND_SRC_RGB";
                    case 0x80ca:
                        return "GL_BLEND_DST_ALPHA";
                    case 0x80cb:
                        return "GL_BLEND_SRC_ALPHA";
                    case 0x80e0:
                        return "GL_BGR";
                    case 0x80e1:
                        return "GL_BGRA";
                    case 0x80e8:
                        return "GL_MAX_ELEMENTS_VERTICES";
                    case 0x80e9:
                        return "GL_MAX_ELEMENTS_INDICES";
                    case 0x80ee:
                        return "GL_PARAMETER_BUFFER";
                    case 0x80ef:
                        return "GL_PARAMETER_BUFFER_BINDING";
                    case 0x812d:
                        return "GL_CLAMP_TO_BORDER_OES";
                    case 0x81a6:
                        return "GL_DEPTH_COMPONENT24";
                    case 0x81a7:
                        return "GL_DEPTH_COMPONENT32";
                    case 0x8218:
                        return "GL_FRAMEBUFFER_DEFAULT";
                    case 0x821a:
                        return "GL_DEPTH_STENCIL_ATTACHMENT";
                    case 0x821b:
                        return "GL_MAJOR_VERSION";
                    case 0x821c:
                        return "GL_MINOR_VERSION";
                    case 0x821d:
                        return "GL_NUM_EXTENSIONS";
                    case 0x821e:
                        return "GL_CONTEXT_FLAGS";
                    case 0x8221:
                        return "GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED";
                    case 0x8222:
                        return "GL_INDEX";
                    case 0x8228:
                        return "GL_RG_INTEGER";
                    case 0x8242:
                        return "GL_DEBUG_OUTPUT_SYNCHRONOUS";
                    case 0x8243:
                        return "GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH";
                    case 0x8244:
                        return "GL_DEBUG_CALLBACK_FUNCTION_KHR";
                    case 0x8245:
                        return "GL_DEBUG_CALLBACK_USER_PARAM_KHR";
                    case 0x8246:
                        return "GL_DEBUG_SOURCE_API_KHR";
                    case 0x8247:
                        return "GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR";
                    case 0x8248:
                        return "GL_DEBUG_SOURCE_SHADER_COMPILER_KHR";
                    case 0x8249:
                        return "GL_DEBUG_SOURCE_THIRD_PARTY_KHR";
                    case 0x824a:
                        return "GL_DEBUG_SOURCE_APPLICATION_KHR";
                    case 0x824b:
                        return "GL_DEBUG_SOURCE_OTHER_KHR";
                    case 0x824c:
                        return "GL_DEBUG_TYPE_ERROR_KHR";
                    case 0x824d:
                        return "GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR";
                    case 0x824e:
                        return "GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR";
                    case 0x824f:
                        return "GL_DEBUG_TYPE_PORTABILITY_KHR";
                    case 0x8250:
                        return "GL_DEBUG_TYPE_PERFORMANCE_KHR";
                    case 0x8251:
                        return "GL_DEBUG_TYPE_OTHER_KHR";
                    case 0x8252:
                        return "GL_LOSE_CONTEXT_ON_RESET";
                    case 0x8253:
                        return "GL_GUILTY_CONTEXT_RESET_EXT";
                    case 0x8254:
                        return "GL_INNOCENT_CONTEXT_RESET_EXT";
                    case 0x8255:
                        return "GL_UNKNOWN_CONTEXT_RESET_EXT";
                    case 0x8256:
                        return "GL_RESET_NOTIFICATION_STRATEGY";
                    case 0x825a:
                        return "GL_PROGRAM_PIPELINE_BINDING";
                    case 0x825b:
                        return "GL_MAX_VIEWPORTS";
                    case 0x825c:
                        return "GL_VIEWPORT_SUBPIXEL_BITS";
                    case 0x825d:
                        return "GL_VIEWPORT_BOUNDS_RANGE";
                    case 0x825e:
                        return "GL_LAYER_PROVOKING_VERTEX";
                    case 0x825f:
                        return "GL_VIEWPORT_INDEX_PROVOKING_VERTEX";
                    case 0x8260:
                        return "GL_UNDEFINED_VERTEX";
                    case 0x8261:
                        return "GL_NO_RESET_NOTIFICATION";
                    case 0x8262:
                        return "GL_MAX_COMPUTE_SHARED_MEMORY_SIZE";
                    case 0x8263:
                        return "GL_MAX_COMPUTE_UNIFORM_COMPONENTS";
                    case 0x8264:
                        return "GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS";
                    case 0x8265:
                        return "GL_MAX_COMPUTE_ATOMIC_COUNTERS";
                    case 0x8266:
                        return "GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS";
                    case 0x8268:
                        return "GL_DEBUG_TYPE_MARKER_KHR";
                    case 0x8269:
                        return "GL_DEBUG_TYPE_PUSH_GROUP_KHR";
                    case 0x826a:
                        return "GL_DEBUG_TYPE_POP_GROUP_KHR";
                    case 0x826b:
                        return "GL_DEBUG_SEVERITY_NOTIFICATION";
                    case 0x826c:
                        return "GL_MAX_DEBUG_GROUP_STACK_DEPTH";
                    case 0x826d:
                        return "GL_DEBUG_GROUP_STACK_DEPTH";
                    case 0x826e:
                        return "GL_MAX_UNIFORM_LOCATIONS";
                    case 0x8282:
                        return "GL_MAX_COMBINED_DIMENSIONS";
                    case 0x8284:
                        return "GL_DEPTH_COMPONENTS";
                    case 0x8285:
                        return "GL_STENCIL_COMPONENTS";
                    case 0x8294:
                        return "GL_MANUAL_GENERATE_MIPMAP";
                    case 0x82b7:
                        return "GL_FULL_SUPPORT";
                    case 0x82b8:
                        return "GL_CAVEAT_SUPPORT";
                    case 0x82b9:
                        return "GL_IMAGE_CLASS_4_X_32";
                    case 0x82ba:
                        return "GL_IMAGE_CLASS_2_X_32";
                    case 0x82bb:
                        return "GL_IMAGE_CLASS_1_X_32";
                    case 0x82bc:
                        return "GL_IMAGE_CLASS_4_X_16";
                    case 0x82bd:
                        return "GL_IMAGE_CLASS_2_X_16";
                    case 0x82be:
                        return "GL_IMAGE_CLASS_1_X_16";
                    case 0x82bf:
                        return "GL_IMAGE_CLASS_4_X_8";
                    case 0x82c0:
                        return "GL_IMAGE_CLASS_2_X_8";
                    case 0x82c1:
                        return "GL_IMAGE_CLASS_1_X_8";
                    case 0x82c2:
                        return "GL_IMAGE_CLASS_11_11_10";
                    case 0x82c3:
                        return "GL_IMAGE_CLASS_10_10_10_2";
                    case 0x82c4:
                        return "GL_VIEW_CLASS_128_BITS";
                    case 0x82c5:
                        return "GL_VIEW_CLASS_96_BITS";
                    case 0x82c6:
                        return "GL_VIEW_CLASS_64_BITS";
                    case 0x82c7:
                        return "GL_VIEW_CLASS_48_BITS";
                    case 0x82c8:
                        return "GL_VIEW_CLASS_32_BITS";
                    case 0x82c9:
                        return "GL_VIEW_CLASS_24_BITS";
                    case 0x82ca:
                        return "GL_VIEW_CLASS_16_BITS";
                    case 0x82cb:
                        return "GL_VIEW_CLASS_8_BITS";
                    case 0x82cc:
                        return "GL_VIEW_CLASS_S3TC_DXT1_RGB";
                    case 0x82cd:
                        return "GL_VIEW_CLASS_S3TC_DXT1_RGBA";
                    case 0x82ce:
                        return "GL_VIEW_CLASS_S3TC_DXT3_RGBA";
                    case 0x82cf:
                        return "GL_VIEW_CLASS_S3TC_DXT5_RGBA";
                    case 0x82d0:
                        return "GL_VIEW_CLASS_RGTC1_RED";
                    case 0x82d1:
                        return "GL_VIEW_CLASS_RGTC2_RG";
                    case 0x82d2:
                        return "GL_VIEW_CLASS_BPTC_UNORM";
                    case 0x82d3:
                        return "GL_VIEW_CLASS_BPTC_FLOAT";
                    case 0x82d4:
                        return "GL_VERTEX_ATTRIB_BINDING";
                    case 0x82d6:
                        return "GL_VERTEX_BINDING_DIVISOR";
                    case 0x82d7:
                        return "GL_VERTEX_BINDING_OFFSET";
                    case 0x82d8:
                        return "GL_VERTEX_BINDING_STRIDE";
                    case 0x82d9:
                        return "GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET";
                    case 0x82da:
                        return "GL_MAX_VERTEX_ATTRIB_BINDINGS";
                    case 0x82db:
                        return "GL_TEXTURE_VIEW_MIN_LEVEL";
                    case 0x82dc:
                        return "GL_TEXTURE_VIEW_NUM_LEVELS";
                    case 0x82dd:
                        return "GL_TEXTURE_VIEW_MIN_LAYER";
                    case 0x82de:
                        return "GL_TEXTURE_VIEW_NUM_LAYERS";
                    case 0x82df:
                        return "GL_TEXTURE_IMMUTABLE_LEVELS";
                    case 0x82e0:
                        return "GL_BUFFER_KHR";
                    case 0x82e1:
                        return "GL_SHADER_KHR";
                    case 0x82e2:
                        return "GL_PROGRAM_KHR";
                    case 0x82e3:
                        return "GL_QUERY_KHR";
                    case 0x82e4:
                        return "GL_PROGRAM_PIPELINE_KHR";
                    case 0x82e5:
                        return "GL_MAX_VERTEX_ATTRIB_STRIDE";
                    case 0x82e6:
                        return "GL_SAMPLER_KHR";
                    case 0x82e7:
                        return "GL_DISPLAY_LIST";
                    case 0x82e8:
                        return "GL_MAX_LABEL_LENGTH";
                    case 0x82e9:
                        return "GL_NUM_SHADING_LANGUAGE_VERSIONS";
                    case 0x82ec:
                        return "GL_TRANSFORM_FEEDBACK_OVERFLOW";
                    case 0x82ed:
                        return "GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW";
                    case 0x82ee:
                        return "GL_VERTICES_SUBMITTED";
                    case 0x82ef:
                        return "GL_PRIMITIVES_SUBMITTED";
                    case 0x82f0:
                        return "GL_VERTEX_SHADER_INVOCATIONS";
                    case 0x82f1:
                        return "GL_TESS_CONTROL_SHADER_PATCHES";
                    case 0x82f2:
                        return "GL_TESS_EVALUATION_SHADER_INVOCATIONS";
                    case 0x82f3:
                        return "GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED";
                    case 0x82f4:
                        return "GL_FRAGMENT_SHADER_INVOCATIONS";
                    case 0x82f5:
                        return "GL_COMPUTE_SHADER_INVOCATIONS";
                    case 0x82f6:
                        return "GL_CLIPPING_INPUT_PRIMITIVES";
                    case 0x82f7:
                        return "GL_CLIPPING_OUTPUT_PRIMITIVES";
                    case 0x82f9:
                        return "GL_MAX_CULL_DISTANCES";
                    case 0x82fa:
                        return "GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES";
                    case 0x82fb:
                        return "GL_CONTEXT_RELEASE_BEHAVIOR";
                    case 0x82fc:
                        return "GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH";
                    case 0x8362:
                        return "GL_UNSIGNED_BYTE_2_3_3_REV";
                    case 0x8363:
                        return "GL_UNSIGNED_SHORT_5_6_5";
                    case 0x8364:
                        return "GL_UNSIGNED_SHORT_5_6_5_REV";
                    case 0x8365:
                        return "GL_UNSIGNED_SHORT_4_4_4_4_REV";
                    case 0x8366:
                        return "GL_UNSIGNED_SHORT_1_5_5_5_REV";
                    case 0x8367:
                        return "GL_UNSIGNED_INT_8_8_8_8_REV";
                    case 0x8370:
                        return "GL_MIRRORED_REPEAT";
                    case 0x8450:
                        return "GL_FOG_COORDINATE_SOURCE";
                    case 0x8451:
                        return "GL_FOG_COORD";
                    case 0x8452:
                        return "GL_FRAGMENT_DEPTH";
                    case 0x8453:
                        return "GL_CURRENT_FOG_COORD";
                    case 0x8454:
                        return "GL_FOG_COORDINATE_ARRAY_TYPE";
                    case 0x8455:
                        return "GL_FOG_COORDINATE_ARRAY_STRIDE";
                    case 0x8456:
                        return "GL_FOG_COORDINATE_ARRAY_POINTER";
                    case 0x8457:
                        return "GL_FOG_COORDINATE_ARRAY";
                    case 0x8458:
                        return "GL_COLOR_SUM";
                    case 0x8459:
                        return "GL_CURRENT_SECONDARY_COLOR";
                    case 0x845a:
                        return "GL_SECONDARY_COLOR_ARRAY_SIZE";
                    case 0x845b:
                        return "GL_SECONDARY_COLOR_ARRAY_TYPE";
                    case 0x845c:
                        return "GL_SECONDARY_COLOR_ARRAY_STRIDE";
                    case 0x845d:
                        return "GL_SECONDARY_COLOR_ARRAY_POINTER";
                    case 0x845e:
                        return "GL_SECONDARY_COLOR_ARRAY";
                    case 0x845f:
                        return "GL_CURRENT_RASTER_SECONDARY_COLOR";
                    case 0x84e0:
                        return "GL_ACTIVE_TEXTURE";
                    case 0x84e1:
                        return "GL_CLIENT_ACTIVE_TEXTURE";
                    case 0x84e2:
                        return "GL_MAX_TEXTURE_UNITS";
                    case 0x84e3:
                        return "GL_TRANSPOSE_MODELVIEW_MATRIX";
                    case 0x84e4:
                        return "GL_TRANSPOSE_PROJECTION_MATRIX";
                    case 0x84e5:
                        return "GL_TRANSPOSE_TEXTURE_MATRIX";
                    case 0x84e6:
                        return "GL_TRANSPOSE_COLOR_MATRIX";
                    case 0x84e7:
                        return "GL_SUBTRACT";
                    case 0x84e8:
                        return "GL_MAX_RENDERBUFFER_SIZE";
                    case 0x84e9:
                        return "GL_COMPRESSED_ALPHA";
                    case 0x84ea:
                        return "GL_COMPRESSED_LUMINANCE";
                    case 0x84eb:
                        return "GL_COMPRESSED_LUMINANCE_ALPHA";
                    case 0x84ec:
                        return "GL_COMPRESSED_INTENSITY";
                    case 0x84f2:
                        return "GL_ALL_COMPLETED_NV";
                    case 0x84f3:
                        return "GL_FENCE_STATUS_NV";
                    case 0x84f4:
                        return "GL_FENCE_CONDITION_NV";
                    case 0x84f6:
                        return "GL_TEXTURE_BINDING_RECTANGLE";
                    case 0x84f8:
                        return "GL_MAX_RECTANGLE_TEXTURE_SIZE";
                    case 0x84fa:
                        return "GL_UNSIGNED_INT_24_8";
                    case 0x84fd:
                        return "GL_MAX_TEXTURE_LOD_BIAS";
                    case 0x84fe:
                        return "GL_TEXTURE_MAX_ANISOTROPY";
                    case 0x84ff:
                        return "GL_MAX_TEXTURE_MAX_ANISOTROPY";
                    case 0x8500:
                        return "GL_TEXTURE_FILTER_CONTROL";
                    case 0x8507:
                        return "GL_INCR_WRAP";
                    case 0x8508:
                        return "GL_DECR_WRAP";
                    case 0x8511:
                        return "GL_NORMAL_MAP";
                    case 0x8512:
                        return "GL_REFLECTION_MAP";
                    case 0x8513:
                        return "GL_TEXTURE_CUBE_MAP_OES";
                    case 0x8514:
                        return "GL_TEXTURE_BINDING_CUBE_MAP";
                    case 0x8515:
                        return "GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES";
                    case 0x8516:
                        return "GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES";
                    case 0x8517:
                        return "GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES";
                    case 0x8518:
                        return "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES";
                    case 0x8519:
                        return "GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES";
                    case 0x851a:
                        return "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES";
                    case 0x851c:
                        return "GL_MAX_CUBE_MAP_TEXTURE_SIZE";
                    case 0x8570:
                        return "GL_COMBINE";
                    case 0x8571:
                        return "GL_COMBINE_RGB";
                    case 0x8572:
                        return "GL_COMBINE_ALPHA";
                    case 0x8573:
                        return "GL_RGB_SCALE";
                    case 0x8574:
                        return "GL_ADD_SIGNED";
                    case 0x8575:
                        return "GL_INTERPOLATE";
                    case 0x8578:
                        return "GL_PREVIOUS";
                    case 0x8580:
                        return "GL_SOURCE0_RGB";
                    case 0x8581:
                        return "GL_SOURCE1_RGB";
                    case 0x8582:
                        return "GL_SOURCE2_RGB";
                    case 0x8588:
                        return "GL_SOURCE0_ALPHA";
                    case 0x8589:
                        return "GL_SOURCE1_ALPHA";
                    case 0x858a:
                        return "GL_SOURCE2_ALPHA";
                    case 0x8590:
                        return "GL_OPERAND0_RGB";
                    case 0x8591:
                        return "GL_OPERAND1_RGB";
                    case 0x8592:
                        return "GL_OPERAND2_RGB";
                    case 0x8598:
                        return "GL_OPERAND0_ALPHA";
                    case 0x8599:
                        return "GL_OPERAND1_ALPHA";
                    case 0x859a:
                        return "GL_OPERAND2_ALPHA";
                    case 0x85b5:
                        return "GL_VERTEX_ARRAY_BINDING";
                    case 0x8642:
                        return "GL_PROGRAM_POINT_SIZE";
                    case 0x8643:
                        return "GL_VERTEX_PROGRAM_TWO_SIDE";
                    case 0x8645:
                        return "GL_VERTEX_ATTRIB_ARRAY_POINTER";
                    case 0x864f:
                        return "GL_DEPTH_CLAMP";
                    case 0x86a0:
                        return "GL_TEXTURE_COMPRESSED_IMAGE_SIZE";
                    case 0x86a2:
                        return "GL_NUM_COMPRESSED_TEXTURE_FORMATS";
                    case 0x86a3:
                        return "GL_COMPRESSED_TEXTURE_FORMATS";
                    case 0x86a4:
                        return "GL_MAX_VERTEX_UNITS_OES";
                    case 0x86a9:
                        return "GL_WEIGHT_ARRAY_TYPE_OES";
                    case 0x86aa:
                        return "GL_WEIGHT_ARRAY_STRIDE_OES";
                    case 0x86ab:
                        return "GL_WEIGHT_ARRAY_SIZE_OES";
                    case 0x86ac:
                        return "GL_WEIGHT_ARRAY_POINTER_OES";
                    case 0x86ad:
                        return "GL_WEIGHT_ARRAY_OES";
                    case 0x86ae:
                        return "GL_DOT3_RGB";
                    case 0x86af:
                        return "GL_DOT3_RGBA";
                    case 0x8741:
                        return "GL_PROGRAM_BINARY_LENGTH_OES";
                    case 0x8743:
                        return "GL_MIRROR_CLAMP_TO_EDGE";
                    case 0x87fe:
                        return "GL_NUM_PROGRAM_BINARY_FORMATS";
                    case 0x87ff:
                        return "GL_PROGRAM_BINARY_FORMATS";
                    case 0x8800:
                        return "GL_STENCIL_BACK_FUNC";
                    case 0x8801:
                        return "GL_STENCIL_BACK_FAIL";
                    case 0x8802:
                        return "GL_STENCIL_BACK_PASS_DEPTH_FAIL";
                    case 0x8803:
                        return "GL_STENCIL_BACK_PASS_DEPTH_PASS";
                    case 0x8815:
                        return "GL_RGB32F";
                    case 0x8816:
                        return "GL_ALPHA32F_EXT";
                    case 0x8818:
                        return "GL_LUMINANCE32F_EXT";
                    case 0x8819:
                        return "GL_LUMINANCE_ALPHA32F_EXT";
                    case 0x881c:
                        return "GL_ALPHA16F_EXT";
                    case 0x881e:
                        return "GL_LUMINANCE16F_EXT";
                    case 0x881f:
                        return "GL_LUMINANCE_ALPHA16F_EXT";
                    case 0x8824:
                        return "GL_MAX_DRAW_BUFFERS";
                    case 0x8825:
                        return "GL_DRAW_BUFFER0";
                    case 0x8826:
                        return "GL_DRAW_BUFFER1";
                    case 0x8827:
                        return "GL_DRAW_BUFFER2";
                    case 0x8828:
                        return "GL_DRAW_BUFFER3";
                    case 0x8829:
                        return "GL_DRAW_BUFFER4";
                    case 0x882a:
                        return "GL_DRAW_BUFFER5";
                    case 0x882b:
                        return "GL_DRAW_BUFFER6";
                    case 0x882c:
                        return "GL_DRAW_BUFFER7";
                    case 0x882d:
                        return "GL_DRAW_BUFFER8";
                    case 0x882e:
                        return "GL_DRAW_BUFFER9";
                    case 0x882f:
                        return "GL_DRAW_BUFFER10";
                    case 0x8830:
                        return "GL_DRAW_BUFFER11";
                    case 0x8831:
                        return "GL_DRAW_BUFFER12";
                    case 0x8832:
                        return "GL_DRAW_BUFFER13";
                    case 0x8833:
                        return "GL_DRAW_BUFFER14";
                    case 0x8834:
                        return "GL_DRAW_BUFFER15";
                    case 0x883d:
                        return "GL_BLEND_EQUATION_ALPHA";
                    case 0x8840:
                        return "GL_MATRIX_PALETTE_OES";
                    case 0x8842:
                        return "GL_MAX_PALETTE_MATRICES_OES";
                    case 0x8843:
                        return "GL_CURRENT_PALETTE_MATRIX_OES";
                    case 0x8844:
                        return "GL_MATRIX_INDEX_ARRAY_OES";
                    case 0x8846:
                        return "GL_MATRIX_INDEX_ARRAY_SIZE_OES";
                    case 0x8847:
                        return "GL_MATRIX_INDEX_ARRAY_TYPE_OES";
                    case 0x8848:
                        return "GL_MATRIX_INDEX_ARRAY_STRIDE_OES";
                    case 0x8849:
                        return "GL_MATRIX_INDEX_ARRAY_POINTER_OES";
                    case 0x884a:
                        return "GL_TEXTURE_DEPTH_SIZE";
                    case 0x884b:
                        return "GL_DEPTH_TEXTURE_MODE";
                    case 0x884e:
                        return "GL_COMPARE_REF_TO_TEXTURE";
                    case 0x884f:
                        return "GL_TEXTURE_CUBE_MAP_SEAMLESS";
                    case 0x8861:
                        return "GL_POINT_SPRITE";
                    case 0x8862:
                        return "GL_COORD_REPLACE";
                    case 0x8864:
                        return "GL_QUERY_COUNTER_BITS_EXT";
                    case 0x8865:
                        return "GL_CURRENT_QUERY_EXT";
                    case 0x8866:
                        return "GL_QUERY_RESULT_EXT";
                    case 0x8867:
                        return "GL_QUERY_RESULT_AVAILABLE_EXT";
                    case 0x8869:
                        return "GL_MAX_VERTEX_ATTRIBS";
                    case 0x886c:
                        return "GL_MAX_TESS_CONTROL_INPUT_COMPONENTS";
                    case 0x886d:
                        return "GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS";
                    case 0x8871:
                        return "GL_MAX_TEXTURE_COORDS";
                    case 0x8872:
                        return "GL_MAX_TEXTURE_IMAGE_UNITS";
                    case 0x887f:
                        return "GL_GEOMETRY_SHADER_INVOCATIONS";
                    case 0x8894:
                        return "GL_ARRAY_BUFFER_BINDING";
                    case 0x8895:
                        return "GL_ELEMENT_ARRAY_BUFFER_BINDING";
                    case 0x8896:
                        return "GL_VERTEX_ARRAY_BUFFER_BINDING";
                    case 0x8897:
                        return "GL_NORMAL_ARRAY_BUFFER_BINDING";
                    case 0x8898:
                        return "GL_COLOR_ARRAY_BUFFER_BINDING";
                    case 0x8899:
                        return "GL_INDEX_ARRAY_BUFFER_BINDING";
                    case 0x889a:
                        return "GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING";
                    case 0x889b:
                        return "GL_EDGE_FLAG_ARRAY_BUFFER_BINDING";
                    case 0x889c:
                        return "GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING";
                    case 0x889d:
                        return "GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING";
                    case 0x889e:
                        return "GL_WEIGHT_ARRAY_BUFFER_BINDING";
                    case 0x88b9:
                        return "GL_WRITE_ONLY_OES";
                    case 0x88bb:
                        return "GL_BUFFER_ACCESS_OES";
                    case 0x88bc:
                        return "GL_BUFFER_MAPPED_OES";
                    case 0x88bd:
                        return "GL_BUFFER_MAP_POINTER";
                    case 0x88bf:
                        return "GL_TIME_ELAPSED_EXT";
                    case 0x88ed:
                        return "GL_PIXEL_PACK_BUFFER_BINDING";
                    case 0x88ef:
                        return "GL_PIXEL_UNPACK_BUFFER_BINDING";
                    case 0x88f1:
                        return "GL_TEXTURE_STENCIL_SIZE";
                    case 0x88f9:
                        return "GL_SRC1_COLOR_EXT";
                    case 0x88fa:
                        return "GL_ONE_MINUS_SRC1_COLOR_EXT";
                    case 0x88fb:
                        return "GL_ONE_MINUS_SRC1_ALPHA_EXT";
                    case 0x88fc:
                        return "GL_MAX_DUAL_SOURCE_DRAW_BUFFERS";
                    case 0x88fe:
                        return "GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE";
                    case 0x88ff:
                        return "GL_MAX_ARRAY_TEXTURE_LAYERS";
                    case 0x8904:
                        return "GL_MIN_PROGRAM_TEXEL_OFFSET";
                    case 0x8905:
                        return "GL_MAX_PROGRAM_TEXEL_OFFSET";
                    case 0x8916:
                        return "GL_GEOMETRY_LINKED_VERTICES_OUT_EXT";
                    case 0x8917:
                        return "GL_GEOMETRY_LINKED_INPUT_TYPE_EXT";
                    case 0x8918:
                        return "GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT";
                    case 0x8919:
                        return "GL_SAMPLER_BINDING";
                    case 0x891a:
                        return "GL_CLAMP_VERTEX_COLOR";
                    case 0x891b:
                        return "GL_CLAMP_FRAGMENT_COLOR";
                    case 0x891c:
                        return "GL_CLAMP_READ_COLOR";
                    case 0x891d:
                        return "GL_FIXED_ONLY";
                    case 0x898a:
                        return "GL_POINT_SIZE_ARRAY_TYPE_OES";
                    case 0x898b:
                        return "GL_POINT_SIZE_ARRAY_STRIDE_OES";
                    case 0x898c:
                        return "GL_POINT_SIZE_ARRAY_POINTER_OES";
                    case 0x8a28:
                        return "GL_UNIFORM_BUFFER_BINDING";
                    case 0x8a29:
                        return "GL_UNIFORM_BUFFER_START";
                    case 0x8a2a:
                        return "GL_UNIFORM_BUFFER_SIZE";
                    case 0x8a2b:
                        return "GL_MAX_VERTEX_UNIFORM_BLOCKS";
                    case 0x8a2c:
                        return "GL_MAX_GEOMETRY_UNIFORM_BLOCKS";
                    case 0x8a2d:
                        return "GL_MAX_FRAGMENT_UNIFORM_BLOCKS";
                    case 0x8a2e:
                        return "GL_MAX_COMBINED_UNIFORM_BLOCKS";
                    case 0x8a2f:
                        return "GL_MAX_UNIFORM_BUFFER_BINDINGS";
                    case 0x8a30:
                        return "GL_MAX_UNIFORM_BLOCK_SIZE";
                    case 0x8a31:
                        return "GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS";
                    case 0x8a32:
                        return "GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS";
                    case 0x8a33:
                        return "GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS";
                    case 0x8a34:
                        return "GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT";
                    case 0x8b49:
                        return "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS";
                    case 0x8b4a:
                        return "GL_MAX_VERTEX_UNIFORM_COMPONENTS";
                    case 0x8b4b:
                        return "GL_MAX_VARYING_COMPONENTS";
                    case 0x8b4c:
                        return "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS";
                    case 0x8b4d:
                        return "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS";
                    case 0x8b8d:
                        return "GL_CURRENT_PROGRAM";
                    case 0x8b9c:
                        return "GL_POINT_SIZE_ARRAY_OES";
                    case 0x8b9d:
                        return "GL_TEXTURE_CROP_RECT_OES";
                    case 0x8b9e:
                        return "GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES";
                    case 0x8b9f:
                        return "GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES";
                    case 0x8c10:
                        return "GL_TEXTURE_RED_TYPE";
                    case 0x8c11:
                        return "GL_TEXTURE_GREEN_TYPE";
                    case 0x8c12:
                        return "GL_TEXTURE_BLUE_TYPE";
                    case 0x8c13:
                        return "GL_TEXTURE_ALPHA_TYPE";
                    case 0x8c14:
                        return "GL_TEXTURE_LUMINANCE_TYPE";
                    case 0x8c15:
                        return "GL_TEXTURE_INTENSITY_TYPE";
                    case 0x8c16:
                        return "GL_TEXTURE_DEPTH_TYPE";
                    case 0x8c17:
                        return "GL_UNSIGNED_NORMALIZED";
                    case 0x8c1c:
                        return "GL_TEXTURE_BINDING_1D_ARRAY";
                    case 0x8c1d:
                        return "GL_TEXTURE_BINDING_2D_ARRAY";
                    case 0x8c29:
                        return "GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS";
                    case 0x8c2a:
                        return "GL_TEXTURE_BUFFER_BINDING";
                    case 0x8c2b:
                        return "GL_MAX_TEXTURE_BUFFER_SIZE";
                    case 0x8c2c:
                        return "GL_TEXTURE_BINDING_BUFFER";
                    case 0x8c2d:
                        return "GL_TEXTURE_BUFFER_DATA_STORE_BINDING";
                    case 0x8c2f:
                        return "GL_ANY_SAMPLES_PASSED_EXT";
                    case 0x8c36:
                        return "GL_SAMPLE_SHADING";
                    case 0x8c37:
                        return "GL_MIN_SAMPLE_SHADING_VALUE";
                    case 0x8c3e:
                        return "GL_UNSIGNED_INT_5_9_9_9_REV";
                    case 0x8c3f:
                        return "GL_TEXTURE_SHARED_SIZE";
                    case 0x8c44:
                        return "GL_SLUMINANCE_ALPHA";
                    case 0x8c45:
                        return "GL_SLUMINANCE8_ALPHA8";
                    case 0x8c46:
                        return "GL_SLUMINANCE";
                    case 0x8c47:
                        return "GL_SLUMINANCE8";
                    case 0x8c4a:
                        return "GL_COMPRESSED_SLUMINANCE";
                    case 0x8c4b:
                        return "GL_COMPRESSED_SLUMINANCE_ALPHA";
                    case 0x8c80:
                        return "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS";
                    case 0x8c87:
                        return "GL_PRIMITIVES_GENERATED_EXT";
                    case 0x8c89:
                        return "GL_RASTERIZER_DISCARD";
                    case 0x8c8a:
                        return "GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS";
                    case 0x8c8b:
                        return "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS";
                    case 0x8c8c:
                        return "GL_INTERLEAVED_ATTRIBS";
                    case 0x8c8d:
                        return "GL_SEPARATE_ATTRIBS";
                    case 0x8ca0:
                        return "GL_POINT_SPRITE_COORD_ORIGIN";
                    case 0x8ca3:
                        return "GL_STENCIL_BACK_REF";
                    case 0x8ca4:
                        return "GL_STENCIL_BACK_VALUE_MASK";
                    case 0x8ca5:
                        return "GL_STENCIL_BACK_WRITEMASK";
                    case 0x8ca6:
                        return "GL_DRAW_FRAMEBUFFER_BINDING";
                    case 0x8ca7:
                        return "GL_RENDERBUFFER_BINDING";
                    case 0x8ca8:
                        return "GL_READ_FRAMEBUFFER_ANGLE";
                    case 0x8ca9:
                        return "GL_DRAW_FRAMEBUFFER_ANGLE";
                    case 0x8caa:
                        return "GL_READ_FRAMEBUFFER_BINDING";
                    case 0x8cab:
                        return "GL_RENDERBUFFER_SAMPLES_ANGLE";
                    case 0x8cd0:
                        return "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE";
                    case 0x8cd1:
                        return "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES";
                    case 0x8cd2:
                        return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES";
                    case 0x8cd3:
                        return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES";
                    case 0x8cd4:
                        return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES";
                    case 0x8cd5:
                        return "GL_FRAMEBUFFER_COMPLETE_OES";
                    case 0x8cd6:
                        return "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES";
                    case 0x8cd7:
                        return "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES";
                    case 0x8cd9:
                        return "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS";
                    case 0x8cda:
                        return "GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES";
                    case 0x8cdd:
                        return "GL_FRAMEBUFFER_UNSUPPORTED_OES";
                    case 0x8d20:
                        return "GL_STENCIL_ATTACHMENT";
                    case 0x8d40:
                        return "GL_FRAMEBUFFER_OES";
                    case 0x8d41:
                        return "GL_RENDERBUFFER_OES";
                    case 0x8d42:
                        return "GL_RENDERBUFFER_WIDTH_OES";
                    case 0x8d43:
                        return "GL_RENDERBUFFER_HEIGHT_OES";
                    case 0x8d44:
                        return "GL_RENDERBUFFER_INTERNAL_FORMAT_OES";
                    case 0x8d46:
                        return "GL_STENCIL_INDEX1";
                    case 0x8d47:
                        return "GL_STENCIL_INDEX4";
                    case 0x8d48:
                        return "GL_STENCIL_INDEX8";
                    case 0x8d49:
                        return "GL_STENCIL_INDEX16";
                    case 0x8d50:
                        return "GL_RENDERBUFFER_RED_SIZE_OES";
                    case 0x8d51:
                        return "GL_RENDERBUFFER_GREEN_SIZE_OES";
                    case 0x8d52:
                        return "GL_RENDERBUFFER_BLUE_SIZE_OES";
                    case 0x8d53:
                        return "GL_RENDERBUFFER_ALPHA_SIZE_OES";
                    case 0x8d54:
                        return "GL_RENDERBUFFER_DEPTH_SIZE_OES";
                    case 0x8d55:
                        return "GL_RENDERBUFFER_STENCIL_SIZE_OES";
                    case 0x8d56:
                        return "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE";
                    case 0x8d57:
                        return "GL_MAX_SAMPLES";
                    case 0x8d60:
                        return "GL_TEXTURE_GEN_STR_OES";
                    case 0x8d62:
                        return "GL_RGB565";
                    case 0x8d69:
                        return "GL_PRIMITIVE_RESTART_FIXED_INDEX";
                    case 0x8d6a:
                        return "GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT";
                    case 0x8d6b:
                        return "GL_MAX_ELEMENT_INDEX";
                    case 0x8d94:
                        return "GL_RED_INTEGER";
                    case 0x8d95:
                        return "GL_GREEN_INTEGER";
                    case 0x8d96:
                        return "GL_BLUE_INTEGER";
                    case 0x8d97:
                        return "GL_ALPHA_INTEGER";
                    case 0x8d98:
                        return "GL_RGB_INTEGER";
                    case 0x8d99:
                        return "GL_RGBA_INTEGER";
                    case 0x8d9a:
                        return "GL_BGR_INTEGER";
                    case 0x8d9b:
                        return "GL_BGRA_INTEGER";
                    case 0x8da7:
                        return "GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT";
                    case 0x8da8:
                        return "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT";
                    case 0x8dad:
                        return "GL_FLOAT_32_UNSIGNED_INT_24_8_REV";
                    case 0x8db9:
                        return "GL_FRAMEBUFFER_SRGB";
                    case 0x8dc0:
                        return "GL_SAMPLER_1D_ARRAY";
                    case 0x8dc1:
                        return "GL_SAMPLER_2D_ARRAY";
                    case 0x8dc2:
                        return "GL_SAMPLER_BUFFER";
                    case 0x8dc3:
                        return "GL_SAMPLER_1D_ARRAY_SHADOW";
                    case 0x8dc4:
                        return "GL_SAMPLER_2D_ARRAY_SHADOW";
                    case 0x8dc5:
                        return "GL_SAMPLER_CUBE_SHADOW";
                    case 0x8dc6:
                        return "GL_UNSIGNED_INT_VEC2";
                    case 0x8dc7:
                        return "GL_UNSIGNED_INT_VEC3";
                    case 0x8dc8:
                        return "GL_UNSIGNED_INT_VEC4";
                    case 0x8dc9:
                        return "GL_INT_SAMPLER_1D";
                    case 0x8dca:
                        return "GL_INT_SAMPLER_2D";
                    case 0x8dcb:
                        return "GL_INT_SAMPLER_3D";
                    case 0x8dcc:
                        return "GL_INT_SAMPLER_CUBE";
                    case 0x8dcd:
                        return "GL_INT_SAMPLER_2D_RECT";
                    case 0x8dce:
                        return "GL_INT_SAMPLER_1D_ARRAY";
                    case 0x8dcf:
                        return "GL_INT_SAMPLER_2D_ARRAY";
                    case 0x8dd0:
                        return "GL_INT_SAMPLER_BUFFER";
                    case 0x8dd1:
                        return "GL_UNSIGNED_INT_SAMPLER_1D";
                    case 0x8dd2:
                        return "GL_UNSIGNED_INT_SAMPLER_2D";
                    case 0x8dd3:
                        return "GL_UNSIGNED_INT_SAMPLER_3D";
                    case 0x8dd4:
                        return "GL_UNSIGNED_INT_SAMPLER_CUBE";
                    case 0x8dd5:
                        return "GL_UNSIGNED_INT_SAMPLER_2D_RECT";
                    case 0x8dd6:
                        return "GL_UNSIGNED_INT_SAMPLER_1D_ARRAY";
                    case 0x8dd7:
                        return "GL_UNSIGNED_INT_SAMPLER_2D_ARRAY";
                    case 0x8dd8:
                        return "GL_UNSIGNED_INT_SAMPLER_BUFFER";
                    case 0x8dd9:
                        return "GL_GEOMETRY_SHADER_EXT";
                    case 0x8ddf:
                        return "GL_MAX_GEOMETRY_UNIFORM_COMPONENTS";
                    case 0x8de0:
                        return "GL_MAX_GEOMETRY_OUTPUT_VERTICES";
                    case 0x8de1:
                        return "GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS";
                    case 0x8de7:
                        return "GL_MAX_SUBROUTINES";
                    case 0x8de8:
                        return "GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS";
                    case 0x8df8:
                        return "GL_SHADER_BINARY_FORMATS";
                    case 0x8df9:
                        return "GL_NUM_SHADER_BINARY_FORMATS";
                    case 0x8dfa:
                        return "GL_SHADER_COMPILER";
                    case 0x8dfb:
                        return "GL_MAX_VERTEX_UNIFORM_VECTORS";
                    case 0x8dfc:
                        return "GL_MAX_VARYING_VECTORS";
                    case 0x8dfd:
                        return "GL_MAX_FRAGMENT_UNIFORM_VECTORS";
                    case 0x8e17:
                        return "GL_QUERY_WAIT_INVERTED";
                    case 0x8e18:
                        return "GL_QUERY_NO_WAIT_INVERTED";
                    case 0x8e19:
                        return "GL_QUERY_BY_REGION_WAIT_INVERTED";
                    case 0x8e1a:
                        return "GL_QUERY_BY_REGION_NO_WAIT_INVERTED";
                    case 0x8e1b:
                        return "GL_POLYGON_OFFSET_CLAMP";
                    case 0x8e1e:
                        return "GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS";
                    case 0x8e1f:
                        return "GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS";
                    case 0x8e23:
                        return "GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED";
                    case 0x8e24:
                        return "GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE";
                    case 0x8e25:
                        return "GL_TRANSFORM_FEEDBACK_BINDING";
                    case 0x8e28:
                        return "GL_TIMESTAMP";
                    case 0x8e4c:
                        return "GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION";
                    case 0x8e4d:
                        return "GL_FIRST_VERTEX_CONVENTION_EXT";
                    case 0x8e4e:
                        return "GL_LAST_VERTEX_CONVENTION_EXT";
                    case 0x8e4f:
                        return "GL_PROVOKING_VERTEX";
                    case 0x8e50:
                        return "GL_SAMPLE_POSITION";
                    case 0x8e51:
                        return "GL_SAMPLE_MASK";
                    case 0x8e52:
                        return "GL_SAMPLE_MASK_VALUE";
                    case 0x8e59:
                        return "GL_MAX_SAMPLE_MASK_WORDS";
                    case 0x8e5a:
                        return "GL_MAX_GEOMETRY_SHADER_INVOCATIONS";
                    case 0x8e5b:
                        return "GL_MIN_FRAGMENT_INTERPOLATION_OFFSET";
                    case 0x8e5c:
                        return "GL_MAX_FRAGMENT_INTERPOLATION_OFFSET";
                    case 0x8e5d:
                        return "GL_FRAGMENT_INTERPOLATION_OFFSET_BITS";
                    case 0x8e5e:
                        return "GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET";
                    case 0x8e5f:
                        return "GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET";
                    case 0x8e70:
                        return "GL_MAX_TRANSFORM_FEEDBACK_BUFFERS";
                    case 0x8e71:
                        return "GL_MAX_VERTEX_STREAMS";
                    case 0x8e75:
                        return "GL_TESS_CONTROL_OUTPUT_VERTICES";
                    case 0x8e76:
                        return "GL_TESS_GEN_MODE";
                    case 0x8e77:
                        return "GL_TESS_GEN_SPACING";
                    case 0x8e78:
                        return "GL_TESS_GEN_VERTEX_ORDER";
                    case 0x8e79:
                        return "GL_TESS_GEN_POINT_MODE";
                    case 0x8e7a:
                        return "GL_ISOLINES";
                    case 0x8e7b:
                        return "GL_FRACTIONAL_ODD";
                    case 0x8e7c:
                        return "GL_FRACTIONAL_EVEN";
                    case 0x8e7d:
                        return "GL_MAX_PATCH_VERTICES";
                    case 0x8e7e:
                        return "GL_MAX_TESS_GEN_LEVEL";
                    case 0x8e7f:
                        return "GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS";
                    case 0x8e80:
                        return "GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS";
                    case 0x8e81:
                        return "GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS";
                    case 0x8e82:
                        return "GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS";
                    case 0x8e83:
                        return "GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS";
                    case 0x8e84:
                        return "GL_MAX_TESS_PATCH_COMPONENTS";
                    case 0x8e85:
                        return "GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS";
                    case 0x8e86:
                        return "GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS";
                    case 0x8e89:
                        return "GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS";
                    case 0x8e8a:
                        return "GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS";
                    case 0x8f36:
                        return "GL_COPY_READ_BUFFER_BINDING";
                    case 0x8f37:
                        return "GL_COPY_WRITE_BUFFER_BINDING";
                    case 0x8f38:
                        return "GL_MAX_IMAGE_UNITS";
                    case 0x8f39:
                        return "GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS";
                    case 0x8f3a:
                        return "GL_IMAGE_BINDING_NAME";
                    case 0x8f3b:
                        return "GL_IMAGE_BINDING_LEVEL";
                    case 0x8f3c:
                        return "GL_IMAGE_BINDING_LAYERED";
                    case 0x8f3d:
                        return "GL_IMAGE_BINDING_LAYER";
                    case 0x8f3e:
                        return "GL_IMAGE_BINDING_ACCESS";
                    case 0x8f43:
                        return "GL_DRAW_INDIRECT_BUFFER_BINDING";
                    case 0x8f46:
                        return "GL_DOUBLE_MAT2";
                    case 0x8f47:
                        return "GL_DOUBLE_MAT3";
                    case 0x8f48:
                        return "GL_DOUBLE_MAT4";
                    case 0x8f49:
                        return "GL_DOUBLE_MAT2x3";
                    case 0x8f4a:
                        return "GL_DOUBLE_MAT2x4";
                    case 0x8f4b:
                        return "GL_DOUBLE_MAT3x2";
                    case 0x8f4c:
                        return "GL_DOUBLE_MAT3x4";
                    case 0x8f4d:
                        return "GL_DOUBLE_MAT4x2";
                    case 0x8f4e:
                        return "GL_DOUBLE_MAT4x3";
                    case 0x8f4f:
                        return "GL_VERTEX_BINDING_BUFFER";
                    case 0x8f9b:
                        return "GL_RGBA16_SNORM";
                    case 0x8f9c:
                        return "GL_SIGNED_NORMALIZED";
                    case 0x8f9d:
                        return "GL_PRIMITIVE_RESTART";
                    case 0x8f9e:
                        return "GL_PRIMITIVE_RESTART_INDEX";
                    case 0x8fbb:
                        return "GL_GPU_DISJOINT_EXT";
                    case 0x8ffc:
                        return "GL_DOUBLE_VEC2";
                    case 0x8ffd:
                        return "GL_DOUBLE_VEC3";
                    case 0x8ffe:
                        return "GL_DOUBLE_VEC4";
                    case 0x900a:
                        return "GL_TEXTURE_BINDING_CUBE_MAP_ARRAY";
                    case 0x900c:
                        return "GL_SAMPLER_CUBE_MAP_ARRAY";
                    case 0x900d:
                        return "GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW";
                    case 0x900e:
                        return "GL_INT_SAMPLER_CUBE_MAP_ARRAY";
                    case 0x900f:
                        return "GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY";
                    case 0x904c:
                        return "GL_IMAGE_1D";
                    case 0x904d:
                        return "GL_IMAGE_2D";
                    case 0x904e:
                        return "GL_IMAGE_3D";
                    case 0x904f:
                        return "GL_IMAGE_2D_RECT";
                    case 0x9050:
                        return "GL_IMAGE_CUBE";
                    case 0x9051:
                        return "GL_IMAGE_BUFFER";
                    case 0x9052:
                        return "GL_IMAGE_1D_ARRAY";
                    case 0x9053:
                        return "GL_IMAGE_2D_ARRAY";
                    case 0x9054:
                        return "GL_IMAGE_CUBE_MAP_ARRAY";
                    case 0x9055:
                        return "GL_IMAGE_2D_MULTISAMPLE";
                    case 0x9056:
                        return "GL_IMAGE_2D_MULTISAMPLE_ARRAY";
                    case 0x9057:
                        return "GL_INT_IMAGE_1D";
                    case 0x9058:
                        return "GL_INT_IMAGE_2D";
                    case 0x9059:
                        return "GL_INT_IMAGE_3D";
                    case 0x905a:
                        return "GL_INT_IMAGE_2D_RECT";
                    case 0x905b:
                        return "GL_INT_IMAGE_CUBE";
                    case 0x905c:
                        return "GL_INT_IMAGE_BUFFER";
                    case 0x905d:
                        return "GL_INT_IMAGE_1D_ARRAY";
                    case 0x905e:
                        return "GL_INT_IMAGE_2D_ARRAY";
                    case 0x905f:
                        return "GL_INT_IMAGE_CUBE_MAP_ARRAY";
                    case 0x9060:
                        return "GL_INT_IMAGE_2D_MULTISAMPLE";
                    case 0x9061:
                        return "GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY";
                    case 0x9062:
                        return "GL_UNSIGNED_INT_IMAGE_1D";
                    case 0x9063:
                        return "GL_UNSIGNED_INT_IMAGE_2D";
                    case 0x9064:
                        return "GL_UNSIGNED_INT_IMAGE_3D";
                    case 0x9065:
                        return "GL_UNSIGNED_INT_IMAGE_2D_RECT";
                    case 0x9066:
                        return "GL_UNSIGNED_INT_IMAGE_CUBE";
                    case 0x9067:
                        return "GL_UNSIGNED_INT_IMAGE_BUFFER";
                    case 0x9068:
                        return "GL_UNSIGNED_INT_IMAGE_1D_ARRAY";
                    case 0x9069:
                        return "GL_UNSIGNED_INT_IMAGE_2D_ARRAY";
                    case 0x906a:
                        return "GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY";
                    case 0x906b:
                        return "GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE";
                    case 0x906c:
                        return "GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY";
                    case 0x906d:
                        return "GL_MAX_IMAGE_SAMPLES";
                    case 0x906e:
                        return "GL_IMAGE_BINDING_FORMAT";
                    case 0x90bc:
                        return "GL_MIN_MAP_BUFFER_ALIGNMENT";
                    case 0x90c8:
                        return "GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE";
                    case 0x90c9:
                        return "GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS";
                    case 0x90ca:
                        return "GL_MAX_VERTEX_IMAGE_UNIFORMS";
                    case 0x90cb:
                        return "GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS";
                    case 0x90cc:
                        return "GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS";
                    case 0x90cd:
                        return "GL_MAX_GEOMETRY_IMAGE_UNIFORMS";
                    case 0x90ce:
                        return "GL_MAX_FRAGMENT_IMAGE_UNIFORMS";
                    case 0x90cf:
                        return "GL_MAX_COMBINED_IMAGE_UNIFORMS";
                    case 0x90d3:
                        return "GL_SHADER_STORAGE_BUFFER_BINDING";
                    case 0x90d4:
                        return "GL_SHADER_STORAGE_BUFFER_START";
                    case 0x90d5:
                        return "GL_SHADER_STORAGE_BUFFER_SIZE";
                    case 0x90d6:
                        return "GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS";
                    case 0x90d7:
                        return "GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS";
                    case 0x90d8:
                        return "GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS";
                    case 0x90d9:
                        return "GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS";
                    case 0x90da:
                        return "GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS";
                    case 0x90db:
                        return "GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS";
                    case 0x90dc:
                        return "GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS";
                    case 0x90dd:
                        return "GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS";
                    case 0x90de:
                        return "GL_MAX_SHADER_STORAGE_BLOCK_SIZE";
                    case 0x90df:
                        return "GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT";
                    case 0x90eb:
                        return "GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS";
                    case 0x90ef:
                        return "GL_DISPATCH_INDIRECT_BUFFER_BINDING";
                    case 0x90f3:
                        return "GL_CONTEXT_ROBUST_ACCESS";
                    case 0x9102:
                        return "GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES";
                    case 0x9104:
                        return "GL_TEXTURE_BINDING_2D_MULTISAMPLE";
                    case 0x9105:
                        return "GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY";
                    case 0x9106:
                        return "GL_TEXTURE_SAMPLES";
                    case 0x9107:
                        return "GL_TEXTURE_FIXED_SAMPLE_LOCATIONS";
                    case 0x9108:
                        return "GL_SAMPLER_2D_MULTISAMPLE";
                    case 0x9109:
                        return "GL_INT_SAMPLER_2D_MULTISAMPLE";
                    case 0x910a:
                        return "GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE";
                    case 0x910b:
                        return "GL_SAMPLER_2D_MULTISAMPLE_ARRAY";
                    case 0x910c:
                        return "GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY";
                    case 0x910d:
                        return "GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY";
                    case 0x910e:
                        return "GL_MAX_COLOR_TEXTURE_SAMPLES";
                    case 0x910f:
                        return "GL_MAX_DEPTH_TEXTURE_SAMPLES";
                    case 0x9110:
                        return "GL_MAX_INTEGER_SAMPLES";
                    case 0x9111:
                        return "GL_MAX_SERVER_WAIT_TIMEOUT";
                    case 0x9116:
                        return "GL_SYNC_FENCE";
                    case 0x9118:
                        return "GL_UNSIGNALED";
                    case 0x9119:
                        return "GL_SIGNALED";
                    case 0x9122:
                        return "GL_MAX_VERTEX_OUTPUT_COMPONENTS";
                    case 0x9123:
                        return "GL_MAX_GEOMETRY_INPUT_COMPONENTS";
                    case 0x9124:
                        return "GL_MAX_GEOMETRY_OUTPUT_COMPONENTS";
                    case 0x9125:
                        return "GL_MAX_FRAGMENT_INPUT_COMPONENTS";
                    case 0x9126:
                        return "GL_CONTEXT_PROFILE_MASK";
                    case 0x9127:
                        return "GL_UNPACK_COMPRESSED_BLOCK_WIDTH";
                    case 0x9128:
                        return "GL_UNPACK_COMPRESSED_BLOCK_HEIGHT";
                    case 0x9129:
                        return "GL_UNPACK_COMPRESSED_BLOCK_DEPTH";
                    case 0x912a:
                        return "GL_UNPACK_COMPRESSED_BLOCK_SIZE";
                    case 0x912b:
                        return "GL_PACK_COMPRESSED_BLOCK_WIDTH";
                    case 0x912c:
                        return "GL_PACK_COMPRESSED_BLOCK_HEIGHT";
                    case 0x912d:
                        return "GL_PACK_COMPRESSED_BLOCK_DEPTH";
                    case 0x912e:
                        return "GL_PACK_COMPRESSED_BLOCK_SIZE";
                    case 0x912f:
                        return "GL_TEXTURE_IMMUTABLE_FORMAT";
                    case 0x9143:
                        return "GL_MAX_DEBUG_MESSAGE_LENGTH";
                    case 0x9144:
                        return "GL_MAX_DEBUG_LOGGED_MESSAGES";
                    case 0x9145:
                        return "GL_DEBUG_LOGGED_MESSAGES";
                    case 0x9146:
                        return "GL_DEBUG_SEVERITY_HIGH_KHR";
                    case 0x9147:
                        return "GL_DEBUG_SEVERITY_MEDIUM_KHR";
                    case 0x9148:
                        return "GL_DEBUG_SEVERITY_LOW_KHR";
                    case 0x9193:
                        return "GL_QUERY_BUFFER_BINDING";
                    case 0x919d:
                        return "GL_TEXTURE_BUFFER_OFFSET";
                    case 0x919e:
                        return "GL_TEXTURE_BUFFER_SIZE";
                    case 0x919f:
                        return "GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT";
                    case 0x91b0:
                        return "GL_MAX_SHADER_COMPILER_THREADS_KHR";
                    case 0x91b1:
                        return "GL_COMPLETION_STATUS_KHR";
                    case 0x91bb:
                        return "GL_MAX_COMPUTE_UNIFORM_BLOCKS";
                    case 0x91bc:
                        return "GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS";
                    case 0x91bd:
                        return "GL_MAX_COMPUTE_IMAGE_UNIFORMS";
                    case 0x91be:
                        return "GL_MAX_COMPUTE_WORK_GROUP_COUNT";
                    case 0x91bf:
                        return "GL_MAX_COMPUTE_WORK_GROUP_SIZE";
                    case 0x9294:
                        return "GL_MULTIPLY";
                    case 0x9295:
                        return "GL_SCREEN";
                    case 0x9296:
                        return "GL_OVERLAY";
                    case 0x9297:
                        return "GL_DARKEN";
                    case 0x9298:
                        return "GL_LIGHTEN";
                    case 0x9299:
                        return "GL_COLORDODGE";
                    case 0x929a:
                        return "GL_COLORBURN";
                    case 0x929b:
                        return "GL_HARDLIGHT";
                    case 0x929c:
                        return "GL_SOFTLIGHT";
                    case 0x929e:
                        return "GL_DIFFERENCE";
                    case 0x92a0:
                        return "GL_EXCLUSION";
                    case 0x92ad:
                        return "GL_HSL_HUE";
                    case 0x92ae:
                        return "GL_HSL_SATURATION";
                    case 0x92af:
                        return "GL_HSL_COLOR";
                    case 0x92b0:
                        return "GL_HSL_LUMINOSITY";
                    case 0x92be:
                        return "GL_PRIMITIVE_BOUNDING_BOX";
                    case 0x92c2:
                        return "GL_ATOMIC_COUNTER_BUFFER_START";
                    case 0x92c3:
                        return "GL_ATOMIC_COUNTER_BUFFER_SIZE";
                    case 0x92cc:
                        return "GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS";
                    case 0x92cd:
                        return "GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS";
                    case 0x92ce:
                        return "GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS";
                    case 0x92cf:
                        return "GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS";
                    case 0x92d0:
                        return "GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS";
                    case 0x92d1:
                        return "GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS";
                    case 0x92d2:
                        return "GL_MAX_VERTEX_ATOMIC_COUNTERS";
                    case 0x92d3:
                        return "GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS";
                    case 0x92d4:
                        return "GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS";
                    case 0x92d5:
                        return "GL_MAX_GEOMETRY_ATOMIC_COUNTERS";
                    case 0x92d6:
                        return "GL_MAX_FRAGMENT_ATOMIC_COUNTERS";
                    case 0x92d7:
                        return "GL_MAX_COMBINED_ATOMIC_COUNTERS";
                    case 0x92d8:
                        return "GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE";
                    case 0x92db:
                        return "GL_UNSIGNED_INT_ATOMIC_COUNTER";
                    case 0x92dc:
                        return "GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS";
                    case 0x92e0:
                        return "GL_DEBUG_OUTPUT";
                    case 0x92e7:
                        return "GL_IS_PER_PATCH";
                    case 0x92f9:
                        return "GL_NAME_LENGTH";
                    case 0x92fa:
                        return "GL_TYPE";
                    case 0x92fb:
                        return "GL_ARRAY_SIZE";
                    case 0x92fc:
                        return "GL_OFFSET";
                    case 0x92fd:
                        return "GL_BLOCK_INDEX";
                    case 0x92fe:
                        return "GL_ARRAY_STRIDE";
                    case 0x92ff:
                        return "GL_MATRIX_STRIDE";
                    case 0x9300:
                        return "GL_IS_ROW_MAJOR";
                    case 0x9301:
                        return "GL_ATOMIC_COUNTER_BUFFER_INDEX";
                    case 0x9302:
                        return "GL_BUFFER_BINDING";
                    case 0x9303:
                        return "GL_BUFFER_DATA_SIZE";
                    case 0x9304:
                        return "GL_NUM_ACTIVE_VARIABLES";
                    case 0x9305:
                        return "GL_ACTIVE_VARIABLES";
                    case 0x9306:
                        return "GL_REFERENCED_BY_VERTEX_SHADER";
                    case 0x9307:
                        return "GL_REFERENCED_BY_TESS_CONTROL_SHADER";
                    case 0x9308:
                        return "GL_REFERENCED_BY_TESS_EVALUATION_SHADER";
                    case 0x9309:
                        return "GL_REFERENCED_BY_GEOMETRY_SHADER";
                    case 0x930a:
                        return "GL_REFERENCED_BY_FRAGMENT_SHADER";
                    case 0x930b:
                        return "GL_REFERENCED_BY_COMPUTE_SHADER";
                    case 0x930c:
                        return "GL_TOP_LEVEL_ARRAY_SIZE";
                    case 0x930d:
                        return "GL_TOP_LEVEL_ARRAY_STRIDE";
                    case 0x930e:
                        return "GL_LOCATION";
                    case 0x930f:
                        return "GL_LOCATION_INDEX";
                    case 0x9312:
                        return "GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT";
                    case 0x9315:
                        return "GL_MAX_FRAMEBUFFER_WIDTH";
                    case 0x9316:
                        return "GL_MAX_FRAMEBUFFER_HEIGHT";
                    case 0x9317:
                        return "GL_MAX_FRAMEBUFFER_LAYERS";
                    case 0x9318:
                        return "GL_MAX_FRAMEBUFFER_SAMPLES";
                    case 0x934a:
                        return "GL_LOCATION_COMPONENT";
                    case 0x934b:
                        return "GL_TRANSFORM_FEEDBACK_BUFFER_INDEX";
                    case 0x934c:
                        return "GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE";
                    case 0x935c:
                        return "GL_CLIP_ORIGIN";
                    case 0x935d:
                        return "GL_CLIP_DEPTH_MODE";
                    case 0x9381:
                        return "GL_MULTISAMPLE_LINE_WIDTH_RANGE";
                    case 0x9382:
                        return "GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY";
                    case 0x93a0:
                        return "GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE";
                    case 0x93a1:
                        return "GL_BGRA8_EXT";
                    case 0x93a6:
                        return "GL_PROGRAM_BINARY_ANGLE";
                    case 0x93b0:
                        return "GL_COMPRESSED_RGBA_ASTC_4x4";
                    case 0x93b1:
                        return "GL_COMPRESSED_RGBA_ASTC_5x4";
                    case 0x93b2:
                        return "GL_COMPRESSED_RGBA_ASTC_5x5";
                    case 0x93b3:
                        return "GL_COMPRESSED_RGBA_ASTC_6x5";
                    case 0x93b4:
                        return "GL_COMPRESSED_RGBA_ASTC_6x6";
                    case 0x93b5:
                        return "GL_COMPRESSED_RGBA_ASTC_8x5";
                    case 0x93b6:
                        return "GL_COMPRESSED_RGBA_ASTC_8x6";
                    case 0x93b7:
                        return "GL_COMPRESSED_RGBA_ASTC_8x8";
                    case 0x93b8:
                        return "GL_COMPRESSED_RGBA_ASTC_10x5";
                    case 0x93b9:
                        return "GL_COMPRESSED_RGBA_ASTC_10x6";
                    case 0x93ba:
                        return "GL_COMPRESSED_RGBA_ASTC_10x8";
                    case 0x93bb:
                        return "GL_COMPRESSED_RGBA_ASTC_10x10";
                    case 0x93bc:
                        return "GL_COMPRESSED_RGBA_ASTC_12x10";
                    case 0x93bd:
                        return "GL_COMPRESSED_RGBA_ASTC_12x12";
                    case 0x93d0:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4";
                    case 0x93d1:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4";
                    case 0x93d2:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5";
                    case 0x93d3:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5";
                    case 0x93d4:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6";
                    case 0x93d5:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5";
                    case 0x93d6:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6";
                    case 0x93d7:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8";
                    case 0x93d8:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5";
                    case 0x93d9:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6";
                    case 0x93da:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8";
                    case 0x93db:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10";
                    case 0x93dc:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10";
                    case 0x93dd:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12";
                    case 0x9551:
                        return "GL_SHADER_BINARY_FORMAT_SPIR_V";
                    case 0x9552:
                        return "GL_SPIR_V_BINARY";
                    case 0x9553:
                        return "GL_SPIR_V_EXTENSIONS";
                    case 0x9554:
                        return "GL_NUM_SPIR_V_EXTENSIONS";
                    case 0x9582:
                        return "GL_NUM_TILING_TYPES_EXT";
                    case 0x9583:
                        return "GL_TILING_TYPES_EXT";
                    case 0x9584:
                        return "GL_OPTIMAL_TILING_EXT";
                    case 0x9585:
                        return "GL_LINEAR_TILING_EXT";
                    case 0x9630:
                        return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR";
                    case 0x9631:
                        return "GL_MAX_VIEWS_OVR";
                    case 0x9632:
                        return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR";
                    case 0x9633:
                        return "GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::DepthFunction:
            {
                switch (value)
                {
                    case 0x200:
                        return "GL_NEVER";
                    case 0x201:
                        return "GL_LESS";
                    case 0x202:
                        return "GL_EQUAL";
                    case 0x203:
                        return "GL_LEQUAL";
                    case 0x204:
                        return "GL_GREATER";
                    case 0x205:
                        return "GL_NOTEQUAL";
                    case 0x206:
                        return "GL_GEQUAL";
                    case 0x207:
                        return "GL_ALWAYS";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::DrawBufferMode:
            {
                switch (value)
                {
                    case 0x0:
                        return "GL_NONE";
                    case 0x400:
                        return "GL_FRONT_LEFT";
                    case 0x401:
                        return "GL_FRONT_RIGHT";
                    case 0x402:
                        return "GL_BACK_LEFT";
                    case 0x403:
                        return "GL_BACK_RIGHT";
                    case 0x404:
                        return "GL_FRONT";
                    case 0x405:
                        return "GL_BACK";
                    case 0x406:
                        return "GL_LEFT";
                    case 0x407:
                        return "GL_RIGHT";
                    case 0x408:
                        return "GL_FRONT_AND_BACK";
                    case 0x409:
                        return "GL_AUX0";
                    case 0x40a:
                        return "GL_AUX1";
                    case 0x40b:
                        return "GL_AUX2";
                    case 0x40c:
                        return "GL_AUX3";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::DrawElementsType:
            {
                switch (value)
                {
                    case 0x1401:
                        return "GL_UNSIGNED_BYTE";
                    case 0x1403:
                        return "GL_UNSIGNED_SHORT";
                    case 0x1405:
                        return "GL_UNSIGNED_INT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::EnableCap:
            {
                switch (value)
                {
                    case 0xb10:
                        return "GL_POINT_SMOOTH";
                    case 0xb20:
                        return "GL_LINE_SMOOTH";
                    case 0xb24:
                        return "GL_LINE_STIPPLE";
                    case 0xb41:
                        return "GL_POLYGON_SMOOTH";
                    case 0xb42:
                        return "GL_POLYGON_STIPPLE";
                    case 0xb44:
                        return "GL_CULL_FACE";
                    case 0xb50:
                        return "GL_LIGHTING";
                    case 0xb57:
                        return "GL_COLOR_MATERIAL";
                    case 0xb60:
                        return "GL_FOG";
                    case 0xb71:
                        return "GL_DEPTH_TEST";
                    case 0xb90:
                        return "GL_STENCIL_TEST";
                    case 0xba1:
                        return "GL_NORMALIZE";
                    case 0xbc0:
                        return "GL_ALPHA_TEST";
                    case 0xbd0:
                        return "GL_DITHER";
                    case 0xbe2:
                        return "GL_BLEND";
                    case 0xbf1:
                        return "GL_INDEX_LOGIC_OP";
                    case 0xbf2:
                        return "GL_COLOR_LOGIC_OP";
                    case 0xc11:
                        return "GL_SCISSOR_TEST";
                    case 0xc60:
                        return "GL_TEXTURE_GEN_S";
                    case 0xc61:
                        return "GL_TEXTURE_GEN_T";
                    case 0xc62:
                        return "GL_TEXTURE_GEN_R";
                    case 0xc63:
                        return "GL_TEXTURE_GEN_Q";
                    case 0xd80:
                        return "GL_AUTO_NORMAL";
                    case 0xd90:
                        return "GL_MAP1_COLOR_4";
                    case 0xd91:
                        return "GL_MAP1_INDEX";
                    case 0xd92:
                        return "GL_MAP1_NORMAL";
                    case 0xd93:
                        return "GL_MAP1_TEXTURE_COORD_1";
                    case 0xd94:
                        return "GL_MAP1_TEXTURE_COORD_2";
                    case 0xd95:
                        return "GL_MAP1_TEXTURE_COORD_3";
                    case 0xd96:
                        return "GL_MAP1_TEXTURE_COORD_4";
                    case 0xd97:
                        return "GL_MAP1_VERTEX_3";
                    case 0xd98:
                        return "GL_MAP1_VERTEX_4";
                    case 0xdb0:
                        return "GL_MAP2_COLOR_4";
                    case 0xdb1:
                        return "GL_MAP2_INDEX";
                    case 0xdb2:
                        return "GL_MAP2_NORMAL";
                    case 0xdb3:
                        return "GL_MAP2_TEXTURE_COORD_1";
                    case 0xdb4:
                        return "GL_MAP2_TEXTURE_COORD_2";
                    case 0xdb5:
                        return "GL_MAP2_TEXTURE_COORD_3";
                    case 0xdb6:
                        return "GL_MAP2_TEXTURE_COORD_4";
                    case 0xdb7:
                        return "GL_MAP2_VERTEX_3";
                    case 0xdb8:
                        return "GL_MAP2_VERTEX_4";
                    case 0xde0:
                        return "GL_TEXTURE_1D";
                    case 0xde1:
                        return "GL_TEXTURE_2D";
                    case 0x2a01:
                        return "GL_POLYGON_OFFSET_POINT";
                    case 0x2a02:
                        return "GL_POLYGON_OFFSET_LINE";
                    case 0x3000:
                        return "GL_CLIP_PLANE0";
                    case 0x3001:
                        return "GL_CLIP_PLANE1";
                    case 0x3002:
                        return "GL_CLIP_PLANE2";
                    case 0x3003:
                        return "GL_CLIP_PLANE3";
                    case 0x3004:
                        return "GL_CLIP_PLANE4";
                    case 0x3005:
                        return "GL_CLIP_PLANE5";
                    case 0x4000:
                        return "GL_LIGHT0";
                    case 0x4001:
                        return "GL_LIGHT1";
                    case 0x4002:
                        return "GL_LIGHT2";
                    case 0x4003:
                        return "GL_LIGHT3";
                    case 0x4004:
                        return "GL_LIGHT4";
                    case 0x4005:
                        return "GL_LIGHT5";
                    case 0x4006:
                        return "GL_LIGHT6";
                    case 0x4007:
                        return "GL_LIGHT7";
                    case 0x8037:
                        return "GL_POLYGON_OFFSET_FILL";
                    case 0x8074:
                        return "GL_VERTEX_ARRAY";
                    case 0x8075:
                        return "GL_NORMAL_ARRAY";
                    case 0x8076:
                        return "GL_COLOR_ARRAY";
                    case 0x8077:
                        return "GL_INDEX_ARRAY";
                    case 0x8078:
                        return "GL_TEXTURE_COORD_ARRAY";
                    case 0x8079:
                        return "GL_EDGE_FLAG_ARRAY";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ErrorCode:
            {
                switch (value)
                {
                    case 0x500:
                        return "GL_INVALID_ENUM";
                    case 0x501:
                        return "GL_INVALID_VALUE";
                    case 0x502:
                        return "GL_INVALID_OPERATION";
                    case 0x503:
                        return "GL_STACK_OVERFLOW";
                    case 0x504:
                        return "GL_STACK_UNDERFLOW";
                    case 0x505:
                        return "GL_OUT_OF_MEMORY";
                    case 0x506:
                        return "GL_INVALID_FRAMEBUFFER_OPERATION";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ExternalHandleType:
            {
                switch (value)
                {
                    case 0x9586:
                        return "GL_HANDLE_TYPE_OPAQUE_FD_EXT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::FeedBackToken:
            {
                switch (value)
                {
                    case 0x700:
                        return "GL_PASS_THROUGH_TOKEN";
                    case 0x701:
                        return "GL_POINT_TOKEN";
                    case 0x702:
                        return "GL_LINE_TOKEN";
                    case 0x703:
                        return "GL_POLYGON_TOKEN";
                    case 0x704:
                        return "GL_BITMAP_TOKEN";
                    case 0x705:
                        return "GL_DRAW_PIXEL_TOKEN";
                    case 0x706:
                        return "GL_COPY_PIXEL_TOKEN";
                    case 0x707:
                        return "GL_LINE_RESET_TOKEN";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::FeedbackType:
            {
                switch (value)
                {
                    case 0x600:
                        return "GL_2D";
                    case 0x601:
                        return "GL_3D";
                    case 0x602:
                        return "GL_3D_COLOR";
                    case 0x603:
                        return "GL_3D_COLOR_TEXTURE";
                    case 0x604:
                        return "GL_4D_COLOR_TEXTURE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::FogCoordinatePointerType:
            {
                switch (value)
                {
                    case 0x1406:
                        return "GL_FLOAT";
                    case 0x140a:
                        return "GL_DOUBLE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::FogMode:
            {
                switch (value)
                {
                    case 0x800:
                        return "GL_EXP";
                    case 0x801:
                        return "GL_EXP2";
                    case 0x2601:
                        return "GL_LINEAR";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::FogPName:
            {
                switch (value)
                {
                    case 0xb61:
                        return "GL_FOG_INDEX";
                    case 0xb62:
                        return "GL_FOG_DENSITY";
                    case 0xb63:
                        return "GL_FOG_START";
                    case 0xb64:
                        return "GL_FOG_END";
                    case 0xb65:
                        return "GL_FOG_MODE";
                    case 0x8450:
                        return "GL_FOG_COORD_SRC";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::FogParameter:
            {
                switch (value)
                {
                    case 0xb61:
                        return "GL_FOG_INDEX";
                    case 0xb62:
                        return "GL_FOG_DENSITY";
                    case 0xb63:
                        return "GL_FOG_START";
                    case 0xb64:
                        return "GL_FOG_END";
                    case 0xb65:
                        return "GL_FOG_MODE";
                    case 0xb66:
                        return "GL_FOG_COLOR";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::FogPointerTypeEXT:
            {
                switch (value)
                {
                    case 0x1406:
                        return "GL_FLOAT";
                    case 0x140a:
                        return "GL_DOUBLE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::FogPointerTypeIBM:
            {
                switch (value)
                {
                    case 0x1406:
                        return "GL_FLOAT";
                    case 0x140a:
                        return "GL_DOUBLE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::FramebufferAttachment:
            {
                switch (value)
                {
                    case 0x8cdf:
                        return "GL_MAX_COLOR_ATTACHMENTS";
                    case 0x8ce0:
                        return "GL_COLOR_ATTACHMENT0";
                    case 0x8ce1:
                        return "GL_COLOR_ATTACHMENT1";
                    case 0x8ce2:
                        return "GL_COLOR_ATTACHMENT2";
                    case 0x8ce3:
                        return "GL_COLOR_ATTACHMENT3";
                    case 0x8ce4:
                        return "GL_COLOR_ATTACHMENT4";
                    case 0x8ce5:
                        return "GL_COLOR_ATTACHMENT5";
                    case 0x8ce6:
                        return "GL_COLOR_ATTACHMENT6";
                    case 0x8ce7:
                        return "GL_COLOR_ATTACHMENT7";
                    case 0x8ce8:
                        return "GL_COLOR_ATTACHMENT8";
                    case 0x8ce9:
                        return "GL_COLOR_ATTACHMENT9";
                    case 0x8cea:
                        return "GL_COLOR_ATTACHMENT10";
                    case 0x8ceb:
                        return "GL_COLOR_ATTACHMENT11";
                    case 0x8cec:
                        return "GL_COLOR_ATTACHMENT12";
                    case 0x8ced:
                        return "GL_COLOR_ATTACHMENT13";
                    case 0x8cee:
                        return "GL_COLOR_ATTACHMENT14";
                    case 0x8cef:
                        return "GL_COLOR_ATTACHMENT15";
                    case 0x8cf0:
                        return "GL_COLOR_ATTACHMENT16";
                    case 0x8cf1:
                        return "GL_COLOR_ATTACHMENT17";
                    case 0x8cf2:
                        return "GL_COLOR_ATTACHMENT18";
                    case 0x8cf3:
                        return "GL_COLOR_ATTACHMENT19";
                    case 0x8cf4:
                        return "GL_COLOR_ATTACHMENT20";
                    case 0x8cf5:
                        return "GL_COLOR_ATTACHMENT21";
                    case 0x8cf6:
                        return "GL_COLOR_ATTACHMENT22";
                    case 0x8cf7:
                        return "GL_COLOR_ATTACHMENT23";
                    case 0x8cf8:
                        return "GL_COLOR_ATTACHMENT24";
                    case 0x8cf9:
                        return "GL_COLOR_ATTACHMENT25";
                    case 0x8cfa:
                        return "GL_COLOR_ATTACHMENT26";
                    case 0x8cfb:
                        return "GL_COLOR_ATTACHMENT27";
                    case 0x8cfc:
                        return "GL_COLOR_ATTACHMENT28";
                    case 0x8cfd:
                        return "GL_COLOR_ATTACHMENT29";
                    case 0x8cfe:
                        return "GL_COLOR_ATTACHMENT30";
                    case 0x8cff:
                        return "GL_COLOR_ATTACHMENT31";
                    case 0x8d00:
                        return "GL_DEPTH_ATTACHMENT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::FramebufferAttachmentParameterName:
            {
                switch (value)
                {
                    case 0x8210:
                        return "GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING";
                    case 0x8211:
                        return "GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE";
                    case 0x8212:
                        return "GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE";
                    case 0x8213:
                        return "GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE";
                    case 0x8214:
                        return "GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE";
                    case 0x8215:
                        return "GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE";
                    case 0x8216:
                        return "GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE";
                    case 0x8217:
                        return "GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE";
                    case 0x8cd1:
                        return "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME";
                    case 0x8cd2:
                        return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL";
                    case 0x8cd3:
                        return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE";
                    case 0x8cd4:
                        return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER";
                    case 0x8da7:
                        return "GL_FRAMEBUFFER_ATTACHMENT_LAYERED";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::FramebufferParameterName:
            {
                switch (value)
                {
                    case 0x9310:
                        return "GL_FRAMEBUFFER_DEFAULT_WIDTH";
                    case 0x9311:
                        return "GL_FRAMEBUFFER_DEFAULT_HEIGHT";
                    case 0x9312:
                        return "GL_FRAMEBUFFER_DEFAULT_LAYERS";
                    case 0x9313:
                        return "GL_FRAMEBUFFER_DEFAULT_SAMPLES";
                    case 0x9314:
                        return "GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::FramebufferStatus:
            {
                switch (value)
                {
                    case 0x8219:
                        return "GL_FRAMEBUFFER_UNDEFINED";
                    case 0x8cd5:
                        return "GL_FRAMEBUFFER_COMPLETE";
                    case 0x8cd6:
                        return "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT";
                    case 0x8cd7:
                        return "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";
                    case 0x8cdb:
                        return "GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER";
                    case 0x8cdc:
                        return "GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER";
                    case 0x8cdd:
                        return "GL_FRAMEBUFFER_UNSUPPORTED";
                    case 0x8d56:
                        return "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE";
                    case 0x8da8:
                        return "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::FramebufferTarget:
            {
                switch (value)
                {
                    case 0x8ca8:
                        return "GL_READ_FRAMEBUFFER";
                    case 0x8ca9:
                        return "GL_DRAW_FRAMEBUFFER";
                    case 0x8d40:
                        return "GL_FRAMEBUFFER";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::FrontFaceDirection:
            {
                switch (value)
                {
                    case 0x900:
                        return "GL_CW";
                    case 0x901:
                        return "GL_CCW";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::GetFramebufferParameter:
            {
                switch (value)
                {
                    case 0xc32:
                        return "GL_DOUBLEBUFFER";
                    case 0xc33:
                        return "GL_STEREO";
                    case 0x80a8:
                        return "GL_SAMPLE_BUFFERS";
                    case 0x80a9:
                        return "GL_SAMPLES";
                    case 0x8b9a:
                        return "GL_IMPLEMENTATION_COLOR_READ_TYPE";
                    case 0x8b9b:
                        return "GL_IMPLEMENTATION_COLOR_READ_FORMAT";
                    case 0x9310:
                        return "GL_FRAMEBUFFER_DEFAULT_WIDTH";
                    case 0x9311:
                        return "GL_FRAMEBUFFER_DEFAULT_HEIGHT";
                    case 0x9312:
                        return "GL_FRAMEBUFFER_DEFAULT_LAYERS";
                    case 0x9313:
                        return "GL_FRAMEBUFFER_DEFAULT_SAMPLES";
                    case 0x9314:
                        return "GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::GetMapQuery:
            {
                switch (value)
                {
                    case 0xa00:
                        return "GL_COEFF";
                    case 0xa01:
                        return "GL_ORDER";
                    case 0xa02:
                        return "GL_DOMAIN";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::GetPName:
            {
                switch (value)
                {
                    case 0xb00:
                        return "GL_CURRENT_COLOR";
                    case 0xb01:
                        return "GL_CURRENT_INDEX";
                    case 0xb02:
                        return "GL_CURRENT_NORMAL";
                    case 0xb03:
                        return "GL_CURRENT_TEXTURE_COORDS";
                    case 0xb04:
                        return "GL_CURRENT_RASTER_COLOR";
                    case 0xb05:
                        return "GL_CURRENT_RASTER_INDEX";
                    case 0xb06:
                        return "GL_CURRENT_RASTER_TEXTURE_COORDS";
                    case 0xb07:
                        return "GL_CURRENT_RASTER_POSITION";
                    case 0xb08:
                        return "GL_CURRENT_RASTER_POSITION_VALID";
                    case 0xb09:
                        return "GL_CURRENT_RASTER_DISTANCE";
                    case 0xb10:
                        return "GL_POINT_SMOOTH";
                    case 0xb11:
                        return "GL_POINT_SIZE";
                    case 0xb12:
                        return "GL_POINT_SIZE_RANGE";
                    case 0xb13:
                        return "GL_POINT_SIZE_GRANULARITY";
                    case 0xb20:
                        return "GL_LINE_SMOOTH";
                    case 0xb21:
                        return "GL_LINE_WIDTH";
                    case 0xb22:
                        return "GL_LINE_WIDTH_RANGE";
                    case 0xb23:
                        return "GL_LINE_WIDTH_GRANULARITY";
                    case 0xb24:
                        return "GL_LINE_STIPPLE";
                    case 0xb25:
                        return "GL_LINE_STIPPLE_PATTERN";
                    case 0xb26:
                        return "GL_LINE_STIPPLE_REPEAT";
                    case 0xb30:
                        return "GL_LIST_MODE";
                    case 0xb31:
                        return "GL_MAX_LIST_NESTING";
                    case 0xb32:
                        return "GL_LIST_BASE";
                    case 0xb33:
                        return "GL_LIST_INDEX";
                    case 0xb40:
                        return "GL_POLYGON_MODE";
                    case 0xb41:
                        return "GL_POLYGON_SMOOTH";
                    case 0xb42:
                        return "GL_POLYGON_STIPPLE";
                    case 0xb43:
                        return "GL_EDGE_FLAG";
                    case 0xb44:
                        return "GL_CULL_FACE";
                    case 0xb45:
                        return "GL_CULL_FACE_MODE";
                    case 0xb46:
                        return "GL_FRONT_FACE";
                    case 0xb50:
                        return "GL_LIGHTING";
                    case 0xb51:
                        return "GL_LIGHT_MODEL_LOCAL_VIEWER";
                    case 0xb52:
                        return "GL_LIGHT_MODEL_TWO_SIDE";
                    case 0xb53:
                        return "GL_LIGHT_MODEL_AMBIENT";
                    case 0xb54:
                        return "GL_SHADE_MODEL";
                    case 0xb55:
                        return "GL_COLOR_MATERIAL_FACE";
                    case 0xb56:
                        return "GL_COLOR_MATERIAL_PARAMETER";
                    case 0xb57:
                        return "GL_COLOR_MATERIAL";
                    case 0xb60:
                        return "GL_FOG";
                    case 0xb61:
                        return "GL_FOG_INDEX";
                    case 0xb62:
                        return "GL_FOG_DENSITY";
                    case 0xb63:
                        return "GL_FOG_START";
                    case 0xb64:
                        return "GL_FOG_END";
                    case 0xb65:
                        return "GL_FOG_MODE";
                    case 0xb66:
                        return "GL_FOG_COLOR";
                    case 0xb70:
                        return "GL_DEPTH_RANGE";
                    case 0xb71:
                        return "GL_DEPTH_TEST";
                    case 0xb72:
                        return "GL_DEPTH_WRITEMASK";
                    case 0xb73:
                        return "GL_DEPTH_CLEAR_VALUE";
                    case 0xb74:
                        return "GL_DEPTH_FUNC";
                    case 0xb80:
                        return "GL_ACCUM_CLEAR_VALUE";
                    case 0xb90:
                        return "GL_STENCIL_TEST";
                    case 0xb91:
                        return "GL_STENCIL_CLEAR_VALUE";
                    case 0xb92:
                        return "GL_STENCIL_FUNC";
                    case 0xb93:
                        return "GL_STENCIL_VALUE_MASK";
                    case 0xb94:
                        return "GL_STENCIL_FAIL";
                    case 0xb95:
                        return "GL_STENCIL_PASS_DEPTH_FAIL";
                    case 0xb96:
                        return "GL_STENCIL_PASS_DEPTH_PASS";
                    case 0xb97:
                        return "GL_STENCIL_REF";
                    case 0xb98:
                        return "GL_STENCIL_WRITEMASK";
                    case 0xba0:
                        return "GL_MATRIX_MODE";
                    case 0xba1:
                        return "GL_NORMALIZE";
                    case 0xba2:
                        return "GL_VIEWPORT";
                    case 0xba3:
                        return "GL_MODELVIEW_STACK_DEPTH";
                    case 0xba4:
                        return "GL_PROJECTION_STACK_DEPTH";
                    case 0xba5:
                        return "GL_TEXTURE_STACK_DEPTH";
                    case 0xba6:
                        return "GL_MODELVIEW_MATRIX";
                    case 0xba7:
                        return "GL_PROJECTION_MATRIX";
                    case 0xba8:
                        return "GL_TEXTURE_MATRIX";
                    case 0xbb0:
                        return "GL_ATTRIB_STACK_DEPTH";
                    case 0xbb1:
                        return "GL_CLIENT_ATTRIB_STACK_DEPTH";
                    case 0xbc0:
                        return "GL_ALPHA_TEST";
                    case 0xbc1:
                        return "GL_ALPHA_TEST_FUNC";
                    case 0xbc2:
                        return "GL_ALPHA_TEST_REF";
                    case 0xbd0:
                        return "GL_DITHER";
                    case 0xbe0:
                        return "GL_BLEND_DST";
                    case 0xbe1:
                        return "GL_BLEND_SRC";
                    case 0xbe2:
                        return "GL_BLEND";
                    case 0xbf0:
                        return "GL_LOGIC_OP_MODE";
                    case 0xbf1:
                        return "GL_INDEX_LOGIC_OP";
                    case 0xbf2:
                        return "GL_COLOR_LOGIC_OP";
                    case 0xc00:
                        return "GL_AUX_BUFFERS";
                    case 0xc01:
                        return "GL_DRAW_BUFFER";
                    case 0xc02:
                        return "GL_READ_BUFFER";
                    case 0xc10:
                        return "GL_SCISSOR_BOX";
                    case 0xc11:
                        return "GL_SCISSOR_TEST";
                    case 0xc20:
                        return "GL_INDEX_CLEAR_VALUE";
                    case 0xc21:
                        return "GL_INDEX_WRITEMASK";
                    case 0xc22:
                        return "GL_COLOR_CLEAR_VALUE";
                    case 0xc23:
                        return "GL_COLOR_WRITEMASK";
                    case 0xc30:
                        return "GL_INDEX_MODE";
                    case 0xc31:
                        return "GL_RGBA_MODE";
                    case 0xc32:
                        return "GL_DOUBLEBUFFER";
                    case 0xc33:
                        return "GL_STEREO";
                    case 0xc40:
                        return "GL_RENDER_MODE";
                    case 0xc50:
                        return "GL_PERSPECTIVE_CORRECTION_HINT";
                    case 0xc51:
                        return "GL_POINT_SMOOTH_HINT";
                    case 0xc52:
                        return "GL_LINE_SMOOTH_HINT";
                    case 0xc53:
                        return "GL_POLYGON_SMOOTH_HINT";
                    case 0xc54:
                        return "GL_FOG_HINT";
                    case 0xc60:
                        return "GL_TEXTURE_GEN_S";
                    case 0xc61:
                        return "GL_TEXTURE_GEN_T";
                    case 0xc62:
                        return "GL_TEXTURE_GEN_R";
                    case 0xc63:
                        return "GL_TEXTURE_GEN_Q";
                    case 0xcb0:
                        return "GL_PIXEL_MAP_I_TO_I_SIZE";
                    case 0xcb1:
                        return "GL_PIXEL_MAP_S_TO_S_SIZE";
                    case 0xcb2:
                        return "GL_PIXEL_MAP_I_TO_R_SIZE";
                    case 0xcb3:
                        return "GL_PIXEL_MAP_I_TO_G_SIZE";
                    case 0xcb4:
                        return "GL_PIXEL_MAP_I_TO_B_SIZE";
                    case 0xcb5:
                        return "GL_PIXEL_MAP_I_TO_A_SIZE";
                    case 0xcb6:
                        return "GL_PIXEL_MAP_R_TO_R_SIZE";
                    case 0xcb7:
                        return "GL_PIXEL_MAP_G_TO_G_SIZE";
                    case 0xcb8:
                        return "GL_PIXEL_MAP_B_TO_B_SIZE";
                    case 0xcb9:
                        return "GL_PIXEL_MAP_A_TO_A_SIZE";
                    case 0xcf0:
                        return "GL_UNPACK_SWAP_BYTES";
                    case 0xcf1:
                        return "GL_UNPACK_LSB_FIRST";
                    case 0xcf2:
                        return "GL_UNPACK_ROW_LENGTH";
                    case 0xcf3:
                        return "GL_UNPACK_SKIP_ROWS";
                    case 0xcf4:
                        return "GL_UNPACK_SKIP_PIXELS";
                    case 0xcf5:
                        return "GL_UNPACK_ALIGNMENT";
                    case 0xd00:
                        return "GL_PACK_SWAP_BYTES";
                    case 0xd01:
                        return "GL_PACK_LSB_FIRST";
                    case 0xd02:
                        return "GL_PACK_ROW_LENGTH";
                    case 0xd03:
                        return "GL_PACK_SKIP_ROWS";
                    case 0xd04:
                        return "GL_PACK_SKIP_PIXELS";
                    case 0xd05:
                        return "GL_PACK_ALIGNMENT";
                    case 0xd10:
                        return "GL_MAP_COLOR";
                    case 0xd11:
                        return "GL_MAP_STENCIL";
                    case 0xd12:
                        return "GL_INDEX_SHIFT";
                    case 0xd13:
                        return "GL_INDEX_OFFSET";
                    case 0xd14:
                        return "GL_RED_SCALE";
                    case 0xd15:
                        return "GL_RED_BIAS";
                    case 0xd16:
                        return "GL_ZOOM_X";
                    case 0xd17:
                        return "GL_ZOOM_Y";
                    case 0xd18:
                        return "GL_GREEN_SCALE";
                    case 0xd19:
                        return "GL_GREEN_BIAS";
                    case 0xd1a:
                        return "GL_BLUE_SCALE";
                    case 0xd1b:
                        return "GL_BLUE_BIAS";
                    case 0xd1c:
                        return "GL_ALPHA_SCALE";
                    case 0xd1d:
                        return "GL_ALPHA_BIAS";
                    case 0xd1e:
                        return "GL_DEPTH_SCALE";
                    case 0xd1f:
                        return "GL_DEPTH_BIAS";
                    case 0xd30:
                        return "GL_MAX_EVAL_ORDER";
                    case 0xd31:
                        return "GL_MAX_LIGHTS";
                    case 0xd32:
                        return "GL_MAX_CLIP_DISTANCES";
                    case 0xd33:
                        return "GL_MAX_TEXTURE_SIZE";
                    case 0xd34:
                        return "GL_MAX_PIXEL_MAP_TABLE";
                    case 0xd35:
                        return "GL_MAX_ATTRIB_STACK_DEPTH";
                    case 0xd36:
                        return "GL_MAX_MODELVIEW_STACK_DEPTH";
                    case 0xd37:
                        return "GL_MAX_NAME_STACK_DEPTH";
                    case 0xd38:
                        return "GL_MAX_PROJECTION_STACK_DEPTH";
                    case 0xd39:
                        return "GL_MAX_TEXTURE_STACK_DEPTH";
                    case 0xd3a:
                        return "GL_MAX_VIEWPORT_DIMS";
                    case 0xd3b:
                        return "GL_MAX_CLIENT_ATTRIB_STACK_DEPTH";
                    case 0xd50:
                        return "GL_SUBPIXEL_BITS";
                    case 0xd51:
                        return "GL_INDEX_BITS";
                    case 0xd52:
                        return "GL_RED_BITS";
                    case 0xd53:
                        return "GL_GREEN_BITS";
                    case 0xd54:
                        return "GL_BLUE_BITS";
                    case 0xd55:
                        return "GL_ALPHA_BITS";
                    case 0xd56:
                        return "GL_DEPTH_BITS";
                    case 0xd57:
                        return "GL_STENCIL_BITS";
                    case 0xd58:
                        return "GL_ACCUM_RED_BITS";
                    case 0xd59:
                        return "GL_ACCUM_GREEN_BITS";
                    case 0xd5a:
                        return "GL_ACCUM_BLUE_BITS";
                    case 0xd5b:
                        return "GL_ACCUM_ALPHA_BITS";
                    case 0xd70:
                        return "GL_NAME_STACK_DEPTH";
                    case 0xd80:
                        return "GL_AUTO_NORMAL";
                    case 0xd90:
                        return "GL_MAP1_COLOR_4";
                    case 0xd91:
                        return "GL_MAP1_INDEX";
                    case 0xd92:
                        return "GL_MAP1_NORMAL";
                    case 0xd93:
                        return "GL_MAP1_TEXTURE_COORD_1";
                    case 0xd94:
                        return "GL_MAP1_TEXTURE_COORD_2";
                    case 0xd95:
                        return "GL_MAP1_TEXTURE_COORD_3";
                    case 0xd96:
                        return "GL_MAP1_TEXTURE_COORD_4";
                    case 0xd97:
                        return "GL_MAP1_VERTEX_3";
                    case 0xd98:
                        return "GL_MAP1_VERTEX_4";
                    case 0xdb0:
                        return "GL_MAP2_COLOR_4";
                    case 0xdb1:
                        return "GL_MAP2_INDEX";
                    case 0xdb2:
                        return "GL_MAP2_NORMAL";
                    case 0xdb3:
                        return "GL_MAP2_TEXTURE_COORD_1";
                    case 0xdb4:
                        return "GL_MAP2_TEXTURE_COORD_2";
                    case 0xdb5:
                        return "GL_MAP2_TEXTURE_COORD_3";
                    case 0xdb6:
                        return "GL_MAP2_TEXTURE_COORD_4";
                    case 0xdb7:
                        return "GL_MAP2_VERTEX_3";
                    case 0xdb8:
                        return "GL_MAP2_VERTEX_4";
                    case 0xdd0:
                        return "GL_MAP1_GRID_DOMAIN";
                    case 0xdd1:
                        return "GL_MAP1_GRID_SEGMENTS";
                    case 0xdd2:
                        return "GL_MAP2_GRID_DOMAIN";
                    case 0xdd3:
                        return "GL_MAP2_GRID_SEGMENTS";
                    case 0xde0:
                        return "GL_TEXTURE_1D";
                    case 0xde1:
                        return "GL_TEXTURE_2D";
                    case 0xdf1:
                        return "GL_FEEDBACK_BUFFER_SIZE";
                    case 0xdf2:
                        return "GL_FEEDBACK_BUFFER_TYPE";
                    case 0xdf4:
                        return "GL_SELECTION_BUFFER_SIZE";
                    case 0x2a00:
                        return "GL_POLYGON_OFFSET_UNITS";
                    case 0x2a01:
                        return "GL_POLYGON_OFFSET_POINT";
                    case 0x2a02:
                        return "GL_POLYGON_OFFSET_LINE";
                    case 0x3000:
                        return "GL_CLIP_PLANE0";
                    case 0x3001:
                        return "GL_CLIP_PLANE1";
                    case 0x3002:
                        return "GL_CLIP_PLANE2";
                    case 0x3003:
                        return "GL_CLIP_PLANE3";
                    case 0x3004:
                        return "GL_CLIP_PLANE4";
                    case 0x3005:
                        return "GL_CLIP_PLANE5";
                    case 0x4000:
                        return "GL_LIGHT0";
                    case 0x4001:
                        return "GL_LIGHT1";
                    case 0x4002:
                        return "GL_LIGHT2";
                    case 0x4003:
                        return "GL_LIGHT3";
                    case 0x4004:
                        return "GL_LIGHT4";
                    case 0x4005:
                        return "GL_LIGHT5";
                    case 0x4006:
                        return "GL_LIGHT6";
                    case 0x4007:
                        return "GL_LIGHT7";
                    case 0x8037:
                        return "GL_POLYGON_OFFSET_FILL";
                    case 0x8038:
                        return "GL_POLYGON_OFFSET_FACTOR";
                    case 0x8068:
                        return "GL_TEXTURE_BINDING_1D";
                    case 0x8069:
                        return "GL_TEXTURE_BINDING_2D";
                    case 0x806a:
                        return "GL_TEXTURE_BINDING_3D";
                    case 0x8074:
                        return "GL_VERTEX_ARRAY";
                    case 0x8075:
                        return "GL_NORMAL_ARRAY";
                    case 0x8076:
                        return "GL_COLOR_ARRAY";
                    case 0x8077:
                        return "GL_INDEX_ARRAY";
                    case 0x8078:
                        return "GL_TEXTURE_COORD_ARRAY";
                    case 0x8079:
                        return "GL_EDGE_FLAG_ARRAY";
                    case 0x807a:
                        return "GL_VERTEX_ARRAY_SIZE";
                    case 0x807b:
                        return "GL_VERTEX_ARRAY_TYPE";
                    case 0x807c:
                        return "GL_VERTEX_ARRAY_STRIDE";
                    case 0x807e:
                        return "GL_NORMAL_ARRAY_TYPE";
                    case 0x807f:
                        return "GL_NORMAL_ARRAY_STRIDE";
                    case 0x8081:
                        return "GL_COLOR_ARRAY_SIZE";
                    case 0x8082:
                        return "GL_COLOR_ARRAY_TYPE";
                    case 0x8083:
                        return "GL_COLOR_ARRAY_STRIDE";
                    case 0x8085:
                        return "GL_INDEX_ARRAY_TYPE";
                    case 0x8086:
                        return "GL_INDEX_ARRAY_STRIDE";
                    case 0x8088:
                        return "GL_TEXTURE_COORD_ARRAY_SIZE";
                    case 0x8089:
                        return "GL_TEXTURE_COORD_ARRAY_TYPE";
                    case 0x808a:
                        return "GL_TEXTURE_COORD_ARRAY_STRIDE";
                    case 0x808c:
                        return "GL_EDGE_FLAG_ARRAY_STRIDE";
                    case 0x81f8:
                        return "GL_LIGHT_MODEL_COLOR_CONTROL";
                    case 0x846d:
                        return "GL_ALIASED_POINT_SIZE_RANGE";
                    case 0x846e:
                        return "GL_ALIASED_LINE_WIDTH_RANGE";
                    case 0x9596:
                        return "GL_NUM_DEVICE_UUIDS_EXT";
                    case 0x9597:
                        return "GL_DEVICE_UUID_EXT";
                    case 0x9598:
                        return "GL_DRIVER_UUID_EXT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::GetPixelMap:
            {
                switch (value)
                {
                    case 0xc70:
                        return "GL_PIXEL_MAP_I_TO_I";
                    case 0xc71:
                        return "GL_PIXEL_MAP_S_TO_S";
                    case 0xc72:
                        return "GL_PIXEL_MAP_I_TO_R";
                    case 0xc73:
                        return "GL_PIXEL_MAP_I_TO_G";
                    case 0xc74:
                        return "GL_PIXEL_MAP_I_TO_B";
                    case 0xc75:
                        return "GL_PIXEL_MAP_I_TO_A";
                    case 0xc76:
                        return "GL_PIXEL_MAP_R_TO_R";
                    case 0xc77:
                        return "GL_PIXEL_MAP_G_TO_G";
                    case 0xc78:
                        return "GL_PIXEL_MAP_B_TO_B";
                    case 0xc79:
                        return "GL_PIXEL_MAP_A_TO_A";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::GetPointervPName:
            {
                switch (value)
                {
                    case 0xdf0:
                        return "GL_FEEDBACK_BUFFER_POINTER";
                    case 0xdf3:
                        return "GL_SELECTION_BUFFER_POINTER";
                    case 0x808e:
                        return "GL_VERTEX_ARRAY_POINTER";
                    case 0x808f:
                        return "GL_NORMAL_ARRAY_POINTER";
                    case 0x8090:
                        return "GL_COLOR_ARRAY_POINTER";
                    case 0x8091:
                        return "GL_INDEX_ARRAY_POINTER";
                    case 0x8092:
                        return "GL_TEXTURE_COORD_ARRAY_POINTER";
                    case 0x8093:
                        return "GL_EDGE_FLAG_ARRAY_POINTER";
                    case 0x8244:
                        return "GL_DEBUG_CALLBACK_FUNCTION";
                    case 0x8245:
                        return "GL_DEBUG_CALLBACK_USER_PARAM";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::GetTextureParameter:
            {
                switch (value)
                {
                    case 0x1000:
                        return "GL_TEXTURE_WIDTH";
                    case 0x1001:
                        return "GL_TEXTURE_HEIGHT";
                    case 0x1003:
                        return "GL_TEXTURE_COMPONENTS";
                    case 0x1004:
                        return "GL_TEXTURE_BORDER_COLOR";
                    case 0x1005:
                        return "GL_TEXTURE_BORDER";
                    case 0x2800:
                        return "GL_TEXTURE_MAG_FILTER";
                    case 0x2801:
                        return "GL_TEXTURE_MIN_FILTER";
                    case 0x2802:
                        return "GL_TEXTURE_WRAP_S";
                    case 0x2803:
                        return "GL_TEXTURE_WRAP_T";
                    case 0x805c:
                        return "GL_TEXTURE_RED_SIZE";
                    case 0x805d:
                        return "GL_TEXTURE_GREEN_SIZE";
                    case 0x805e:
                        return "GL_TEXTURE_BLUE_SIZE";
                    case 0x805f:
                        return "GL_TEXTURE_ALPHA_SIZE";
                    case 0x8060:
                        return "GL_TEXTURE_LUMINANCE_SIZE";
                    case 0x8061:
                        return "GL_TEXTURE_INTENSITY_SIZE";
                    case 0x8066:
                        return "GL_TEXTURE_PRIORITY";
                    case 0x8067:
                        return "GL_TEXTURE_RESIDENT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::GraphicsResetStatus:
            {
                switch (value)
                {
                    case 0x8253:
                        return "GL_GUILTY_CONTEXT_RESET";
                    case 0x8254:
                        return "GL_INNOCENT_CONTEXT_RESET";
                    case 0x8255:
                        return "GL_UNKNOWN_CONTEXT_RESET";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::HintMode:
            {
                switch (value)
                {
                    case 0x1100:
                        return "GL_DONT_CARE";
                    case 0x1101:
                        return "GL_FASTEST";
                    case 0x1102:
                        return "GL_NICEST";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::HintTarget:
            {
                switch (value)
                {
                    case 0xc50:
                        return "GL_PERSPECTIVE_CORRECTION_HINT";
                    case 0xc51:
                        return "GL_POINT_SMOOTH_HINT";
                    case 0xc52:
                        return "GL_LINE_SMOOTH_HINT";
                    case 0xc53:
                        return "GL_POLYGON_SMOOTH_HINT";
                    case 0xc54:
                        return "GL_FOG_HINT";
                    case 0x8192:
                        return "GL_GENERATE_MIPMAP_HINT";
                    case 0x8257:
                        return "GL_PROGRAM_BINARY_RETRIEVABLE_HINT";
                    case 0x84ef:
                        return "GL_TEXTURE_COMPRESSION_HINT";
                    case 0x8b8b:
                        return "GL_FRAGMENT_SHADER_DERIVATIVE_HINT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::IndexPointerType:
            {
                switch (value)
                {
                    case 0x1402:
                        return "GL_SHORT";
                    case 0x1404:
                        return "GL_INT";
                    case 0x1406:
                        return "GL_FLOAT";
                    case 0x140a:
                        return "GL_DOUBLE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::InterleavedArrayFormat:
            {
                switch (value)
                {
                    case 0x2a20:
                        return "GL_V2F";
                    case 0x2a21:
                        return "GL_V3F";
                    case 0x2a22:
                        return "GL_C4UB_V2F";
                    case 0x2a23:
                        return "GL_C4UB_V3F";
                    case 0x2a24:
                        return "GL_C3F_V3F";
                    case 0x2a25:
                        return "GL_N3F_V3F";
                    case 0x2a26:
                        return "GL_C4F_N3F_V3F";
                    case 0x2a27:
                        return "GL_T2F_V3F";
                    case 0x2a28:
                        return "GL_T4F_V4F";
                    case 0x2a29:
                        return "GL_T2F_C4UB_V3F";
                    case 0x2a2a:
                        return "GL_T2F_C3F_V3F";
                    case 0x2a2b:
                        return "GL_T2F_N3F_V3F";
                    case 0x2a2c:
                        return "GL_T2F_C4F_N3F_V3F";
                    case 0x2a2d:
                        return "GL_T4F_C4F_N3F_V4F";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::InternalFormat:
            {
                switch (value)
                {
                    case 0x1902:
                        return "GL_DEPTH_COMPONENT";
                    case 0x1903:
                        return "GL_RED";
                    case 0x1907:
                        return "GL_RGB";
                    case 0x1908:
                        return "GL_RGBA";
                    case 0x2a10:
                        return "GL_R3_G3_B2";
                    case 0x803b:
                        return "GL_ALPHA4";
                    case 0x803c:
                        return "GL_ALPHA8";
                    case 0x803d:
                        return "GL_ALPHA12";
                    case 0x803e:
                        return "GL_ALPHA16";
                    case 0x803f:
                        return "GL_LUMINANCE4";
                    case 0x8040:
                        return "GL_LUMINANCE8";
                    case 0x8041:
                        return "GL_LUMINANCE12";
                    case 0x8042:
                        return "GL_LUMINANCE16";
                    case 0x8043:
                        return "GL_LUMINANCE4_ALPHA4";
                    case 0x8044:
                        return "GL_LUMINANCE6_ALPHA2";
                    case 0x8045:
                        return "GL_LUMINANCE8_ALPHA8";
                    case 0x8046:
                        return "GL_LUMINANCE12_ALPHA4";
                    case 0x8047:
                        return "GL_LUMINANCE12_ALPHA12";
                    case 0x8048:
                        return "GL_LUMINANCE16_ALPHA16";
                    case 0x8049:
                        return "GL_INTENSITY";
                    case 0x804a:
                        return "GL_INTENSITY4";
                    case 0x804b:
                        return "GL_INTENSITY8";
                    case 0x804c:
                        return "GL_INTENSITY12";
                    case 0x804d:
                        return "GL_INTENSITY16";
                    case 0x804f:
                        return "GL_RGB4";
                    case 0x8050:
                        return "GL_RGB5";
                    case 0x8051:
                        return "GL_RGB8";
                    case 0x8052:
                        return "GL_RGB10";
                    case 0x8053:
                        return "GL_RGB12";
                    case 0x8054:
                        return "GL_RGB16";
                    case 0x8056:
                        return "GL_RGBA4";
                    case 0x8057:
                        return "GL_RGB5_A1";
                    case 0x8058:
                        return "GL_RGBA8";
                    case 0x8059:
                        return "GL_RGB10_A2";
                    case 0x805a:
                        return "GL_RGBA12";
                    case 0x805b:
                        return "GL_RGBA16";
                    case 0x81a5:
                        return "GL_DEPTH_COMPONENT16";
                    case 0x8225:
                        return "GL_COMPRESSED_RED";
                    case 0x8226:
                        return "GL_COMPRESSED_RG";
                    case 0x8227:
                        return "GL_RG";
                    case 0x8229:
                        return "GL_R8";
                    case 0x822a:
                        return "GL_R16";
                    case 0x822b:
                        return "GL_RG8";
                    case 0x822c:
                        return "GL_RG16";
                    case 0x822d:
                        return "GL_R16F";
                    case 0x822e:
                        return "GL_R32F";
                    case 0x822f:
                        return "GL_RG16F";
                    case 0x8230:
                        return "GL_RG32F";
                    case 0x8231:
                        return "GL_R8I";
                    case 0x8232:
                        return "GL_R8UI";
                    case 0x8233:
                        return "GL_R16I";
                    case 0x8234:
                        return "GL_R16UI";
                    case 0x8235:
                        return "GL_R32I";
                    case 0x8236:
                        return "GL_R32UI";
                    case 0x8237:
                        return "GL_RG8I";
                    case 0x8238:
                        return "GL_RG8UI";
                    case 0x8239:
                        return "GL_RG16I";
                    case 0x823a:
                        return "GL_RG16UI";
                    case 0x823b:
                        return "GL_RG32I";
                    case 0x823c:
                        return "GL_RG32UI";
                    case 0x84ed:
                        return "GL_COMPRESSED_RGB";
                    case 0x84ee:
                        return "GL_COMPRESSED_RGBA";
                    case 0x84f9:
                        return "GL_DEPTH_STENCIL";
                    case 0x8814:
                        return "GL_RGBA32F";
                    case 0x881a:
                        return "GL_RGBA16F";
                    case 0x881b:
                        return "GL_RGB16F";
                    case 0x88f0:
                        return "GL_DEPTH24_STENCIL8";
                    case 0x8c3a:
                        return "GL_R11F_G11F_B10F";
                    case 0x8c3d:
                        return "GL_RGB9_E5";
                    case 0x8c40:
                        return "GL_SRGB";
                    case 0x8c41:
                        return "GL_SRGB8";
                    case 0x8c42:
                        return "GL_SRGB_ALPHA";
                    case 0x8c43:
                        return "GL_SRGB8_ALPHA8";
                    case 0x8c48:
                        return "GL_COMPRESSED_SRGB";
                    case 0x8c49:
                        return "GL_COMPRESSED_SRGB_ALPHA";
                    case 0x8cac:
                        return "GL_DEPTH_COMPONENT32F";
                    case 0x8cad:
                        return "GL_DEPTH32F_STENCIL8";
                    case 0x8d70:
                        return "GL_RGBA32UI";
                    case 0x8d71:
                        return "GL_RGB32UI";
                    case 0x8d76:
                        return "GL_RGBA16UI";
                    case 0x8d77:
                        return "GL_RGB16UI";
                    case 0x8d7c:
                        return "GL_RGBA8UI";
                    case 0x8d7d:
                        return "GL_RGB8UI";
                    case 0x8d82:
                        return "GL_RGBA32I";
                    case 0x8d83:
                        return "GL_RGB32I";
                    case 0x8d88:
                        return "GL_RGBA16I";
                    case 0x8d89:
                        return "GL_RGB16I";
                    case 0x8d8e:
                        return "GL_RGBA8I";
                    case 0x8d8f:
                        return "GL_RGB8I";
                    case 0x8dbb:
                        return "GL_COMPRESSED_RED_RGTC1";
                    case 0x8dbc:
                        return "GL_COMPRESSED_SIGNED_RED_RGTC1";
                    case 0x8dbd:
                        return "GL_COMPRESSED_RG_RGTC2";
                    case 0x8dbe:
                        return "GL_COMPRESSED_SIGNED_RG_RGTC2";
                    case 0x8e8c:
                        return "GL_COMPRESSED_RGBA_BPTC_UNORM";
                    case 0x8e8d:
                        return "GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM";
                    case 0x8e8e:
                        return "GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT";
                    case 0x8e8f:
                        return "GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT";
                    case 0x8f94:
                        return "GL_R8_SNORM";
                    case 0x8f95:
                        return "GL_RG8_SNORM";
                    case 0x8f96:
                        return "GL_RGB8_SNORM";
                    case 0x8f97:
                        return "GL_RGBA8_SNORM";
                    case 0x8f98:
                        return "GL_R16_SNORM";
                    case 0x8f99:
                        return "GL_RG16_SNORM";
                    case 0x8f9a:
                        return "GL_RGB16_SNORM";
                    case 0x906f:
                        return "GL_RGB10_A2UI";
                    case 0x9270:
                        return "GL_COMPRESSED_R11_EAC";
                    case 0x9271:
                        return "GL_COMPRESSED_SIGNED_R11_EAC";
                    case 0x9272:
                        return "GL_COMPRESSED_RG11_EAC";
                    case 0x9273:
                        return "GL_COMPRESSED_SIGNED_RG11_EAC";
                    case 0x9274:
                        return "GL_COMPRESSED_RGB8_ETC2";
                    case 0x9275:
                        return "GL_COMPRESSED_SRGB8_ETC2";
                    case 0x9276:
                        return "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2";
                    case 0x9277:
                        return "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2";
                    case 0x9278:
                        return "GL_COMPRESSED_RGBA8_ETC2_EAC";
                    case 0x9279:
                        return "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::InternalFormatPName:
            {
                switch (value)
                {
                    case 0x80a9:
                        return "GL_SAMPLES";
                    case 0x8191:
                        return "GL_GENERATE_MIPMAP";
                    case 0x826f:
                        return "GL_INTERNALFORMAT_SUPPORTED";
                    case 0x8270:
                        return "GL_INTERNALFORMAT_PREFERRED";
                    case 0x8271:
                        return "GL_INTERNALFORMAT_RED_SIZE";
                    case 0x8272:
                        return "GL_INTERNALFORMAT_GREEN_SIZE";
                    case 0x8273:
                        return "GL_INTERNALFORMAT_BLUE_SIZE";
                    case 0x8274:
                        return "GL_INTERNALFORMAT_ALPHA_SIZE";
                    case 0x8275:
                        return "GL_INTERNALFORMAT_DEPTH_SIZE";
                    case 0x8276:
                        return "GL_INTERNALFORMAT_STENCIL_SIZE";
                    case 0x8277:
                        return "GL_INTERNALFORMAT_SHARED_SIZE";
                    case 0x8278:
                        return "GL_INTERNALFORMAT_RED_TYPE";
                    case 0x8279:
                        return "GL_INTERNALFORMAT_GREEN_TYPE";
                    case 0x827a:
                        return "GL_INTERNALFORMAT_BLUE_TYPE";
                    case 0x827b:
                        return "GL_INTERNALFORMAT_ALPHA_TYPE";
                    case 0x827c:
                        return "GL_INTERNALFORMAT_DEPTH_TYPE";
                    case 0x827d:
                        return "GL_INTERNALFORMAT_STENCIL_TYPE";
                    case 0x827e:
                        return "GL_MAX_WIDTH";
                    case 0x827f:
                        return "GL_MAX_HEIGHT";
                    case 0x8280:
                        return "GL_MAX_DEPTH";
                    case 0x8281:
                        return "GL_MAX_LAYERS";
                    case 0x8283:
                        return "GL_COLOR_COMPONENTS";
                    case 0x8286:
                        return "GL_COLOR_RENDERABLE";
                    case 0x8287:
                        return "GL_DEPTH_RENDERABLE";
                    case 0x8288:
                        return "GL_STENCIL_RENDERABLE";
                    case 0x8289:
                        return "GL_FRAMEBUFFER_RENDERABLE";
                    case 0x828a:
                        return "GL_FRAMEBUFFER_RENDERABLE_LAYERED";
                    case 0x828b:
                        return "GL_FRAMEBUFFER_BLEND";
                    case 0x828c:
                        return "GL_READ_PIXELS";
                    case 0x828d:
                        return "GL_READ_PIXELS_FORMAT";
                    case 0x828e:
                        return "GL_READ_PIXELS_TYPE";
                    case 0x828f:
                        return "GL_TEXTURE_IMAGE_FORMAT";
                    case 0x8290:
                        return "GL_TEXTURE_IMAGE_TYPE";
                    case 0x8291:
                        return "GL_GET_TEXTURE_IMAGE_FORMAT";
                    case 0x8292:
                        return "GL_GET_TEXTURE_IMAGE_TYPE";
                    case 0x8293:
                        return "GL_MIPMAP";
                    case 0x8295:
                        return "GL_AUTO_GENERATE_MIPMAP";
                    case 0x8296:
                        return "GL_COLOR_ENCODING";
                    case 0x8297:
                        return "GL_SRGB_READ";
                    case 0x8298:
                        return "GL_SRGB_WRITE";
                    case 0x829a:
                        return "GL_FILTER";
                    case 0x829b:
                        return "GL_VERTEX_TEXTURE";
                    case 0x829c:
                        return "GL_TESS_CONTROL_TEXTURE";
                    case 0x829d:
                        return "GL_TESS_EVALUATION_TEXTURE";
                    case 0x829e:
                        return "GL_GEOMETRY_TEXTURE";
                    case 0x829f:
                        return "GL_FRAGMENT_TEXTURE";
                    case 0x82a0:
                        return "GL_COMPUTE_TEXTURE";
                    case 0x82a1:
                        return "GL_TEXTURE_SHADOW";
                    case 0x82a2:
                        return "GL_TEXTURE_GATHER";
                    case 0x82a3:
                        return "GL_TEXTURE_GATHER_SHADOW";
                    case 0x82a4:
                        return "GL_SHADER_IMAGE_LOAD";
                    case 0x82a5:
                        return "GL_SHADER_IMAGE_STORE";
                    case 0x82a6:
                        return "GL_SHADER_IMAGE_ATOMIC";
                    case 0x82a7:
                        return "GL_IMAGE_TEXEL_SIZE";
                    case 0x82a8:
                        return "GL_IMAGE_COMPATIBILITY_CLASS";
                    case 0x82a9:
                        return "GL_IMAGE_PIXEL_FORMAT";
                    case 0x82aa:
                        return "GL_IMAGE_PIXEL_TYPE";
                    case 0x82ac:
                        return "GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST";
                    case 0x82ad:
                        return "GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST";
                    case 0x82ae:
                        return "GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE";
                    case 0x82af:
                        return "GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE";
                    case 0x82b1:
                        return "GL_TEXTURE_COMPRESSED_BLOCK_WIDTH";
                    case 0x82b2:
                        return "GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT";
                    case 0x82b3:
                        return "GL_TEXTURE_COMPRESSED_BLOCK_SIZE";
                    case 0x82b4:
                        return "GL_CLEAR_BUFFER";
                    case 0x82b5:
                        return "GL_TEXTURE_VIEW";
                    case 0x82b6:
                        return "GL_VIEW_COMPATIBILITY_CLASS";
                    case 0x86a1:
                        return "GL_TEXTURE_COMPRESSED";
                    case 0x90c7:
                        return "GL_IMAGE_FORMAT_COMPATIBILITY_TYPE";
                    case 0x9365:
                        return "GL_CLEAR_TEXTURE";
                    case 0x9380:
                        return "GL_NUM_SAMPLE_COUNTS";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::LightEnvModeSGIX:
            {
                switch (value)
                {
                    case 0x104:
                        return "GL_ADD";
                    case 0x1e01:
                        return "GL_REPLACE";
                    case 0x2100:
                        return "GL_MODULATE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::LightModelColorControl:
            {
                switch (value)
                {
                    case 0x81f9:
                        return "GL_SINGLE_COLOR";
                    case 0x81fa:
                        return "GL_SEPARATE_SPECULAR_COLOR";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::LightModelParameter:
            {
                switch (value)
                {
                    case 0xb51:
                        return "GL_LIGHT_MODEL_LOCAL_VIEWER";
                    case 0xb52:
                        return "GL_LIGHT_MODEL_TWO_SIDE";
                    case 0xb53:
                        return "GL_LIGHT_MODEL_AMBIENT";
                    case 0x81f8:
                        return "GL_LIGHT_MODEL_COLOR_CONTROL";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::LightName:
            {
                switch (value)
                {
                    case 0x4000:
                        return "GL_LIGHT0";
                    case 0x4001:
                        return "GL_LIGHT1";
                    case 0x4002:
                        return "GL_LIGHT2";
                    case 0x4003:
                        return "GL_LIGHT3";
                    case 0x4004:
                        return "GL_LIGHT4";
                    case 0x4005:
                        return "GL_LIGHT5";
                    case 0x4006:
                        return "GL_LIGHT6";
                    case 0x4007:
                        return "GL_LIGHT7";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::LightParameter:
            {
                switch (value)
                {
                    case 0x1200:
                        return "GL_AMBIENT";
                    case 0x1201:
                        return "GL_DIFFUSE";
                    case 0x1202:
                        return "GL_SPECULAR";
                    case 0x1203:
                        return "GL_POSITION";
                    case 0x1204:
                        return "GL_SPOT_DIRECTION";
                    case 0x1205:
                        return "GL_SPOT_EXPONENT";
                    case 0x1206:
                        return "GL_SPOT_CUTOFF";
                    case 0x1207:
                        return "GL_CONSTANT_ATTENUATION";
                    case 0x1208:
                        return "GL_LINEAR_ATTENUATION";
                    case 0x1209:
                        return "GL_QUADRATIC_ATTENUATION";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ListMode:
            {
                switch (value)
                {
                    case 0x1300:
                        return "GL_COMPILE";
                    case 0x1301:
                        return "GL_COMPILE_AND_EXECUTE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ListNameType:
            {
                switch (value)
                {
                    case 0x1400:
                        return "GL_BYTE";
                    case 0x1401:
                        return "GL_UNSIGNED_BYTE";
                    case 0x1402:
                        return "GL_SHORT";
                    case 0x1403:
                        return "GL_UNSIGNED_SHORT";
                    case 0x1404:
                        return "GL_INT";
                    case 0x1405:
                        return "GL_UNSIGNED_INT";
                    case 0x1406:
                        return "GL_FLOAT";
                    case 0x1407:
                        return "GL_2_BYTES";
                    case 0x1408:
                        return "GL_3_BYTES";
                    case 0x1409:
                        return "GL_4_BYTES";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::LogicOp:
            {
                switch (value)
                {
                    case 0x1500:
                        return "GL_CLEAR";
                    case 0x1501:
                        return "GL_AND";
                    case 0x1502:
                        return "GL_AND_REVERSE";
                    case 0x1503:
                        return "GL_COPY";
                    case 0x1504:
                        return "GL_AND_INVERTED";
                    case 0x1505:
                        return "GL_NOOP";
                    case 0x1506:
                        return "GL_XOR";
                    case 0x1507:
                        return "GL_OR";
                    case 0x1508:
                        return "GL_NOR";
                    case 0x1509:
                        return "GL_EQUIV";
                    case 0x150a:
                        return "GL_INVERT";
                    case 0x150b:
                        return "GL_OR_REVERSE";
                    case 0x150c:
                        return "GL_COPY_INVERTED";
                    case 0x150d:
                        return "GL_OR_INVERTED";
                    case 0x150e:
                        return "GL_NAND";
                    case 0x150f:
                        return "GL_SET";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::MapBufferUsageMask:
            {
                switch (value)
                {
                    case 0x1:
                        return "GL_MAP_READ_BIT";
                    case 0x2:
                        return "GL_MAP_WRITE_BIT";
                    case 0x4:
                        return "GL_MAP_INVALIDATE_RANGE_BIT";
                    case 0x8:
                        return "GL_MAP_INVALIDATE_BUFFER_BIT";
                    case 0x10:
                        return "GL_MAP_FLUSH_EXPLICIT_BIT";
                    case 0x20:
                        return "GL_MAP_UNSYNCHRONIZED_BIT";
                    case 0x40:
                        return "GL_MAP_PERSISTENT_BIT";
                    case 0x80:
                        return "GL_MAP_COHERENT_BIT";
                    case 0x100:
                        return "GL_DYNAMIC_STORAGE_BIT";
                    case 0x200:
                        return "GL_CLIENT_STORAGE_BIT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::MapQuery:
            {
                switch (value)
                {
                    case 0xa00:
                        return "GL_COEFF";
                    case 0xa01:
                        return "GL_ORDER";
                    case 0xa02:
                        return "GL_DOMAIN";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::MapTarget:
            {
                switch (value)
                {
                    case 0xd90:
                        return "GL_MAP1_COLOR_4";
                    case 0xd91:
                        return "GL_MAP1_INDEX";
                    case 0xd92:
                        return "GL_MAP1_NORMAL";
                    case 0xd93:
                        return "GL_MAP1_TEXTURE_COORD_1";
                    case 0xd94:
                        return "GL_MAP1_TEXTURE_COORD_2";
                    case 0xd95:
                        return "GL_MAP1_TEXTURE_COORD_3";
                    case 0xd96:
                        return "GL_MAP1_TEXTURE_COORD_4";
                    case 0xd97:
                        return "GL_MAP1_VERTEX_3";
                    case 0xd98:
                        return "GL_MAP1_VERTEX_4";
                    case 0xdb0:
                        return "GL_MAP2_COLOR_4";
                    case 0xdb1:
                        return "GL_MAP2_INDEX";
                    case 0xdb2:
                        return "GL_MAP2_NORMAL";
                    case 0xdb3:
                        return "GL_MAP2_TEXTURE_COORD_1";
                    case 0xdb4:
                        return "GL_MAP2_TEXTURE_COORD_2";
                    case 0xdb5:
                        return "GL_MAP2_TEXTURE_COORD_3";
                    case 0xdb6:
                        return "GL_MAP2_TEXTURE_COORD_4";
                    case 0xdb7:
                        return "GL_MAP2_VERTEX_3";
                    case 0xdb8:
                        return "GL_MAP2_VERTEX_4";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::MaterialFace:
            {
                switch (value)
                {
                    case 0x404:
                        return "GL_FRONT";
                    case 0x405:
                        return "GL_BACK";
                    case 0x408:
                        return "GL_FRONT_AND_BACK";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::MaterialParameter:
            {
                switch (value)
                {
                    case 0x1200:
                        return "GL_AMBIENT";
                    case 0x1201:
                        return "GL_DIFFUSE";
                    case 0x1202:
                        return "GL_SPECULAR";
                    case 0x1600:
                        return "GL_EMISSION";
                    case 0x1601:
                        return "GL_SHININESS";
                    case 0x1602:
                        return "GL_AMBIENT_AND_DIFFUSE";
                    case 0x1603:
                        return "GL_COLOR_INDEXES";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::MatrixMode:
            {
                switch (value)
                {
                    case 0x1700:
                        return "GL_MODELVIEW";
                    case 0x1701:
                        return "GL_PROJECTION";
                    case 0x1702:
                        return "GL_TEXTURE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::MemoryBarrierMask:
            {
                switch (value)
                {
                    case 0x1:
                        return "GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT";
                    case 0x2:
                        return "GL_ELEMENT_ARRAY_BARRIER_BIT";
                    case 0x4:
                        return "GL_UNIFORM_BARRIER_BIT";
                    case 0x8:
                        return "GL_TEXTURE_FETCH_BARRIER_BIT";
                    case 0x20:
                        return "GL_SHADER_IMAGE_ACCESS_BARRIER_BIT";
                    case 0x40:
                        return "GL_COMMAND_BARRIER_BIT";
                    case 0x80:
                        return "GL_PIXEL_BUFFER_BARRIER_BIT";
                    case 0x100:
                        return "GL_TEXTURE_UPDATE_BARRIER_BIT";
                    case 0x200:
                        return "GL_BUFFER_UPDATE_BARRIER_BIT";
                    case 0x400:
                        return "GL_FRAMEBUFFER_BARRIER_BIT";
                    case 0x800:
                        return "GL_TRANSFORM_FEEDBACK_BARRIER_BIT";
                    case 0x1000:
                        return "GL_ATOMIC_COUNTER_BARRIER_BIT";
                    case 0x2000:
                        return "GL_SHADER_STORAGE_BARRIER_BIT";
                    case 0x4000:
                        return "GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT";
                    case 0x8000:
                        return "GL_QUERY_BUFFER_BARRIER_BIT";
                    case 0xffffffff:
                        return "GL_ALL_BARRIER_BITS";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::MemoryObjectParameterName:
            {
                switch (value)
                {
                    case 0x9581:
                        return "GL_DEDICATED_MEMORY_OBJECT_EXT";
                    case 0x959b:
                        return "GL_PROTECTED_MEMORY_OBJECT_EXT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::MeshMode1:
            {
                switch (value)
                {
                    case 0x1b00:
                        return "GL_POINT";
                    case 0x1b01:
                        return "GL_LINE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::MeshMode2:
            {
                switch (value)
                {
                    case 0x1b00:
                        return "GL_POINT";
                    case 0x1b01:
                        return "GL_LINE";
                    case 0x1b02:
                        return "GL_FILL";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::NormalPointerType:
            {
                switch (value)
                {
                    case 0x1400:
                        return "GL_BYTE";
                    case 0x1402:
                        return "GL_SHORT";
                    case 0x1404:
                        return "GL_INT";
                    case 0x1406:
                        return "GL_FLOAT";
                    case 0x140a:
                        return "GL_DOUBLE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ObjectIdentifier:
            {
                switch (value)
                {
                    case 0x1702:
                        return "GL_TEXTURE";
                    case 0x8074:
                        return "GL_VERTEX_ARRAY";
                    case 0x82e0:
                        return "GL_BUFFER";
                    case 0x82e1:
                        return "GL_SHADER";
                    case 0x82e2:
                        return "GL_PROGRAM";
                    case 0x82e3:
                        return "GL_QUERY";
                    case 0x82e4:
                        return "GL_PROGRAM_PIPELINE";
                    case 0x82e6:
                        return "GL_SAMPLER";
                    case 0x8d40:
                        return "GL_FRAMEBUFFER";
                    case 0x8d41:
                        return "GL_RENDERBUFFER";
                    case 0x8e22:
                        return "GL_TRANSFORM_FEEDBACK";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PatchParameterName:
            {
                switch (value)
                {
                    case 0x8e72:
                        return "GL_PATCH_VERTICES";
                    case 0x8e73:
                        return "GL_PATCH_DEFAULT_INNER_LEVEL";
                    case 0x8e74:
                        return "GL_PATCH_DEFAULT_OUTER_LEVEL";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PathColor:
            {
                switch (value)
                {
                    case 0x8577:
                        return "GL_PRIMARY_COLOR";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PathFillMode:
            {
                switch (value)
                {
                    case 0x150a:
                        return "GL_INVERT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PathFontStyle:
            {
                switch (value)
                {
                    case 0x0:
                        return "GL_NONE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PathGenMode:
            {
                switch (value)
                {
                    case 0x0:
                        return "GL_NONE";
                    case 0x2400:
                        return "GL_EYE_LINEAR";
                    case 0x2401:
                        return "GL_OBJECT_LINEAR";
                    case 0x8576:
                        return "GL_CONSTANT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PathTransformType:
            {
                switch (value)
                {
                    case 0x0:
                        return "GL_NONE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PipelineParameterName:
            {
                switch (value)
                {
                    case 0x8259:
                        return "GL_ACTIVE_PROGRAM";
                    case 0x8b30:
                        return "GL_FRAGMENT_SHADER";
                    case 0x8b31:
                        return "GL_VERTEX_SHADER";
                    case 0x8b84:
                        return "GL_INFO_LOG_LENGTH";
                    case 0x8dd9:
                        return "GL_GEOMETRY_SHADER";
                    case 0x8e87:
                        return "GL_TESS_EVALUATION_SHADER";
                    case 0x8e88:
                        return "GL_TESS_CONTROL_SHADER";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PixelCopyType:
            {
                switch (value)
                {
                    case 0x1800:
                        return "GL_COLOR";
                    case 0x1801:
                        return "GL_DEPTH";
                    case 0x1802:
                        return "GL_STENCIL";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PixelFormat:
            {
                switch (value)
                {
                    case 0x1403:
                        return "GL_UNSIGNED_SHORT";
                    case 0x1405:
                        return "GL_UNSIGNED_INT";
                    case 0x1900:
                        return "GL_COLOR_INDEX";
                    case 0x1901:
                        return "GL_STENCIL_INDEX";
                    case 0x1902:
                        return "GL_DEPTH_COMPONENT";
                    case 0x1903:
                        return "GL_RED";
                    case 0x1904:
                        return "GL_GREEN";
                    case 0x1905:
                        return "GL_BLUE";
                    case 0x1906:
                        return "GL_ALPHA";
                    case 0x1907:
                        return "GL_RGB";
                    case 0x1908:
                        return "GL_RGBA";
                    case 0x1909:
                        return "GL_LUMINANCE";
                    case 0x190a:
                        return "GL_LUMINANCE_ALPHA";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PixelMap:
            {
                switch (value)
                {
                    case 0xc70:
                        return "GL_PIXEL_MAP_I_TO_I";
                    case 0xc71:
                        return "GL_PIXEL_MAP_S_TO_S";
                    case 0xc72:
                        return "GL_PIXEL_MAP_I_TO_R";
                    case 0xc73:
                        return "GL_PIXEL_MAP_I_TO_G";
                    case 0xc74:
                        return "GL_PIXEL_MAP_I_TO_B";
                    case 0xc75:
                        return "GL_PIXEL_MAP_I_TO_A";
                    case 0xc76:
                        return "GL_PIXEL_MAP_R_TO_R";
                    case 0xc77:
                        return "GL_PIXEL_MAP_G_TO_G";
                    case 0xc78:
                        return "GL_PIXEL_MAP_B_TO_B";
                    case 0xc79:
                        return "GL_PIXEL_MAP_A_TO_A";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PixelStoreParameter:
            {
                switch (value)
                {
                    case 0xcf0:
                        return "GL_UNPACK_SWAP_BYTES";
                    case 0xcf1:
                        return "GL_UNPACK_LSB_FIRST";
                    case 0xcf2:
                        return "GL_UNPACK_ROW_LENGTH";
                    case 0xcf3:
                        return "GL_UNPACK_SKIP_ROWS";
                    case 0xcf4:
                        return "GL_UNPACK_SKIP_PIXELS";
                    case 0xcf5:
                        return "GL_UNPACK_ALIGNMENT";
                    case 0xd00:
                        return "GL_PACK_SWAP_BYTES";
                    case 0xd01:
                        return "GL_PACK_LSB_FIRST";
                    case 0xd02:
                        return "GL_PACK_ROW_LENGTH";
                    case 0xd03:
                        return "GL_PACK_SKIP_ROWS";
                    case 0xd04:
                        return "GL_PACK_SKIP_PIXELS";
                    case 0xd05:
                        return "GL_PACK_ALIGNMENT";
                    case 0x806b:
                        return "GL_PACK_SKIP_IMAGES";
                    case 0x806c:
                        return "GL_PACK_IMAGE_HEIGHT";
                    case 0x806d:
                        return "GL_UNPACK_SKIP_IMAGES";
                    case 0x806e:
                        return "GL_UNPACK_IMAGE_HEIGHT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PixelTexGenMode:
            {
                switch (value)
                {
                    case 0x0:
                        return "GL_NONE";
                    case 0x1907:
                        return "GL_RGB";
                    case 0x1908:
                        return "GL_RGBA";
                    case 0x1909:
                        return "GL_LUMINANCE";
                    case 0x190a:
                        return "GL_LUMINANCE_ALPHA";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PixelTransferParameter:
            {
                switch (value)
                {
                    case 0xd10:
                        return "GL_MAP_COLOR";
                    case 0xd11:
                        return "GL_MAP_STENCIL";
                    case 0xd12:
                        return "GL_INDEX_SHIFT";
                    case 0xd13:
                        return "GL_INDEX_OFFSET";
                    case 0xd14:
                        return "GL_RED_SCALE";
                    case 0xd15:
                        return "GL_RED_BIAS";
                    case 0xd18:
                        return "GL_GREEN_SCALE";
                    case 0xd19:
                        return "GL_GREEN_BIAS";
                    case 0xd1a:
                        return "GL_BLUE_SCALE";
                    case 0xd1b:
                        return "GL_BLUE_BIAS";
                    case 0xd1c:
                        return "GL_ALPHA_SCALE";
                    case 0xd1d:
                        return "GL_ALPHA_BIAS";
                    case 0xd1e:
                        return "GL_DEPTH_SCALE";
                    case 0xd1f:
                        return "GL_DEPTH_BIAS";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PixelType:
            {
                switch (value)
                {
                    case 0x1400:
                        return "GL_BYTE";
                    case 0x1401:
                        return "GL_UNSIGNED_BYTE";
                    case 0x1402:
                        return "GL_SHORT";
                    case 0x1403:
                        return "GL_UNSIGNED_SHORT";
                    case 0x1404:
                        return "GL_INT";
                    case 0x1405:
                        return "GL_UNSIGNED_INT";
                    case 0x1406:
                        return "GL_FLOAT";
                    case 0x1a00:
                        return "GL_BITMAP";
                    case 0x8032:
                        return "GL_UNSIGNED_BYTE_3_3_2";
                    case 0x8033:
                        return "GL_UNSIGNED_SHORT_4_4_4_4";
                    case 0x8034:
                        return "GL_UNSIGNED_SHORT_5_5_5_1";
                    case 0x8035:
                        return "GL_UNSIGNED_INT_8_8_8_8";
                    case 0x8036:
                        return "GL_UNSIGNED_INT_10_10_10_2";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PointParameterNameSGIS:
            {
                switch (value)
                {
                    case 0x8126:
                        return "GL_POINT_SIZE_MIN";
                    case 0x8127:
                        return "GL_POINT_SIZE_MAX";
                    case 0x8128:
                        return "GL_POINT_FADE_THRESHOLD_SIZE";
                    case 0x8129:
                        return "GL_POINT_DISTANCE_ATTENUATION";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PolygonMode:
            {
                switch (value)
                {
                    case 0x1b00:
                        return "GL_POINT";
                    case 0x1b01:
                        return "GL_LINE";
                    case 0x1b02:
                        return "GL_FILL";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PrecisionType:
            {
                switch (value)
                {
                    case 0x8df0:
                        return "GL_LOW_FLOAT";
                    case 0x8df1:
                        return "GL_MEDIUM_FLOAT";
                    case 0x8df2:
                        return "GL_HIGH_FLOAT";
                    case 0x8df3:
                        return "GL_LOW_INT";
                    case 0x8df4:
                        return "GL_MEDIUM_INT";
                    case 0x8df5:
                        return "GL_HIGH_INT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::PrimitiveType:
            {
                switch (value)
                {
                    case 0x0:
                        return "GL_POINTS";
                    case 0x1:
                        return "GL_LINES";
                    case 0x2:
                        return "GL_LINE_LOOP";
                    case 0x3:
                        return "GL_LINE_STRIP";
                    case 0x4:
                        return "GL_TRIANGLES";
                    case 0x5:
                        return "GL_TRIANGLE_STRIP";
                    case 0x6:
                        return "GL_TRIANGLE_FAN";
                    case 0x7:
                        return "GL_QUADS";
                    case 0x8:
                        return "GL_QUAD_STRIP";
                    case 0x9:
                        return "GL_POLYGON";
                    case 0xa:
                        return "GL_LINES_ADJACENCY";
                    case 0xb:
                        return "GL_LINE_STRIP_ADJACENCY";
                    case 0xc:
                        return "GL_TRIANGLES_ADJACENCY";
                    case 0xd:
                        return "GL_TRIANGLE_STRIP_ADJACENCY";
                    case 0xe:
                        return "GL_PATCHES";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ProgramInterface:
            {
                switch (value)
                {
                    case 0x8c8e:
                        return "GL_TRANSFORM_FEEDBACK_BUFFER";
                    case 0x92e1:
                        return "GL_UNIFORM";
                    case 0x92e2:
                        return "GL_UNIFORM_BLOCK";
                    case 0x92e3:
                        return "GL_PROGRAM_INPUT";
                    case 0x92e4:
                        return "GL_PROGRAM_OUTPUT";
                    case 0x92e5:
                        return "GL_BUFFER_VARIABLE";
                    case 0x92e6:
                        return "GL_SHADER_STORAGE_BLOCK";
                    case 0x92e8:
                        return "GL_VERTEX_SUBROUTINE";
                    case 0x92e9:
                        return "GL_TESS_CONTROL_SUBROUTINE";
                    case 0x92ea:
                        return "GL_TESS_EVALUATION_SUBROUTINE";
                    case 0x92eb:
                        return "GL_GEOMETRY_SUBROUTINE";
                    case 0x92ec:
                        return "GL_FRAGMENT_SUBROUTINE";
                    case 0x92ed:
                        return "GL_COMPUTE_SUBROUTINE";
                    case 0x92ee:
                        return "GL_VERTEX_SUBROUTINE_UNIFORM";
                    case 0x92ef:
                        return "GL_TESS_CONTROL_SUBROUTINE_UNIFORM";
                    case 0x92f0:
                        return "GL_TESS_EVALUATION_SUBROUTINE_UNIFORM";
                    case 0x92f1:
                        return "GL_GEOMETRY_SUBROUTINE_UNIFORM";
                    case 0x92f2:
                        return "GL_FRAGMENT_SUBROUTINE_UNIFORM";
                    case 0x92f3:
                        return "GL_COMPUTE_SUBROUTINE_UNIFORM";
                    case 0x92f4:
                        return "GL_TRANSFORM_FEEDBACK_VARYING";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ProgramInterfacePName:
            {
                switch (value)
                {
                    case 0x92f5:
                        return "GL_ACTIVE_RESOURCES";
                    case 0x92f6:
                        return "GL_MAX_NAME_LENGTH";
                    case 0x92f7:
                        return "GL_MAX_NUM_ACTIVE_VARIABLES";
                    case 0x92f8:
                        return "GL_MAX_NUM_COMPATIBLE_SUBROUTINES";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ProgramParameterPName:
            {
                switch (value)
                {
                    case 0x8257:
                        return "GL_PROGRAM_BINARY_RETRIEVABLE_HINT";
                    case 0x8258:
                        return "GL_PROGRAM_SEPARABLE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ProgramPropertyARB:
            {
                switch (value)
                {
                    case 0x8267:
                        return "GL_COMPUTE_WORK_GROUP_SIZE";
                    case 0x8741:
                        return "GL_PROGRAM_BINARY_LENGTH";
                    case 0x8916:
                        return "GL_GEOMETRY_VERTICES_OUT";
                    case 0x8917:
                        return "GL_GEOMETRY_INPUT_TYPE";
                    case 0x8918:
                        return "GL_GEOMETRY_OUTPUT_TYPE";
                    case 0x8a35:
                        return "GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH";
                    case 0x8a36:
                        return "GL_ACTIVE_UNIFORM_BLOCKS";
                    case 0x8b80:
                        return "GL_DELETE_STATUS";
                    case 0x8b82:
                        return "GL_LINK_STATUS";
                    case 0x8b83:
                        return "GL_VALIDATE_STATUS";
                    case 0x8b84:
                        return "GL_INFO_LOG_LENGTH";
                    case 0x8b85:
                        return "GL_ATTACHED_SHADERS";
                    case 0x8b86:
                        return "GL_ACTIVE_UNIFORMS";
                    case 0x8b87:
                        return "GL_ACTIVE_UNIFORM_MAX_LENGTH";
                    case 0x8b89:
                        return "GL_ACTIVE_ATTRIBUTES";
                    case 0x8b8a:
                        return "GL_ACTIVE_ATTRIBUTE_MAX_LENGTH";
                    case 0x8c76:
                        return "GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH";
                    case 0x8c7f:
                        return "GL_TRANSFORM_FEEDBACK_BUFFER_MODE";
                    case 0x8c83:
                        return "GL_TRANSFORM_FEEDBACK_VARYINGS";
                    case 0x92d9:
                        return "GL_ACTIVE_ATOMIC_COUNTER_BUFFERS";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ProgramStagePName:
            {
                switch (value)
                {
                    case 0x8de5:
                        return "GL_ACTIVE_SUBROUTINES";
                    case 0x8de6:
                        return "GL_ACTIVE_SUBROUTINE_UNIFORMS";
                    case 0x8e47:
                        return "GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS";
                    case 0x8e48:
                        return "GL_ACTIVE_SUBROUTINE_MAX_LENGTH";
                    case 0x8e49:
                        return "GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::QueryObjectParameterName:
            {
                switch (value)
                {
                    case 0x82ea:
                        return "GL_QUERY_TARGET";
                    case 0x8866:
                        return "GL_QUERY_RESULT";
                    case 0x8867:
                        return "GL_QUERY_RESULT_AVAILABLE";
                    case 0x9194:
                        return "GL_QUERY_RESULT_NO_WAIT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::QueryParameterName:
            {
                switch (value)
                {
                    case 0x8864:
                        return "GL_QUERY_COUNTER_BITS";
                    case 0x8865:
                        return "GL_CURRENT_QUERY";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::QueryTarget:
            {
                switch (value)
                {
                    case 0x88bf:
                        return "GL_TIME_ELAPSED";
                    case 0x8914:
                        return "GL_SAMPLES_PASSED";
                    case 0x8c2f:
                        return "GL_ANY_SAMPLES_PASSED";
                    case 0x8c87:
                        return "GL_PRIMITIVES_GENERATED";
                    case 0x8c88:
                        return "GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN";
                    case 0x8d6a:
                        return "GL_ANY_SAMPLES_PASSED_CONSERVATIVE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ReadBufferMode:
            {
                switch (value)
                {
                    case 0x400:
                        return "GL_FRONT_LEFT";
                    case 0x401:
                        return "GL_FRONT_RIGHT";
                    case 0x402:
                        return "GL_BACK_LEFT";
                    case 0x403:
                        return "GL_BACK_RIGHT";
                    case 0x404:
                        return "GL_FRONT";
                    case 0x405:
                        return "GL_BACK";
                    case 0x406:
                        return "GL_LEFT";
                    case 0x407:
                        return "GL_RIGHT";
                    case 0x409:
                        return "GL_AUX0";
                    case 0x40a:
                        return "GL_AUX1";
                    case 0x40b:
                        return "GL_AUX2";
                    case 0x40c:
                        return "GL_AUX3";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::RenderbufferParameterName:
            {
                switch (value)
                {
                    case 0x8cab:
                        return "GL_RENDERBUFFER_SAMPLES";
                    case 0x8d42:
                        return "GL_RENDERBUFFER_WIDTH";
                    case 0x8d43:
                        return "GL_RENDERBUFFER_HEIGHT";
                    case 0x8d44:
                        return "GL_RENDERBUFFER_INTERNAL_FORMAT";
                    case 0x8d50:
                        return "GL_RENDERBUFFER_RED_SIZE";
                    case 0x8d51:
                        return "GL_RENDERBUFFER_GREEN_SIZE";
                    case 0x8d52:
                        return "GL_RENDERBUFFER_BLUE_SIZE";
                    case 0x8d53:
                        return "GL_RENDERBUFFER_ALPHA_SIZE";
                    case 0x8d54:
                        return "GL_RENDERBUFFER_DEPTH_SIZE";
                    case 0x8d55:
                        return "GL_RENDERBUFFER_STENCIL_SIZE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::RenderbufferTarget:
            {
                switch (value)
                {
                    case 0x8d41:
                        return "GL_RENDERBUFFER";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::RenderingMode:
            {
                switch (value)
                {
                    case 0x1c00:
                        return "GL_RENDER";
                    case 0x1c01:
                        return "GL_FEEDBACK";
                    case 0x1c02:
                        return "GL_SELECT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::SamplerParameterName:
            {
                switch (value)
                {
                    case 0x1004:
                        return "GL_TEXTURE_BORDER_COLOR";
                    case 0x2800:
                        return "GL_TEXTURE_MAG_FILTER";
                    case 0x2801:
                        return "GL_TEXTURE_MIN_FILTER";
                    case 0x2802:
                        return "GL_TEXTURE_WRAP_S";
                    case 0x2803:
                        return "GL_TEXTURE_WRAP_T";
                    case 0x8072:
                        return "GL_TEXTURE_WRAP_R";
                    case 0x813a:
                        return "GL_TEXTURE_MIN_LOD";
                    case 0x813b:
                        return "GL_TEXTURE_MAX_LOD";
                    case 0x884c:
                        return "GL_TEXTURE_COMPARE_MODE";
                    case 0x884d:
                        return "GL_TEXTURE_COMPARE_FUNC";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ShaderParameterName:
            {
                switch (value)
                {
                    case 0x8b4f:
                        return "GL_SHADER_TYPE";
                    case 0x8b80:
                        return "GL_DELETE_STATUS";
                    case 0x8b81:
                        return "GL_COMPILE_STATUS";
                    case 0x8b84:
                        return "GL_INFO_LOG_LENGTH";
                    case 0x8b88:
                        return "GL_SHADER_SOURCE_LENGTH";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ShaderType:
            {
                switch (value)
                {
                    case 0x8b30:
                        return "GL_FRAGMENT_SHADER";
                    case 0x8b31:
                        return "GL_VERTEX_SHADER";
                    case 0x8dd9:
                        return "GL_GEOMETRY_SHADER";
                    case 0x8e87:
                        return "GL_TESS_EVALUATION_SHADER";
                    case 0x8e88:
                        return "GL_TESS_CONTROL_SHADER";
                    case 0x91b9:
                        return "GL_COMPUTE_SHADER";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::ShadingModel:
            {
                switch (value)
                {
                    case 0x1d00:
                        return "GL_FLAT";
                    case 0x1d01:
                        return "GL_SMOOTH";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::StencilFaceDirection:
            {
                switch (value)
                {
                    case 0x404:
                        return "GL_FRONT";
                    case 0x405:
                        return "GL_BACK";
                    case 0x408:
                        return "GL_FRONT_AND_BACK";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::StencilFunction:
            {
                switch (value)
                {
                    case 0x200:
                        return "GL_NEVER";
                    case 0x201:
                        return "GL_LESS";
                    case 0x202:
                        return "GL_EQUAL";
                    case 0x203:
                        return "GL_LEQUAL";
                    case 0x204:
                        return "GL_GREATER";
                    case 0x205:
                        return "GL_NOTEQUAL";
                    case 0x206:
                        return "GL_GEQUAL";
                    case 0x207:
                        return "GL_ALWAYS";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::StencilOp:
            {
                switch (value)
                {
                    case 0x0:
                        return "GL_ZERO";
                    case 0x150a:
                        return "GL_INVERT";
                    case 0x1e00:
                        return "GL_KEEP";
                    case 0x1e01:
                        return "GL_REPLACE";
                    case 0x1e02:
                        return "GL_INCR";
                    case 0x1e03:
                        return "GL_DECR";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::StringName:
            {
                switch (value)
                {
                    case 0x1f00:
                        return "GL_VENDOR";
                    case 0x1f01:
                        return "GL_RENDERER";
                    case 0x1f02:
                        return "GL_VERSION";
                    case 0x1f03:
                        return "GL_EXTENSIONS";
                    case 0x8b8c:
                        return "GL_SHADING_LANGUAGE_VERSION";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::SubroutineParameterName:
            {
                switch (value)
                {
                    case 0x8a38:
                        return "GL_UNIFORM_SIZE";
                    case 0x8a39:
                        return "GL_UNIFORM_NAME_LENGTH";
                    case 0x8e4a:
                        return "GL_NUM_COMPATIBLE_SUBROUTINES";
                    case 0x8e4b:
                        return "GL_COMPATIBLE_SUBROUTINES";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::SyncCondition:
            {
                switch (value)
                {
                    case 0x9117:
                        return "GL_SYNC_GPU_COMMANDS_COMPLETE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::SyncObjectMask:
            {
                switch (value)
                {
                    case 0x1:
                        return "GL_SYNC_FLUSH_COMMANDS_BIT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::SyncParameterName:
            {
                switch (value)
                {
                    case 0x9112:
                        return "GL_OBJECT_TYPE";
                    case 0x9113:
                        return "GL_SYNC_CONDITION";
                    case 0x9114:
                        return "GL_SYNC_STATUS";
                    case 0x9115:
                        return "GL_SYNC_FLAGS";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::SyncStatus:
            {
                switch (value)
                {
                    case 0x911a:
                        return "GL_ALREADY_SIGNALED";
                    case 0x911b:
                        return "GL_TIMEOUT_EXPIRED";
                    case 0x911c:
                        return "GL_CONDITION_SATISFIED";
                    case 0x911d:
                        return "GL_WAIT_FAILED";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TexCoordPointerType:
            {
                switch (value)
                {
                    case 0x1402:
                        return "GL_SHORT";
                    case 0x1404:
                        return "GL_INT";
                    case 0x1406:
                        return "GL_FLOAT";
                    case 0x140a:
                        return "GL_DOUBLE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TextureCoordName:
            {
                switch (value)
                {
                    case 0x2000:
                        return "GL_S";
                    case 0x2001:
                        return "GL_T";
                    case 0x2002:
                        return "GL_R";
                    case 0x2003:
                        return "GL_Q";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TextureEnvMode:
            {
                switch (value)
                {
                    case 0x104:
                        return "GL_ADD";
                    case 0xbe2:
                        return "GL_BLEND";
                    case 0x2100:
                        return "GL_MODULATE";
                    case 0x2101:
                        return "GL_DECAL";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TextureEnvParameter:
            {
                switch (value)
                {
                    case 0x2200:
                        return "GL_TEXTURE_ENV_MODE";
                    case 0x2201:
                        return "GL_TEXTURE_ENV_COLOR";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TextureEnvTarget:
            {
                switch (value)
                {
                    case 0x2300:
                        return "GL_TEXTURE_ENV";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TextureGenMode:
            {
                switch (value)
                {
                    case 0x2400:
                        return "GL_EYE_LINEAR";
                    case 0x2401:
                        return "GL_OBJECT_LINEAR";
                    case 0x2402:
                        return "GL_SPHERE_MAP";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TextureGenParameter:
            {
                switch (value)
                {
                    case 0x2500:
                        return "GL_TEXTURE_GEN_MODE";
                    case 0x2501:
                        return "GL_OBJECT_PLANE";
                    case 0x2502:
                        return "GL_EYE_PLANE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TextureLayout:
            {
                switch (value)
                {
                    case 0x9530:
                        return "GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT";
                    case 0x9531:
                        return "GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT";
                    case 0x958d:
                        return "GL_LAYOUT_GENERAL_EXT";
                    case 0x958e:
                        return "GL_LAYOUT_COLOR_ATTACHMENT_EXT";
                    case 0x958f:
                        return "GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT";
                    case 0x9590:
                        return "GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT";
                    case 0x9591:
                        return "GL_LAYOUT_SHADER_READ_ONLY_EXT";
                    case 0x9592:
                        return "GL_LAYOUT_TRANSFER_SRC_EXT";
                    case 0x9593:
                        return "GL_LAYOUT_TRANSFER_DST_EXT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TextureMagFilter:
            {
                switch (value)
                {
                    case 0x2600:
                        return "GL_NEAREST";
                    case 0x2601:
                        return "GL_LINEAR";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TextureMinFilter:
            {
                switch (value)
                {
                    case 0x2600:
                        return "GL_NEAREST";
                    case 0x2601:
                        return "GL_LINEAR";
                    case 0x2700:
                        return "GL_NEAREST_MIPMAP_NEAREST";
                    case 0x2701:
                        return "GL_LINEAR_MIPMAP_NEAREST";
                    case 0x2702:
                        return "GL_NEAREST_MIPMAP_LINEAR";
                    case 0x2703:
                        return "GL_LINEAR_MIPMAP_LINEAR";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TextureParameterName:
            {
                switch (value)
                {
                    case 0x1000:
                        return "GL_TEXTURE_WIDTH";
                    case 0x1001:
                        return "GL_TEXTURE_HEIGHT";
                    case 0x1003:
                        return "GL_TEXTURE_COMPONENTS";
                    case 0x1004:
                        return "GL_TEXTURE_BORDER_COLOR";
                    case 0x1005:
                        return "GL_TEXTURE_BORDER";
                    case 0x2800:
                        return "GL_TEXTURE_MAG_FILTER";
                    case 0x2801:
                        return "GL_TEXTURE_MIN_FILTER";
                    case 0x2802:
                        return "GL_TEXTURE_WRAP_S";
                    case 0x2803:
                        return "GL_TEXTURE_WRAP_T";
                    case 0x805c:
                        return "GL_TEXTURE_RED_SIZE";
                    case 0x805d:
                        return "GL_TEXTURE_GREEN_SIZE";
                    case 0x805e:
                        return "GL_TEXTURE_BLUE_SIZE";
                    case 0x805f:
                        return "GL_TEXTURE_ALPHA_SIZE";
                    case 0x8060:
                        return "GL_TEXTURE_LUMINANCE_SIZE";
                    case 0x8061:
                        return "GL_TEXTURE_INTENSITY_SIZE";
                    case 0x8066:
                        return "GL_TEXTURE_PRIORITY";
                    case 0x8067:
                        return "GL_TEXTURE_RESIDENT";
                    case 0x8072:
                        return "GL_TEXTURE_WRAP_R";
                    case 0x813a:
                        return "GL_TEXTURE_MIN_LOD";
                    case 0x813b:
                        return "GL_TEXTURE_MAX_LOD";
                    case 0x813c:
                        return "GL_TEXTURE_BASE_LEVEL";
                    case 0x813d:
                        return "GL_TEXTURE_MAX_LEVEL";
                    case 0x8191:
                        return "GL_GENERATE_MIPMAP";
                    case 0x8501:
                        return "GL_TEXTURE_LOD_BIAS";
                    case 0x884c:
                        return "GL_TEXTURE_COMPARE_MODE";
                    case 0x884d:
                        return "GL_TEXTURE_COMPARE_FUNC";
                    case 0x8e42:
                        return "GL_TEXTURE_SWIZZLE_R";
                    case 0x8e43:
                        return "GL_TEXTURE_SWIZZLE_G";
                    case 0x8e44:
                        return "GL_TEXTURE_SWIZZLE_B";
                    case 0x8e45:
                        return "GL_TEXTURE_SWIZZLE_A";
                    case 0x8e46:
                        return "GL_TEXTURE_SWIZZLE_RGBA";
                    case 0x90ea:
                        return "GL_DEPTH_STENCIL_TEXTURE_MODE";
                    case 0x9580:
                        return "GL_TEXTURE_TILING_EXT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TextureTarget:
            {
                switch (value)
                {
                    case 0xde0:
                        return "GL_TEXTURE_1D";
                    case 0xde1:
                        return "GL_TEXTURE_2D";
                    case 0x8063:
                        return "GL_PROXY_TEXTURE_1D";
                    case 0x8064:
                        return "GL_PROXY_TEXTURE_2D";
                    case 0x806f:
                        return "GL_TEXTURE_3D";
                    case 0x8070:
                        return "GL_PROXY_TEXTURE_3D";
                    case 0x84f5:
                        return "GL_TEXTURE_RECTANGLE";
                    case 0x84f7:
                        return "GL_PROXY_TEXTURE_RECTANGLE";
                    case 0x8513:
                        return "GL_TEXTURE_CUBE_MAP";
                    case 0x8515:
                        return "GL_TEXTURE_CUBE_MAP_POSITIVE_X";
                    case 0x8516:
                        return "GL_TEXTURE_CUBE_MAP_NEGATIVE_X";
                    case 0x8517:
                        return "GL_TEXTURE_CUBE_MAP_POSITIVE_Y";
                    case 0x8518:
                        return "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y";
                    case 0x8519:
                        return "GL_TEXTURE_CUBE_MAP_POSITIVE_Z";
                    case 0x851a:
                        return "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z";
                    case 0x851b:
                        return "GL_PROXY_TEXTURE_CUBE_MAP";
                    case 0x8c18:
                        return "GL_TEXTURE_1D_ARRAY";
                    case 0x8c19:
                        return "GL_PROXY_TEXTURE_1D_ARRAY";
                    case 0x8c1a:
                        return "GL_TEXTURE_2D_ARRAY";
                    case 0x8c1b:
                        return "GL_PROXY_TEXTURE_2D_ARRAY";
                    case 0x9009:
                        return "GL_TEXTURE_CUBE_MAP_ARRAY";
                    case 0x900b:
                        return "GL_PROXY_TEXTURE_CUBE_MAP_ARRAY";
                    case 0x9100:
                        return "GL_TEXTURE_2D_MULTISAMPLE";
                    case 0x9101:
                        return "GL_PROXY_TEXTURE_2D_MULTISAMPLE";
                    case 0x9102:
                        return "GL_TEXTURE_2D_MULTISAMPLE_ARRAY";
                    case 0x9103:
                        return "GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TextureUnit:
            {
                switch (value)
                {
                    case 0x84c0:
                        return "GL_TEXTURE0";
                    case 0x84c1:
                        return "GL_TEXTURE1";
                    case 0x84c2:
                        return "GL_TEXTURE2";
                    case 0x84c3:
                        return "GL_TEXTURE3";
                    case 0x84c4:
                        return "GL_TEXTURE4";
                    case 0x84c5:
                        return "GL_TEXTURE5";
                    case 0x84c6:
                        return "GL_TEXTURE6";
                    case 0x84c7:
                        return "GL_TEXTURE7";
                    case 0x84c8:
                        return "GL_TEXTURE8";
                    case 0x84c9:
                        return "GL_TEXTURE9";
                    case 0x84ca:
                        return "GL_TEXTURE10";
                    case 0x84cb:
                        return "GL_TEXTURE11";
                    case 0x84cc:
                        return "GL_TEXTURE12";
                    case 0x84cd:
                        return "GL_TEXTURE13";
                    case 0x84ce:
                        return "GL_TEXTURE14";
                    case 0x84cf:
                        return "GL_TEXTURE15";
                    case 0x84d0:
                        return "GL_TEXTURE16";
                    case 0x84d1:
                        return "GL_TEXTURE17";
                    case 0x84d2:
                        return "GL_TEXTURE18";
                    case 0x84d3:
                        return "GL_TEXTURE19";
                    case 0x84d4:
                        return "GL_TEXTURE20";
                    case 0x84d5:
                        return "GL_TEXTURE21";
                    case 0x84d6:
                        return "GL_TEXTURE22";
                    case 0x84d7:
                        return "GL_TEXTURE23";
                    case 0x84d8:
                        return "GL_TEXTURE24";
                    case 0x84d9:
                        return "GL_TEXTURE25";
                    case 0x84da:
                        return "GL_TEXTURE26";
                    case 0x84db:
                        return "GL_TEXTURE27";
                    case 0x84dc:
                        return "GL_TEXTURE28";
                    case 0x84dd:
                        return "GL_TEXTURE29";
                    case 0x84de:
                        return "GL_TEXTURE30";
                    case 0x84df:
                        return "GL_TEXTURE31";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TextureWrapMode:
            {
                switch (value)
                {
                    case 0x2900:
                        return "GL_CLAMP";
                    case 0x2901:
                        return "GL_REPEAT";
                    case 0x812d:
                        return "GL_CLAMP_TO_BORDER";
                    case 0x812f:
                        return "GL_CLAMP_TO_EDGE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TransformFeedbackPName:
            {
                switch (value)
                {
                    case 0x8c84:
                        return "GL_TRANSFORM_FEEDBACK_BUFFER_START";
                    case 0x8c85:
                        return "GL_TRANSFORM_FEEDBACK_BUFFER_SIZE";
                    case 0x8c8f:
                        return "GL_TRANSFORM_FEEDBACK_BUFFER_BINDING";
                    case 0x8e23:
                        return "GL_TRANSFORM_FEEDBACK_PAUSED";
                    case 0x8e24:
                        return "GL_TRANSFORM_FEEDBACK_ACTIVE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::TypeEnum:
            {
                switch (value)
                {
                    case 0x8e13:
                        return "GL_QUERY_WAIT";
                    case 0x8e14:
                        return "GL_QUERY_NO_WAIT";
                    case 0x8e15:
                        return "GL_QUERY_BY_REGION_WAIT";
                    case 0x8e16:
                        return "GL_QUERY_BY_REGION_NO_WAIT";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::UniformBlockPName:
            {
                switch (value)
                {
                    case 0x84f0:
                        return "GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER";
                    case 0x84f1:
                        return "GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER";
                    case 0x8a3f:
                        return "GL_UNIFORM_BLOCK_BINDING";
                    case 0x8a40:
                        return "GL_UNIFORM_BLOCK_DATA_SIZE";
                    case 0x8a41:
                        return "GL_UNIFORM_BLOCK_NAME_LENGTH";
                    case 0x8a42:
                        return "GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS";
                    case 0x8a43:
                        return "GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES";
                    case 0x8a44:
                        return "GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER";
                    case 0x8a45:
                        return "GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER";
                    case 0x8a46:
                        return "GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER";
                    case 0x90ec:
                        return "GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::UniformPName:
            {
                switch (value)
                {
                    case 0x8a37:
                        return "GL_UNIFORM_TYPE";
                    case 0x8a38:
                        return "GL_UNIFORM_SIZE";
                    case 0x8a39:
                        return "GL_UNIFORM_NAME_LENGTH";
                    case 0x8a3a:
                        return "GL_UNIFORM_BLOCK_INDEX";
                    case 0x8a3b:
                        return "GL_UNIFORM_OFFSET";
                    case 0x8a3c:
                        return "GL_UNIFORM_ARRAY_STRIDE";
                    case 0x8a3d:
                        return "GL_UNIFORM_MATRIX_STRIDE";
                    case 0x8a3e:
                        return "GL_UNIFORM_IS_ROW_MAJOR";
                    case 0x92da:
                        return "GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::UseProgramStageMask:
            {
                switch (value)
                {
                    case 0x1:
                        return "GL_VERTEX_SHADER_BIT";
                    case 0x2:
                        return "GL_FRAGMENT_SHADER_BIT";
                    case 0x4:
                        return "GL_GEOMETRY_SHADER_BIT";
                    case 0x8:
                        return "GL_TESS_CONTROL_SHADER_BIT";
                    case 0x10:
                        return "GL_TESS_EVALUATION_SHADER_BIT";
                    case 0x20:
                        return "GL_COMPUTE_SHADER_BIT";
                    case 0xffffffff:
                        return "GL_ALL_SHADER_BITS";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::VertexArrayPName:
            {
                switch (value)
                {
                    case 0x82d5:
                        return "GL_VERTEX_ATTRIB_RELATIVE_OFFSET";
                    case 0x8622:
                        return "GL_VERTEX_ATTRIB_ARRAY_ENABLED";
                    case 0x8623:
                        return "GL_VERTEX_ATTRIB_ARRAY_SIZE";
                    case 0x8624:
                        return "GL_VERTEX_ATTRIB_ARRAY_STRIDE";
                    case 0x8625:
                        return "GL_VERTEX_ATTRIB_ARRAY_TYPE";
                    case 0x874e:
                        return "GL_VERTEX_ATTRIB_ARRAY_LONG";
                    case 0x886a:
                        return "GL_VERTEX_ATTRIB_ARRAY_NORMALIZED";
                    case 0x88fd:
                        return "GL_VERTEX_ATTRIB_ARRAY_INTEGER";
                    case 0x88fe:
                        return "GL_VERTEX_ATTRIB_ARRAY_DIVISOR";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::VertexAttribEnum:
            {
                switch (value)
                {
                    case 0x8622:
                        return "GL_VERTEX_ATTRIB_ARRAY_ENABLED";
                    case 0x8623:
                        return "GL_VERTEX_ATTRIB_ARRAY_SIZE";
                    case 0x8624:
                        return "GL_VERTEX_ATTRIB_ARRAY_STRIDE";
                    case 0x8625:
                        return "GL_VERTEX_ATTRIB_ARRAY_TYPE";
                    case 0x8626:
                        return "GL_CURRENT_VERTEX_ATTRIB";
                    case 0x886a:
                        return "GL_VERTEX_ATTRIB_ARRAY_NORMALIZED";
                    case 0x889f:
                        return "GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING";
                    case 0x88fd:
                        return "GL_VERTEX_ATTRIB_ARRAY_INTEGER";
                    case 0x88fe:
                        return "GL_VERTEX_ATTRIB_ARRAY_DIVISOR";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::VertexAttribPointerType:
            {
                switch (value)
                {
                    case 0x1400:
                        return "GL_BYTE";
                    case 0x1401:
                        return "GL_UNSIGNED_BYTE";
                    case 0x1402:
                        return "GL_SHORT";
                    case 0x1403:
                        return "GL_UNSIGNED_SHORT";
                    case 0x1404:
                        return "GL_INT";
                    case 0x1405:
                        return "GL_UNSIGNED_INT";
                    case 0x1406:
                        return "GL_FLOAT";
                    case 0x140a:
                        return "GL_DOUBLE";
                    case 0x140b:
                        return "GL_HALF_FLOAT";
                    case 0x140c:
                        return "GL_FIXED";
                    case 0x8368:
                        return "GL_UNSIGNED_INT_2_10_10_10_REV";
                    case 0x8c3b:
                        return "GL_UNSIGNED_INT_10F_11F_11F_REV";
                    case 0x8d9f:
                        return "GL_INT_2_10_10_10_REV";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::VertexAttribType:
            {
                switch (value)
                {
                    case 0x1400:
                        return "GL_BYTE";
                    case 0x1401:
                        return "GL_UNSIGNED_BYTE";
                    case 0x1402:
                        return "GL_SHORT";
                    case 0x1403:
                        return "GL_UNSIGNED_SHORT";
                    case 0x1404:
                        return "GL_INT";
                    case 0x1405:
                        return "GL_UNSIGNED_INT";
                    case 0x1406:
                        return "GL_FLOAT";
                    case 0x140a:
                        return "GL_DOUBLE";
                    case 0x140b:
                        return "GL_HALF_FLOAT";
                    case 0x140c:
                        return "GL_FIXED";
                    case 0x8368:
                        return "GL_UNSIGNED_INT_2_10_10_10_REV";
                    case 0x8c3b:
                        return "GL_UNSIGNED_INT_10F_11F_11F_REV";
                    case 0x8d9f:
                        return "GL_INT_2_10_10_10_REV";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::VertexBufferObjectParameter:
            {
                switch (value)
                {
                    case 0x821f:
                        return "GL_BUFFER_IMMUTABLE_STORAGE";
                    case 0x8220:
                        return "GL_BUFFER_STORAGE_FLAGS";
                    case 0x8764:
                        return "GL_BUFFER_SIZE";
                    case 0x8765:
                        return "GL_BUFFER_USAGE";
                    case 0x88bb:
                        return "GL_BUFFER_ACCESS";
                    case 0x88bc:
                        return "GL_BUFFER_MAPPED";
                    case 0x911f:
                        return "GL_BUFFER_ACCESS_FLAGS";
                    case 0x9120:
                        return "GL_BUFFER_MAP_LENGTH";
                    case 0x9121:
                        return "GL_BUFFER_MAP_OFFSET";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::VertexBufferObjectUsage:
            {
                switch (value)
                {
                    case 0x88e0:
                        return "GL_STREAM_DRAW";
                    case 0x88e1:
                        return "GL_STREAM_READ";
                    case 0x88e2:
                        return "GL_STREAM_COPY";
                    case 0x88e4:
                        return "GL_STATIC_DRAW";
                    case 0x88e5:
                        return "GL_STATIC_READ";
                    case 0x88e6:
                        return "GL_STATIC_COPY";
                    case 0x88e8:
                        return "GL_DYNAMIC_DRAW";
                    case 0x88e9:
                        return "GL_DYNAMIC_READ";
                    case 0x88ea:
                        return "GL_DYNAMIC_COPY";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::VertexPointerType:
            {
                switch (value)
                {
                    case 0x1402:
                        return "GL_SHORT";
                    case 0x1404:
                        return "GL_INT";
                    case 0x1406:
                        return "GL_FLOAT";
                    case 0x140a:
                        return "GL_DOUBLE";
                    default:
                        return kEnumUnknown;
                }
            }
    
            case GLenumGroup::VertexProvokingMode:
            {
                switch (value)
                {
                    case 0x8e4d:
                        return "GL_FIRST_VERTEX_CONVENTION";
                    case 0x8e4e:
                        return "GL_LAST_VERTEX_CONVENTION";
                    default:
                        return kEnumUnknown;
                }
            }
    
            default:
                return kEnumUnknown;
        }
    }
    
    std::string GLbitfieldToString(GLenumGroup enumGroup, unsigned int value)
    {
        std::stringstream st;
    
        const angle::BitSet<32> bitSet(value);
        bool first = true;
        for (const auto index : bitSet)
        {
            if (!first)
            {
                st << " | ";
            }
            first = false;
    
            unsigned int mask = 1u << index;
            OutputGLenumString(st, enumGroup, mask);
        }
    
        return st.str();
    }
    
    }  // namespace gl