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