Skip to content
Permalink
Browse files

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.
  • Loading branch information
icculus committed Mar 20, 2020
1 parent f7c9502 commit 90f9e8f8b69cb4bb9124fbc829adc74dd6fd5201
Showing with 3 additions and 1 deletion.
  1. +3 −1 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) {

0 comments on commit 90f9e8f

Please sign in to comment.