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