diff options
author | Liang Qi <liang.qi@qt.io> | 2016-09-29 12:58:32 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-09-29 12:58:41 +0200 |
commit | e66d181e659a08d19ab7d144c3ba0619d537de83 (patch) | |
tree | 7367e93797cb9a2a331f0741baed5a1cad2c96b6 /src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp | |
parent | 4758555f3e44af3425f0b691dc38fb40f3c9413d (diff) | |
parent | 75aea3ff5eec4a5c8f4184e14a90f4a5e3a577b0 (diff) |
Merge remote-tracking branch 'origin/5.8' into dev
Change-Id: I3b51bb706e401edfda09a433c67aa58e44f33e83
Diffstat (limited to 'src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp')
-rw-r--r-- | src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp index 079f0466dc..00f64e3c40 100644 --- a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp +++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp @@ -42,6 +42,7 @@ #include "qxcbeglcontext.h" #include <QtGui/QOffscreenSurface> +#include <QtPlatformSupport/private/qeglstreamconvenience_p.h> #include "qxcbeglnativeinterfacehandler.h" @@ -63,7 +64,18 @@ QXcbEglIntegration::~QXcbEglIntegration() bool QXcbEglIntegration::initialize(QXcbConnection *connection) { m_connection = connection; - m_egl_display = eglGetDisplay(reinterpret_cast<EGLNativeDisplayType>(xlib_display())); + + const char *extensions = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS); + + if (extensions && strstr(extensions, "EGL_EXT_platform_x11")) { + QEGLStreamConvenience streamFuncs; + m_egl_display = streamFuncs.get_platform_display(EGL_PLATFORM_X11_KHR, + xlib_display(), + nullptr); + } + + if (!m_egl_display) + m_egl_display = eglGetDisplay(reinterpret_cast<EGLNativeDisplayType>(xlib_display())); EGLint major, minor; bool success = eglInitialize(m_egl_display, &major, &minor); |