Lower correlation threshold in flush-finish tests again am: 6455e6f987 am: 84373d7748...
[platform/upstream/VK-GL-CTS.git] / framework / opengl / gluStrUtil.inl
1 /* WARNING: This is auto-generated file. Do not modify, since changes will
2  * be lost! Modify the generating script instead.
3  *
4  * Generated from Khronos GL API description (gl.xml) revision 7ac9c857db1e3a6065485e4e2144151f48a4f1c4.
5  */
6
7 const char* getErrorName (int value)
8 {
9         switch (value)
10         {
11                 case GL_NO_ERROR:                                               return "GL_NO_ERROR";
12                 case GL_INVALID_ENUM:                                   return "GL_INVALID_ENUM";
13                 case GL_INVALID_VALUE:                                  return "GL_INVALID_VALUE";
14                 case GL_INVALID_OPERATION:                              return "GL_INVALID_OPERATION";
15                 case GL_OUT_OF_MEMORY:                                  return "GL_OUT_OF_MEMORY";
16                 case GL_INVALID_FRAMEBUFFER_OPERATION:  return "GL_INVALID_FRAMEBUFFER_OPERATION";
17                 case GL_CONTEXT_LOST:                                   return "GL_CONTEXT_LOST";
18                 default:                                                                return DE_NULL;
19         }
20 }
21
22 const char* getTypeName (int value)
23 {
24         switch (value)
25         {
26                 case GL_BYTE:                                                   return "GL_BYTE";
27                 case GL_UNSIGNED_BYTE:                                  return "GL_UNSIGNED_BYTE";
28                 case GL_SHORT:                                                  return "GL_SHORT";
29                 case GL_UNSIGNED_SHORT:                                 return "GL_UNSIGNED_SHORT";
30                 case GL_INT:                                                    return "GL_INT";
31                 case GL_UNSIGNED_INT:                                   return "GL_UNSIGNED_INT";
32                 case GL_FLOAT:                                                  return "GL_FLOAT";
33                 case GL_FIXED:                                                  return "GL_FIXED";
34                 case GL_UNSIGNED_SHORT_5_6_5:                   return "GL_UNSIGNED_SHORT_5_6_5";
35                 case GL_UNSIGNED_SHORT_4_4_4_4:                 return "GL_UNSIGNED_SHORT_4_4_4_4";
36                 case GL_UNSIGNED_SHORT_5_5_5_1:                 return "GL_UNSIGNED_SHORT_5_5_5_1";
37                 case GL_HALF_FLOAT:                                             return "GL_HALF_FLOAT";
38                 case GL_INT_2_10_10_10_REV:                             return "GL_INT_2_10_10_10_REV";
39                 case GL_UNSIGNED_INT_2_10_10_10_REV:    return "GL_UNSIGNED_INT_2_10_10_10_REV";
40                 case GL_UNSIGNED_INT_10F_11F_11F_REV:   return "GL_UNSIGNED_INT_10F_11F_11F_REV";
41                 case GL_UNSIGNED_INT_5_9_9_9_REV:               return "GL_UNSIGNED_INT_5_9_9_9_REV";
42                 case GL_UNSIGNED_INT_24_8:                              return "GL_UNSIGNED_INT_24_8";
43                 case GL_FLOAT_32_UNSIGNED_INT_24_8_REV: return "GL_FLOAT_32_UNSIGNED_INT_24_8_REV";
44                 case GL_SIGNED_NORMALIZED:                              return "GL_SIGNED_NORMALIZED";
45                 case GL_UNSIGNED_NORMALIZED:                    return "GL_UNSIGNED_NORMALIZED";
46                 case GL_HALF_FLOAT_OES:                                 return "GL_HALF_FLOAT_OES";
47                 default:                                                                return DE_NULL;
48         }
49 }
50
51 const char* getParamQueryName (int value)
52 {
53         switch (value)
54         {
55                 case GL_LINE_WIDTH:                                                     return "GL_LINE_WIDTH";
56                 case GL_ALIASED_POINT_SIZE_RANGE:                       return "GL_ALIASED_POINT_SIZE_RANGE";
57                 case GL_ALIASED_LINE_WIDTH_RANGE:                       return "GL_ALIASED_LINE_WIDTH_RANGE";
58                 case GL_CULL_FACE_MODE:                                         return "GL_CULL_FACE_MODE";
59                 case GL_FRONT_FACE:                                                     return "GL_FRONT_FACE";
60                 case GL_DEPTH_RANGE:                                            return "GL_DEPTH_RANGE";
61                 case GL_DEPTH_WRITEMASK:                                        return "GL_DEPTH_WRITEMASK";
62                 case GL_DEPTH_CLEAR_VALUE:                                      return "GL_DEPTH_CLEAR_VALUE";
63                 case GL_DEPTH_FUNC:                                                     return "GL_DEPTH_FUNC";
64                 case GL_STENCIL_CLEAR_VALUE:                            return "GL_STENCIL_CLEAR_VALUE";
65                 case GL_STENCIL_FUNC:                                           return "GL_STENCIL_FUNC";
66                 case GL_STENCIL_FAIL:                                           return "GL_STENCIL_FAIL";
67                 case GL_STENCIL_PASS_DEPTH_FAIL:                        return "GL_STENCIL_PASS_DEPTH_FAIL";
68                 case GL_STENCIL_PASS_DEPTH_PASS:                        return "GL_STENCIL_PASS_DEPTH_PASS";
69                 case GL_STENCIL_REF:                                            return "GL_STENCIL_REF";
70                 case GL_STENCIL_VALUE_MASK:                                     return "GL_STENCIL_VALUE_MASK";
71                 case GL_STENCIL_WRITEMASK:                                      return "GL_STENCIL_WRITEMASK";
72                 case GL_STENCIL_BACK_FUNC:                                      return "GL_STENCIL_BACK_FUNC";
73                 case GL_STENCIL_BACK_FAIL:                                      return "GL_STENCIL_BACK_FAIL";
74                 case GL_STENCIL_BACK_PASS_DEPTH_FAIL:           return "GL_STENCIL_BACK_PASS_DEPTH_FAIL";
75                 case GL_STENCIL_BACK_PASS_DEPTH_PASS:           return "GL_STENCIL_BACK_PASS_DEPTH_PASS";
76                 case GL_STENCIL_BACK_REF:                                       return "GL_STENCIL_BACK_REF";
77                 case GL_STENCIL_BACK_VALUE_MASK:                        return "GL_STENCIL_BACK_VALUE_MASK";
78                 case GL_STENCIL_BACK_WRITEMASK:                         return "GL_STENCIL_BACK_WRITEMASK";
79                 case GL_VIEWPORT:                                                       return "GL_VIEWPORT";
80                 case GL_SCISSOR_BOX:                                            return "GL_SCISSOR_BOX";
81                 case GL_SCISSOR_TEST:                                           return "GL_SCISSOR_TEST";
82                 case GL_COLOR_CLEAR_VALUE:                                      return "GL_COLOR_CLEAR_VALUE";
83                 case GL_COLOR_WRITEMASK:                                        return "GL_COLOR_WRITEMASK";
84                 case GL_UNPACK_ALIGNMENT:                                       return "GL_UNPACK_ALIGNMENT";
85                 case GL_PACK_ALIGNMENT:                                         return "GL_PACK_ALIGNMENT";
86                 case GL_MAX_TEXTURE_SIZE:                                       return "GL_MAX_TEXTURE_SIZE";
87                 case GL_MAX_VIEWPORT_DIMS:                                      return "GL_MAX_VIEWPORT_DIMS";
88                 case GL_SUBPIXEL_BITS:                                          return "GL_SUBPIXEL_BITS";
89                 case GL_RED_BITS:                                                       return "GL_RED_BITS";
90                 case GL_GREEN_BITS:                                                     return "GL_GREEN_BITS";
91                 case GL_BLUE_BITS:                                                      return "GL_BLUE_BITS";
92                 case GL_ALPHA_BITS:                                                     return "GL_ALPHA_BITS";
93                 case GL_DEPTH_BITS:                                                     return "GL_DEPTH_BITS";
94                 case GL_STENCIL_BITS:                                           return "GL_STENCIL_BITS";
95                 case GL_POLYGON_OFFSET_UNITS:                           return "GL_POLYGON_OFFSET_UNITS";
96                 case GL_POLYGON_OFFSET_FILL:                            return "GL_POLYGON_OFFSET_FILL";
97                 case GL_POLYGON_OFFSET_FACTOR:                          return "GL_POLYGON_OFFSET_FACTOR";
98                 case GL_TEXTURE_BINDING_2D:                                     return "GL_TEXTURE_BINDING_2D";
99                 case GL_SAMPLE_BUFFERS:                                         return "GL_SAMPLE_BUFFERS";
100                 case GL_SAMPLES:                                                        return "GL_SAMPLES";
101                 case GL_SAMPLE_COVERAGE_VALUE:                          return "GL_SAMPLE_COVERAGE_VALUE";
102                 case GL_SAMPLE_COVERAGE_INVERT:                         return "GL_SAMPLE_COVERAGE_INVERT";
103                 case GL_MAX_CUBE_MAP_TEXTURE_SIZE:                      return "GL_MAX_CUBE_MAP_TEXTURE_SIZE";
104                 case GL_MAX_RENDERBUFFER_SIZE:                          return "GL_MAX_RENDERBUFFER_SIZE";
105                 case GL_MAX_VERTEX_ATTRIBS:                                     return "GL_MAX_VERTEX_ATTRIBS";
106                 case GL_MAX_VERTEX_UNIFORM_VECTORS:                     return "GL_MAX_VERTEX_UNIFORM_VECTORS";
107                 case GL_MAX_VARYING_VECTORS:                            return "GL_MAX_VARYING_VECTORS";
108                 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:       return "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS";
109                 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS:         return "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS";
110                 case GL_MAX_TEXTURE_IMAGE_UNITS:                        return "GL_MAX_TEXTURE_IMAGE_UNITS";
111                 case GL_MAX_FRAGMENT_UNIFORM_VECTORS:           return "GL_MAX_FRAGMENT_UNIFORM_VECTORS";
112                 default:                                                                        return DE_NULL;
113         }
114 }
115
116 const char* getProgramParamName (int value)
117 {
118         switch (value)
119         {
120                 case GL_ACTIVE_ATTRIBUTES:                                              return "GL_ACTIVE_ATTRIBUTES";
121                 case GL_ACTIVE_ATTRIBUTE_MAX_LENGTH:                    return "GL_ACTIVE_ATTRIBUTE_MAX_LENGTH";
122                 case GL_ACTIVE_UNIFORMS:                                                return "GL_ACTIVE_UNIFORMS";
123                 case GL_ACTIVE_UNIFORM_BLOCKS:                                  return "GL_ACTIVE_UNIFORM_BLOCKS";
124                 case GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH:   return "GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH";
125                 case GL_ACTIVE_UNIFORM_MAX_LENGTH:                              return "GL_ACTIVE_UNIFORM_MAX_LENGTH";
126                 case GL_ATTACHED_SHADERS:                                               return "GL_ATTACHED_SHADERS";
127                 case GL_DELETE_STATUS:                                                  return "GL_DELETE_STATUS";
128                 case GL_INFO_LOG_LENGTH:                                                return "GL_INFO_LOG_LENGTH";
129                 case GL_LINK_STATUS:                                                    return "GL_LINK_STATUS";
130                 case GL_PROGRAM_BINARY_RETRIEVABLE_HINT:                return "GL_PROGRAM_BINARY_RETRIEVABLE_HINT";
131                 case GL_TRANSFORM_FEEDBACK_BUFFER_MODE:                 return "GL_TRANSFORM_FEEDBACK_BUFFER_MODE";
132                 case GL_TRANSFORM_FEEDBACK_VARYINGS:                    return "GL_TRANSFORM_FEEDBACK_VARYINGS";
133                 case GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH:  return "GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH";
134                 case GL_VALIDATE_STATUS:                                                return "GL_VALIDATE_STATUS";
135                 case GL_GEOMETRY_INPUT_TYPE:                                    return "GL_GEOMETRY_INPUT_TYPE";
136                 case GL_GEOMETRY_OUTPUT_TYPE:                                   return "GL_GEOMETRY_OUTPUT_TYPE";
137                 case GL_GEOMETRY_VERTICES_OUT:                                  return "GL_GEOMETRY_VERTICES_OUT";
138                 case GL_GEOMETRY_SHADER_INVOCATIONS:                    return "GL_GEOMETRY_SHADER_INVOCATIONS";
139                 case GL_PROGRAM_SEPARABLE:                                              return "GL_PROGRAM_SEPARABLE";
140                 case GL_COMPUTE_WORK_GROUP_SIZE:                                return "GL_COMPUTE_WORK_GROUP_SIZE";
141                 case GL_ACTIVE_ATOMIC_COUNTER_BUFFERS:                  return "GL_ACTIVE_ATOMIC_COUNTER_BUFFERS";
142                 case GL_TESS_CONTROL_OUTPUT_VERTICES:                   return "GL_TESS_CONTROL_OUTPUT_VERTICES";
143                 case GL_TESS_GEN_MODE:                                                  return "GL_TESS_GEN_MODE";
144                 case GL_TESS_GEN_SPACING:                                               return "GL_TESS_GEN_SPACING";
145                 case GL_TESS_GEN_VERTEX_ORDER:                                  return "GL_TESS_GEN_VERTEX_ORDER";
146                 case GL_TESS_GEN_POINT_MODE:                                    return "GL_TESS_GEN_POINT_MODE";
147                 default:                                                                                return DE_NULL;
148         }
149 }
150
151 const char* getUniformParamName (int value)
152 {
153         switch (value)
154         {
155                 case GL_UNIFORM_TYPE:                   return "GL_UNIFORM_TYPE";
156                 case GL_UNIFORM_SIZE:                   return "GL_UNIFORM_SIZE";
157                 case GL_UNIFORM_NAME_LENGTH:    return "GL_UNIFORM_NAME_LENGTH";
158                 case GL_UNIFORM_BLOCK_INDEX:    return "GL_UNIFORM_BLOCK_INDEX";
159                 case GL_UNIFORM_OFFSET:                 return "GL_UNIFORM_OFFSET";
160                 case GL_UNIFORM_ARRAY_STRIDE:   return "GL_UNIFORM_ARRAY_STRIDE";
161                 case GL_UNIFORM_MATRIX_STRIDE:  return "GL_UNIFORM_MATRIX_STRIDE";
162                 case GL_UNIFORM_IS_ROW_MAJOR:   return "GL_UNIFORM_IS_ROW_MAJOR";
163                 default:                                                return DE_NULL;
164         }
165 }
166
167 const char* getFramebufferAttachmentName (int value)
168 {
169         switch (value)
170         {
171                 case GL_COLOR_ATTACHMENT0:                      return "GL_COLOR_ATTACHMENT0";
172                 case GL_COLOR_ATTACHMENT1:                      return "GL_COLOR_ATTACHMENT1";
173                 case GL_COLOR_ATTACHMENT2:                      return "GL_COLOR_ATTACHMENT2";
174                 case GL_COLOR_ATTACHMENT3:                      return "GL_COLOR_ATTACHMENT3";
175                 case GL_COLOR_ATTACHMENT4:                      return "GL_COLOR_ATTACHMENT4";
176                 case GL_COLOR_ATTACHMENT5:                      return "GL_COLOR_ATTACHMENT5";
177                 case GL_COLOR_ATTACHMENT6:                      return "GL_COLOR_ATTACHMENT6";
178                 case GL_COLOR_ATTACHMENT7:                      return "GL_COLOR_ATTACHMENT7";
179                 case GL_COLOR_ATTACHMENT8:                      return "GL_COLOR_ATTACHMENT8";
180                 case GL_COLOR_ATTACHMENT9:                      return "GL_COLOR_ATTACHMENT9";
181                 case GL_COLOR_ATTACHMENT10:                     return "GL_COLOR_ATTACHMENT10";
182                 case GL_COLOR_ATTACHMENT11:                     return "GL_COLOR_ATTACHMENT11";
183                 case GL_COLOR_ATTACHMENT12:                     return "GL_COLOR_ATTACHMENT12";
184                 case GL_COLOR_ATTACHMENT13:                     return "GL_COLOR_ATTACHMENT13";
185                 case GL_COLOR_ATTACHMENT14:                     return "GL_COLOR_ATTACHMENT14";
186                 case GL_COLOR_ATTACHMENT15:                     return "GL_COLOR_ATTACHMENT15";
187                 case GL_DEPTH_ATTACHMENT:                       return "GL_DEPTH_ATTACHMENT";
188                 case GL_STENCIL_ATTACHMENT:                     return "GL_STENCIL_ATTACHMENT";
189                 case GL_DEPTH_STENCIL_ATTACHMENT:       return "GL_DEPTH_STENCIL_ATTACHMENT";
190                 case GL_BACK:                                           return "GL_BACK";
191                 case GL_FRONT_LEFT:                                     return "GL_FRONT_LEFT";
192                 case GL_FRONT_RIGHT:                            return "GL_FRONT_RIGHT";
193                 case GL_BACK_LEFT:                                      return "GL_BACK_LEFT";
194                 case GL_BACK_RIGHT:                                     return "GL_BACK_RIGHT";
195                 case GL_DEPTH:                                          return "GL_DEPTH";
196                 case GL_STENCIL:                                        return "GL_STENCIL";
197                 default:                                                        return DE_NULL;
198         }
199 }
200
201 const char* getFramebufferAttachmentParameterName (int value)
202 {
203         switch (value)
204         {
205                 case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:                             return "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE";
206                 case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:                             return "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME";
207                 case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:                   return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL";
208                 case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:   return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE";
209                 case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:                   return "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER";
210                 case GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:                  return "GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE";
211                 case GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:                  return "GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING";
212                 case GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE:                                return "GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE";
213                 case GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:                              return "GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE";
214                 case GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:                               return "GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE";
215                 case GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:                              return "GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE";
216                 case GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:                              return "GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE";
217                 case GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:                    return "GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE";
218                 case GL_FRAMEBUFFER_ATTACHMENT_LAYERED:                                 return "GL_FRAMEBUFFER_ATTACHMENT_LAYERED";
219                 default:                                                                                                return DE_NULL;
220         }
221 }
222
223 const char* getFramebufferTargetName (int value)
224 {
225         switch (value)
226         {
227                 case GL_FRAMEBUFFER:            return "GL_FRAMEBUFFER";
228                 case GL_RENDERBUFFER:           return "GL_RENDERBUFFER";
229                 case GL_DRAW_FRAMEBUFFER:       return "GL_DRAW_FRAMEBUFFER";
230                 case GL_READ_FRAMEBUFFER:       return "GL_READ_FRAMEBUFFER";
231                 default:                                        return DE_NULL;
232         }
233 }
234
235 const char* getFramebufferStatusName (int value)
236 {
237         switch (value)
238         {
239                 case GL_FRAMEBUFFER_COMPLETE:                                           return "GL_FRAMEBUFFER_COMPLETE";
240                 case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT:                      return "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT";
241                 case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:      return "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";
242                 case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS:                      return "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS";
243                 case GL_FRAMEBUFFER_UNSUPPORTED:                                        return "GL_FRAMEBUFFER_UNSUPPORTED";
244                 case GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:                     return "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE";
245                 case GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS:           return "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS";
246                 default:                                                                                        return DE_NULL;
247         }
248 }
249
250 const char* getFramebufferAttachmentTypeName (int value)
251 {
252         switch (value)
253         {
254                 case GL_NONE:                                   return "GL_NONE";
255                 case GL_FRAMEBUFFER_DEFAULT:    return "GL_FRAMEBUFFER_DEFAULT";
256                 case GL_TEXTURE:                                return "GL_TEXTURE";
257                 case GL_RENDERBUFFER:                   return "GL_RENDERBUFFER";
258                 default:                                                return DE_NULL;
259         }
260 }
261
262 const char* getFramebufferColorEncodingName (int value)
263 {
264         switch (value)
265         {
266                 case GL_LINEAR: return "GL_LINEAR";
267                 case GL_SRGB:   return "GL_SRGB";
268                 default:                return DE_NULL;
269         }
270 }
271
272 const char* getFramebufferParameterName (int value)
273 {
274         switch (value)
275         {
276                 case GL_FRAMEBUFFER_DEFAULT_WIDTH:                                      return "GL_FRAMEBUFFER_DEFAULT_WIDTH";
277                 case GL_FRAMEBUFFER_DEFAULT_HEIGHT:                                     return "GL_FRAMEBUFFER_DEFAULT_HEIGHT";
278                 case GL_FRAMEBUFFER_DEFAULT_SAMPLES:                            return "GL_FRAMEBUFFER_DEFAULT_SAMPLES";
279                 case GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS:     return "GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS";
280                 case GL_FRAMEBUFFER_DEFAULT_LAYERS:                                     return "GL_FRAMEBUFFER_DEFAULT_LAYERS";
281                 default:                                                                                        return DE_NULL;
282         }
283 }
284
285 const char* getRenderbufferParameterName (int value)
286 {
287         switch (value)
288         {
289                 case GL_RENDERBUFFER_WIDTH:                             return "GL_RENDERBUFFER_WIDTH";
290                 case GL_RENDERBUFFER_HEIGHT:                    return "GL_RENDERBUFFER_HEIGHT";
291                 case GL_RENDERBUFFER_INTERNAL_FORMAT:   return "GL_RENDERBUFFER_INTERNAL_FORMAT";
292                 case GL_RENDERBUFFER_RED_SIZE:                  return "GL_RENDERBUFFER_RED_SIZE";
293                 case GL_RENDERBUFFER_GREEN_SIZE:                return "GL_RENDERBUFFER_GREEN_SIZE";
294                 case GL_RENDERBUFFER_BLUE_SIZE:                 return "GL_RENDERBUFFER_BLUE_SIZE";
295                 case GL_RENDERBUFFER_ALPHA_SIZE:                return "GL_RENDERBUFFER_ALPHA_SIZE";
296                 case GL_RENDERBUFFER_DEPTH_SIZE:                return "GL_RENDERBUFFER_DEPTH_SIZE";
297                 case GL_RENDERBUFFER_STENCIL_SIZE:              return "GL_RENDERBUFFER_STENCIL_SIZE";
298                 case GL_RENDERBUFFER_SAMPLES:                   return "GL_RENDERBUFFER_SAMPLES";
299                 default:                                                                return DE_NULL;
300         }
301 }
302
303 const char* getPrimitiveTypeName (int value)
304 {
305         switch (value)
306         {
307                 case GL_POINTS:                                         return "GL_POINTS";
308                 case GL_LINES:                                          return "GL_LINES";
309                 case GL_LINE_STRIP:                                     return "GL_LINE_STRIP";
310                 case GL_LINE_LOOP:                                      return "GL_LINE_LOOP";
311                 case GL_TRIANGLES:                                      return "GL_TRIANGLES";
312                 case GL_TRIANGLE_STRIP:                         return "GL_TRIANGLE_STRIP";
313                 case GL_TRIANGLE_FAN:                           return "GL_TRIANGLE_FAN";
314                 case GL_LINES_ADJACENCY:                        return "GL_LINES_ADJACENCY";
315                 case GL_LINE_STRIP_ADJACENCY:           return "GL_LINE_STRIP_ADJACENCY";
316                 case GL_TRIANGLES_ADJACENCY:            return "GL_TRIANGLES_ADJACENCY";
317                 case GL_TRIANGLE_STRIP_ADJACENCY:       return "GL_TRIANGLE_STRIP_ADJACENCY";
318                 default:                                                        return DE_NULL;
319         }
320 }
321
322 const char* getBlendFactorName (int value)
323 {
324         switch (value)
325         {
326                 case GL_ZERO:                                           return "GL_ZERO";
327                 case GL_ONE:                                            return "GL_ONE";
328                 case GL_SRC_ALPHA_SATURATE:                     return "GL_SRC_ALPHA_SATURATE";
329                 case GL_SRC_COLOR:                                      return "GL_SRC_COLOR";
330                 case GL_ONE_MINUS_SRC_COLOR:            return "GL_ONE_MINUS_SRC_COLOR";
331                 case GL_SRC_ALPHA:                                      return "GL_SRC_ALPHA";
332                 case GL_ONE_MINUS_SRC_ALPHA:            return "GL_ONE_MINUS_SRC_ALPHA";
333                 case GL_SRC1_COLOR:                                     return "GL_SRC1_COLOR";
334                 case GL_ONE_MINUS_SRC1_COLOR:           return "GL_ONE_MINUS_SRC1_COLOR";
335                 case GL_SRC1_ALPHA:                                     return "GL_SRC1_ALPHA";
336                 case GL_ONE_MINUS_SRC1_ALPHA:           return "GL_ONE_MINUS_SRC1_ALPHA";
337                 case GL_DST_COLOR:                                      return "GL_DST_COLOR";
338                 case GL_ONE_MINUS_DST_COLOR:            return "GL_ONE_MINUS_DST_COLOR";
339                 case GL_DST_ALPHA:                                      return "GL_DST_ALPHA";
340                 case GL_ONE_MINUS_DST_ALPHA:            return "GL_ONE_MINUS_DST_ALPHA";
341                 case GL_CONSTANT_COLOR:                         return "GL_CONSTANT_COLOR";
342                 case GL_ONE_MINUS_CONSTANT_COLOR:       return "GL_ONE_MINUS_CONSTANT_COLOR";
343                 case GL_CONSTANT_ALPHA:                         return "GL_CONSTANT_ALPHA";
344                 case GL_ONE_MINUS_CONSTANT_ALPHA:       return "GL_ONE_MINUS_CONSTANT_ALPHA";
345                 default:                                                        return DE_NULL;
346         }
347 }
348
349 const char* getBlendEquationName (int value)
350 {
351         switch (value)
352         {
353                 case GL_FUNC_ADD:                               return "GL_FUNC_ADD";
354                 case GL_FUNC_SUBTRACT:                  return "GL_FUNC_SUBTRACT";
355                 case GL_FUNC_REVERSE_SUBTRACT:  return "GL_FUNC_REVERSE_SUBTRACT";
356                 case GL_MIN:                                    return "GL_MIN";
357                 case GL_MAX:                                    return "GL_MAX";
358                 case GL_MULTIPLY_KHR:                   return "GL_MULTIPLY_KHR";
359                 case GL_SCREEN_KHR:                             return "GL_SCREEN_KHR";
360                 case GL_OVERLAY_KHR:                    return "GL_OVERLAY_KHR";
361                 case GL_DARKEN_KHR:                             return "GL_DARKEN_KHR";
362                 case GL_LIGHTEN_KHR:                    return "GL_LIGHTEN_KHR";
363                 case GL_COLORDODGE_KHR:                 return "GL_COLORDODGE_KHR";
364                 case GL_COLORBURN_KHR:                  return "GL_COLORBURN_KHR";
365                 case GL_HARDLIGHT_KHR:                  return "GL_HARDLIGHT_KHR";
366                 case GL_SOFTLIGHT_KHR:                  return "GL_SOFTLIGHT_KHR";
367                 case GL_DIFFERENCE_KHR:                 return "GL_DIFFERENCE_KHR";
368                 case GL_EXCLUSION_KHR:                  return "GL_EXCLUSION_KHR";
369                 case GL_HSL_HUE_KHR:                    return "GL_HSL_HUE_KHR";
370                 case GL_HSL_SATURATION_KHR:             return "GL_HSL_SATURATION_KHR";
371                 case GL_HSL_COLOR_KHR:                  return "GL_HSL_COLOR_KHR";
372                 case GL_HSL_LUMINOSITY_KHR:             return "GL_HSL_LUMINOSITY_KHR";
373                 default:                                                return DE_NULL;
374         }
375 }
376
377 const char* getBufferTargetName (int value)
378 {
379         switch (value)
380         {
381                 case GL_ARRAY_BUFFER:                           return "GL_ARRAY_BUFFER";
382                 case GL_ELEMENT_ARRAY_BUFFER:           return "GL_ELEMENT_ARRAY_BUFFER";
383                 case GL_COPY_READ_BUFFER:                       return "GL_COPY_READ_BUFFER";
384                 case GL_COPY_WRITE_BUFFER:                      return "GL_COPY_WRITE_BUFFER";
385                 case GL_PIXEL_PACK_BUFFER:                      return "GL_PIXEL_PACK_BUFFER";
386                 case GL_PIXEL_UNPACK_BUFFER:            return "GL_PIXEL_UNPACK_BUFFER";
387                 case GL_TRANSFORM_FEEDBACK_BUFFER:      return "GL_TRANSFORM_FEEDBACK_BUFFER";
388                 case GL_UNIFORM_BUFFER:                         return "GL_UNIFORM_BUFFER";
389                 case GL_DRAW_INDIRECT_BUFFER:           return "GL_DRAW_INDIRECT_BUFFER";
390                 case GL_SHADER_STORAGE_BUFFER:          return "GL_SHADER_STORAGE_BUFFER";
391                 case GL_TEXTURE_BUFFER:                         return "GL_TEXTURE_BUFFER";
392                 case GL_DISPATCH_INDIRECT_BUFFER:       return "GL_DISPATCH_INDIRECT_BUFFER";
393                 case GL_ATOMIC_COUNTER_BUFFER:          return "GL_ATOMIC_COUNTER_BUFFER";
394                 default:                                                        return DE_NULL;
395         }
396 }
397
398 const char* getBufferBindingName (int value)
399 {
400         switch (value)
401         {
402                 case GL_ARRAY_BUFFER_BINDING:                   return "GL_ARRAY_BUFFER_BINDING";
403                 case GL_ELEMENT_ARRAY_BUFFER_BINDING:   return "GL_ELEMENT_ARRAY_BUFFER_BINDING";
404                 default:                                                                return DE_NULL;
405         }
406 }
407
408 const char* getUsageName (int value)
409 {
410         switch (value)
411         {
412                 case GL_STREAM_DRAW:    return "GL_STREAM_DRAW";
413                 case GL_STREAM_READ:    return "GL_STREAM_READ";
414                 case GL_STREAM_COPY:    return "GL_STREAM_COPY";
415                 case GL_STATIC_DRAW:    return "GL_STATIC_DRAW";
416                 case GL_STATIC_READ:    return "GL_STATIC_READ";
417                 case GL_STATIC_COPY:    return "GL_STATIC_COPY";
418                 case GL_DYNAMIC_DRAW:   return "GL_DYNAMIC_DRAW";
419                 case GL_DYNAMIC_READ:   return "GL_DYNAMIC_READ";
420                 case GL_DYNAMIC_COPY:   return "GL_DYNAMIC_COPY";
421                 default:                                return DE_NULL;
422         }
423 }
424
425 const char* getBufferQueryName (int value)
426 {
427         switch (value)
428         {
429                 case GL_BUFFER_SIZE:                    return "GL_BUFFER_SIZE";
430                 case GL_BUFFER_USAGE:                   return "GL_BUFFER_USAGE";
431                 case GL_BUFFER_ACCESS_FLAGS:    return "GL_BUFFER_ACCESS_FLAGS";
432                 case GL_BUFFER_MAPPED:                  return "GL_BUFFER_MAPPED";
433                 case GL_BUFFER_MAP_OFFSET:              return "GL_BUFFER_MAP_OFFSET";
434                 case GL_BUFFER_MAP_LENGTH:              return "GL_BUFFER_MAP_LENGTH";
435                 default:                                                return DE_NULL;
436         }
437 }
438
439 const char* getFaceName (int value)
440 {
441         switch (value)
442         {
443                 case GL_FRONT:                  return "GL_FRONT";
444                 case GL_BACK:                   return "GL_BACK";
445                 case GL_FRONT_AND_BACK: return "GL_FRONT_AND_BACK";
446                 default:                                return DE_NULL;
447         }
448 }
449
450 const char* getCompareFuncName (int value)
451 {
452         switch (value)
453         {
454                 case GL_NEVER:          return "GL_NEVER";
455                 case GL_LESS:           return "GL_LESS";
456                 case GL_LEQUAL:         return "GL_LEQUAL";
457                 case GL_GREATER:        return "GL_GREATER";
458                 case GL_EQUAL:          return "GL_EQUAL";
459                 case GL_NOTEQUAL:       return "GL_NOTEQUAL";
460                 case GL_GEQUAL:         return "GL_GEQUAL";
461                 case GL_ALWAYS:         return "GL_ALWAYS";
462                 default:                        return DE_NULL;
463         }
464 }
465
466 const char* getEnableCapName (int value)
467 {
468         switch (value)
469         {
470                 case GL_TEXTURE_2D:                                             return "GL_TEXTURE_2D";
471                 case GL_CULL_FACE:                                              return "GL_CULL_FACE";
472                 case GL_BLEND:                                                  return "GL_BLEND";
473                 case GL_DITHER:                                                 return "GL_DITHER";
474                 case GL_STENCIL_TEST:                                   return "GL_STENCIL_TEST";
475                 case GL_DEPTH_TEST:                                             return "GL_DEPTH_TEST";
476                 case GL_SCISSOR_TEST:                                   return "GL_SCISSOR_TEST";
477                 case GL_POLYGON_OFFSET_FILL:                    return "GL_POLYGON_OFFSET_FILL";
478                 case GL_SAMPLE_ALPHA_TO_COVERAGE:               return "GL_SAMPLE_ALPHA_TO_COVERAGE";
479                 case GL_SAMPLE_COVERAGE:                                return "GL_SAMPLE_COVERAGE";
480                 case GL_PRIMITIVE_RESTART_FIXED_INDEX:  return "GL_PRIMITIVE_RESTART_FIXED_INDEX";
481                 case GL_RASTERIZER_DISCARD:                             return "GL_RASTERIZER_DISCARD";
482                 case GL_FRAMEBUFFER_SRGB:                               return "GL_FRAMEBUFFER_SRGB";
483                 case GL_SAMPLE_SHADING:                                 return "GL_SAMPLE_SHADING";
484                 case GL_DEPTH_CLAMP:                                    return "GL_DEPTH_CLAMP";
485                 case GL_PRIMITIVE_RESTART:                              return "GL_PRIMITIVE_RESTART";
486                 case GL_SAMPLE_MASK:                                    return "GL_SAMPLE_MASK";
487                 case GL_DEBUG_OUTPUT:                                   return "GL_DEBUG_OUTPUT";
488                 case GL_DEBUG_OUTPUT_SYNCHRONOUS:               return "GL_DEBUG_OUTPUT_SYNCHRONOUS";
489                 case GL_BLEND_ADVANCED_COHERENT_KHR:    return "GL_BLEND_ADVANCED_COHERENT_KHR";
490                 default:                                                                return DE_NULL;
491         }
492 }
493
494 const char* getIndexedEnableCapName (int value)
495 {
496         switch (value)
497         {
498                 case GL_BLEND:  return "GL_BLEND";
499                 default:                return DE_NULL;
500         }
501 }
502
503 const char* getWindingName (int value)
504 {
505         switch (value)
506         {
507                 case GL_CW:             return "GL_CW";
508                 case GL_CCW:    return "GL_CCW";
509                 default:                return DE_NULL;
510         }
511 }
512
513 const char* getHintModeName (int value)
514 {
515         switch (value)
516         {
517                 case GL_DONT_CARE:      return "GL_DONT_CARE";
518                 case GL_FASTEST:        return "GL_FASTEST";
519                 case GL_NICEST:         return "GL_NICEST";
520                 default:                        return DE_NULL;
521         }
522 }
523
524 const char* getHintName (int value)
525 {
526         switch (value)
527         {
528                 case GL_GENERATE_MIPMAP_HINT:   return "GL_GENERATE_MIPMAP_HINT";
529                 default:                                                return DE_NULL;
530         }
531 }
532
533 const char* getStencilOpName (int value)
534 {
535         switch (value)
536         {
537                 case GL_ZERO:           return "GL_ZERO";
538                 case GL_KEEP:           return "GL_KEEP";
539                 case GL_REPLACE:        return "GL_REPLACE";
540                 case GL_INCR:           return "GL_INCR";
541                 case GL_DECR:           return "GL_DECR";
542                 case GL_INVERT:         return "GL_INVERT";
543                 case GL_INCR_WRAP:      return "GL_INCR_WRAP";
544                 case GL_DECR_WRAP:      return "GL_DECR_WRAP";
545                 default:                        return DE_NULL;
546         }
547 }
548
549 const char* getShaderTypeName (int value)
550 {
551         switch (value)
552         {
553                 case GL_VERTEX_SHADER:                  return "GL_VERTEX_SHADER";
554                 case GL_FRAGMENT_SHADER:                return "GL_FRAGMENT_SHADER";
555                 case GL_COMPUTE_SHADER:                 return "GL_COMPUTE_SHADER";
556                 case GL_TESS_CONTROL_SHADER:    return "GL_TESS_CONTROL_SHADER";
557                 case GL_TESS_EVALUATION_SHADER: return "GL_TESS_EVALUATION_SHADER";
558                 case GL_GEOMETRY_SHADER:                return "GL_GEOMETRY_SHADER";
559                 default:                                                return DE_NULL;
560         }
561 }
562
563 const char* getBufferName (int value)
564 {
565         switch (value)
566         {
567                 case GL_COLOR:                  return "GL_COLOR";
568                 case GL_DEPTH:                  return "GL_DEPTH";
569                 case GL_STENCIL:                return "GL_STENCIL";
570                 case GL_DEPTH_STENCIL:  return "GL_DEPTH_STENCIL";
571                 default:                                return DE_NULL;
572         }
573 }
574
575 const char* getInvalidateAttachmentName (int value)
576 {
577         switch (value)
578         {
579                 case GL_COLOR:                                          return "GL_COLOR";
580                 case GL_DEPTH:                                          return "GL_DEPTH";
581                 case GL_STENCIL:                                        return "GL_STENCIL";
582                 case GL_COLOR_ATTACHMENT0:                      return "GL_COLOR_ATTACHMENT0";
583                 case GL_COLOR_ATTACHMENT1:                      return "GL_COLOR_ATTACHMENT1";
584                 case GL_COLOR_ATTACHMENT2:                      return "GL_COLOR_ATTACHMENT2";
585                 case GL_COLOR_ATTACHMENT3:                      return "GL_COLOR_ATTACHMENT3";
586                 case GL_COLOR_ATTACHMENT4:                      return "GL_COLOR_ATTACHMENT4";
587                 case GL_COLOR_ATTACHMENT5:                      return "GL_COLOR_ATTACHMENT5";
588                 case GL_COLOR_ATTACHMENT6:                      return "GL_COLOR_ATTACHMENT6";
589                 case GL_COLOR_ATTACHMENT7:                      return "GL_COLOR_ATTACHMENT7";
590                 case GL_DEPTH_ATTACHMENT:                       return "GL_DEPTH_ATTACHMENT";
591                 case GL_STENCIL_ATTACHMENT:                     return "GL_STENCIL_ATTACHMENT";
592                 case GL_DEPTH_STENCIL_ATTACHMENT:       return "GL_DEPTH_STENCIL_ATTACHMENT";
593                 default:                                                        return DE_NULL;
594         }
595 }
596
597 const char* getDrawReadBufferName (int value)
598 {
599         switch (value)
600         {
601                 case GL_COLOR:                                          return "GL_COLOR";
602                 case GL_DEPTH:                                          return "GL_DEPTH";
603                 case GL_STENCIL:                                        return "GL_STENCIL";
604                 case GL_BACK:                                           return "GL_BACK";
605                 case GL_NONE:                                           return "GL_NONE";
606                 case GL_COLOR_ATTACHMENT0:                      return "GL_COLOR_ATTACHMENT0";
607                 case GL_COLOR_ATTACHMENT1:                      return "GL_COLOR_ATTACHMENT1";
608                 case GL_COLOR_ATTACHMENT2:                      return "GL_COLOR_ATTACHMENT2";
609                 case GL_COLOR_ATTACHMENT3:                      return "GL_COLOR_ATTACHMENT3";
610                 case GL_COLOR_ATTACHMENT4:                      return "GL_COLOR_ATTACHMENT4";
611                 case GL_COLOR_ATTACHMENT5:                      return "GL_COLOR_ATTACHMENT5";
612                 case GL_COLOR_ATTACHMENT6:                      return "GL_COLOR_ATTACHMENT6";
613                 case GL_COLOR_ATTACHMENT7:                      return "GL_COLOR_ATTACHMENT7";
614                 case GL_DEPTH_ATTACHMENT:                       return "GL_DEPTH_ATTACHMENT";
615                 case GL_STENCIL_ATTACHMENT:                     return "GL_STENCIL_ATTACHMENT";
616                 case GL_DEPTH_STENCIL_ATTACHMENT:       return "GL_DEPTH_STENCIL_ATTACHMENT";
617                 default:                                                        return DE_NULL;
618         }
619 }
620
621 const char* getTextureTargetName (int value)
622 {
623         switch (value)
624         {
625                 case GL_TEXTURE_1D:                                             return "GL_TEXTURE_1D";
626                 case GL_TEXTURE_2D:                                             return "GL_TEXTURE_2D";
627                 case GL_TEXTURE_CUBE_MAP:                               return "GL_TEXTURE_CUBE_MAP";
628                 case GL_TEXTURE_CUBE_MAP_POSITIVE_X:    return "GL_TEXTURE_CUBE_MAP_POSITIVE_X";
629                 case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:    return "GL_TEXTURE_CUBE_MAP_NEGATIVE_X";
630                 case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:    return "GL_TEXTURE_CUBE_MAP_POSITIVE_Y";
631                 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:    return "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y";
632                 case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:    return "GL_TEXTURE_CUBE_MAP_POSITIVE_Z";
633                 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:    return "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z";
634                 case GL_TEXTURE_3D:                                             return "GL_TEXTURE_3D";
635                 case GL_TEXTURE_2D_ARRAY:                               return "GL_TEXTURE_2D_ARRAY";
636                 case GL_TEXTURE_2D_MULTISAMPLE:                 return "GL_TEXTURE_2D_MULTISAMPLE";
637                 case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:   return "GL_TEXTURE_2D_MULTISAMPLE_ARRAY";
638                 case GL_TEXTURE_BUFFER:                                 return "GL_TEXTURE_BUFFER";
639                 case GL_TEXTURE_CUBE_MAP_ARRAY:                 return "GL_TEXTURE_CUBE_MAP_ARRAY";
640                 default:                                                                return DE_NULL;
641         }
642 }
643
644 const char* getTextureParameterName (int value)
645 {
646         switch (value)
647         {
648                 case GL_TEXTURE_WRAP_S:                         return "GL_TEXTURE_WRAP_S";
649                 case GL_TEXTURE_WRAP_T:                         return "GL_TEXTURE_WRAP_T";
650                 case GL_TEXTURE_WRAP_R:                         return "GL_TEXTURE_WRAP_R";
651                 case GL_TEXTURE_BASE_LEVEL:                     return "GL_TEXTURE_BASE_LEVEL";
652                 case GL_TEXTURE_MAX_LEVEL:                      return "GL_TEXTURE_MAX_LEVEL";
653                 case GL_TEXTURE_COMPARE_MODE:           return "GL_TEXTURE_COMPARE_MODE";
654                 case GL_TEXTURE_COMPARE_FUNC:           return "GL_TEXTURE_COMPARE_FUNC";
655                 case GL_TEXTURE_MAX_LOD:                        return "GL_TEXTURE_MAX_LOD";
656                 case GL_TEXTURE_MIN_LOD:                        return "GL_TEXTURE_MIN_LOD";
657                 case GL_TEXTURE_SWIZZLE_R:                      return "GL_TEXTURE_SWIZZLE_R";
658                 case GL_TEXTURE_SWIZZLE_G:                      return "GL_TEXTURE_SWIZZLE_G";
659                 case GL_TEXTURE_SWIZZLE_B:                      return "GL_TEXTURE_SWIZZLE_B";
660                 case GL_TEXTURE_SWIZZLE_A:                      return "GL_TEXTURE_SWIZZLE_A";
661                 case GL_TEXTURE_MIN_FILTER:                     return "GL_TEXTURE_MIN_FILTER";
662                 case GL_TEXTURE_MAG_FILTER:                     return "GL_TEXTURE_MAG_FILTER";
663                 case GL_DEPTH_STENCIL_TEXTURE_MODE:     return "GL_DEPTH_STENCIL_TEXTURE_MODE";
664                 case GL_TEXTURE_SRGB_DECODE_EXT:        return "GL_TEXTURE_SRGB_DECODE_EXT";
665                 case GL_TEXTURE_BORDER_COLOR:           return "GL_TEXTURE_BORDER_COLOR";
666                 case GL_TEXTURE_IMMUTABLE_LEVELS:       return "GL_TEXTURE_IMMUTABLE_LEVELS";
667                 case GL_TEXTURE_IMMUTABLE_FORMAT:       return "GL_TEXTURE_IMMUTABLE_FORMAT";
668                 default:                                                        return DE_NULL;
669         }
670 }
671
672 const char* getTextureLevelParameterName (int value)
673 {
674         switch (value)
675         {
676                 case GL_TEXTURE_SAMPLES:                                        return "GL_TEXTURE_SAMPLES";
677                 case GL_TEXTURE_FIXED_SAMPLE_LOCATIONS:         return "GL_TEXTURE_FIXED_SAMPLE_LOCATIONS";
678                 case GL_TEXTURE_WIDTH:                                          return "GL_TEXTURE_WIDTH";
679                 case GL_TEXTURE_HEIGHT:                                         return "GL_TEXTURE_HEIGHT";
680                 case GL_TEXTURE_DEPTH:                                          return "GL_TEXTURE_DEPTH";
681                 case GL_TEXTURE_INTERNAL_FORMAT:                        return "GL_TEXTURE_INTERNAL_FORMAT";
682                 case GL_TEXTURE_RED_SIZE:                                       return "GL_TEXTURE_RED_SIZE";
683                 case GL_TEXTURE_GREEN_SIZE:                                     return "GL_TEXTURE_GREEN_SIZE";
684                 case GL_TEXTURE_BLUE_SIZE:                                      return "GL_TEXTURE_BLUE_SIZE";
685                 case GL_TEXTURE_ALPHA_SIZE:                                     return "GL_TEXTURE_ALPHA_SIZE";
686                 case GL_TEXTURE_DEPTH_SIZE:                                     return "GL_TEXTURE_DEPTH_SIZE";
687                 case GL_TEXTURE_STENCIL_SIZE:                           return "GL_TEXTURE_STENCIL_SIZE";
688                 case GL_TEXTURE_SHARED_SIZE:                            return "GL_TEXTURE_SHARED_SIZE";
689                 case GL_TEXTURE_RED_TYPE:                                       return "GL_TEXTURE_RED_TYPE";
690                 case GL_TEXTURE_GREEN_TYPE:                                     return "GL_TEXTURE_GREEN_TYPE";
691                 case GL_TEXTURE_BLUE_TYPE:                                      return "GL_TEXTURE_BLUE_TYPE";
692                 case GL_TEXTURE_ALPHA_TYPE:                                     return "GL_TEXTURE_ALPHA_TYPE";
693                 case GL_TEXTURE_DEPTH_TYPE:                                     return "GL_TEXTURE_DEPTH_TYPE";
694                 case GL_TEXTURE_COMPRESSED:                                     return "GL_TEXTURE_COMPRESSED";
695                 case GL_TEXTURE_BUFFER_DATA_STORE_BINDING:      return "GL_TEXTURE_BUFFER_DATA_STORE_BINDING";
696                 case GL_TEXTURE_BUFFER_OFFSET:                          return "GL_TEXTURE_BUFFER_OFFSET";
697                 case GL_TEXTURE_BUFFER_SIZE:                            return "GL_TEXTURE_BUFFER_SIZE";
698                 default:                                                                        return DE_NULL;
699         }
700 }
701
702 const char* getRepeatModeName (int value)
703 {
704         switch (value)
705         {
706                 case GL_REPEAT:                         return "GL_REPEAT";
707                 case GL_CLAMP_TO_EDGE:          return "GL_CLAMP_TO_EDGE";
708                 case GL_MIRRORED_REPEAT:        return "GL_MIRRORED_REPEAT";
709                 case GL_CLAMP_TO_BORDER:        return "GL_CLAMP_TO_BORDER";
710                 default:                                        return DE_NULL;
711         }
712 }
713
714 const char* getTextureFilterName (int value)
715 {
716         switch (value)
717         {
718                 case GL_NEAREST:                                return "GL_NEAREST";
719                 case GL_LINEAR:                                 return "GL_LINEAR";
720                 case GL_NEAREST_MIPMAP_NEAREST: return "GL_NEAREST_MIPMAP_NEAREST";
721                 case GL_LINEAR_MIPMAP_NEAREST:  return "GL_LINEAR_MIPMAP_NEAREST";
722                 case GL_NEAREST_MIPMAP_LINEAR:  return "GL_NEAREST_MIPMAP_LINEAR";
723                 case GL_LINEAR_MIPMAP_LINEAR:   return "GL_LINEAR_MIPMAP_LINEAR";
724                 default:                                                return DE_NULL;
725         }
726 }
727
728 const char* getTextureWrapModeName (int value)
729 {
730         switch (value)
731         {
732                 case GL_REPEAT:                         return "GL_REPEAT";
733                 case GL_CLAMP_TO_EDGE:          return "GL_CLAMP_TO_EDGE";
734                 case GL_MIRRORED_REPEAT:        return "GL_MIRRORED_REPEAT";
735                 default:                                        return DE_NULL;
736         }
737 }
738
739 const char* getTextureSwizzleName (int value)
740 {
741         switch (value)
742         {
743                 case GL_RED:    return "GL_RED";
744                 case GL_GREEN:  return "GL_GREEN";
745                 case GL_BLUE:   return "GL_BLUE";
746                 case GL_ALPHA:  return "GL_ALPHA";
747                 case GL_ZERO:   return "GL_ZERO";
748                 case GL_ONE:    return "GL_ONE";
749                 default:                return DE_NULL;
750         }
751 }
752
753 const char* getTextureCompareModeName (int value)
754 {
755         switch (value)
756         {
757                 case GL_NONE:                                   return "GL_NONE";
758                 case GL_COMPARE_REF_TO_TEXTURE: return "GL_COMPARE_REF_TO_TEXTURE";
759                 default:                                                return DE_NULL;
760         }
761 }
762
763 const char* getCubeMapFaceName (int value)
764 {
765         switch (value)
766         {
767                 case GL_TEXTURE_CUBE_MAP_POSITIVE_X:    return "GL_TEXTURE_CUBE_MAP_POSITIVE_X";
768                 case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:    return "GL_TEXTURE_CUBE_MAP_NEGATIVE_X";
769                 case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:    return "GL_TEXTURE_CUBE_MAP_POSITIVE_Y";
770                 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:    return "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y";
771                 case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:    return "GL_TEXTURE_CUBE_MAP_POSITIVE_Z";
772                 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:    return "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z";
773                 default:                                                                return DE_NULL;
774         }
775 }
776
777 const char* getTextureDepthStencilModeName (int value)
778 {
779         switch (value)
780         {
781                 case GL_DEPTH_COMPONENT:        return "GL_DEPTH_COMPONENT";
782                 case GL_STENCIL_INDEX:          return "GL_STENCIL_INDEX";
783                 default:                                        return DE_NULL;
784         }
785 }
786
787 const char* getPixelStoreParameterName (int value)
788 {
789         switch (value)
790         {
791                 case GL_UNPACK_ALIGNMENT:               return "GL_UNPACK_ALIGNMENT";
792                 case GL_UNPACK_IMAGE_HEIGHT:    return "GL_UNPACK_IMAGE_HEIGHT";
793                 case GL_UNPACK_ROW_LENGTH:              return "GL_UNPACK_ROW_LENGTH";
794                 case GL_UNPACK_SKIP_IMAGES:             return "GL_UNPACK_SKIP_IMAGES";
795                 case GL_UNPACK_SKIP_ROWS:               return "GL_UNPACK_SKIP_ROWS";
796                 case GL_UNPACK_SKIP_PIXELS:             return "GL_UNPACK_SKIP_PIXELS";
797                 case GL_PACK_ROW_LENGTH:                return "GL_PACK_ROW_LENGTH";
798                 case GL_PACK_SKIP_ROWS:                 return "GL_PACK_SKIP_ROWS";
799                 case GL_PACK_SKIP_PIXELS:               return "GL_PACK_SKIP_PIXELS";
800                 default:                                                return DE_NULL;
801         }
802 }
803
804 const char* getUncompressedTextureFormatName (int value)
805 {
806         switch (value)
807         {
808                 case GL_LUMINANCE:                      return "GL_LUMINANCE";
809                 case GL_LUMINANCE_ALPHA:        return "GL_LUMINANCE_ALPHA";
810                 case GL_ALPHA:                          return "GL_ALPHA";
811                 case GL_RGB:                            return "GL_RGB";
812                 case GL_RGBA:                           return "GL_RGBA";
813                 case GL_RGBA4:                          return "GL_RGBA4";
814                 case GL_RGB5_A1:                        return "GL_RGB5_A1";
815                 case GL_RGB565:                         return "GL_RGB565";
816                 case GL_DEPTH_COMPONENT16:      return "GL_DEPTH_COMPONENT16";
817                 case GL_STENCIL_INDEX8:         return "GL_STENCIL_INDEX8";
818                 case GL_RG:                                     return "GL_RG";
819                 case GL_RED:                            return "GL_RED";
820                 case GL_RGBA_INTEGER:           return "GL_RGBA_INTEGER";
821                 case GL_RGB_INTEGER:            return "GL_RGB_INTEGER";
822                 case GL_RG_INTEGER:                     return "GL_RG_INTEGER";
823                 case GL_RED_INTEGER:            return "GL_RED_INTEGER";
824                 case GL_DEPTH_COMPONENT:        return "GL_DEPTH_COMPONENT";
825                 case GL_DEPTH_STENCIL:          return "GL_DEPTH_STENCIL";
826                 case GL_RGBA32F:                        return "GL_RGBA32F";
827                 case GL_RGBA32I:                        return "GL_RGBA32I";
828                 case GL_RGBA32UI:                       return "GL_RGBA32UI";
829                 case GL_RGBA16:                         return "GL_RGBA16";
830                 case GL_RGBA16_SNORM:           return "GL_RGBA16_SNORM";
831                 case GL_RGBA16F:                        return "GL_RGBA16F";
832                 case GL_RGBA16I:                        return "GL_RGBA16I";
833                 case GL_RGBA16UI:                       return "GL_RGBA16UI";
834                 case GL_RGBA8:                          return "GL_RGBA8";
835                 case GL_RGBA8I:                         return "GL_RGBA8I";
836                 case GL_RGBA8UI:                        return "GL_RGBA8UI";
837                 case GL_SRGB8_ALPHA8:           return "GL_SRGB8_ALPHA8";
838                 case GL_RGB10_A2:                       return "GL_RGB10_A2";
839                 case GL_RGB10_A2UI:                     return "GL_RGB10_A2UI";
840                 case GL_RGBA8_SNORM:            return "GL_RGBA8_SNORM";
841                 case GL_RGB8:                           return "GL_RGB8";
842                 case GL_R11F_G11F_B10F:         return "GL_R11F_G11F_B10F";
843                 case GL_RGB32F:                         return "GL_RGB32F";
844                 case GL_RGB32I:                         return "GL_RGB32I";
845                 case GL_RGB32UI:                        return "GL_RGB32UI";
846                 case GL_RGB16:                          return "GL_RGB16";
847                 case GL_RGB16_SNORM:            return "GL_RGB16_SNORM";
848                 case GL_RGB16F:                         return "GL_RGB16F";
849                 case GL_RGB16I:                         return "GL_RGB16I";
850                 case GL_RGB16UI:                        return "GL_RGB16UI";
851                 case GL_RGB8_SNORM:                     return "GL_RGB8_SNORM";
852                 case GL_RGB8I:                          return "GL_RGB8I";
853                 case GL_RGB8UI:                         return "GL_RGB8UI";
854                 case GL_SRGB8:                          return "GL_SRGB8";
855                 case GL_RGB9_E5:                        return "GL_RGB9_E5";
856                 case GL_RG32F:                          return "GL_RG32F";
857                 case GL_RG32I:                          return "GL_RG32I";
858                 case GL_RG32UI:                         return "GL_RG32UI";
859                 case GL_RG16:                           return "GL_RG16";
860                 case GL_RG16_SNORM:                     return "GL_RG16_SNORM";
861                 case GL_RG16F:                          return "GL_RG16F";
862                 case GL_RG16I:                          return "GL_RG16I";
863                 case GL_RG16UI:                         return "GL_RG16UI";
864                 case GL_RG8:                            return "GL_RG8";
865                 case GL_RG8I:                           return "GL_RG8I";
866                 case GL_RG8UI:                          return "GL_RG8UI";
867                 case GL_RG8_SNORM:                      return "GL_RG8_SNORM";
868                 case GL_R32F:                           return "GL_R32F";
869                 case GL_R32I:                           return "GL_R32I";
870                 case GL_R32UI:                          return "GL_R32UI";
871                 case GL_R16:                            return "GL_R16";
872                 case GL_R16_SNORM:                      return "GL_R16_SNORM";
873                 case GL_R16F:                           return "GL_R16F";
874                 case GL_R16I:                           return "GL_R16I";
875                 case GL_R16UI:                          return "GL_R16UI";
876                 case GL_R8:                                     return "GL_R8";
877                 case GL_R8I:                            return "GL_R8I";
878                 case GL_R8UI:                           return "GL_R8UI";
879                 case GL_R8_SNORM:                       return "GL_R8_SNORM";
880                 case GL_DEPTH_COMPONENT32F:     return "GL_DEPTH_COMPONENT32F";
881                 case GL_DEPTH_COMPONENT24:      return "GL_DEPTH_COMPONENT24";
882                 case GL_DEPTH32F_STENCIL8:      return "GL_DEPTH32F_STENCIL8";
883                 case GL_DEPTH24_STENCIL8:       return "GL_DEPTH24_STENCIL8";
884                 case GL_RGB10:                          return "GL_RGB10";
885                 case GL_DEPTH_COMPONENT32:      return "GL_DEPTH_COMPONENT32";
886                 case GL_SRGB:                           return "GL_SRGB";
887                 case GL_SRGB_ALPHA:                     return "GL_SRGB_ALPHA";
888                 case GL_SR8_EXT:                        return "GL_SR8_EXT";
889                 case GL_SRG8_EXT:                       return "GL_SRG8_EXT";
890                 case GL_BGRA:                           return "GL_BGRA";
891                 default:                                        return DE_NULL;
892         }
893 }
894
895 const char* getCompressedTextureFormatName (int value)
896 {
897         switch (value)
898         {
899                 case GL_COMPRESSED_R11_EAC:                                                     return "GL_COMPRESSED_R11_EAC";
900                 case GL_COMPRESSED_SIGNED_R11_EAC:                                      return "GL_COMPRESSED_SIGNED_R11_EAC";
901                 case GL_COMPRESSED_RG11_EAC:                                            return "GL_COMPRESSED_RG11_EAC";
902                 case GL_COMPRESSED_SIGNED_RG11_EAC:                                     return "GL_COMPRESSED_SIGNED_RG11_EAC";
903                 case GL_COMPRESSED_RGB8_ETC2:                                           return "GL_COMPRESSED_RGB8_ETC2";
904                 case GL_COMPRESSED_SRGB8_ETC2:                                          return "GL_COMPRESSED_SRGB8_ETC2";
905                 case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:       return "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2";
906                 case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:      return "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2";
907                 case GL_COMPRESSED_RGBA8_ETC2_EAC:                                      return "GL_COMPRESSED_RGBA8_ETC2_EAC";
908                 case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:                       return "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC";
909                 case GL_COMPRESSED_RGBA_ASTC_4x4_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_4x4_KHR";
910                 case GL_COMPRESSED_RGBA_ASTC_5x4_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_5x4_KHR";
911                 case GL_COMPRESSED_RGBA_ASTC_5x5_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_5x5_KHR";
912                 case GL_COMPRESSED_RGBA_ASTC_6x5_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_6x5_KHR";
913                 case GL_COMPRESSED_RGBA_ASTC_6x6_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_6x6_KHR";
914                 case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_8x5_KHR";
915                 case GL_COMPRESSED_RGBA_ASTC_8x6_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_8x6_KHR";
916                 case GL_COMPRESSED_RGBA_ASTC_8x8_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_8x8_KHR";
917                 case GL_COMPRESSED_RGBA_ASTC_10x5_KHR:                          return "GL_COMPRESSED_RGBA_ASTC_10x5_KHR";
918                 case GL_COMPRESSED_RGBA_ASTC_10x6_KHR:                          return "GL_COMPRESSED_RGBA_ASTC_10x6_KHR";
919                 case GL_COMPRESSED_RGBA_ASTC_10x8_KHR:                          return "GL_COMPRESSED_RGBA_ASTC_10x8_KHR";
920                 case GL_COMPRESSED_RGBA_ASTC_10x10_KHR:                         return "GL_COMPRESSED_RGBA_ASTC_10x10_KHR";
921                 case GL_COMPRESSED_RGBA_ASTC_12x10_KHR:                         return "GL_COMPRESSED_RGBA_ASTC_12x10_KHR";
922                 case GL_COMPRESSED_RGBA_ASTC_12x12_KHR:                         return "GL_COMPRESSED_RGBA_ASTC_12x12_KHR";
923                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR";
924                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR";
925                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR";
926                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR";
927                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR";
928                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR";
929                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR";
930                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR";
931                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:          return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR";
932                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:          return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR";
933                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:          return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR";
934                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:         return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR";
935                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:         return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR";
936                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:         return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR";
937                 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:                           return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT";
938                 case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:                          return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT";
939                 case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:                          return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT";
940                 case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:                          return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT";
941                 case GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG:                        return "GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG";
942                 case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG:                        return "GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG";
943                 case GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:                       return "GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG";
944                 case GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:                       return "GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG";
945                 default:                                                                                        return DE_NULL;
946         }
947 }
948
949 const char* getShaderVarTypeName (int value)
950 {
951         switch (value)
952         {
953                 case GL_FLOAT:                                                                          return "GL_FLOAT";
954                 case GL_FLOAT_VEC2:                                                                     return "GL_FLOAT_VEC2";
955                 case GL_FLOAT_VEC3:                                                                     return "GL_FLOAT_VEC3";
956                 case GL_FLOAT_VEC4:                                                                     return "GL_FLOAT_VEC4";
957                 case GL_INT:                                                                            return "GL_INT";
958                 case GL_INT_VEC2:                                                                       return "GL_INT_VEC2";
959                 case GL_INT_VEC3:                                                                       return "GL_INT_VEC3";
960                 case GL_INT_VEC4:                                                                       return "GL_INT_VEC4";
961                 case GL_UNSIGNED_INT:                                                           return "GL_UNSIGNED_INT";
962                 case GL_UNSIGNED_INT_VEC2:                                                      return "GL_UNSIGNED_INT_VEC2";
963                 case GL_UNSIGNED_INT_VEC3:                                                      return "GL_UNSIGNED_INT_VEC3";
964                 case GL_UNSIGNED_INT_VEC4:                                                      return "GL_UNSIGNED_INT_VEC4";
965                 case GL_BOOL:                                                                           return "GL_BOOL";
966                 case GL_BOOL_VEC2:                                                                      return "GL_BOOL_VEC2";
967                 case GL_BOOL_VEC3:                                                                      return "GL_BOOL_VEC3";
968                 case GL_BOOL_VEC4:                                                                      return "GL_BOOL_VEC4";
969                 case GL_FLOAT_MAT2:                                                                     return "GL_FLOAT_MAT2";
970                 case GL_FLOAT_MAT3:                                                                     return "GL_FLOAT_MAT3";
971                 case GL_FLOAT_MAT4:                                                                     return "GL_FLOAT_MAT4";
972                 case GL_FLOAT_MAT2x3:                                                           return "GL_FLOAT_MAT2x3";
973                 case GL_FLOAT_MAT2x4:                                                           return "GL_FLOAT_MAT2x4";
974                 case GL_FLOAT_MAT3x2:                                                           return "GL_FLOAT_MAT3x2";
975                 case GL_FLOAT_MAT3x4:                                                           return "GL_FLOAT_MAT3x4";
976                 case GL_FLOAT_MAT4x2:                                                           return "GL_FLOAT_MAT4x2";
977                 case GL_FLOAT_MAT4x3:                                                           return "GL_FLOAT_MAT4x3";
978                 case GL_SAMPLER_2D:                                                                     return "GL_SAMPLER_2D";
979                 case GL_SAMPLER_3D:                                                                     return "GL_SAMPLER_3D";
980                 case GL_SAMPLER_CUBE:                                                           return "GL_SAMPLER_CUBE";
981                 case GL_SAMPLER_2D_SHADOW:                                                      return "GL_SAMPLER_2D_SHADOW";
982                 case GL_SAMPLER_2D_ARRAY:                                                       return "GL_SAMPLER_2D_ARRAY";
983                 case GL_SAMPLER_2D_ARRAY_SHADOW:                                        return "GL_SAMPLER_2D_ARRAY_SHADOW";
984                 case GL_SAMPLER_CUBE_SHADOW:                                            return "GL_SAMPLER_CUBE_SHADOW";
985                 case GL_INT_SAMPLER_2D:                                                         return "GL_INT_SAMPLER_2D";
986                 case GL_INT_SAMPLER_3D:                                                         return "GL_INT_SAMPLER_3D";
987                 case GL_INT_SAMPLER_CUBE:                                                       return "GL_INT_SAMPLER_CUBE";
988                 case GL_INT_SAMPLER_2D_ARRAY:                                           return "GL_INT_SAMPLER_2D_ARRAY";
989                 case GL_UNSIGNED_INT_SAMPLER_2D:                                        return "GL_UNSIGNED_INT_SAMPLER_2D";
990                 case GL_UNSIGNED_INT_SAMPLER_3D:                                        return "GL_UNSIGNED_INT_SAMPLER_3D";
991                 case GL_UNSIGNED_INT_SAMPLER_CUBE:                                      return "GL_UNSIGNED_INT_SAMPLER_CUBE";
992                 case GL_UNSIGNED_INT_SAMPLER_2D_ARRAY:                          return "GL_UNSIGNED_INT_SAMPLER_2D_ARRAY";
993                 case GL_SAMPLER_2D_MULTISAMPLE:                                         return "GL_SAMPLER_2D_MULTISAMPLE";
994                 case GL_INT_SAMPLER_2D_MULTISAMPLE:                                     return "GL_INT_SAMPLER_2D_MULTISAMPLE";
995                 case GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE:            return "GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE";
996                 case GL_IMAGE_2D:                                                                       return "GL_IMAGE_2D";
997                 case GL_IMAGE_3D:                                                                       return "GL_IMAGE_3D";
998                 case GL_IMAGE_CUBE:                                                                     return "GL_IMAGE_CUBE";
999                 case GL_IMAGE_2D_ARRAY:                                                         return "GL_IMAGE_2D_ARRAY";
1000                 case GL_INT_IMAGE_2D:                                                           return "GL_INT_IMAGE_2D";
1001                 case GL_INT_IMAGE_3D:                                                           return "GL_INT_IMAGE_3D";
1002                 case GL_INT_IMAGE_CUBE:                                                         return "GL_INT_IMAGE_CUBE";
1003                 case GL_INT_IMAGE_2D_ARRAY:                                                     return "GL_INT_IMAGE_2D_ARRAY";
1004                 case GL_UNSIGNED_INT_IMAGE_2D:                                          return "GL_UNSIGNED_INT_IMAGE_2D";
1005                 case GL_UNSIGNED_INT_IMAGE_3D:                                          return "GL_UNSIGNED_INT_IMAGE_3D";
1006                 case GL_UNSIGNED_INT_IMAGE_CUBE:                                        return "GL_UNSIGNED_INT_IMAGE_CUBE";
1007                 case GL_UNSIGNED_INT_IMAGE_2D_ARRAY:                            return "GL_UNSIGNED_INT_IMAGE_2D_ARRAY";
1008                 case GL_UNSIGNED_INT_ATOMIC_COUNTER:                            return "GL_UNSIGNED_INT_ATOMIC_COUNTER";
1009                 case GL_SAMPLER_2D_MULTISAMPLE_ARRAY:                           return "GL_SAMPLER_2D_MULTISAMPLE_ARRAY";
1010                 case GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY:                       return "GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY";
1011                 case GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY:      return "GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY";
1012                 case GL_SAMPLER_BUFFER:                                                         return "GL_SAMPLER_BUFFER";
1013                 case GL_INT_SAMPLER_BUFFER:                                                     return "GL_INT_SAMPLER_BUFFER";
1014                 case GL_UNSIGNED_INT_SAMPLER_BUFFER:                            return "GL_UNSIGNED_INT_SAMPLER_BUFFER";
1015                 case GL_IMAGE_BUFFER:                                                           return "GL_IMAGE_BUFFER";
1016                 case GL_INT_IMAGE_BUFFER:                                                       return "GL_INT_IMAGE_BUFFER";
1017                 case GL_UNSIGNED_INT_IMAGE_BUFFER:                                      return "GL_UNSIGNED_INT_IMAGE_BUFFER";
1018                 case GL_SAMPLER_CUBE_MAP_ARRAY:                                         return "GL_SAMPLER_CUBE_MAP_ARRAY";
1019                 case GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW:                          return "GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW";
1020                 case GL_INT_SAMPLER_CUBE_MAP_ARRAY:                                     return "GL_INT_SAMPLER_CUBE_MAP_ARRAY";
1021                 case GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY:            return "GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY";
1022                 case GL_IMAGE_CUBE_MAP_ARRAY:                                           return "GL_IMAGE_CUBE_MAP_ARRAY";
1023                 case GL_INT_IMAGE_CUBE_MAP_ARRAY:                                       return "GL_INT_IMAGE_CUBE_MAP_ARRAY";
1024                 case GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY:                      return "GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY";
1025                 default:                                                                                        return DE_NULL;
1026         }
1027 }
1028
1029 const char* getShaderParamName (int value)
1030 {
1031         switch (value)
1032         {
1033                 case GL_SHADER_TYPE:                    return "GL_SHADER_TYPE";
1034                 case GL_DELETE_STATUS:                  return "GL_DELETE_STATUS";
1035                 case GL_COMPILE_STATUS:                 return "GL_COMPILE_STATUS";
1036                 case GL_INFO_LOG_LENGTH:                return "GL_INFO_LOG_LENGTH";
1037                 case GL_SHADER_SOURCE_LENGTH:   return "GL_SHADER_SOURCE_LENGTH";
1038                 default:                                                return DE_NULL;
1039         }
1040 }
1041
1042 const char* getVertexAttribParameterNameName (int value)
1043 {
1044         switch (value)
1045         {
1046                 case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:     return "GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING";
1047                 case GL_VERTEX_ATTRIB_ARRAY_ENABLED:            return "GL_VERTEX_ATTRIB_ARRAY_ENABLED";
1048                 case GL_VERTEX_ATTRIB_ARRAY_SIZE:                       return "GL_VERTEX_ATTRIB_ARRAY_SIZE";
1049                 case GL_VERTEX_ATTRIB_ARRAY_STRIDE:                     return "GL_VERTEX_ATTRIB_ARRAY_STRIDE";
1050                 case GL_VERTEX_ATTRIB_ARRAY_TYPE:                       return "GL_VERTEX_ATTRIB_ARRAY_TYPE";
1051                 case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED:         return "GL_VERTEX_ATTRIB_ARRAY_NORMALIZED";
1052                 case GL_VERTEX_ATTRIB_ARRAY_INTEGER:            return "GL_VERTEX_ATTRIB_ARRAY_INTEGER";
1053                 case GL_VERTEX_ATTRIB_ARRAY_DIVISOR:            return "GL_VERTEX_ATTRIB_ARRAY_DIVISOR";
1054                 case GL_CURRENT_VERTEX_ATTRIB:                          return "GL_CURRENT_VERTEX_ATTRIB";
1055                 case GL_VERTEX_ATTRIB_BINDING:                          return "GL_VERTEX_ATTRIB_BINDING";
1056                 case GL_VERTEX_ATTRIB_RELATIVE_OFFSET:          return "GL_VERTEX_ATTRIB_RELATIVE_OFFSET";
1057                 default:                                                                        return DE_NULL;
1058         }
1059 }
1060
1061 const char* getBooleanName (int value)
1062 {
1063         switch (value)
1064         {
1065                 case GL_FALSE:  return "GL_FALSE";
1066                 case GL_TRUE:   return "GL_TRUE";
1067                 default:                return DE_NULL;
1068         }
1069 }
1070
1071 const char* getGettableStateName (int value)
1072 {
1073         switch (value)
1074         {
1075                 case GL_ELEMENT_ARRAY_BUFFER_BINDING:                                           return "GL_ELEMENT_ARRAY_BUFFER_BINDING";
1076                 case GL_ARRAY_BUFFER_BINDING:                                                           return "GL_ARRAY_BUFFER_BINDING";
1077                 case GL_VERTEX_ARRAY_BINDING:                                                           return "GL_VERTEX_ARRAY_BINDING";
1078                 case GL_VIEWPORT:                                                                                       return "GL_VIEWPORT";
1079                 case GL_DEPTH_RANGE:                                                                            return "GL_DEPTH_RANGE";
1080                 case GL_TRANSFORM_FEEDBACK_BINDING:                                                     return "GL_TRANSFORM_FEEDBACK_BINDING";
1081                 case GL_LINE_WIDTH:                                                                                     return "GL_LINE_WIDTH";
1082                 case GL_CULL_FACE_MODE:                                                                         return "GL_CULL_FACE_MODE";
1083                 case GL_FRONT_FACE:                                                                                     return "GL_FRONT_FACE";
1084                 case GL_POLYGON_OFFSET_FACTOR:                                                          return "GL_POLYGON_OFFSET_FACTOR";
1085                 case GL_POLYGON_OFFSET_UNITS:                                                           return "GL_POLYGON_OFFSET_UNITS";
1086                 case GL_SAMPLE_COVERAGE_VALUE:                                                          return "GL_SAMPLE_COVERAGE_VALUE";
1087                 case GL_SAMPLE_COVERAGE_INVERT:                                                         return "GL_SAMPLE_COVERAGE_INVERT";
1088                 case GL_ACTIVE_TEXTURE:                                                                         return "GL_ACTIVE_TEXTURE";
1089                 case GL_TEXTURE_BINDING_1D:                                                                     return "GL_TEXTURE_BINDING_1D";
1090                 case GL_TEXTURE_BINDING_2D:                                                                     return "GL_TEXTURE_BINDING_2D";
1091                 case GL_TEXTURE_BINDING_3D:                                                                     return "GL_TEXTURE_BINDING_3D";
1092                 case GL_TEXTURE_BINDING_2D_ARRAY:                                                       return "GL_TEXTURE_BINDING_2D_ARRAY";
1093                 case GL_TEXTURE_BINDING_CUBE_MAP:                                                       return "GL_TEXTURE_BINDING_CUBE_MAP";
1094                 case GL_SAMPLER_BINDING:                                                                        return "GL_SAMPLER_BINDING";
1095                 case GL_SCISSOR_BOX:                                                                            return "GL_SCISSOR_BOX";
1096                 case GL_STENCIL_FUNC:                                                                           return "GL_STENCIL_FUNC";
1097                 case GL_STENCIL_VALUE_MASK:                                                                     return "GL_STENCIL_VALUE_MASK";
1098                 case GL_STENCIL_REF:                                                                            return "GL_STENCIL_REF";
1099                 case GL_STENCIL_FAIL:                                                                           return "GL_STENCIL_FAIL";
1100                 case GL_STENCIL_PASS_DEPTH_FAIL:                                                        return "GL_STENCIL_PASS_DEPTH_FAIL";
1101                 case GL_STENCIL_PASS_DEPTH_PASS:                                                        return "GL_STENCIL_PASS_DEPTH_PASS";
1102                 case GL_STENCIL_BACK_FUNC:                                                                      return "GL_STENCIL_BACK_FUNC";
1103                 case GL_STENCIL_BACK_VALUE_MASK:                                                        return "GL_STENCIL_BACK_VALUE_MASK";
1104                 case GL_STENCIL_BACK_REF:                                                                       return "GL_STENCIL_BACK_REF";
1105                 case GL_STENCIL_BACK_FAIL:                                                                      return "GL_STENCIL_BACK_FAIL";
1106                 case GL_STENCIL_BACK_PASS_DEPTH_FAIL:                                           return "GL_STENCIL_BACK_PASS_DEPTH_FAIL";
1107                 case GL_STENCIL_BACK_PASS_DEPTH_PASS:                                           return "GL_STENCIL_BACK_PASS_DEPTH_PASS";
1108                 case GL_DEPTH_FUNC:                                                                                     return "GL_DEPTH_FUNC";
1109                 case GL_BLEND_SRC_RGB:                                                                          return "GL_BLEND_SRC_RGB";
1110                 case GL_BLEND_SRC_ALPHA:                                                                        return "GL_BLEND_SRC_ALPHA";
1111                 case GL_BLEND_DST_RGB:                                                                          return "GL_BLEND_DST_RGB";
1112                 case GL_BLEND_DST_ALPHA:                                                                        return "GL_BLEND_DST_ALPHA";
1113                 case GL_BLEND_EQUATION_RGB:                                                                     return "GL_BLEND_EQUATION_RGB";
1114                 case GL_BLEND_EQUATION_ALPHA:                                                           return "GL_BLEND_EQUATION_ALPHA";
1115                 case GL_BLEND_COLOR:                                                                            return "GL_BLEND_COLOR";
1116                 case GL_COLOR_WRITEMASK:                                                                        return "GL_COLOR_WRITEMASK";
1117                 case GL_DEPTH_WRITEMASK:                                                                        return "GL_DEPTH_WRITEMASK";
1118                 case GL_STENCIL_WRITEMASK:                                                                      return "GL_STENCIL_WRITEMASK";
1119                 case GL_STENCIL_BACK_WRITEMASK:                                                         return "GL_STENCIL_BACK_WRITEMASK";
1120                 case GL_COLOR_CLEAR_VALUE:                                                                      return "GL_COLOR_CLEAR_VALUE";
1121                 case GL_DEPTH_CLEAR_VALUE:                                                                      return "GL_DEPTH_CLEAR_VALUE";
1122                 case GL_STENCIL_CLEAR_VALUE:                                                            return "GL_STENCIL_CLEAR_VALUE";
1123                 case GL_DRAW_FRAMEBUFFER_BINDING:                                                       return "GL_DRAW_FRAMEBUFFER_BINDING";
1124                 case GL_READ_FRAMEBUFFER_BINDING:                                                       return "GL_READ_FRAMEBUFFER_BINDING";
1125                 case GL_RENDERBUFFER_BINDING:                                                           return "GL_RENDERBUFFER_BINDING";
1126                 case GL_DRAW_BUFFER0:                                                                           return "GL_DRAW_BUFFER0";
1127                 case GL_DRAW_BUFFER1:                                                                           return "GL_DRAW_BUFFER1";
1128                 case GL_DRAW_BUFFER2:                                                                           return "GL_DRAW_BUFFER2";
1129                 case GL_DRAW_BUFFER3:                                                                           return "GL_DRAW_BUFFER3";
1130                 case GL_DRAW_BUFFER4:                                                                           return "GL_DRAW_BUFFER4";
1131                 case GL_DRAW_BUFFER5:                                                                           return "GL_DRAW_BUFFER5";
1132                 case GL_DRAW_BUFFER6:                                                                           return "GL_DRAW_BUFFER6";
1133                 case GL_DRAW_BUFFER7:                                                                           return "GL_DRAW_BUFFER7";
1134                 case GL_DRAW_BUFFER8:                                                                           return "GL_DRAW_BUFFER8";
1135                 case GL_DRAW_BUFFER9:                                                                           return "GL_DRAW_BUFFER9";
1136                 case GL_DRAW_BUFFER10:                                                                          return "GL_DRAW_BUFFER10";
1137                 case GL_DRAW_BUFFER11:                                                                          return "GL_DRAW_BUFFER11";
1138                 case GL_DRAW_BUFFER12:                                                                          return "GL_DRAW_BUFFER12";
1139                 case GL_DRAW_BUFFER13:                                                                          return "GL_DRAW_BUFFER13";
1140                 case GL_DRAW_BUFFER14:                                                                          return "GL_DRAW_BUFFER14";
1141                 case GL_DRAW_BUFFER15:                                                                          return "GL_DRAW_BUFFER15";
1142                 case GL_READ_BUFFER:                                                                            return "GL_READ_BUFFER";
1143                 case GL_UNPACK_IMAGE_HEIGHT:                                                            return "GL_UNPACK_IMAGE_HEIGHT";
1144                 case GL_UNPACK_SKIP_IMAGES:                                                                     return "GL_UNPACK_SKIP_IMAGES";
1145                 case GL_UNPACK_ROW_LENGTH:                                                                      return "GL_UNPACK_ROW_LENGTH";
1146                 case GL_UNPACK_SKIP_ROWS:                                                                       return "GL_UNPACK_SKIP_ROWS";
1147                 case GL_UNPACK_SKIP_PIXELS:                                                                     return "GL_UNPACK_SKIP_PIXELS";
1148                 case GL_UNPACK_ALIGNMENT:                                                                       return "GL_UNPACK_ALIGNMENT";
1149                 case GL_PACK_ROW_LENGTH:                                                                        return "GL_PACK_ROW_LENGTH";
1150                 case GL_PACK_SKIP_ROWS:                                                                         return "GL_PACK_SKIP_ROWS";
1151                 case GL_PACK_SKIP_PIXELS:                                                                       return "GL_PACK_SKIP_PIXELS";
1152                 case GL_PACK_ALIGNMENT:                                                                         return "GL_PACK_ALIGNMENT";
1153                 case GL_PIXEL_PACK_BUFFER_BINDING:                                                      return "GL_PIXEL_PACK_BUFFER_BINDING";
1154                 case GL_PIXEL_UNPACK_BUFFER_BINDING:                                            return "GL_PIXEL_UNPACK_BUFFER_BINDING";
1155                 case GL_CURRENT_PROGRAM:                                                                        return "GL_CURRENT_PROGRAM";
1156                 case GL_TRANSFORM_FEEDBACK_BUFFER_BINDING:                                      return "GL_TRANSFORM_FEEDBACK_BUFFER_BINDING";
1157                 case GL_TRANSFORM_FEEDBACK_PAUSED:                                                      return "GL_TRANSFORM_FEEDBACK_PAUSED";
1158                 case GL_TRANSFORM_FEEDBACK_ACTIVE:                                                      return "GL_TRANSFORM_FEEDBACK_ACTIVE";
1159                 case GL_UNIFORM_BUFFER_BINDING:                                                         return "GL_UNIFORM_BUFFER_BINDING";
1160                 case GL_GENERATE_MIPMAP_HINT:                                                           return "GL_GENERATE_MIPMAP_HINT";
1161                 case GL_FRAGMENT_SHADER_DERIVATIVE_HINT:                                        return "GL_FRAGMENT_SHADER_DERIVATIVE_HINT";
1162                 case GL_MAX_ELEMENT_INDEX:                                                                      return "GL_MAX_ELEMENT_INDEX";
1163                 case GL_SUBPIXEL_BITS:                                                                          return "GL_SUBPIXEL_BITS";
1164                 case GL_MAX_3D_TEXTURE_SIZE:                                                            return "GL_MAX_3D_TEXTURE_SIZE";
1165                 case GL_MAX_TEXTURE_SIZE:                                                                       return "GL_MAX_TEXTURE_SIZE";
1166                 case GL_MAX_ARRAY_TEXTURE_LAYERS:                                                       return "GL_MAX_ARRAY_TEXTURE_LAYERS";
1167                 case GL_MAX_TEXTURE_LOD_BIAS:                                                           return "GL_MAX_TEXTURE_LOD_BIAS";
1168                 case GL_MAX_CUBE_MAP_TEXTURE_SIZE:                                                      return "GL_MAX_CUBE_MAP_TEXTURE_SIZE";
1169                 case GL_MAX_RENDERBUFFER_SIZE:                                                          return "GL_MAX_RENDERBUFFER_SIZE";
1170                 case GL_MAX_DRAW_BUFFERS:                                                                       return "GL_MAX_DRAW_BUFFERS";
1171                 case GL_MAX_COLOR_ATTACHMENTS:                                                          return "GL_MAX_COLOR_ATTACHMENTS";
1172                 case GL_MAX_VIEWPORT_DIMS:                                                                      return "GL_MAX_VIEWPORT_DIMS";
1173                 case GL_ALIASED_POINT_SIZE_RANGE:                                                       return "GL_ALIASED_POINT_SIZE_RANGE";
1174                 case GL_ALIASED_LINE_WIDTH_RANGE:                                                       return "GL_ALIASED_LINE_WIDTH_RANGE";
1175                 case GL_MAX_ELEMENTS_INDICES:                                                           return "GL_MAX_ELEMENTS_INDICES";
1176                 case GL_MAX_ELEMENTS_VERTICES:                                                          return "GL_MAX_ELEMENTS_VERTICES";
1177                 case GL_COMPRESSED_TEXTURE_FORMATS:                                                     return "GL_COMPRESSED_TEXTURE_FORMATS";
1178                 case GL_NUM_COMPRESSED_TEXTURE_FORMATS:                                         return "GL_NUM_COMPRESSED_TEXTURE_FORMATS";
1179                 case GL_PROGRAM_BINARY_FORMATS:                                                         return "GL_PROGRAM_BINARY_FORMATS";
1180                 case GL_NUM_PROGRAM_BINARY_FORMATS:                                                     return "GL_NUM_PROGRAM_BINARY_FORMATS";
1181                 case GL_SHADER_BINARY_FORMATS:                                                          return "GL_SHADER_BINARY_FORMATS";
1182                 case GL_NUM_SHADER_BINARY_FORMATS:                                                      return "GL_NUM_SHADER_BINARY_FORMATS";
1183                 case GL_SHADER_COMPILER:                                                                        return "GL_SHADER_COMPILER";
1184                 case GL_MAX_SERVER_WAIT_TIMEOUT:                                                        return "GL_MAX_SERVER_WAIT_TIMEOUT";
1185                 case GL_NUM_EXTENSIONS:                                                                         return "GL_NUM_EXTENSIONS";
1186                 case GL_MAJOR_VERSION:                                                                          return "GL_MAJOR_VERSION";
1187                 case GL_MINOR_VERSION:                                                                          return "GL_MINOR_VERSION";
1188                 case GL_MAX_VERTEX_ATTRIBS:                                                                     return "GL_MAX_VERTEX_ATTRIBS";
1189                 case GL_MAX_VERTEX_UNIFORM_COMPONENTS:                                          return "GL_MAX_VERTEX_UNIFORM_COMPONENTS";
1190                 case GL_MAX_VERTEX_UNIFORM_VECTORS:                                                     return "GL_MAX_VERTEX_UNIFORM_VECTORS";
1191                 case GL_MAX_VERTEX_UNIFORM_BLOCKS:                                                      return "GL_MAX_VERTEX_UNIFORM_BLOCKS";
1192                 case GL_MAX_VERTEX_OUTPUT_COMPONENTS:                                           return "GL_MAX_VERTEX_OUTPUT_COMPONENTS";
1193                 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS:                                         return "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS";
1194                 case GL_MAX_FRAGMENT_UNIFORM_COMPONENTS:                                        return "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS";
1195                 case GL_MAX_FRAGMENT_UNIFORM_VECTORS:                                           return "GL_MAX_FRAGMENT_UNIFORM_VECTORS";
1196                 case GL_MAX_FRAGMENT_UNIFORM_BLOCKS:                                            return "GL_MAX_FRAGMENT_UNIFORM_BLOCKS";
1197                 case GL_MAX_FRAGMENT_INPUT_COMPONENTS:                                          return "GL_MAX_FRAGMENT_INPUT_COMPONENTS";
1198                 case GL_MAX_TEXTURE_IMAGE_UNITS:                                                        return "GL_MAX_TEXTURE_IMAGE_UNITS";
1199                 case GL_MIN_PROGRAM_TEXEL_OFFSET:                                                       return "GL_MIN_PROGRAM_TEXEL_OFFSET";
1200                 case GL_MAX_PROGRAM_TEXEL_OFFSET:                                                       return "GL_MAX_PROGRAM_TEXEL_OFFSET";
1201                 case GL_MAX_UNIFORM_BUFFER_BINDINGS:                                            return "GL_MAX_UNIFORM_BUFFER_BINDINGS";
1202                 case GL_MAX_UNIFORM_BLOCK_SIZE:                                                         return "GL_MAX_UNIFORM_BLOCK_SIZE";
1203                 case GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT:                                        return "GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT";
1204                 case GL_MAX_COMBINED_UNIFORM_BLOCKS:                                            return "GL_MAX_COMBINED_UNIFORM_BLOCKS";
1205                 case GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:                         return "GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS";
1206                 case GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:                       return "GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS";
1207                 case GL_MAX_VARYING_COMPONENTS:                                                         return "GL_MAX_VARYING_COMPONENTS";
1208                 case GL_MAX_VARYING_VECTORS:                                                            return "GL_MAX_VARYING_VECTORS";
1209                 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:                                       return "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS";
1210                 case GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:          return "GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS";
1211                 case GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:                        return "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS";
1212                 case GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:                     return "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS";
1213                 case GL_SAMPLE_BUFFERS:                                                                         return "GL_SAMPLE_BUFFERS";
1214                 case GL_SAMPLES:                                                                                        return "GL_SAMPLES";
1215                 case GL_MAX_SAMPLES:                                                                            return "GL_MAX_SAMPLES";
1216                 case GL_DEPTH_BITS:                                                                                     return "GL_DEPTH_BITS";
1217                 case GL_STENCIL_BITS:                                                                           return "GL_STENCIL_BITS";
1218                 case GL_IMPLEMENTATION_COLOR_READ_TYPE:                                         return "GL_IMPLEMENTATION_COLOR_READ_TYPE";
1219                 case GL_IMPLEMENTATION_COLOR_READ_FORMAT:                                       return "GL_IMPLEMENTATION_COLOR_READ_FORMAT";
1220                 case GL_COPY_READ_BUFFER_BINDING:                                                       return "GL_COPY_READ_BUFFER_BINDING";
1221                 case GL_COPY_WRITE_BUFFER_BINDING:                                                      return "GL_COPY_WRITE_BUFFER_BINDING";
1222                 case GL_RED_BITS:                                                                                       return "GL_RED_BITS";
1223                 case GL_GREEN_BITS:                                                                                     return "GL_GREEN_BITS";
1224                 case GL_BLUE_BITS:                                                                                      return "GL_BLUE_BITS";
1225                 case GL_ALPHA_BITS:                                                                                     return "GL_ALPHA_BITS";
1226                 case GL_MAX_COLOR_TEXTURE_SAMPLES:                                                      return "GL_MAX_COLOR_TEXTURE_SAMPLES";
1227                 case GL_TIMESTAMP:                                                                                      return "GL_TIMESTAMP";
1228                 case GL_MAX_DEPTH_TEXTURE_SAMPLES:                                                      return "GL_MAX_DEPTH_TEXTURE_SAMPLES";
1229                 case GL_MAX_INTEGER_SAMPLES:                                                            return "GL_MAX_INTEGER_SAMPLES";
1230                 case GL_TEXTURE_BINDING_2D_MULTISAMPLE:                                         return "GL_TEXTURE_BINDING_2D_MULTISAMPLE";
1231                 case GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY:                           return "GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY";
1232                 case GL_MAX_VERTEX_ATTRIB_STRIDE:                                                       return "GL_MAX_VERTEX_ATTRIB_STRIDE";
1233                 case GL_MAX_VERTEX_ATTRIB_BINDINGS:                                                     return "GL_MAX_VERTEX_ATTRIB_BINDINGS";
1234                 case GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET:                                      return "GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET";
1235                 case GL_MIN_SAMPLE_SHADING_VALUE:                                                       return "GL_MIN_SAMPLE_SHADING_VALUE";
1236                 case GL_FRAGMENT_INTERPOLATION_OFFSET_BITS:                                     return "GL_FRAGMENT_INTERPOLATION_OFFSET_BITS";
1237                 case GL_MAX_FRAGMENT_INTERPOLATION_OFFSET:                                      return "GL_MAX_FRAGMENT_INTERPOLATION_OFFSET";
1238                 case GL_MIN_FRAGMENT_INTERPOLATION_OFFSET:                                      return "GL_MIN_FRAGMENT_INTERPOLATION_OFFSET";
1239                 case GL_MAX_GEOMETRY_SHADER_INVOCATIONS:                                        return "GL_MAX_GEOMETRY_SHADER_INVOCATIONS";
1240                 case GL_LAYER_PROVOKING_VERTEX:                                                         return "GL_LAYER_PROVOKING_VERTEX";
1241                 case GL_MAX_GEOMETRY_UNIFORM_COMPONENTS:                                        return "GL_MAX_GEOMETRY_UNIFORM_COMPONENTS";
1242                 case GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS:                                     return "GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS";
1243                 case GL_MAX_GEOMETRY_UNIFORM_BLOCKS:                                            return "GL_MAX_GEOMETRY_UNIFORM_BLOCKS";
1244                 case GL_MAX_GEOMETRY_INPUT_COMPONENTS:                                          return "GL_MAX_GEOMETRY_INPUT_COMPONENTS";
1245                 case GL_MAX_GEOMETRY_OUTPUT_COMPONENTS:                                         return "GL_MAX_GEOMETRY_OUTPUT_COMPONENTS";
1246                 case GL_MAX_GEOMETRY_IMAGE_UNIFORMS:                                            return "GL_MAX_GEOMETRY_IMAGE_UNIFORMS";
1247                 case GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS:                                       return "GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS";
1248                 case GL_MAX_GEOMETRY_OUTPUT_VERTICES:                                           return "GL_MAX_GEOMETRY_OUTPUT_VERTICES";
1249                 case GL_MAX_GEOMETRY_ATOMIC_COUNTERS:                                           return "GL_MAX_GEOMETRY_ATOMIC_COUNTERS";
1250                 case GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS:                            return "GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS";
1251                 case GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS:                           return "GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS";
1252                 case GL_MAX_FRAMEBUFFER_LAYERS:                                                         return "GL_MAX_FRAMEBUFFER_LAYERS";
1253                 case GL_PROVOKING_VERTEX:                                                                       return "GL_PROVOKING_VERTEX";
1254                 case GL_PRIMITIVE_RESTART_INDEX:                                                        return "GL_PRIMITIVE_RESTART_INDEX";
1255                 case GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS:                            return "GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS";
1256                 case GL_MAX_FRAGMENT_ATOMIC_COUNTERS:                                           return "GL_MAX_FRAGMENT_ATOMIC_COUNTERS";
1257                 case GL_MAX_FRAGMENT_IMAGE_UNIFORMS:                                            return "GL_MAX_FRAGMENT_IMAGE_UNIFORMS";
1258                 case GL_MAX_COMPUTE_UNIFORM_BLOCKS:                                                     return "GL_MAX_COMPUTE_UNIFORM_BLOCKS";
1259                 case GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS:                                        return "GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS";
1260                 case GL_MAX_COMPUTE_UNIFORM_COMPONENTS:                                         return "GL_MAX_COMPUTE_UNIFORM_COMPONENTS";
1261                 case GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS:                                     return "GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS";
1262                 case GL_MAX_COMPUTE_ATOMIC_COUNTERS:                                            return "GL_MAX_COMPUTE_ATOMIC_COUNTERS";
1263                 case GL_MAX_COMPUTE_IMAGE_UNIFORMS:                                                     return "GL_MAX_COMPUTE_IMAGE_UNIFORMS";
1264                 case GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS:                                      return "GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS";
1265                 case GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS:                                     return "GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS";
1266                 case GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS:                        return "GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS";
1267                 case GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS:                                      return "GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS";
1268                 case GL_MAX_VERTEX_ATOMIC_COUNTERS:                                                     return "GL_MAX_VERTEX_ATOMIC_COUNTERS";
1269                 case GL_MAX_VERTEX_IMAGE_UNIFORMS:                                                      return "GL_MAX_VERTEX_IMAGE_UNIFORMS";
1270                 case GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS:                                       return "GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS";
1271                 case GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES:                           return "GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES";
1272                 case GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS:                                     return "GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS";
1273                 case GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE:                                         return "GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE";
1274                 case GL_MAX_IMAGE_UNITS:                                                                        return "GL_MAX_IMAGE_UNITS";
1275                 case GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS:                            return "GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS";
1276                 case GL_MAX_COMBINED_IMAGE_UNIFORMS:                                            return "GL_MAX_COMBINED_IMAGE_UNIFORMS";
1277                 case GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS:                                     return "GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS";
1278                 case GL_MAX_SHADER_STORAGE_BLOCK_SIZE:                                          return "GL_MAX_SHADER_STORAGE_BLOCK_SIZE";
1279                 case GL_MAX_COMBINED_ATOMIC_COUNTERS:                                           return "GL_MAX_COMBINED_ATOMIC_COUNTERS";
1280                 case GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS:                                     return "GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS";
1281                 case GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT:                         return "GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT";
1282                 case GL_PRIMITIVE_BOUNDING_BOX_EXT:                                                     return "GL_PRIMITIVE_BOUNDING_BOX_EXT";
1283                 case GL_DRAW_INDIRECT_BUFFER_BINDING:                                           return "GL_DRAW_INDIRECT_BUFFER_BINDING";
1284                 case GL_MAX_SAMPLE_MASK_WORDS:                                                          return "GL_MAX_SAMPLE_MASK_WORDS";
1285                 case GL_PROGRAM_PIPELINE_BINDING:                                                       return "GL_PROGRAM_PIPELINE_BINDING";
1286                 case GL_ATOMIC_COUNTER_BUFFER_BINDING:                                          return "GL_ATOMIC_COUNTER_BUFFER_BINDING";
1287                 case GL_SHADER_STORAGE_BUFFER_BINDING:                                          return "GL_SHADER_STORAGE_BUFFER_BINDING";
1288                 case GL_DISPATCH_INDIRECT_BUFFER_BINDING:                                       return "GL_DISPATCH_INDIRECT_BUFFER_BINDING";
1289                 case GL_MAX_FRAMEBUFFER_WIDTH:                                                          return "GL_MAX_FRAMEBUFFER_WIDTH";
1290                 case GL_MAX_FRAMEBUFFER_HEIGHT:                                                         return "GL_MAX_FRAMEBUFFER_HEIGHT";
1291                 case GL_MAX_FRAMEBUFFER_SAMPLES:                                                        return "GL_MAX_FRAMEBUFFER_SAMPLES";
1292                 case GL_MAX_COMPUTE_SHARED_MEMORY_SIZE:                                         return "GL_MAX_COMPUTE_SHARED_MEMORY_SIZE";
1293                 case GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET:                                      return "GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET";
1294                 case GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET:                                      return "GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET";
1295                 case GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS:                                     return "GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS";
1296                 case GL_MAX_UNIFORM_LOCATIONS:                                                          return "GL_MAX_UNIFORM_LOCATIONS";
1297                 case GL_MAX_DEBUG_MESSAGE_LENGTH:                                                       return "GL_MAX_DEBUG_MESSAGE_LENGTH";
1298                 case GL_MAX_DEBUG_LOGGED_MESSAGES:                                                      return "GL_MAX_DEBUG_LOGGED_MESSAGES";
1299                 case GL_MAX_DEBUG_GROUP_STACK_DEPTH:                                            return "GL_MAX_DEBUG_GROUP_STACK_DEPTH";
1300                 case GL_MAX_LABEL_LENGTH:                                                                       return "GL_MAX_LABEL_LENGTH";
1301                 case GL_CONTEXT_FLAGS:                                                                          return "GL_CONTEXT_FLAGS";
1302                 case GL_DEBUG_LOGGED_MESSAGES:                                                          return "GL_DEBUG_LOGGED_MESSAGES";
1303                 case GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH:                                       return "GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH";
1304                 case GL_DEBUG_GROUP_STACK_DEPTH:                                                        return "GL_DEBUG_GROUP_STACK_DEPTH";
1305                 case GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS:                       return "GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS";
1306                 case GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT:                                        return "GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT";
1307                 case GL_TEXTURE_BUFFER_BINDING:                                                         return "GL_TEXTURE_BUFFER_BINDING";
1308                 case GL_TEXTURE_BINDING_BUFFER:                                                         return "GL_TEXTURE_BINDING_BUFFER";
1309                 case GL_MAX_TEXTURE_BUFFER_SIZE:                                                        return "GL_MAX_TEXTURE_BUFFER_SIZE";
1310                 case GL_MAX_PATCH_VERTICES:                                                                     return "GL_MAX_PATCH_VERTICES";
1311                 case GL_MAX_TESS_GEN_LEVEL:                                                                     return "GL_MAX_TESS_GEN_LEVEL";
1312                 case GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS:                            return "GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS";
1313                 case GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS:                         return "GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS";
1314                 case GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS:                           return "GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS";
1315                 case GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS:                        return "GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS";
1316                 case GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS:                                     return "GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS";
1317                 case GL_MAX_TESS_PATCH_COMPONENTS:                                                      return "GL_MAX_TESS_PATCH_COMPONENTS";
1318                 case GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS:                       return "GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS";
1319                 case GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS:                          return "GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS";
1320                 case GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS:                                        return "GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS";
1321                 case GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS:                                     return "GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS";
1322                 case GL_MAX_TESS_CONTROL_INPUT_COMPONENTS:                                      return "GL_MAX_TESS_CONTROL_INPUT_COMPONENTS";
1323                 case GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS:                           return "GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS";
1324                 case GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS:                        return "GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS";
1325                 case GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS:                     return "GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS";
1326                 case GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS:                                       return "GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS";
1327                 case GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS:                            return "GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS";
1328                 case GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS:                                        return "GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS";
1329                 case GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS:                                     return "GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS";
1330                 case GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS:        return "GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS";
1331                 case GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS:                      return "GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS";
1332                 case GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS:           return "GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS";
1333                 case GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS:                         return "GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS";
1334                 case GL_PATCH_VERTICES:                                                                         return "GL_PATCH_VERTICES";
1335                 case GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED:                        return "GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED";
1336                 case GL_TEXTURE_2D:                                                                                     return "GL_TEXTURE_2D";
1337                 case GL_CULL_FACE:                                                                                      return "GL_CULL_FACE";
1338                 case GL_BLEND:                                                                                          return "GL_BLEND";
1339                 case GL_DITHER:                                                                                         return "GL_DITHER";
1340                 case GL_STENCIL_TEST:                                                                           return "GL_STENCIL_TEST";
1341                 case GL_DEPTH_TEST:                                                                                     return "GL_DEPTH_TEST";
1342                 case GL_SCISSOR_TEST:                                                                           return "GL_SCISSOR_TEST";
1343                 case GL_POLYGON_OFFSET_FILL:                                                            return "GL_POLYGON_OFFSET_FILL";
1344                 case GL_SAMPLE_ALPHA_TO_COVERAGE:                                                       return "GL_SAMPLE_ALPHA_TO_COVERAGE";
1345                 case GL_SAMPLE_COVERAGE:                                                                        return "GL_SAMPLE_COVERAGE";
1346                 case GL_PRIMITIVE_RESTART_FIXED_INDEX:                                          return "GL_PRIMITIVE_RESTART_FIXED_INDEX";
1347                 case GL_RASTERIZER_DISCARD:                                                                     return "GL_RASTERIZER_DISCARD";
1348                 case GL_FRAMEBUFFER_SRGB:                                                                       return "GL_FRAMEBUFFER_SRGB";
1349                 case GL_SAMPLE_SHADING:                                                                         return "GL_SAMPLE_SHADING";
1350                 case GL_DEPTH_CLAMP:                                                                            return "GL_DEPTH_CLAMP";
1351                 case GL_PRIMITIVE_RESTART:                                                                      return "GL_PRIMITIVE_RESTART";
1352                 case GL_SAMPLE_MASK:                                                                            return "GL_SAMPLE_MASK";
1353                 case GL_DEBUG_OUTPUT:                                                                           return "GL_DEBUG_OUTPUT";
1354                 case GL_DEBUG_OUTPUT_SYNCHRONOUS:                                                       return "GL_DEBUG_OUTPUT_SYNCHRONOUS";
1355                 case GL_BLEND_ADVANCED_COHERENT_KHR:                                            return "GL_BLEND_ADVANCED_COHERENT_KHR";
1356                 default:                                                                                                        return DE_NULL;
1357         }
1358 }
1359
1360 const char* getGettableIndexedStateName (int value)
1361 {
1362         switch (value)
1363         {
1364                 case GL_TRANSFORM_FEEDBACK_BUFFER_BINDING:      return "GL_TRANSFORM_FEEDBACK_BUFFER_BINDING";
1365                 case GL_UNIFORM_BUFFER_BINDING:                         return "GL_UNIFORM_BUFFER_BINDING";
1366                 case GL_TRANSFORM_FEEDBACK_BUFFER_START:        return "GL_TRANSFORM_FEEDBACK_BUFFER_START";
1367                 case GL_TRANSFORM_FEEDBACK_BUFFER_SIZE:         return "GL_TRANSFORM_FEEDBACK_BUFFER_SIZE";
1368                 case GL_UNIFORM_BUFFER_START:                           return "GL_UNIFORM_BUFFER_START";
1369                 case GL_UNIFORM_BUFFER_SIZE:                            return "GL_UNIFORM_BUFFER_SIZE";
1370                 case GL_SAMPLE_MASK_VALUE:                                      return "GL_SAMPLE_MASK_VALUE";
1371                 case GL_VERTEX_BINDING_OFFSET:                          return "GL_VERTEX_BINDING_OFFSET";
1372                 case GL_VERTEX_BINDING_STRIDE:                          return "GL_VERTEX_BINDING_STRIDE";
1373                 case GL_VERTEX_BINDING_DIVISOR:                         return "GL_VERTEX_BINDING_DIVISOR";
1374                 case GL_VERTEX_BINDING_BUFFER:                          return "GL_VERTEX_BINDING_BUFFER";
1375                 case GL_MAX_COMPUTE_WORK_GROUP_COUNT:           return "GL_MAX_COMPUTE_WORK_GROUP_COUNT";
1376                 case GL_MAX_COMPUTE_WORK_GROUP_SIZE:            return "GL_MAX_COMPUTE_WORK_GROUP_SIZE";
1377                 case GL_ATOMIC_COUNTER_BUFFER_BINDING:          return "GL_ATOMIC_COUNTER_BUFFER_BINDING";
1378                 case GL_ATOMIC_COUNTER_BUFFER_START:            return "GL_ATOMIC_COUNTER_BUFFER_START";
1379                 case GL_ATOMIC_COUNTER_BUFFER_SIZE:                     return "GL_ATOMIC_COUNTER_BUFFER_SIZE";
1380                 case GL_SHADER_STORAGE_BUFFER_BINDING:          return "GL_SHADER_STORAGE_BUFFER_BINDING";
1381                 case GL_SHADER_STORAGE_BUFFER_START:            return "GL_SHADER_STORAGE_BUFFER_START";
1382                 case GL_SHADER_STORAGE_BUFFER_SIZE:                     return "GL_SHADER_STORAGE_BUFFER_SIZE";
1383                 case GL_IMAGE_BINDING_NAME:                                     return "GL_IMAGE_BINDING_NAME";
1384                 case GL_IMAGE_BINDING_LEVEL:                            return "GL_IMAGE_BINDING_LEVEL";
1385                 case GL_IMAGE_BINDING_LAYERED:                          return "GL_IMAGE_BINDING_LAYERED";
1386                 case GL_IMAGE_BINDING_LAYER:                            return "GL_IMAGE_BINDING_LAYER";
1387                 case GL_IMAGE_BINDING_ACCESS:                           return "GL_IMAGE_BINDING_ACCESS";
1388                 case GL_IMAGE_BINDING_FORMAT:                           return "GL_IMAGE_BINDING_FORMAT";
1389                 case GL_BLEND_EQUATION_RGB:                                     return "GL_BLEND_EQUATION_RGB";
1390                 case GL_BLEND_EQUATION_ALPHA:                           return "GL_BLEND_EQUATION_ALPHA";
1391                 case GL_BLEND_SRC_RGB:                                          return "GL_BLEND_SRC_RGB";
1392                 case GL_BLEND_SRC_ALPHA:                                        return "GL_BLEND_SRC_ALPHA";
1393                 case GL_BLEND_DST_RGB:                                          return "GL_BLEND_DST_RGB";
1394                 case GL_BLEND_DST_ALPHA:                                        return "GL_BLEND_DST_ALPHA";
1395                 case GL_COLOR_WRITEMASK:                                        return "GL_COLOR_WRITEMASK";
1396                 default:                                                                        return DE_NULL;
1397         }
1398 }
1399
1400 const char* getGettableStringName (int value)
1401 {
1402         switch (value)
1403         {
1404                 case GL_EXTENSIONS:                                     return "GL_EXTENSIONS";
1405                 case GL_RENDERER:                                       return "GL_RENDERER";
1406                 case GL_SHADING_LANGUAGE_VERSION:       return "GL_SHADING_LANGUAGE_VERSION";
1407                 case GL_VENDOR:                                         return "GL_VENDOR";
1408                 case GL_VERSION:                                        return "GL_VERSION";
1409                 default:                                                        return DE_NULL;
1410         }
1411 }
1412
1413 const char* getPointerStateName (int value)
1414 {
1415         switch (value)
1416         {
1417                 case GL_DEBUG_CALLBACK_FUNCTION:        return "GL_DEBUG_CALLBACK_FUNCTION";
1418                 case GL_DEBUG_CALLBACK_USER_PARAM:      return "GL_DEBUG_CALLBACK_USER_PARAM";
1419                 default:                                                        return DE_NULL;
1420         }
1421 }
1422
1423 const char* getInternalFormatParameterName (int value)
1424 {
1425         switch (value)
1426         {
1427                 case GL_NUM_SAMPLE_COUNTS:      return "GL_NUM_SAMPLE_COUNTS";
1428                 case GL_SAMPLES:                        return "GL_SAMPLES";
1429                 default:                                        return DE_NULL;
1430         }
1431 }
1432
1433 const char* getInternalFormatTargetName (int value)
1434 {
1435         switch (value)
1436         {
1437                 case GL_RENDERBUFFER:                                   return "GL_RENDERBUFFER";
1438                 case GL_TEXTURE_2D_MULTISAMPLE:                 return "GL_TEXTURE_2D_MULTISAMPLE";
1439                 case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:   return "GL_TEXTURE_2D_MULTISAMPLE_ARRAY";
1440                 case GL_TEXTURE_2D:                                             return "GL_TEXTURE_2D";
1441                 case GL_TEXTURE_3D:                                             return "GL_TEXTURE_3D";
1442                 case GL_TEXTURE_2D_ARRAY:                               return "GL_TEXTURE_2D_ARRAY";
1443                 case GL_TEXTURE_CUBE_MAP:                               return "GL_TEXTURE_CUBE_MAP";
1444                 default:                                                                return DE_NULL;
1445         }
1446 }
1447
1448 const char* getMultisampleParameterName (int value)
1449 {
1450         switch (value)
1451         {
1452                 case GL_SAMPLE_POSITION:        return "GL_SAMPLE_POSITION";
1453                 default:                                        return DE_NULL;
1454         }
1455 }
1456
1457 const char* getQueryTargetName (int value)
1458 {
1459         switch (value)
1460         {
1461                 case GL_SAMPLES_PASSED:                                                 return "GL_SAMPLES_PASSED";
1462                 case GL_ANY_SAMPLES_PASSED:                                             return "GL_ANY_SAMPLES_PASSED";
1463                 case GL_PRIMITIVES_GENERATED:                                   return "GL_PRIMITIVES_GENERATED";
1464                 case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:  return "GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN";
1465                 case GL_TIME_ELAPSED:                                                   return "GL_TIME_ELAPSED";
1466                 default:                                                                                return DE_NULL;
1467         }
1468 }
1469
1470 const char* getQueryParamName (int value)
1471 {
1472         switch (value)
1473         {
1474                 case GL_CURRENT_QUERY:          return "GL_CURRENT_QUERY";
1475                 case GL_QUERY_COUNTER_BITS:     return "GL_QUERY_COUNTER_BITS";
1476                 default:                                        return DE_NULL;
1477         }
1478 }
1479
1480 const char* getQueryObjectParamName (int value)
1481 {
1482         switch (value)
1483         {
1484                 case GL_QUERY_RESULT:                   return "GL_QUERY_RESULT";
1485                 case GL_QUERY_RESULT_AVAILABLE: return "GL_QUERY_RESULT_AVAILABLE";
1486                 default:                                                return DE_NULL;
1487         }
1488 }
1489
1490 const char* getImageAccessName (int value)
1491 {
1492         switch (value)
1493         {
1494                 case GL_READ_ONLY:      return "GL_READ_ONLY";
1495                 case GL_WRITE_ONLY:     return "GL_WRITE_ONLY";
1496                 case GL_READ_WRITE:     return "GL_READ_WRITE";
1497                 default:                        return DE_NULL;
1498         }
1499 }
1500
1501 const char* getProgramInterfaceName (int value)
1502 {
1503         switch (value)
1504         {
1505                 case GL_UNIFORM:                                        return "GL_UNIFORM";
1506                 case GL_UNIFORM_BLOCK:                          return "GL_UNIFORM_BLOCK";
1507                 case GL_ATOMIC_COUNTER_BUFFER:          return "GL_ATOMIC_COUNTER_BUFFER";
1508                 case GL_PROGRAM_INPUT:                          return "GL_PROGRAM_INPUT";
1509                 case GL_PROGRAM_OUTPUT:                         return "GL_PROGRAM_OUTPUT";
1510                 case GL_TRANSFORM_FEEDBACK_VARYING:     return "GL_TRANSFORM_FEEDBACK_VARYING";
1511                 case GL_BUFFER_VARIABLE:                        return "GL_BUFFER_VARIABLE";
1512                 case GL_SHADER_STORAGE_BLOCK:           return "GL_SHADER_STORAGE_BLOCK";
1513                 default:                                                        return DE_NULL;
1514         }
1515 }
1516
1517 const char* getProgramResourcePropertyName (int value)
1518 {
1519         switch (value)
1520         {
1521                 case GL_ACTIVE_VARIABLES:                                               return "GL_ACTIVE_VARIABLES";
1522                 case GL_BUFFER_BINDING:                                                 return "GL_BUFFER_BINDING";
1523                 case GL_NUM_ACTIVE_VARIABLES:                                   return "GL_NUM_ACTIVE_VARIABLES";
1524                 case GL_ARRAY_SIZE:                                                             return "GL_ARRAY_SIZE";
1525                 case GL_ARRAY_STRIDE:                                                   return "GL_ARRAY_STRIDE";
1526                 case GL_BLOCK_INDEX:                                                    return "GL_BLOCK_INDEX";
1527                 case GL_IS_ROW_MAJOR:                                                   return "GL_IS_ROW_MAJOR";
1528                 case GL_MATRIX_STRIDE:                                                  return "GL_MATRIX_STRIDE";
1529                 case GL_ATOMIC_COUNTER_BUFFER_INDEX:                    return "GL_ATOMIC_COUNTER_BUFFER_INDEX";
1530                 case GL_BUFFER_DATA_SIZE:                                               return "GL_BUFFER_DATA_SIZE";
1531                 case GL_LOCATION:                                                               return "GL_LOCATION";
1532                 case GL_NAME_LENGTH:                                                    return "GL_NAME_LENGTH";
1533                 case GL_OFFSET:                                                                 return "GL_OFFSET";
1534                 case GL_REFERENCED_BY_VERTEX_SHADER:                    return "GL_REFERENCED_BY_VERTEX_SHADER";
1535                 case GL_REFERENCED_BY_FRAGMENT_SHADER:                  return "GL_REFERENCED_BY_FRAGMENT_SHADER";
1536                 case GL_REFERENCED_BY_COMPUTE_SHADER:                   return "GL_REFERENCED_BY_COMPUTE_SHADER";
1537                 case GL_REFERENCED_BY_GEOMETRY_SHADER:                  return "GL_REFERENCED_BY_GEOMETRY_SHADER";
1538                 case GL_REFERENCED_BY_TESS_CONTROL_SHADER:              return "GL_REFERENCED_BY_TESS_CONTROL_SHADER";
1539                 case GL_REFERENCED_BY_TESS_EVALUATION_SHADER:   return "GL_REFERENCED_BY_TESS_EVALUATION_SHADER";
1540                 case GL_TOP_LEVEL_ARRAY_SIZE:                                   return "GL_TOP_LEVEL_ARRAY_SIZE";
1541                 case GL_TOP_LEVEL_ARRAY_STRIDE:                                 return "GL_TOP_LEVEL_ARRAY_STRIDE";
1542                 case GL_TYPE:                                                                   return "GL_TYPE";
1543                 case GL_IS_PER_PATCH:                                                   return "GL_IS_PER_PATCH";
1544                 default:                                                                                return DE_NULL;
1545         }
1546 }
1547
1548 const char* getPrecisionFormatTypeName (int value)
1549 {
1550         switch (value)
1551         {
1552                 case GL_LOW_FLOAT:              return "GL_LOW_FLOAT";
1553                 case GL_MEDIUM_FLOAT:   return "GL_MEDIUM_FLOAT";
1554                 case GL_HIGH_FLOAT:             return "GL_HIGH_FLOAT";
1555                 case GL_LOW_INT:                return "GL_LOW_INT";
1556                 case GL_MEDIUM_INT:             return "GL_MEDIUM_INT";
1557                 case GL_HIGH_INT:               return "GL_HIGH_INT";
1558                 default:                                return DE_NULL;
1559         }
1560 }
1561
1562 const char* getTransformFeedbackTargetName (int value)
1563 {
1564         switch (value)
1565         {
1566                 case GL_TRANSFORM_FEEDBACK:     return "GL_TRANSFORM_FEEDBACK";
1567                 default:                                        return DE_NULL;
1568         }
1569 }
1570
1571 const char* getProvokingVertexName (int value)
1572 {
1573         switch (value)
1574         {
1575                 case GL_FIRST_VERTEX_CONVENTION:        return "GL_FIRST_VERTEX_CONVENTION";
1576                 case GL_LAST_VERTEX_CONVENTION:         return "GL_LAST_VERTEX_CONVENTION";
1577                 case GL_UNDEFINED_VERTEX:                       return "GL_UNDEFINED_VERTEX";
1578                 default:                                                        return DE_NULL;
1579         }
1580 }
1581
1582 const char* getDebugMessageSourceName (int value)
1583 {
1584         switch (value)
1585         {
1586                 case GL_DEBUG_SOURCE_API:                               return "GL_DEBUG_SOURCE_API";
1587                 case GL_DEBUG_SOURCE_WINDOW_SYSTEM:             return "GL_DEBUG_SOURCE_WINDOW_SYSTEM";
1588                 case GL_DEBUG_SOURCE_SHADER_COMPILER:   return "GL_DEBUG_SOURCE_SHADER_COMPILER";
1589                 case GL_DEBUG_SOURCE_THIRD_PARTY:               return "GL_DEBUG_SOURCE_THIRD_PARTY";
1590                 case GL_DEBUG_SOURCE_APPLICATION:               return "GL_DEBUG_SOURCE_APPLICATION";
1591                 case GL_DEBUG_SOURCE_OTHER:                             return "GL_DEBUG_SOURCE_OTHER";
1592                 case GL_DONT_CARE:                                              return "GL_DONT_CARE";
1593                 default:                                                                return DE_NULL;
1594         }
1595 }
1596
1597 const char* getDebugMessageTypeName (int value)
1598 {
1599         switch (value)
1600         {
1601                 case GL_DEBUG_TYPE_ERROR:                               return "GL_DEBUG_TYPE_ERROR";
1602                 case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: return "GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR";
1603                 case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR:  return "GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR";
1604                 case GL_DEBUG_TYPE_PORTABILITY:                 return "GL_DEBUG_TYPE_PORTABILITY";
1605                 case GL_DEBUG_TYPE_PERFORMANCE:                 return "GL_DEBUG_TYPE_PERFORMANCE";
1606                 case GL_DEBUG_TYPE_OTHER:                               return "GL_DEBUG_TYPE_OTHER";
1607                 case GL_DEBUG_TYPE_MARKER:                              return "GL_DEBUG_TYPE_MARKER";
1608                 case GL_DEBUG_TYPE_PUSH_GROUP:                  return "GL_DEBUG_TYPE_PUSH_GROUP";
1609                 case GL_DEBUG_TYPE_POP_GROUP:                   return "GL_DEBUG_TYPE_POP_GROUP";
1610                 case GL_DONT_CARE:                                              return "GL_DONT_CARE";
1611                 default:                                                                return DE_NULL;
1612         }
1613 }
1614
1615 const char* getDebugMessageSeverityName (int value)
1616 {
1617         switch (value)
1618         {
1619                 case GL_DEBUG_SEVERITY_HIGH:                    return "GL_DEBUG_SEVERITY_HIGH";
1620                 case GL_DEBUG_SEVERITY_MEDIUM:                  return "GL_DEBUG_SEVERITY_MEDIUM";
1621                 case GL_DEBUG_SEVERITY_LOW:                             return "GL_DEBUG_SEVERITY_LOW";
1622                 case GL_DEBUG_SEVERITY_NOTIFICATION:    return "GL_DEBUG_SEVERITY_NOTIFICATION";
1623                 case GL_DONT_CARE:                                              return "GL_DONT_CARE";
1624                 default:                                                                return DE_NULL;
1625         }
1626 }
1627
1628 const char* getPipelineParamName (int value)
1629 {
1630         switch (value)
1631         {
1632                 case GL_ACTIVE_PROGRAM:                 return "GL_ACTIVE_PROGRAM";
1633                 case GL_INFO_LOG_LENGTH:                return "GL_INFO_LOG_LENGTH";
1634                 case GL_VALIDATE_STATUS:                return "GL_VALIDATE_STATUS";
1635                 case GL_VERTEX_SHADER:                  return "GL_VERTEX_SHADER";
1636                 case GL_FRAGMENT_SHADER:                return "GL_FRAGMENT_SHADER";
1637                 case GL_COMPUTE_SHADER:                 return "GL_COMPUTE_SHADER";
1638                 case GL_GEOMETRY_SHADER:                return "GL_GEOMETRY_SHADER";
1639                 case GL_TESS_CONTROL_SHADER:    return "GL_TESS_CONTROL_SHADER";
1640                 case GL_TESS_EVALUATION_SHADER: return "GL_TESS_EVALUATION_SHADER";
1641                 default:                                                return DE_NULL;
1642         }
1643 }
1644
1645 const char* getPatchParamName (int value)
1646 {
1647         switch (value)
1648         {
1649                 case GL_PATCH_VERTICES: return "GL_PATCH_VERTICES";
1650                 default:                                return DE_NULL;
1651         }
1652 }
1653
1654 const char* getTextureFormatName (int value)
1655 {
1656         switch (value)
1657         {
1658                 case GL_LUMINANCE:                                                                      return "GL_LUMINANCE";
1659                 case GL_LUMINANCE_ALPHA:                                                        return "GL_LUMINANCE_ALPHA";
1660                 case GL_ALPHA:                                                                          return "GL_ALPHA";
1661                 case GL_RGB:                                                                            return "GL_RGB";
1662                 case GL_RGBA:                                                                           return "GL_RGBA";
1663                 case GL_RGBA4:                                                                          return "GL_RGBA4";
1664                 case GL_RGB5_A1:                                                                        return "GL_RGB5_A1";
1665                 case GL_RGB565:                                                                         return "GL_RGB565";
1666                 case GL_DEPTH_COMPONENT16:                                                      return "GL_DEPTH_COMPONENT16";
1667                 case GL_STENCIL_INDEX8:                                                         return "GL_STENCIL_INDEX8";
1668                 case GL_RG:                                                                                     return "GL_RG";
1669                 case GL_RED:                                                                            return "GL_RED";
1670                 case GL_RGBA_INTEGER:                                                           return "GL_RGBA_INTEGER";
1671                 case GL_RGB_INTEGER:                                                            return "GL_RGB_INTEGER";
1672                 case GL_RG_INTEGER:                                                                     return "GL_RG_INTEGER";
1673                 case GL_RED_INTEGER:                                                            return "GL_RED_INTEGER";
1674                 case GL_DEPTH_COMPONENT:                                                        return "GL_DEPTH_COMPONENT";
1675                 case GL_DEPTH_STENCIL:                                                          return "GL_DEPTH_STENCIL";
1676                 case GL_RGBA32F:                                                                        return "GL_RGBA32F";
1677                 case GL_RGBA32I:                                                                        return "GL_RGBA32I";
1678                 case GL_RGBA32UI:                                                                       return "GL_RGBA32UI";
1679                 case GL_RGBA16:                                                                         return "GL_RGBA16";
1680                 case GL_RGBA16_SNORM:                                                           return "GL_RGBA16_SNORM";
1681                 case GL_RGBA16F:                                                                        return "GL_RGBA16F";
1682                 case GL_RGBA16I:                                                                        return "GL_RGBA16I";
1683                 case GL_RGBA16UI:                                                                       return "GL_RGBA16UI";
1684                 case GL_RGBA8:                                                                          return "GL_RGBA8";
1685                 case GL_RGBA8I:                                                                         return "GL_RGBA8I";
1686                 case GL_RGBA8UI:                                                                        return "GL_RGBA8UI";
1687                 case GL_SRGB8_ALPHA8:                                                           return "GL_SRGB8_ALPHA8";
1688                 case GL_RGB10_A2:                                                                       return "GL_RGB10_A2";
1689                 case GL_RGB10_A2UI:                                                                     return "GL_RGB10_A2UI";
1690                 case GL_RGBA8_SNORM:                                                            return "GL_RGBA8_SNORM";
1691                 case GL_RGB8:                                                                           return "GL_RGB8";
1692                 case GL_R11F_G11F_B10F:                                                         return "GL_R11F_G11F_B10F";
1693                 case GL_RGB32F:                                                                         return "GL_RGB32F";
1694                 case GL_RGB32I:                                                                         return "GL_RGB32I";
1695                 case GL_RGB32UI:                                                                        return "GL_RGB32UI";
1696                 case GL_RGB16:                                                                          return "GL_RGB16";
1697                 case GL_RGB16_SNORM:                                                            return "GL_RGB16_SNORM";
1698                 case GL_RGB16F:                                                                         return "GL_RGB16F";
1699                 case GL_RGB16I:                                                                         return "GL_RGB16I";
1700                 case GL_RGB16UI:                                                                        return "GL_RGB16UI";
1701                 case GL_RGB8_SNORM:                                                                     return "GL_RGB8_SNORM";
1702                 case GL_RGB8I:                                                                          return "GL_RGB8I";
1703                 case GL_RGB8UI:                                                                         return "GL_RGB8UI";
1704                 case GL_SRGB8:                                                                          return "GL_SRGB8";
1705                 case GL_RGB9_E5:                                                                        return "GL_RGB9_E5";
1706                 case GL_RG32F:                                                                          return "GL_RG32F";
1707                 case GL_RG32I:                                                                          return "GL_RG32I";
1708                 case GL_RG32UI:                                                                         return "GL_RG32UI";
1709                 case GL_RG16:                                                                           return "GL_RG16";
1710                 case GL_RG16_SNORM:                                                                     return "GL_RG16_SNORM";
1711                 case GL_RG16F:                                                                          return "GL_RG16F";
1712                 case GL_RG16I:                                                                          return "GL_RG16I";
1713                 case GL_RG16UI:                                                                         return "GL_RG16UI";
1714                 case GL_RG8:                                                                            return "GL_RG8";
1715                 case GL_RG8I:                                                                           return "GL_RG8I";
1716                 case GL_RG8UI:                                                                          return "GL_RG8UI";
1717                 case GL_RG8_SNORM:                                                                      return "GL_RG8_SNORM";
1718                 case GL_R32F:                                                                           return "GL_R32F";
1719                 case GL_R32I:                                                                           return "GL_R32I";
1720                 case GL_R32UI:                                                                          return "GL_R32UI";
1721                 case GL_R16:                                                                            return "GL_R16";
1722                 case GL_R16_SNORM:                                                                      return "GL_R16_SNORM";
1723                 case GL_R16F:                                                                           return "GL_R16F";
1724                 case GL_R16I:                                                                           return "GL_R16I";
1725                 case GL_R16UI:                                                                          return "GL_R16UI";
1726                 case GL_R8:                                                                                     return "GL_R8";
1727                 case GL_R8I:                                                                            return "GL_R8I";
1728                 case GL_R8UI:                                                                           return "GL_R8UI";
1729                 case GL_R8_SNORM:                                                                       return "GL_R8_SNORM";
1730                 case GL_DEPTH_COMPONENT32F:                                                     return "GL_DEPTH_COMPONENT32F";
1731                 case GL_DEPTH_COMPONENT24:                                                      return "GL_DEPTH_COMPONENT24";
1732                 case GL_DEPTH32F_STENCIL8:                                                      return "GL_DEPTH32F_STENCIL8";
1733                 case GL_DEPTH24_STENCIL8:                                                       return "GL_DEPTH24_STENCIL8";
1734                 case GL_RGB10:                                                                          return "GL_RGB10";
1735                 case GL_DEPTH_COMPONENT32:                                                      return "GL_DEPTH_COMPONENT32";
1736                 case GL_SRGB:                                                                           return "GL_SRGB";
1737                 case GL_SRGB_ALPHA:                                                                     return "GL_SRGB_ALPHA";
1738                 case GL_SR8_EXT:                                                                        return "GL_SR8_EXT";
1739                 case GL_SRG8_EXT:                                                                       return "GL_SRG8_EXT";
1740                 case GL_BGRA:                                                                           return "GL_BGRA";
1741                 case GL_COMPRESSED_R11_EAC:                                                     return "GL_COMPRESSED_R11_EAC";
1742                 case GL_COMPRESSED_SIGNED_R11_EAC:                                      return "GL_COMPRESSED_SIGNED_R11_EAC";
1743                 case GL_COMPRESSED_RG11_EAC:                                            return "GL_COMPRESSED_RG11_EAC";
1744                 case GL_COMPRESSED_SIGNED_RG11_EAC:                                     return "GL_COMPRESSED_SIGNED_RG11_EAC";
1745                 case GL_COMPRESSED_RGB8_ETC2:                                           return "GL_COMPRESSED_RGB8_ETC2";
1746                 case GL_COMPRESSED_SRGB8_ETC2:                                          return "GL_COMPRESSED_SRGB8_ETC2";
1747                 case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:       return "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2";
1748                 case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:      return "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2";
1749                 case GL_COMPRESSED_RGBA8_ETC2_EAC:                                      return "GL_COMPRESSED_RGBA8_ETC2_EAC";
1750                 case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:                       return "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC";
1751                 case GL_COMPRESSED_RGBA_ASTC_4x4_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_4x4_KHR";
1752                 case GL_COMPRESSED_RGBA_ASTC_5x4_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_5x4_KHR";
1753                 case GL_COMPRESSED_RGBA_ASTC_5x5_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_5x5_KHR";
1754                 case GL_COMPRESSED_RGBA_ASTC_6x5_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_6x5_KHR";
1755                 case GL_COMPRESSED_RGBA_ASTC_6x6_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_6x6_KHR";
1756                 case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_8x5_KHR";
1757                 case GL_COMPRESSED_RGBA_ASTC_8x6_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_8x6_KHR";
1758                 case GL_COMPRESSED_RGBA_ASTC_8x8_KHR:                           return "GL_COMPRESSED_RGBA_ASTC_8x8_KHR";
1759                 case GL_COMPRESSED_RGBA_ASTC_10x5_KHR:                          return "GL_COMPRESSED_RGBA_ASTC_10x5_KHR";
1760                 case GL_COMPRESSED_RGBA_ASTC_10x6_KHR:                          return "GL_COMPRESSED_RGBA_ASTC_10x6_KHR";
1761                 case GL_COMPRESSED_RGBA_ASTC_10x8_KHR:                          return "GL_COMPRESSED_RGBA_ASTC_10x8_KHR";
1762                 case GL_COMPRESSED_RGBA_ASTC_10x10_KHR:                         return "GL_COMPRESSED_RGBA_ASTC_10x10_KHR";
1763                 case GL_COMPRESSED_RGBA_ASTC_12x10_KHR:                         return "GL_COMPRESSED_RGBA_ASTC_12x10_KHR";
1764                 case GL_COMPRESSED_RGBA_ASTC_12x12_KHR:                         return "GL_COMPRESSED_RGBA_ASTC_12x12_KHR";
1765                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR";
1766                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR";
1767                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR";
1768                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR";
1769                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR";
1770                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR";
1771                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR";
1772                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:           return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR";
1773                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:          return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR";
1774                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:          return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR";
1775                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:          return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR";
1776                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:         return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR";
1777                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:         return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR";
1778                 case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:         return "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR";
1779                 case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:                           return "GL_COMPRESSED_RGB_S3TC_DXT1_EXT";
1780                 case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:                          return "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT";
1781                 case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:                          return "GL_COMPRESSED_RGBA_S3TC_DXT3_EXT";
1782                 case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:                          return "GL_COMPRESSED_RGBA_S3TC_DXT5_EXT";
1783                 case GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG:                        return "GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG";
1784                 case GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG:                        return "GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG";
1785                 case GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:                       return "GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG";
1786                 case GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:                       return "GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG";
1787                 default:                                                                                        return DE_NULL;
1788         }
1789 }
1790
1791 const char* getGraphicsResetStatusName (int value)
1792 {
1793         switch (value)
1794         {
1795                 case GL_NO_ERROR:                               return "GL_NO_ERROR";
1796                 case GL_GUILTY_CONTEXT_RESET:   return "GL_GUILTY_CONTEXT_RESET";
1797                 case GL_INNOCENT_CONTEXT_RESET: return "GL_INNOCENT_CONTEXT_RESET";
1798                 case GL_UNKNOWN_CONTEXT_RESET:  return "GL_UNKNOWN_CONTEXT_RESET";
1799                 default:                                                return DE_NULL;
1800         }
1801 }
1802
1803 tcu::Format::Bitfield<16> getBufferMaskStr (int value)
1804 {
1805         static const tcu::Format::BitDesc s_desc[] =
1806         {
1807                 tcu::Format::BitDesc(GL_DEPTH_BUFFER_BIT,       "GL_DEPTH_BUFFER_BIT"),
1808                 tcu::Format::BitDesc(GL_STENCIL_BUFFER_BIT,     "GL_STENCIL_BUFFER_BIT"),
1809                 tcu::Format::BitDesc(GL_COLOR_BUFFER_BIT,       "GL_COLOR_BUFFER_BIT"),
1810         };
1811         return tcu::Format::Bitfield<16>(value, &s_desc[0], &s_desc[DE_LENGTH_OF_ARRAY(s_desc)]);
1812 }
1813
1814 tcu::Format::Bitfield<16> getBufferMapFlagsStr (int value)
1815 {
1816         static const tcu::Format::BitDesc s_desc[] =
1817         {
1818                 tcu::Format::BitDesc(GL_MAP_READ_BIT,                           "GL_MAP_READ_BIT"),
1819                 tcu::Format::BitDesc(GL_MAP_WRITE_BIT,                          "GL_MAP_WRITE_BIT"),
1820                 tcu::Format::BitDesc(GL_MAP_INVALIDATE_RANGE_BIT,       "GL_MAP_INVALIDATE_RANGE_BIT"),
1821                 tcu::Format::BitDesc(GL_MAP_INVALIDATE_BUFFER_BIT,      "GL_MAP_INVALIDATE_BUFFER_BIT"),
1822                 tcu::Format::BitDesc(GL_MAP_FLUSH_EXPLICIT_BIT,         "GL_MAP_FLUSH_EXPLICIT_BIT"),
1823                 tcu::Format::BitDesc(GL_MAP_UNSYNCHRONIZED_BIT,         "GL_MAP_UNSYNCHRONIZED_BIT"),
1824         };
1825         return tcu::Format::Bitfield<16>(value, &s_desc[0], &s_desc[DE_LENGTH_OF_ARRAY(s_desc)]);
1826 }
1827
1828 tcu::Format::Bitfield<16> getMemoryBarrierFlagsStr (int value)
1829 {
1830         static const tcu::Format::BitDesc s_desc[] =
1831         {
1832                 tcu::Format::BitDesc(GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,        "GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"),
1833                 tcu::Format::BitDesc(GL_ELEMENT_ARRAY_BARRIER_BIT,                      "GL_ELEMENT_ARRAY_BARRIER_BIT"),
1834                 tcu::Format::BitDesc(GL_UNIFORM_BARRIER_BIT,                            "GL_UNIFORM_BARRIER_BIT"),
1835                 tcu::Format::BitDesc(GL_TEXTURE_FETCH_BARRIER_BIT,                      "GL_TEXTURE_FETCH_BARRIER_BIT"),
1836                 tcu::Format::BitDesc(GL_SHADER_IMAGE_ACCESS_BARRIER_BIT,        "GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"),
1837                 tcu::Format::BitDesc(GL_COMMAND_BARRIER_BIT,                            "GL_COMMAND_BARRIER_BIT"),
1838                 tcu::Format::BitDesc(GL_PIXEL_BUFFER_BARRIER_BIT,                       "GL_PIXEL_BUFFER_BARRIER_BIT"),
1839                 tcu::Format::BitDesc(GL_TEXTURE_UPDATE_BARRIER_BIT,                     "GL_TEXTURE_UPDATE_BARRIER_BIT"),
1840                 tcu::Format::BitDesc(GL_BUFFER_UPDATE_BARRIER_BIT,                      "GL_BUFFER_UPDATE_BARRIER_BIT"),
1841                 tcu::Format::BitDesc(GL_FRAMEBUFFER_BARRIER_BIT,                        "GL_FRAMEBUFFER_BARRIER_BIT"),
1842                 tcu::Format::BitDesc(GL_TRANSFORM_FEEDBACK_BARRIER_BIT,         "GL_TRANSFORM_FEEDBACK_BARRIER_BIT"),
1843                 tcu::Format::BitDesc(GL_ATOMIC_COUNTER_BARRIER_BIT,                     "GL_ATOMIC_COUNTER_BARRIER_BIT"),
1844         };
1845         return tcu::Format::Bitfield<16>(value, &s_desc[0], &s_desc[DE_LENGTH_OF_ARRAY(s_desc)]);
1846 }
1847
1848 tcu::Format::Bitfield<16> getShaderTypeMaskStr (int value)
1849 {
1850         static const tcu::Format::BitDesc s_desc[] =
1851         {
1852                 tcu::Format::BitDesc(GL_VERTEX_SHADER_BIT,                      "GL_VERTEX_SHADER_BIT"),
1853                 tcu::Format::BitDesc(GL_FRAGMENT_SHADER_BIT,            "GL_FRAGMENT_SHADER_BIT"),
1854                 tcu::Format::BitDesc(GL_COMPUTE_SHADER_BIT,                     "GL_COMPUTE_SHADER_BIT"),
1855                 tcu::Format::BitDesc(GL_GEOMETRY_SHADER_BIT,            "GL_GEOMETRY_SHADER_BIT"),
1856                 tcu::Format::BitDesc(GL_TESS_CONTROL_SHADER_BIT,        "GL_TESS_CONTROL_SHADER_BIT"),
1857                 tcu::Format::BitDesc(GL_TESS_EVALUATION_SHADER_BIT,     "GL_TESS_EVALUATION_SHADER_BIT"),
1858         };
1859         return tcu::Format::Bitfield<16>(value, &s_desc[0], &s_desc[DE_LENGTH_OF_ARRAY(s_desc)]);
1860 }