From 9db36a714315fbdb1a5bc3b4d99dbb0e8f6d594f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 30 Jun 2020 17:36:11 +0200 Subject: [PATCH] glx: Pull out screen numnber from GLXFBConfig instead of QXcbScreen Change-Id: I6b87bb1c3c501613bc147c5f88e0f2d2222b0a50 Reviewed-by: Laszlo Agocs --- .../xcb/gl_integrations/xcb_glx/qglxintegration.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp index 14f5d975c42..ca9cb4c86a0 100644 --- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp +++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp @@ -473,10 +473,16 @@ void QGLXContext::init(QXcbScreen *screen, QPlatformOpenGLContext *share, const return; } + int screenNumber = 0; + if (glXQueryContext(m_display, context, GLX_SCREEN, &screenNumber) != Success) { + qWarning("QGLXContext: Failed to query screen from the provided context"); + screenNumber = DefaultScreen(m_display); + } + GLXFBConfig *configs; int numConfigs = 0; static const int attribs[] = { GLX_FBCONFIG_ID, configId, None }; - configs = glXChooseFBConfig(m_display, screen->screenNumber(), attribs, &numConfigs); + configs = glXChooseFBConfig(m_display, screenNumber, attribs, &numConfigs); if (!configs || numConfigs < 1) { qWarning("QGLXContext: Failed to find config"); return;