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