From 90f9e8f8b69cb4bb9124fbc829adc74dd6fd5201 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Fri, 20 Mar 2020 15:13:09 -0400 Subject: [PATCH] egl: Don't use SDL_LoadFunction to get GL entry points on Emscripten. This results in a dlsym() call, which causes Emscripten to panic if the game wasn't explicitly built dlopen support. eglGetProcAddress works just fine on this platform, so just let that codepath handle it. --- src/video/SDL_egl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/video/SDL_egl.c b/src/video/SDL_egl.c index a8a1485bb..189ae63d1 100644 --- a/src/video/SDL_egl.c +++ b/src/video/SDL_egl.c @@ -231,6 +231,7 @@ SDL_EGL_GetProcAddress(_THIS, const char *proc) retval = _this->egl_data->eglGetProcAddress(proc); } + #ifndef __EMSCRIPTEN__ /* LoadFunction isn't needed on Emscripten and will call dlsym(), causing other problems. */ /* Try SDL_LoadFunction() first for EGL <= 1.4, or as a fallback for >= 1.5. */ if (!retval) { static char procname[64]; @@ -242,8 +243,9 @@ SDL_EGL_GetProcAddress(_THIS, const char *proc) retval = SDL_LoadFunction(_this->egl_data->egl_dll_handle, procname); } } + #endif - /* Try eglGetProcAddress if we on <= 1.4 and still searching... */ + /* Try eglGetProcAddress if we're on <= 1.4 and still searching... */ if (!retval && !is_egl_15_or_later && _this->egl_data->eglGetProcAddress) { retval = _this->egl_data->eglGetProcAddress(proc); if (retval) {