summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp17
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.h2
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.cpp4
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/xcb_egl.pro5
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 \