From 34f095e0985d89e5839424756af856a90873294c Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Sun, 10 Apr 2016 22:07:10 -0300 Subject: [PATCH] iOS: Fixed SDL_GL_CreateContext crashing instead of returning null when a GLES3 context is requested on iOS 6 and older. --- src/video/uikit/SDL_uikitopengles.m | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/video/uikit/SDL_uikitopengles.m b/src/video/uikit/SDL_uikitopengles.m index 4bca17817cfa7..461ff9b8065ac 100644 --- a/src/video/uikit/SDL_uikitopengles.m +++ b/src/video/uikit/SDL_uikitopengles.m @@ -140,10 +140,19 @@ void UIKit_GL_SwapWindow(_THIS, SDL_Window * window) EAGLSharegroup *sharegroup = nil; CGFloat scale = 1.0; int samples = 0; + int major = _this->gl_config.major_version; + int minor = _this->gl_config.minor_version; /* The EAGLRenderingAPI enum values currently map 1:1 to major GLES * versions. */ - EAGLRenderingAPI api = _this->gl_config.major_version; + EAGLRenderingAPI api = major; + + /* iOS currently doesn't support GLES >3.0. iOS 6 also only supports up + * to GLES 2.0. */ + if (major > 3 || (major == 3 && (minor > 0 || !UIKit_IsSystemVersionAtLeast(7.0)))) { + SDL_SetError("OpenGL ES %d.%d context could not be created", major, minor); + return NULL; + } if (_this->gl_config.multisamplebuffers > 0) { samples = _this->gl_config.multisamplesamples;