feat(debug): glEnumToString

This commit is contained in:
Swung0x48 2025-02-21 16:48:32 +08:00
parent 17e8c24b22
commit 4f33db0751
5 changed files with 610 additions and 7 deletions

View File

@ -101,7 +101,7 @@ NATIVE_FUNCTION_HEAD(GLboolean, glIsShader, GLuint shader) NATIVE_FUNCTION_END(G
NATIVE_FUNCTION_HEAD(GLboolean, glIsTexture, GLuint texture) NATIVE_FUNCTION_END(GLboolean, glIsTexture, texture) NATIVE_FUNCTION_HEAD(GLboolean, glIsTexture, GLuint texture) NATIVE_FUNCTION_END(GLboolean, glIsTexture, texture)
NATIVE_FUNCTION_HEAD(void, glLineWidth, GLfloat width) NATIVE_FUNCTION_END_NO_RETURN(void, glLineWidth, width) NATIVE_FUNCTION_HEAD(void, glLineWidth, GLfloat width) NATIVE_FUNCTION_END_NO_RETURN(void, glLineWidth, width)
//NATIVE_FUNCTION_HEAD(void, glLinkProgram, GLuint program) NATIVE_FUNCTION_END_NO_RETURN(void, glLinkProgram, program) //NATIVE_FUNCTION_HEAD(void, glLinkProgram, GLuint program) NATIVE_FUNCTION_END_NO_RETURN(void, glLinkProgram, program)
NATIVE_FUNCTION_HEAD(void, glPixelStorei, GLenum pname, GLint param) NATIVE_FUNCTION_END_NO_RETURN(void, glPixelStorei, pname,param) //NATIVE_FUNCTION_HEAD(void, glPixelStorei, GLenum pname, GLint param) NATIVE_FUNCTION_END_NO_RETURN(void, glPixelStorei, pname,param)
NATIVE_FUNCTION_HEAD(void, glPolygonOffset, GLfloat factor, GLfloat units) NATIVE_FUNCTION_END_NO_RETURN(void, glPolygonOffset, factor,units) NATIVE_FUNCTION_HEAD(void, glPolygonOffset, GLfloat factor, GLfloat units) NATIVE_FUNCTION_END_NO_RETURN(void, glPolygonOffset, factor,units)
//NATIVE_FUNCTION_HEAD(void, glReadPixels, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels) NATIVE_FUNCTION_END_NO_RETURN(void, glReadPixels, x,y,width,height,format,type,pixels) //NATIVE_FUNCTION_HEAD(void, glReadPixels, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels) NATIVE_FUNCTION_END_NO_RETURN(void, glReadPixels, x,y,width,height,format,type,pixels)
NATIVE_FUNCTION_HEAD(void, glReleaseShaderCompiler) NATIVE_FUNCTION_END_NO_RETURN(void, glReleaseShaderCompiler) NATIVE_FUNCTION_HEAD(void, glReleaseShaderCompiler) NATIVE_FUNCTION_END_NO_RETURN(void, glReleaseShaderCompiler)

View File

@ -1,4 +1,584 @@
// //
// Created by BZLZHH on 2025/1/26. // Created by BZLZHH on 2025/1/26.
// //
#include "log.h" #include "log.h"
#include "gl.h"
#define CASE(e) \
case e: return #e;
const char* glEnumToString(GLenum e) {
static char str[64];
switch (e) {
/* Boolean values */
/* Data types */
CASE(GL_BYTE)
CASE(GL_UNSIGNED_BYTE)
CASE(GL_SHORT)
CASE(GL_UNSIGNED_SHORT)
CASE(GL_INT)
CASE(GL_UNSIGNED_INT)
CASE(GL_FLOAT)
CASE(GL_2_BYTES)
CASE(GL_3_BYTES)
CASE(GL_4_BYTES)
CASE(GL_DOUBLE)
/* Primitives */
CASE(GL_LINE_LOOP)
CASE(GL_LINE_STRIP)
CASE(GL_TRIANGLES)
CASE(GL_TRIANGLE_STRIP)
CASE(GL_TRIANGLE_FAN)
CASE(GL_QUADS)
CASE(GL_QUAD_STRIP)
CASE(GL_POLYGON)
/* Vertex Arrays */
CASE(GL_VERTEX_ARRAY)
CASE(GL_NORMAL_ARRAY)
CASE(GL_COLOR_ARRAY)
CASE(GL_INDEX_ARRAY)
CASE(GL_TEXTURE_COORD_ARRAY)
CASE(GL_EDGE_FLAG_ARRAY)
CASE(GL_VERTEX_ARRAY_SIZE)
CASE(GL_VERTEX_ARRAY_TYPE)
CASE(GL_VERTEX_ARRAY_STRIDE)
CASE(GL_NORMAL_ARRAY_TYPE)
CASE(GL_NORMAL_ARRAY_STRIDE)
CASE(GL_COLOR_ARRAY_SIZE)
CASE(GL_COLOR_ARRAY_TYPE)
CASE(GL_COLOR_ARRAY_STRIDE)
CASE(GL_INDEX_ARRAY_TYPE)
CASE(GL_INDEX_ARRAY_STRIDE)
CASE(GL_TEXTURE_COORD_ARRAY_SIZE)
CASE(GL_TEXTURE_COORD_ARRAY_TYPE)
CASE(GL_TEXTURE_COORD_ARRAY_STRIDE)
CASE(GL_EDGE_FLAG_ARRAY_STRIDE)
CASE(GL_VERTEX_ARRAY_POINTER)
CASE(GL_NORMAL_ARRAY_POINTER)
CASE(GL_COLOR_ARRAY_POINTER)
CASE(GL_INDEX_ARRAY_POINTER)
CASE(GL_TEXTURE_COORD_ARRAY_POINTER)
CASE(GL_EDGE_FLAG_ARRAY_POINTER)
CASE(GL_V2F)
CASE(GL_V3F)
CASE(GL_C4UB_V2F)
CASE(GL_C4UB_V3F)
CASE(GL_C3F_V3F)
CASE(GL_N3F_V3F)
CASE(GL_C4F_N3F_V3F)
CASE(GL_T2F_V3F)
CASE(GL_T4F_V4F)
CASE(GL_T2F_C4UB_V3F)
CASE(GL_T2F_C3F_V3F)
CASE(GL_T2F_N3F_V3F)
CASE(GL_T2F_C4F_N3F_V3F)
CASE(GL_T4F_C4F_N3F_V4F)
/* Matrix Mode */
CASE(GL_MATRIX_MODE)
CASE(GL_MODELVIEW)
CASE(GL_PROJECTION)
CASE(GL_TEXTURE)
/* Points */
CASE(GL_POINT_SMOOTH)
CASE(GL_POINT_SIZE)
CASE(GL_POINT_SIZE_GRANULARITY)
CASE(GL_POINT_SIZE_RANGE)
/* Lines */
CASE(GL_LINE_SMOOTH)
CASE(GL_LINE_STIPPLE)
CASE(GL_LINE_STIPPLE_PATTERN)
CASE(GL_LINE_STIPPLE_REPEAT)
CASE(GL_LINE_WIDTH)
CASE(GL_LINE_WIDTH_GRANULARITY)
CASE(GL_LINE_WIDTH_RANGE)
/* Polygons */
CASE(GL_POINT)
CASE(GL_LINE)
CASE(GL_FILL)
CASE(GL_CW)
CASE(GL_CCW)
CASE(GL_FRONT)
CASE(GL_BACK)
CASE(GL_POLYGON_MODE)
CASE(GL_POLYGON_SMOOTH)
CASE(GL_POLYGON_STIPPLE)
CASE(GL_EDGE_FLAG)
CASE(GL_CULL_FACE)
CASE(GL_CULL_FACE_MODE)
CASE(GL_FRONT_FACE)
CASE(GL_POLYGON_OFFSET_FACTOR)
CASE(GL_POLYGON_OFFSET_UNITS)
CASE(GL_POLYGON_OFFSET_POINT)
CASE(GL_POLYGON_OFFSET_LINE)
CASE(GL_POLYGON_OFFSET_FILL)
/* Display Lists */
CASE(GL_COMPILE)
CASE(GL_COMPILE_AND_EXECUTE)
CASE(GL_LIST_BASE)
CASE(GL_LIST_INDEX)
CASE(GL_LIST_MODE)
/* Depth buffer */
CASE(GL_NEVER)
CASE(GL_LESS)
CASE(GL_EQUAL)
CASE(GL_LEQUAL)
CASE(GL_GREATER)
CASE(GL_NOTEQUAL)
CASE(GL_GEQUAL)
CASE(GL_ALWAYS)
CASE(GL_DEPTH_TEST)
CASE(GL_DEPTH_BITS)
CASE(GL_DEPTH_CLEAR_VALUE)
CASE(GL_DEPTH_FUNC)
CASE(GL_DEPTH_RANGE)
CASE(GL_DEPTH_WRITEMASK)
CASE(GL_DEPTH_COMPONENT)
/* Lighting */
CASE(GL_LIGHTING)
CASE(GL_LIGHT0)
CASE(GL_LIGHT1)
CASE(GL_LIGHT2)
CASE(GL_LIGHT3)
CASE(GL_LIGHT4)
CASE(GL_LIGHT5)
CASE(GL_LIGHT6)
CASE(GL_LIGHT7)
CASE(GL_SPOT_EXPONENT)
CASE(GL_SPOT_CUTOFF)
CASE(GL_CONSTANT_ATTENUATION)
CASE(GL_LINEAR_ATTENUATION)
CASE(GL_QUADRATIC_ATTENUATION)
CASE(GL_AMBIENT)
CASE(GL_DIFFUSE)
CASE(GL_SPECULAR)
CASE(GL_SHININESS)
CASE(GL_EMISSION)
CASE(GL_POSITION)
CASE(GL_SPOT_DIRECTION)
CASE(GL_AMBIENT_AND_DIFFUSE)
CASE(GL_COLOR_INDEXES)
CASE(GL_LIGHT_MODEL_TWO_SIDE)
CASE(GL_LIGHT_MODEL_LOCAL_VIEWER)
CASE(GL_LIGHT_MODEL_AMBIENT)
CASE(GL_FRONT_AND_BACK)
CASE(GL_SHADE_MODEL)
CASE(GL_FLAT)
CASE(GL_SMOOTH)
CASE(GL_COLOR_MATERIAL)
CASE(GL_COLOR_MATERIAL_FACE)
CASE(GL_COLOR_MATERIAL_PARAMETER)
CASE(GL_NORMALIZE)
/* User clipping planes */
CASE(GL_CLIP_PLANE0)
CASE(GL_CLIP_PLANE1)
CASE(GL_CLIP_PLANE2)
CASE(GL_CLIP_PLANE3)
CASE(GL_CLIP_PLANE4)
CASE(GL_CLIP_PLANE5)
/* Accumulation buffer */
CASE(GL_ACCUM_RED_BITS)
CASE(GL_ACCUM_GREEN_BITS)
CASE(GL_ACCUM_BLUE_BITS)
CASE(GL_ACCUM_ALPHA_BITS)
CASE(GL_ACCUM_CLEAR_VALUE)
CASE(GL_ACCUM)
CASE(GL_ADD)
CASE(GL_LOAD)
CASE(GL_MULT)
CASE(GL_RETURN)
/* Alpha testing */
CASE(GL_ALPHA_TEST)
CASE(GL_ALPHA_TEST_REF)
CASE(GL_ALPHA_TEST_FUNC)
/* Blending */
CASE(GL_BLEND)
CASE(GL_BLEND_SRC)
CASE(GL_BLEND_DST)
CASE(GL_ZERO)
CASE(GL_ONE)
CASE(GL_SRC_COLOR)
CASE(GL_ONE_MINUS_SRC_COLOR)
CASE(GL_SRC_ALPHA)
CASE(GL_ONE_MINUS_SRC_ALPHA)
CASE(GL_DST_ALPHA)
CASE(GL_ONE_MINUS_DST_ALPHA)
CASE(GL_DST_COLOR)
CASE(GL_ONE_MINUS_DST_COLOR)
CASE(GL_SRC_ALPHA_SATURATE)
/* Render Mode */
CASE(GL_FEEDBACK)
CASE(GL_RENDER)
CASE(GL_SELECT)
/* Feedback */
CASE(GL_2D)
CASE(GL_3D)
CASE(GL_3D_COLOR)
CASE(GL_3D_COLOR_TEXTURE)
CASE(GL_4D_COLOR_TEXTURE)
CASE(GL_POINT_TOKEN)
CASE(GL_LINE_TOKEN)
CASE(GL_LINE_RESET_TOKEN)
CASE(GL_POLYGON_TOKEN)
CASE(GL_BITMAP_TOKEN)
CASE(GL_DRAW_PIXEL_TOKEN)
CASE(GL_COPY_PIXEL_TOKEN)
CASE(GL_PASS_THROUGH_TOKEN)
CASE(GL_FEEDBACK_BUFFER_POINTER)
CASE(GL_FEEDBACK_BUFFER_SIZE)
CASE(GL_FEEDBACK_BUFFER_TYPE)
/* Selection */
CASE(GL_SELECTION_BUFFER_POINTER)
CASE(GL_SELECTION_BUFFER_SIZE)
/* Fog */
CASE(GL_FOG)
CASE(GL_FOG_MODE)
CASE(GL_FOG_DENSITY)
CASE(GL_FOG_COLOR)
CASE(GL_FOG_INDEX)
CASE(GL_FOG_START)
CASE(GL_FOG_END)
CASE(GL_LINEAR)
CASE(GL_EXP)
CASE(GL_EXP2)
/* Logic Ops */
CASE(GL_INDEX_LOGIC_OP)
CASE(GL_COLOR_LOGIC_OP)
CASE(GL_LOGIC_OP_MODE)
CASE(GL_CLEAR)
CASE(GL_SET)
CASE(GL_COPY)
CASE(GL_COPY_INVERTED)
CASE(GL_NOOP)
CASE(GL_INVERT)
CASE(GL_AND)
CASE(GL_NAND)
CASE(GL_OR)
CASE(GL_NOR)
CASE(GL_XOR)
CASE(GL_EQUIV)
CASE(GL_AND_REVERSE)
CASE(GL_AND_INVERTED)
CASE(GL_OR_REVERSE)
CASE(GL_OR_INVERTED)
/* Stencil */
CASE(GL_STENCIL_BITS)
CASE(GL_STENCIL_TEST)
CASE(GL_STENCIL_CLEAR_VALUE)
CASE(GL_STENCIL_FUNC)
CASE(GL_STENCIL_VALUE_MASK)
CASE(GL_STENCIL_FAIL)
CASE(GL_STENCIL_PASS_DEPTH_FAIL)
CASE(GL_STENCIL_PASS_DEPTH_PASS)
CASE(GL_STENCIL_REF)
CASE(GL_STENCIL_WRITEMASK)
CASE(GL_STENCIL_INDEX)
CASE(GL_KEEP)
CASE(GL_REPLACE)
CASE(GL_INCR)
CASE(GL_DECR)
/* Buffers, Pixel Drawing/Reading */
CASE(GL_LEFT)
CASE(GL_RIGHT)
CASE(GL_FRONT_LEFT)
CASE(GL_FRONT_RIGHT)
CASE(GL_BACK_LEFT)
CASE(GL_BACK_RIGHT)
CASE(GL_AUX0)
CASE(GL_AUX1)
CASE(GL_AUX2)
CASE(GL_AUX3)
CASE(GL_COLOR_INDEX)
CASE(GL_RED)
CASE(GL_GREEN)
CASE(GL_BLUE)
CASE(GL_ALPHA)
CASE(GL_LUMINANCE)
CASE(GL_LUMINANCE_ALPHA)
CASE(GL_ALPHA_BITS)
CASE(GL_RED_BITS)
CASE(GL_GREEN_BITS)
CASE(GL_BLUE_BITS)
CASE(GL_INDEX_BITS)
CASE(GL_SUBPIXEL_BITS)
CASE(GL_AUX_BUFFERS)
CASE(GL_READ_BUFFER)
CASE(GL_DRAW_BUFFER)
CASE(GL_DOUBLEBUFFER)
CASE(GL_STEREO)
CASE(GL_BITMAP)
CASE(GL_COLOR)
CASE(GL_DEPTH)
CASE(GL_STENCIL)
CASE(GL_DITHER)
CASE(GL_RGB)
CASE(GL_RGBA)
/* Implementation limits */
CASE(GL_MAX_LIST_NESTING)
CASE(GL_MAX_EVAL_ORDER)
CASE(GL_MAX_LIGHTS)
CASE(GL_MAX_CLIP_PLANES)
CASE(GL_MAX_TEXTURE_SIZE)
CASE(GL_MAX_PIXEL_MAP_TABLE)
CASE(GL_MAX_ATTRIB_STACK_DEPTH)
CASE(GL_MAX_MODELVIEW_STACK_DEPTH)
CASE(GL_MAX_NAME_STACK_DEPTH)
CASE(GL_MAX_PROJECTION_STACK_DEPTH)
CASE(GL_MAX_TEXTURE_STACK_DEPTH)
CASE(GL_MAX_VIEWPORT_DIMS)
CASE(GL_MAX_CLIENT_ATTRIB_STACK_DEPTH)
/* Gets */
CASE(GL_ATTRIB_STACK_DEPTH)
CASE(GL_CLIENT_ATTRIB_STACK_DEPTH)
CASE(GL_COLOR_CLEAR_VALUE)
CASE(GL_COLOR_WRITEMASK)
CASE(GL_CURRENT_INDEX)
CASE(GL_CURRENT_COLOR)
CASE(GL_CURRENT_NORMAL)
CASE(GL_CURRENT_RASTER_COLOR)
CASE(GL_CURRENT_RASTER_DISTANCE)
CASE(GL_CURRENT_RASTER_INDEX)
CASE(GL_CURRENT_RASTER_POSITION)
CASE(GL_CURRENT_RASTER_TEXTURE_COORDS)
CASE(GL_CURRENT_RASTER_POSITION_VALID)
CASE(GL_CURRENT_TEXTURE_COORDS)
CASE(GL_INDEX_CLEAR_VALUE)
CASE(GL_INDEX_MODE)
CASE(GL_INDEX_WRITEMASK)
CASE(GL_MODELVIEW_MATRIX)
CASE(GL_MODELVIEW_STACK_DEPTH)
CASE(GL_NAME_STACK_DEPTH)
CASE(GL_PROJECTION_MATRIX)
CASE(GL_PROJECTION_STACK_DEPTH)
CASE(GL_RENDER_MODE)
CASE(GL_RGBA_MODE)
CASE(GL_TEXTURE_MATRIX)
CASE(GL_TEXTURE_STACK_DEPTH)
CASE(GL_VIEWPORT)
/* Evaluators */
CASE(GL_AUTO_NORMAL)
CASE(GL_MAP1_COLOR_4)
CASE(GL_MAP1_INDEX)
CASE(GL_MAP1_NORMAL)
CASE(GL_MAP1_TEXTURE_COORD_1)
CASE(GL_MAP1_TEXTURE_COORD_2)
CASE(GL_MAP1_TEXTURE_COORD_3)
CASE(GL_MAP1_TEXTURE_COORD_4)
CASE(GL_MAP1_VERTEX_3)
CASE(GL_MAP1_VERTEX_4)
CASE(GL_MAP2_COLOR_4)
CASE(GL_MAP2_INDEX)
CASE(GL_MAP2_NORMAL)
CASE(GL_MAP2_TEXTURE_COORD_1)
CASE(GL_MAP2_TEXTURE_COORD_2)
CASE(GL_MAP2_TEXTURE_COORD_3)
CASE(GL_MAP2_TEXTURE_COORD_4)
CASE(GL_MAP2_VERTEX_3)
CASE(GL_MAP2_VERTEX_4)
CASE(GL_MAP1_GRID_DOMAIN)
CASE(GL_MAP1_GRID_SEGMENTS)
CASE(GL_MAP2_GRID_DOMAIN)
CASE(GL_MAP2_GRID_SEGMENTS)
CASE(GL_COEFF)
CASE(GL_ORDER)
CASE(GL_DOMAIN)
/* Hints */
CASE(GL_PERSPECTIVE_CORRECTION_HINT)
CASE(GL_POINT_SMOOTH_HINT)
CASE(GL_LINE_SMOOTH_HINT)
CASE(GL_POLYGON_SMOOTH_HINT)
CASE(GL_FOG_HINT)
CASE(GL_DONT_CARE)
CASE(GL_FASTEST)
CASE(GL_NICEST)
/* Scissor box */
CASE(GL_SCISSOR_BOX)
CASE(GL_SCISSOR_TEST)
/* Pixel Mode / Transfer */
CASE(GL_MAP_COLOR)
CASE(GL_MAP_STENCIL)
CASE(GL_INDEX_SHIFT)
CASE(GL_INDEX_OFFSET)
CASE(GL_RED_SCALE)
CASE(GL_RED_BIAS)
CASE(GL_GREEN_SCALE)
CASE(GL_GREEN_BIAS)
CASE(GL_BLUE_SCALE)
CASE(GL_BLUE_BIAS)
CASE(GL_ALPHA_SCALE)
CASE(GL_ALPHA_BIAS)
CASE(GL_DEPTH_SCALE)
CASE(GL_DEPTH_BIAS)
CASE(GL_PIXEL_MAP_S_TO_S_SIZE)
CASE(GL_PIXEL_MAP_I_TO_I_SIZE)
CASE(GL_PIXEL_MAP_I_TO_R_SIZE)
CASE(GL_PIXEL_MAP_I_TO_G_SIZE)
CASE(GL_PIXEL_MAP_I_TO_B_SIZE)
CASE(GL_PIXEL_MAP_I_TO_A_SIZE)
CASE(GL_PIXEL_MAP_R_TO_R_SIZE)
CASE(GL_PIXEL_MAP_G_TO_G_SIZE)
CASE(GL_PIXEL_MAP_B_TO_B_SIZE)
CASE(GL_PIXEL_MAP_A_TO_A_SIZE)
CASE(GL_PIXEL_MAP_S_TO_S)
CASE(GL_PIXEL_MAP_I_TO_I)
CASE(GL_PIXEL_MAP_I_TO_R)
CASE(GL_PIXEL_MAP_I_TO_G)
CASE(GL_PIXEL_MAP_I_TO_B)
CASE(GL_PIXEL_MAP_I_TO_A)
CASE(GL_PIXEL_MAP_R_TO_R)
CASE(GL_PIXEL_MAP_G_TO_G)
CASE(GL_PIXEL_MAP_B_TO_B)
CASE(GL_PIXEL_MAP_A_TO_A)
CASE(GL_PACK_ALIGNMENT)
CASE(GL_PACK_LSB_FIRST)
CASE(GL_PACK_ROW_LENGTH)
CASE(GL_PACK_SKIP_PIXELS)
CASE(GL_PACK_SKIP_ROWS)
CASE(GL_PACK_SWAP_BYTES)
CASE(GL_UNPACK_ALIGNMENT)
CASE(GL_UNPACK_LSB_FIRST)
CASE(GL_UNPACK_ROW_LENGTH)
CASE(GL_UNPACK_SKIP_PIXELS)
CASE(GL_UNPACK_SKIP_ROWS)
CASE(GL_UNPACK_SWAP_BYTES)
CASE(GL_ZOOM_X)
CASE(GL_ZOOM_Y)
/* Texture mapping */
CASE(GL_TEXTURE_ENV)
CASE(GL_TEXTURE_ENV_MODE)
CASE(GL_TEXTURE_1D)
CASE(GL_TEXTURE_2D)
CASE(GL_TEXTURE_WRAP_S)
CASE(GL_TEXTURE_WRAP_T)
CASE(GL_TEXTURE_MAG_FILTER)
CASE(GL_TEXTURE_MIN_FILTER)
CASE(GL_TEXTURE_ENV_COLOR)
CASE(GL_TEXTURE_GEN_S)
CASE(GL_TEXTURE_GEN_T)
CASE(GL_TEXTURE_GEN_R)
CASE(GL_TEXTURE_GEN_Q)
CASE(GL_TEXTURE_GEN_MODE)
CASE(GL_TEXTURE_BORDER_COLOR)
CASE(GL_TEXTURE_WIDTH)
CASE(GL_TEXTURE_HEIGHT)
CASE(GL_TEXTURE_BORDER)
CASE(GL_TEXTURE_COMPONENTS)
CASE(GL_TEXTURE_RED_SIZE)
CASE(GL_TEXTURE_GREEN_SIZE)
CASE(GL_TEXTURE_BLUE_SIZE)
CASE(GL_TEXTURE_ALPHA_SIZE)
CASE(GL_TEXTURE_LUMINANCE_SIZE)
CASE(GL_TEXTURE_INTENSITY_SIZE)
CASE(GL_NEAREST_MIPMAP_NEAREST)
CASE(GL_NEAREST_MIPMAP_LINEAR)
CASE(GL_LINEAR_MIPMAP_NEAREST)
CASE(GL_LINEAR_MIPMAP_LINEAR)
CASE(GL_OBJECT_LINEAR)
CASE(GL_OBJECT_PLANE)
CASE(GL_EYE_LINEAR)
CASE(GL_EYE_PLANE)
CASE(GL_SPHERE_MAP)
CASE(GL_DECAL)
CASE(GL_MODULATE)
CASE(GL_NEAREST)
CASE(GL_REPEAT)
CASE(GL_CLAMP)
CASE(GL_S)
CASE(GL_T)
CASE(GL_R)
CASE(GL_Q)
/* Utility */
CASE(GL_VENDOR)
CASE(GL_RENDERER)
CASE(GL_VERSION)
CASE(GL_EXTENSIONS)
/* Errors */
CASE(GL_INVALID_ENUM)
CASE(GL_INVALID_VALUE)
CASE(GL_INVALID_OPERATION)
CASE(GL_STACK_OVERFLOW)
CASE(GL_STACK_UNDERFLOW)
CASE(GL_OUT_OF_MEMORY)
/* OpenGL 1.1 */
CASE(GL_PROXY_TEXTURE_1D)
CASE(GL_PROXY_TEXTURE_2D)
CASE(GL_TEXTURE_PRIORITY)
CASE(GL_TEXTURE_RESIDENT)
CASE(GL_TEXTURE_BINDING_1D)
CASE(GL_TEXTURE_BINDING_2D)
CASE(GL_ALPHA4)
CASE(GL_ALPHA8)
CASE(GL_ALPHA12)
CASE(GL_ALPHA16)
CASE(GL_LUMINANCE4)
CASE(GL_LUMINANCE8)
CASE(GL_LUMINANCE12)
CASE(GL_LUMINANCE16)
CASE(GL_LUMINANCE4_ALPHA4)
CASE(GL_LUMINANCE6_ALPHA2)
CASE(GL_LUMINANCE8_ALPHA8)
CASE(GL_LUMINANCE12_ALPHA4)
CASE(GL_LUMINANCE12_ALPHA12)
CASE(GL_LUMINANCE16_ALPHA16)
CASE(GL_INTENSITY)
CASE(GL_INTENSITY4)
CASE(GL_INTENSITY8)
CASE(GL_INTENSITY12)
CASE(GL_INTENSITY16)
CASE(GL_R3_G3_B2)
CASE(GL_RGB4)
CASE(GL_RGB5)
CASE(GL_RGB8)
CASE(GL_RGB10)
CASE(GL_RGB12)
CASE(GL_RGB16)
CASE(GL_RGBA2)
CASE(GL_RGBA4)
CASE(GL_RGB5_A1)
CASE(GL_RGBA8)
CASE(GL_RGB10_A2)
CASE(GL_RGBA12)
CASE(GL_RGBA16)
/*
* Miscellaneous
*/
default:
sprintf(str, "0x%x", e);
return str;
}
}

View File

@ -8,6 +8,16 @@
#define GLOBAL_DEBUG 0 #define GLOBAL_DEBUG 0
#ifdef __cplusplus
extern "C" {
#endif
const char *glEnumToString(GLenum e);
#ifdef __cplusplus
}
#endif
#if GLOBAL_DEBUG_FORCE_OFF #if GLOBAL_DEBUG_FORCE_OFF
#define LOG() {} #define LOG() {}
#define LOG_D(...) {} #define LOG_D(...) {}

View File

@ -287,9 +287,13 @@ void glTexImage2D(GLenum target, GLint level,GLint internalFormat,GLsizei width,
auto& tex = g_textures[bound_texture]; auto& tex = g_textures[bound_texture];
tex.internal_format = internalFormat; tex.internal_format = internalFormat;
tex.format = format; tex.format = format;
LOG_D("mg_glTexImage2D,target: 0x%x,level: %d,internalFormat: 0x%x->0x%x,width: %d,height: %d,border: %d,format: 0x%x,type: 0x%x",target,level,internalFormat,internalFormat,width,height,border,format,type); LOG_D("mg_glTexImage2D,target: %s,level: %d,internalFormat: %s->%s,width: %d,height: %d,border: %d,format: %s,type: %s",
glEnumToString(target),level,glEnumToString(internalFormat),glEnumToString(internalFormat),
width,height,border,glEnumToString(format),glEnumToString(type));
internal_convert(reinterpret_cast<GLenum *>(&internalFormat), &type, &format); internal_convert(reinterpret_cast<GLenum *>(&internalFormat), &type, &format);
LOG_D("gles_glTexImage2D,target: 0x%x,level: %d,internalFormat: 0x%x->0x%x,width: %d,height: %d,border: %d,format: 0x%x,type: 0x%x",target,level,internalFormat,internalFormat,width,height,border,format,type); LOG_D("gles_glTexImage2D,target: %s,level: %d,internalFormat: %s->%s,width: %d,height: %d,border: %d,format: %s,type: %s",
glEnumToString(target),level,glEnumToString(internalFormat),glEnumToString(internalFormat),
width,height,border,glEnumToString(format),glEnumToString(type));
GLenum rtarget = map_tex_target(target); GLenum rtarget = map_tex_target(target);
if(rtarget == GL_PROXY_TEXTURE_2D) { if(rtarget == GL_PROXY_TEXTURE_2D) {
int max1 = 4096; int max1 = 4096;
@ -647,8 +651,8 @@ void glGetTexLevelParameteriv(GLenum target, GLint level,GLenum pname, GLint *pa
} }
void glTexParameteriv(GLenum target, GLenum pname, const GLint* params) { void glTexParameteriv(GLenum target, GLenum pname, const GLint* params) {
LOG_D("glTexParameteriv, target: %d, pname: %d, params[0]: %d", LOG_D("glTexParameteriv, target: %s, pname: %s, params[0]: %s",
target, pname, params ? params[0] : 0); params, glEnumToString(pname), params ? glEnumToString(params[0]) : "0");
LOAD_GLES_FUNC(glTexParameteriv); LOAD_GLES_FUNC(glTexParameteriv);
LOAD_GLES_FUNC(glTexParameteri); LOAD_GLES_FUNC(glTexParameteri);
@ -793,7 +797,7 @@ void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format
void glTexParameteri(GLenum target, GLenum pname, GLint param) { void glTexParameteri(GLenum target, GLenum pname, GLint param) {
LOG() LOG()
pname = pname_convert(pname); pname = pname_convert(pname);
LOG_D("glTexParameterfv, pname: %d", pname) LOG_D("glTexParameteri, pname: 0x%x", pname)
if (pname == GL_TEXTURE_LOD_BIAS_QCOM && !g_gles_caps.GL_QCOM_texture_lod_bias) { if (pname == GL_TEXTURE_LOD_BIAS_QCOM && !g_gles_caps.GL_QCOM_texture_lod_bias) {
LOG_D("Does not support GL_QCOM_texture_lod_bias, skipped!") LOG_D("Does not support GL_QCOM_texture_lod_bias, skipped!")
@ -916,4 +920,11 @@ void glClearTexImage(GLuint texture, GLint level, GLenum format, GLenum type, co
glBindFramebuffer(GL_FRAMEBUFFER, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0);
glDeleteFramebuffers(1, &fbo); glDeleteFramebuffers(1, &fbo);
CHECK_GL_ERROR_NO_INIT CHECK_GL_ERROR_NO_INIT
}
void glPixelStorei(GLenum pname, GLint param) {
LOG_D("glPixelStorei, pname = %s, param = %s", glEnumToString(pname), glEnumToString(param))
LOAD_GLES_FUNC(glPixelStorei)
gles_glPixelStorei(pname, param);
} }

View File

@ -42,6 +42,8 @@ GLAPI GLAPIENTRY void glGetTexImage(GLenum target, GLint level, GLenum format, G
GLAPI GLAPIENTRY void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); GLAPI GLAPIENTRY void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
GLAPI GLAPIENTRY void glTexParameteri(GLenum target, GLenum pname, GLint param); GLAPI GLAPIENTRY void glTexParameteri(GLenum target, GLenum pname, GLint param);
GLAPI GLAPIENTRY void glClearTexImage(GLuint texture, GLint level, GLenum format, GLenum type, const void* data); GLAPI GLAPIENTRY void glClearTexImage(GLuint texture, GLint level, GLenum format, GLenum type, const void* data);
GLAPI GLAPIENTRY void glPixelStorei(GLenum pname, GLint param);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif