From 4f33db07515ed56df5332e328bcc6ac5b270f7ce Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Fri, 21 Feb 2025 16:48:32 +0800 Subject: [PATCH] feat(debug): glEnumToString --- src/main/cpp/gl/gl_native.c | 2 +- src/main/cpp/gl/log.c | 582 +++++++++++++++++++++++++++++++++++- src/main/cpp/gl/log.h | 10 + src/main/cpp/gl/texture.cpp | 21 +- src/main/cpp/gl/texture.h | 2 + 5 files changed, 610 insertions(+), 7 deletions(-) diff --git a/src/main/cpp/gl/gl_native.c b/src/main/cpp/gl/gl_native.c index 7d8e008..414ecea 100644 --- a/src/main/cpp/gl/gl_native.c +++ b/src/main/cpp/gl/gl_native.c @@ -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(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, 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, 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) diff --git a/src/main/cpp/gl/log.c b/src/main/cpp/gl/log.c index a958e77..e0572d7 100644 --- a/src/main/cpp/gl/log.c +++ b/src/main/cpp/gl/log.c @@ -1,4 +1,584 @@ // // Created by BZLZHH on 2025/1/26. // -#include "log.h" \ No newline at end of file +#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; + } +} \ No newline at end of file diff --git a/src/main/cpp/gl/log.h b/src/main/cpp/gl/log.h index 9c8374f..f18f7d0 100644 --- a/src/main/cpp/gl/log.h +++ b/src/main/cpp/gl/log.h @@ -8,6 +8,16 @@ #define GLOBAL_DEBUG 0 +#ifdef __cplusplus +extern "C" { +#endif + +const char *glEnumToString(GLenum e); + +#ifdef __cplusplus +} +#endif + #if GLOBAL_DEBUG_FORCE_OFF #define LOG() {} #define LOG_D(...) {} diff --git a/src/main/cpp/gl/texture.cpp b/src/main/cpp/gl/texture.cpp index d33b557..fe5da55 100644 --- a/src/main/cpp/gl/texture.cpp +++ b/src/main/cpp/gl/texture.cpp @@ -287,9 +287,13 @@ void glTexImage2D(GLenum target, GLint level,GLint internalFormat,GLsizei width, auto& tex = g_textures[bound_texture]; tex.internal_format = internalFormat; 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(&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); if(rtarget == GL_PROXY_TEXTURE_2D) { 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) { - LOG_D("glTexParameteriv, target: %d, pname: %d, params[0]: %d", - target, pname, params ? params[0] : 0); + LOG_D("glTexParameteriv, target: %s, pname: %s, params[0]: %s", + params, glEnumToString(pname), params ? glEnumToString(params[0]) : "0"); LOAD_GLES_FUNC(glTexParameteriv); 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) { LOG() 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) { 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); glDeleteFramebuffers(1, &fbo); 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); } \ No newline at end of file diff --git a/src/main/cpp/gl/texture.h b/src/main/cpp/gl/texture.h index ed71723..a7cf50a 100644 --- a/src/main/cpp/gl/texture.h +++ b/src/main/cpp/gl/texture.h @@ -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 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 glPixelStorei(GLenum pname, GLint param); + #ifdef __cplusplus } #endif