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