소스 검색

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

Fixes Bugzilla #2615.
Ryan C. Gordon 10 년 전
부모
커밋
aba4d78384
1개의 변경된 파일7개의 추가작업 그리고 7개의 파일을 삭제
  1. 7 7
      src/video/SDL_video.c

+ 7 - 7
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();