Commit aba4d78384de15c002f49d728528c0a352b681bc

Ryan C. Gordon 2015-05-26T10:25:15

Don't look for (and fail without) glGetIntegerv() until we need to. Fixes Bugzilla #2615.

diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
index ceda9a4..dbc3094 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -2793,7 +2793,6 @@ int
 SDL_GL_GetAttribute(SDL_GLattr attr, int *value)
 {
 #if SDL_VIDEO_OPENGL || SDL_VIDEO_OPENGL_ES || SDL_VIDEO_OPENGL_ES2
-    void (APIENTRY *glGetIntegervFunc) (GLenum pname, GLint * params);
     GLenum (APIENTRY *glGetErrorFunc) (void);
     GLenum attrib = 0;
     GLenum error = 0;
@@ -2816,11 +2815,6 @@ SDL_GL_GetAttribute(SDL_GLattr attr, int *value)
     }
 #endif
 
-    glGetIntegervFunc = SDL_GL_GetProcAddress("glGetIntegerv");
-    if (!glGetIntegervFunc) {
-        return SDL_SetError("Failed getting OpenGL glGetIntegerv entry point");
-    }
-
     glGetErrorFunc = SDL_GL_GetProcAddress("glGetError");
     if (!glGetErrorFunc) {
         return SDL_SetError("Failed getting OpenGL glGetError entry point");
@@ -3007,7 +3001,13 @@ SDL_GL_GetAttribute(SDL_GLattr attr, int *value)
     } else
 #endif
     {
-        glGetIntegervFunc(attrib, (GLint *) value);
+        void (APIENTRY *glGetIntegervFunc) (GLenum pname, GLint * params);
+        glGetIntegervFunc = SDL_GL_GetProcAddress("glGetIntegerv");
+        if (glGetIntegervFunc) {
+            glGetIntegervFunc(attrib, (GLint *) value);
+        } else {
+            return SDL_SetError("Failed getting OpenGL glGetIntegerv entry point");
+        }
     }
 
     error = glGetErrorFunc();