// 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 "libANGLE/gl_enum_utils.h"

#include <sstream>

#include "common/bitset_utils.h"

namespace gl
{
const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
{
    switch (enumGroup)
    {
        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::AtomicCounterBufferPName:
        {
            switch (value)
            {
                case 0x92C1:
                    return "GL_ATOMIC_COUNTER_BUFFER_BINDING";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::AttribMask:
        {
            switch (value)
            {
                case 0x100:
                    return "GL_DEPTH_BUFFER_BIT";
                case 0x400:
                    return "GL_STENCIL_BUFFER_BIT";
                case 0x4000:
                    return "GL_COLOR_BUFFER_BIT";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 0x8B5E:
                    return "GL_SAMPLER_2D";
                case 0x8B5F:
                    return "GL_SAMPLER_3D";
                case 0x8B60:
                    return "GL_SAMPLER_CUBE";
                case 0x8B62:
                    return "GL_SAMPLER_2D_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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::BindTransformFeedbackTarget:
        {
            switch (value)
            {
                case 0x8E22:
                    return "GL_TRANSFORM_FEEDBACK";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::BlendEquationModeEXT:
        {
            switch (value)
            {
                case 0x8006:
                    return "GL_FUNC_ADD";
                case 0x800A:
                    return "GL_FUNC_SUBTRACT";
                case 0x800B:
                    return "GL_FUNC_REVERSE_SUBTRACT";
                default:
                    return kUnknownGLenumString;
            }
        }

        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";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::BlitFramebufferFilter:
        {
            switch (value)
            {
                case 0x2600:
                    return "GL_NEAREST";
                case 0x2601:
                    return "GL_LINEAR";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::Boolean:
        {
            switch (value)
            {
                case 0x0:
                    return "GL_FALSE";
                case 0x1:
                    return "GL_TRUE";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::Buffer:
        {
            switch (value)
            {
                case 0x1800:
                    return "GL_COLOR";
                case 0x1801:
                    return "GL_DEPTH";
                case 0x1802:
                    return "GL_STENCIL";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 0x92C0:
                    return "GL_ATOMIC_COUNTER_BUFFER";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 0x92C0:
                    return "GL_ATOMIC_COUNTER_BUFFER";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::CheckFramebufferStatusTarget:
        {
            switch (value)
            {
                case 0x8CA8:
                    return "GL_READ_FRAMEBUFFER";
                case 0x8CA9:
                    return "GL_DRAW_FRAMEBUFFER";
                case 0x8D40:
                    return "GL_FRAMEBUFFER";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::ClearBufferMask:
        {
            switch (value)
            {
                case 0x100:
                    return "GL_DEPTH_BUFFER_BIT";
                case 0x400:
                    return "GL_STENCIL_BUFFER_BIT";
                case 0x4000:
                    return "GL_COLOR_BUFFER_BIT";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::ColorBuffer:
        {
            switch (value)
            {
                case 0x0:
                    return "GL_NONE";
                case 0x404:
                    return "GL_FRONT";
                case 0x405:
                    return "GL_BACK";
                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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::ColorMaterialFace:
        {
            switch (value)
            {
                case 0x404:
                    return "GL_FRONT";
                case 0x405:
                    return "GL_BACK";
                case 0x408:
                    return "GL_FRONT_AND_BACK";
                default:
                    return kUnknownGLenumString;
            }
        }

        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";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::ContextFlagMask:
        {
            switch (value)
            {
                case 0x2:
                    return "GL_CONTEXT_FLAG_DEBUG_BIT";
                case 0x4:
                    return "GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 0x92C0:
                    return "GL_ATOMIC_COUNTER_BUFFER";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::CullFaceMode:
        {
            switch (value)
            {
                case 0x404:
                    return "GL_FRONT";
                case 0x405:
                    return "GL_BACK";
                case 0x408:
                    return "GL_FRONT_AND_BACK";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 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 0x803C:
                    return "GL_ALPHA8_EXT";
                case 0x8040:
                    return "GL_LUMINANCE8_EXT";
                case 0x8045:
                    return "GL_LUMINANCE8_ALPHA8_EXT";
                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 0x809E:
                    return "GL_SAMPLE_ALPHA_TO_COVERAGE";
                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 0x80E8:
                    return "GL_MAX_ELEMENTS_VERTICES";
                case 0x80E9:
                    return "GL_MAX_ELEMENTS_INDICES";
                case 0x812D:
                    return "GL_CLAMP_TO_BORDER_OES";
                case 0x81A6:
                    return "GL_DEPTH_COMPONENT24";
                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 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 0x825E:
                    return "GL_LAYER_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 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 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 0x8363:
                    return "GL_UNSIGNED_SHORT_5_6_5";
                case 0x8370:
                    return "GL_MIRRORED_REPEAT";
                case 0x84E0:
                    return "GL_ACTIVE_TEXTURE";
                case 0x84E8:
                    return "GL_MAX_RENDERBUFFER_SIZE";
                case 0x84F2:
                    return "GL_ALL_COMPLETED_NV";
                case 0x84F3:
                    return "GL_FENCE_STATUS_NV";
                case 0x84F4:
                    return "GL_FENCE_CONDITION_NV";
                case 0x84FA:
                    return "GL_UNSIGNED_INT_24_8";
                case 0x84FD:
                    return "GL_MAX_TEXTURE_LOD_BIAS";
                case 0x84FE:
                    return "GL_TEXTURE_MAX_ANISOTROPY_EXT";
                case 0x84FF:
                    return "GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT";
                case 0x8507:
                    return "GL_INCR_WRAP";
                case 0x8508:
                    return "GL_DECR_WRAP";
                case 0x8511:
                    return "GL_NORMAL_MAP_OES";
                case 0x8512:
                    return "GL_REFLECTION_MAP_OES";
                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 0x8589:
                    return "GL_SRC1_ALPHA_EXT";
                case 0x85B5:
                    return "GL_VERTEX_ARRAY_BINDING";
                case 0x8645:
                    return "GL_VERTEX_ATTRIB_ARRAY_POINTER";
                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 0x8741:
                    return "GL_PROGRAM_BINARY_LENGTH_OES";
                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 0x884E:
                    return "GL_COMPARE_REF_TO_TEXTURE";
                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 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 0x889E:
                    return "GL_WEIGHT_ARRAY_BUFFER_BINDING_OES";
                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_EXT";
                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 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 0x8C16:
                    return "GL_TEXTURE_DEPTH_TYPE";
                case 0x8C17:
                    return "GL_UNSIGNED_NORMALIZED";
                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 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 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 0x8D48:
                    return "GL_STENCIL_INDEX8";
                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 0x8D6C:
                    return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT";
                case 0x8D94:
                    return "GL_RED_INTEGER";
                case 0x8D98:
                    return "GL_RGB_INTEGER";
                case 0x8D99:
                    return "GL_RGBA_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 0x8DC1:
                    return "GL_SAMPLER_2D_ARRAY";
                case 0x8DC2:
                    return "GL_SAMPLER_BUFFER";
                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 0x8DCA:
                    return "GL_INT_SAMPLER_2D";
                case 0x8DCB:
                    return "GL_INT_SAMPLER_3D";
                case 0x8DCC:
                    return "GL_INT_SAMPLER_CUBE";
                case 0x8DCF:
                    return "GL_INT_SAMPLER_2D_ARRAY";
                case 0x8DD0:
                    return "GL_INT_SAMPLER_BUFFER";
                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 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 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 0x8E1E:
                    return "GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS";
                case 0x8E1F:
                    return "GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS";
                case 0x8E25:
                    return "GL_TRANSFORM_FEEDBACK_BINDING";
                case 0x8E28:
                    return "GL_TIMESTAMP_EXT";
                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 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_SHADER_OUTPUT_RESOURCES";
                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 0x8F4F:
                    return "GL_VERTEX_BINDING_BUFFER";
                case 0x8F9C:
                    return "GL_SIGNED_NORMALIZED";
                case 0x8FBB:
                    return "GL_GPU_DISJOINT_EXT";
                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 0x904D:
                    return "GL_IMAGE_2D";
                case 0x904E:
                    return "GL_IMAGE_3D";
                case 0x9050:
                    return "GL_IMAGE_CUBE";
                case 0x9051:
                    return "GL_IMAGE_BUFFER";
                case 0x9053:
                    return "GL_IMAGE_2D_ARRAY";
                case 0x9054:
                    return "GL_IMAGE_CUBE_MAP_ARRAY";
                case 0x9058:
                    return "GL_INT_IMAGE_2D";
                case 0x9059:
                    return "GL_INT_IMAGE_3D";
                case 0x905B:
                    return "GL_INT_IMAGE_CUBE";
                case 0x905C:
                    return "GL_INT_IMAGE_BUFFER";
                case 0x905E:
                    return "GL_INT_IMAGE_2D_ARRAY";
                case 0x905F:
                    return "GL_INT_IMAGE_CUBE_MAP_ARRAY";
                case 0x9063:
                    return "GL_UNSIGNED_INT_IMAGE_2D";
                case 0x9064:
                    return "GL_UNSIGNED_INT_IMAGE_3D";
                case 0x9066:
                    return "GL_UNSIGNED_INT_IMAGE_CUBE";
                case 0x9067:
                    return "GL_UNSIGNED_INT_IMAGE_BUFFER";
                case 0x9069:
                    return "GL_UNSIGNED_INT_IMAGE_2D_ARRAY";
                case 0x906A:
                    return "GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY";
                case 0x906E:
                    return "GL_IMAGE_BINDING_FORMAT";
                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_EXT";
                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 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 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_EXT";
                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 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 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 kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::DrawBufferMode:
        {
            switch (value)
            {
                case 0x0:
                    return "GL_NONE";
                case 0x404:
                    return "GL_FRONT";
                case 0x405:
                    return "GL_BACK";
                case 0x408:
                    return "GL_FRONT_AND_BACK";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::EnableCap:
        {
            switch (value)
            {
                case 0xB44:
                    return "GL_CULL_FACE";
                case 0xB71:
                    return "GL_DEPTH_TEST";
                case 0xB90:
                    return "GL_STENCIL_TEST";
                case 0xBD0:
                    return "GL_DITHER";
                case 0xBE2:
                    return "GL_BLEND";
                case 0xC11:
                    return "GL_SCISSOR_TEST";
                case 0xDE1:
                    return "GL_TEXTURE_2D";
                case 0x8037:
                    return "GL_POLYGON_OFFSET_FILL";
                case 0x8074:
                    return "GL_VERTEX_ARRAY";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::ExternalHandleType:
        {
            switch (value)
            {
                case 0x9586:
                    return "GL_HANDLE_TYPE_OPAQUE_FD_EXT";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::FogCoordinatePointerType:
        {
            switch (value)
            {
                case 0x1406:
                    return "GL_FLOAT";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::FogMode:
        {
            switch (value)
            {
                case 0x2601:
                    return "GL_LINEAR";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::FogPointerTypeEXT:
        {
            switch (value)
            {
                case 0x1406:
                    return "GL_FLOAT";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::FogPointerTypeIBM:
        {
            switch (value)
            {
                case 0x1406:
                    return "GL_FLOAT";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 0x8CDD:
                    return "GL_FRAMEBUFFER_UNSUPPORTED";
                case 0x8D56:
                    return "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE";
                case 0x8DA8:
                    return "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::FramebufferTarget:
        {
            switch (value)
            {
                case 0x8CA8:
                    return "GL_READ_FRAMEBUFFER";
                case 0x8CA9:
                    return "GL_DRAW_FRAMEBUFFER";
                case 0x8D40:
                    return "GL_FRAMEBUFFER";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::FrontFaceDirection:
        {
            switch (value)
            {
                case 0x900:
                    return "GL_CW";
                case 0x901:
                    return "GL_CCW";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::GetFramebufferParameter:
        {
            switch (value)
            {
                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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::GetPName:
        {
            switch (value)
            {
                case 0xB21:
                    return "GL_LINE_WIDTH";
                case 0xB44:
                    return "GL_CULL_FACE";
                case 0xB45:
                    return "GL_CULL_FACE_MODE";
                case 0xB46:
                    return "GL_FRONT_FACE";
                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 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 0xBA2:
                    return "GL_VIEWPORT";
                case 0xBD0:
                    return "GL_DITHER";
                case 0xBE2:
                    return "GL_BLEND";
                case 0xC02:
                    return "GL_READ_BUFFER";
                case 0xC10:
                    return "GL_SCISSOR_BOX";
                case 0xC11:
                    return "GL_SCISSOR_TEST";
                case 0xC22:
                    return "GL_COLOR_CLEAR_VALUE";
                case 0xC23:
                    return "GL_COLOR_WRITEMASK";
                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 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 0xD33:
                    return "GL_MAX_TEXTURE_SIZE";
                case 0xD3A:
                    return "GL_MAX_VIEWPORT_DIMS";
                case 0xD50:
                    return "GL_SUBPIXEL_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 0xDE1:
                    return "GL_TEXTURE_2D";
                case 0x2A00:
                    return "GL_POLYGON_OFFSET_UNITS";
                case 0x8037:
                    return "GL_POLYGON_OFFSET_FILL";
                case 0x8038:
                    return "GL_POLYGON_OFFSET_FACTOR";
                case 0x8069:
                    return "GL_TEXTURE_BINDING_2D";
                case 0x806A:
                    return "GL_TEXTURE_BINDING_3D";
                case 0x8074:
                    return "GL_VERTEX_ARRAY";
                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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::GetPointervPName:
        {
            switch (value)
            {
                case 0x8244:
                    return "GL_DEBUG_CALLBACK_FUNCTION";
                case 0x8245:
                    return "GL_DEBUG_CALLBACK_USER_PARAM";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::GetTextureParameter:
        {
            switch (value)
            {
                case 0x1000:
                    return "GL_TEXTURE_WIDTH";
                case 0x1001:
                    return "GL_TEXTURE_HEIGHT";
                case 0x1003:
                    return "GL_TEXTURE_INTERNAL_FORMAT";
                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 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";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::HintMode:
        {
            switch (value)
            {
                case 0x1100:
                    return "GL_DONT_CARE";
                case 0x1101:
                    return "GL_FASTEST";
                case 0x1102:
                    return "GL_NICEST";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::HintTarget:
        {
            switch (value)
            {
                case 0x8192:
                    return "GL_GENERATE_MIPMAP_HINT";
                case 0x8257:
                    return "GL_PROGRAM_BINARY_RETRIEVABLE_HINT";
                case 0x8B8B:
                    return "GL_FRAGMENT_SHADER_DERIVATIVE_HINT";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::IndexPointerType:
        {
            switch (value)
            {
                case 0x1402:
                    return "GL_SHORT";
                case 0x1404:
                    return "GL_INT";
                case 0x1406:
                    return "GL_FLOAT";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 0x8051:
                    return "GL_RGB8";
                case 0x8052:
                    return "GL_RGB10_EXT";
                case 0x8056:
                    return "GL_RGBA4";
                case 0x8057:
                    return "GL_RGB5_A1";
                case 0x8058:
                    return "GL_RGBA8";
                case 0x8059:
                    return "GL_RGB10_A2";
                case 0x81A5:
                    return "GL_DEPTH_COMPONENT16";
                case 0x8227:
                    return "GL_RG";
                case 0x8229:
                    return "GL_R8";
                case 0x822B:
                    return "GL_RG8";
                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 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 0x8C43:
                    return "GL_SRGB8_ALPHA8";
                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 0x8F94:
                    return "GL_R8_SNORM";
                case 0x8F95:
                    return "GL_RG8_SNORM";
                case 0x8F96:
                    return "GL_RGB8_SNORM";
                case 0x8F97:
                    return "GL_RGBA8_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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::InternalFormatPName:
        {
            switch (value)
            {
                case 0x80A9:
                    return "GL_SAMPLES";
                case 0x86A1:
                    return "GL_TEXTURE_COMPRESSED";
                case 0x90C7:
                    return "GL_IMAGE_FORMAT_COMPATIBILITY_TYPE";
                case 0x9380:
                    return "GL_NUM_SAMPLE_COUNTS";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::LightEnvModeSGIX:
        {
            switch (value)
            {
                case 0x1E01:
                    return "GL_REPLACE";
                default:
                    return kUnknownGLenumString;
            }
        }

        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";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::LogicOp:
        {
            switch (value)
            {
                case 0x150A:
                    return "GL_INVERT";
                default:
                    return kUnknownGLenumString;
            }
        }

        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";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::MaterialFace:
        {
            switch (value)
            {
                case 0x404:
                    return "GL_FRONT";
                case 0x405:
                    return "GL_BACK";
                case 0x408:
                    return "GL_FRONT_AND_BACK";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::MatrixMode:
        {
            switch (value)
            {
                case 0x1702:
                    return "GL_TEXTURE";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 0xFFFFFFFF:
                    return "GL_ALL_BARRIER_BITS";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::MemoryObjectParameterName:
        {
            switch (value)
            {
                case 0x9581:
                    return "GL_DEDICATED_MEMORY_OBJECT_EXT";
                case 0x959B:
                    return "GL_PROTECTED_MEMORY_OBJECT_EXT";
                default:
                    return kUnknownGLenumString;
            }
        }

        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";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::PatchParameterName:
        {
            switch (value)
            {
                case 0x8E72:
                    return "GL_PATCH_VERTICES";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::PathFillMode:
        {
            switch (value)
            {
                case 0x150A:
                    return "GL_INVERT";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::PathFontStyle:
        {
            switch (value)
            {
                case 0x0:
                    return "GL_NONE";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::PathGenMode:
        {
            switch (value)
            {
                case 0x0:
                    return "GL_NONE";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::PathTransformType:
        {
            switch (value)
            {
                case 0x0:
                    return "GL_NONE";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::PixelCopyType:
        {
            switch (value)
            {
                case 0x1800:
                    return "GL_COLOR";
                case 0x1801:
                    return "GL_DEPTH";
                case 0x1802:
                    return "GL_STENCIL";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::PixelFormat:
        {
            switch (value)
            {
                case 0x1403:
                    return "GL_UNSIGNED_SHORT";
                case 0x1405:
                    return "GL_UNSIGNED_INT";
                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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::PixelStoreParameter:
        {
            switch (value)
            {
                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 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 0x806D:
                    return "GL_UNPACK_SKIP_IMAGES";
                case 0x806E:
                    return "GL_UNPACK_IMAGE_HEIGHT";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 0x8033:
                    return "GL_UNSIGNED_SHORT_4_4_4_4";
                case 0x8034:
                    return "GL_UNSIGNED_SHORT_5_5_5_1";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 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 kUnknownGLenumString;
            }
        }

        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 0x92F4:
                    return "GL_TRANSFORM_FEEDBACK_VARYING";
                default:
                    return kUnknownGLenumString;
            }
        }

        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";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::ProgramParameterPName:
        {
            switch (value)
            {
                case 0x8257:
                    return "GL_PROGRAM_BINARY_RETRIEVABLE_HINT";
                case 0x8258:
                    return "GL_PROGRAM_SEPARABLE";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::QueryObjectParameterName:
        {
            switch (value)
            {
                case 0x8866:
                    return "GL_QUERY_RESULT";
                case 0x8867:
                    return "GL_QUERY_RESULT_AVAILABLE";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::QueryParameterName:
        {
            switch (value)
            {
                case 0x8865:
                    return "GL_CURRENT_QUERY";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::QueryTarget:
        {
            switch (value)
            {
                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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::ReadBufferMode:
        {
            switch (value)
            {
                case 0x404:
                    return "GL_FRONT";
                case 0x405:
                    return "GL_BACK";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::RenderbufferTarget:
        {
            switch (value)
            {
                case 0x8D41:
                    return "GL_RENDERBUFFER";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::StencilFaceDirection:
        {
            switch (value)
            {
                case 0x404:
                    return "GL_FRONT";
                case 0x405:
                    return "GL_BACK";
                case 0x408:
                    return "GL_FRONT_AND_BACK";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::SubroutineParameterName:
        {
            switch (value)
            {
                case 0x8A38:
                    return "GL_UNIFORM_SIZE";
                case 0x8A39:
                    return "GL_UNIFORM_NAME_LENGTH";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::SyncCondition:
        {
            switch (value)
            {
                case 0x9117:
                    return "GL_SYNC_GPU_COMMANDS_COMPLETE";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::SyncObjectMask:
        {
            switch (value)
            {
                case 0x1:
                    return "GL_SYNC_FLUSH_COMMANDS_BIT";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::TexCoordPointerType:
        {
            switch (value)
            {
                case 0x1402:
                    return "GL_SHORT";
                case 0x1404:
                    return "GL_INT";
                case 0x1406:
                    return "GL_FLOAT";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::TextureEnvMode:
        {
            switch (value)
            {
                case 0xBE2:
                    return "GL_BLEND";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::TextureMagFilter:
        {
            switch (value)
            {
                case 0x2600:
                    return "GL_NEAREST";
                case 0x2601:
                    return "GL_LINEAR";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::TextureParameterName:
        {
            switch (value)
            {
                case 0x1000:
                    return "GL_TEXTURE_WIDTH";
                case 0x1001:
                    return "GL_TEXTURE_HEIGHT";
                case 0x1003:
                    return "GL_TEXTURE_INTERNAL_FORMAT";
                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 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 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 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 0x90EA:
                    return "GL_DEPTH_STENCIL_TEXTURE_MODE";
                case 0x9580:
                    return "GL_TEXTURE_TILING_EXT";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::TextureTarget:
        {
            switch (value)
            {
                case 0xDE1:
                    return "GL_TEXTURE_2D";
                case 0x806F:
                    return "GL_TEXTURE_3D";
                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 0x8C1A:
                    return "GL_TEXTURE_2D_ARRAY";
                case 0x9009:
                    return "GL_TEXTURE_CUBE_MAP_ARRAY";
                case 0x9100:
                    return "GL_TEXTURE_2D_MULTISAMPLE";
                case 0x9102:
                    return "GL_TEXTURE_2D_MULTISAMPLE_ARRAY";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::TextureWrapMode:
        {
            switch (value)
            {
                case 0x2901:
                    return "GL_REPEAT";
                case 0x812D:
                    return "GL_CLAMP_TO_BORDER";
                case 0x812F:
                    return "GL_CLAMP_TO_EDGE";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::UniformBlockPName:
        {
            switch (value)
            {
                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 0x8A46:
                    return "GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER";
                default:
                    return kUnknownGLenumString;
            }
        }

        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";
                default:
                    return kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 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 kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        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 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 kUnknownGLenumString;
            }
        }

        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 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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::VertexBufferObjectParameter:
        {
            switch (value)
            {
                case 0x8764:
                    return "GL_BUFFER_SIZE";
                case 0x8765:
                    return "GL_BUFFER_USAGE";
                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 kUnknownGLenumString;
            }
        }

        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 kUnknownGLenumString;
            }
        }

        case GLenumGroup::VertexPointerType:
        {
            switch (value)
            {
                case 0x1402:
                    return "GL_SHORT";
                case 0x1404:
                    return "GL_INT";
                case 0x1406:
                    return "GL_FLOAT";
                default:
                    return kUnknownGLenumString;
            }
        }

        case GLenumGroup::VertexProvokingMode:
        {
            switch (value)
            {
                case 0x8E4D:
                    return "GL_FIRST_VERTEX_CONVENTION";
                case 0x8E4E:
                    return "GL_LAST_VERTEX_CONVENTION";
                default:
                    return kUnknownGLenumString;
            }
        }

        default:
            return kUnknownGLenumString;
    }
}

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
