From ca3c32660ce4554f0cb0afac39f43f1168dc7bdd Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 11 Sep 2013 13:29:24 +0200 Subject: Wayland platform: Fix xcomposite-glx for GL apps on Qt 5.2 The surface format was not set properly in the client side integration, leading to mysterious errors e.g. in shader compilation. Change-Id: Id5913def1d82970680d71832ac5fadf87e0956c2 Reviewed-by: Andy Nichols --- .../qwaylandxcompositeglxcontext.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/plugins/platforms/qwayland-xcomposite-glx/qwaylandxcompositeglxcontext.cpp b/src/plugins/platforms/qwayland-xcomposite-glx/qwaylandxcompositeglxcontext.cpp index 6854dc3b..d3101945 100644 --- a/src/plugins/platforms/qwayland-xcomposite-glx/qwaylandxcompositeglxcontext.cpp +++ b/src/plugins/platforms/qwayland-xcomposite-glx/qwaylandxcompositeglxcontext.cpp @@ -50,11 +50,21 @@ QT_BEGIN_NAMESPACE QWaylandXCompositeGLXContext::QWaylandXCompositeGLXContext(const QSurfaceFormat &format, QPlatformOpenGLContext *share, Display *display, int screen) - : m_display(display) + : m_display(display), + m_format(format) { qDebug("creating XComposite-GLX context"); + + if (m_format.renderableType() == QSurfaceFormat::DefaultRenderableType) + m_format.setRenderableType(QSurfaceFormat::OpenGL); + + if (m_format.renderableType() != QSurfaceFormat::OpenGL) { + qWarning("Unsupported renderable type"); + return; + } + GLXContext shareContext = share ? static_cast(share)->m_context : 0; - GLXFBConfig config = qglx_findConfig(display, screen, format, GLX_WINDOW_BIT | GLX_PIXMAP_BIT); + GLXFBConfig config = qglx_findConfig(display, screen, m_format, GLX_WINDOW_BIT | GLX_PIXMAP_BIT); XVisualInfo *visualInfo = glXGetVisualFromFBConfig(display, config); m_context = glXCreateContext(display, visualInfo, shareContext, true); qglx_surfaceFormatFromGLXFBConfig(&m_format, display, config, m_context); -- cgit v1.2.1