summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-07-06 13:52:42 +0200
committerLiang Qi <liang.qi@qt.io>2017-07-06 13:54:25 +0200
commit7f269a5db8b88fbb14ee741f78e726b1a46c7d4d (patch)
treefa63387e6f70187e656dd9e6c4f1cd1b1f96c263 /src/plugins/platforms/xcb
parent9ca3443a37284bedaf74475c26af173b00757178 (diff)
parent03b4838cb51513bd5d2edf76dccc4bc4a1181681 (diff)
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts: .qmake.conf Change-Id: I43531e087bb810889d5c1fbfcdffb29b78804839
Diffstat (limited to 'src/plugins/platforms/xcb')
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/gl_integrations_plugin_base.pri11
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp65
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_glx/xcb_glx.pro7
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection.cpp8
-rw-r--r--src/plugins/platforms/xcb/qxcbimage.cpp4
-rw-r--r--src/plugins/platforms/xcb/qxcbintegration.cpp2
-rw-r--r--src/plugins/platforms/xcb/qxcbintegration.h3
-rw-r--r--src/plugins/platforms/xcb/xcb_qpa_lib.pro9
8 files changed, 43 insertions, 66 deletions
diff --git a/src/plugins/platforms/xcb/gl_integrations/gl_integrations_plugin_base.pri b/src/plugins/platforms/xcb/gl_integrations/gl_integrations_plugin_base.pri
index e6e352a21d..df471f1105 100644
--- a/src/plugins/platforms/xcb/gl_integrations/gl_integrations_plugin_base.pri
+++ b/src/plugins/platforms/xcb/gl_integrations/gl_integrations_plugin_base.pri
@@ -5,19 +5,10 @@ INCLUDEPATH += $$PWD/../
load(qt_build_paths)
-# build with session management support
-qtConfig(xcb-sm) {
- DEFINES += XCB_USE_SM
-}
-
!qtConfig(system-xcb) {
- DEFINES += XCB_USE_RENDER
QMAKE_USE += xcb-static xcb
} else {
qtConfig(xkb): QMAKE_USE += xcb_xkb
- # to support custom cursors with depth > 1
- qtConfig(xcb-render) {
- DEFINES += XCB_USE_RENDER
- }
+ qtConfig(xcb-render): QMAKE_USE += xcb_render
QMAKE_USE += xcb_syslibs
}
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp
index 40103a42d7..377066df61 100644
--- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp
@@ -39,7 +39,7 @@
#include "qxcbglxintegration.h"
-#if defined(XCB_HAS_XCB_GLX)
+#if QT_CONFIG(xcb_glx)
#include <xcb/glx.h>
#endif
@@ -56,37 +56,34 @@
QT_BEGIN_NAMESPACE
-#if defined(XCB_HAS_XCB_GLX) && XCB_GLX_MAJOR_VERSION == 1 && XCB_GLX_MINOR_VERSION < 4
-
-#define XCB_GLX_BUFFER_SWAP_COMPLETE 1
-
-typedef struct xcb_glx_buffer_swap_complete_event_t {
- uint8_t response_type;
- uint8_t pad0;
- uint16_t sequence;
- uint16_t event_type;
- uint8_t pad1[2];
- xcb_glx_drawable_t drawable;
- uint32_t ust_hi;
- uint32_t ust_lo;
- uint32_t msc_hi;
- uint32_t msc_lo;
- uint32_t sbc;
-} xcb_glx_buffer_swap_complete_event_t;
-#endif
-
-#if defined(XCB_USE_GLX)
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Drawable drawable; /* drawable on which event was requested in event mask */
- int event_type;
- int64_t ust;
- int64_t msc;
- int64_t sbc;
-} QGLXBufferSwapComplete;
+#if QT_CONFIG(xcb_glx)
+ #if XCB_GLX_MAJOR_VERSION == 1 && XCB_GLX_MINOR_VERSION < 4
+ #define XCB_GLX_BUFFER_SWAP_COMPLETE 1
+ typedef struct xcb_glx_buffer_swap_complete_event_t {
+ uint8_t response_type;
+ uint8_t pad0;
+ uint16_t sequence;
+ uint16_t event_type;
+ uint8_t pad1[2];
+ xcb_glx_drawable_t drawable;
+ uint32_t ust_hi;
+ uint32_t ust_lo;
+ uint32_t msc_hi;
+ uint32_t msc_lo;
+ uint32_t sbc;
+ } xcb_glx_buffer_swap_complete_event_t;
+ #endif
+ typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Drawable drawable; /* drawable on which event was requested in event mask */
+ int event_type;
+ int64_t ust;
+ int64_t msc;
+ int64_t sbc;
+ } QGLXBufferSwapComplete;
#endif
QXcbGlxIntegration::QXcbGlxIntegration()
@@ -103,7 +100,7 @@ QXcbGlxIntegration::~QXcbGlxIntegration()
bool QXcbGlxIntegration::initialize(QXcbConnection *connection)
{
m_connection = connection;
-#ifdef XCB_HAS_XCB_GLX
+#if QT_CONFIG(xcb_glx)
const xcb_query_extension_reply_t *reply = xcb_get_extension_data(m_connection->xcb_connection(), &xcb_glx_id);
if (!reply || !reply->present)
@@ -140,7 +137,7 @@ bool QXcbGlxIntegration::handleXcbEvent(xcb_generic_event_t *event, uint respons
XEvent dummy;
event->sequence = LastKnownRequestProcessed(xdisplay);
if (proc(xdisplay, &dummy, (xEvent*)event)) {
-#ifdef XCB_HAS_XCB_GLX
+#if QT_CONFIG(xcb_glx)
// DRI2 clients don't receive GLXBufferSwapComplete events on the wire.
// Instead the GLX event is synthesized from the DRI2BufferSwapComplete event
// by DRI2WireToEvent(). For an application to be able to see the event
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/xcb_glx.pro b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/xcb_glx.pro
index 5af6172301..9d537b18f3 100644
--- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/xcb_glx.pro
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/xcb_glx.pro
@@ -3,14 +3,9 @@ TARGET = qxcb-glx-integration
include(../gl_integrations_plugin_base.pri)
QT += glx_support-private
-#should be removed from the sources
-DEFINES += XCB_USE_GLX
DEFINES += QT_NO_FOREACH
-qtConfig(xcb-glx) {
- DEFINES += XCB_HAS_XCB_GLX
- QMAKE_USE += xcb_glx
-}
+qtConfig(xcb-glx): QMAKE_USE += xcb_glx
!static:qtConfig(dlopen): QMAKE_USE += libdl
diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp
index f0c1659b8e..92b8261bae 100644
--- a/src/plugins/platforms/xcb/qxcbconnection.cpp
+++ b/src/plugins/platforms/xcb/qxcbconnection.cpp
@@ -80,7 +80,7 @@
#include <X11/extensions/XI2proto.h>
#endif
-#ifdef XCB_USE_RENDER
+#if QT_CONFIG(xcb_render)
#include <xcb/render.h>
#endif
@@ -566,7 +566,7 @@ QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGra
#if QT_CONFIG(xkb)
&xcb_xkb_id,
#endif
-#ifdef XCB_USE_RENDER
+#if QT_CONFIG(xcb_render)
&xcb_render_id,
#endif
0
@@ -1467,7 +1467,7 @@ xcb_window_t QXcbConnection::clientLeader()
1,
&m_clientLeader);
-#if !defined(QT_NO_SESSIONMANAGER) && defined(XCB_USE_SM)
+#if QT_CONFIG(xcb_sm)
// If we are session managed, inform the window manager about it
QByteArray session = qGuiApp->sessionId().toLatin1();
if (!session.isEmpty()) {
@@ -1988,7 +1988,7 @@ void QXcbConnection::initializeXFixes()
void QXcbConnection::initializeXRender()
{
-#ifdef XCB_USE_RENDER
+#if QT_CONFIG(xcb_render)
const xcb_query_extension_reply_t *reply = xcb_get_extension_data(m_connection, &xcb_render_id);
if (!reply || !reply->present)
return;
diff --git a/src/plugins/platforms/xcb/qxcbimage.cpp b/src/plugins/platforms/xcb/qxcbimage.cpp
index 67a959d8a4..f3dfa1916b 100644
--- a/src/plugins/platforms/xcb/qxcbimage.cpp
+++ b/src/plugins/platforms/xcb/qxcbimage.cpp
@@ -41,7 +41,7 @@
#include <QtGui/QColor>
#include <QtGui/private/qimage_p.h>
#include <QtGui/private/qdrawhelper_p.h>
-#ifdef XCB_USE_RENDER
+#if QT_CONFIG(xcb_render)
#include <xcb/render.h>
// 'template' is used as a function argument name in xcb_renderutil.h
#define template template_param
@@ -193,7 +193,7 @@ xcb_pixmap_t qt_xcb_XPixmapFromBitmap(QXcbScreen *screen, const QImage &image)
xcb_cursor_t qt_xcb_createCursorXRender(QXcbScreen *screen, const QImage &image,
const QPoint &spot)
{
-#ifdef XCB_USE_RENDER
+#if QT_CONFIG(xcb_render)
xcb_connection_t *conn = screen->xcb_connection();
const int w = image.width();
const int h = image.height();
diff --git a/src/plugins/platforms/xcb/qxcbintegration.cpp b/src/plugins/platforms/xcb/qxcbintegration.cpp
index 4f78f806be..8ba6834565 100644
--- a/src/plugins/platforms/xcb/qxcbintegration.cpp
+++ b/src/plugins/platforms/xcb/qxcbintegration.cpp
@@ -495,7 +495,7 @@ QByteArray QXcbIntegration::wmClass() const
return m_wmClass;
}
-#if !defined(QT_NO_SESSIONMANAGER) && defined(XCB_USE_SM)
+#if QT_CONFIG(xcb_sm)
QPlatformSessionManager *QXcbIntegration::createPlatformSessionManager(const QString &id, const QString &key) const
{
return new QXcbSessionManager(id, key);
diff --git a/src/plugins/platforms/xcb/qxcbintegration.h b/src/plugins/platforms/xcb/qxcbintegration.h
index 561aa9dce6..186b6c5ddd 100644
--- a/src/plugins/platforms/xcb/qxcbintegration.h
+++ b/src/plugins/platforms/xcb/qxcbintegration.h
@@ -40,6 +40,7 @@
#ifndef QXCBINTEGRATION_H
#define QXCBINTEGRATION_H
+#include <QtGui/private/qtguiglobal_p.h>
#include <qpa/qplatformintegration.h>
#include <qpa/qplatformscreen.h>
@@ -106,7 +107,7 @@ public:
QByteArray wmClass() const;
-#if !defined(QT_NO_SESSIONMANAGER) && defined(XCB_USE_SM)
+#if QT_CONFIG(xcb_sm)
QPlatformSessionManager *createPlatformSessionManager(const QString &id, const QString &key) const override;
#endif
diff --git a/src/plugins/platforms/xcb/xcb_qpa_lib.pro b/src/plugins/platforms/xcb/xcb_qpa_lib.pro
index ba748ea14d..6956d04083 100644
--- a/src/plugins/platforms/xcb/xcb_qpa_lib.pro
+++ b/src/plugins/platforms/xcb/xcb_qpa_lib.pro
@@ -61,9 +61,7 @@ qtConfig(xcb-xlib) {
}
}
-# build with session management support
qtConfig(xcb-sm) {
- DEFINES += XCB_USE_SM
QMAKE_USE += x11sm
SOURCES += qxcbsessionmanager.cpp
HEADERS += qxcbsessionmanager.h
@@ -83,16 +81,11 @@ qtConfig(vulkan) {
}
!qtConfig(system-xcb) {
- DEFINES += XCB_USE_RENDER
QMAKE_USE += xcb-static xcb
} else {
LIBS += -lxcb-xinerama ### there is no configure test for this!
qtConfig(xkb): QMAKE_USE += xcb_xkb
- # to support custom cursors with depth > 1
- qtConfig(xcb-render) {
- DEFINES += XCB_USE_RENDER
- QMAKE_USE += xcb_render
- }
+ qtConfig(xcb-render): QMAKE_USE += xcb_render
QMAKE_USE += xcb_syslibs
}