Fix T58250: crash starting Blender on X11 without OpenGL 3.3.
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Thu, 3 Jan 2019 15:43:09 +0000 (16:43 +0100)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Thu, 3 Jan 2019 15:43:09 +0000 (16:43 +0100)
Instead display an error message and exit.

intern/ghost/intern/GHOST_ContextGLX.cpp
intern/ghost/intern/GHOST_SystemWin32.cpp
intern/ghost/intern/GHOST_WindowWin32.cpp

index 815189b..8f418e4 100644 (file)
@@ -298,7 +298,7 @@ const bool GLXEW_ARB_create_context_robustness =
        }
        else {
                /* Don't create legacy context */
-               fprintf(stderr, "Warning! GLX_ARB_create_context not available.\n");
+               fprintf(stderr, "Error! GLX_ARB_create_context not available.\n");
        }
 
        GHOST_TSuccess success;
@@ -328,10 +328,7 @@ const bool GLXEW_ARB_create_context_robustness =
                version = glGetString(GL_VERSION);
 
                if (!version || version[0] < '3' || ((version[0] == '3') && (version[2] < '3'))) {
-                       fprintf(stderr, "Error! Blender requires OpenGL 3.3 to run. Try updating your drivers.\n");
-                       fflush(stderr);
-                       /* ugly, but we get crashes unless a whole bunch of systems are patched. */
-                       exit(0);
+                       success = GHOST_kFailure;
                }
                else
                        success = GHOST_kSuccess;
@@ -341,6 +338,14 @@ const bool GLXEW_ARB_create_context_robustness =
                success = GHOST_kFailure;
        }
 
+       if (success == GHOST_kFailure) {
+               fprintf(stderr, "Error! Unsupported graphics driver.\n");
+               fprintf(stderr, "Blender requires a graphics driver with at least OpenGL 3.3 support.\n");
+               fprintf(stderr, "The program will now close.\n");
+               fflush(stderr);
+               /* ugly, but we get crashes unless a whole bunch of systems are patched. */
+               exit(1);
+       }
 
        GHOST_X11_ERROR_HANDLERS_RESTORE(handler_store);
 
index bcf7d4e..00852c1 100644 (file)
@@ -361,7 +361,7 @@ GHOST_IContext *GHOST_SystemWin32::createOffscreenContext()
                                NULL,
                                "Blender requires a graphics driver with at least OpenGL 3.3 support.\n\n"
                                "The program will now close.",
-                               "Blender - Unsupported Graphics Driver!",
+                               "Blender - Unsupported Graphics Driver",
                                MB_OK | MB_ICONERROR);
                        delete context;
                        exit();
index 8cd943d..34b813c 100644 (file)
@@ -673,7 +673,7 @@ GHOST_Context *GHOST_WindowWin32::newDrawingContext(GHOST_TDrawingContextType ty
                                m_hWnd,
                                "Blender requires a graphics driver with at least OpenGL 3.3 support.\n\n"
                                "The program will now close.",
-                               "Blender - Unsupported Graphics Driver!",
+                               "Blender - Unsupported Graphics Driver",
                                MB_OK | MB_ICONERROR);
                        delete context;
                        exit(0);