• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by gen_gl_enum_utils.py using data from gl.xml and gl_angle_ext.xml.
3 //
4 // Copyright 2020 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // gl_enum_utils_autogen.cpp:
9 //   mapping of GLenum value to string.
10 
11 #include "libANGLE/gl_enum_utils_autogen.h"
12 
13 #include "libANGLE/gl_enum_utils.h"
14 
15 #include <sstream>
16 
17 #include "common/bitset_utils.h"
18 
19 namespace gl
20 {
GLenumToString(GLenumGroup enumGroup,unsigned int value)21 const char *GLenumToString(GLenumGroup enumGroup, unsigned int value)
22 {
23     switch (enumGroup)
24     {
25         case GLenumGroup::AlphaFunction:
26         {
27             switch (value)
28             {
29                 case 0x200:
30                     return "GL_NEVER";
31                 case 0x201:
32                     return "GL_LESS";
33                 case 0x202:
34                     return "GL_EQUAL";
35                 case 0x203:
36                     return "GL_LEQUAL";
37                 case 0x204:
38                     return "GL_GREATER";
39                 case 0x205:
40                     return "GL_NOTEQUAL";
41                 case 0x206:
42                     return "GL_GEQUAL";
43                 case 0x207:
44                     return "GL_ALWAYS";
45                 default:
46                     return kUnknownGLenumString;
47             }
48         }
49 
50         case GLenumGroup::AtomicCounterBufferPName:
51         {
52             switch (value)
53             {
54                 case 0x92C1:
55                     return "GL_ATOMIC_COUNTER_BUFFER_BINDING";
56                 default:
57                     return kUnknownGLenumString;
58             }
59         }
60 
61         case GLenumGroup::AttribMask:
62         {
63             switch (value)
64             {
65                 case 0x100:
66                     return "GL_DEPTH_BUFFER_BIT";
67                 case 0x400:
68                     return "GL_STENCIL_BUFFER_BIT";
69                 case 0x4000:
70                     return "GL_COLOR_BUFFER_BIT";
71                 default:
72                     return kUnknownGLenumString;
73             }
74         }
75 
76         case GLenumGroup::AttributeType:
77         {
78             switch (value)
79             {
80                 case 0x8B50:
81                     return "GL_FLOAT_VEC2";
82                 case 0x8B51:
83                     return "GL_FLOAT_VEC3";
84                 case 0x8B52:
85                     return "GL_FLOAT_VEC4";
86                 case 0x8B53:
87                     return "GL_INT_VEC2";
88                 case 0x8B54:
89                     return "GL_INT_VEC3";
90                 case 0x8B55:
91                     return "GL_INT_VEC4";
92                 case 0x8B56:
93                     return "GL_BOOL";
94                 case 0x8B57:
95                     return "GL_BOOL_VEC2";
96                 case 0x8B58:
97                     return "GL_BOOL_VEC3";
98                 case 0x8B59:
99                     return "GL_BOOL_VEC4";
100                 case 0x8B5A:
101                     return "GL_FLOAT_MAT2";
102                 case 0x8B5B:
103                     return "GL_FLOAT_MAT3";
104                 case 0x8B5C:
105                     return "GL_FLOAT_MAT4";
106                 case 0x8B5E:
107                     return "GL_SAMPLER_2D";
108                 case 0x8B5F:
109                     return "GL_SAMPLER_3D";
110                 case 0x8B60:
111                     return "GL_SAMPLER_CUBE";
112                 case 0x8B62:
113                     return "GL_SAMPLER_2D_SHADOW";
114                 case 0x8B65:
115                     return "GL_FLOAT_MAT2x3";
116                 case 0x8B66:
117                     return "GL_FLOAT_MAT2x4";
118                 case 0x8B67:
119                     return "GL_FLOAT_MAT3x2";
120                 case 0x8B68:
121                     return "GL_FLOAT_MAT3x4";
122                 case 0x8B69:
123                     return "GL_FLOAT_MAT4x2";
124                 case 0x8B6A:
125                     return "GL_FLOAT_MAT4x3";
126                 default:
127                     return kUnknownGLenumString;
128             }
129         }
130 
131         case GLenumGroup::BindTransformFeedbackTarget:
132         {
133             switch (value)
134             {
135                 case 0x8E22:
136                     return "GL_TRANSFORM_FEEDBACK";
137                 default:
138                     return kUnknownGLenumString;
139             }
140         }
141 
142         case GLenumGroup::BlendEquationModeEXT:
143         {
144             switch (value)
145             {
146                 case 0x8006:
147                     return "GL_FUNC_ADD";
148                 case 0x800A:
149                     return "GL_FUNC_SUBTRACT";
150                 case 0x800B:
151                     return "GL_FUNC_REVERSE_SUBTRACT";
152                 default:
153                     return kUnknownGLenumString;
154             }
155         }
156 
157         case GLenumGroup::BlendingFactor:
158         {
159             switch (value)
160             {
161                 case 0x0:
162                     return "GL_ZERO";
163                 case 0x1:
164                     return "GL_ONE";
165                 case 0x300:
166                     return "GL_SRC_COLOR";
167                 case 0x301:
168                     return "GL_ONE_MINUS_SRC_COLOR";
169                 case 0x302:
170                     return "GL_SRC_ALPHA";
171                 case 0x303:
172                     return "GL_ONE_MINUS_SRC_ALPHA";
173                 case 0x304:
174                     return "GL_DST_ALPHA";
175                 case 0x305:
176                     return "GL_ONE_MINUS_DST_ALPHA";
177                 case 0x306:
178                     return "GL_DST_COLOR";
179                 case 0x307:
180                     return "GL_ONE_MINUS_DST_COLOR";
181                 case 0x308:
182                     return "GL_SRC_ALPHA_SATURATE";
183                 case 0x8001:
184                     return "GL_CONSTANT_COLOR";
185                 case 0x8002:
186                     return "GL_ONE_MINUS_CONSTANT_COLOR";
187                 case 0x8003:
188                     return "GL_CONSTANT_ALPHA";
189                 case 0x8004:
190                     return "GL_ONE_MINUS_CONSTANT_ALPHA";
191                 default:
192                     return kUnknownGLenumString;
193             }
194         }
195 
196         case GLenumGroup::BlitFramebufferFilter:
197         {
198             switch (value)
199             {
200                 case 0x2600:
201                     return "GL_NEAREST";
202                 case 0x2601:
203                     return "GL_LINEAR";
204                 default:
205                     return kUnknownGLenumString;
206             }
207         }
208 
209         case GLenumGroup::Boolean:
210         {
211             switch (value)
212             {
213                 case 0x0:
214                     return "GL_FALSE";
215                 case 0x1:
216                     return "GL_TRUE";
217                 default:
218                     return kUnknownGLenumString;
219             }
220         }
221 
222         case GLenumGroup::Buffer:
223         {
224             switch (value)
225             {
226                 case 0x1800:
227                     return "GL_COLOR";
228                 case 0x1801:
229                     return "GL_DEPTH";
230                 case 0x1802:
231                     return "GL_STENCIL";
232                 default:
233                     return kUnknownGLenumString;
234             }
235         }
236 
237         case GLenumGroup::BufferAccessARB:
238         {
239             switch (value)
240             {
241                 case 0x88B8:
242                     return "GL_READ_ONLY";
243                 case 0x88B9:
244                     return "GL_WRITE_ONLY";
245                 case 0x88BA:
246                     return "GL_READ_WRITE";
247                 default:
248                     return kUnknownGLenumString;
249             }
250         }
251 
252         case GLenumGroup::BufferAccessMask:
253         {
254             switch (value)
255             {
256                 case 0x1:
257                     return "GL_MAP_READ_BIT";
258                 case 0x2:
259                     return "GL_MAP_WRITE_BIT";
260                 case 0x4:
261                     return "GL_MAP_INVALIDATE_RANGE_BIT";
262                 case 0x8:
263                     return "GL_MAP_INVALIDATE_BUFFER_BIT";
264                 case 0x10:
265                     return "GL_MAP_FLUSH_EXPLICIT_BIT";
266                 case 0x20:
267                     return "GL_MAP_UNSYNCHRONIZED_BIT";
268                 default:
269                     return kUnknownGLenumString;
270             }
271         }
272 
273         case GLenumGroup::BufferStorageTarget:
274         {
275             switch (value)
276             {
277                 case 0x8892:
278                     return "GL_ARRAY_BUFFER";
279                 case 0x8893:
280                     return "GL_ELEMENT_ARRAY_BUFFER";
281                 case 0x88EB:
282                     return "GL_PIXEL_PACK_BUFFER";
283                 case 0x88EC:
284                     return "GL_PIXEL_UNPACK_BUFFER";
285                 case 0x8A11:
286                     return "GL_UNIFORM_BUFFER";
287                 case 0x8C2A:
288                     return "GL_TEXTURE_BUFFER";
289                 case 0x8C8E:
290                     return "GL_TRANSFORM_FEEDBACK_BUFFER";
291                 case 0x8F36:
292                     return "GL_COPY_READ_BUFFER";
293                 case 0x8F37:
294                     return "GL_COPY_WRITE_BUFFER";
295                 case 0x8F3F:
296                     return "GL_DRAW_INDIRECT_BUFFER";
297                 case 0x90D2:
298                     return "GL_SHADER_STORAGE_BUFFER";
299                 case 0x90EE:
300                     return "GL_DISPATCH_INDIRECT_BUFFER";
301                 case 0x92C0:
302                     return "GL_ATOMIC_COUNTER_BUFFER";
303                 default:
304                     return kUnknownGLenumString;
305             }
306         }
307 
308         case GLenumGroup::BufferTargetARB:
309         {
310             switch (value)
311             {
312                 case 0x8892:
313                     return "GL_ARRAY_BUFFER";
314                 case 0x8893:
315                     return "GL_ELEMENT_ARRAY_BUFFER";
316                 case 0x88EB:
317                     return "GL_PIXEL_PACK_BUFFER";
318                 case 0x88EC:
319                     return "GL_PIXEL_UNPACK_BUFFER";
320                 case 0x8A11:
321                     return "GL_UNIFORM_BUFFER";
322                 case 0x8C2A:
323                     return "GL_TEXTURE_BUFFER";
324                 case 0x8C8E:
325                     return "GL_TRANSFORM_FEEDBACK_BUFFER";
326                 case 0x8F36:
327                     return "GL_COPY_READ_BUFFER";
328                 case 0x8F37:
329                     return "GL_COPY_WRITE_BUFFER";
330                 case 0x8F3F:
331                     return "GL_DRAW_INDIRECT_BUFFER";
332                 case 0x90D2:
333                     return "GL_SHADER_STORAGE_BUFFER";
334                 case 0x90EE:
335                     return "GL_DISPATCH_INDIRECT_BUFFER";
336                 case 0x92C0:
337                     return "GL_ATOMIC_COUNTER_BUFFER";
338                 default:
339                     return kUnknownGLenumString;
340             }
341         }
342 
343         case GLenumGroup::BufferUsageARB:
344         {
345             switch (value)
346             {
347                 case 0x88E0:
348                     return "GL_STREAM_DRAW";
349                 case 0x88E1:
350                     return "GL_STREAM_READ";
351                 case 0x88E2:
352                     return "GL_STREAM_COPY";
353                 case 0x88E4:
354                     return "GL_STATIC_DRAW";
355                 case 0x88E5:
356                     return "GL_STATIC_READ";
357                 case 0x88E6:
358                     return "GL_STATIC_COPY";
359                 case 0x88E8:
360                     return "GL_DYNAMIC_DRAW";
361                 case 0x88E9:
362                     return "GL_DYNAMIC_READ";
363                 case 0x88EA:
364                     return "GL_DYNAMIC_COPY";
365                 default:
366                     return kUnknownGLenumString;
367             }
368         }
369 
370         case GLenumGroup::CheckFramebufferStatusTarget:
371         {
372             switch (value)
373             {
374                 case 0x8CA8:
375                     return "GL_READ_FRAMEBUFFER";
376                 case 0x8CA9:
377                     return "GL_DRAW_FRAMEBUFFER";
378                 case 0x8D40:
379                     return "GL_FRAMEBUFFER";
380                 default:
381                     return kUnknownGLenumString;
382             }
383         }
384 
385         case GLenumGroup::ClearBufferMask:
386         {
387             switch (value)
388             {
389                 case 0x100:
390                     return "GL_DEPTH_BUFFER_BIT";
391                 case 0x400:
392                     return "GL_STENCIL_BUFFER_BIT";
393                 case 0x4000:
394                     return "GL_COLOR_BUFFER_BIT";
395                 default:
396                     return kUnknownGLenumString;
397             }
398         }
399 
400         case GLenumGroup::ColorBuffer:
401         {
402             switch (value)
403             {
404                 case 0x0:
405                     return "GL_NONE";
406                 case 0x404:
407                     return "GL_FRONT";
408                 case 0x405:
409                     return "GL_BACK";
410                 case 0x408:
411                     return "GL_FRONT_AND_BACK";
412                 case 0x8CE0:
413                     return "GL_COLOR_ATTACHMENT0";
414                 case 0x8CE1:
415                     return "GL_COLOR_ATTACHMENT1";
416                 case 0x8CE2:
417                     return "GL_COLOR_ATTACHMENT2";
418                 case 0x8CE3:
419                     return "GL_COLOR_ATTACHMENT3";
420                 case 0x8CE4:
421                     return "GL_COLOR_ATTACHMENT4";
422                 case 0x8CE5:
423                     return "GL_COLOR_ATTACHMENT5";
424                 case 0x8CE6:
425                     return "GL_COLOR_ATTACHMENT6";
426                 case 0x8CE7:
427                     return "GL_COLOR_ATTACHMENT7";
428                 case 0x8CE8:
429                     return "GL_COLOR_ATTACHMENT8";
430                 case 0x8CE9:
431                     return "GL_COLOR_ATTACHMENT9";
432                 case 0x8CEA:
433                     return "GL_COLOR_ATTACHMENT10";
434                 case 0x8CEB:
435                     return "GL_COLOR_ATTACHMENT11";
436                 case 0x8CEC:
437                     return "GL_COLOR_ATTACHMENT12";
438                 case 0x8CED:
439                     return "GL_COLOR_ATTACHMENT13";
440                 case 0x8CEE:
441                     return "GL_COLOR_ATTACHMENT14";
442                 case 0x8CEF:
443                     return "GL_COLOR_ATTACHMENT15";
444                 case 0x8CF0:
445                     return "GL_COLOR_ATTACHMENT16";
446                 case 0x8CF1:
447                     return "GL_COLOR_ATTACHMENT17";
448                 case 0x8CF2:
449                     return "GL_COLOR_ATTACHMENT18";
450                 case 0x8CF3:
451                     return "GL_COLOR_ATTACHMENT19";
452                 case 0x8CF4:
453                     return "GL_COLOR_ATTACHMENT20";
454                 case 0x8CF5:
455                     return "GL_COLOR_ATTACHMENT21";
456                 case 0x8CF6:
457                     return "GL_COLOR_ATTACHMENT22";
458                 case 0x8CF7:
459                     return "GL_COLOR_ATTACHMENT23";
460                 case 0x8CF8:
461                     return "GL_COLOR_ATTACHMENT24";
462                 case 0x8CF9:
463                     return "GL_COLOR_ATTACHMENT25";
464                 case 0x8CFA:
465                     return "GL_COLOR_ATTACHMENT26";
466                 case 0x8CFB:
467                     return "GL_COLOR_ATTACHMENT27";
468                 case 0x8CFC:
469                     return "GL_COLOR_ATTACHMENT28";
470                 case 0x8CFD:
471                     return "GL_COLOR_ATTACHMENT29";
472                 case 0x8CFE:
473                     return "GL_COLOR_ATTACHMENT30";
474                 case 0x8CFF:
475                     return "GL_COLOR_ATTACHMENT31";
476                 default:
477                     return kUnknownGLenumString;
478             }
479         }
480 
481         case GLenumGroup::ColorMaterialFace:
482         {
483             switch (value)
484             {
485                 case 0x404:
486                     return "GL_FRONT";
487                 case 0x405:
488                     return "GL_BACK";
489                 case 0x408:
490                     return "GL_FRONT_AND_BACK";
491                 default:
492                     return kUnknownGLenumString;
493             }
494         }
495 
496         case GLenumGroup::ColorPointerType:
497         {
498             switch (value)
499             {
500                 case 0x1400:
501                     return "GL_BYTE";
502                 case 0x1401:
503                     return "GL_UNSIGNED_BYTE";
504                 case 0x1402:
505                     return "GL_SHORT";
506                 case 0x1403:
507                     return "GL_UNSIGNED_SHORT";
508                 case 0x1404:
509                     return "GL_INT";
510                 case 0x1405:
511                     return "GL_UNSIGNED_INT";
512                 case 0x1406:
513                     return "GL_FLOAT";
514                 default:
515                     return kUnknownGLenumString;
516             }
517         }
518 
519         case GLenumGroup::ContextFlagMask:
520         {
521             switch (value)
522             {
523                 case 0x2:
524                     return "GL_CONTEXT_FLAG_DEBUG_BIT";
525                 case 0x4:
526                     return "GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT";
527                 default:
528                     return kUnknownGLenumString;
529             }
530         }
531 
532         case GLenumGroup::CopyBufferSubDataTarget:
533         {
534             switch (value)
535             {
536                 case 0x8892:
537                     return "GL_ARRAY_BUFFER";
538                 case 0x8893:
539                     return "GL_ELEMENT_ARRAY_BUFFER";
540                 case 0x88EB:
541                     return "GL_PIXEL_PACK_BUFFER";
542                 case 0x88EC:
543                     return "GL_PIXEL_UNPACK_BUFFER";
544                 case 0x8A11:
545                     return "GL_UNIFORM_BUFFER";
546                 case 0x8C2A:
547                     return "GL_TEXTURE_BUFFER";
548                 case 0x8C8E:
549                     return "GL_TRANSFORM_FEEDBACK_BUFFER";
550                 case 0x8F36:
551                     return "GL_COPY_READ_BUFFER";
552                 case 0x8F37:
553                     return "GL_COPY_WRITE_BUFFER";
554                 case 0x8F3F:
555                     return "GL_DRAW_INDIRECT_BUFFER";
556                 case 0x90D2:
557                     return "GL_SHADER_STORAGE_BUFFER";
558                 case 0x90EE:
559                     return "GL_DISPATCH_INDIRECT_BUFFER";
560                 case 0x92C0:
561                     return "GL_ATOMIC_COUNTER_BUFFER";
562                 default:
563                     return kUnknownGLenumString;
564             }
565         }
566 
567         case GLenumGroup::CullFaceMode:
568         {
569             switch (value)
570             {
571                 case 0x404:
572                     return "GL_FRONT";
573                 case 0x405:
574                     return "GL_BACK";
575                 case 0x408:
576                     return "GL_FRONT_AND_BACK";
577                 default:
578                     return kUnknownGLenumString;
579             }
580         }
581 
582         case GLenumGroup::DebugSeverity:
583         {
584             switch (value)
585             {
586                 case 0x1100:
587                     return "GL_DONT_CARE";
588                 case 0x9146:
589                     return "GL_DEBUG_SEVERITY_HIGH";
590                 case 0x9147:
591                     return "GL_DEBUG_SEVERITY_MEDIUM";
592                 case 0x9148:
593                     return "GL_DEBUG_SEVERITY_LOW";
594                 default:
595                     return kUnknownGLenumString;
596             }
597         }
598 
599         case GLenumGroup::DebugSource:
600         {
601             switch (value)
602             {
603                 case 0x1100:
604                     return "GL_DONT_CARE";
605                 case 0x8246:
606                     return "GL_DEBUG_SOURCE_API";
607                 case 0x8247:
608                     return "GL_DEBUG_SOURCE_WINDOW_SYSTEM";
609                 case 0x8248:
610                     return "GL_DEBUG_SOURCE_SHADER_COMPILER";
611                 case 0x8249:
612                     return "GL_DEBUG_SOURCE_THIRD_PARTY";
613                 case 0x824A:
614                     return "GL_DEBUG_SOURCE_APPLICATION";
615                 case 0x824B:
616                     return "GL_DEBUG_SOURCE_OTHER";
617                 default:
618                     return kUnknownGLenumString;
619             }
620         }
621 
622         case GLenumGroup::DebugType:
623         {
624             switch (value)
625             {
626                 case 0x1100:
627                     return "GL_DONT_CARE";
628                 case 0x824C:
629                     return "GL_DEBUG_TYPE_ERROR";
630                 case 0x824D:
631                     return "GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR";
632                 case 0x824E:
633                     return "GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR";
634                 case 0x824F:
635                     return "GL_DEBUG_TYPE_PORTABILITY";
636                 case 0x8250:
637                     return "GL_DEBUG_TYPE_PERFORMANCE";
638                 case 0x8251:
639                     return "GL_DEBUG_TYPE_OTHER";
640                 case 0x8268:
641                     return "GL_DEBUG_TYPE_MARKER";
642                 case 0x8269:
643                     return "GL_DEBUG_TYPE_PUSH_GROUP";
644                 case 0x826A:
645                     return "GL_DEBUG_TYPE_POP_GROUP";
646                 default:
647                     return kUnknownGLenumString;
648             }
649         }
650 
651         case GLenumGroup::DefaultGroup:
652         {
653             switch (value)
654             {
655                 case 0x16:
656                     return "GL_UUID_SIZE_EXT";
657                 case 0x308:
658                     return "GL_SRC_ALPHA_SATURATE_EXT";
659                 case 0x503:
660                     return "GL_STACK_OVERFLOW_KHR";
661                 case 0x504:
662                     return "GL_STACK_UNDERFLOW_KHR";
663                 case 0x507:
664                     return "GL_CONTEXT_LOST";
665                 case 0x1004:
666                     return "GL_TEXTURE_BORDER_COLOR_OES";
667                 case 0x2500:
668                     return "GL_TEXTURE_GEN_MODE_OES";
669                 case 0x8005:
670                     return "GL_BLEND_COLOR";
671                 case 0x8007:
672                     return "GL_MIN";
673                 case 0x8008:
674                     return "GL_MAX";
675                 case 0x8009:
676                     return "GL_BLEND_EQUATION";
677                 case 0x803C:
678                     return "GL_ALPHA8_EXT";
679                 case 0x8040:
680                     return "GL_LUMINANCE8_EXT";
681                 case 0x8045:
682                     return "GL_LUMINANCE8_ALPHA8_EXT";
683                 case 0x806A:
684                     return "GL_TEXTURE_BINDING_3D_OES";
685                 case 0x8071:
686                     return "GL_TEXTURE_DEPTH";
687                 case 0x8073:
688                     return "GL_MAX_3D_TEXTURE_SIZE";
689                 case 0x8074:
690                     return "GL_VERTEX_ARRAY_KHR";
691                 case 0x809E:
692                     return "GL_SAMPLE_ALPHA_TO_COVERAGE";
693                 case 0x80A0:
694                     return "GL_SAMPLE_COVERAGE";
695                 case 0x80AA:
696                     return "GL_SAMPLE_COVERAGE_VALUE";
697                 case 0x80AB:
698                     return "GL_SAMPLE_COVERAGE_INVERT";
699                 case 0x80C8:
700                     return "GL_BLEND_DST_RGB";
701                 case 0x80C9:
702                     return "GL_BLEND_SRC_RGB";
703                 case 0x80CA:
704                     return "GL_BLEND_DST_ALPHA";
705                 case 0x80CB:
706                     return "GL_BLEND_SRC_ALPHA";
707                 case 0x80E8:
708                     return "GL_MAX_ELEMENTS_VERTICES";
709                 case 0x80E9:
710                     return "GL_MAX_ELEMENTS_INDICES";
711                 case 0x812D:
712                     return "GL_CLAMP_TO_BORDER_OES";
713                 case 0x81A6:
714                     return "GL_DEPTH_COMPONENT24";
715                 case 0x8210:
716                     return "GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT";
717                 case 0x8218:
718                     return "GL_FRAMEBUFFER_DEFAULT";
719                 case 0x821A:
720                     return "GL_DEPTH_STENCIL_ATTACHMENT";
721                 case 0x821B:
722                     return "GL_MAJOR_VERSION";
723                 case 0x821C:
724                     return "GL_MINOR_VERSION";
725                 case 0x821D:
726                     return "GL_NUM_EXTENSIONS";
727                 case 0x821E:
728                     return "GL_CONTEXT_FLAGS";
729                 case 0x8221:
730                     return "GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED";
731                 case 0x8228:
732                     return "GL_RG_INTEGER";
733                 case 0x8242:
734                     return "GL_DEBUG_OUTPUT_SYNCHRONOUS";
735                 case 0x8243:
736                     return "GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH";
737                 case 0x8244:
738                     return "GL_DEBUG_CALLBACK_FUNCTION_KHR";
739                 case 0x8245:
740                     return "GL_DEBUG_CALLBACK_USER_PARAM_KHR";
741                 case 0x8246:
742                     return "GL_DEBUG_SOURCE_API_KHR";
743                 case 0x8247:
744                     return "GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR";
745                 case 0x8248:
746                     return "GL_DEBUG_SOURCE_SHADER_COMPILER_KHR";
747                 case 0x8249:
748                     return "GL_DEBUG_SOURCE_THIRD_PARTY_KHR";
749                 case 0x824A:
750                     return "GL_DEBUG_SOURCE_APPLICATION_KHR";
751                 case 0x824B:
752                     return "GL_DEBUG_SOURCE_OTHER_KHR";
753                 case 0x824C:
754                     return "GL_DEBUG_TYPE_ERROR_KHR";
755                 case 0x824D:
756                     return "GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR";
757                 case 0x824E:
758                     return "GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR";
759                 case 0x824F:
760                     return "GL_DEBUG_TYPE_PORTABILITY_KHR";
761                 case 0x8250:
762                     return "GL_DEBUG_TYPE_PERFORMANCE_KHR";
763                 case 0x8251:
764                     return "GL_DEBUG_TYPE_OTHER_KHR";
765                 case 0x8252:
766                     return "GL_LOSE_CONTEXT_ON_RESET";
767                 case 0x8253:
768                     return "GL_GUILTY_CONTEXT_RESET_EXT";
769                 case 0x8254:
770                     return "GL_INNOCENT_CONTEXT_RESET_EXT";
771                 case 0x8255:
772                     return "GL_UNKNOWN_CONTEXT_RESET_EXT";
773                 case 0x8256:
774                     return "GL_RESET_NOTIFICATION_STRATEGY";
775                 case 0x825A:
776                     return "GL_PROGRAM_PIPELINE_BINDING";
777                 case 0x825E:
778                     return "GL_LAYER_PROVOKING_VERTEX";
779                 case 0x8260:
780                     return "GL_UNDEFINED_VERTEX";
781                 case 0x8261:
782                     return "GL_NO_RESET_NOTIFICATION";
783                 case 0x8262:
784                     return "GL_MAX_COMPUTE_SHARED_MEMORY_SIZE";
785                 case 0x8263:
786                     return "GL_MAX_COMPUTE_UNIFORM_COMPONENTS";
787                 case 0x8264:
788                     return "GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS";
789                 case 0x8265:
790                     return "GL_MAX_COMPUTE_ATOMIC_COUNTERS";
791                 case 0x8266:
792                     return "GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS";
793                 case 0x8268:
794                     return "GL_DEBUG_TYPE_MARKER_KHR";
795                 case 0x8269:
796                     return "GL_DEBUG_TYPE_PUSH_GROUP_KHR";
797                 case 0x826A:
798                     return "GL_DEBUG_TYPE_POP_GROUP_KHR";
799                 case 0x826B:
800                     return "GL_DEBUG_SEVERITY_NOTIFICATION";
801                 case 0x826C:
802                     return "GL_MAX_DEBUG_GROUP_STACK_DEPTH";
803                 case 0x826D:
804                     return "GL_DEBUG_GROUP_STACK_DEPTH";
805                 case 0x826E:
806                     return "GL_MAX_UNIFORM_LOCATIONS";
807                 case 0x82D4:
808                     return "GL_VERTEX_ATTRIB_BINDING";
809                 case 0x82D6:
810                     return "GL_VERTEX_BINDING_DIVISOR";
811                 case 0x82D7:
812                     return "GL_VERTEX_BINDING_OFFSET";
813                 case 0x82D8:
814                     return "GL_VERTEX_BINDING_STRIDE";
815                 case 0x82D9:
816                     return "GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET";
817                 case 0x82DA:
818                     return "GL_MAX_VERTEX_ATTRIB_BINDINGS";
819                 case 0x82DF:
820                     return "GL_TEXTURE_IMMUTABLE_LEVELS";
821                 case 0x82E0:
822                     return "GL_BUFFER_KHR";
823                 case 0x82E1:
824                     return "GL_SHADER_KHR";
825                 case 0x82E2:
826                     return "GL_PROGRAM_KHR";
827                 case 0x82E3:
828                     return "GL_QUERY_KHR";
829                 case 0x82E4:
830                     return "GL_PROGRAM_PIPELINE_KHR";
831                 case 0x82E5:
832                     return "GL_MAX_VERTEX_ATTRIB_STRIDE";
833                 case 0x82E6:
834                     return "GL_SAMPLER_KHR";
835                 case 0x82E7:
836                     return "GL_DISPLAY_LIST";
837                 case 0x82E8:
838                     return "GL_MAX_LABEL_LENGTH";
839                 case 0x8363:
840                     return "GL_UNSIGNED_SHORT_5_6_5";
841                 case 0x8370:
842                     return "GL_MIRRORED_REPEAT";
843                 case 0x84E0:
844                     return "GL_ACTIVE_TEXTURE";
845                 case 0x84E8:
846                     return "GL_MAX_RENDERBUFFER_SIZE";
847                 case 0x84F2:
848                     return "GL_ALL_COMPLETED_NV";
849                 case 0x84F3:
850                     return "GL_FENCE_STATUS_NV";
851                 case 0x84F4:
852                     return "GL_FENCE_CONDITION_NV";
853                 case 0x84FA:
854                     return "GL_UNSIGNED_INT_24_8";
855                 case 0x84FD:
856                     return "GL_MAX_TEXTURE_LOD_BIAS";
857                 case 0x84FE:
858                     return "GL_TEXTURE_MAX_ANISOTROPY_EXT";
859                 case 0x84FF:
860                     return "GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT";
861                 case 0x8507:
862                     return "GL_INCR_WRAP";
863                 case 0x8508:
864                     return "GL_DECR_WRAP";
865                 case 0x8511:
866                     return "GL_NORMAL_MAP_OES";
867                 case 0x8512:
868                     return "GL_REFLECTION_MAP_OES";
869                 case 0x8513:
870                     return "GL_TEXTURE_CUBE_MAP_OES";
871                 case 0x8514:
872                     return "GL_TEXTURE_BINDING_CUBE_MAP";
873                 case 0x8515:
874                     return "GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES";
875                 case 0x8516:
876                     return "GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES";
877                 case 0x8517:
878                     return "GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES";
879                 case 0x8518:
880                     return "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES";
881                 case 0x8519:
882                     return "GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES";
883                 case 0x851A:
884                     return "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES";
885                 case 0x851C:
886                     return "GL_MAX_CUBE_MAP_TEXTURE_SIZE";
887                 case 0x8589:
888                     return "GL_SRC1_ALPHA_EXT";
889                 case 0x85B5:
890                     return "GL_VERTEX_ARRAY_BINDING";
891                 case 0x8645:
892                     return "GL_VERTEX_ATTRIB_ARRAY_POINTER";
893                 case 0x86A2:
894                     return "GL_NUM_COMPRESSED_TEXTURE_FORMATS";
895                 case 0x86A3:
896                     return "GL_COMPRESSED_TEXTURE_FORMATS";
897                 case 0x86A4:
898                     return "GL_MAX_VERTEX_UNITS_OES";
899                 case 0x86A9:
900                     return "GL_WEIGHT_ARRAY_TYPE_OES";
901                 case 0x86AA:
902                     return "GL_WEIGHT_ARRAY_STRIDE_OES";
903                 case 0x86AB:
904                     return "GL_WEIGHT_ARRAY_SIZE_OES";
905                 case 0x86AC:
906                     return "GL_WEIGHT_ARRAY_POINTER_OES";
907                 case 0x86AD:
908                     return "GL_WEIGHT_ARRAY_OES";
909                 case 0x8741:
910                     return "GL_PROGRAM_BINARY_LENGTH_OES";
911                 case 0x87FE:
912                     return "GL_NUM_PROGRAM_BINARY_FORMATS";
913                 case 0x87FF:
914                     return "GL_PROGRAM_BINARY_FORMATS";
915                 case 0x8800:
916                     return "GL_STENCIL_BACK_FUNC";
917                 case 0x8801:
918                     return "GL_STENCIL_BACK_FAIL";
919                 case 0x8802:
920                     return "GL_STENCIL_BACK_PASS_DEPTH_FAIL";
921                 case 0x8803:
922                     return "GL_STENCIL_BACK_PASS_DEPTH_PASS";
923                 case 0x8815:
924                     return "GL_RGB32F";
925                 case 0x8816:
926                     return "GL_ALPHA32F_EXT";
927                 case 0x8818:
928                     return "GL_LUMINANCE32F_EXT";
929                 case 0x8819:
930                     return "GL_LUMINANCE_ALPHA32F_EXT";
931                 case 0x881C:
932                     return "GL_ALPHA16F_EXT";
933                 case 0x881E:
934                     return "GL_LUMINANCE16F_EXT";
935                 case 0x881F:
936                     return "GL_LUMINANCE_ALPHA16F_EXT";
937                 case 0x8824:
938                     return "GL_MAX_DRAW_BUFFERS";
939                 case 0x8825:
940                     return "GL_DRAW_BUFFER0";
941                 case 0x8826:
942                     return "GL_DRAW_BUFFER1";
943                 case 0x8827:
944                     return "GL_DRAW_BUFFER2";
945                 case 0x8828:
946                     return "GL_DRAW_BUFFER3";
947                 case 0x8829:
948                     return "GL_DRAW_BUFFER4";
949                 case 0x882A:
950                     return "GL_DRAW_BUFFER5";
951                 case 0x882B:
952                     return "GL_DRAW_BUFFER6";
953                 case 0x882C:
954                     return "GL_DRAW_BUFFER7";
955                 case 0x882D:
956                     return "GL_DRAW_BUFFER8";
957                 case 0x882E:
958                     return "GL_DRAW_BUFFER9";
959                 case 0x882F:
960                     return "GL_DRAW_BUFFER10";
961                 case 0x8830:
962                     return "GL_DRAW_BUFFER11";
963                 case 0x8831:
964                     return "GL_DRAW_BUFFER12";
965                 case 0x8832:
966                     return "GL_DRAW_BUFFER13";
967                 case 0x8833:
968                     return "GL_DRAW_BUFFER14";
969                 case 0x8834:
970                     return "GL_DRAW_BUFFER15";
971                 case 0x883D:
972                     return "GL_BLEND_EQUATION_ALPHA";
973                 case 0x8840:
974                     return "GL_MATRIX_PALETTE_OES";
975                 case 0x8842:
976                     return "GL_MAX_PALETTE_MATRICES_OES";
977                 case 0x8843:
978                     return "GL_CURRENT_PALETTE_MATRIX_OES";
979                 case 0x8844:
980                     return "GL_MATRIX_INDEX_ARRAY_OES";
981                 case 0x8846:
982                     return "GL_MATRIX_INDEX_ARRAY_SIZE_OES";
983                 case 0x8847:
984                     return "GL_MATRIX_INDEX_ARRAY_TYPE_OES";
985                 case 0x8848:
986                     return "GL_MATRIX_INDEX_ARRAY_STRIDE_OES";
987                 case 0x8849:
988                     return "GL_MATRIX_INDEX_ARRAY_POINTER_OES";
989                 case 0x884A:
990                     return "GL_TEXTURE_DEPTH_SIZE";
991                 case 0x884E:
992                     return "GL_COMPARE_REF_TO_TEXTURE";
993                 case 0x8864:
994                     return "GL_QUERY_COUNTER_BITS_EXT";
995                 case 0x8865:
996                     return "GL_CURRENT_QUERY_EXT";
997                 case 0x8866:
998                     return "GL_QUERY_RESULT_EXT";
999                 case 0x8867:
1000                     return "GL_QUERY_RESULT_AVAILABLE_EXT";
1001                 case 0x8869:
1002                     return "GL_MAX_VERTEX_ATTRIBS";
1003                 case 0x886C:
1004                     return "GL_MAX_TESS_CONTROL_INPUT_COMPONENTS";
1005                 case 0x886D:
1006                     return "GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS";
1007                 case 0x8872:
1008                     return "GL_MAX_TEXTURE_IMAGE_UNITS";
1009                 case 0x887F:
1010                     return "GL_GEOMETRY_SHADER_INVOCATIONS";
1011                 case 0x8894:
1012                     return "GL_ARRAY_BUFFER_BINDING";
1013                 case 0x8895:
1014                     return "GL_ELEMENT_ARRAY_BUFFER_BINDING";
1015                 case 0x889E:
1016                     return "GL_WEIGHT_ARRAY_BUFFER_BINDING_OES";
1017                 case 0x88B9:
1018                     return "GL_WRITE_ONLY_OES";
1019                 case 0x88BB:
1020                     return "GL_BUFFER_ACCESS_OES";
1021                 case 0x88BC:
1022                     return "GL_BUFFER_MAPPED_OES";
1023                 case 0x88BD:
1024                     return "GL_BUFFER_MAP_POINTER";
1025                 case 0x88BF:
1026                     return "GL_TIME_ELAPSED_EXT";
1027                 case 0x88ED:
1028                     return "GL_PIXEL_PACK_BUFFER_BINDING";
1029                 case 0x88EF:
1030                     return "GL_PIXEL_UNPACK_BUFFER_BINDING";
1031                 case 0x88F1:
1032                     return "GL_TEXTURE_STENCIL_SIZE";
1033                 case 0x88F9:
1034                     return "GL_SRC1_COLOR_EXT";
1035                 case 0x88FA:
1036                     return "GL_ONE_MINUS_SRC1_COLOR_EXT";
1037                 case 0x88FB:
1038                     return "GL_ONE_MINUS_SRC1_ALPHA_EXT";
1039                 case 0x88FC:
1040                     return "GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT";
1041                 case 0x88FE:
1042                     return "GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE";
1043                 case 0x88FF:
1044                     return "GL_MAX_ARRAY_TEXTURE_LAYERS";
1045                 case 0x8904:
1046                     return "GL_MIN_PROGRAM_TEXEL_OFFSET";
1047                 case 0x8905:
1048                     return "GL_MAX_PROGRAM_TEXEL_OFFSET";
1049                 case 0x8916:
1050                     return "GL_GEOMETRY_LINKED_VERTICES_OUT_EXT";
1051                 case 0x8917:
1052                     return "GL_GEOMETRY_LINKED_INPUT_TYPE_EXT";
1053                 case 0x8918:
1054                     return "GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT";
1055                 case 0x8919:
1056                     return "GL_SAMPLER_BINDING";
1057                 case 0x898A:
1058                     return "GL_POINT_SIZE_ARRAY_TYPE_OES";
1059                 case 0x898B:
1060                     return "GL_POINT_SIZE_ARRAY_STRIDE_OES";
1061                 case 0x898C:
1062                     return "GL_POINT_SIZE_ARRAY_POINTER_OES";
1063                 case 0x8A28:
1064                     return "GL_UNIFORM_BUFFER_BINDING";
1065                 case 0x8A29:
1066                     return "GL_UNIFORM_BUFFER_START";
1067                 case 0x8A2A:
1068                     return "GL_UNIFORM_BUFFER_SIZE";
1069                 case 0x8A2B:
1070                     return "GL_MAX_VERTEX_UNIFORM_BLOCKS";
1071                 case 0x8A2C:
1072                     return "GL_MAX_GEOMETRY_UNIFORM_BLOCKS";
1073                 case 0x8A2D:
1074                     return "GL_MAX_FRAGMENT_UNIFORM_BLOCKS";
1075                 case 0x8A2E:
1076                     return "GL_MAX_COMBINED_UNIFORM_BLOCKS";
1077                 case 0x8A2F:
1078                     return "GL_MAX_UNIFORM_BUFFER_BINDINGS";
1079                 case 0x8A30:
1080                     return "GL_MAX_UNIFORM_BLOCK_SIZE";
1081                 case 0x8A31:
1082                     return "GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS";
1083                 case 0x8A32:
1084                     return "GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS";
1085                 case 0x8A33:
1086                     return "GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS";
1087                 case 0x8A34:
1088                     return "GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT";
1089                 case 0x8B49:
1090                     return "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS";
1091                 case 0x8B4A:
1092                     return "GL_MAX_VERTEX_UNIFORM_COMPONENTS";
1093                 case 0x8B4B:
1094                     return "GL_MAX_VARYING_COMPONENTS";
1095                 case 0x8B4C:
1096                     return "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS";
1097                 case 0x8B4D:
1098                     return "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS";
1099                 case 0x8B8D:
1100                     return "GL_CURRENT_PROGRAM";
1101                 case 0x8B9C:
1102                     return "GL_POINT_SIZE_ARRAY_OES";
1103                 case 0x8B9D:
1104                     return "GL_TEXTURE_CROP_RECT_OES";
1105                 case 0x8B9E:
1106                     return "GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES";
1107                 case 0x8B9F:
1108                     return "GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES";
1109                 case 0x8C10:
1110                     return "GL_TEXTURE_RED_TYPE";
1111                 case 0x8C11:
1112                     return "GL_TEXTURE_GREEN_TYPE";
1113                 case 0x8C12:
1114                     return "GL_TEXTURE_BLUE_TYPE";
1115                 case 0x8C13:
1116                     return "GL_TEXTURE_ALPHA_TYPE";
1117                 case 0x8C16:
1118                     return "GL_TEXTURE_DEPTH_TYPE";
1119                 case 0x8C17:
1120                     return "GL_UNSIGNED_NORMALIZED";
1121                 case 0x8C1D:
1122                     return "GL_TEXTURE_BINDING_2D_ARRAY";
1123                 case 0x8C29:
1124                     return "GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS";
1125                 case 0x8C2A:
1126                     return "GL_TEXTURE_BUFFER_BINDING";
1127                 case 0x8C2B:
1128                     return "GL_MAX_TEXTURE_BUFFER_SIZE";
1129                 case 0x8C2C:
1130                     return "GL_TEXTURE_BINDING_BUFFER";
1131                 case 0x8C2D:
1132                     return "GL_TEXTURE_BUFFER_DATA_STORE_BINDING";
1133                 case 0x8C2F:
1134                     return "GL_ANY_SAMPLES_PASSED_EXT";
1135                 case 0x8C36:
1136                     return "GL_SAMPLE_SHADING";
1137                 case 0x8C37:
1138                     return "GL_MIN_SAMPLE_SHADING_VALUE";
1139                 case 0x8C3E:
1140                     return "GL_UNSIGNED_INT_5_9_9_9_REV";
1141                 case 0x8C3F:
1142                     return "GL_TEXTURE_SHARED_SIZE";
1143                 case 0x8C80:
1144                     return "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS";
1145                 case 0x8C87:
1146                     return "GL_PRIMITIVES_GENERATED_EXT";
1147                 case 0x8C89:
1148                     return "GL_RASTERIZER_DISCARD";
1149                 case 0x8C8A:
1150                     return "GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS";
1151                 case 0x8C8B:
1152                     return "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS";
1153                 case 0x8C8C:
1154                     return "GL_INTERLEAVED_ATTRIBS";
1155                 case 0x8C8D:
1156                     return "GL_SEPARATE_ATTRIBS";
1157                 case 0x8CA3:
1158                     return "GL_STENCIL_BACK_REF";
1159                 case 0x8CA4:
1160                     return "GL_STENCIL_BACK_VALUE_MASK";
1161                 case 0x8CA5:
1162                     return "GL_STENCIL_BACK_WRITEMASK";
1163                 case 0x8CA6:
1164                     return "GL_DRAW_FRAMEBUFFER_BINDING";
1165                 case 0x8CA7:
1166                     return "GL_RENDERBUFFER_BINDING";
1167                 case 0x8CA8:
1168                     return "GL_READ_FRAMEBUFFER_ANGLE";
1169                 case 0x8CA9:
1170                     return "GL_DRAW_FRAMEBUFFER_ANGLE";
1171                 case 0x8CAA:
1172                     return "GL_READ_FRAMEBUFFER_BINDING";
1173                 case 0x8CAB:
1174                     return "GL_RENDERBUFFER_SAMPLES_ANGLE";
1175                 case 0x8CD0:
1176                     return "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE";
1177                 case 0x8CD1:
1178                     return "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES";
1179                 case 0x8CD2:
1180                     return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES";
1181                 case 0x8CD3:
1182                     return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES";
1183                 case 0x8CD4:
1184                     return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES";
1185                 case 0x8CD5:
1186                     return "GL_FRAMEBUFFER_COMPLETE_OES";
1187                 case 0x8CD6:
1188                     return "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES";
1189                 case 0x8CD7:
1190                     return "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES";
1191                 case 0x8CD9:
1192                     return "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS";
1193                 case 0x8CDA:
1194                     return "GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES";
1195                 case 0x8CDD:
1196                     return "GL_FRAMEBUFFER_UNSUPPORTED_OES";
1197                 case 0x8D20:
1198                     return "GL_STENCIL_ATTACHMENT";
1199                 case 0x8D40:
1200                     return "GL_FRAMEBUFFER_OES";
1201                 case 0x8D41:
1202                     return "GL_RENDERBUFFER_OES";
1203                 case 0x8D42:
1204                     return "GL_RENDERBUFFER_WIDTH_OES";
1205                 case 0x8D43:
1206                     return "GL_RENDERBUFFER_HEIGHT_OES";
1207                 case 0x8D44:
1208                     return "GL_RENDERBUFFER_INTERNAL_FORMAT_OES";
1209                 case 0x8D48:
1210                     return "GL_STENCIL_INDEX8";
1211                 case 0x8D50:
1212                     return "GL_RENDERBUFFER_RED_SIZE_OES";
1213                 case 0x8D51:
1214                     return "GL_RENDERBUFFER_GREEN_SIZE_OES";
1215                 case 0x8D52:
1216                     return "GL_RENDERBUFFER_BLUE_SIZE_OES";
1217                 case 0x8D53:
1218                     return "GL_RENDERBUFFER_ALPHA_SIZE_OES";
1219                 case 0x8D54:
1220                     return "GL_RENDERBUFFER_DEPTH_SIZE_OES";
1221                 case 0x8D55:
1222                     return "GL_RENDERBUFFER_STENCIL_SIZE_OES";
1223                 case 0x8D56:
1224                     return "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE";
1225                 case 0x8D57:
1226                     return "GL_MAX_SAMPLES";
1227                 case 0x8D60:
1228                     return "GL_TEXTURE_GEN_STR_OES";
1229                 case 0x8D62:
1230                     return "GL_RGB565";
1231                 case 0x8D69:
1232                     return "GL_PRIMITIVE_RESTART_FIXED_INDEX";
1233                 case 0x8D6A:
1234                     return "GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT";
1235                 case 0x8D6B:
1236                     return "GL_MAX_ELEMENT_INDEX";
1237                 case 0x8D6C:
1238                     return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT";
1239                 case 0x8D94:
1240                     return "GL_RED_INTEGER";
1241                 case 0x8D98:
1242                     return "GL_RGB_INTEGER";
1243                 case 0x8D99:
1244                     return "GL_RGBA_INTEGER";
1245                 case 0x8DA7:
1246                     return "GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT";
1247                 case 0x8DA8:
1248                     return "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT";
1249                 case 0x8DAD:
1250                     return "GL_FLOAT_32_UNSIGNED_INT_24_8_REV";
1251                 case 0x8DC1:
1252                     return "GL_SAMPLER_2D_ARRAY";
1253                 case 0x8DC2:
1254                     return "GL_SAMPLER_BUFFER";
1255                 case 0x8DC4:
1256                     return "GL_SAMPLER_2D_ARRAY_SHADOW";
1257                 case 0x8DC5:
1258                     return "GL_SAMPLER_CUBE_SHADOW";
1259                 case 0x8DC6:
1260                     return "GL_UNSIGNED_INT_VEC2";
1261                 case 0x8DC7:
1262                     return "GL_UNSIGNED_INT_VEC3";
1263                 case 0x8DC8:
1264                     return "GL_UNSIGNED_INT_VEC4";
1265                 case 0x8DCA:
1266                     return "GL_INT_SAMPLER_2D";
1267                 case 0x8DCB:
1268                     return "GL_INT_SAMPLER_3D";
1269                 case 0x8DCC:
1270                     return "GL_INT_SAMPLER_CUBE";
1271                 case 0x8DCF:
1272                     return "GL_INT_SAMPLER_2D_ARRAY";
1273                 case 0x8DD0:
1274                     return "GL_INT_SAMPLER_BUFFER";
1275                 case 0x8DD2:
1276                     return "GL_UNSIGNED_INT_SAMPLER_2D";
1277                 case 0x8DD3:
1278                     return "GL_UNSIGNED_INT_SAMPLER_3D";
1279                 case 0x8DD4:
1280                     return "GL_UNSIGNED_INT_SAMPLER_CUBE";
1281                 case 0x8DD7:
1282                     return "GL_UNSIGNED_INT_SAMPLER_2D_ARRAY";
1283                 case 0x8DD8:
1284                     return "GL_UNSIGNED_INT_SAMPLER_BUFFER";
1285                 case 0x8DD9:
1286                     return "GL_GEOMETRY_SHADER_EXT";
1287                 case 0x8DDF:
1288                     return "GL_MAX_GEOMETRY_UNIFORM_COMPONENTS";
1289                 case 0x8DE0:
1290                     return "GL_MAX_GEOMETRY_OUTPUT_VERTICES";
1291                 case 0x8DE1:
1292                     return "GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS";
1293                 case 0x8DF8:
1294                     return "GL_SHADER_BINARY_FORMATS";
1295                 case 0x8DF9:
1296                     return "GL_NUM_SHADER_BINARY_FORMATS";
1297                 case 0x8DFA:
1298                     return "GL_SHADER_COMPILER";
1299                 case 0x8DFB:
1300                     return "GL_MAX_VERTEX_UNIFORM_VECTORS";
1301                 case 0x8DFC:
1302                     return "GL_MAX_VARYING_VECTORS";
1303                 case 0x8DFD:
1304                     return "GL_MAX_FRAGMENT_UNIFORM_VECTORS";
1305                 case 0x8E1E:
1306                     return "GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS";
1307                 case 0x8E1F:
1308                     return "GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS";
1309                 case 0x8E25:
1310                     return "GL_TRANSFORM_FEEDBACK_BINDING";
1311                 case 0x8E28:
1312                     return "GL_TIMESTAMP_EXT";
1313                 case 0x8E4D:
1314                     return "GL_FIRST_VERTEX_CONVENTION_EXT";
1315                 case 0x8E4E:
1316                     return "GL_LAST_VERTEX_CONVENTION_EXT";
1317                 case 0x8E4F:
1318                     return "GL_PROVOKING_VERTEX";
1319                 case 0x8E50:
1320                     return "GL_SAMPLE_POSITION";
1321                 case 0x8E51:
1322                     return "GL_SAMPLE_MASK";
1323                 case 0x8E52:
1324                     return "GL_SAMPLE_MASK_VALUE";
1325                 case 0x8E59:
1326                     return "GL_MAX_SAMPLE_MASK_WORDS";
1327                 case 0x8E5A:
1328                     return "GL_MAX_GEOMETRY_SHADER_INVOCATIONS";
1329                 case 0x8E5B:
1330                     return "GL_MIN_FRAGMENT_INTERPOLATION_OFFSET";
1331                 case 0x8E5C:
1332                     return "GL_MAX_FRAGMENT_INTERPOLATION_OFFSET";
1333                 case 0x8E5D:
1334                     return "GL_FRAGMENT_INTERPOLATION_OFFSET_BITS";
1335                 case 0x8E5E:
1336                     return "GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET";
1337                 case 0x8E5F:
1338                     return "GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET";
1339                 case 0x8E75:
1340                     return "GL_TESS_CONTROL_OUTPUT_VERTICES";
1341                 case 0x8E76:
1342                     return "GL_TESS_GEN_MODE";
1343                 case 0x8E77:
1344                     return "GL_TESS_GEN_SPACING";
1345                 case 0x8E78:
1346                     return "GL_TESS_GEN_VERTEX_ORDER";
1347                 case 0x8E79:
1348                     return "GL_TESS_GEN_POINT_MODE";
1349                 case 0x8E7A:
1350                     return "GL_ISOLINES";
1351                 case 0x8E7B:
1352                     return "GL_FRACTIONAL_ODD";
1353                 case 0x8E7C:
1354                     return "GL_FRACTIONAL_EVEN";
1355                 case 0x8E7D:
1356                     return "GL_MAX_PATCH_VERTICES";
1357                 case 0x8E7E:
1358                     return "GL_MAX_TESS_GEN_LEVEL";
1359                 case 0x8E7F:
1360                     return "GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS";
1361                 case 0x8E80:
1362                     return "GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS";
1363                 case 0x8E81:
1364                     return "GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS";
1365                 case 0x8E82:
1366                     return "GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS";
1367                 case 0x8E83:
1368                     return "GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS";
1369                 case 0x8E84:
1370                     return "GL_MAX_TESS_PATCH_COMPONENTS";
1371                 case 0x8E85:
1372                     return "GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS";
1373                 case 0x8E86:
1374                     return "GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS";
1375                 case 0x8E89:
1376                     return "GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS";
1377                 case 0x8E8A:
1378                     return "GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS";
1379                 case 0x8F36:
1380                     return "GL_COPY_READ_BUFFER_BINDING";
1381                 case 0x8F37:
1382                     return "GL_COPY_WRITE_BUFFER_BINDING";
1383                 case 0x8F38:
1384                     return "GL_MAX_IMAGE_UNITS";
1385                 case 0x8F39:
1386                     return "GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES";
1387                 case 0x8F3A:
1388                     return "GL_IMAGE_BINDING_NAME";
1389                 case 0x8F3B:
1390                     return "GL_IMAGE_BINDING_LEVEL";
1391                 case 0x8F3C:
1392                     return "GL_IMAGE_BINDING_LAYERED";
1393                 case 0x8F3D:
1394                     return "GL_IMAGE_BINDING_LAYER";
1395                 case 0x8F3E:
1396                     return "GL_IMAGE_BINDING_ACCESS";
1397                 case 0x8F43:
1398                     return "GL_DRAW_INDIRECT_BUFFER_BINDING";
1399                 case 0x8F4F:
1400                     return "GL_VERTEX_BINDING_BUFFER";
1401                 case 0x8F9C:
1402                     return "GL_SIGNED_NORMALIZED";
1403                 case 0x8FBB:
1404                     return "GL_GPU_DISJOINT_EXT";
1405                 case 0x8FBD:
1406                     return "GL_SR8_EXT";
1407                 case 0x900A:
1408                     return "GL_TEXTURE_BINDING_CUBE_MAP_ARRAY";
1409                 case 0x900C:
1410                     return "GL_SAMPLER_CUBE_MAP_ARRAY";
1411                 case 0x900D:
1412                     return "GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW";
1413                 case 0x900E:
1414                     return "GL_INT_SAMPLER_CUBE_MAP_ARRAY";
1415                 case 0x900F:
1416                     return "GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY";
1417                 case 0x904D:
1418                     return "GL_IMAGE_2D";
1419                 case 0x904E:
1420                     return "GL_IMAGE_3D";
1421                 case 0x9050:
1422                     return "GL_IMAGE_CUBE";
1423                 case 0x9051:
1424                     return "GL_IMAGE_BUFFER";
1425                 case 0x9053:
1426                     return "GL_IMAGE_2D_ARRAY";
1427                 case 0x9054:
1428                     return "GL_IMAGE_CUBE_MAP_ARRAY";
1429                 case 0x9058:
1430                     return "GL_INT_IMAGE_2D";
1431                 case 0x9059:
1432                     return "GL_INT_IMAGE_3D";
1433                 case 0x905B:
1434                     return "GL_INT_IMAGE_CUBE";
1435                 case 0x905C:
1436                     return "GL_INT_IMAGE_BUFFER";
1437                 case 0x905E:
1438                     return "GL_INT_IMAGE_2D_ARRAY";
1439                 case 0x905F:
1440                     return "GL_INT_IMAGE_CUBE_MAP_ARRAY";
1441                 case 0x9063:
1442                     return "GL_UNSIGNED_INT_IMAGE_2D";
1443                 case 0x9064:
1444                     return "GL_UNSIGNED_INT_IMAGE_3D";
1445                 case 0x9066:
1446                     return "GL_UNSIGNED_INT_IMAGE_CUBE";
1447                 case 0x9067:
1448                     return "GL_UNSIGNED_INT_IMAGE_BUFFER";
1449                 case 0x9069:
1450                     return "GL_UNSIGNED_INT_IMAGE_2D_ARRAY";
1451                 case 0x906A:
1452                     return "GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY";
1453                 case 0x906E:
1454                     return "GL_IMAGE_BINDING_FORMAT";
1455                 case 0x90C8:
1456                     return "GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE";
1457                 case 0x90C9:
1458                     return "GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS";
1459                 case 0x90CA:
1460                     return "GL_MAX_VERTEX_IMAGE_UNIFORMS";
1461                 case 0x90CB:
1462                     return "GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS";
1463                 case 0x90CC:
1464                     return "GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS";
1465                 case 0x90CD:
1466                     return "GL_MAX_GEOMETRY_IMAGE_UNIFORMS";
1467                 case 0x90CE:
1468                     return "GL_MAX_FRAGMENT_IMAGE_UNIFORMS";
1469                 case 0x90CF:
1470                     return "GL_MAX_COMBINED_IMAGE_UNIFORMS";
1471                 case 0x90D3:
1472                     return "GL_SHADER_STORAGE_BUFFER_BINDING";
1473                 case 0x90D4:
1474                     return "GL_SHADER_STORAGE_BUFFER_START";
1475                 case 0x90D5:
1476                     return "GL_SHADER_STORAGE_BUFFER_SIZE";
1477                 case 0x90D6:
1478                     return "GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS";
1479                 case 0x90D7:
1480                     return "GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS";
1481                 case 0x90D8:
1482                     return "GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS";
1483                 case 0x90D9:
1484                     return "GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS";
1485                 case 0x90DA:
1486                     return "GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS";
1487                 case 0x90DB:
1488                     return "GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS";
1489                 case 0x90DC:
1490                     return "GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS";
1491                 case 0x90DD:
1492                     return "GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS";
1493                 case 0x90DE:
1494                     return "GL_MAX_SHADER_STORAGE_BLOCK_SIZE";
1495                 case 0x90DF:
1496                     return "GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT";
1497                 case 0x90EB:
1498                     return "GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS";
1499                 case 0x90EF:
1500                     return "GL_DISPATCH_INDIRECT_BUFFER_BINDING";
1501                 case 0x90F3:
1502                     return "GL_CONTEXT_ROBUST_ACCESS_EXT";
1503                 case 0x9102:
1504                     return "GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES";
1505                 case 0x9104:
1506                     return "GL_TEXTURE_BINDING_2D_MULTISAMPLE";
1507                 case 0x9105:
1508                     return "GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY";
1509                 case 0x9106:
1510                     return "GL_TEXTURE_SAMPLES";
1511                 case 0x9107:
1512                     return "GL_TEXTURE_FIXED_SAMPLE_LOCATIONS";
1513                 case 0x9108:
1514                     return "GL_SAMPLER_2D_MULTISAMPLE";
1515                 case 0x9109:
1516                     return "GL_INT_SAMPLER_2D_MULTISAMPLE";
1517                 case 0x910A:
1518                     return "GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE";
1519                 case 0x910B:
1520                     return "GL_SAMPLER_2D_MULTISAMPLE_ARRAY";
1521                 case 0x910C:
1522                     return "GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY";
1523                 case 0x910D:
1524                     return "GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY";
1525                 case 0x910E:
1526                     return "GL_MAX_COLOR_TEXTURE_SAMPLES";
1527                 case 0x910F:
1528                     return "GL_MAX_DEPTH_TEXTURE_SAMPLES";
1529                 case 0x9110:
1530                     return "GL_MAX_INTEGER_SAMPLES";
1531                 case 0x9111:
1532                     return "GL_MAX_SERVER_WAIT_TIMEOUT";
1533                 case 0x9116:
1534                     return "GL_SYNC_FENCE";
1535                 case 0x9118:
1536                     return "GL_UNSIGNALED";
1537                 case 0x9119:
1538                     return "GL_SIGNALED";
1539                 case 0x9122:
1540                     return "GL_MAX_VERTEX_OUTPUT_COMPONENTS";
1541                 case 0x9123:
1542                     return "GL_MAX_GEOMETRY_INPUT_COMPONENTS";
1543                 case 0x9124:
1544                     return "GL_MAX_GEOMETRY_OUTPUT_COMPONENTS";
1545                 case 0x9125:
1546                     return "GL_MAX_FRAGMENT_INPUT_COMPONENTS";
1547                 case 0x912F:
1548                     return "GL_TEXTURE_IMMUTABLE_FORMAT";
1549                 case 0x9143:
1550                     return "GL_MAX_DEBUG_MESSAGE_LENGTH";
1551                 case 0x9144:
1552                     return "GL_MAX_DEBUG_LOGGED_MESSAGES";
1553                 case 0x9145:
1554                     return "GL_DEBUG_LOGGED_MESSAGES";
1555                 case 0x9146:
1556                     return "GL_DEBUG_SEVERITY_HIGH_KHR";
1557                 case 0x9147:
1558                     return "GL_DEBUG_SEVERITY_MEDIUM_KHR";
1559                 case 0x9148:
1560                     return "GL_DEBUG_SEVERITY_LOW_KHR";
1561                 case 0x919D:
1562                     return "GL_TEXTURE_BUFFER_OFFSET";
1563                 case 0x919E:
1564                     return "GL_TEXTURE_BUFFER_SIZE";
1565                 case 0x919F:
1566                     return "GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT";
1567                 case 0x91B0:
1568                     return "GL_MAX_SHADER_COMPILER_THREADS_KHR";
1569                 case 0x91B1:
1570                     return "GL_COMPLETION_STATUS_KHR";
1571                 case 0x91BB:
1572                     return "GL_MAX_COMPUTE_UNIFORM_BLOCKS";
1573                 case 0x91BC:
1574                     return "GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS";
1575                 case 0x91BD:
1576                     return "GL_MAX_COMPUTE_IMAGE_UNIFORMS";
1577                 case 0x91BE:
1578                     return "GL_MAX_COMPUTE_WORK_GROUP_COUNT";
1579                 case 0x91BF:
1580                     return "GL_MAX_COMPUTE_WORK_GROUP_SIZE";
1581                 case 0x9294:
1582                     return "GL_MULTIPLY";
1583                 case 0x9295:
1584                     return "GL_SCREEN";
1585                 case 0x9296:
1586                     return "GL_OVERLAY";
1587                 case 0x9297:
1588                     return "GL_DARKEN";
1589                 case 0x9298:
1590                     return "GL_LIGHTEN";
1591                 case 0x9299:
1592                     return "GL_COLORDODGE";
1593                 case 0x929A:
1594                     return "GL_COLORBURN";
1595                 case 0x929B:
1596                     return "GL_HARDLIGHT";
1597                 case 0x929C:
1598                     return "GL_SOFTLIGHT";
1599                 case 0x929E:
1600                     return "GL_DIFFERENCE";
1601                 case 0x92A0:
1602                     return "GL_EXCLUSION";
1603                 case 0x92AD:
1604                     return "GL_HSL_HUE";
1605                 case 0x92AE:
1606                     return "GL_HSL_SATURATION";
1607                 case 0x92AF:
1608                     return "GL_HSL_COLOR";
1609                 case 0x92B0:
1610                     return "GL_HSL_LUMINOSITY";
1611                 case 0x92BE:
1612                     return "GL_PRIMITIVE_BOUNDING_BOX";
1613                 case 0x92C2:
1614                     return "GL_ATOMIC_COUNTER_BUFFER_START";
1615                 case 0x92C3:
1616                     return "GL_ATOMIC_COUNTER_BUFFER_SIZE";
1617                 case 0x92CC:
1618                     return "GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS";
1619                 case 0x92CD:
1620                     return "GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS";
1621                 case 0x92CE:
1622                     return "GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS";
1623                 case 0x92CF:
1624                     return "GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS";
1625                 case 0x92D0:
1626                     return "GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS";
1627                 case 0x92D1:
1628                     return "GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS";
1629                 case 0x92D2:
1630                     return "GL_MAX_VERTEX_ATOMIC_COUNTERS";
1631                 case 0x92D3:
1632                     return "GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS";
1633                 case 0x92D4:
1634                     return "GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS";
1635                 case 0x92D5:
1636                     return "GL_MAX_GEOMETRY_ATOMIC_COUNTERS";
1637                 case 0x92D6:
1638                     return "GL_MAX_FRAGMENT_ATOMIC_COUNTERS";
1639                 case 0x92D7:
1640                     return "GL_MAX_COMBINED_ATOMIC_COUNTERS";
1641                 case 0x92D8:
1642                     return "GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE";
1643                 case 0x92DB:
1644                     return "GL_UNSIGNED_INT_ATOMIC_COUNTER";
1645                 case 0x92DC:
1646                     return "GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS";
1647                 case 0x92E0:
1648                     return "GL_DEBUG_OUTPUT";
1649                 case 0x92E7:
1650                     return "GL_IS_PER_PATCH";
1651                 case 0x92F9:
1652                     return "GL_NAME_LENGTH";
1653                 case 0x92FA:
1654                     return "GL_TYPE";
1655                 case 0x92FB:
1656                     return "GL_ARRAY_SIZE";
1657                 case 0x92FC:
1658                     return "GL_OFFSET";
1659                 case 0x92FD:
1660                     return "GL_BLOCK_INDEX";
1661                 case 0x92FE:
1662                     return "GL_ARRAY_STRIDE";
1663                 case 0x92FF:
1664                     return "GL_MATRIX_STRIDE";
1665                 case 0x9300:
1666                     return "GL_IS_ROW_MAJOR";
1667                 case 0x9301:
1668                     return "GL_ATOMIC_COUNTER_BUFFER_INDEX";
1669                 case 0x9302:
1670                     return "GL_BUFFER_BINDING";
1671                 case 0x9303:
1672                     return "GL_BUFFER_DATA_SIZE";
1673                 case 0x9304:
1674                     return "GL_NUM_ACTIVE_VARIABLES";
1675                 case 0x9305:
1676                     return "GL_ACTIVE_VARIABLES";
1677                 case 0x9306:
1678                     return "GL_REFERENCED_BY_VERTEX_SHADER";
1679                 case 0x9307:
1680                     return "GL_REFERENCED_BY_TESS_CONTROL_SHADER";
1681                 case 0x9308:
1682                     return "GL_REFERENCED_BY_TESS_EVALUATION_SHADER";
1683                 case 0x9309:
1684                     return "GL_REFERENCED_BY_GEOMETRY_SHADER";
1685                 case 0x930A:
1686                     return "GL_REFERENCED_BY_FRAGMENT_SHADER";
1687                 case 0x930B:
1688                     return "GL_REFERENCED_BY_COMPUTE_SHADER";
1689                 case 0x930C:
1690                     return "GL_TOP_LEVEL_ARRAY_SIZE";
1691                 case 0x930D:
1692                     return "GL_TOP_LEVEL_ARRAY_STRIDE";
1693                 case 0x930E:
1694                     return "GL_LOCATION";
1695                 case 0x930F:
1696                     return "GL_LOCATION_INDEX_EXT";
1697                 case 0x9312:
1698                     return "GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT";
1699                 case 0x9315:
1700                     return "GL_MAX_FRAMEBUFFER_WIDTH";
1701                 case 0x9316:
1702                     return "GL_MAX_FRAMEBUFFER_HEIGHT";
1703                 case 0x9317:
1704                     return "GL_MAX_FRAMEBUFFER_LAYERS";
1705                 case 0x9318:
1706                     return "GL_MAX_FRAMEBUFFER_SAMPLES";
1707                 case 0x9381:
1708                     return "GL_MULTISAMPLE_LINE_WIDTH_RANGE";
1709                 case 0x9382:
1710                     return "GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY";
1711                 case 0x93A0:
1712                     return "GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE";
1713                 case 0x93A1:
1714                     return "GL_BGRA8_EXT";
1715                 case 0x93A6:
1716                     return "GL_PROGRAM_BINARY_ANGLE";
1717                 case 0x93AE:
1718                     return "GL_HANDLE_TYPE_ZIRCON_VMO_ANGLE";
1719                 case 0x93AF:
1720                     return "GL_HANDLE_TYPE_ZIRCON_EVENT_ANGLE";
1721                 case 0x93B0:
1722                     return "GL_COMPRESSED_RGBA_ASTC_4x4";
1723                 case 0x93B1:
1724                     return "GL_COMPRESSED_RGBA_ASTC_5x4";
1725                 case 0x93B2:
1726                     return "GL_COMPRESSED_RGBA_ASTC_5x5";
1727                 case 0x93B3:
1728                     return "GL_COMPRESSED_RGBA_ASTC_6x5";
1729                 case 0x93B4:
1730                     return "GL_COMPRESSED_RGBA_ASTC_6x6";
1731                 case 0x93B5:
1732                     return "GL_COMPRESSED_RGBA_ASTC_8x5";
1733                 case 0x93B6:
1734                     return "GL_COMPRESSED_RGBA_ASTC_8x6";
1735                 case 0x93B7:
1736                     return "GL_COMPRESSED_RGBA_ASTC_8x8";
1737                 case 0x93B8:
1738                     return "GL_COMPRESSED_RGBA_ASTC_10x5";
1739                 case 0x93B9:
1740                     return "GL_COMPRESSED_RGBA_ASTC_10x6";
1741                 case 0x93BA:
1742                     return "GL_COMPRESSED_RGBA_ASTC_10x8";
1743                 case 0x93BB:
1744                     return "GL_COMPRESSED_RGBA_ASTC_10x10";
1745                 case 0x93BC:
1746                     return "GL_COMPRESSED_RGBA_ASTC_12x10";
1747                 case 0x93BD:
1748                     return "GL_COMPRESSED_RGBA_ASTC_12x12";
1749                 case 0x93D0:
1750                     return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4";
1751                 case 0x93D1:
1752                     return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4";
1753                 case 0x93D2:
1754                     return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5";
1755                 case 0x93D3:
1756                     return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5";
1757                 case 0x93D4:
1758                     return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6";
1759                 case 0x93D5:
1760                     return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5";
1761                 case 0x93D6:
1762                     return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6";
1763                 case 0x93D7:
1764                     return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8";
1765                 case 0x93D8:
1766                     return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5";
1767                 case 0x93D9:
1768                     return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6";
1769                 case 0x93DA:
1770                     return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8";
1771                 case 0x93DB:
1772                     return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10";
1773                 case 0x93DC:
1774                     return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10";
1775                 case 0x93DD:
1776                     return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12";
1777                 case 0x9582:
1778                     return "GL_NUM_TILING_TYPES_EXT";
1779                 case 0x9583:
1780                     return "GL_TILING_TYPES_EXT";
1781                 case 0x9584:
1782                     return "GL_OPTIMAL_TILING_EXT";
1783                 case 0x9585:
1784                     return "GL_LINEAR_TILING_EXT";
1785                 case 0x9630:
1786                     return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR";
1787                 case 0x9631:
1788                     return "GL_MAX_VIEWS_OVR";
1789                 case 0x9632:
1790                     return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR";
1791                 case 0x9633:
1792                     return "GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR";
1793                 default:
1794                     return kUnknownGLenumString;
1795             }
1796         }
1797 
1798         case GLenumGroup::DepthFunction:
1799         {
1800             switch (value)
1801             {
1802                 case 0x200:
1803                     return "GL_NEVER";
1804                 case 0x201:
1805                     return "GL_LESS";
1806                 case 0x202:
1807                     return "GL_EQUAL";
1808                 case 0x203:
1809                     return "GL_LEQUAL";
1810                 case 0x204:
1811                     return "GL_GREATER";
1812                 case 0x205:
1813                     return "GL_NOTEQUAL";
1814                 case 0x206:
1815                     return "GL_GEQUAL";
1816                 case 0x207:
1817                     return "GL_ALWAYS";
1818                 default:
1819                     return kUnknownGLenumString;
1820             }
1821         }
1822 
1823         case GLenumGroup::DrawBufferMode:
1824         {
1825             switch (value)
1826             {
1827                 case 0x0:
1828                     return "GL_NONE";
1829                 case 0x404:
1830                     return "GL_FRONT";
1831                 case 0x405:
1832                     return "GL_BACK";
1833                 case 0x408:
1834                     return "GL_FRONT_AND_BACK";
1835                 default:
1836                     return kUnknownGLenumString;
1837             }
1838         }
1839 
1840         case GLenumGroup::DrawElementsType:
1841         {
1842             switch (value)
1843             {
1844                 case 0x1401:
1845                     return "GL_UNSIGNED_BYTE";
1846                 case 0x1403:
1847                     return "GL_UNSIGNED_SHORT";
1848                 case 0x1405:
1849                     return "GL_UNSIGNED_INT";
1850                 default:
1851                     return kUnknownGLenumString;
1852             }
1853         }
1854 
1855         case GLenumGroup::EnableCap:
1856         {
1857             switch (value)
1858             {
1859                 case 0xB44:
1860                     return "GL_CULL_FACE";
1861                 case 0xB71:
1862                     return "GL_DEPTH_TEST";
1863                 case 0xB90:
1864                     return "GL_STENCIL_TEST";
1865                 case 0xBD0:
1866                     return "GL_DITHER";
1867                 case 0xBE2:
1868                     return "GL_BLEND";
1869                 case 0xC11:
1870                     return "GL_SCISSOR_TEST";
1871                 case 0xDE1:
1872                     return "GL_TEXTURE_2D";
1873                 case 0x8037:
1874                     return "GL_POLYGON_OFFSET_FILL";
1875                 case 0x8074:
1876                     return "GL_VERTEX_ARRAY";
1877                 default:
1878                     return kUnknownGLenumString;
1879             }
1880         }
1881 
1882         case GLenumGroup::ErrorCode:
1883         {
1884             switch (value)
1885             {
1886                 case 0x500:
1887                     return "GL_INVALID_ENUM";
1888                 case 0x501:
1889                     return "GL_INVALID_VALUE";
1890                 case 0x502:
1891                     return "GL_INVALID_OPERATION";
1892                 case 0x503:
1893                     return "GL_STACK_OVERFLOW";
1894                 case 0x504:
1895                     return "GL_STACK_UNDERFLOW";
1896                 case 0x505:
1897                     return "GL_OUT_OF_MEMORY";
1898                 case 0x506:
1899                     return "GL_INVALID_FRAMEBUFFER_OPERATION";
1900                 default:
1901                     return kUnknownGLenumString;
1902             }
1903         }
1904 
1905         case GLenumGroup::ExternalHandleType:
1906         {
1907             switch (value)
1908             {
1909                 case 0x9586:
1910                     return "GL_HANDLE_TYPE_OPAQUE_FD_EXT";
1911                 default:
1912                     return kUnknownGLenumString;
1913             }
1914         }
1915 
1916         case GLenumGroup::FogCoordinatePointerType:
1917         {
1918             switch (value)
1919             {
1920                 case 0x1406:
1921                     return "GL_FLOAT";
1922                 default:
1923                     return kUnknownGLenumString;
1924             }
1925         }
1926 
1927         case GLenumGroup::FogMode:
1928         {
1929             switch (value)
1930             {
1931                 case 0x2601:
1932                     return "GL_LINEAR";
1933                 default:
1934                     return kUnknownGLenumString;
1935             }
1936         }
1937 
1938         case GLenumGroup::FogPointerTypeEXT:
1939         {
1940             switch (value)
1941             {
1942                 case 0x1406:
1943                     return "GL_FLOAT";
1944                 default:
1945                     return kUnknownGLenumString;
1946             }
1947         }
1948 
1949         case GLenumGroup::FogPointerTypeIBM:
1950         {
1951             switch (value)
1952             {
1953                 case 0x1406:
1954                     return "GL_FLOAT";
1955                 default:
1956                     return kUnknownGLenumString;
1957             }
1958         }
1959 
1960         case GLenumGroup::FramebufferAttachment:
1961         {
1962             switch (value)
1963             {
1964                 case 0x8CDF:
1965                     return "GL_MAX_COLOR_ATTACHMENTS";
1966                 case 0x8CE0:
1967                     return "GL_COLOR_ATTACHMENT0";
1968                 case 0x8CE1:
1969                     return "GL_COLOR_ATTACHMENT1";
1970                 case 0x8CE2:
1971                     return "GL_COLOR_ATTACHMENT2";
1972                 case 0x8CE3:
1973                     return "GL_COLOR_ATTACHMENT3";
1974                 case 0x8CE4:
1975                     return "GL_COLOR_ATTACHMENT4";
1976                 case 0x8CE5:
1977                     return "GL_COLOR_ATTACHMENT5";
1978                 case 0x8CE6:
1979                     return "GL_COLOR_ATTACHMENT6";
1980                 case 0x8CE7:
1981                     return "GL_COLOR_ATTACHMENT7";
1982                 case 0x8CE8:
1983                     return "GL_COLOR_ATTACHMENT8";
1984                 case 0x8CE9:
1985                     return "GL_COLOR_ATTACHMENT9";
1986                 case 0x8CEA:
1987                     return "GL_COLOR_ATTACHMENT10";
1988                 case 0x8CEB:
1989                     return "GL_COLOR_ATTACHMENT11";
1990                 case 0x8CEC:
1991                     return "GL_COLOR_ATTACHMENT12";
1992                 case 0x8CED:
1993                     return "GL_COLOR_ATTACHMENT13";
1994                 case 0x8CEE:
1995                     return "GL_COLOR_ATTACHMENT14";
1996                 case 0x8CEF:
1997                     return "GL_COLOR_ATTACHMENT15";
1998                 case 0x8CF0:
1999                     return "GL_COLOR_ATTACHMENT16";
2000                 case 0x8CF1:
2001                     return "GL_COLOR_ATTACHMENT17";
2002                 case 0x8CF2:
2003                     return "GL_COLOR_ATTACHMENT18";
2004                 case 0x8CF3:
2005                     return "GL_COLOR_ATTACHMENT19";
2006                 case 0x8CF4:
2007                     return "GL_COLOR_ATTACHMENT20";
2008                 case 0x8CF5:
2009                     return "GL_COLOR_ATTACHMENT21";
2010                 case 0x8CF6:
2011                     return "GL_COLOR_ATTACHMENT22";
2012                 case 0x8CF7:
2013                     return "GL_COLOR_ATTACHMENT23";
2014                 case 0x8CF8:
2015                     return "GL_COLOR_ATTACHMENT24";
2016                 case 0x8CF9:
2017                     return "GL_COLOR_ATTACHMENT25";
2018                 case 0x8CFA:
2019                     return "GL_COLOR_ATTACHMENT26";
2020                 case 0x8CFB:
2021                     return "GL_COLOR_ATTACHMENT27";
2022                 case 0x8CFC:
2023                     return "GL_COLOR_ATTACHMENT28";
2024                 case 0x8CFD:
2025                     return "GL_COLOR_ATTACHMENT29";
2026                 case 0x8CFE:
2027                     return "GL_COLOR_ATTACHMENT30";
2028                 case 0x8CFF:
2029                     return "GL_COLOR_ATTACHMENT31";
2030                 case 0x8D00:
2031                     return "GL_DEPTH_ATTACHMENT";
2032                 default:
2033                     return kUnknownGLenumString;
2034             }
2035         }
2036 
2037         case GLenumGroup::FramebufferAttachmentParameterName:
2038         {
2039             switch (value)
2040             {
2041                 case 0x8210:
2042                     return "GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING";
2043                 case 0x8211:
2044                     return "GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE";
2045                 case 0x8212:
2046                     return "GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE";
2047                 case 0x8213:
2048                     return "GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE";
2049                 case 0x8214:
2050                     return "GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE";
2051                 case 0x8215:
2052                     return "GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE";
2053                 case 0x8216:
2054                     return "GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE";
2055                 case 0x8217:
2056                     return "GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE";
2057                 case 0x8CD1:
2058                     return "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME";
2059                 case 0x8CD2:
2060                     return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL";
2061                 case 0x8CD3:
2062                     return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE";
2063                 case 0x8CD4:
2064                     return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER";
2065                 case 0x8DA7:
2066                     return "GL_FRAMEBUFFER_ATTACHMENT_LAYERED";
2067                 default:
2068                     return kUnknownGLenumString;
2069             }
2070         }
2071 
2072         case GLenumGroup::FramebufferParameterName:
2073         {
2074             switch (value)
2075             {
2076                 case 0x9310:
2077                     return "GL_FRAMEBUFFER_DEFAULT_WIDTH";
2078                 case 0x9311:
2079                     return "GL_FRAMEBUFFER_DEFAULT_HEIGHT";
2080                 case 0x9312:
2081                     return "GL_FRAMEBUFFER_DEFAULT_LAYERS";
2082                 case 0x9313:
2083                     return "GL_FRAMEBUFFER_DEFAULT_SAMPLES";
2084                 case 0x9314:
2085                     return "GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS";
2086                 default:
2087                     return kUnknownGLenumString;
2088             }
2089         }
2090 
2091         case GLenumGroup::FramebufferStatus:
2092         {
2093             switch (value)
2094             {
2095                 case 0x8219:
2096                     return "GL_FRAMEBUFFER_UNDEFINED";
2097                 case 0x8CD5:
2098                     return "GL_FRAMEBUFFER_COMPLETE";
2099                 case 0x8CD6:
2100                     return "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT";
2101                 case 0x8CD7:
2102                     return "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";
2103                 case 0x8CDD:
2104                     return "GL_FRAMEBUFFER_UNSUPPORTED";
2105                 case 0x8D56:
2106                     return "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE";
2107                 case 0x8DA8:
2108                     return "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS";
2109                 default:
2110                     return kUnknownGLenumString;
2111             }
2112         }
2113 
2114         case GLenumGroup::FramebufferTarget:
2115         {
2116             switch (value)
2117             {
2118                 case 0x8CA8:
2119                     return "GL_READ_FRAMEBUFFER";
2120                 case 0x8CA9:
2121                     return "GL_DRAW_FRAMEBUFFER";
2122                 case 0x8D40:
2123                     return "GL_FRAMEBUFFER";
2124                 default:
2125                     return kUnknownGLenumString;
2126             }
2127         }
2128 
2129         case GLenumGroup::FrontFaceDirection:
2130         {
2131             switch (value)
2132             {
2133                 case 0x900:
2134                     return "GL_CW";
2135                 case 0x901:
2136                     return "GL_CCW";
2137                 default:
2138                     return kUnknownGLenumString;
2139             }
2140         }
2141 
2142         case GLenumGroup::GetFramebufferParameter:
2143         {
2144             switch (value)
2145             {
2146                 case 0x80A8:
2147                     return "GL_SAMPLE_BUFFERS";
2148                 case 0x80A9:
2149                     return "GL_SAMPLES";
2150                 case 0x8B9A:
2151                     return "GL_IMPLEMENTATION_COLOR_READ_TYPE";
2152                 case 0x8B9B:
2153                     return "GL_IMPLEMENTATION_COLOR_READ_FORMAT";
2154                 case 0x9310:
2155                     return "GL_FRAMEBUFFER_DEFAULT_WIDTH";
2156                 case 0x9311:
2157                     return "GL_FRAMEBUFFER_DEFAULT_HEIGHT";
2158                 case 0x9312:
2159                     return "GL_FRAMEBUFFER_DEFAULT_LAYERS";
2160                 case 0x9313:
2161                     return "GL_FRAMEBUFFER_DEFAULT_SAMPLES";
2162                 case 0x9314:
2163                     return "GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS";
2164                 default:
2165                     return kUnknownGLenumString;
2166             }
2167         }
2168 
2169         case GLenumGroup::GetPName:
2170         {
2171             switch (value)
2172             {
2173                 case 0xB21:
2174                     return "GL_LINE_WIDTH";
2175                 case 0xB44:
2176                     return "GL_CULL_FACE";
2177                 case 0xB45:
2178                     return "GL_CULL_FACE_MODE";
2179                 case 0xB46:
2180                     return "GL_FRONT_FACE";
2181                 case 0xB70:
2182                     return "GL_DEPTH_RANGE";
2183                 case 0xB71:
2184                     return "GL_DEPTH_TEST";
2185                 case 0xB72:
2186                     return "GL_DEPTH_WRITEMASK";
2187                 case 0xB73:
2188                     return "GL_DEPTH_CLEAR_VALUE";
2189                 case 0xB74:
2190                     return "GL_DEPTH_FUNC";
2191                 case 0xB90:
2192                     return "GL_STENCIL_TEST";
2193                 case 0xB91:
2194                     return "GL_STENCIL_CLEAR_VALUE";
2195                 case 0xB92:
2196                     return "GL_STENCIL_FUNC";
2197                 case 0xB93:
2198                     return "GL_STENCIL_VALUE_MASK";
2199                 case 0xB94:
2200                     return "GL_STENCIL_FAIL";
2201                 case 0xB95:
2202                     return "GL_STENCIL_PASS_DEPTH_FAIL";
2203                 case 0xB96:
2204                     return "GL_STENCIL_PASS_DEPTH_PASS";
2205                 case 0xB97:
2206                     return "GL_STENCIL_REF";
2207                 case 0xB98:
2208                     return "GL_STENCIL_WRITEMASK";
2209                 case 0xBA2:
2210                     return "GL_VIEWPORT";
2211                 case 0xBD0:
2212                     return "GL_DITHER";
2213                 case 0xBE2:
2214                     return "GL_BLEND";
2215                 case 0xC02:
2216                     return "GL_READ_BUFFER";
2217                 case 0xC10:
2218                     return "GL_SCISSOR_BOX";
2219                 case 0xC11:
2220                     return "GL_SCISSOR_TEST";
2221                 case 0xC22:
2222                     return "GL_COLOR_CLEAR_VALUE";
2223                 case 0xC23:
2224                     return "GL_COLOR_WRITEMASK";
2225                 case 0xCF2:
2226                     return "GL_UNPACK_ROW_LENGTH";
2227                 case 0xCF3:
2228                     return "GL_UNPACK_SKIP_ROWS";
2229                 case 0xCF4:
2230                     return "GL_UNPACK_SKIP_PIXELS";
2231                 case 0xCF5:
2232                     return "GL_UNPACK_ALIGNMENT";
2233                 case 0xD02:
2234                     return "GL_PACK_ROW_LENGTH";
2235                 case 0xD03:
2236                     return "GL_PACK_SKIP_ROWS";
2237                 case 0xD04:
2238                     return "GL_PACK_SKIP_PIXELS";
2239                 case 0xD05:
2240                     return "GL_PACK_ALIGNMENT";
2241                 case 0xD33:
2242                     return "GL_MAX_TEXTURE_SIZE";
2243                 case 0xD3A:
2244                     return "GL_MAX_VIEWPORT_DIMS";
2245                 case 0xD50:
2246                     return "GL_SUBPIXEL_BITS";
2247                 case 0xD52:
2248                     return "GL_RED_BITS";
2249                 case 0xD53:
2250                     return "GL_GREEN_BITS";
2251                 case 0xD54:
2252                     return "GL_BLUE_BITS";
2253                 case 0xD55:
2254                     return "GL_ALPHA_BITS";
2255                 case 0xD56:
2256                     return "GL_DEPTH_BITS";
2257                 case 0xD57:
2258                     return "GL_STENCIL_BITS";
2259                 case 0xDE1:
2260                     return "GL_TEXTURE_2D";
2261                 case 0x2A00:
2262                     return "GL_POLYGON_OFFSET_UNITS";
2263                 case 0x8037:
2264                     return "GL_POLYGON_OFFSET_FILL";
2265                 case 0x8038:
2266                     return "GL_POLYGON_OFFSET_FACTOR";
2267                 case 0x8069:
2268                     return "GL_TEXTURE_BINDING_2D";
2269                 case 0x806A:
2270                     return "GL_TEXTURE_BINDING_3D";
2271                 case 0x8074:
2272                     return "GL_VERTEX_ARRAY";
2273                 case 0x846D:
2274                     return "GL_ALIASED_POINT_SIZE_RANGE";
2275                 case 0x846E:
2276                     return "GL_ALIASED_LINE_WIDTH_RANGE";
2277                 case 0x9596:
2278                     return "GL_NUM_DEVICE_UUIDS_EXT";
2279                 case 0x9597:
2280                     return "GL_DEVICE_UUID_EXT";
2281                 case 0x9598:
2282                     return "GL_DRIVER_UUID_EXT";
2283                 default:
2284                     return kUnknownGLenumString;
2285             }
2286         }
2287 
2288         case GLenumGroup::GetPointervPName:
2289         {
2290             switch (value)
2291             {
2292                 case 0x8244:
2293                     return "GL_DEBUG_CALLBACK_FUNCTION";
2294                 case 0x8245:
2295                     return "GL_DEBUG_CALLBACK_USER_PARAM";
2296                 default:
2297                     return kUnknownGLenumString;
2298             }
2299         }
2300 
2301         case GLenumGroup::GetTextureParameter:
2302         {
2303             switch (value)
2304             {
2305                 case 0x1000:
2306                     return "GL_TEXTURE_WIDTH";
2307                 case 0x1001:
2308                     return "GL_TEXTURE_HEIGHT";
2309                 case 0x1003:
2310                     return "GL_TEXTURE_INTERNAL_FORMAT";
2311                 case 0x1004:
2312                     return "GL_TEXTURE_BORDER_COLOR";
2313                 case 0x2800:
2314                     return "GL_TEXTURE_MAG_FILTER";
2315                 case 0x2801:
2316                     return "GL_TEXTURE_MIN_FILTER";
2317                 case 0x2802:
2318                     return "GL_TEXTURE_WRAP_S";
2319                 case 0x2803:
2320                     return "GL_TEXTURE_WRAP_T";
2321                 case 0x805C:
2322                     return "GL_TEXTURE_RED_SIZE";
2323                 case 0x805D:
2324                     return "GL_TEXTURE_GREEN_SIZE";
2325                 case 0x805E:
2326                     return "GL_TEXTURE_BLUE_SIZE";
2327                 case 0x805F:
2328                     return "GL_TEXTURE_ALPHA_SIZE";
2329                 default:
2330                     return kUnknownGLenumString;
2331             }
2332         }
2333 
2334         case GLenumGroup::GraphicsResetStatus:
2335         {
2336             switch (value)
2337             {
2338                 case 0x8253:
2339                     return "GL_GUILTY_CONTEXT_RESET";
2340                 case 0x8254:
2341                     return "GL_INNOCENT_CONTEXT_RESET";
2342                 case 0x8255:
2343                     return "GL_UNKNOWN_CONTEXT_RESET";
2344                 default:
2345                     return kUnknownGLenumString;
2346             }
2347         }
2348 
2349         case GLenumGroup::HintMode:
2350         {
2351             switch (value)
2352             {
2353                 case 0x1100:
2354                     return "GL_DONT_CARE";
2355                 case 0x1101:
2356                     return "GL_FASTEST";
2357                 case 0x1102:
2358                     return "GL_NICEST";
2359                 default:
2360                     return kUnknownGLenumString;
2361             }
2362         }
2363 
2364         case GLenumGroup::HintTarget:
2365         {
2366             switch (value)
2367             {
2368                 case 0x8192:
2369                     return "GL_GENERATE_MIPMAP_HINT";
2370                 case 0x8257:
2371                     return "GL_PROGRAM_BINARY_RETRIEVABLE_HINT";
2372                 case 0x8B8B:
2373                     return "GL_FRAGMENT_SHADER_DERIVATIVE_HINT";
2374                 default:
2375                     return kUnknownGLenumString;
2376             }
2377         }
2378 
2379         case GLenumGroup::IndexPointerType:
2380         {
2381             switch (value)
2382             {
2383                 case 0x1402:
2384                     return "GL_SHORT";
2385                 case 0x1404:
2386                     return "GL_INT";
2387                 case 0x1406:
2388                     return "GL_FLOAT";
2389                 default:
2390                     return kUnknownGLenumString;
2391             }
2392         }
2393 
2394         case GLenumGroup::InternalFormat:
2395         {
2396             switch (value)
2397             {
2398                 case 0x1802:
2399                     return "GL_STENCIL";
2400                 case 0x1902:
2401                     return "GL_DEPTH_COMPONENT";
2402                 case 0x1903:
2403                     return "GL_RED";
2404                 case 0x1906:
2405                     return "GL_ALPHA";
2406                 case 0x1907:
2407                     return "GL_RGB";
2408                 case 0x1908:
2409                     return "GL_RGBA";
2410                 case 0x1909:
2411                     return "GL_LUMINANCE";
2412                 case 0x190A:
2413                     return "GL_LUMINANCE_ALPHA";
2414                 case 0x8051:
2415                     return "GL_RGB8";
2416                 case 0x8052:
2417                     return "GL_RGB10_EXT";
2418                 case 0x8056:
2419                     return "GL_RGBA4";
2420                 case 0x8057:
2421                     return "GL_RGB5_A1";
2422                 case 0x8058:
2423                     return "GL_RGBA8";
2424                 case 0x8059:
2425                     return "GL_RGB10_A2";
2426                 case 0x80E1:
2427                     return "GL_BGRA_EXT";
2428                 case 0x81A5:
2429                     return "GL_DEPTH_COMPONENT16";
2430                 case 0x81A7:
2431                     return "GL_DEPTH_COMPONENT32_OES";
2432                 case 0x8227:
2433                     return "GL_RG";
2434                 case 0x8229:
2435                     return "GL_R8";
2436                 case 0x822B:
2437                     return "GL_RG8";
2438                 case 0x822D:
2439                     return "GL_R16F";
2440                 case 0x822E:
2441                     return "GL_R32F";
2442                 case 0x822F:
2443                     return "GL_RG16F";
2444                 case 0x8230:
2445                     return "GL_RG32F";
2446                 case 0x8231:
2447                     return "GL_R8I";
2448                 case 0x8232:
2449                     return "GL_R8UI";
2450                 case 0x8233:
2451                     return "GL_R16I";
2452                 case 0x8234:
2453                     return "GL_R16UI";
2454                 case 0x8235:
2455                     return "GL_R32I";
2456                 case 0x8236:
2457                     return "GL_R32UI";
2458                 case 0x8237:
2459                     return "GL_RG8I";
2460                 case 0x8238:
2461                     return "GL_RG8UI";
2462                 case 0x8239:
2463                     return "GL_RG16I";
2464                 case 0x823A:
2465                     return "GL_RG16UI";
2466                 case 0x823B:
2467                     return "GL_RG32I";
2468                 case 0x823C:
2469                     return "GL_RG32UI";
2470                 case 0x83F0:
2471                     return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT";
2472                 case 0x83F1:
2473                     return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT";
2474                 case 0x83F2:
2475                     return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT";
2476                 case 0x83F3:
2477                     return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT";
2478                 case 0x84F9:
2479                     return "GL_DEPTH_STENCIL";
2480                 case 0x8814:
2481                     return "GL_RGBA32F";
2482                 case 0x881A:
2483                     return "GL_RGBA16F";
2484                 case 0x881B:
2485                     return "GL_RGB16F";
2486                 case 0x88F0:
2487                     return "GL_DEPTH24_STENCIL8";
2488                 case 0x8C3A:
2489                     return "GL_R11F_G11F_B10F";
2490                 case 0x8C3D:
2491                     return "GL_RGB9_E5";
2492                 case 0x8C40:
2493                     return "GL_SRGB";
2494                 case 0x8C41:
2495                     return "GL_SRGB8";
2496                 case 0x8C42:
2497                     return "GL_SRGB_ALPHA_EXT";
2498                 case 0x8C43:
2499                     return "GL_SRGB8_ALPHA8";
2500                 case 0x8C4C:
2501                     return "GL_COMPRESSED_SRGB_S3TC_DXT1_EXT";
2502                 case 0x8C4D:
2503                     return "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT";
2504                 case 0x8C4E:
2505                     return "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT";
2506                 case 0x8C4F:
2507                     return "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT";
2508                 case 0x8CAC:
2509                     return "GL_DEPTH_COMPONENT32F";
2510                 case 0x8CAD:
2511                     return "GL_DEPTH32F_STENCIL8";
2512                 case 0x8D64:
2513                     return "GL_ETC1_RGB8_OES";
2514                 case 0x8D70:
2515                     return "GL_RGBA32UI";
2516                 case 0x8D71:
2517                     return "GL_RGB32UI";
2518                 case 0x8D76:
2519                     return "GL_RGBA16UI";
2520                 case 0x8D77:
2521                     return "GL_RGB16UI";
2522                 case 0x8D7C:
2523                     return "GL_RGBA8UI";
2524                 case 0x8D7D:
2525                     return "GL_RGB8UI";
2526                 case 0x8D82:
2527                     return "GL_RGBA32I";
2528                 case 0x8D83:
2529                     return "GL_RGB32I";
2530                 case 0x8D88:
2531                     return "GL_RGBA16I";
2532                 case 0x8D89:
2533                     return "GL_RGB16I";
2534                 case 0x8D8E:
2535                     return "GL_RGBA8I";
2536                 case 0x8D8F:
2537                     return "GL_RGB8I";
2538                 case 0x8DBB:
2539                     return "GL_COMPRESSED_RED_RGTC1_EXT";
2540                 case 0x8DBC:
2541                     return "GL_COMPRESSED_SIGNED_RED_RGTC1_EXT";
2542                 case 0x8DBD:
2543                     return "GL_COMPRESSED_RED_GREEN_RGTC2_EXT";
2544                 case 0x8DBE:
2545                     return "GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT";
2546                 case 0x8E8C:
2547                     return "GL_COMPRESSED_RGBA_BPTC_UNORM_EXT";
2548                 case 0x8E8D:
2549                     return "GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT";
2550                 case 0x8E8E:
2551                     return "GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT";
2552                 case 0x8E8F:
2553                     return "GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT";
2554                 case 0x8F94:
2555                     return "GL_R8_SNORM";
2556                 case 0x8F95:
2557                     return "GL_RG8_SNORM";
2558                 case 0x8F96:
2559                     return "GL_RGB8_SNORM";
2560                 case 0x8F97:
2561                     return "GL_RGBA8_SNORM";
2562                 case 0x906F:
2563                     return "GL_RGB10_A2UI";
2564                 case 0x9270:
2565                     return "GL_COMPRESSED_R11_EAC";
2566                 case 0x9271:
2567                     return "GL_COMPRESSED_SIGNED_R11_EAC";
2568                 case 0x9272:
2569                     return "GL_COMPRESSED_RG11_EAC";
2570                 case 0x9273:
2571                     return "GL_COMPRESSED_SIGNED_RG11_EAC";
2572                 case 0x9274:
2573                     return "GL_COMPRESSED_RGB8_ETC2";
2574                 case 0x9275:
2575                     return "GL_COMPRESSED_SRGB8_ETC2";
2576                 case 0x9276:
2577                     return "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2";
2578                 case 0x9277:
2579                     return "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2";
2580                 case 0x9278:
2581                     return "GL_COMPRESSED_RGBA8_ETC2_EAC";
2582                 case 0x9279:
2583                     return "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC";
2584                 default:
2585                     return kUnknownGLenumString;
2586             }
2587         }
2588 
2589         case GLenumGroup::InternalFormatPName:
2590         {
2591             switch (value)
2592             {
2593                 case 0x80A9:
2594                     return "GL_SAMPLES";
2595                 case 0x86A1:
2596                     return "GL_TEXTURE_COMPRESSED";
2597                 case 0x90C7:
2598                     return "GL_IMAGE_FORMAT_COMPATIBILITY_TYPE";
2599                 case 0x9380:
2600                     return "GL_NUM_SAMPLE_COUNTS";
2601                 default:
2602                     return kUnknownGLenumString;
2603             }
2604         }
2605 
2606         case GLenumGroup::LightEnvModeSGIX:
2607         {
2608             switch (value)
2609             {
2610                 case 0x1E01:
2611                     return "GL_REPLACE";
2612                 default:
2613                     return kUnknownGLenumString;
2614             }
2615         }
2616 
2617         case GLenumGroup::ListNameType:
2618         {
2619             switch (value)
2620             {
2621                 case 0x1400:
2622                     return "GL_BYTE";
2623                 case 0x1401:
2624                     return "GL_UNSIGNED_BYTE";
2625                 case 0x1402:
2626                     return "GL_SHORT";
2627                 case 0x1403:
2628                     return "GL_UNSIGNED_SHORT";
2629                 case 0x1404:
2630                     return "GL_INT";
2631                 case 0x1405:
2632                     return "GL_UNSIGNED_INT";
2633                 case 0x1406:
2634                     return "GL_FLOAT";
2635                 default:
2636                     return kUnknownGLenumString;
2637             }
2638         }
2639 
2640         case GLenumGroup::LogicOp:
2641         {
2642             switch (value)
2643             {
2644                 case 0x150A:
2645                     return "GL_INVERT";
2646                 default:
2647                     return kUnknownGLenumString;
2648             }
2649         }
2650 
2651         case GLenumGroup::MapBufferUsageMask:
2652         {
2653             switch (value)
2654             {
2655                 case 0x1:
2656                     return "GL_MAP_READ_BIT";
2657                 case 0x2:
2658                     return "GL_MAP_WRITE_BIT";
2659                 case 0x4:
2660                     return "GL_MAP_INVALIDATE_RANGE_BIT";
2661                 case 0x8:
2662                     return "GL_MAP_INVALIDATE_BUFFER_BIT";
2663                 case 0x10:
2664                     return "GL_MAP_FLUSH_EXPLICIT_BIT";
2665                 case 0x20:
2666                     return "GL_MAP_UNSYNCHRONIZED_BIT";
2667                 default:
2668                     return kUnknownGLenumString;
2669             }
2670         }
2671 
2672         case GLenumGroup::MaterialFace:
2673         {
2674             switch (value)
2675             {
2676                 case 0x404:
2677                     return "GL_FRONT";
2678                 case 0x405:
2679                     return "GL_BACK";
2680                 case 0x408:
2681                     return "GL_FRONT_AND_BACK";
2682                 default:
2683                     return kUnknownGLenumString;
2684             }
2685         }
2686 
2687         case GLenumGroup::MatrixMode:
2688         {
2689             switch (value)
2690             {
2691                 case 0x1702:
2692                     return "GL_TEXTURE";
2693                 default:
2694                     return kUnknownGLenumString;
2695             }
2696         }
2697 
2698         case GLenumGroup::MemoryBarrierMask:
2699         {
2700             switch (value)
2701             {
2702                 case 0x1:
2703                     return "GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT";
2704                 case 0x2:
2705                     return "GL_ELEMENT_ARRAY_BARRIER_BIT";
2706                 case 0x4:
2707                     return "GL_UNIFORM_BARRIER_BIT";
2708                 case 0x8:
2709                     return "GL_TEXTURE_FETCH_BARRIER_BIT";
2710                 case 0x20:
2711                     return "GL_SHADER_IMAGE_ACCESS_BARRIER_BIT";
2712                 case 0x40:
2713                     return "GL_COMMAND_BARRIER_BIT";
2714                 case 0x80:
2715                     return "GL_PIXEL_BUFFER_BARRIER_BIT";
2716                 case 0x100:
2717                     return "GL_TEXTURE_UPDATE_BARRIER_BIT";
2718                 case 0x200:
2719                     return "GL_BUFFER_UPDATE_BARRIER_BIT";
2720                 case 0x400:
2721                     return "GL_FRAMEBUFFER_BARRIER_BIT";
2722                 case 0x800:
2723                     return "GL_TRANSFORM_FEEDBACK_BARRIER_BIT";
2724                 case 0x1000:
2725                     return "GL_ATOMIC_COUNTER_BARRIER_BIT";
2726                 case 0x2000:
2727                     return "GL_SHADER_STORAGE_BARRIER_BIT";
2728                 case 0xFFFFFFFF:
2729                     return "GL_ALL_BARRIER_BITS";
2730                 default:
2731                     return kUnknownGLenumString;
2732             }
2733         }
2734 
2735         case GLenumGroup::MemoryObjectParameterName:
2736         {
2737             switch (value)
2738             {
2739                 case 0x9581:
2740                     return "GL_DEDICATED_MEMORY_OBJECT_EXT";
2741                 case 0x959B:
2742                     return "GL_PROTECTED_MEMORY_OBJECT_EXT";
2743                 default:
2744                     return kUnknownGLenumString;
2745             }
2746         }
2747 
2748         case GLenumGroup::NormalPointerType:
2749         {
2750             switch (value)
2751             {
2752                 case 0x1400:
2753                     return "GL_BYTE";
2754                 case 0x1402:
2755                     return "GL_SHORT";
2756                 case 0x1404:
2757                     return "GL_INT";
2758                 case 0x1406:
2759                     return "GL_FLOAT";
2760                 default:
2761                     return kUnknownGLenumString;
2762             }
2763         }
2764 
2765         case GLenumGroup::ObjectIdentifier:
2766         {
2767             switch (value)
2768             {
2769                 case 0x1702:
2770                     return "GL_TEXTURE";
2771                 case 0x8074:
2772                     return "GL_VERTEX_ARRAY";
2773                 case 0x82E0:
2774                     return "GL_BUFFER";
2775                 case 0x82E1:
2776                     return "GL_SHADER";
2777                 case 0x82E2:
2778                     return "GL_PROGRAM";
2779                 case 0x82E3:
2780                     return "GL_QUERY";
2781                 case 0x82E4:
2782                     return "GL_PROGRAM_PIPELINE";
2783                 case 0x82E6:
2784                     return "GL_SAMPLER";
2785                 case 0x8D40:
2786                     return "GL_FRAMEBUFFER";
2787                 case 0x8D41:
2788                     return "GL_RENDERBUFFER";
2789                 case 0x8E22:
2790                     return "GL_TRANSFORM_FEEDBACK";
2791                 default:
2792                     return kUnknownGLenumString;
2793             }
2794         }
2795 
2796         case GLenumGroup::PatchParameterName:
2797         {
2798             switch (value)
2799             {
2800                 case 0x8E72:
2801                     return "GL_PATCH_VERTICES";
2802                 default:
2803                     return kUnknownGLenumString;
2804             }
2805         }
2806 
2807         case GLenumGroup::PathFillMode:
2808         {
2809             switch (value)
2810             {
2811                 case 0x150A:
2812                     return "GL_INVERT";
2813                 default:
2814                     return kUnknownGLenumString;
2815             }
2816         }
2817 
2818         case GLenumGroup::PathFontStyle:
2819         {
2820             switch (value)
2821             {
2822                 case 0x0:
2823                     return "GL_NONE";
2824                 default:
2825                     return kUnknownGLenumString;
2826             }
2827         }
2828 
2829         case GLenumGroup::PathGenMode:
2830         {
2831             switch (value)
2832             {
2833                 case 0x0:
2834                     return "GL_NONE";
2835                 default:
2836                     return kUnknownGLenumString;
2837             }
2838         }
2839 
2840         case GLenumGroup::PathTransformType:
2841         {
2842             switch (value)
2843             {
2844                 case 0x0:
2845                     return "GL_NONE";
2846                 default:
2847                     return kUnknownGLenumString;
2848             }
2849         }
2850 
2851         case GLenumGroup::PipelineParameterName:
2852         {
2853             switch (value)
2854             {
2855                 case 0x8259:
2856                     return "GL_ACTIVE_PROGRAM";
2857                 case 0x8B30:
2858                     return "GL_FRAGMENT_SHADER";
2859                 case 0x8B31:
2860                     return "GL_VERTEX_SHADER";
2861                 case 0x8B84:
2862                     return "GL_INFO_LOG_LENGTH";
2863                 case 0x8DD9:
2864                     return "GL_GEOMETRY_SHADER";
2865                 case 0x8E87:
2866                     return "GL_TESS_EVALUATION_SHADER";
2867                 case 0x8E88:
2868                     return "GL_TESS_CONTROL_SHADER";
2869                 default:
2870                     return kUnknownGLenumString;
2871             }
2872         }
2873 
2874         case GLenumGroup::PixelCopyType:
2875         {
2876             switch (value)
2877             {
2878                 case 0x1800:
2879                     return "GL_COLOR";
2880                 case 0x1801:
2881                     return "GL_DEPTH";
2882                 case 0x1802:
2883                     return "GL_STENCIL";
2884                 default:
2885                     return kUnknownGLenumString;
2886             }
2887         }
2888 
2889         case GLenumGroup::PixelFormat:
2890         {
2891             switch (value)
2892             {
2893                 case 0x1403:
2894                     return "GL_UNSIGNED_SHORT";
2895                 case 0x1405:
2896                     return "GL_UNSIGNED_INT";
2897                 case 0x1901:
2898                     return "GL_STENCIL_INDEX";
2899                 case 0x1902:
2900                     return "GL_DEPTH_COMPONENT";
2901                 case 0x1903:
2902                     return "GL_RED";
2903                 case 0x1904:
2904                     return "GL_GREEN";
2905                 case 0x1905:
2906                     return "GL_BLUE";
2907                 case 0x1906:
2908                     return "GL_ALPHA";
2909                 case 0x1907:
2910                     return "GL_RGB";
2911                 case 0x1908:
2912                     return "GL_RGBA";
2913                 case 0x1909:
2914                     return "GL_LUMINANCE";
2915                 case 0x190A:
2916                     return "GL_LUMINANCE_ALPHA";
2917                 default:
2918                     return kUnknownGLenumString;
2919             }
2920         }
2921 
2922         case GLenumGroup::PixelStoreParameter:
2923         {
2924             switch (value)
2925             {
2926                 case 0xCF2:
2927                     return "GL_UNPACK_ROW_LENGTH";
2928                 case 0xCF3:
2929                     return "GL_UNPACK_SKIP_ROWS";
2930                 case 0xCF4:
2931                     return "GL_UNPACK_SKIP_PIXELS";
2932                 case 0xCF5:
2933                     return "GL_UNPACK_ALIGNMENT";
2934                 case 0xD02:
2935                     return "GL_PACK_ROW_LENGTH";
2936                 case 0xD03:
2937                     return "GL_PACK_SKIP_ROWS";
2938                 case 0xD04:
2939                     return "GL_PACK_SKIP_PIXELS";
2940                 case 0xD05:
2941                     return "GL_PACK_ALIGNMENT";
2942                 case 0x806D:
2943                     return "GL_UNPACK_SKIP_IMAGES";
2944                 case 0x806E:
2945                     return "GL_UNPACK_IMAGE_HEIGHT";
2946                 default:
2947                     return kUnknownGLenumString;
2948             }
2949         }
2950 
2951         case GLenumGroup::PixelTexGenMode:
2952         {
2953             switch (value)
2954             {
2955                 case 0x0:
2956                     return "GL_NONE";
2957                 case 0x1907:
2958                     return "GL_RGB";
2959                 case 0x1908:
2960                     return "GL_RGBA";
2961                 case 0x1909:
2962                     return "GL_LUMINANCE";
2963                 case 0x190A:
2964                     return "GL_LUMINANCE_ALPHA";
2965                 default:
2966                     return kUnknownGLenumString;
2967             }
2968         }
2969 
2970         case GLenumGroup::PixelType:
2971         {
2972             switch (value)
2973             {
2974                 case 0x1400:
2975                     return "GL_BYTE";
2976                 case 0x1401:
2977                     return "GL_UNSIGNED_BYTE";
2978                 case 0x1402:
2979                     return "GL_SHORT";
2980                 case 0x1403:
2981                     return "GL_UNSIGNED_SHORT";
2982                 case 0x1404:
2983                     return "GL_INT";
2984                 case 0x1405:
2985                     return "GL_UNSIGNED_INT";
2986                 case 0x1406:
2987                     return "GL_FLOAT";
2988                 case 0x140B:
2989                     return "GL_HALF_FLOAT";
2990                 case 0x8033:
2991                     return "GL_UNSIGNED_SHORT_4_4_4_4";
2992                 case 0x8034:
2993                     return "GL_UNSIGNED_SHORT_5_5_5_1";
2994                 case 0x8365:
2995                     return "GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT";
2996                 case 0x8366:
2997                     return "GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT";
2998                 case 0x8368:
2999                     return "GL_UNSIGNED_INT_2_10_10_10_REV";
3000                 case 0x8C3B:
3001                     return "GL_UNSIGNED_INT_10F_11F_11F_REV";
3002                 case 0x8D61:
3003                     return "GL_HALF_FLOAT_OES";
3004                 default:
3005                     return kUnknownGLenumString;
3006             }
3007         }
3008 
3009         case GLenumGroup::PrecisionType:
3010         {
3011             switch (value)
3012             {
3013                 case 0x8DF0:
3014                     return "GL_LOW_FLOAT";
3015                 case 0x8DF1:
3016                     return "GL_MEDIUM_FLOAT";
3017                 case 0x8DF2:
3018                     return "GL_HIGH_FLOAT";
3019                 case 0x8DF3:
3020                     return "GL_LOW_INT";
3021                 case 0x8DF4:
3022                     return "GL_MEDIUM_INT";
3023                 case 0x8DF5:
3024                     return "GL_HIGH_INT";
3025                 default:
3026                     return kUnknownGLenumString;
3027             }
3028         }
3029 
3030         case GLenumGroup::PrimitiveType:
3031         {
3032             switch (value)
3033             {
3034                 case 0x0:
3035                     return "GL_POINTS";
3036                 case 0x1:
3037                     return "GL_LINES";
3038                 case 0x2:
3039                     return "GL_LINE_LOOP";
3040                 case 0x3:
3041                     return "GL_LINE_STRIP";
3042                 case 0x4:
3043                     return "GL_TRIANGLES";
3044                 case 0x5:
3045                     return "GL_TRIANGLE_STRIP";
3046                 case 0x6:
3047                     return "GL_TRIANGLE_FAN";
3048                 case 0x7:
3049                     return "GL_QUADS";
3050                 case 0xA:
3051                     return "GL_LINES_ADJACENCY";
3052                 case 0xB:
3053                     return "GL_LINE_STRIP_ADJACENCY";
3054                 case 0xC:
3055                     return "GL_TRIANGLES_ADJACENCY";
3056                 case 0xD:
3057                     return "GL_TRIANGLE_STRIP_ADJACENCY";
3058                 case 0xE:
3059                     return "GL_PATCHES";
3060                 default:
3061                     return kUnknownGLenumString;
3062             }
3063         }
3064 
3065         case GLenumGroup::ProgramInterface:
3066         {
3067             switch (value)
3068             {
3069                 case 0x8C8E:
3070                     return "GL_TRANSFORM_FEEDBACK_BUFFER";
3071                 case 0x92E1:
3072                     return "GL_UNIFORM";
3073                 case 0x92E2:
3074                     return "GL_UNIFORM_BLOCK";
3075                 case 0x92E3:
3076                     return "GL_PROGRAM_INPUT";
3077                 case 0x92E4:
3078                     return "GL_PROGRAM_OUTPUT";
3079                 case 0x92E5:
3080                     return "GL_BUFFER_VARIABLE";
3081                 case 0x92E6:
3082                     return "GL_SHADER_STORAGE_BLOCK";
3083                 case 0x92F4:
3084                     return "GL_TRANSFORM_FEEDBACK_VARYING";
3085                 default:
3086                     return kUnknownGLenumString;
3087             }
3088         }
3089 
3090         case GLenumGroup::ProgramInterfacePName:
3091         {
3092             switch (value)
3093             {
3094                 case 0x92F5:
3095                     return "GL_ACTIVE_RESOURCES";
3096                 case 0x92F6:
3097                     return "GL_MAX_NAME_LENGTH";
3098                 case 0x92F7:
3099                     return "GL_MAX_NUM_ACTIVE_VARIABLES";
3100                 default:
3101                     return kUnknownGLenumString;
3102             }
3103         }
3104 
3105         case GLenumGroup::ProgramParameterPName:
3106         {
3107             switch (value)
3108             {
3109                 case 0x8257:
3110                     return "GL_PROGRAM_BINARY_RETRIEVABLE_HINT";
3111                 case 0x8258:
3112                     return "GL_PROGRAM_SEPARABLE";
3113                 default:
3114                     return kUnknownGLenumString;
3115             }
3116         }
3117 
3118         case GLenumGroup::ProgramPropertyARB:
3119         {
3120             switch (value)
3121             {
3122                 case 0x8267:
3123                     return "GL_COMPUTE_WORK_GROUP_SIZE";
3124                 case 0x8741:
3125                     return "GL_PROGRAM_BINARY_LENGTH";
3126                 case 0x8916:
3127                     return "GL_GEOMETRY_VERTICES_OUT";
3128                 case 0x8917:
3129                     return "GL_GEOMETRY_INPUT_TYPE";
3130                 case 0x8918:
3131                     return "GL_GEOMETRY_OUTPUT_TYPE";
3132                 case 0x8A35:
3133                     return "GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH";
3134                 case 0x8A36:
3135                     return "GL_ACTIVE_UNIFORM_BLOCKS";
3136                 case 0x8B80:
3137                     return "GL_DELETE_STATUS";
3138                 case 0x8B82:
3139                     return "GL_LINK_STATUS";
3140                 case 0x8B83:
3141                     return "GL_VALIDATE_STATUS";
3142                 case 0x8B84:
3143                     return "GL_INFO_LOG_LENGTH";
3144                 case 0x8B85:
3145                     return "GL_ATTACHED_SHADERS";
3146                 case 0x8B86:
3147                     return "GL_ACTIVE_UNIFORMS";
3148                 case 0x8B87:
3149                     return "GL_ACTIVE_UNIFORM_MAX_LENGTH";
3150                 case 0x8B89:
3151                     return "GL_ACTIVE_ATTRIBUTES";
3152                 case 0x8B8A:
3153                     return "GL_ACTIVE_ATTRIBUTE_MAX_LENGTH";
3154                 case 0x8C76:
3155                     return "GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH";
3156                 case 0x8C7F:
3157                     return "GL_TRANSFORM_FEEDBACK_BUFFER_MODE";
3158                 case 0x8C83:
3159                     return "GL_TRANSFORM_FEEDBACK_VARYINGS";
3160                 case 0x92D9:
3161                     return "GL_ACTIVE_ATOMIC_COUNTER_BUFFERS";
3162                 default:
3163                     return kUnknownGLenumString;
3164             }
3165         }
3166 
3167         case GLenumGroup::QueryObjectParameterName:
3168         {
3169             switch (value)
3170             {
3171                 case 0x8866:
3172                     return "GL_QUERY_RESULT";
3173                 case 0x8867:
3174                     return "GL_QUERY_RESULT_AVAILABLE";
3175                 default:
3176                     return kUnknownGLenumString;
3177             }
3178         }
3179 
3180         case GLenumGroup::QueryParameterName:
3181         {
3182             switch (value)
3183             {
3184                 case 0x8865:
3185                     return "GL_CURRENT_QUERY";
3186                 default:
3187                     return kUnknownGLenumString;
3188             }
3189         }
3190 
3191         case GLenumGroup::QueryTarget:
3192         {
3193             switch (value)
3194             {
3195                 case 0x8C2F:
3196                     return "GL_ANY_SAMPLES_PASSED";
3197                 case 0x8C87:
3198                     return "GL_PRIMITIVES_GENERATED";
3199                 case 0x8C88:
3200                     return "GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN";
3201                 case 0x8D6A:
3202                     return "GL_ANY_SAMPLES_PASSED_CONSERVATIVE";
3203                 default:
3204                     return kUnknownGLenumString;
3205             }
3206         }
3207 
3208         case GLenumGroup::ReadBufferMode:
3209         {
3210             switch (value)
3211             {
3212                 case 0x404:
3213                     return "GL_FRONT";
3214                 case 0x405:
3215                     return "GL_BACK";
3216                 default:
3217                     return kUnknownGLenumString;
3218             }
3219         }
3220 
3221         case GLenumGroup::RenderbufferParameterName:
3222         {
3223             switch (value)
3224             {
3225                 case 0x8CAB:
3226                     return "GL_RENDERBUFFER_SAMPLES";
3227                 case 0x8D42:
3228                     return "GL_RENDERBUFFER_WIDTH";
3229                 case 0x8D43:
3230                     return "GL_RENDERBUFFER_HEIGHT";
3231                 case 0x8D44:
3232                     return "GL_RENDERBUFFER_INTERNAL_FORMAT";
3233                 case 0x8D50:
3234                     return "GL_RENDERBUFFER_RED_SIZE";
3235                 case 0x8D51:
3236                     return "GL_RENDERBUFFER_GREEN_SIZE";
3237                 case 0x8D52:
3238                     return "GL_RENDERBUFFER_BLUE_SIZE";
3239                 case 0x8D53:
3240                     return "GL_RENDERBUFFER_ALPHA_SIZE";
3241                 case 0x8D54:
3242                     return "GL_RENDERBUFFER_DEPTH_SIZE";
3243                 case 0x8D55:
3244                     return "GL_RENDERBUFFER_STENCIL_SIZE";
3245                 default:
3246                     return kUnknownGLenumString;
3247             }
3248         }
3249 
3250         case GLenumGroup::RenderbufferTarget:
3251         {
3252             switch (value)
3253             {
3254                 case 0x8D41:
3255                     return "GL_RENDERBUFFER";
3256                 default:
3257                     return kUnknownGLenumString;
3258             }
3259         }
3260 
3261         case GLenumGroup::SamplerParameterName:
3262         {
3263             switch (value)
3264             {
3265                 case 0x1004:
3266                     return "GL_TEXTURE_BORDER_COLOR";
3267                 case 0x2800:
3268                     return "GL_TEXTURE_MAG_FILTER";
3269                 case 0x2801:
3270                     return "GL_TEXTURE_MIN_FILTER";
3271                 case 0x2802:
3272                     return "GL_TEXTURE_WRAP_S";
3273                 case 0x2803:
3274                     return "GL_TEXTURE_WRAP_T";
3275                 case 0x8072:
3276                     return "GL_TEXTURE_WRAP_R";
3277                 case 0x813A:
3278                     return "GL_TEXTURE_MIN_LOD";
3279                 case 0x813B:
3280                     return "GL_TEXTURE_MAX_LOD";
3281                 case 0x884C:
3282                     return "GL_TEXTURE_COMPARE_MODE";
3283                 case 0x884D:
3284                     return "GL_TEXTURE_COMPARE_FUNC";
3285                 default:
3286                     return kUnknownGLenumString;
3287             }
3288         }
3289 
3290         case GLenumGroup::ShaderParameterName:
3291         {
3292             switch (value)
3293             {
3294                 case 0x8B4F:
3295                     return "GL_SHADER_TYPE";
3296                 case 0x8B80:
3297                     return "GL_DELETE_STATUS";
3298                 case 0x8B81:
3299                     return "GL_COMPILE_STATUS";
3300                 case 0x8B84:
3301                     return "GL_INFO_LOG_LENGTH";
3302                 case 0x8B88:
3303                     return "GL_SHADER_SOURCE_LENGTH";
3304                 default:
3305                     return kUnknownGLenumString;
3306             }
3307         }
3308 
3309         case GLenumGroup::ShaderType:
3310         {
3311             switch (value)
3312             {
3313                 case 0x8B30:
3314                     return "GL_FRAGMENT_SHADER";
3315                 case 0x8B31:
3316                     return "GL_VERTEX_SHADER";
3317                 case 0x8DD9:
3318                     return "GL_GEOMETRY_SHADER";
3319                 case 0x8E87:
3320                     return "GL_TESS_EVALUATION_SHADER";
3321                 case 0x8E88:
3322                     return "GL_TESS_CONTROL_SHADER";
3323                 case 0x91B9:
3324                     return "GL_COMPUTE_SHADER";
3325                 default:
3326                     return kUnknownGLenumString;
3327             }
3328         }
3329 
3330         case GLenumGroup::StencilFaceDirection:
3331         {
3332             switch (value)
3333             {
3334                 case 0x404:
3335                     return "GL_FRONT";
3336                 case 0x405:
3337                     return "GL_BACK";
3338                 case 0x408:
3339                     return "GL_FRONT_AND_BACK";
3340                 default:
3341                     return kUnknownGLenumString;
3342             }
3343         }
3344 
3345         case GLenumGroup::StencilFunction:
3346         {
3347             switch (value)
3348             {
3349                 case 0x200:
3350                     return "GL_NEVER";
3351                 case 0x201:
3352                     return "GL_LESS";
3353                 case 0x202:
3354                     return "GL_EQUAL";
3355                 case 0x203:
3356                     return "GL_LEQUAL";
3357                 case 0x204:
3358                     return "GL_GREATER";
3359                 case 0x205:
3360                     return "GL_NOTEQUAL";
3361                 case 0x206:
3362                     return "GL_GEQUAL";
3363                 case 0x207:
3364                     return "GL_ALWAYS";
3365                 default:
3366                     return kUnknownGLenumString;
3367             }
3368         }
3369 
3370         case GLenumGroup::StencilOp:
3371         {
3372             switch (value)
3373             {
3374                 case 0x0:
3375                     return "GL_ZERO";
3376                 case 0x150A:
3377                     return "GL_INVERT";
3378                 case 0x1E00:
3379                     return "GL_KEEP";
3380                 case 0x1E01:
3381                     return "GL_REPLACE";
3382                 case 0x1E02:
3383                     return "GL_INCR";
3384                 case 0x1E03:
3385                     return "GL_DECR";
3386                 default:
3387                     return kUnknownGLenumString;
3388             }
3389         }
3390 
3391         case GLenumGroup::StringName:
3392         {
3393             switch (value)
3394             {
3395                 case 0x1F00:
3396                     return "GL_VENDOR";
3397                 case 0x1F01:
3398                     return "GL_RENDERER";
3399                 case 0x1F02:
3400                     return "GL_VERSION";
3401                 case 0x1F03:
3402                     return "GL_EXTENSIONS";
3403                 case 0x8B8C:
3404                     return "GL_SHADING_LANGUAGE_VERSION";
3405                 default:
3406                     return kUnknownGLenumString;
3407             }
3408         }
3409 
3410         case GLenumGroup::SubroutineParameterName:
3411         {
3412             switch (value)
3413             {
3414                 case 0x8A38:
3415                     return "GL_UNIFORM_SIZE";
3416                 case 0x8A39:
3417                     return "GL_UNIFORM_NAME_LENGTH";
3418                 default:
3419                     return kUnknownGLenumString;
3420             }
3421         }
3422 
3423         case GLenumGroup::SyncCondition:
3424         {
3425             switch (value)
3426             {
3427                 case 0x9117:
3428                     return "GL_SYNC_GPU_COMMANDS_COMPLETE";
3429                 default:
3430                     return kUnknownGLenumString;
3431             }
3432         }
3433 
3434         case GLenumGroup::SyncObjectMask:
3435         {
3436             switch (value)
3437             {
3438                 case 0x1:
3439                     return "GL_SYNC_FLUSH_COMMANDS_BIT";
3440                 default:
3441                     return kUnknownGLenumString;
3442             }
3443         }
3444 
3445         case GLenumGroup::SyncParameterName:
3446         {
3447             switch (value)
3448             {
3449                 case 0x9112:
3450                     return "GL_OBJECT_TYPE";
3451                 case 0x9113:
3452                     return "GL_SYNC_CONDITION";
3453                 case 0x9114:
3454                     return "GL_SYNC_STATUS";
3455                 case 0x9115:
3456                     return "GL_SYNC_FLAGS";
3457                 default:
3458                     return kUnknownGLenumString;
3459             }
3460         }
3461 
3462         case GLenumGroup::SyncStatus:
3463         {
3464             switch (value)
3465             {
3466                 case 0x911A:
3467                     return "GL_ALREADY_SIGNALED";
3468                 case 0x911B:
3469                     return "GL_TIMEOUT_EXPIRED";
3470                 case 0x911C:
3471                     return "GL_CONDITION_SATISFIED";
3472                 case 0x911D:
3473                     return "GL_WAIT_FAILED";
3474                 default:
3475                     return kUnknownGLenumString;
3476             }
3477         }
3478 
3479         case GLenumGroup::TexCoordPointerType:
3480         {
3481             switch (value)
3482             {
3483                 case 0x1402:
3484                     return "GL_SHORT";
3485                 case 0x1404:
3486                     return "GL_INT";
3487                 case 0x1406:
3488                     return "GL_FLOAT";
3489                 default:
3490                     return kUnknownGLenumString;
3491             }
3492         }
3493 
3494         case GLenumGroup::TextureEnvMode:
3495         {
3496             switch (value)
3497             {
3498                 case 0xBE2:
3499                     return "GL_BLEND";
3500                 default:
3501                     return kUnknownGLenumString;
3502             }
3503         }
3504 
3505         case GLenumGroup::TextureLayout:
3506         {
3507             switch (value)
3508             {
3509                 case 0x9530:
3510                     return "GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT";
3511                 case 0x9531:
3512                     return "GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT";
3513                 case 0x958D:
3514                     return "GL_LAYOUT_GENERAL_EXT";
3515                 case 0x958E:
3516                     return "GL_LAYOUT_COLOR_ATTACHMENT_EXT";
3517                 case 0x958F:
3518                     return "GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT";
3519                 case 0x9590:
3520                     return "GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT";
3521                 case 0x9591:
3522                     return "GL_LAYOUT_SHADER_READ_ONLY_EXT";
3523                 case 0x9592:
3524                     return "GL_LAYOUT_TRANSFER_SRC_EXT";
3525                 case 0x9593:
3526                     return "GL_LAYOUT_TRANSFER_DST_EXT";
3527                 default:
3528                     return kUnknownGLenumString;
3529             }
3530         }
3531 
3532         case GLenumGroup::TextureMagFilter:
3533         {
3534             switch (value)
3535             {
3536                 case 0x2600:
3537                     return "GL_NEAREST";
3538                 case 0x2601:
3539                     return "GL_LINEAR";
3540                 default:
3541                     return kUnknownGLenumString;
3542             }
3543         }
3544 
3545         case GLenumGroup::TextureMinFilter:
3546         {
3547             switch (value)
3548             {
3549                 case 0x2600:
3550                     return "GL_NEAREST";
3551                 case 0x2601:
3552                     return "GL_LINEAR";
3553                 case 0x2700:
3554                     return "GL_NEAREST_MIPMAP_NEAREST";
3555                 case 0x2701:
3556                     return "GL_LINEAR_MIPMAP_NEAREST";
3557                 case 0x2702:
3558                     return "GL_NEAREST_MIPMAP_LINEAR";
3559                 case 0x2703:
3560                     return "GL_LINEAR_MIPMAP_LINEAR";
3561                 default:
3562                     return kUnknownGLenumString;
3563             }
3564         }
3565 
3566         case GLenumGroup::TextureParameterName:
3567         {
3568             switch (value)
3569             {
3570                 case 0x1000:
3571                     return "GL_TEXTURE_WIDTH";
3572                 case 0x1001:
3573                     return "GL_TEXTURE_HEIGHT";
3574                 case 0x1003:
3575                     return "GL_TEXTURE_INTERNAL_FORMAT";
3576                 case 0x1004:
3577                     return "GL_TEXTURE_BORDER_COLOR";
3578                 case 0x2800:
3579                     return "GL_TEXTURE_MAG_FILTER";
3580                 case 0x2801:
3581                     return "GL_TEXTURE_MIN_FILTER";
3582                 case 0x2802:
3583                     return "GL_TEXTURE_WRAP_S";
3584                 case 0x2803:
3585                     return "GL_TEXTURE_WRAP_T";
3586                 case 0x805C:
3587                     return "GL_TEXTURE_RED_SIZE";
3588                 case 0x805D:
3589                     return "GL_TEXTURE_GREEN_SIZE";
3590                 case 0x805E:
3591                     return "GL_TEXTURE_BLUE_SIZE";
3592                 case 0x805F:
3593                     return "GL_TEXTURE_ALPHA_SIZE";
3594                 case 0x8072:
3595                     return "GL_TEXTURE_WRAP_R";
3596                 case 0x813A:
3597                     return "GL_TEXTURE_MIN_LOD";
3598                 case 0x813B:
3599                     return "GL_TEXTURE_MAX_LOD";
3600                 case 0x813C:
3601                     return "GL_TEXTURE_BASE_LEVEL";
3602                 case 0x813D:
3603                     return "GL_TEXTURE_MAX_LEVEL";
3604                 case 0x884C:
3605                     return "GL_TEXTURE_COMPARE_MODE";
3606                 case 0x884D:
3607                     return "GL_TEXTURE_COMPARE_FUNC";
3608                 case 0x8E42:
3609                     return "GL_TEXTURE_SWIZZLE_R";
3610                 case 0x8E43:
3611                     return "GL_TEXTURE_SWIZZLE_G";
3612                 case 0x8E44:
3613                     return "GL_TEXTURE_SWIZZLE_B";
3614                 case 0x8E45:
3615                     return "GL_TEXTURE_SWIZZLE_A";
3616                 case 0x90EA:
3617                     return "GL_DEPTH_STENCIL_TEXTURE_MODE";
3618                 case 0x9580:
3619                     return "GL_TEXTURE_TILING_EXT";
3620                 default:
3621                     return kUnknownGLenumString;
3622             }
3623         }
3624 
3625         case GLenumGroup::TextureTarget:
3626         {
3627             switch (value)
3628             {
3629                 case 0xDE1:
3630                     return "GL_TEXTURE_2D";
3631                 case 0x806F:
3632                     return "GL_TEXTURE_3D";
3633                 case 0x8513:
3634                     return "GL_TEXTURE_CUBE_MAP";
3635                 case 0x8515:
3636                     return "GL_TEXTURE_CUBE_MAP_POSITIVE_X";
3637                 case 0x8516:
3638                     return "GL_TEXTURE_CUBE_MAP_NEGATIVE_X";
3639                 case 0x8517:
3640                     return "GL_TEXTURE_CUBE_MAP_POSITIVE_Y";
3641                 case 0x8518:
3642                     return "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y";
3643                 case 0x8519:
3644                     return "GL_TEXTURE_CUBE_MAP_POSITIVE_Z";
3645                 case 0x851A:
3646                     return "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z";
3647                 case 0x8C1A:
3648                     return "GL_TEXTURE_2D_ARRAY";
3649                 case 0x9009:
3650                     return "GL_TEXTURE_CUBE_MAP_ARRAY";
3651                 case 0x9100:
3652                     return "GL_TEXTURE_2D_MULTISAMPLE";
3653                 case 0x9102:
3654                     return "GL_TEXTURE_2D_MULTISAMPLE_ARRAY";
3655                 default:
3656                     return kUnknownGLenumString;
3657             }
3658         }
3659 
3660         case GLenumGroup::TextureUnit:
3661         {
3662             switch (value)
3663             {
3664                 case 0x84C0:
3665                     return "GL_TEXTURE0";
3666                 case 0x84C1:
3667                     return "GL_TEXTURE1";
3668                 case 0x84C2:
3669                     return "GL_TEXTURE2";
3670                 case 0x84C3:
3671                     return "GL_TEXTURE3";
3672                 case 0x84C4:
3673                     return "GL_TEXTURE4";
3674                 case 0x84C5:
3675                     return "GL_TEXTURE5";
3676                 case 0x84C6:
3677                     return "GL_TEXTURE6";
3678                 case 0x84C7:
3679                     return "GL_TEXTURE7";
3680                 case 0x84C8:
3681                     return "GL_TEXTURE8";
3682                 case 0x84C9:
3683                     return "GL_TEXTURE9";
3684                 case 0x84CA:
3685                     return "GL_TEXTURE10";
3686                 case 0x84CB:
3687                     return "GL_TEXTURE11";
3688                 case 0x84CC:
3689                     return "GL_TEXTURE12";
3690                 case 0x84CD:
3691                     return "GL_TEXTURE13";
3692                 case 0x84CE:
3693                     return "GL_TEXTURE14";
3694                 case 0x84CF:
3695                     return "GL_TEXTURE15";
3696                 case 0x84D0:
3697                     return "GL_TEXTURE16";
3698                 case 0x84D1:
3699                     return "GL_TEXTURE17";
3700                 case 0x84D2:
3701                     return "GL_TEXTURE18";
3702                 case 0x84D3:
3703                     return "GL_TEXTURE19";
3704                 case 0x84D4:
3705                     return "GL_TEXTURE20";
3706                 case 0x84D5:
3707                     return "GL_TEXTURE21";
3708                 case 0x84D6:
3709                     return "GL_TEXTURE22";
3710                 case 0x84D7:
3711                     return "GL_TEXTURE23";
3712                 case 0x84D8:
3713                     return "GL_TEXTURE24";
3714                 case 0x84D9:
3715                     return "GL_TEXTURE25";
3716                 case 0x84DA:
3717                     return "GL_TEXTURE26";
3718                 case 0x84DB:
3719                     return "GL_TEXTURE27";
3720                 case 0x84DC:
3721                     return "GL_TEXTURE28";
3722                 case 0x84DD:
3723                     return "GL_TEXTURE29";
3724                 case 0x84DE:
3725                     return "GL_TEXTURE30";
3726                 case 0x84DF:
3727                     return "GL_TEXTURE31";
3728                 default:
3729                     return kUnknownGLenumString;
3730             }
3731         }
3732 
3733         case GLenumGroup::TextureWrapMode:
3734         {
3735             switch (value)
3736             {
3737                 case 0x2901:
3738                     return "GL_REPEAT";
3739                 case 0x812D:
3740                     return "GL_CLAMP_TO_BORDER";
3741                 case 0x812F:
3742                     return "GL_CLAMP_TO_EDGE";
3743                 default:
3744                     return kUnknownGLenumString;
3745             }
3746         }
3747 
3748         case GLenumGroup::TransformFeedbackPName:
3749         {
3750             switch (value)
3751             {
3752                 case 0x8C84:
3753                     return "GL_TRANSFORM_FEEDBACK_BUFFER_START";
3754                 case 0x8C85:
3755                     return "GL_TRANSFORM_FEEDBACK_BUFFER_SIZE";
3756                 case 0x8C8F:
3757                     return "GL_TRANSFORM_FEEDBACK_BUFFER_BINDING";
3758                 case 0x8E23:
3759                     return "GL_TRANSFORM_FEEDBACK_PAUSED";
3760                 case 0x8E24:
3761                     return "GL_TRANSFORM_FEEDBACK_ACTIVE";
3762                 default:
3763                     return kUnknownGLenumString;
3764             }
3765         }
3766 
3767         case GLenumGroup::UniformBlockPName:
3768         {
3769             switch (value)
3770             {
3771                 case 0x8A3F:
3772                     return "GL_UNIFORM_BLOCK_BINDING";
3773                 case 0x8A40:
3774                     return "GL_UNIFORM_BLOCK_DATA_SIZE";
3775                 case 0x8A41:
3776                     return "GL_UNIFORM_BLOCK_NAME_LENGTH";
3777                 case 0x8A42:
3778                     return "GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS";
3779                 case 0x8A43:
3780                     return "GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES";
3781                 case 0x8A44:
3782                     return "GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER";
3783                 case 0x8A46:
3784                     return "GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER";
3785                 default:
3786                     return kUnknownGLenumString;
3787             }
3788         }
3789 
3790         case GLenumGroup::UniformPName:
3791         {
3792             switch (value)
3793             {
3794                 case 0x8A37:
3795                     return "GL_UNIFORM_TYPE";
3796                 case 0x8A38:
3797                     return "GL_UNIFORM_SIZE";
3798                 case 0x8A39:
3799                     return "GL_UNIFORM_NAME_LENGTH";
3800                 case 0x8A3A:
3801                     return "GL_UNIFORM_BLOCK_INDEX";
3802                 case 0x8A3B:
3803                     return "GL_UNIFORM_OFFSET";
3804                 case 0x8A3C:
3805                     return "GL_UNIFORM_ARRAY_STRIDE";
3806                 case 0x8A3D:
3807                     return "GL_UNIFORM_MATRIX_STRIDE";
3808                 case 0x8A3E:
3809                     return "GL_UNIFORM_IS_ROW_MAJOR";
3810                 default:
3811                     return kUnknownGLenumString;
3812             }
3813         }
3814 
3815         case GLenumGroup::UseProgramStageMask:
3816         {
3817             switch (value)
3818             {
3819                 case 0x1:
3820                     return "GL_VERTEX_SHADER_BIT";
3821                 case 0x2:
3822                     return "GL_FRAGMENT_SHADER_BIT";
3823                 case 0x4:
3824                     return "GL_GEOMETRY_SHADER_BIT";
3825                 case 0x8:
3826                     return "GL_TESS_CONTROL_SHADER_BIT";
3827                 case 0x10:
3828                     return "GL_TESS_EVALUATION_SHADER_BIT";
3829                 case 0x20:
3830                     return "GL_COMPUTE_SHADER_BIT";
3831                 case 0xFFFFFFFF:
3832                     return "GL_ALL_SHADER_BITS";
3833                 default:
3834                     return kUnknownGLenumString;
3835             }
3836         }
3837 
3838         case GLenumGroup::VertexArrayPName:
3839         {
3840             switch (value)
3841             {
3842                 case 0x82D5:
3843                     return "GL_VERTEX_ATTRIB_RELATIVE_OFFSET";
3844                 case 0x8622:
3845                     return "GL_VERTEX_ATTRIB_ARRAY_ENABLED";
3846                 case 0x8623:
3847                     return "GL_VERTEX_ATTRIB_ARRAY_SIZE";
3848                 case 0x8624:
3849                     return "GL_VERTEX_ATTRIB_ARRAY_STRIDE";
3850                 case 0x8625:
3851                     return "GL_VERTEX_ATTRIB_ARRAY_TYPE";
3852                 case 0x886A:
3853                     return "GL_VERTEX_ATTRIB_ARRAY_NORMALIZED";
3854                 case 0x88FD:
3855                     return "GL_VERTEX_ATTRIB_ARRAY_INTEGER";
3856                 case 0x88FE:
3857                     return "GL_VERTEX_ATTRIB_ARRAY_DIVISOR";
3858                 default:
3859                     return kUnknownGLenumString;
3860             }
3861         }
3862 
3863         case GLenumGroup::VertexAttribEnum:
3864         {
3865             switch (value)
3866             {
3867                 case 0x8622:
3868                     return "GL_VERTEX_ATTRIB_ARRAY_ENABLED";
3869                 case 0x8623:
3870                     return "GL_VERTEX_ATTRIB_ARRAY_SIZE";
3871                 case 0x8624:
3872                     return "GL_VERTEX_ATTRIB_ARRAY_STRIDE";
3873                 case 0x8625:
3874                     return "GL_VERTEX_ATTRIB_ARRAY_TYPE";
3875                 case 0x8626:
3876                     return "GL_CURRENT_VERTEX_ATTRIB";
3877                 case 0x886A:
3878                     return "GL_VERTEX_ATTRIB_ARRAY_NORMALIZED";
3879                 case 0x889F:
3880                     return "GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING";
3881                 case 0x88FD:
3882                     return "GL_VERTEX_ATTRIB_ARRAY_INTEGER";
3883                 case 0x88FE:
3884                     return "GL_VERTEX_ATTRIB_ARRAY_DIVISOR";
3885                 default:
3886                     return kUnknownGLenumString;
3887             }
3888         }
3889 
3890         case GLenumGroup::VertexAttribPointerType:
3891         {
3892             switch (value)
3893             {
3894                 case 0x1400:
3895                     return "GL_BYTE";
3896                 case 0x1401:
3897                     return "GL_UNSIGNED_BYTE";
3898                 case 0x1402:
3899                     return "GL_SHORT";
3900                 case 0x1403:
3901                     return "GL_UNSIGNED_SHORT";
3902                 case 0x1404:
3903                     return "GL_INT";
3904                 case 0x1405:
3905                     return "GL_UNSIGNED_INT";
3906                 case 0x1406:
3907                     return "GL_FLOAT";
3908                 case 0x140B:
3909                     return "GL_HALF_FLOAT";
3910                 case 0x140C:
3911                     return "GL_FIXED";
3912                 case 0x8368:
3913                     return "GL_UNSIGNED_INT_2_10_10_10_REV";
3914                 case 0x8C3B:
3915                     return "GL_UNSIGNED_INT_10F_11F_11F_REV";
3916                 case 0x8D9F:
3917                     return "GL_INT_2_10_10_10_REV";
3918                 default:
3919                     return kUnknownGLenumString;
3920             }
3921         }
3922 
3923         case GLenumGroup::VertexAttribType:
3924         {
3925             switch (value)
3926             {
3927                 case 0x1400:
3928                     return "GL_BYTE";
3929                 case 0x1401:
3930                     return "GL_UNSIGNED_BYTE";
3931                 case 0x1402:
3932                     return "GL_SHORT";
3933                 case 0x1403:
3934                     return "GL_UNSIGNED_SHORT";
3935                 case 0x1404:
3936                     return "GL_INT";
3937                 case 0x1405:
3938                     return "GL_UNSIGNED_INT";
3939                 case 0x1406:
3940                     return "GL_FLOAT";
3941                 case 0x140B:
3942                     return "GL_HALF_FLOAT";
3943                 case 0x140C:
3944                     return "GL_FIXED";
3945                 case 0x8368:
3946                     return "GL_UNSIGNED_INT_2_10_10_10_REV";
3947                 case 0x8C3B:
3948                     return "GL_UNSIGNED_INT_10F_11F_11F_REV";
3949                 case 0x8D9F:
3950                     return "GL_INT_2_10_10_10_REV";
3951                 default:
3952                     return kUnknownGLenumString;
3953             }
3954         }
3955 
3956         case GLenumGroup::VertexBufferObjectParameter:
3957         {
3958             switch (value)
3959             {
3960                 case 0x8764:
3961                     return "GL_BUFFER_SIZE";
3962                 case 0x8765:
3963                     return "GL_BUFFER_USAGE";
3964                 case 0x88BC:
3965                     return "GL_BUFFER_MAPPED";
3966                 case 0x911F:
3967                     return "GL_BUFFER_ACCESS_FLAGS";
3968                 case 0x9120:
3969                     return "GL_BUFFER_MAP_LENGTH";
3970                 case 0x9121:
3971                     return "GL_BUFFER_MAP_OFFSET";
3972                 default:
3973                     return kUnknownGLenumString;
3974             }
3975         }
3976 
3977         case GLenumGroup::VertexBufferObjectUsage:
3978         {
3979             switch (value)
3980             {
3981                 case 0x88E0:
3982                     return "GL_STREAM_DRAW";
3983                 case 0x88E1:
3984                     return "GL_STREAM_READ";
3985                 case 0x88E2:
3986                     return "GL_STREAM_COPY";
3987                 case 0x88E4:
3988                     return "GL_STATIC_DRAW";
3989                 case 0x88E5:
3990                     return "GL_STATIC_READ";
3991                 case 0x88E6:
3992                     return "GL_STATIC_COPY";
3993                 case 0x88E8:
3994                     return "GL_DYNAMIC_DRAW";
3995                 case 0x88E9:
3996                     return "GL_DYNAMIC_READ";
3997                 case 0x88EA:
3998                     return "GL_DYNAMIC_COPY";
3999                 default:
4000                     return kUnknownGLenumString;
4001             }
4002         }
4003 
4004         case GLenumGroup::VertexPointerType:
4005         {
4006             switch (value)
4007             {
4008                 case 0x1402:
4009                     return "GL_SHORT";
4010                 case 0x1404:
4011                     return "GL_INT";
4012                 case 0x1406:
4013                     return "GL_FLOAT";
4014                 default:
4015                     return kUnknownGLenumString;
4016             }
4017         }
4018 
4019         case GLenumGroup::VertexProvokingMode:
4020         {
4021             switch (value)
4022             {
4023                 case 0x8E4D:
4024                     return "GL_FIRST_VERTEX_CONVENTION";
4025                 case 0x8E4E:
4026                     return "GL_LAST_VERTEX_CONVENTION";
4027                 default:
4028                     return kUnknownGLenumString;
4029             }
4030         }
4031 
4032         default:
4033             return kUnknownGLenumString;
4034     }
4035 }
4036 
GLbitfieldToString(GLenumGroup enumGroup,unsigned int value)4037 std::string GLbitfieldToString(GLenumGroup enumGroup, unsigned int value)
4038 {
4039     std::stringstream st;
4040 
4041     if (value == 0)
4042     {
4043         return "0";
4044     }
4045 
4046     const angle::BitSet<32> bitSet(value);
4047     bool first = true;
4048     for (const auto index : bitSet)
4049     {
4050         if (!first)
4051         {
4052             st << " | ";
4053         }
4054         first = false;
4055 
4056         unsigned int mask = 1u << index;
4057         OutputGLenumString(st, enumGroup, mask);
4058     }
4059 
4060     return st.str();
4061 }
4062 }  // namespace gl
4063