From 8a761a374afb152f0138d01b0a29b180f167263c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 1 Dec 2010 07:15:05 +0000 Subject: quit blender if the first X11 window fails to open. mainly just to avoid a segfault so the user knows its not a bug. --- intern/ghost/intern/GHOST_WindowX11.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_WindowX11.cpp b/intern/ghost/intern/GHOST_WindowX11.cpp index 60e12ff78df..e8b2f6f7358 100644 --- a/intern/ghost/intern/GHOST_WindowX11.cpp +++ b/intern/ghost/intern/GHOST_WindowX11.cpp @@ -176,10 +176,21 @@ GHOST_WindowX11( int attributes[40], i, samples; Atom atoms[2]; int natom; - int glxVersionMajor, glxVersionMinor; // As in GLX major.minor + int glxVersionMajor, glxVersionMinor; // As in GLX major.mino + + /* initialize incase X11 fails to load */ + memset(&m_xtablet, 0, sizeof(m_xtablet)); + m_visual= NULL; if (!glXQueryVersion(m_display, &glxVersionMajor, &glxVersionMinor)) { printf("%s:%d: X11 glXQueryVersion() failed, verify working openGL system!\n", __FILE__, __LINE__); + + /* exit if this is the first window */ + if(s_firstContext==NULL) { + printf("initial window could not find the GLX extension, exit!\n"); + exit(1); + } + return; } @@ -211,6 +222,12 @@ GHOST_WindowX11( if (samples == 0) { /* All options exhausted, cannot continue */ printf("%s:%d: X11 glXChooseVisual() failed, verify working openGL system!\n", __FILE__, __LINE__); + + if(s_firstContext==NULL) { + printf("initial window could not find the GLX extension, exit!\n"); + exit(1); + } + return; } } else { @@ -221,8 +238,6 @@ GHOST_WindowX11( } } - memset(&m_xtablet, 0, sizeof(m_xtablet)); - // Create a bunch of attributes needed to create an X window. -- cgit v1.2.3