diff options
author | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2015-02-17 12:35:16 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2015-02-17 12:35:29 +0100 |
commit | 393fc2d4f5e0cbc6d6b3bd0e3c1624d5f9a15ee5 (patch) | |
tree | 85588778b5cf605bf9f15a48495eea24ef401a92 /src/plugins/platforms/xcb/gl_integrations | |
parent | 50e2bc2aa0f46562936a3137c15a2c9b4f67afde (diff) | |
parent | b63c721a0e8d637dd2a34cc5d335195349443366 (diff) |
Merge remote-tracking branch 'origin/dev' into 5.5
Needed due to license header patch.
Change-Id: Id7e30490132a7c487687a0a376419e9f9b97ea41
Diffstat (limited to 'src/plugins/platforms/xcb/gl_integrations')
4 files changed, 16 insertions, 12 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 e82a24539e..16d32b3235 100644 --- a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp +++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp @@ -57,13 +57,7 @@ QXcbEglIntegration::~QXcbEglIntegration() bool QXcbEglIntegration::initialize(QXcbConnection *connection) { m_connection = connection; - -#ifdef USE_XCB_XLIB - Display *dpy = (Display *)m_connection->xlib_display(); -#else - EGLNativeDisplayType dpy = EGL_DEFAULT_DISPLAY; -#endif - m_egl_display = eglGetDisplay(dpy); + m_egl_display = eglGetDisplay(reinterpret_cast<EGLNativeDisplayType>(xlib_display())); EGLint major, minor; bool success = eglInitialize(m_egl_display, &major, &minor); @@ -101,4 +95,13 @@ QPlatformOffscreenSurface *QXcbEglIntegration::createPlatformOffscreenSurface(QO return new QEGLPbuffer(eglDisplay(), surface->requestedFormat(), surface); } +void *QXcbEglIntegration::xlib_display() const +{ +#ifdef XCB_USE_XLIB + return m_connection->xlib_display(); +#else + return EGL_DEFAULT_DISPLAY; +#endif +} + QT_END_NAMESPACE diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.h b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.h index d16b8eed6a..1f7fd4fc94 100644 --- a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.h +++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.h @@ -65,7 +65,7 @@ public: bool supportsThreadedOpenGL() const Q_DECL_OVERRIDE { return true; } EGLDisplay eglDisplay() const { return m_egl_display; } - void *xlib_display() const { return m_connection->xlib_display(); } + void *xlib_display() const; private: QXcbConnection *m_connection; EGLDisplay m_egl_display; diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.cpp index 6df57bcfe6..9e5b67438c 100644 --- a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.cpp +++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.cpp @@ -61,6 +61,7 @@ void QXcbEglWindow::resolveFormat() void *QXcbEglWindow::createVisual() { +#ifdef XCB_USE_XLIB Display *xdpy = static_cast<Display *>(m_glIntegration->xlib_display()); VisualID id = QXlibEglIntegration::getCompatibleVisualId(xdpy, m_glIntegration->eglDisplay(), m_config); @@ -72,6 +73,9 @@ void *QXcbEglWindow::createVisual() int matchingCount = 0; visualInfo = XGetVisualInfo(xdpy, VisualIDMask, &visualInfoTemplate, &matchingCount); return visualInfo; +#else + return QXcbWindow::createVisual(); +#endif } void QXcbEglWindow::create() diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/xcb_egl.pro b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/xcb_egl.pro index 082c22821a..28a572a2c9 100644 --- a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/xcb_egl.pro +++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/xcb_egl.pro @@ -9,10 +9,7 @@ include(../gl_integrations_plugin_base.pri) CONFIG += egl -DEFINES += SUPPORT_X11 -#should be removed from sources -DEFINES += XCB_USE_EGL XCB_USE_XLIB - +contains(QT_CONFIG, xcb-xlib): DEFINES += XCB_USE_XLIB HEADERS += \ qxcbeglcontext.h \ |