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