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