diff --git a/src/video/SDL_egl.c b/src/video/SDL_egl.c index 1e66fb7d9..c081a5da2 100644 --- a/src/video/SDL_egl.c +++ b/src/video/SDL_egl.c @@ -340,7 +340,7 @@ SDL_EGL_CreateContext(_THIS, EGLSurface egl_surface) EGL_NONE }; - EGLContext egl_context; + EGLContext egl_context, share_context = EGL_NO_CONTEXT; if (!_this->egl_data) { /* The EGL library wasn't loaded, SDL_GetError() should have info */ @@ -350,11 +350,15 @@ SDL_EGL_CreateContext(_THIS, EGLSurface egl_surface) if (_this->gl_config.major_version) { context_attrib_list[1] = _this->gl_config.major_version; } + + if (_this->gl_config.share_with_current_context) { + share_context = (EGLContext)SDL_GL_GetCurrentContext(); + } egl_context = _this->egl_data->eglCreateContext(_this->egl_data->egl_display, _this->egl_data->egl_config, - EGL_NO_CONTEXT, context_attrib_list); + share_context, context_attrib_list); if (egl_context == EGL_NO_CONTEXT) { SDL_SetError("Could not create EGL context");