iOS: Fixed SDL_GL_CreateContext crashing instead of returning null when a GLES3 context is requested on iOS 6 and older.
authorAlex Szpakowski <slime73@gmail.com>
Sun, 10 Apr 2016 22:07:10 -0300
changeset 10143 14719cd1bde2
parent 10142 bc8ac6c0cd98
child 10144 aa9904a56acf
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
--- a/src/video/uikit/SDL_uikitopengles.m	Mon Apr 04 22:49:13 2016 -0400
+++ b/src/video/uikit/SDL_uikitopengles.m	Sun Apr 10 22:07:10 2016 -0300
@@ -140,10 +140,19 @@
         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;