Home | History | Annotate | Download | only in common
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // This file is auto-generated from
      6 // gpu/command_buffer/build_gles2_cmd_buffer.py
      7 // DO NOT EDIT!
      8 
      9 #ifndef GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_UTILS_IMPLEMENTATION_AUTOGEN_H_
     10 #define GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_UTILS_IMPLEMENTATION_AUTOGEN_H_
     11 
     12 static const GLES2Util::EnumToString enum_to_string_table[] = {
     13   { 0x78EC, "GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM", },
     14   { 0x8825, "GL_DRAW_BUFFER0_NV", },
     15   { 0x0BC1, "GL_ALPHA_TEST_FUNC_QCOM", },
     16   { 0x884C, "GL_TEXTURE_COMPARE_MODE_EXT", },
     17   { 0x0BC2, "GL_ALPHA_TEST_REF_QCOM", },
     18   { 0x78EF, "GL_PIXEL_UNPACK_TRANSFER_BUFFER_BINDING_CHROMIUM", },
     19   { 0x884D, "GL_TEXTURE_COMPARE_FUNC_EXT", },
     20   { 0x884E, "GL_COMPARE_REF_TO_TEXTURE_EXT", },
     21   { 0x93A1, "GL_BGRA8_EXT", },
     22   { 0x8826, "GL_DRAW_BUFFER1_NV", },
     23   { 0x1E01, "GL_REPLACE", },
     24   { 0, "GL_FALSE", },
     25   { 0x00400000, "GL_STENCIL_BUFFER_BIT6_QCOM", },
     26   { 0x82E6, "GL_SAMPLER", },
     27   { 0x1E02, "GL_INCR", },
     28   { 0x9130, "GL_SGX_PROGRAM_BINARY_IMG", },
     29   { 0x9133, "GL_RENDERBUFFER_SAMPLES_IMG", },
     30   { 0x82E0, "GL_BUFFER", },
     31   { 0x9135, "GL_MAX_SAMPLES_IMG", },
     32   { 0x9134, "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG", },
     33   { 0x9136, "GL_TEXTURE_SAMPLES_IMG", },
     34   { 0x00000020, "GL_COLOR_BUFFER_BIT5_QCOM", },
     35   { 0x0008, "GL_MAP_INVALIDATE_BUFFER_BIT_EXT", },
     36   { 0x0BC0, "GL_ALPHA_TEST_QCOM", },
     37   { 0x0006, "GL_TRIANGLE_FAN", },
     38   { 0x0004, "GL_TRIANGLES", },
     39   { 0x0005, "GL_TRIANGLE_STRIP", },
     40   { 0x0002, "GL_LINE_LOOP", },
     41   { 0x0003, "GL_LINE_STRIP", },
     42   { 0x0000, "GL_POINTS", },
     43   { 0x0001, "GL_LINES", },
     44   { 0x78F0, "GL_IMAGE_ROWBYTES_CHROMIUM", },
     45   { 0x88B8, "GL_READ_ONLY", },
     46   { 0x88B9, "GL_WRITE_ONLY_OES", },
     47   { 0x8211, "GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT", },
     48   { 0x8210, "GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT", },
     49   { 0x8741, "GL_PROGRAM_BINARY_LENGTH_OES", },
     50   { 0x8740, "GL_Z400_BINARY_AMD", },
     51   { 0x8192, "GL_GENERATE_MIPMAP_HINT", },
     52   { 0x87F9, "GL_3DC_X_AMD", },
     53   { 0x8A53, "GL_SYNC_OBJECT_APPLE", },
     54   { 0x8DF8, "GL_SHADER_BINARY_FORMATS", },
     55   { 0x8DF9, "GL_NUM_SHADER_BINARY_FORMATS", },
     56   { 0x826D, "GL_DEBUG_GROUP_STACK_DEPTH", },
     57   { 0x826B, "GL_DEBUG_SEVERITY_NOTIFICATION", },
     58   { 0x826C, "GL_MAX_DEBUG_GROUP_STACK_DEPTH", },
     59   { 0x8B59, "GL_BOOL_VEC4", },
     60   { 0x8B58, "GL_BOOL_VEC3", },
     61   { 0x8B57, "GL_BOOL_VEC2", },
     62   { 0x8DF1, "GL_MEDIUM_FLOAT", },
     63   { 0x8B55, "GL_INT_VEC4", },
     64   { 0x8B54, "GL_INT_VEC3", },
     65   { 0x8DF4, "GL_MEDIUM_INT", },
     66   { 0x8DF5, "GL_HIGH_INT", },
     67   { 0x8DF6, "GL_UNSIGNED_INT_10_10_10_2_OES", },
     68   { 0x8B50, "GL_FLOAT_VEC2", },
     69   { 0x806F, "GL_TEXTURE_3D_OES", },
     70   { 0x92E0, "GL_DEBUG_OUTPUT", },
     71   { 0x806A, "GL_TEXTURE_BINDING_3D_OES", },
     72   { 0x93D9, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR", },
     73   { 0x8CE3, "GL_COLOR_ATTACHMENT3_NV", },
     74   { 0x8069, "GL_TEXTURE_BINDING_2D", },
     75   { 0x8261, "GL_NO_RESET_NOTIFICATION_EXT", },
     76   { 0x8DFA, "GL_SHADER_COMPILER", },
     77   { 0x8DFB, "GL_MAX_VERTEX_UNIFORM_VECTORS", },
     78   { 0x8DFC, "GL_MAX_VARYING_VECTORS", },
     79   { 0x8B5C, "GL_FLOAT_MAT4", },
     80   { 0x8B5B, "GL_FLOAT_MAT3", },
     81   { 0x8B5A, "GL_FLOAT_MAT2", },
     82   { 0x0D05, "GL_PACK_ALIGNMENT", },
     83   { 0x87FF, "GL_PROGRAM_BINARY_FORMATS_OES", },
     84   { 0x87FE, "GL_NUM_PROGRAM_BINARY_FORMATS_OES", },
     85   { 0x2600, "GL_NEAREST", },
     86   { 0x2601, "GL_LINEAR", },
     87   { 0x8C03, "GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG", },
     88   { 0x9242, "GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM", },
     89   { 0x88BA, "GL_READ_WRITE", },
     90   { 0x88BB, "GL_BUFFER_ACCESS_OES", },
     91   { 0x88BC, "GL_BUFFER_MAPPED_OES", },
     92   { 0x88BD, "GL_BUFFER_MAP_POINTER_OES", },
     93   { 0x0C10, "GL_SCISSOR_BOX", },
     94   { 0x0C11, "GL_SCISSOR_TEST", },
     95   { 0x80000000, "GL_MULTISAMPLE_BUFFER_BIT7_QCOM", },
     96   { 0x300E, "GL_CONTEXT_LOST", },
     97   { 0x02000000, "GL_MULTISAMPLE_BUFFER_BIT1_QCOM", },
     98   { 0x8C2F, "GL_ANY_SAMPLES_PASSED_EXT", },
     99   { 0x8BD2, "GL_TEXTURE_WIDTH_QCOM", },
    100   { 0x8BD3, "GL_TEXTURE_HEIGHT_QCOM", },
    101   { 0x8BD4, "GL_TEXTURE_DEPTH_QCOM", },
    102   { 0x8BD5, "GL_TEXTURE_INTERNAL_FORMAT_QCOM", },
    103   { 0x8BD6, "GL_TEXTURE_FORMAT_QCOM", },
    104   { 0x8BD7, "GL_TEXTURE_TYPE_QCOM", },
    105   { 0x8B8D, "GL_CURRENT_PROGRAM", },
    106   { 0x8BD9, "GL_TEXTURE_NUM_LEVELS_QCOM", },
    107   { 0x8B8A, "GL_ACTIVE_ATTRIBUTE_MAX_LENGTH", },
    108   { 0x8B8B, "GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES", },
    109   { 0x8B8C, "GL_SHADING_LANGUAGE_VERSION", },
    110   { 0x8BDA, "GL_TEXTURE_TARGET_QCOM", },
    111   { 0x8BDB, "GL_TEXTURE_OBJECT_VALID_QCOM", },
    112   { 0x8BDC, "GL_STATE_RESTORE", },
    113   { 0x8B88, "GL_SHADER_SOURCE_LENGTH", },
    114   { 0x8B89, "GL_ACTIVE_ATTRIBUTES", },
    115   { 0x8B84, "GL_INFO_LOG_LENGTH", },
    116   { 0x8B85, "GL_ATTACHED_SHADERS", },
    117   { 0x8B86, "GL_ACTIVE_UNIFORMS", },
    118   { 0x8B87, "GL_ACTIVE_UNIFORM_MAX_LENGTH", },
    119   { 0x8B80, "GL_DELETE_STATUS", },
    120   { 0x8B81, "GL_COMPILE_STATUS", },
    121   { 0x8B82, "GL_LINK_STATUS", },
    122   { 0x8B83, "GL_VALIDATE_STATUS", },
    123   { 0x93D2, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR", },
    124   { 0x8D48, "GL_STENCIL_INDEX8", },
    125   { 0x8D46, "GL_STENCIL_INDEX1_OES", },
    126   { 0x8D47, "GL_STENCIL_INDEX4_OES", },
    127   { 0x8D44, "GL_RENDERBUFFER_INTERNAL_FORMAT", },
    128   { 0x00000100, "GL_DEPTH_BUFFER_BIT", },
    129   { 0x8D42, "GL_RENDERBUFFER_WIDTH", },
    130   { 0x8D43, "GL_RENDERBUFFER_HEIGHT", },
    131   { 0x8D40, "GL_FRAMEBUFFER", },
    132   { 0x8D41, "GL_RENDERBUFFER", },
    133   { 0x0BD0, "GL_DITHER", },
    134   { 0x93D3, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR", },
    135   { 0x9144, "GL_MAX_DEBUG_LOGGED_MESSAGES", },
    136   { 0x1801, "GL_DEPTH_EXT", },
    137   { 0x1800, "GL_COLOR_EXT", },
    138   { 0x1802, "GL_STENCIL_EXT", },
    139   { 0x0B21, "GL_LINE_WIDTH", },
    140   { 0x81A5, "GL_DEPTH_COMPONENT16", },
    141   { 0x81A6, "GL_DEPTH_COMPONENT24_OES", },
    142   { 0x81A7, "GL_DEPTH_COMPONENT32_OES", },
    143   { 0x88FE, "GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE", },
    144   { 0x93D0, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR", },
    145   { 0x9143, "GL_MAX_DEBUG_MESSAGE_LENGTH", },
    146   { 0x8DFD, "GL_MAX_FRAGMENT_UNIFORM_VECTORS", },
    147   { 0x9145, "GL_DEBUG_LOGGED_MESSAGES", },
    148   { 0x9146, "GL_DEBUG_SEVERITY_HIGH", },
    149   { 0x9147, "GL_DEBUG_SEVERITY_MEDIUM", },
    150   { 0x9148, "GL_DEBUG_SEVERITY_LOW", },
    151   { 0x8F60, "GL_MALI_SHADER_BINARY_ARM", },
    152   { 0x8F61, "GL_MALI_PROGRAM_BINARY_ARM", },
    153   { 0x87EE, "GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD", },
    154   { 0x822B, "GL_RG8_EXT", },
    155   { 0x93D1, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR", },
    156   { 0x822D, "GL_R16F_EXT", },
    157   { 0x822E, "GL_R32F_EXT", },
    158   { 1, "GL_ES_VERSION_2_0", },
    159   { 0x84F9, "GL_DEPTH_STENCIL_OES", },
    160   { 0x8368, "GL_UNSIGNED_INT_2_10_10_10_REV_EXT", },
    161   { 0x8819, "GL_LUMINANCE_ALPHA32F_EXT", },
    162   { 0x8818, "GL_LUMINANCE32F_EXT", },
    163   { 0x8363, "GL_UNSIGNED_SHORT_5_6_5", },
    164   { 0x8814, "GL_RGBA32F_EXT", },
    165   { 0x84F2, "GL_ALL_COMPLETED_NV", },
    166   { 0x8816, "GL_ALPHA32F_EXT", },
    167   { 0x84F4, "GL_FENCE_CONDITION_NV", },
    168   { 0x8366, "GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT", },
    169   { 0x8365, "GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT", },
    170   { 0x881E, "GL_LUMINANCE16F_EXT", },
    171   { 0x84FA, "GL_UNSIGNED_INT_24_8_OES", },
    172   { 0x881F, "GL_LUMINANCE_ALPHA16F_EXT", },
    173   { 0x881A, "GL_RGBA16F_EXT", },
    174   { 0x84FE, "GL_TEXTURE_MAX_ANISOTROPY_EXT", },
    175   { 0x0901, "GL_CCW", },
    176   { 0x0900, "GL_CW", },
    177   { 0x8229, "GL_R8_EXT", },
    178   { 0x8227, "GL_RG_EXT", },
    179   { 0x8B62, "GL_SAMPLER_2D_SHADOW_EXT", },
    180   { 0x8B63, "GL_SAMPLER_2D_RECT_ARB", },
    181   { 0x8B60, "GL_SAMPLER_CUBE", },
    182   { 0x93D7, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR", },
    183   { 0x00001000, "GL_DEPTH_BUFFER_BIT4_QCOM", },
    184   { 0x83F0, "GL_COMPRESSED_RGB_S3TC_DXT1_EXT", },
    185   { 0x00000080, "GL_COLOR_BUFFER_BIT7_QCOM", },
    186   { 0x88F0, "GL_DEPTH24_STENCIL8_OES", },
    187   { 0x80A0, "GL_SAMPLE_COVERAGE", },
    188   { 0x93D4, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR", },
    189   { 0x822F, "GL_RG16F_EXT", },
    190   { 0x80A9, "GL_SAMPLES", },
    191   { 0x80A8, "GL_SAMPLE_BUFFERS", },
    192   { 0x0D55, "GL_ALPHA_BITS", },
    193   { 0x0D54, "GL_BLUE_BITS", },
    194   { 0x0D57, "GL_STENCIL_BITS", },
    195   { 0x0D56, "GL_DEPTH_BITS", },
    196   { 0x8CD5, "GL_FRAMEBUFFER_COMPLETE", },
    197   { 0x0D50, "GL_SUBPIXEL_BITS", },
    198   { 0x0D53, "GL_GREEN_BITS", },
    199   { 0x0D52, "GL_RED_BITS", },
    200   { 0x8037, "GL_POLYGON_OFFSET_FILL", },
    201   { 0x8034, "GL_UNSIGNED_SHORT_5_5_5_1", },
    202   { 0x8033, "GL_UNSIGNED_SHORT_4_4_4_4", },
    203   { 0x0305, "GL_ONE_MINUS_DST_ALPHA", },
    204   { 0x0304, "GL_DST_ALPHA", },
    205   { 0x0307, "GL_ONE_MINUS_DST_COLOR", },
    206   { 0x0306, "GL_DST_COLOR", },
    207   { 0x0301, "GL_ONE_MINUS_SRC_COLOR", },
    208   { 0x0300, "GL_SRC_COLOR", },
    209   { 0x0303, "GL_ONE_MINUS_SRC_ALPHA", },
    210   { 0x0302, "GL_SRC_ALPHA", },
    211   { 0x0308, "GL_SRC_ALPHA_SATURATE", },
    212   { 0x2A00, "GL_POLYGON_OFFSET_UNITS", },
    213   { 0xFFFFFFFF, "GL_ALL_SHADER_BITS_EXT", },
    214   { 0x00800000, "GL_STENCIL_BUFFER_BIT7_QCOM", },
    215   { 0x00020000, "GL_STENCIL_BUFFER_BIT1_QCOM", },
    216   { 0x8D00, "GL_DEPTH_ATTACHMENT", },
    217   { 0x8FA0, "GL_PERFMON_GLOBAL_MODE_QCOM", },
    218   { 0x8815, "GL_RGB32F_EXT", },
    219   { 0x813D, "GL_TEXTURE_MAX_LEVEL_APPLE", },
    220   { 0x84F3, "GL_FENCE_STATUS_NV", },
    221   { 0x8CDD, "GL_FRAMEBUFFER_UNSUPPORTED", },
    222   { 0x8CDF, "GL_MAX_COLOR_ATTACHMENTS_NV", },
    223   { 0x90F3, "GL_CONTEXT_ROBUST_ACCESS_EXT", },
    224   { 0x90F2, "GL_MAX_MULTIVIEW_BUFFERS_EXT", },
    225   { 0x90F1, "GL_MULTIVIEW_EXT", },
    226   { 0x90F0, "GL_COLOR_ATTACHMENT_EXT", },
    227   { 0x803C, "GL_ALPHA8_OES", },
    228   { 0x84F5, "GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM", },
    229   { 0x882A, "GL_DRAW_BUFFER5_NV", },
    230   { 0x80AA, "GL_SAMPLE_COVERAGE_VALUE", },
    231   { 0x84F6, "GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM", },
    232   { 0x80AB, "GL_SAMPLE_COVERAGE_INVERT", },
    233   { 0x8FC4, "GL_SHADER_BINARY_VIV", },
    234   { 0x882B, "GL_DRAW_BUFFER6_NV", },
    235   { 0x8C17, "GL_UNSIGNED_NORMALIZED_EXT", },
    236   { 0x8A4F, "GL_PROGRAM_PIPELINE_OBJECT_EXT", },
    237   { 0x882C, "GL_DRAW_BUFFER7_NV", },
    238   { 0x0010, "GL_MAP_FLUSH_EXPLICIT_BIT_EXT", },
    239   { 0x882D, "GL_DRAW_BUFFER8_NV", },
    240   { 0x84FF, "GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT", },
    241   { 0x0B74, "GL_DEPTH_FUNC", },
    242   { 0x881B, "GL_RGB16F_EXT", },
    243   { 0x0B71, "GL_DEPTH_TEST", },
    244   { 0x0B70, "GL_DEPTH_RANGE", },
    245   { 0x0B73, "GL_DEPTH_CLEAR_VALUE", },
    246   { 0x0B72, "GL_DEPTH_WRITEMASK", },
    247   { 0x85BA, "GL_UNSIGNED_SHORT_8_8_APPLE", },
    248   { 0x882E, "GL_DRAW_BUFFER9_NV", },
    249   { 0x8073, "GL_MAX_3D_TEXTURE_SIZE_OES", },
    250   { 0x8072, "GL_TEXTURE_WRAP_R_OES", },
    251   { 0x882F, "GL_DRAW_BUFFER10_NV", },
    252   { 0x80E1, "GL_BGRA_EXT", },
    253   { 0x8ED7, "GL_COVERAGE_AUTOMATIC_NV", },
    254   { 0x8ED6, "GL_COVERAGE_EDGE_FRAGMENTS_NV", },
    255   { 0x8ED5, "GL_COVERAGE_ALL_FRAGMENTS_NV", },
    256   { 0x8ED4, "GL_COVERAGE_SAMPLES_NV", },
    257   { 0x8ED3, "GL_COVERAGE_BUFFERS_NV", },
    258   { 0x8ED2, "GL_COVERAGE_ATTACHMENT_NV", },
    259   { 0x8ED1, "GL_COVERAGE_COMPONENT4_NV", },
    260   { 0x8ED0, "GL_COVERAGE_COMPONENT_NV", },
    261   { 0x800B, "GL_FUNC_REVERSE_SUBTRACT", },
    262   { 0x00000400, "GL_STENCIL_BUFFER_BIT", },
    263   { 0x800A, "GL_FUNC_SUBTRACT", },
    264   { 0x8E2C, "GL_DEPTH_COMPONENT16_NONLINEAR_NV", },
    265   { 0x889F, "GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", },
    266   { 0x8219, "GL_FRAMEBUFFER_UNDEFINED_OES", },
    267   { 0x8006, "GL_FUNC_ADD", },
    268   { 0x8007, "GL_MIN_EXT", },
    269   { 0x8004, "GL_ONE_MINUS_CONSTANT_ALPHA", },
    270   { 0x8005, "GL_BLEND_COLOR", },
    271   { 0x8002, "GL_ONE_MINUS_CONSTANT_COLOR", },
    272   { 0x8003, "GL_CONSTANT_ALPHA", },
    273   { 0x8000, "GL_COVERAGE_BUFFER_BIT_NV", },
    274   { 0x8001, "GL_CONSTANT_COLOR", },
    275   { 0x0204, "GL_GREATER", },
    276   { 0x0205, "GL_NOTEQUAL", },
    277   { 0x0206, "GL_GEQUAL", },
    278   { 0x0207, "GL_ALWAYS", },
    279   { 0x0200, "GL_NEVER", },
    280   { 0x0201, "GL_LESS", },
    281   { 0x0202, "GL_EQUAL", },
    282   { 0x0203, "GL_LEQUAL", },
    283   { 0x2901, "GL_REPEAT", },
    284   { 0x8B99, "GL_PALETTE8_RGB5_A1_OES", },
    285   { 0x8B98, "GL_PALETTE8_RGBA4_OES", },
    286   { 0x8FB2, "GL_GPU_OPTIMIZED_QCOM", },
    287   { 0x190A, "GL_LUMINANCE_ALPHA", },
    288   { 0x8FB0, "GL_BINNING_CONTROL_HINT_QCOM", },
    289   { 0x8FB1, "GL_CPU_OPTIMIZED_QCOM", },
    290   { 0x8B93, "GL_PALETTE4_RGBA4_OES", },
    291   { 0x8B92, "GL_PALETTE4_R5_G6_B5_OES", },
    292   { 0x8B91, "GL_PALETTE4_RGBA8_OES", },
    293   { 0x8B90, "GL_PALETTE4_RGB8_OES", },
    294   { 0x8B97, "GL_PALETTE8_R5_G6_B5_OES", },
    295   { 0x8B96, "GL_PALETTE8_RGBA8_OES", },
    296   { 0x8B95, "GL_PALETTE8_RGB8_OES", },
    297   { 0x8B94, "GL_PALETTE4_RGB5_A1_OES", },
    298   { 0x0BE2, "GL_BLEND", },
    299   { 0x84CB, "GL_TEXTURE11", },
    300   { 0x8D55, "GL_RENDERBUFFER_STENCIL_SIZE", },
    301   { 0x8D54, "GL_RENDERBUFFER_DEPTH_SIZE", },
    302   { 0x8D57, "GL_MAX_SAMPLES_ANGLE", },
    303   { 0x8D56, "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE", },
    304   { 0x8D51, "GL_RENDERBUFFER_GREEN_SIZE", },
    305   { 0x8D50, "GL_RENDERBUFFER_RED_SIZE", },
    306   { 0x8D53, "GL_RENDERBUFFER_ALPHA_SIZE", },
    307   { 0x8D52, "GL_RENDERBUFFER_BLUE_SIZE", },
    308   { 0x00080000, "GL_STENCIL_BUFFER_BIT3_QCOM", },
    309   { 0x886A, "GL_VERTEX_ATTRIB_ARRAY_NORMALIZED", },
    310   { 0x0C01, "GL_DRAW_BUFFER_EXT", },
    311   { 0x9250, "GL_SHADER_BINARY_DMP", },
    312   { 0x10000000, "GL_MULTISAMPLE_BUFFER_BIT4_QCOM", },
    313   { 0x8C92, "GL_ATC_RGB_AMD", },
    314   { 0x9154, "GL_VERTEX_ARRAY_OBJECT_EXT", },
    315   { 0x9153, "GL_QUERY_OBJECT_EXT", },
    316   { 0x9151, "GL_BUFFER_OBJECT_EXT", },
    317   { 0x8C93, "GL_ATC_RGBA_EXPLICIT_ALPHA_AMD", },
    318   { 0x00000002, "GL_CONTEXT_FLAG_DEBUG_BIT", },
    319   { 0x00000001, "GL_SYNC_FLUSH_COMMANDS_BIT_APPLE", },
    320   { 0x00000004, "GL_COLOR_BUFFER_BIT2_QCOM", },
    321   { 0x1702, "GL_TEXTURE", },
    322   { 0x00000008, "GL_COLOR_BUFFER_BIT3_QCOM", },
    323   { 0x826A, "GL_DEBUG_TYPE_POP_GROUP", },
    324   { 0x8828, "GL_DRAW_BUFFER3_NV", },
    325   { 0x8DF0, "GL_LOW_FLOAT", },
    326   { 0x1906, "GL_ALPHA", },
    327   { 0x1907, "GL_RGB", },
    328   { 0x1902, "GL_DEPTH_COMPONENT", },
    329   { 0x8B56, "GL_BOOL", },
    330   { 0x93DB, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR", },
    331   { 0x8B9B, "GL_IMPLEMENTATION_COLOR_READ_FORMAT", },
    332   { 0x8B9A, "GL_IMPLEMENTATION_COLOR_READ_TYPE", },
    333   { 0x93DA, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR", },
    334   { 0x1908, "GL_RGBA", },
    335   { 0x8DF2, "GL_HIGH_FLOAT", },
    336   { 0x93DD, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR", },
    337   { 0x8827, "GL_DRAW_BUFFER2_NV", },
    338   { 0x9243, "GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM", },
    339   { 0x8DF3, "GL_LOW_INT", },
    340   { 0x82E8, "GL_MAX_LABEL_LENGTH", },
    341   { 0x8B53, "GL_INT_VEC2", },
    342   { 0x0C02, "GL_READ_BUFFER_EXT", },
    343   { 0x82E3, "GL_QUERY", },
    344   { 0x82E2, "GL_PROGRAM", },
    345   { 0x82E1, "GL_SHADER", },
    346   { 0x8B52, "GL_FLOAT_VEC4", },
    347   { 0x9240, "GL_UNPACK_FLIP_Y_CHROMIUM", },
    348   { 0x8B51, "GL_FLOAT_VEC3", },
    349   { 0x8230, "GL_RG32F_EXT", },
    350   { 0x8DF7, "GL_INT_10_10_10_2_OES", },
    351   { 0x812F, "GL_CLAMP_TO_EDGE", },
    352   { 0x86A3, "GL_COMPRESSED_TEXTURE_FORMATS", },
    353   { 0x86A2, "GL_NUM_COMPRESSED_TEXTURE_FORMATS", },
    354   { 0x0CF3, "GL_UNPACK_SKIP_ROWS", },
    355   { 0x0CF2, "GL_UNPACK_ROW_LENGTH", },
    356   { 0x140C, "GL_FIXED", },
    357   { 0x8008, "GL_MAX_EXT", },
    358   { 0x0CF5, "GL_UNPACK_ALIGNMENT", },
    359   { 0x0CF4, "GL_UNPACK_SKIP_PIXELS", },
    360   { 0x8009, "GL_BLEND_EQUATION", },
    361   { 0x1401, "GL_UNSIGNED_BYTE", },
    362   { 0x1400, "GL_BYTE", },
    363   { 0x1403, "GL_UNSIGNED_SHORT", },
    364   { 0x1402, "GL_SHORT", },
    365   { 0x1405, "GL_UNSIGNED_INT", },
    366   { 0x1404, "GL_INT", },
    367   { 0x1406, "GL_FLOAT", },
    368   { 0x8043, "GL_LUMINANCE4_ALPHA4_OES", },
    369   { 0x8040, "GL_LUMINANCE8_OES", },
    370   { 0x8045, "GL_LUMINANCE8_ALPHA8_OES", },
    371   { 0x8CD1, "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", },
    372   { 0x00040000, "GL_STENCIL_BUFFER_BIT2_QCOM", },
    373   { 0x8CD0, "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", },
    374   { 0x8CE4, "GL_COLOR_ATTACHMENT4_NV", },
    375   { 0x8CD3, "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE", },
    376   { 0x0B90, "GL_STENCIL_TEST", },
    377   { 0x8CD2, "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", },
    378   { 0x881C, "GL_ALPHA16F_EXT", },
    379   { 0x8CD4, "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES", },
    380   { 0x8CD7, "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", },
    381   { 0x9112, "GL_OBJECT_TYPE_APPLE", },
    382   { 0x8038, "GL_POLYGON_OFFSET_FACTOR", },
    383   { 0x851A, "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z", },
    384   { 0x851C, "GL_MAX_CUBE_MAP_TEXTURE_SIZE", },
    385   { 0x8CD9, "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS", },
    386   { 0x84CC, "GL_TEXTURE12", },
    387   { 0x0BA2, "GL_VIEWPORT", },
    388   { 0x84CA, "GL_TEXTURE10", },
    389   { 0x84CF, "GL_TEXTURE15", },
    390   { 0x84CE, "GL_TEXTURE14", },
    391   { 0x84CD, "GL_TEXTURE13", },
    392   { 0x9115, "GL_SYNC_FLAGS_APPLE", },
    393   { 0x83F3, "GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE", },
    394   { 0x83F2, "GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE", },
    395   { 0x83F1, "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT", },
    396   { 0x9114, "GL_SYNC_STATUS_APPLE", },
    397   { 0x8C0A, "GL_SGX_BINARY_IMG", },
    398   { 0x911C, "GL_CONDITION_SATISFIED_APPLE", },
    399   { 0x911B, "GL_TIMEOUT_EXPIRED_APPLE", },
    400   { 0x911A, "GL_ALREADY_SIGNALED_APPLE", },
    401   { 0x911D, "GL_WAIT_FAILED_APPLE", },
    402   { 0x846D, "GL_ALIASED_POINT_SIZE_RANGE", },
    403   { 0x846E, "GL_ALIASED_LINE_WIDTH_RANGE", },
    404   { 0x9113, "GL_SYNC_CONDITION_APPLE", },
    405   { 0x93A4, "GL_PACK_REVERSE_ROW_ORDER_ANGLE", },
    406   { 0x9111, "GL_MAX_SERVER_WAIT_TIMEOUT_APPLE", },
    407   { 0x9117, "GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE", },
    408   { 0x93A0, "GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE", },
    409   { 0x93A3, "GL_FRAMEBUFFER_ATTACHMENT_ANGLE", },
    410   { 0x93A2, "GL_TEXTURE_USAGE_ANGLE", },
    411   { 0x8802, "GL_STENCIL_BACK_PASS_DEPTH_FAIL", },
    412   { 0x9119, "GL_SIGNALED_APPLE", },
    413   { 0x9118, "GL_UNSIGNALED_APPLE", },
    414   { 0x8C01, "GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG", },
    415   { 0x8C00, "GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG", },
    416   { 0x8A52, "GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT", },
    417   { 0x8C02, "GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG", },
    418   { 0x84C9, "GL_TEXTURE9", },
    419   { 0x84C8, "GL_TEXTURE8", },
    420   { 0x8869, "GL_MAX_VERTEX_ATTRIBS", },
    421   { 0x84C3, "GL_TEXTURE3", },
    422   { 0x84C2, "GL_TEXTURE2", },
    423   { 0x84C1, "GL_TEXTURE1", },
    424   { 0x84C0, "GL_TEXTURE0", },
    425   { 0x84C7, "GL_TEXTURE7", },
    426   { 0x84C6, "GL_TEXTURE6", },
    427   { 0x84C5, "GL_TEXTURE5", },
    428   { 0x8803, "GL_STENCIL_BACK_PASS_DEPTH_PASS", },
    429   { 0x8518, "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y", },
    430   { 0x8519, "GL_TEXTURE_CUBE_MAP_POSITIVE_Z", },
    431   { 0x8514, "GL_TEXTURE_BINDING_CUBE_MAP", },
    432   { 0x8515, "GL_TEXTURE_CUBE_MAP_POSITIVE_X", },
    433   { 0x8516, "GL_TEXTURE_CUBE_MAP_NEGATIVE_X", },
    434   { 0x8517, "GL_TEXTURE_CUBE_MAP_POSITIVE_Y", },
    435   { 0x8513, "GL_TEXTURE_CUBE_MAP", },
    436   { 0x8626, "GL_CURRENT_VERTEX_ATTRIB", },
    437   { 0x8765, "GL_BUFFER_USAGE", },
    438   { 0x8764, "GL_BUFFER_SIZE", },
    439   { 0x93D8, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR", },
    440   { 0x0503, "GL_STACK_OVERFLOW", },
    441   { 0x0502, "GL_INVALID_OPERATION", },
    442   { 0x0501, "GL_INVALID_VALUE", },
    443   { 0x0500, "GL_INVALID_ENUM", },
    444   { 64, "GL_MAILBOX_SIZE_CHROMIUM", },
    445   { 0x0506, "GL_INVALID_FRAMEBUFFER_OPERATION", },
    446   { 0x0505, "GL_OUT_OF_MEMORY", },
    447   { 0x8B5F, "GL_SAMPLER_3D_OES", },
    448   { 0x0B44, "GL_CULL_FACE", },
    449   { 0x8B5E, "GL_SAMPLER_2D", },
    450   { 0x0B46, "GL_FRONT_FACE", },
    451   { 0x8FB3, "GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM", },
    452   { 0x824A, "GL_DEBUG_SOURCE_APPLICATION", },
    453   { 0x824B, "GL_DEBUG_SOURCE_OTHER", },
    454   { 0x824C, "GL_DEBUG_TYPE_ERROR", },
    455   { 0x824D, "GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR", },
    456   { 0x824E, "GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR", },
    457   { 0x824F, "GL_DEBUG_TYPE_PORTABILITY", },
    458   { 0x8B31, "GL_VERTEX_SHADER", },
    459   { 0x8B30, "GL_FRAGMENT_SHADER", },
    460   { 0x1E00, "GL_KEEP", },
    461   { 0x8268, "GL_DEBUG_TYPE_MARKER", },
    462   { 0x84D8, "GL_TEXTURE24", },
    463   { 0x84D9, "GL_TEXTURE25", },
    464   { 0x84D6, "GL_TEXTURE22", },
    465   { 0x84D7, "GL_TEXTURE23", },
    466   { 0x84D4, "GL_TEXTURE20", },
    467   { 0x84D5, "GL_TEXTURE21", },
    468   { 0x84D2, "GL_TEXTURE18", },
    469   { 0x84D3, "GL_TEXTURE19", },
    470   { 0x84D0, "GL_TEXTURE16", },
    471   { 0x84D1, "GL_TEXTURE17", },
    472   { 0x1E03, "GL_DECR", },
    473   { 0x84DF, "GL_TEXTURE31", },
    474   { 0x93D6, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR", },
    475   { 0x84DD, "GL_TEXTURE29", },
    476   { 0x84DE, "GL_TEXTURE30", },
    477   { 0x84DB, "GL_TEXTURE27", },
    478   { 0x84DC, "GL_TEXTURE28", },
    479   { 0x6002, "GL_TEXTURE_POOL_UNMANAGED_CHROMIUM", },
    480   { 0x84DA, "GL_TEXTURE26", },
    481   { 0x8242, "GL_DEBUG_OUTPUT_SYNCHRONOUS", },
    482   { 0x8243, "GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH", },
    483   { 0x8244, "GL_DEBUG_CALLBACK_FUNCTION", },
    484   { 0x8245, "GL_DEBUG_CALLBACK_USER_PARAM", },
    485   { 0x8246, "GL_DEBUG_SOURCE_API", },
    486   { 0x8247, "GL_DEBUG_SOURCE_WINDOW_SYSTEM", },
    487   { 0x8248, "GL_DEBUG_SOURCE_SHADER_COMPILER", },
    488   { 0x8249, "GL_DEBUG_SOURCE_THIRD_PARTY", },
    489   { 0x93D5, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR", },
    490   { 0x00000040, "GL_COLOR_BUFFER_BIT6_QCOM", },
    491   { 0x8645, "GL_VERTEX_ATTRIB_ARRAY_POINTER", },
    492   { 0x8865, "GL_CURRENT_QUERY_EXT", },
    493   { 0x8866, "GL_QUERY_RESULT_EXT", },
    494   { 0x8867, "GL_QUERY_RESULT_AVAILABLE_EXT", },
    495   { 0x08000000, "GL_MULTISAMPLE_BUFFER_BIT3_QCOM", },
    496   { 0x87FA, "GL_3DC_XY_AMD", },
    497   { 0x84C4, "GL_TEXTURE4", },
    498   { 0x85B5, "GL_VERTEX_ARRAY_BINDING_OES", },
    499   { 0x8D6A, "GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT", },
    500   { 0x8D6C, "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT", },
    501   { 0x8252, "GL_LOSE_CONTEXT_ON_RESET_EXT", },
    502   { 0x8251, "GL_DEBUG_TYPE_OTHER", },
    503   { 0x8C40, "GL_SRGB_EXT", },
    504   { 0x8C43, "GL_SRGB8_ALPHA8_EXT", },
    505   { 0x8C42, "GL_SRGB_ALPHA_EXT", },
    506   { 0x00200000, "GL_STENCIL_BUFFER_BIT5_QCOM", },
    507   { 0x8D68, "GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES", },
    508   { 0x85BB, "GL_UNSIGNED_SHORT_8_8_REV_APPLE", },
    509   { 0x8D61, "GL_HALF_FLOAT_OES", },
    510   { 0x8D62, "GL_RGB565", },
    511   { 0x8D64, "GL_ETC1_RGB8_OES", },
    512   { 0x8D65, "GL_TEXTURE_EXTERNAL_OES", },
    513   { 0x8D66, "GL_SAMPLER_EXTERNAL_OES", },
    514   { 0x8D67, "GL_TEXTURE_BINDING_EXTERNAL_OES", },
    515   { 0x04000000, "GL_MULTISAMPLE_BUFFER_BIT2_QCOM", },
    516   { 0x8CEE, "GL_COLOR_ATTACHMENT14_NV", },
    517   { 0x2800, "GL_TEXTURE_MAG_FILTER", },
    518   { 0x2801, "GL_TEXTURE_MIN_FILTER", },
    519   { 0x2802, "GL_TEXTURE_WRAP_S", },
    520   { 0x2803, "GL_TEXTURE_WRAP_T", },
    521   { 0x2703, "GL_LINEAR_MIPMAP_LINEAR", },
    522   { 0x2702, "GL_NEAREST_MIPMAP_LINEAR", },
    523   { 0x1F03, "GL_EXTENSIONS", },
    524   { 0x1F02, "GL_VERSION", },
    525   { 0x1F01, "GL_RENDERER", },
    526   { 0x1F00, "GL_VENDOR", },
    527   { 0x2701, "GL_LINEAR_MIPMAP_NEAREST", },
    528   { 0x0B94, "GL_STENCIL_FAIL", },
    529   { 0x8B4C, "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS", },
    530   { 0x8B4D, "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS", },
    531   { 0x8B4F, "GL_SHADER_TYPE", },
    532   { 0x00004000, "GL_COLOR_BUFFER_BIT", },
    533   { 0x00000010, "GL_COLOR_BUFFER_BIT4_QCOM", },
    534   { 0x8834, "GL_DRAW_BUFFER15_NV", },
    535   { 0x8833, "GL_DRAW_BUFFER14_NV", },
    536   { 0x8832, "GL_DRAW_BUFFER13_NV", },
    537   { 0x8831, "GL_DRAW_BUFFER12_NV", },
    538   { 0x8830, "GL_DRAW_BUFFER11_NV", },
    539   { 0x93B8, "GL_COMPRESSED_RGBA_ASTC_10x5_KHR", },
    540   { 0x9241, "GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM", },
    541   { 0x00010000, "GL_STENCIL_BUFFER_BIT0_QCOM", },
    542   { 0x0B93, "GL_STENCIL_VALUE_MASK", },
    543   { 0x0B92, "GL_STENCIL_FUNC", },
    544   { 0x0B91, "GL_STENCIL_CLEAR_VALUE", },
    545   { 0x883D, "GL_BLEND_EQUATION_ALPHA", },
    546   { 0x0B97, "GL_STENCIL_REF", },
    547   { 0x0B96, "GL_STENCIL_PASS_DEPTH_PASS", },
    548   { 0x0B95, "GL_STENCIL_PASS_DEPTH_FAIL", },
    549   { 0x2700, "GL_NEAREST_MIPMAP_NEAREST", },
    550   { 0x0B98, "GL_STENCIL_WRITEMASK", },
    551   { 0x8B40, "GL_PROGRAM_OBJECT_EXT", },
    552   { 0x8B48, "GL_SHADER_OBJECT_EXT", },
    553   { 0x912F, "GL_TEXTURE_IMMUTABLE_FORMAT_EXT", },
    554   { 0x20000000, "GL_MULTISAMPLE_BUFFER_BIT5_QCOM", },
    555   { 0x0DE1, "GL_TEXTURE_2D", },
    556   { 0x80C9, "GL_BLEND_SRC_RGB", },
    557   { 0x80C8, "GL_BLEND_DST_RGB", },
    558   { 0x0504, "GL_STACK_UNDERFLOW", },
    559   { 0x8059, "GL_RGB10_A2_EXT", },
    560   { 0x8058, "GL_RGBA8_OES", },
    561   { 0x00002000, "GL_DEPTH_BUFFER_BIT5_QCOM", },
    562   { 0x8051, "GL_RGB8_OES", },
    563   { 0x8052, "GL_RGB10_EXT", },
    564   { 0x8CAB, "GL_RENDERBUFFER_SAMPLES_ANGLE", },
    565   { 0x8057, "GL_RGB5_A1", },
    566   { 0x8056, "GL_RGBA4", },
    567   { 0x150A, "GL_INVERT", },
    568   { 0x01000000, "GL_MULTISAMPLE_BUFFER_BIT0_QCOM", },
    569   { 0x78ED, "GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM", },
    570   { 0x78EE, "GL_PIXEL_PACK_TRANSFER_BUFFER_BINDING_CHROMIUM", },
    571   { 0x8269, "GL_DEBUG_TYPE_PUSH_GROUP", },
    572   { 0x0B45, "GL_CULL_FACE_MODE", },
    573   { 0x00100000, "GL_STENCIL_BUFFER_BIT4_QCOM", },
    574   { 0x8D20, "GL_STENCIL_ATTACHMENT", },
    575   { 0x00000200, "GL_DEPTH_BUFFER_BIT1_QCOM", },
    576   { 0x00008000, "GL_DEPTH_BUFFER_BIT7_QCOM", },
    577   { 0x8CA8, "GL_READ_FRAMEBUFFER_ANGLE", },
    578   { 0x8CA9, "GL_DRAW_FRAMEBUFFER_ANGLE", },
    579   { 0x8CA6, "GL_FRAMEBUFFER_BINDING", },
    580   { 0x8CA7, "GL_RENDERBUFFER_BINDING", },
    581   { 0x8CA4, "GL_STENCIL_BACK_VALUE_MASK", },
    582   { 0x8CA5, "GL_STENCIL_BACK_WRITEMASK", },
    583   { 0x8CA3, "GL_STENCIL_BACK_REF", },
    584   { 0x80CB, "GL_BLEND_SRC_ALPHA", },
    585   { 0x80CA, "GL_BLEND_DST_ALPHA", },
    586   { 0x93B0, "GL_COMPRESSED_RGBA_ASTC_4x4_KHR", },
    587   { 0x93B1, "GL_COMPRESSED_RGBA_ASTC_5x4_KHR", },
    588   { 0x93B2, "GL_COMPRESSED_RGBA_ASTC_5x5_KHR", },
    589   { 0x93B3, "GL_COMPRESSED_RGBA_ASTC_6x5_KHR", },
    590   { 0x93B4, "GL_COMPRESSED_RGBA_ASTC_6x6_KHR", },
    591   { 0x93B5, "GL_COMPRESSED_RGBA_ASTC_8x5_KHR", },
    592   { 0x93B6, "GL_COMPRESSED_RGBA_ASTC_8x6_KHR", },
    593   { 0x93B7, "GL_COMPRESSED_RGBA_ASTC_8x8_KHR", },
    594   { 0x8CD6, "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT", },
    595   { 0x93B9, "GL_COMPRESSED_RGBA_ASTC_10x6_KHR", },
    596   { 0x8253, "GL_GUILTY_CONTEXT_RESET_EXT", },
    597   { 0x8CE5, "GL_COLOR_ATTACHMENT5_NV", },
    598   { 0x8872, "GL_MAX_TEXTURE_IMAGE_UNITS", },
    599   { 0x8508, "GL_DECR_WRAP", },
    600   { 0x8507, "GL_INCR_WRAP", },
    601   { 0x8895, "GL_ELEMENT_ARRAY_BUFFER_BINDING", },
    602   { 0x8894, "GL_ARRAY_BUFFER_BINDING", },
    603   { 0x8893, "GL_ELEMENT_ARRAY_BUFFER", },
    604   { 0x8892, "GL_ARRAY_BUFFER", },
    605   { 0x8BD8, "GL_TEXTURE_IMAGE_VALID_QCOM", },
    606   { 0x93BA, "GL_COMPRESSED_RGBA_ASTC_10x8_KHR", },
    607   { 0x93BB, "GL_COMPRESSED_RGBA_ASTC_10x10_KHR", },
    608   { 0x93BC, "GL_COMPRESSED_RGBA_ASTC_12x10_KHR", },
    609   { 0x93BD, "GL_COMPRESSED_RGBA_ASTC_12x12_KHR", },
    610   { 0x84E8, "GL_MAX_RENDERBUFFER_SIZE", },
    611   { 0x8370, "GL_MIRRORED_REPEAT", },
    612   { 0x84E0, "GL_ACTIVE_TEXTURE", },
    613   { 0x8800, "GL_STENCIL_BACK_FUNC", },
    614   { 0x8801, "GL_STENCIL_BACK_FAIL", },
    615   { 0x0D33, "GL_MAX_TEXTURE_SIZE", },
    616   { 0x8624, "GL_VERTEX_ATTRIB_ARRAY_STRIDE", },
    617   { 0x8625, "GL_VERTEX_ATTRIB_ARRAY_TYPE", },
    618   { 0x8622, "GL_VERTEX_ATTRIB_ARRAY_ENABLED", },
    619   { 0x8623, "GL_VERTEX_ATTRIB_ARRAY_SIZE", },
    620   { 0x8259, "GL_ACTIVE_PROGRAM_EXT", },
    621   { 0x8258, "GL_PROGRAM_SEPARABLE_EXT", },
    622   { 0x8256, "GL_RESET_NOTIFICATION_STRATEGY_EXT", },
    623   { 0x8255, "GL_UNKNOWN_CONTEXT_RESET_EXT", },
    624   { 0x8254, "GL_INNOCENT_CONTEXT_RESET_EXT", },
    625   { 0x1100, "GL_DONT_CARE", },
    626   { 0x1101, "GL_FASTEST", },
    627   { 0x1102, "GL_NICEST", },
    628   { 0x8250, "GL_DEBUG_TYPE_PERFORMANCE", },
    629   { 0x8CEB, "GL_COLOR_ATTACHMENT11_NV", },
    630   { 0x8CEC, "GL_COLOR_ATTACHMENT12_NV", },
    631   { 0x0408, "GL_FRONT_AND_BACK", },
    632   { 0x8CEA, "GL_COLOR_ATTACHMENT10_NV", },
    633   { 0x8CEF, "GL_COLOR_ATTACHMENT15_NV", },
    634   { 0x8CED, "GL_COLOR_ATTACHMENT13_NV", },
    635   { 0x8829, "GL_DRAW_BUFFER4_NV", },
    636   { 0x0404, "GL_FRONT", },
    637   { 0x0405, "GL_BACK", },
    638   { 0x88E1, "GL_STREAM_READ", },
    639   { 0x88E0, "GL_STREAM_DRAW", },
    640   { 0x88E4, "GL_STATIC_DRAW", },
    641   { 0x88E8, "GL_DYNAMIC_DRAW", },
    642   { 0x8CAA, "GL_READ_FRAMEBUFFER_BINDING_ANGLE", },
    643   { 0x40000000, "GL_MULTISAMPLE_BUFFER_BIT6_QCOM", },
    644   { 0x9116, "GL_SYNC_FENCE_APPLE", },
    645   { 0x6000, "GL_TEXTURE_POOL_CHROMIUM", },
    646   { 0x00000800, "GL_DEPTH_BUFFER_BIT3_QCOM", },
    647   { 0x1903, "GL_RED_EXT", },
    648   { 0x6001, "GL_TEXTURE_POOL_MANAGED_CHROMIUM", },
    649   { 0x8CE2, "GL_COLOR_ATTACHMENT2_NV", },
    650   { 0x8BC1, "GL_COUNTER_RANGE_AMD", },
    651   { 0x8CE0, "GL_COLOR_ATTACHMENT0", },
    652   { 0x8CE1, "GL_COLOR_ATTACHMENT1_NV", },
    653   { 0x8CE6, "GL_COLOR_ATTACHMENT6_NV", },
    654   { 0x8CE7, "GL_COLOR_ATTACHMENT7_NV", },
    655   { 0x8A1F, "GL_RGB_422_APPLE", },
    656   { 0x93DC, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR", },
    657   { 0x8CE8, "GL_COLOR_ATTACHMENT8_NV", },
    658   { 0x8CE9, "GL_COLOR_ATTACHMENT9_NV", },
    659   { 0x0C23, "GL_COLOR_WRITEMASK", },
    660   { 0x0C22, "GL_COLOR_CLEAR_VALUE", },
    661   { 0x8823, "GL_WRITEONLY_RENDERING_QCOM", },
    662   { 0x8824, "GL_MAX_DRAW_BUFFERS_NV", },
    663   { 0x825A, "GL_PROGRAM_PIPELINE_BINDING_EXT", },
    664   { 0x1909, "GL_LUMINANCE", },
    665   { 0x0D3A, "GL_MAX_VIEWPORT_DIMS", },
    666   { 0x0020, "GL_MAP_UNSYNCHRONIZED_BIT_EXT", },
    667   { 0x809E, "GL_SAMPLE_ALPHA_TO_COVERAGE", },
    668   { 0x8BC0, "GL_COUNTER_TYPE_AMD", },
    669   { 0x8BC3, "GL_PERCENTAGE_AMD", },
    670   { 0x8BC2, "GL_UNSIGNED_INT64_AMD", },
    671   { 0x8BC5, "GL_PERFMON_RESULT_SIZE_AMD", },
    672   { 0x8BC4, "GL_PERFMON_RESULT_AVAILABLE_AMD", },
    673   { 0x8BC6, "GL_PERFMON_RESULT_AMD", },
    674 };
    675 
    676 const GLES2Util::EnumToString* const GLES2Util::enum_to_string_table_ =
    677     enum_to_string_table;
    678 const size_t GLES2Util::enum_to_string_table_len_ =
    679     sizeof(enum_to_string_table) / sizeof(enum_to_string_table[0]);
    680 
    681 std::string GLES2Util::GetStringAttachment(uint32 value) {
    682   static const EnumToString string_table[] = {
    683     { GL_COLOR_ATTACHMENT0, "GL_COLOR_ATTACHMENT0" },
    684     { GL_DEPTH_ATTACHMENT, "GL_DEPTH_ATTACHMENT" },
    685     { GL_STENCIL_ATTACHMENT, "GL_STENCIL_ATTACHMENT" },
    686   };
    687   return GLES2Util::GetQualifiedEnumString(
    688       string_table, arraysize(string_table), value);
    689 }
    690 
    691 std::string GLES2Util::GetStringBackbufferAttachment(uint32 value) {
    692   static const EnumToString string_table[] = {
    693     { GL_COLOR_EXT, "GL_COLOR_EXT" },
    694     { GL_DEPTH_EXT, "GL_DEPTH_EXT" },
    695     { GL_STENCIL_EXT, "GL_STENCIL_EXT" },
    696   };
    697   return GLES2Util::GetQualifiedEnumString(
    698       string_table, arraysize(string_table), value);
    699 }
    700 
    701 std::string GLES2Util::GetStringBlitFilter(uint32 value) {
    702   static const EnumToString string_table[] = {
    703     { GL_NEAREST, "GL_NEAREST" },
    704     { GL_LINEAR, "GL_LINEAR" },
    705   };
    706   return GLES2Util::GetQualifiedEnumString(
    707       string_table, arraysize(string_table), value);
    708 }
    709 
    710 std::string GLES2Util::GetStringBufferParameter(uint32 value) {
    711   static const EnumToString string_table[] = {
    712     { GL_BUFFER_SIZE, "GL_BUFFER_SIZE" },
    713     { GL_BUFFER_USAGE, "GL_BUFFER_USAGE" },
    714   };
    715   return GLES2Util::GetQualifiedEnumString(
    716       string_table, arraysize(string_table), value);
    717 }
    718 
    719 std::string GLES2Util::GetStringBufferTarget(uint32 value) {
    720   static const EnumToString string_table[] = {
    721     { GL_ARRAY_BUFFER, "GL_ARRAY_BUFFER" },
    722     { GL_ELEMENT_ARRAY_BUFFER, "GL_ELEMENT_ARRAY_BUFFER" },
    723   };
    724   return GLES2Util::GetQualifiedEnumString(
    725       string_table, arraysize(string_table), value);
    726 }
    727 
    728 std::string GLES2Util::GetStringBufferUsage(uint32 value) {
    729   static const EnumToString string_table[] = {
    730     { GL_STREAM_DRAW, "GL_STREAM_DRAW" },
    731     { GL_STATIC_DRAW, "GL_STATIC_DRAW" },
    732     { GL_DYNAMIC_DRAW, "GL_DYNAMIC_DRAW" },
    733   };
    734   return GLES2Util::GetQualifiedEnumString(
    735       string_table, arraysize(string_table), value);
    736 }
    737 
    738 std::string GLES2Util::GetStringCapability(uint32 value) {
    739   static const EnumToString string_table[] = {
    740     { GL_BLEND, "GL_BLEND" },
    741     { GL_CULL_FACE, "GL_CULL_FACE" },
    742     { GL_DEPTH_TEST, "GL_DEPTH_TEST" },
    743     { GL_DITHER, "GL_DITHER" },
    744     { GL_POLYGON_OFFSET_FILL, "GL_POLYGON_OFFSET_FILL" },
    745     { GL_SAMPLE_ALPHA_TO_COVERAGE, "GL_SAMPLE_ALPHA_TO_COVERAGE" },
    746     { GL_SAMPLE_COVERAGE, "GL_SAMPLE_COVERAGE" },
    747     { GL_SCISSOR_TEST, "GL_SCISSOR_TEST" },
    748     { GL_STENCIL_TEST, "GL_STENCIL_TEST" },
    749   };
    750   return GLES2Util::GetQualifiedEnumString(
    751       string_table, arraysize(string_table), value);
    752 }
    753 
    754 std::string GLES2Util::GetStringCmpFunction(uint32 value) {
    755   static const EnumToString string_table[] = {
    756     { GL_NEVER, "GL_NEVER" },
    757     { GL_LESS, "GL_LESS" },
    758     { GL_EQUAL, "GL_EQUAL" },
    759     { GL_LEQUAL, "GL_LEQUAL" },
    760     { GL_GREATER, "GL_GREATER" },
    761     { GL_NOTEQUAL, "GL_NOTEQUAL" },
    762     { GL_GEQUAL, "GL_GEQUAL" },
    763     { GL_ALWAYS, "GL_ALWAYS" },
    764   };
    765   return GLES2Util::GetQualifiedEnumString(
    766       string_table, arraysize(string_table), value);
    767 }
    768 
    769 std::string GLES2Util::GetStringCompressedTextureFormat(uint32 value) {
    770   return GLES2Util::GetQualifiedEnumString(
    771       NULL, 0, value);
    772 }
    773 
    774 std::string GLES2Util::GetStringDrawMode(uint32 value) {
    775   static const EnumToString string_table[] = {
    776     { GL_POINTS, "GL_POINTS" },
    777     { GL_LINE_STRIP, "GL_LINE_STRIP" },
    778     { GL_LINE_LOOP, "GL_LINE_LOOP" },
    779     { GL_LINES, "GL_LINES" },
    780     { GL_TRIANGLE_STRIP, "GL_TRIANGLE_STRIP" },
    781     { GL_TRIANGLE_FAN, "GL_TRIANGLE_FAN" },
    782     { GL_TRIANGLES, "GL_TRIANGLES" },
    783   };
    784   return GLES2Util::GetQualifiedEnumString(
    785       string_table, arraysize(string_table), value);
    786 }
    787 
    788 std::string GLES2Util::GetStringDstBlendFactor(uint32 value) {
    789   static const EnumToString string_table[] = {
    790     { GL_ZERO, "GL_ZERO" },
    791     { GL_ONE, "GL_ONE" },
    792     { GL_SRC_COLOR, "GL_SRC_COLOR" },
    793     { GL_ONE_MINUS_SRC_COLOR, "GL_ONE_MINUS_SRC_COLOR" },
    794     { GL_DST_COLOR, "GL_DST_COLOR" },
    795     { GL_ONE_MINUS_DST_COLOR, "GL_ONE_MINUS_DST_COLOR" },
    796     { GL_SRC_ALPHA, "GL_SRC_ALPHA" },
    797     { GL_ONE_MINUS_SRC_ALPHA, "GL_ONE_MINUS_SRC_ALPHA" },
    798     { GL_DST_ALPHA, "GL_DST_ALPHA" },
    799     { GL_ONE_MINUS_DST_ALPHA, "GL_ONE_MINUS_DST_ALPHA" },
    800     { GL_CONSTANT_COLOR, "GL_CONSTANT_COLOR" },
    801     { GL_ONE_MINUS_CONSTANT_COLOR, "GL_ONE_MINUS_CONSTANT_COLOR" },
    802     { GL_CONSTANT_ALPHA, "GL_CONSTANT_ALPHA" },
    803     { GL_ONE_MINUS_CONSTANT_ALPHA, "GL_ONE_MINUS_CONSTANT_ALPHA" },
    804   };
    805   return GLES2Util::GetQualifiedEnumString(
    806       string_table, arraysize(string_table), value);
    807 }
    808 
    809 std::string GLES2Util::GetStringEquation(uint32 value) {
    810   static const EnumToString string_table[] = {
    811     { GL_FUNC_ADD, "GL_FUNC_ADD" },
    812     { GL_FUNC_SUBTRACT, "GL_FUNC_SUBTRACT" },
    813     { GL_FUNC_REVERSE_SUBTRACT, "GL_FUNC_REVERSE_SUBTRACT" },
    814   };
    815   return GLES2Util::GetQualifiedEnumString(
    816       string_table, arraysize(string_table), value);
    817 }
    818 
    819 std::string GLES2Util::GetStringFaceMode(uint32 value) {
    820   static const EnumToString string_table[] = {
    821     { GL_CW, "GL_CW" },
    822     { GL_CCW, "GL_CCW" },
    823   };
    824   return GLES2Util::GetQualifiedEnumString(
    825       string_table, arraysize(string_table), value);
    826 }
    827 
    828 std::string GLES2Util::GetStringFaceType(uint32 value) {
    829   static const EnumToString string_table[] = {
    830     { GL_FRONT, "GL_FRONT" },
    831     { GL_BACK, "GL_BACK" },
    832     { GL_FRONT_AND_BACK, "GL_FRONT_AND_BACK" },
    833   };
    834   return GLES2Util::GetQualifiedEnumString(
    835       string_table, arraysize(string_table), value);
    836 }
    837 
    838 std::string GLES2Util::GetStringFrameBufferParameter(uint32 value) {
    839   static const EnumToString string_table[] = {
    840     { GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
    841     "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE" },
    842     { GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
    843     "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" },
    844     { GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
    845     "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" },
    846     { GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
    847     "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" },
    848   };
    849   return GLES2Util::GetQualifiedEnumString(
    850       string_table, arraysize(string_table), value);
    851 }
    852 
    853 std::string GLES2Util::GetStringFrameBufferTarget(uint32 value) {
    854   static const EnumToString string_table[] = {
    855     { GL_FRAMEBUFFER, "GL_FRAMEBUFFER" },
    856   };
    857   return GLES2Util::GetQualifiedEnumString(
    858       string_table, arraysize(string_table), value);
    859 }
    860 
    861 std::string GLES2Util::GetStringGLState(uint32 value) {
    862   static const EnumToString string_table[] = {
    863     { GL_ACTIVE_TEXTURE, "GL_ACTIVE_TEXTURE" },
    864     { GL_ALIASED_LINE_WIDTH_RANGE, "GL_ALIASED_LINE_WIDTH_RANGE" },
    865     { GL_ALIASED_POINT_SIZE_RANGE, "GL_ALIASED_POINT_SIZE_RANGE" },
    866     { GL_ALPHA_BITS, "GL_ALPHA_BITS" },
    867     { GL_ARRAY_BUFFER_BINDING, "GL_ARRAY_BUFFER_BINDING" },
    868     { GL_BLUE_BITS, "GL_BLUE_BITS" },
    869     { GL_COMPRESSED_TEXTURE_FORMATS, "GL_COMPRESSED_TEXTURE_FORMATS" },
    870     { GL_CURRENT_PROGRAM, "GL_CURRENT_PROGRAM" },
    871     { GL_DEPTH_BITS, "GL_DEPTH_BITS" },
    872     { GL_DEPTH_RANGE, "GL_DEPTH_RANGE" },
    873     { GL_ELEMENT_ARRAY_BUFFER_BINDING, "GL_ELEMENT_ARRAY_BUFFER_BINDING" },
    874     { GL_FRAMEBUFFER_BINDING, "GL_FRAMEBUFFER_BINDING" },
    875     { GL_GENERATE_MIPMAP_HINT, "GL_GENERATE_MIPMAP_HINT" },
    876     { GL_GREEN_BITS, "GL_GREEN_BITS" },
    877     { GL_IMPLEMENTATION_COLOR_READ_FORMAT,
    878     "GL_IMPLEMENTATION_COLOR_READ_FORMAT" },
    879     { GL_IMPLEMENTATION_COLOR_READ_TYPE, "GL_IMPLEMENTATION_COLOR_READ_TYPE" },
    880     { GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
    881     "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS" },
    882     { GL_MAX_CUBE_MAP_TEXTURE_SIZE, "GL_MAX_CUBE_MAP_TEXTURE_SIZE" },
    883     { GL_MAX_FRAGMENT_UNIFORM_VECTORS, "GL_MAX_FRAGMENT_UNIFORM_VECTORS" },
    884     { GL_MAX_RENDERBUFFER_SIZE, "GL_MAX_RENDERBUFFER_SIZE" },
    885     { GL_MAX_TEXTURE_IMAGE_UNITS, "GL_MAX_TEXTURE_IMAGE_UNITS" },
    886     { GL_MAX_TEXTURE_SIZE, "GL_MAX_TEXTURE_SIZE" },
    887     { GL_MAX_VARYING_VECTORS, "GL_MAX_VARYING_VECTORS" },
    888     { GL_MAX_VERTEX_ATTRIBS, "GL_MAX_VERTEX_ATTRIBS" },
    889     { GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS" },
    890     { GL_MAX_VERTEX_UNIFORM_VECTORS, "GL_MAX_VERTEX_UNIFORM_VECTORS" },
    891     { GL_MAX_VIEWPORT_DIMS, "GL_MAX_VIEWPORT_DIMS" },
    892     { GL_NUM_COMPRESSED_TEXTURE_FORMATS, "GL_NUM_COMPRESSED_TEXTURE_FORMATS" },
    893     { GL_NUM_SHADER_BINARY_FORMATS, "GL_NUM_SHADER_BINARY_FORMATS" },
    894     { GL_PACK_ALIGNMENT, "GL_PACK_ALIGNMENT" },
    895     { GL_RED_BITS, "GL_RED_BITS" },
    896     { GL_RENDERBUFFER_BINDING, "GL_RENDERBUFFER_BINDING" },
    897     { GL_SAMPLE_BUFFERS, "GL_SAMPLE_BUFFERS" },
    898     { GL_SAMPLE_COVERAGE_INVERT, "GL_SAMPLE_COVERAGE_INVERT" },
    899     { GL_SAMPLE_COVERAGE_VALUE, "GL_SAMPLE_COVERAGE_VALUE" },
    900     { GL_SAMPLES, "GL_SAMPLES" },
    901     { GL_SCISSOR_BOX, "GL_SCISSOR_BOX" },
    902     { GL_SHADER_BINARY_FORMATS, "GL_SHADER_BINARY_FORMATS" },
    903     { GL_SHADER_COMPILER, "GL_SHADER_COMPILER" },
    904     { GL_SUBPIXEL_BITS, "GL_SUBPIXEL_BITS" },
    905     { GL_STENCIL_BITS, "GL_STENCIL_BITS" },
    906     { GL_TEXTURE_BINDING_2D, "GL_TEXTURE_BINDING_2D" },
    907     { GL_TEXTURE_BINDING_CUBE_MAP, "GL_TEXTURE_BINDING_CUBE_MAP" },
    908     { GL_UNPACK_ALIGNMENT, "GL_UNPACK_ALIGNMENT" },
    909     { GL_UNPACK_FLIP_Y_CHROMIUM, "GL_UNPACK_FLIP_Y_CHROMIUM" },
    910     { GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM,
    911     "GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM" },
    912     { GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM,
    913     "GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM" },
    914     { GL_VERTEX_ARRAY_BINDING_OES, "GL_VERTEX_ARRAY_BINDING_OES" },
    915     { GL_VIEWPORT, "GL_VIEWPORT" },
    916     { GL_BLEND_COLOR, "GL_BLEND_COLOR" },
    917     { GL_BLEND_EQUATION_RGB, "GL_BLEND_EQUATION_RGB" },
    918     { GL_BLEND_EQUATION_ALPHA, "GL_BLEND_EQUATION_ALPHA" },
    919     { GL_BLEND_SRC_RGB, "GL_BLEND_SRC_RGB" },
    920     { GL_BLEND_DST_RGB, "GL_BLEND_DST_RGB" },
    921     { GL_BLEND_SRC_ALPHA, "GL_BLEND_SRC_ALPHA" },
    922     { GL_BLEND_DST_ALPHA, "GL_BLEND_DST_ALPHA" },
    923     { GL_COLOR_CLEAR_VALUE, "GL_COLOR_CLEAR_VALUE" },
    924     { GL_DEPTH_CLEAR_VALUE, "GL_DEPTH_CLEAR_VALUE" },
    925     { GL_STENCIL_CLEAR_VALUE, "GL_STENCIL_CLEAR_VALUE" },
    926     { GL_COLOR_WRITEMASK, "GL_COLOR_WRITEMASK" },
    927     { GL_CULL_FACE_MODE, "GL_CULL_FACE_MODE" },
    928     { GL_DEPTH_FUNC, "GL_DEPTH_FUNC" },
    929     { GL_DEPTH_WRITEMASK, "GL_DEPTH_WRITEMASK" },
    930     { GL_DEPTH_RANGE, "GL_DEPTH_RANGE" },
    931     { GL_FRONT_FACE, "GL_FRONT_FACE" },
    932     { GL_GENERATE_MIPMAP_HINT, "GL_GENERATE_MIPMAP_HINT" },
    933     { GL_LINE_WIDTH, "GL_LINE_WIDTH" },
    934     { GL_PACK_ALIGNMENT, "GL_PACK_ALIGNMENT" },
    935     { GL_UNPACK_ALIGNMENT, "GL_UNPACK_ALIGNMENT" },
    936     { GL_POLYGON_OFFSET_FACTOR, "GL_POLYGON_OFFSET_FACTOR" },
    937     { GL_POLYGON_OFFSET_UNITS, "GL_POLYGON_OFFSET_UNITS" },
    938     { GL_SAMPLE_COVERAGE_VALUE, "GL_SAMPLE_COVERAGE_VALUE" },
    939     { GL_SAMPLE_COVERAGE_INVERT, "GL_SAMPLE_COVERAGE_INVERT" },
    940     { GL_SCISSOR_BOX, "GL_SCISSOR_BOX" },
    941     { GL_STENCIL_FUNC, "GL_STENCIL_FUNC" },
    942     { GL_STENCIL_REF, "GL_STENCIL_REF" },
    943     { GL_STENCIL_VALUE_MASK, "GL_STENCIL_VALUE_MASK" },
    944     { GL_STENCIL_BACK_FUNC, "GL_STENCIL_BACK_FUNC" },
    945     { GL_STENCIL_BACK_REF, "GL_STENCIL_BACK_REF" },
    946     { GL_STENCIL_BACK_VALUE_MASK, "GL_STENCIL_BACK_VALUE_MASK" },
    947     { GL_STENCIL_WRITEMASK, "GL_STENCIL_WRITEMASK" },
    948     { GL_STENCIL_BACK_WRITEMASK, "GL_STENCIL_BACK_WRITEMASK" },
    949     { GL_STENCIL_FAIL, "GL_STENCIL_FAIL" },
    950     { GL_STENCIL_PASS_DEPTH_FAIL, "GL_STENCIL_PASS_DEPTH_FAIL" },
    951     { GL_STENCIL_PASS_DEPTH_PASS, "GL_STENCIL_PASS_DEPTH_PASS" },
    952     { GL_STENCIL_BACK_FAIL, "GL_STENCIL_BACK_FAIL" },
    953     { GL_STENCIL_BACK_PASS_DEPTH_FAIL, "GL_STENCIL_BACK_PASS_DEPTH_FAIL" },
    954     { GL_STENCIL_BACK_PASS_DEPTH_PASS, "GL_STENCIL_BACK_PASS_DEPTH_PASS" },
    955     { GL_VIEWPORT, "GL_VIEWPORT" },
    956     { GL_BLEND, "GL_BLEND" },
    957     { GL_CULL_FACE, "GL_CULL_FACE" },
    958     { GL_DEPTH_TEST, "GL_DEPTH_TEST" },
    959     { GL_DITHER, "GL_DITHER" },
    960     { GL_POLYGON_OFFSET_FILL, "GL_POLYGON_OFFSET_FILL" },
    961     { GL_SAMPLE_ALPHA_TO_COVERAGE, "GL_SAMPLE_ALPHA_TO_COVERAGE" },
    962     { GL_SAMPLE_COVERAGE, "GL_SAMPLE_COVERAGE" },
    963     { GL_SCISSOR_TEST, "GL_SCISSOR_TEST" },
    964     { GL_STENCIL_TEST, "GL_STENCIL_TEST" },
    965   };
    966   return GLES2Util::GetQualifiedEnumString(
    967       string_table, arraysize(string_table), value);
    968 }
    969 
    970 std::string GLES2Util::GetStringGetMaxIndexType(uint32 value) {
    971   static const EnumToString string_table[] = {
    972     { GL_UNSIGNED_BYTE, "GL_UNSIGNED_BYTE" },
    973     { GL_UNSIGNED_SHORT, "GL_UNSIGNED_SHORT" },
    974     { GL_UNSIGNED_INT, "GL_UNSIGNED_INT" },
    975   };
    976   return GLES2Util::GetQualifiedEnumString(
    977       string_table, arraysize(string_table), value);
    978 }
    979 
    980 std::string GLES2Util::GetStringGetTexParamTarget(uint32 value) {
    981   static const EnumToString string_table[] = {
    982     { GL_TEXTURE_2D, "GL_TEXTURE_2D" },
    983     { GL_TEXTURE_CUBE_MAP, "GL_TEXTURE_CUBE_MAP" },
    984   };
    985   return GLES2Util::GetQualifiedEnumString(
    986       string_table, arraysize(string_table), value);
    987 }
    988 
    989 std::string GLES2Util::GetStringHintMode(uint32 value) {
    990   static const EnumToString string_table[] = {
    991     { GL_FASTEST, "GL_FASTEST" },
    992     { GL_NICEST, "GL_NICEST" },
    993     { GL_DONT_CARE, "GL_DONT_CARE" },
    994   };
    995   return GLES2Util::GetQualifiedEnumString(
    996       string_table, arraysize(string_table), value);
    997 }
    998 
    999 std::string GLES2Util::GetStringHintTarget(uint32 value) {
   1000   static const EnumToString string_table[] = {
   1001     { GL_GENERATE_MIPMAP_HINT, "GL_GENERATE_MIPMAP_HINT" },
   1002   };
   1003   return GLES2Util::GetQualifiedEnumString(
   1004       string_table, arraysize(string_table), value);
   1005 }
   1006 
   1007 std::string GLES2Util::GetStringIndexType(uint32 value) {
   1008   static const EnumToString string_table[] = {
   1009     { GL_UNSIGNED_BYTE, "GL_UNSIGNED_BYTE" },
   1010     { GL_UNSIGNED_SHORT, "GL_UNSIGNED_SHORT" },
   1011   };
   1012   return GLES2Util::GetQualifiedEnumString(
   1013       string_table, arraysize(string_table), value);
   1014 }
   1015 
   1016 std::string GLES2Util::GetStringPixelStore(uint32 value) {
   1017   static const EnumToString string_table[] = {
   1018     { GL_PACK_ALIGNMENT, "GL_PACK_ALIGNMENT" },
   1019     { GL_UNPACK_ALIGNMENT, "GL_UNPACK_ALIGNMENT" },
   1020     { GL_UNPACK_FLIP_Y_CHROMIUM, "GL_UNPACK_FLIP_Y_CHROMIUM" },
   1021     { GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM,
   1022     "GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM" },
   1023     { GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM,
   1024     "GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM" },
   1025   };
   1026   return GLES2Util::GetQualifiedEnumString(
   1027       string_table, arraysize(string_table), value);
   1028 }
   1029 
   1030 std::string GLES2Util::GetStringPixelType(uint32 value) {
   1031   static const EnumToString string_table[] = {
   1032     { GL_UNSIGNED_BYTE, "GL_UNSIGNED_BYTE" },
   1033     { GL_UNSIGNED_SHORT_5_6_5, "GL_UNSIGNED_SHORT_5_6_5" },
   1034     { GL_UNSIGNED_SHORT_4_4_4_4, "GL_UNSIGNED_SHORT_4_4_4_4" },
   1035     { GL_UNSIGNED_SHORT_5_5_5_1, "GL_UNSIGNED_SHORT_5_5_5_1" },
   1036   };
   1037   return GLES2Util::GetQualifiedEnumString(
   1038       string_table, arraysize(string_table), value);
   1039 }
   1040 
   1041 std::string GLES2Util::GetStringProgramParameter(uint32 value) {
   1042   static const EnumToString string_table[] = {
   1043     { GL_DELETE_STATUS, "GL_DELETE_STATUS" },
   1044     { GL_LINK_STATUS, "GL_LINK_STATUS" },
   1045     { GL_VALIDATE_STATUS, "GL_VALIDATE_STATUS" },
   1046     { GL_INFO_LOG_LENGTH, "GL_INFO_LOG_LENGTH" },
   1047     { GL_ATTACHED_SHADERS, "GL_ATTACHED_SHADERS" },
   1048     { GL_ACTIVE_ATTRIBUTES, "GL_ACTIVE_ATTRIBUTES" },
   1049     { GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, "GL_ACTIVE_ATTRIBUTE_MAX_LENGTH" },
   1050     { GL_ACTIVE_UNIFORMS, "GL_ACTIVE_UNIFORMS" },
   1051     { GL_ACTIVE_UNIFORM_MAX_LENGTH, "GL_ACTIVE_UNIFORM_MAX_LENGTH" },
   1052   };
   1053   return GLES2Util::GetQualifiedEnumString(
   1054       string_table, arraysize(string_table), value);
   1055 }
   1056 
   1057 std::string GLES2Util::GetStringQueryObjectParameter(uint32 value) {
   1058   static const EnumToString string_table[] = {
   1059     { GL_QUERY_RESULT_EXT, "GL_QUERY_RESULT_EXT" },
   1060     { GL_QUERY_RESULT_AVAILABLE_EXT, "GL_QUERY_RESULT_AVAILABLE_EXT" },
   1061   };
   1062   return GLES2Util::GetQualifiedEnumString(
   1063       string_table, arraysize(string_table), value);
   1064 }
   1065 
   1066 std::string GLES2Util::GetStringQueryParameter(uint32 value) {
   1067   static const EnumToString string_table[] = {
   1068     { GL_CURRENT_QUERY_EXT, "GL_CURRENT_QUERY_EXT" },
   1069   };
   1070   return GLES2Util::GetQualifiedEnumString(
   1071       string_table, arraysize(string_table), value);
   1072 }
   1073 
   1074 std::string GLES2Util::GetStringQueryTarget(uint32 value) {
   1075   static const EnumToString string_table[] = {
   1076     { GL_ANY_SAMPLES_PASSED_EXT, "GL_ANY_SAMPLES_PASSED_EXT" },
   1077     { GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT,
   1078     "GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT" },
   1079     { GL_COMMANDS_ISSUED_CHROMIUM, "GL_COMMANDS_ISSUED_CHROMIUM" },
   1080     { GL_LATENCY_QUERY_CHROMIUM, "GL_LATENCY_QUERY_CHROMIUM" },
   1081     { GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM,
   1082     "GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM" },
   1083     { GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM,
   1084     "GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM" },
   1085   };
   1086   return GLES2Util::GetQualifiedEnumString(
   1087       string_table, arraysize(string_table), value);
   1088 }
   1089 
   1090 std::string GLES2Util::GetStringReadPixelFormat(uint32 value) {
   1091   static const EnumToString string_table[] = {
   1092     { GL_ALPHA, "GL_ALPHA" },
   1093     { GL_RGB, "GL_RGB" },
   1094     { GL_RGBA, "GL_RGBA" },
   1095   };
   1096   return GLES2Util::GetQualifiedEnumString(
   1097       string_table, arraysize(string_table), value);
   1098 }
   1099 
   1100 std::string GLES2Util::GetStringReadPixelType(uint32 value) {
   1101   static const EnumToString string_table[] = {
   1102     { GL_UNSIGNED_BYTE, "GL_UNSIGNED_BYTE" },
   1103     { GL_UNSIGNED_SHORT_5_6_5, "GL_UNSIGNED_SHORT_5_6_5" },
   1104     { GL_UNSIGNED_SHORT_4_4_4_4, "GL_UNSIGNED_SHORT_4_4_4_4" },
   1105     { GL_UNSIGNED_SHORT_5_5_5_1, "GL_UNSIGNED_SHORT_5_5_5_1" },
   1106   };
   1107   return GLES2Util::GetQualifiedEnumString(
   1108       string_table, arraysize(string_table), value);
   1109 }
   1110 
   1111 std::string GLES2Util::GetStringRenderBufferFormat(uint32 value) {
   1112   static const EnumToString string_table[] = {
   1113     { GL_RGBA4, "GL_RGBA4" },
   1114     { GL_RGB565, "GL_RGB565" },
   1115     { GL_RGB5_A1, "GL_RGB5_A1" },
   1116     { GL_DEPTH_COMPONENT16, "GL_DEPTH_COMPONENT16" },
   1117     { GL_STENCIL_INDEX8, "GL_STENCIL_INDEX8" },
   1118   };
   1119   return GLES2Util::GetQualifiedEnumString(
   1120       string_table, arraysize(string_table), value);
   1121 }
   1122 
   1123 std::string GLES2Util::GetStringRenderBufferParameter(uint32 value) {
   1124   static const EnumToString string_table[] = {
   1125     { GL_RENDERBUFFER_RED_SIZE, "GL_RENDERBUFFER_RED_SIZE" },
   1126     { GL_RENDERBUFFER_GREEN_SIZE, "GL_RENDERBUFFER_GREEN_SIZE" },
   1127     { GL_RENDERBUFFER_BLUE_SIZE, "GL_RENDERBUFFER_BLUE_SIZE" },
   1128     { GL_RENDERBUFFER_ALPHA_SIZE, "GL_RENDERBUFFER_ALPHA_SIZE" },
   1129     { GL_RENDERBUFFER_DEPTH_SIZE, "GL_RENDERBUFFER_DEPTH_SIZE" },
   1130     { GL_RENDERBUFFER_STENCIL_SIZE, "GL_RENDERBUFFER_STENCIL_SIZE" },
   1131     { GL_RENDERBUFFER_WIDTH, "GL_RENDERBUFFER_WIDTH" },
   1132     { GL_RENDERBUFFER_HEIGHT, "GL_RENDERBUFFER_HEIGHT" },
   1133     { GL_RENDERBUFFER_INTERNAL_FORMAT, "GL_RENDERBUFFER_INTERNAL_FORMAT" },
   1134   };
   1135   return GLES2Util::GetQualifiedEnumString(
   1136       string_table, arraysize(string_table), value);
   1137 }
   1138 
   1139 std::string GLES2Util::GetStringRenderBufferTarget(uint32 value) {
   1140   static const EnumToString string_table[] = {
   1141     { GL_RENDERBUFFER, "GL_RENDERBUFFER" },
   1142   };
   1143   return GLES2Util::GetQualifiedEnumString(
   1144       string_table, arraysize(string_table), value);
   1145 }
   1146 
   1147 std::string GLES2Util::GetStringResetStatus(uint32 value) {
   1148   static const EnumToString string_table[] = {
   1149     { GL_GUILTY_CONTEXT_RESET_ARB, "GL_GUILTY_CONTEXT_RESET_ARB" },
   1150     { GL_INNOCENT_CONTEXT_RESET_ARB, "GL_INNOCENT_CONTEXT_RESET_ARB" },
   1151     { GL_UNKNOWN_CONTEXT_RESET_ARB, "GL_UNKNOWN_CONTEXT_RESET_ARB" },
   1152   };
   1153   return GLES2Util::GetQualifiedEnumString(
   1154       string_table, arraysize(string_table), value);
   1155 }
   1156 
   1157 std::string GLES2Util::GetStringShaderBinaryFormat(uint32 value) {
   1158   return GLES2Util::GetQualifiedEnumString(
   1159       NULL, 0, value);
   1160 }
   1161 
   1162 std::string GLES2Util::GetStringShaderParameter(uint32 value) {
   1163   static const EnumToString string_table[] = {
   1164     { GL_SHADER_TYPE, "GL_SHADER_TYPE" },
   1165     { GL_DELETE_STATUS, "GL_DELETE_STATUS" },
   1166     { GL_COMPILE_STATUS, "GL_COMPILE_STATUS" },
   1167     { GL_INFO_LOG_LENGTH, "GL_INFO_LOG_LENGTH" },
   1168     { GL_SHADER_SOURCE_LENGTH, "GL_SHADER_SOURCE_LENGTH" },
   1169     { GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE,
   1170     "GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE" },
   1171   };
   1172   return GLES2Util::GetQualifiedEnumString(
   1173       string_table, arraysize(string_table), value);
   1174 }
   1175 
   1176 std::string GLES2Util::GetStringShaderPrecision(uint32 value) {
   1177   static const EnumToString string_table[] = {
   1178     { GL_LOW_FLOAT, "GL_LOW_FLOAT" },
   1179     { GL_MEDIUM_FLOAT, "GL_MEDIUM_FLOAT" },
   1180     { GL_HIGH_FLOAT, "GL_HIGH_FLOAT" },
   1181     { GL_LOW_INT, "GL_LOW_INT" },
   1182     { GL_MEDIUM_INT, "GL_MEDIUM_INT" },
   1183     { GL_HIGH_INT, "GL_HIGH_INT" },
   1184   };
   1185   return GLES2Util::GetQualifiedEnumString(
   1186       string_table, arraysize(string_table), value);
   1187 }
   1188 
   1189 std::string GLES2Util::GetStringShaderType(uint32 value) {
   1190   static const EnumToString string_table[] = {
   1191     { GL_VERTEX_SHADER, "GL_VERTEX_SHADER" },
   1192     { GL_FRAGMENT_SHADER, "GL_FRAGMENT_SHADER" },
   1193   };
   1194   return GLES2Util::GetQualifiedEnumString(
   1195       string_table, arraysize(string_table), value);
   1196 }
   1197 
   1198 std::string GLES2Util::GetStringSrcBlendFactor(uint32 value) {
   1199   static const EnumToString string_table[] = {
   1200     { GL_ZERO, "GL_ZERO" },
   1201     { GL_ONE, "GL_ONE" },
   1202     { GL_SRC_COLOR, "GL_SRC_COLOR" },
   1203     { GL_ONE_MINUS_SRC_COLOR, "GL_ONE_MINUS_SRC_COLOR" },
   1204     { GL_DST_COLOR, "GL_DST_COLOR" },
   1205     { GL_ONE_MINUS_DST_COLOR, "GL_ONE_MINUS_DST_COLOR" },
   1206     { GL_SRC_ALPHA, "GL_SRC_ALPHA" },
   1207     { GL_ONE_MINUS_SRC_ALPHA, "GL_ONE_MINUS_SRC_ALPHA" },
   1208     { GL_DST_ALPHA, "GL_DST_ALPHA" },
   1209     { GL_ONE_MINUS_DST_ALPHA, "GL_ONE_MINUS_DST_ALPHA" },
   1210     { GL_CONSTANT_COLOR, "GL_CONSTANT_COLOR" },
   1211     { GL_ONE_MINUS_CONSTANT_COLOR, "GL_ONE_MINUS_CONSTANT_COLOR" },
   1212     { GL_CONSTANT_ALPHA, "GL_CONSTANT_ALPHA" },
   1213     { GL_ONE_MINUS_CONSTANT_ALPHA, "GL_ONE_MINUS_CONSTANT_ALPHA" },
   1214     { GL_SRC_ALPHA_SATURATE, "GL_SRC_ALPHA_SATURATE" },
   1215   };
   1216   return GLES2Util::GetQualifiedEnumString(
   1217       string_table, arraysize(string_table), value);
   1218 }
   1219 
   1220 std::string GLES2Util::GetStringStencilOp(uint32 value) {
   1221   static const EnumToString string_table[] = {
   1222     { GL_KEEP, "GL_KEEP" },
   1223     { GL_ZERO, "GL_ZERO" },
   1224     { GL_REPLACE, "GL_REPLACE" },
   1225     { GL_INCR, "GL_INCR" },
   1226     { GL_INCR_WRAP, "GL_INCR_WRAP" },
   1227     { GL_DECR, "GL_DECR" },
   1228     { GL_DECR_WRAP, "GL_DECR_WRAP" },
   1229     { GL_INVERT, "GL_INVERT" },
   1230   };
   1231   return GLES2Util::GetQualifiedEnumString(
   1232       string_table, arraysize(string_table), value);
   1233 }
   1234 
   1235 std::string GLES2Util::GetStringStringType(uint32 value) {
   1236   static const EnumToString string_table[] = {
   1237     { GL_VENDOR, "GL_VENDOR" },
   1238     { GL_RENDERER, "GL_RENDERER" },
   1239     { GL_VERSION, "GL_VERSION" },
   1240     { GL_SHADING_LANGUAGE_VERSION, "GL_SHADING_LANGUAGE_VERSION" },
   1241     { GL_EXTENSIONS, "GL_EXTENSIONS" },
   1242   };
   1243   return GLES2Util::GetQualifiedEnumString(
   1244       string_table, arraysize(string_table), value);
   1245 }
   1246 
   1247 std::string GLES2Util::GetStringTextureBindTarget(uint32 value) {
   1248   static const EnumToString string_table[] = {
   1249     { GL_TEXTURE_2D, "GL_TEXTURE_2D" },
   1250     { GL_TEXTURE_CUBE_MAP, "GL_TEXTURE_CUBE_MAP" },
   1251   };
   1252   return GLES2Util::GetQualifiedEnumString(
   1253       string_table, arraysize(string_table), value);
   1254 }
   1255 
   1256 std::string GLES2Util::GetStringTextureFormat(uint32 value) {
   1257   static const EnumToString string_table[] = {
   1258     { GL_ALPHA, "GL_ALPHA" },
   1259     { GL_LUMINANCE, "GL_LUMINANCE" },
   1260     { GL_LUMINANCE_ALPHA, "GL_LUMINANCE_ALPHA" },
   1261     { GL_RGB, "GL_RGB" },
   1262     { GL_RGBA, "GL_RGBA" },
   1263   };
   1264   return GLES2Util::GetQualifiedEnumString(
   1265       string_table, arraysize(string_table), value);
   1266 }
   1267 
   1268 std::string GLES2Util::GetStringTextureInternalFormat(uint32 value) {
   1269   static const EnumToString string_table[] = {
   1270     { GL_ALPHA, "GL_ALPHA" },
   1271     { GL_LUMINANCE, "GL_LUMINANCE" },
   1272     { GL_LUMINANCE_ALPHA, "GL_LUMINANCE_ALPHA" },
   1273     { GL_RGB, "GL_RGB" },
   1274     { GL_RGBA, "GL_RGBA" },
   1275   };
   1276   return GLES2Util::GetQualifiedEnumString(
   1277       string_table, arraysize(string_table), value);
   1278 }
   1279 
   1280 std::string GLES2Util::GetStringTextureInternalFormatStorage(uint32 value) {
   1281   static const EnumToString string_table[] = {
   1282     { GL_RGB565, "GL_RGB565" },
   1283     { GL_RGBA4, "GL_RGBA4" },
   1284     { GL_RGB5_A1, "GL_RGB5_A1" },
   1285     { GL_ALPHA8_EXT, "GL_ALPHA8_EXT" },
   1286     { GL_LUMINANCE8_EXT, "GL_LUMINANCE8_EXT" },
   1287     { GL_LUMINANCE8_ALPHA8_EXT, "GL_LUMINANCE8_ALPHA8_EXT" },
   1288     { GL_RGB8_OES, "GL_RGB8_OES" },
   1289     { GL_RGBA8_OES, "GL_RGBA8_OES" },
   1290   };
   1291   return GLES2Util::GetQualifiedEnumString(
   1292       string_table, arraysize(string_table), value);
   1293 }
   1294 
   1295 std::string GLES2Util::GetStringTextureMagFilterMode(uint32 value) {
   1296   static const EnumToString string_table[] = {
   1297     { GL_NEAREST, "GL_NEAREST" },
   1298     { GL_LINEAR, "GL_LINEAR" },
   1299   };
   1300   return GLES2Util::GetQualifiedEnumString(
   1301       string_table, arraysize(string_table), value);
   1302 }
   1303 
   1304 std::string GLES2Util::GetStringTextureMinFilterMode(uint32 value) {
   1305   static const EnumToString string_table[] = {
   1306     { GL_NEAREST, "GL_NEAREST" },
   1307     { GL_LINEAR, "GL_LINEAR" },
   1308     { GL_NEAREST_MIPMAP_NEAREST, "GL_NEAREST_MIPMAP_NEAREST" },
   1309     { GL_LINEAR_MIPMAP_NEAREST, "GL_LINEAR_MIPMAP_NEAREST" },
   1310     { GL_NEAREST_MIPMAP_LINEAR, "GL_NEAREST_MIPMAP_LINEAR" },
   1311     { GL_LINEAR_MIPMAP_LINEAR, "GL_LINEAR_MIPMAP_LINEAR" },
   1312   };
   1313   return GLES2Util::GetQualifiedEnumString(
   1314       string_table, arraysize(string_table), value);
   1315 }
   1316 
   1317 std::string GLES2Util::GetStringTextureParameter(uint32 value) {
   1318   static const EnumToString string_table[] = {
   1319     { GL_TEXTURE_MAG_FILTER, "GL_TEXTURE_MAG_FILTER" },
   1320     { GL_TEXTURE_MIN_FILTER, "GL_TEXTURE_MIN_FILTER" },
   1321     { GL_TEXTURE_POOL_CHROMIUM, "GL_TEXTURE_POOL_CHROMIUM" },
   1322     { GL_TEXTURE_WRAP_S, "GL_TEXTURE_WRAP_S" },
   1323     { GL_TEXTURE_WRAP_T, "GL_TEXTURE_WRAP_T" },
   1324   };
   1325   return GLES2Util::GetQualifiedEnumString(
   1326       string_table, arraysize(string_table), value);
   1327 }
   1328 
   1329 std::string GLES2Util::GetStringTexturePool(uint32 value) {
   1330   static const EnumToString string_table[] = {
   1331     { GL_TEXTURE_POOL_MANAGED_CHROMIUM, "GL_TEXTURE_POOL_MANAGED_CHROMIUM" },
   1332     { GL_TEXTURE_POOL_UNMANAGED_CHROMIUM,
   1333     "GL_TEXTURE_POOL_UNMANAGED_CHROMIUM" },
   1334   };
   1335   return GLES2Util::GetQualifiedEnumString(
   1336       string_table, arraysize(string_table), value);
   1337 }
   1338 
   1339 std::string GLES2Util::GetStringTextureTarget(uint32 value) {
   1340   static const EnumToString string_table[] = {
   1341     { GL_TEXTURE_2D, "GL_TEXTURE_2D" },
   1342     { GL_TEXTURE_CUBE_MAP_POSITIVE_X, "GL_TEXTURE_CUBE_MAP_POSITIVE_X" },
   1343     { GL_TEXTURE_CUBE_MAP_NEGATIVE_X, "GL_TEXTURE_CUBE_MAP_NEGATIVE_X" },
   1344     { GL_TEXTURE_CUBE_MAP_POSITIVE_Y, "GL_TEXTURE_CUBE_MAP_POSITIVE_Y" },
   1345     { GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" },
   1346     { GL_TEXTURE_CUBE_MAP_POSITIVE_Z, "GL_TEXTURE_CUBE_MAP_POSITIVE_Z" },
   1347     { GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" },
   1348   };
   1349   return GLES2Util::GetQualifiedEnumString(
   1350       string_table, arraysize(string_table), value);
   1351 }
   1352 
   1353 std::string GLES2Util::GetStringTextureUsage(uint32 value) {
   1354   static const EnumToString string_table[] = {
   1355     { GL_NONE, "GL_NONE" },
   1356     { GL_FRAMEBUFFER_ATTACHMENT_ANGLE, "GL_FRAMEBUFFER_ATTACHMENT_ANGLE" },
   1357   };
   1358   return GLES2Util::GetQualifiedEnumString(
   1359       string_table, arraysize(string_table), value);
   1360 }
   1361 
   1362 std::string GLES2Util::GetStringTextureWrapMode(uint32 value) {
   1363   static const EnumToString string_table[] = {
   1364     { GL_CLAMP_TO_EDGE, "GL_CLAMP_TO_EDGE" },
   1365     { GL_MIRRORED_REPEAT, "GL_MIRRORED_REPEAT" },
   1366     { GL_REPEAT, "GL_REPEAT" },
   1367   };
   1368   return GLES2Util::GetQualifiedEnumString(
   1369       string_table, arraysize(string_table), value);
   1370 }
   1371 
   1372 std::string GLES2Util::GetStringVertexAttribType(uint32 value) {
   1373   static const EnumToString string_table[] = {
   1374     { GL_BYTE, "GL_BYTE" },
   1375     { GL_UNSIGNED_BYTE, "GL_UNSIGNED_BYTE" },
   1376     { GL_SHORT, "GL_SHORT" },
   1377     { GL_UNSIGNED_SHORT, "GL_UNSIGNED_SHORT" },
   1378     { GL_FLOAT, "GL_FLOAT" },
   1379   };
   1380   return GLES2Util::GetQualifiedEnumString(
   1381       string_table, arraysize(string_table), value);
   1382 }
   1383 
   1384 std::string GLES2Util::GetStringVertexAttribute(uint32 value) {
   1385   static const EnumToString string_table[] = {
   1386     { GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, "GL_VERTEX_ATTRIB_ARRAY_NORMALIZED" },
   1387     { GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
   1388     "GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING" },
   1389     { GL_VERTEX_ATTRIB_ARRAY_ENABLED, "GL_VERTEX_ATTRIB_ARRAY_ENABLED" },
   1390     { GL_VERTEX_ATTRIB_ARRAY_SIZE, "GL_VERTEX_ATTRIB_ARRAY_SIZE" },
   1391     { GL_VERTEX_ATTRIB_ARRAY_STRIDE, "GL_VERTEX_ATTRIB_ARRAY_STRIDE" },
   1392     { GL_VERTEX_ATTRIB_ARRAY_TYPE, "GL_VERTEX_ATTRIB_ARRAY_TYPE" },
   1393     { GL_CURRENT_VERTEX_ATTRIB, "GL_CURRENT_VERTEX_ATTRIB" },
   1394   };
   1395   return GLES2Util::GetQualifiedEnumString(
   1396       string_table, arraysize(string_table), value);
   1397 }
   1398 
   1399 std::string GLES2Util::GetStringVertexPointer(uint32 value) {
   1400   static const EnumToString string_table[] = {
   1401     { GL_VERTEX_ATTRIB_ARRAY_POINTER, "GL_VERTEX_ATTRIB_ARRAY_POINTER" },
   1402   };
   1403   return GLES2Util::GetQualifiedEnumString(
   1404       string_table, arraysize(string_table), value);
   1405 }
   1406 
   1407 #endif  // GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_UTILS_IMPLEMENTATION_AUTOGEN_H_
   1408 
   1409