From c344b734f4c13d30b95b2a4e4a7d774bd4d26f24 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Sun, 19 Jul 2015 19:56:16 -0300 Subject: [PATCH] iOS: Avoid generating an OpenGL error (but still fail to create the context) if the specified MSAA sample count is unsupported. --- src/video/uikit/SDL_uikitopenglview.m | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/video/uikit/SDL_uikitopenglview.m b/src/video/uikit/SDL_uikitopenglview.m index b0b2e9df5..5b8e9cc38 100644 --- a/src/video/uikit/SDL_uikitopenglview.m +++ b/src/video/uikit/SDL_uikitopenglview.m @@ -84,6 +84,18 @@ return nil; } + if (samples > 0) { + GLint maxsamples = 0; + glGetIntegerv(GL_MAX_SAMPLES, &maxsamples); + + /* Verify that the sample count is supported before creating any + * multisample Renderbuffers, to avoid generating GL errors. */ + if (samples > maxsamples) { + SDL_SetError("Failed creating OpenGL ES framebuffer: Unsupported MSAA sample count"); + return nil; + } + } + if (sRGB) { /* sRGB EAGL drawable support was added in iOS 7. */ if (UIKit_IsSystemVersionAtLeast(7.0)) { @@ -150,11 +162,6 @@ glRenderbufferStorageMultisample(GL_RENDERBUFFER, samples, colorBufferFormat, backingWidth, backingHeight); glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, msaaRenderbuffer); - - if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { - SDL_SetError("Failed creating OpenGL ES framebuffer: Unsupported MSAA sample count"); - return nil; - } } if (useDepthBuffer || useStencilBuffer) {