diff options
32 files changed, 232 insertions, 208 deletions
@@ -43,7 +43,7 @@ examples/wayland/server-buffer/compositor/qwayland-server-*.h examples/wayland/server-buffer/compositor/*-server-protocol.h examples/wayland/server-buffer/compositor/*-protocol.c examples/wayland/subsurface/subsurface -src/client/qwayland*.cpp +src/client/qwayland-*.cpp src/client/*-protocol.c src/client/QtWaylandClient.version src/client/QtWaylandClient.version.in diff --git a/src/client/client.pro b/src/client/client.pro index 4ad32c12..edaff771 100644 --- a/src/client/client.pro +++ b/src/client/client.pro @@ -1,18 +1,9 @@ TARGET = QtWaylandClient +MODULE = waylandclient + QT += core-private gui-private QT_FOR_PRIVATE += platformsupport-private -MODULE=waylandclient -MODULE_PLUGIN_TYPES = \ - wayland-graphics-integration-client \ - wayland-inputdevice-integration \ - wayland-decoration-client \ - wayland-shell-integration - -CONFIG += generated_privates - -load(qt_module) - # We have a bunch of C code with casts, so we can't have this option QMAKE_CXXFLAGS_WARN_ON -= -Wcast-qual @@ -25,19 +16,19 @@ CONFIG += link_pkgconfig qpa/genericunixfontdatabase wayland-scanner config_xkbcommon { !contains(QT_CONFIG, no-pkg-config) { - PKGCONFIG += xkbcommon + PKGCONFIG_PRIVATE += xkbcommon } else { - LIBS += -lxkbcommon + LIBS_PRIVATE += -lxkbcommon } } else { DEFINES += QT_NO_WAYLAND_XKB } !contains(QT_CONFIG, no-pkg-config) { - PKGCONFIG += wayland-client wayland-cursor + PKGCONFIG_PRIVATE += wayland-client wayland-cursor contains(QT_CONFIG, glib): PKGCONFIG_PRIVATE += glib-2.0 } else { - LIBS += -lwayland-client -lwayland-cursor $$QT_LIBS_GLIB + LIBS_PRIVATE += -lwayland-client -lwayland-cursor $$QT_LIBS_GLIB } INCLUDEPATH += $$PWD/../shared @@ -82,6 +73,7 @@ SOURCES += qwaylandintegration.cpp \ qwaylandinputcontext.cpp \ qwaylanddatadevice.cpp \ qwaylandshm.cpp \ + qwaylandbuffer.cpp \ HEADERS += qwaylandintegration_p.h \ qwaylandnativeinterface_p.h \ @@ -119,3 +111,11 @@ HEADERS += qwaylandintegration_p.h \ include(hardwareintegration/hardwareintegration.pri) include(shellintegration/shellintegration.pri) include(inputdeviceintegration/inputdeviceintegration.pri) + +CONFIG += generated_privates +MODULE_PLUGIN_TYPES = \ + wayland-graphics-integration-client \ + wayland-inputdevice-integration \ + wayland-decoration-client \ + wayland-shell-integration +load(qt_module) diff --git a/src/client/qwaylandbuffer.cpp b/src/client/qwaylandbuffer.cpp new file mode 100644 index 00000000..c6aace2c --- /dev/null +++ b/src/client/qwaylandbuffer.cpp @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Copyright (C) 2015 Giulio Camuffo. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the plugins of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL21$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qwaylandbuffer_p.h" + +#include <QDebug> + +QT_BEGIN_NAMESPACE + +namespace QtWaylandClient { + +QWaylandBuffer::QWaylandBuffer() + : mBuffer(0) + , mBusy(false) +{ +} + +QWaylandBuffer::~QWaylandBuffer() +{ + if (mBuffer) + wl_buffer_destroy(mBuffer); +} + +void QWaylandBuffer::init(wl_buffer *buf) +{ + mBuffer = buf; + wl_buffer_add_listener(buf, &listener, this); +} + +void QWaylandBuffer::release(void *data, wl_buffer *) +{ + static_cast<QWaylandBuffer *>(data)->mBusy = false; +} + +const wl_buffer_listener QWaylandBuffer::listener = { + QWaylandBuffer::release +}; + +} + +QT_END_NAMESPACE diff --git a/src/client/qwaylandbuffer_p.h b/src/client/qwaylandbuffer_p.h index 631439f7..7dd920ac 100644 --- a/src/client/qwaylandbuffer_p.h +++ b/src/client/qwaylandbuffer_p.h @@ -65,17 +65,25 @@ namespace QtWaylandClient { class Q_WAYLAND_CLIENT_EXPORT QWaylandBuffer { public: - QWaylandBuffer() - : mBuffer(0) - { - } - virtual ~QWaylandBuffer() { } + QWaylandBuffer(); + virtual ~QWaylandBuffer(); + void init(wl_buffer *buf); + wl_buffer *buffer() {return mBuffer;} virtual QSize size() const = 0; virtual int scale() const { return 1; } + void setBusy() { mBusy = true; } + bool busy() const { return mBusy; } + protected: struct wl_buffer *mBuffer; + +private: + bool mBusy; + + static void release(void *data, wl_buffer *); + static const wl_buffer_listener listener; }; } diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp index 44a21658..8f0e32f6 100644 --- a/src/client/qwaylandinputdevice.cpp +++ b/src/client/qwaylandinputdevice.cpp @@ -259,6 +259,8 @@ void QWaylandInputDevice::handleWindowDestroyed(QWaylandWindow *window) mKeyboard->mFocus = 0; mKeyboard->stopRepeat(); } + if (mTouch && window == mTouch->mFocus) + mTouch->mFocus = 0; } void QWaylandInputDevice::setDataDevice(QWaylandDataDevice *device) @@ -745,6 +747,9 @@ void QWaylandInputDevice::Touch::touch_down(uint32_t serial, wl_fixed_t x, wl_fixed_t y) { + if (!surface) + return; + mParent->mTime = time; mParent->mSerial = serial; mFocus = QWaylandWindow::fromWlSurface(surface); diff --git a/src/client/qwaylandshmbackingstore.cpp b/src/client/qwaylandshmbackingstore.cpp index 758faab6..ea1fe7ba 100644 --- a/src/client/qwaylandshmbackingstore.cpp +++ b/src/client/qwaylandshmbackingstore.cpp @@ -46,6 +46,7 @@ #include <QtCore/qdebug.h> #include <QtGui/QPainter> #include <QMutexLocker> +#include <QLoggingCategory> #include <wayland-client.h> #include <wayland-client-protocol.h> @@ -59,9 +60,14 @@ QT_BEGIN_NAMESPACE namespace QtWaylandClient { +Q_DECLARE_LOGGING_CATEGORY(logCategory) + +Q_LOGGING_CATEGORY(logCategory, "qt.qpa.wayland.backingstore") + QWaylandShmBuffer::QWaylandShmBuffer(QWaylandDisplay *display, const QSize &size, QImage::Format format, int scale) - : mShmPool(0) + : QWaylandBuffer() + , mShmPool(0) , mMarginsImage(0) { int stride = size.width() * 4; @@ -97,8 +103,8 @@ QWaylandShmBuffer::QWaylandShmBuffer(QWaylandDisplay *display, mImage.setDevicePixelRatio(qreal(scale)); mShmPool = wl_shm_create_pool(shm->object(), fd, alloc); - mBuffer = wl_shm_pool_create_buffer(mShmPool,0, size.width(), size.height(), - stride, wl_format); + init(wl_shm_pool_create_buffer(mShmPool,0, size.width(), size.height(), + stride, wl_format)); close(fd); } @@ -107,8 +113,6 @@ QWaylandShmBuffer::~QWaylandShmBuffer(void) delete mMarginsImage; if (mImage.constBits()) munmap((void *) mImage.constBits(), mImage.byteCount()); - if (mBuffer) - wl_buffer_destroy(mBuffer); if (mShmPool) wl_shm_pool_destroy(mShmPool); } @@ -146,9 +150,7 @@ QWaylandShmBackingStore::QWaylandShmBackingStore(QWindow *window) , mDisplay(QWaylandScreen::waylandScreenFromWindow(window)->display()) , mFrontBuffer(0) , mBackBuffer(0) - , mFrontBufferIsDirty(false) , mPainting(false) - , mFrameCallback(0) { } @@ -158,16 +160,10 @@ QWaylandShmBackingStore::~QWaylandShmBackingStore() if (QWaylandWindow *w = waylandWindow()) w->setBackingStore(Q_NULLPTR); - if (mFrameCallback) - wl_callback_destroy(mFrameCallback); - // if (mFrontBuffer == waylandWindow()->attached()) // waylandWindow()->attach(0); - if (mFrontBuffer != mBackBuffer) - delete mFrontBuffer; - - delete mBackBuffer; + qDeleteAll(mBuffers); } QPaintDevice *QWaylandShmBackingStore::paintDevice() @@ -180,16 +176,7 @@ void QWaylandShmBackingStore::beginPaint(const QRegion &) mPainting = true; ensureSize(); - QWaylandWindow *window = waylandWindow(); - QWaylandSubSurface *sub = window->subSurfaceWindow(); - - bool waiting = window->attached() && mBackBuffer == window->attached() && mFrameCallback; - bool syncSubSurface = sub && sub->isSync(); - if (waiting && !syncSubSurface) { - window->waitForFrameSync(); - } - - window->setCanResize(false); + waylandWindow()->setCanResize(false); } void QWaylandShmBackingStore::endPaint() @@ -200,11 +187,6 @@ void QWaylandShmBackingStore::endPaint() void QWaylandShmBackingStore::hidden() { - QMutexLocker lock(&mMutex); - if (mFrameCallback) { - wl_callback_destroy(mFrameCallback); - mFrameCallback = Q_NULLPTR; - } } void QWaylandShmBackingStore::ensureSize() @@ -231,48 +213,15 @@ void QWaylandShmBackingStore::flush(QWindow *window, const QRegion ®ion, cons mFrontBuffer = mBackBuffer; - QWaylandWindow *w = waylandWindow(); - bool synchModeSubSurface = w->subSurfaceWindow() && w->subSurfaceWindow()->isSync(); - - if (mFrameCallback) { - if (synchModeSubSurface) { - wl_callback_destroy(mFrameCallback); - mFrameCallback = Q_NULLPTR; - } else { - mFrontBufferIsDirty = true; - return; - } - } + QMargins margins = windowDecorationMargins(); - // Dont acquire the frame callback as that will cause beginPaint - // to block in waiting for frame sync since the damage will trigger - // its own sync request - if (!synchModeSubSurface) { - mFrameCallback = w->frame(); - wl_callback_add_listener(mFrameCallback, &frameCallbackListener, this); - } + waylandWindow()->attachOffset(mFrontBuffer); + mFrontBuffer->setBusy(); - QMargins margins = windowDecorationMargins(); - bool damageAll = false; - if (w->attached() != mFrontBuffer) { - delete w->attached(); - damageAll = true; - } - w->attachOffset(mFrontBuffer); - - if (damageAll) { - //need to damage it all, otherwise the attach offset may screw up - w->damage(QRect(QPoint(0,0), window->size())); - } else { - QVector<QRect> rects = region.rects(); - for (int i = 0; i < rects.size(); i++) { - QRect rect = rects.at(i); - rect.translate(margins.left(),margins.top()); - w->damage(rect); - } - } - w->commit(); - mFrontBufferIsDirty = false; + QVector<QRect> rects = region.rects(); + foreach (const QRect &rect, rects) + waylandWindow()->damage(rect.translated(margins.left(), margins.top())); + waylandWindow()->commit(); } void QWaylandShmBackingStore::resize(const QSize &size, const QRegion &) @@ -280,22 +229,65 @@ void QWaylandShmBackingStore::resize(const QSize &size, const QRegion &) mRequestedSize = size; } +QWaylandShmBuffer *QWaylandShmBackingStore::getBuffer(const QSize &size) +{ + foreach (QWaylandShmBuffer *b, mBuffers) { + if (!b->busy()) { + if (b->size() == size) { + return b; + } else { + mBuffers.removeOne(b); + if (mBackBuffer == b) + mBackBuffer = 0; + delete b; + } + } + } + + static const int MAX_BUFFERS = 5; + if (mBuffers.count() < MAX_BUFFERS) { + QImage::Format format = QPlatformScreen::platformScreenForWindow(window())->format(); + QWaylandShmBuffer *b = new QWaylandShmBuffer(mDisplay, size, format, waylandWindow()->scale()); + mBuffers.prepend(b); + return b; + } + return 0; +} + void QWaylandShmBackingStore::resize(const QSize &size) { QMargins margins = windowDecorationMargins(); int scale = waylandWindow()->scale(); QSize sizeWithMargins = (size + QSize(margins.left()+margins.right(),margins.top()+margins.bottom())) * scale; - QImage::Format format = QPlatformScreen::platformScreenForWindow(window())->format(); - - if (mBackBuffer != NULL && mBackBuffer->size() == sizeWithMargins) - return; - - if (mBackBuffer != mFrontBuffer) { - delete mBackBuffer; //we delete the attached buffer when we flush + // We look for a free buffer to draw into. If the buffer is not the last buffer we used, + // that is mBackBuffer, and the size is the same we memcpy the old content into the new + // buffer so that QPainter is happy to find the stuff it had drawn before. If the new + // buffer has a different size it needs to be redrawn completely anyway, and if the buffer + // is the same the stuff is there already. + // You can exercise the different codepaths with weston, switching between the gl and the + // pixman renderer. With the gl renderer release events are sent early so we can effectively + // run single buffered, while with the pixman renderer we have to use two. + QWaylandShmBuffer *buffer = getBuffer(sizeWithMargins); + while (!buffer) { + qCDebug(logCategory, "QWaylandShmBackingStore: stalling waiting for a buffer to be released from the compositor..."); + + mDisplay->blockingReadEvents(); + buffer = getBuffer(sizeWithMargins); } - mBackBuffer = new QWaylandShmBuffer(mDisplay, sizeWithMargins, format, scale); + int oldSize = mBackBuffer ? mBackBuffer->image()->byteCount() : 0; + // mBackBuffer may have been deleted here but if so it means its size was different so we wouldn't copy it anyway + if (mBackBuffer != buffer && oldSize == buffer->image()->byteCount()) { + memcpy(buffer->image()->bits(), mBackBuffer->image()->constBits(), buffer->image()->byteCount()); + } + mBackBuffer = buffer; + // ensure the new buffer is at the beginning of the list so next time getBuffer() will pick + // it if possible + if (mBuffers.first() != buffer) { + mBuffers.removeOne(buffer); + mBuffers.prepend(buffer); + } if (windowDecoration() && window()->isVisible()) windowDecoration()->update(); @@ -369,36 +361,6 @@ QImage QWaylandShmBackingStore::toImage() const } #endif // QT_NO_OPENGL -void QWaylandShmBackingStore::done(void *data, wl_callback *callback, uint32_t time) -{ - Q_UNUSED(time); - QWaylandShmBackingStore *self = - static_cast<QWaylandShmBackingStore *>(data); - if (callback != self->mFrameCallback) // others, like QWaylandWindow, may trigger callbacks too - return; - QMutexLocker lock(&self->mMutex); - QWaylandWindow *window = self->waylandWindow(); - wl_callback_destroy(self->mFrameCallback); - self->mFrameCallback = 0; - - - if (self->mFrontBufferIsDirty && !self->mPainting) { - self->mFrontBufferIsDirty = false; - self->mFrameCallback = wl_surface_frame(window->object()); - wl_callback_add_listener(self->mFrameCallback,&self->frameCallbackListener,self); - if (self->mFrontBuffer != window->attached()) { - delete window->attached(); - } - window->attachOffset(self->mFrontBuffer); - window->damage(QRect(QPoint(0,0),window->geometry().size())); - window->commit(); - } -} - -const struct wl_callback_listener QWaylandShmBackingStore::frameCallbackListener = { - QWaylandShmBackingStore::done -}; - } QT_END_NAMESPACE diff --git a/src/client/qwaylandshmbackingstore_p.h b/src/client/qwaylandshmbackingstore_p.h index 44047909..e403af31 100644 --- a/src/client/qwaylandshmbackingstore_p.h +++ b/src/client/qwaylandshmbackingstore_p.h @@ -57,6 +57,7 @@ #include <QtGui/QImage> #include <qpa/qplatformwindow.h> #include <QMutex> +#include <QLinkedList> QT_BEGIN_NAMESPACE @@ -113,22 +114,17 @@ public: private: void updateDecorations(); + QWaylandShmBuffer *getBuffer(const QSize &size); QWaylandDisplay *mDisplay; + QLinkedList<QWaylandShmBuffer *> mBuffers; QWaylandShmBuffer *mFrontBuffer; QWaylandShmBuffer *mBackBuffer; - bool mFrontBufferIsDirty; bool mPainting; QMutex mMutex; QSize mRequestedSize; Qt::WindowFlags mCurrentWindowFlags; - - static const struct wl_callback_listener frameCallbackListener; - static void done(void *data, - struct wl_callback *callback, - uint32_t time); - struct wl_callback *mFrameCallback; }; } diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp index 9ad90293..eebc9bda 100644 --- a/src/client/qwaylandwindow.cpp +++ b/src/client/qwaylandwindow.cpp @@ -81,7 +81,6 @@ QWaylandWindow::QWaylandWindow(QWindow *window) , mMouseEventsInContentArea(false) , mMousePressedInContentArea(Qt::NoButton) , m_cursorShape(Qt::ArrowCursor) - , mBuffer(0) , mWaitingForFrameSync(false) , mFrameCallback(0) , mRequestResizeSent(false) @@ -432,9 +431,8 @@ void QWaylandWindow::requestResize() void QWaylandWindow::attach(QWaylandBuffer *buffer, int x, int y) { - mBuffer = buffer; - if (mBuffer) - attach(mBuffer->buffer(), x, y); + if (buffer) + attach(buffer->buffer(), x, y); else QtWayland::wl_surface::attach(0, 0, 0); } @@ -445,11 +443,6 @@ void QWaylandWindow::attachOffset(QWaylandBuffer *buffer) mOffset = QPoint(); } -QWaylandBuffer *QWaylandWindow::attached() const -{ - return mBuffer; -} - void QWaylandWindow::damage(const QRect &rect) { //We have to do sync stuff before calling damage, or we might @@ -459,9 +452,7 @@ void QWaylandWindow::damage(const QRect &rect) wl_callback_add_listener(mFrameCallback,&QWaylandWindow::callbackListener,this); mWaitingForFrameSync = true; } - if (mBuffer) { - damage(rect.x(), rect.y(), rect.width(), rect.height()); - } + damage(rect.x(), rect.y(), rect.width(), rect.height()); } const wl_callback_listener QWaylandWindow::callbackListener = { diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h index 30d158d3..c1346e66 100644 --- a/src/client/qwaylandwindow_p.h +++ b/src/client/qwaylandwindow_p.h @@ -214,7 +214,6 @@ protected: Qt::MouseButtons mMousePressedInContentArea; Qt::CursorShape m_cursorShape; - QWaylandBuffer *mBuffer; WId mWindowId; bool mWaitingForFrameSync; struct wl_callback *mFrameCallback; diff --git a/src/compositor/compositor.pro b/src/compositor/compositor.pro index 84f773a6..67c735f9 100644 --- a/src/compositor/compositor.pro +++ b/src/compositor/compositor.pro @@ -1,14 +1,12 @@ -TARGET = QtWaylandCompositor +TARGET = QtWaylandCompositor +MODULE = waylandcompositor + QT = core gui-private qtHaveModule(quick): QT += quick contains(QT_CONFIG, opengl):MODULE_DEFINES = QT_COMPOSITOR_WAYLAND_GL -MODULE=waylandcompositor -MODULE_PLUGIN_TYPES = wayland-graphics-integration-server -load(qt_module) - CONFIG -= precompile_header CONFIG += link_pkgconfig @@ -31,4 +29,6 @@ include ($$PWD/hardware_integration/hardware_integration.pri) include ($$PWD/compositor_api/compositor_api.pri) include ($$PWD/extensions/extensions.pri) - +MODULE_PLUGIN_TYPES = \ + wayland-graphics-integration-server +load(qt_module) diff --git a/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp b/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp index b4f5ca37..f9b6fc1d 100644 --- a/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp +++ b/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp @@ -62,6 +62,7 @@ QWaylandXCompositeEGLWindow::QWaylandXCompositeEGLWindow(QWindow *window, QWayla , m_xWindow(0) , m_config(q_configFromGLFormat(glxIntegration->eglDisplay(), window->format(), true, EGL_WINDOW_BIT | EGL_PIXMAP_BIT)) , m_surface(0) + , mBuffer(0) { } diff --git a/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.h b/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.h index 817abb9a..b4993c5e 100644 --- a/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.h +++ b/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.h @@ -72,6 +72,7 @@ private: Window m_xWindow; EGLConfig m_config; EGLSurface m_surface; + QWaylandBuffer *mBuffer; }; } diff --git a/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxwindow.cpp b/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxwindow.cpp index a6e12071..9cca9e46 100644 --- a/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxwindow.cpp +++ b/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxwindow.cpp @@ -56,6 +56,7 @@ QWaylandXCompositeGLXWindow::QWaylandXCompositeGLXWindow(QWindow *window, QWayla , m_glxIntegration(glxIntegration) , m_xWindow(0) , m_config(qglx_findConfig(glxIntegration->xDisplay(), glxIntegration->screen(), window->format(), GLX_WINDOW_BIT | GLX_PIXMAP_BIT)) + , mBuffer(0) { } diff --git a/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxwindow.h b/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxwindow.h index 78dd3629..c78362d9 100644 --- a/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxwindow.h +++ b/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxwindow.h @@ -71,6 +71,7 @@ private: Window m_xWindow; GLXFBConfig m_config; + QWaylandBuffer *mBuffer; }; } diff --git a/src/plugins/decorations/bradient/bradient.pro b/src/plugins/decorations/bradient/bradient.pro index fd376f4a..0f62db9c 100644 --- a/src/plugins/decorations/bradient/bradient.pro +++ b/src/plugins/decorations/bradient/bradient.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = wayland-decoration-client -load(qt_plugin) - QT += waylandclient-private OTHER_FILES += \ @@ -15,3 +12,5 @@ contains(QT_CONFIG, no-pkg-config) { PKGCONFIG += wayland-client } +PLUGIN_TYPE = wayland-decoration-client +load(qt_plugin) diff --git a/src/plugins/hardwareintegration/client/brcm-egl/brcm-egl.pro b/src/plugins/hardwareintegration/client/brcm-egl/brcm-egl.pro index 6dbe5373..550343cf 100644 --- a/src/plugins/hardwareintegration/client/brcm-egl/brcm-egl.pro +++ b/src/plugins/hardwareintegration/client/brcm-egl/brcm-egl.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = wayland-graphics-integration-client -load(qt_plugin) - QT += waylandclient-private include(../../../../hardwareintegration/client/brcm-egl/brcm-egl.pri) @@ -10,3 +7,5 @@ OTHER_FILES += \ SOURCES += main.cpp +PLUGIN_TYPE = wayland-graphics-integration-client +load(qt_plugin) diff --git a/src/plugins/hardwareintegration/client/drm-egl-server/drm-egl-server.pro b/src/plugins/hardwareintegration/client/drm-egl-server/drm-egl-server.pro index 827228d2..29a48c9e 100644 --- a/src/plugins/hardwareintegration/client/drm-egl-server/drm-egl-server.pro +++ b/src/plugins/hardwareintegration/client/drm-egl-server/drm-egl-server.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = wayland-graphics-integration-client -load(qt_plugin) - # We have a bunch of C code with casts, so we can't have this option QMAKE_CXXFLAGS_WARN_ON -= -Wcast-qual @@ -13,3 +10,5 @@ OTHER_FILES += \ SOURCES += main.cpp +PLUGIN_TYPE = wayland-graphics-integration-client +load(qt_plugin) diff --git a/src/plugins/hardwareintegration/client/libhybris-egl-server/libhybris-egl-server.pro b/src/plugins/hardwareintegration/client/libhybris-egl-server/libhybris-egl-server.pro index 55f98415..d7bf0370 100644 --- a/src/plugins/hardwareintegration/client/libhybris-egl-server/libhybris-egl-server.pro +++ b/src/plugins/hardwareintegration/client/libhybris-egl-server/libhybris-egl-server.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = wayland-graphics-integration-client -load(qt_plugin) - QT += waylandclient-private include(../../../../hardwareintegration/client/libhybris-egl-server/libhybris-egl-server.pri) @@ -10,3 +7,5 @@ OTHER_FILES += \ SOURCES += main.cpp +PLUGIN_TYPE = wayland-graphics-integration-client +load(qt_plugin) diff --git a/src/plugins/hardwareintegration/client/wayland-egl/wayland-egl.pro b/src/plugins/hardwareintegration/client/wayland-egl/wayland-egl.pro index 38989628..076b6af2 100644 --- a/src/plugins/hardwareintegration/client/wayland-egl/wayland-egl.pro +++ b/src/plugins/hardwareintegration/client/wayland-egl/wayland-egl.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = wayland-graphics-integration-client -load(qt_plugin) - QT += waylandclient-private include(../../../../hardwareintegration/client/wayland-egl/wayland-egl.pri) @@ -10,3 +7,5 @@ OTHER_FILES += \ SOURCES += main.cpp +PLUGIN_TYPE = wayland-graphics-integration-client +load(qt_plugin) diff --git a/src/plugins/hardwareintegration/client/xcomposite-egl/xcomposite-egl.pro b/src/plugins/hardwareintegration/client/xcomposite-egl/xcomposite-egl.pro index 1af17866..031d2812 100644 --- a/src/plugins/hardwareintegration/client/xcomposite-egl/xcomposite-egl.pro +++ b/src/plugins/hardwareintegration/client/xcomposite-egl/xcomposite-egl.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = wayland-graphics-integration-client -load(qt_plugin) - # We have a bunch of C code with casts, so we can't have this option QMAKE_CXXFLAGS_WARN_ON -= -Wcast-qual @@ -13,3 +10,5 @@ OTHER_FILES += xcomposite-egl.json SOURCES += \ main.cpp +PLUGIN_TYPE = wayland-graphics-integration-client +load(qt_plugin) diff --git a/src/plugins/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pro b/src/plugins/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pro index 0080150c..eb8e03c7 100644 --- a/src/plugins/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pro +++ b/src/plugins/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = wayland-graphics-integration-client -load(qt_plugin) - QT += waylandclient-private include(../../../../hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri) @@ -10,3 +7,5 @@ OTHER_FILES += xcomposite-glx.json SOURCES += \ main.cpp +PLUGIN_TYPE = wayland-graphics-integration-client +load(qt_plugin) diff --git a/src/plugins/hardwareintegration/compositor/brcm-egl/brcm-egl.pro b/src/plugins/hardwareintegration/compositor/brcm-egl/brcm-egl.pro index 74da1643..e6e39572 100644 --- a/src/plugins/hardwareintegration/compositor/brcm-egl/brcm-egl.pro +++ b/src/plugins/hardwareintegration/compositor/brcm-egl/brcm-egl.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = wayland-graphics-integration-server -load(qt_plugin) - QT = waylandcompositor waylandcompositor-private core-private gui-private OTHER_FILES += brcm-egl.json @@ -9,3 +6,6 @@ SOURCES += \ main.cpp include(../../../../hardwareintegration/compositor/brcm-egl/brcm-egl.pri) + +PLUGIN_TYPE = wayland-graphics-integration-server +load(qt_plugin) diff --git a/src/plugins/hardwareintegration/compositor/drm-egl-server/drm-egl-server.pro b/src/plugins/hardwareintegration/compositor/drm-egl-server/drm-egl-server.pro index 806e1fac..40092a14 100644 --- a/src/plugins/hardwareintegration/compositor/drm-egl-server/drm-egl-server.pro +++ b/src/plugins/hardwareintegration/compositor/drm-egl-server/drm-egl-server.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = wayland-graphics-integration-server -load(qt_plugin) - QT = waylandcompositor waylandcompositor-private core-private gui-private OTHER_FILES += drm-egl-server.json @@ -10,3 +7,5 @@ SOURCES += \ include($PWD/../../../../../hardwareintegration/compositor/drm-egl-server/drm-egl-server.pri) +PLUGIN_TYPE = wayland-graphics-integration-server +load(qt_plugin) diff --git a/src/plugins/hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pro b/src/plugins/hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pro index 7780df50..e21bb3c5 100644 --- a/src/plugins/hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pro +++ b/src/plugins/hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = wayland-graphics-integration-server -load(qt_plugin) - QT = waylandcompositor waylandcompositor-private core-private gui-private OTHER_FILES += libhybris-egl-server.json @@ -10,3 +7,5 @@ SOURCES += \ include($PWD/../../../../../hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pri) +PLUGIN_TYPE = wayland-graphics-integration-server +load(qt_plugin) diff --git a/src/plugins/hardwareintegration/compositor/wayland-egl/wayland-egl.pro b/src/plugins/hardwareintegration/compositor/wayland-egl/wayland-egl.pro index 5704663b..7374a598 100644 --- a/src/plugins/hardwareintegration/compositor/wayland-egl/wayland-egl.pro +++ b/src/plugins/hardwareintegration/compositor/wayland-egl/wayland-egl.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = wayland-graphics-integration-server -load(qt_plugin) - QT = waylandcompositor waylandcompositor-private core-private gui-private platformsupport-private OTHER_FILES += wayland-egl.json @@ -9,3 +6,6 @@ SOURCES += \ main.cpp include(../../../../hardwareintegration/compositor/wayland-egl/wayland-egl.pri) + +PLUGIN_TYPE = wayland-graphics-integration-server +load(qt_plugin) diff --git a/src/plugins/hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pro b/src/plugins/hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pro index 5475f204..fab000e2 100644 --- a/src/plugins/hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pro +++ b/src/plugins/hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = wayland-graphics-integration-server -load(qt_plugin) - QT += waylandcompositor waylandcompositor-private core-private gui-private OTHER_FILES += xcomposite-egl.json @@ -9,3 +6,6 @@ SOURCES += \ main.cpp include(../../../../hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pri) + +PLUGIN_TYPE = wayland-graphics-integration-server +load(qt_plugin) diff --git a/src/plugins/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pro b/src/plugins/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pro index 3441f271..9dee1431 100644 --- a/src/plugins/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pro +++ b/src/plugins/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = wayland-graphics-integration-server -load(qt_plugin) - QT += waylandcompositor waylandcompositor-private core-private gui-private OTHER_FILES += xcomposite-glx.json @@ -9,3 +6,6 @@ SOURCES += \ main.cpp include(../../../../hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pri) + +PLUGIN_TYPE = wayland-graphics-integration-server +load(qt_plugin) diff --git a/src/plugins/platforms/qwayland-brcm-egl/qwayland-brcm-egl.pro b/src/plugins/platforms/qwayland-brcm-egl/qwayland-brcm-egl.pro index 1e28043a..4ff61713 100644 --- a/src/plugins/platforms/qwayland-brcm-egl/qwayland-brcm-egl.pro +++ b/src/plugins/platforms/qwayland-brcm-egl/qwayland-brcm-egl.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = platforms -load(qt_plugin) - QT += waylandclient-private include(../../../hardwareintegration/client/brcm-egl/brcm-egl.pri) @@ -10,3 +7,5 @@ OTHER_FILES += \ SOURCES += main.cpp +PLUGIN_TYPE = platforms +load(qt_plugin) diff --git a/src/plugins/platforms/qwayland-egl/qwayland-egl.pro b/src/plugins/platforms/qwayland-egl/qwayland-egl.pro index 279a7c38..b64a8cc4 100644 --- a/src/plugins/platforms/qwayland-egl/qwayland-egl.pro +++ b/src/plugins/platforms/qwayland-egl/qwayland-egl.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = platforms -load(qt_plugin) - QT += waylandclient-private include(../../../hardwareintegration/client/wayland-egl/wayland-egl.pri) @@ -10,3 +7,5 @@ OTHER_FILES += \ SOURCES += main.cpp +PLUGIN_TYPE = platforms +load(qt_plugin) diff --git a/src/plugins/platforms/qwayland-generic/qwayland-generic.pro b/src/plugins/platforms/qwayland-generic/qwayland-generic.pro index cf42d1eb..5457e9df 100644 --- a/src/plugins/platforms/qwayland-generic/qwayland-generic.pro +++ b/src/plugins/platforms/qwayland-generic/qwayland-generic.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = platforms -load(qt_plugin) - QT += waylandclient-private OTHER_FILES += \ @@ -8,3 +5,5 @@ OTHER_FILES += \ SOURCES += main.cpp +PLUGIN_TYPE = platforms +load(qt_plugin) diff --git a/src/plugins/platforms/qwayland-xcomposite-egl/qwayland-xcomposite-egl.pro b/src/plugins/platforms/qwayland-xcomposite-egl/qwayland-xcomposite-egl.pro index 74a71a57..7c7a3dd2 100644 --- a/src/plugins/platforms/qwayland-xcomposite-egl/qwayland-xcomposite-egl.pro +++ b/src/plugins/platforms/qwayland-xcomposite-egl/qwayland-xcomposite-egl.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = platforms -load(qt_plugin) - QT += waylandclient-private include(../../../hardwareintegration/client/xcomposite-egl/xcomposite-egl.pri) @@ -10,3 +7,5 @@ OTHER_FILES += qwayland-xcomposite-egl.json SOURCES += \ main.cpp +PLUGIN_TYPE = platforms +load(qt_plugin) diff --git a/src/plugins/platforms/qwayland-xcomposite-glx/qwayland-xcomposite-glx.pro b/src/plugins/platforms/qwayland-xcomposite-glx/qwayland-xcomposite-glx.pro index 307ad5ed..c0c12c9d 100644 --- a/src/plugins/platforms/qwayland-xcomposite-glx/qwayland-xcomposite-glx.pro +++ b/src/plugins/platforms/qwayland-xcomposite-glx/qwayland-xcomposite-glx.pro @@ -1,6 +1,3 @@ -PLUGIN_TYPE = platforms -load(qt_plugin) - QT += waylandclient-private include(../../../hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri) @@ -12,3 +9,6 @@ SOURCES += \ HEADERS += \ qwaylandxcompositeglxplatformintegration.h + +PLUGIN_TYPE = platforms +load(qt_plugin) |