From 8d1179d2325d9db342616d362ae437407b7579cc Mon Sep 17 00:00:00 2001 From: BZLZHH Date: Sat, 17 May 2025 17:59:32 +0800 Subject: [PATCH] [Fix] (GLX/Lookup): Implement custom multidraw func for iOS. --- src/main/cpp/glx/lookup.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main/cpp/glx/lookup.cpp b/src/main/cpp/glx/lookup.cpp index 7b465fd..a168048 100644 --- a/src/main/cpp/glx/lookup.cpp +++ b/src/main/cpp/glx/lookup.cpp @@ -15,10 +15,10 @@ #define DEBUG 0 -void* get_multidraw_func(const char* name) { +const char* handle_multidraw_func_name(const char* name) { std::string namestr = name; if (namestr != "glMultiDrawElementsBaseVertex" && namestr != "glMultiDrawElements") { - return nullptr; + return name; } else { namestr = "mg_" + namestr; } @@ -44,21 +44,19 @@ void* get_multidraw_func(const char* name) { return nullptr; } - return dlsym(RTLD_DEFAULT, namestr.c_str()); + return namestr.c_str(); } void *glXGetProcAddress(const char *name) { LOG() + name = handle_multidraw_func_name(name); #ifdef __APPLE__ return dlsym((void*)(~(uintptr_t)0), name); #else void* proc = nullptr; - proc = get_multidraw_func(name); - - if (!proc) - proc = dlsym(RTLD_DEFAULT, (const char*)name); + proc = dlsym(RTLD_DEFAULT, (const char*)name); if (!proc) { fprintf(stderr, "Failed to get OpenGL function %s: %s\n", name, dlerror());