From f4e957d3c00a27a1a3dc478042864915934f6a7a Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Tue, 3 Jun 2025 22:32:32 +0800 Subject: [PATCH] [Fix] (glsl_for_es.cpp): make sure define always after #version --- src/main/cpp/gl/glsl/glsl_for_es.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/cpp/gl/glsl/glsl_for_es.cpp b/src/main/cpp/gl/glsl/glsl_for_es.cpp index 5846e99..39d0c02 100644 --- a/src/main/cpp/gl/glsl/glsl_for_es.cpp +++ b/src/main/cpp/gl/glsl/glsl_for_es.cpp @@ -525,18 +525,19 @@ vec4 GI_TemporalFilter() { glsl.insert(main_loc, "\n" + GI_TemporalFilter + "\n"); } -void inject_mg_macro_definition(std::string& glslCode) { - std::stringstream macro_stream; - macro_stream << "\n#define MG_MOBILEGLUES\n" - << "#define MG_MOBILEGLUES_VERSION " - << MAJOR << MINOR << REVISION << PATCH << "\n"; - std::string macro_definitions = macro_stream.str(); +#define xstr(s) str(s) +#define str(s) #s - size_t lastExtensionPos = glslCode.rfind("#extension"); +void inject_mg_macro_definition(std::string& glslCode) { + std::string macro_definitions = + "\n#define MG_MOBILEGLUES\n" + "#define MG_MOBILEGLUES_VERSION " xstr(MAJOR) xstr(MINOR) xstr(REVISION) xstr(PATCH) "\n"; + + size_t versionPos = glslCode.rfind("#version"); size_t insertionPos = 0; - if (lastExtensionPos != std::string::npos) { - size_t nextNewline = glslCode.find('\n', lastExtensionPos); + if (versionPos != std::string::npos) { + size_t nextNewline = glslCode.find('\n', versionPos); insertionPos = (nextNewline != std::string::npos) ? nextNewline + 1 : glslCode.length(); } else { size_t firstNewline = glslCode.find('\n');