From 14ab14ca039e1b921310e3be3a5f4d84f0d24f76 Mon Sep 17 00:00:00 2001 From: artdeell Date: Mon, 13 Jan 2025 22:19:28 +0300 Subject: [PATCH] Add glGetError override controlled by LIBGL_NOERROR --- app/src/main/tinywrapper/es3_overrides.h | 3 ++- app/src/main/tinywrapper/main.c | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/src/main/tinywrapper/es3_overrides.h b/app/src/main/tinywrapper/es3_overrides.h index 990e9b1..441ada9 100644 --- a/app/src/main/tinywrapper/es3_overrides.h +++ b/app/src/main/tinywrapper/es3_overrides.h @@ -119,4 +119,5 @@ GLESOVERRIDE(glTexParameterfv) GLESOVERRIDE(glTexParameteriv) GLESOVERRIDE(glTexParameterIiv) GLESOVERRIDE(glTexParameterIuiv) -GLESOVERRIDE(glRenderbufferStorage) \ No newline at end of file +GLESOVERRIDE(glRenderbufferStorage) +GLESOVERRIDE(glGetError) \ No newline at end of file diff --git a/app/src/main/tinywrapper/main.c b/app/src/main/tinywrapper/main.c index 833e962..fdf4f70 100644 --- a/app/src/main/tinywrapper/main.c +++ b/app/src/main/tinywrapper/main.c @@ -434,6 +434,22 @@ void glDeleteTextures(GLsizei n, const GLuint *textures) { } } +static bool noerror = false; + +__attribute((constructor)) void init_noerror() { + const char* noerror_env = getenv("LIBGL_NOERROR"); + if(noerror_env == NULL) return; + noerror = (*noerror_env) != '0'; + if(!noerror) { + printf("LTW will NOT ignore GL errors. This may break mods, consider yourself warned.\n"); + } +} + +GLenum glGetError() { + if(noerror) return 0; + else return es3_functions.glGetError(); +} + void glDebugMessageControl( GLenum source, GLenum type, GLenum severity,