[Bf-blender-cvs] [3c411f5ba1d] master: Fix T58250: crash starting Blender on X11 without OpenGL 3.3.

Brecht Van Lommel noreply at git.blender.org
Thu Jan 3 16:47:50 CET 2019


Commit: 3c411f5ba1d46b34a7812d9d6101481338a19aec
Author: Brecht Van Lommel
Date:   Thu Jan 3 16:43:09 2019 +0100
Branches: master
https://developer.blender.org/rB3c411f5ba1d46b34a7812d9d6101481338a19aec

Fix T58250: crash starting Blender on X11 without OpenGL 3.3.

Instead display an error message and exit.

===================================================================

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

===================================================================

diff --git a/intern/ghost/intern/GHOST_ContextGLX.cpp b/intern/ghost/intern/GHOST_ContextGLX.cpp
index 815189b9098..8f418e4ab23 100644
--- a/intern/ghost/intern/GHOST_ContextGLX.cpp
+++ b/intern/ghost/intern/GHOST_ContextGLX.cpp
@@ -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);
 
diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp
index bcf7d4e587a..00852c1ad05 100644
--- a/intern/ghost/intern/GHOST_SystemWin32.cpp
+++ b/intern/ghost/intern/GHOST_SystemWin32.cpp
@@ -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();
diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp
index 8cd943d35df..34b813cead3 100644
--- a/intern/ghost/intern/GHOST_WindowWin32.cpp
+++ b/intern/ghost/intern/GHOST_WindowWin32.cpp
@@ -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);



More information about the Bf-blender-cvs mailing list