diff --git a/src/video/uikit/SDL_uikitopengles.m b/src/video/uikit/SDL_uikitopengles.m index b27b3ca93..0401ff8e5 100644 --- a/src/video/uikit/SDL_uikitopengles.m +++ b/src/video/uikit/SDL_uikitopengles.m @@ -104,6 +104,11 @@ SDL_GLContext UIKit_GL_CreateContext(_THIS, SDL_Window * window) SDL_DisplayData *displaydata = display->driverdata; SDL_DisplayModeData *displaymodedata = display->current_mode.driverdata; UIWindow *uiwindow = data->uiwindow; + EAGLSharegroup *share_group = nil; + + if (_this->gl_config.share_with_current_context) { + share_group = [((SDL_uikitopenglview *) SDL_GL_GetCurrentContext() sharegroup]; + } /* construct our view, passing in SDL's OpenGL configuration data */ CGRect frame; @@ -121,7 +126,8 @@ SDL_GLContext UIKit_GL_CreateContext(_THIS, SDL_Window * window) aBits: _this->gl_config.alpha_size depthBits: _this->gl_config.depth_size stencilBits: _this->gl_config.stencil_size - majorVersion: _this->gl_config.major_version]; + majorVersion: _this->gl_config.major_version + shareGroup: share_group]; if (!view) { return NULL; } diff --git a/src/video/uikit/SDL_uikitopenglview.h b/src/video/uikit/SDL_uikitopenglview.h index b29cca2c5..344ad6a5e 100644 --- a/src/video/uikit/SDL_uikitopenglview.h +++ b/src/video/uikit/SDL_uikitopenglview.h @@ -67,7 +67,8 @@ aBits:(int)aBits depthBits:(int)depthBits stencilBits:(int)stencilBits - majorVersion:(int)majorVersion; + majorVersion:(int)majorVersion + shareGroup:(EAGLSharegroup*)shareGroup; - (void)updateFrame; diff --git a/src/video/uikit/SDL_uikitopenglview.m b/src/video/uikit/SDL_uikitopenglview.m index 6ca5162d9..9f3dc136a 100644 --- a/src/video/uikit/SDL_uikitopenglview.m +++ b/src/video/uikit/SDL_uikitopenglview.m @@ -47,6 +47,7 @@ depthBits:(int)depthBits stencilBits:(int)stencilBits majorVersion:(int)majorVersion + shareGroup:(EAGLSharegroup*)shareGroup { depthBufferFormat = 0; @@ -71,9 +72,9 @@ [NSNumber numberWithBool: retained], kEAGLDrawablePropertyRetainedBacking, colorFormat, kEAGLDrawablePropertyColorFormat, nil]; if (majorVersion > 1) { - context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES2]; + context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2 sharegroup:shareGroup]; } else { - context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES1]; + context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1 sharegroup:shareGroup]; } if (!context || ![EAGLContext setCurrentContext:context]) { [self release];