Commit 016b02f24c5697e77791d62dd62e6dbd30d092cf

Sam Lantinga 2021-08-10T12:16:55

Fixed build, C89 doesn't allow non-constant static initializers

diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
index 1994c56..d4078c3 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -172,39 +172,6 @@ typedef struct {
     int bytes_per_pixel;
 } SDL_WindowTextureData;
 
-#if SDL_VIDEO_OPENGL
-static SDL_bool
-HasAcceleratedOpenGL()
-{
-    SDL_Window *window;
-    SDL_GLContext context;
-    SDL_bool hasAcceleratedOpenGL = SDL_FALSE;
-
-    window = SDL_CreateWindow("OpenGL test", -32, -32, 32, 32, SDL_WINDOW_OPENGL|SDL_WINDOW_HIDDEN);
-    if (window) {
-        context = SDL_GL_CreateContext(window);
-        if (context) {
-            const GLubyte *(APIENTRY * glGetStringFunc) (GLenum);
-            const char *vendor = NULL;
-
-            glGetStringFunc = SDL_GL_GetProcAddress("glGetString");
-            if (glGetStringFunc) {
-                vendor = (const char *) glGetStringFunc(GL_VENDOR);
-            }
-            /* Add more vendors here at will... */
-            if (vendor &&
-                (SDL_strstr(vendor, "ATI Technologies") ||
-                 SDL_strstr(vendor, "NVIDIA"))) {
-                hasAcceleratedOpenGL = SDL_TRUE;
-            }
-            SDL_GL_DeleteContext(context);
-        }
-        SDL_DestroyWindow(window);
-    }
-    return hasAcceleratedOpenGL;
-}
-#endif /* SDL_VIDEO_OPENGL */
-
 static SDL_bool
 ShouldUseTextureFramebuffer()
 {
@@ -243,8 +210,33 @@ ShouldUseTextureFramebuffer()
 #elif defined(__LINUX__)
     /* Properly configured OpenGL drivers are faster than MIT-SHM */
 #if SDL_VIDEO_OPENGL
+    /* Ugh, find a way to cache this value! */
     {
-        static SDL_bool hasAcceleratedOpenGL = HasAcceleratedOpenGL();
+        SDL_Window *window;
+        SDL_GLContext context;
+        SDL_bool hasAcceleratedOpenGL = SDL_FALSE;
+
+        window = SDL_CreateWindow("OpenGL test", -32, -32, 32, 32, SDL_WINDOW_OPENGL|SDL_WINDOW_HIDDEN);
+        if (window) {
+            context = SDL_GL_CreateContext(window);
+            if (context) {
+                const GLubyte *(APIENTRY * glGetStringFunc) (GLenum);
+                const char *vendor = NULL;
+
+                glGetStringFunc = SDL_GL_GetProcAddress("glGetString");
+                if (glGetStringFunc) {
+                    vendor = (const char *) glGetStringFunc(GL_VENDOR);
+                }
+                /* Add more vendors here at will... */
+                if (vendor &&
+                    (SDL_strstr(vendor, "ATI Technologies") ||
+                     SDL_strstr(vendor, "NVIDIA"))) {
+                    hasAcceleratedOpenGL = SDL_TRUE;
+                }
+                SDL_GL_DeleteContext(context);
+            }
+            SDL_DestroyWindow(window);
+        }
         return hasAcceleratedOpenGL;
     }
 #elif SDL_VIDEO_OPENGL_ES || SDL_VIDEO_OPENGL_ES2