From 3053d28b74d9d2936cf360294d3cf19f80e13ab4 Mon Sep 17 00:00:00 2001 From: Greg V Date: Wed, 22 Jul 2020 00:59:30 +0300 Subject: [PATCH] Fix GLX glue trying to use NULL display i.e. when a unix platform has a non-GLX context: usually Wayland, but also might be offscreen or maybe EGL-X11. --- src/glue/gl_glx.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/glue/gl_glx.cpp b/src/glue/gl_glx.cpp index 6c039a0a36..007461cbd4 100644 --- a/src/glue/gl_glx.cpp +++ b/src/glue/gl_glx.cpp @@ -236,10 +236,9 @@ static Display * glxglue_get_display(const cc_glglue * currentcontext = NULL) { if (currentcontext && currentcontext->glx.glXGetCurrentDisplay) { - if (glxglue_screen == -1) { - glxglue_screen = XScreenNumberOfScreen( - XDefaultScreenOfDisplay( - (Display*)currentcontext->glx.glXGetCurrentDisplay())); + Display *disp = (Display*)currentcontext->glx.glXGetCurrentDisplay(); + if (glxglue_screen == -1 && disp != NULL) { + glxglue_screen = XScreenNumberOfScreen(XDefaultScreenOfDisplay(disp)); } if (coin_glglue_debug()) { @@ -248,7 +247,7 @@ glxglue_get_display(const cc_glglue * currentcontext = NULL) glxglue_screen); } - return (Display*)currentcontext->glx.glXGetCurrentDisplay(); + return disp; } if ((glxglue_display == NULL) && !glxglue_opendisplay_failed) {