diff options
Diffstat (limited to 'src/compositor/compositor_api/qwaylandcompositor.h')
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor.h | 91 |
1 files changed, 44 insertions, 47 deletions
diff --git a/src/compositor/compositor_api/qwaylandcompositor.h b/src/compositor/compositor_api/qwaylandcompositor.h index c343d6f84..1dee5cad1 100644 --- a/src/compositor/compositor_api/qwaylandcompositor.h +++ b/src/compositor/compositor_api/qwaylandcompositor.h @@ -1,53 +1,18 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWaylandCompositor module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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 https://www.qt.io/terms-conditions. For further -** information use the contact form at https://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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2020 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #ifndef QWAYLANDCOMPOSITOR_H #define QWAYLANDCOMPOSITOR_H #include <QtWaylandCompositor/qtwaylandcompositorglobal.h> +#include <QtWaylandCompositor/qtwaylandqmlinclude.h> #include <QtWaylandCompositor/qwaylandcompositorextension.h> #include <QtWaylandCompositor/QWaylandOutput> -#include <QObject> -#include <QImage> -#include <QRect> -#include <QLoggingCategory> +#include <QtCore/QObject> +#include <QtGui/QImage> +#include <QtCore/QRect> +#include <QtCore/QLoggingCategory> struct wl_display; @@ -62,7 +27,6 @@ class QWaylandCompositorPrivate; class QWaylandClient; class QWaylandSurface; class QWaylandSeat; -class QWaylandGlobalInterface; class QWaylandView; class QWaylandPointer; class QWaylandKeyboard; @@ -70,11 +34,12 @@ class QWaylandTouch; class QWaylandSurfaceGrabber; class QWaylandBufferRef; -Q_WAYLAND_COMPOSITOR_EXPORT Q_DECLARE_LOGGING_CATEGORY(qLcWaylandCompositor) -Q_WAYLAND_COMPOSITOR_EXPORT Q_DECLARE_LOGGING_CATEGORY(qLcWaylandCompositorHardwareIntegration) +Q_WAYLANDCOMPOSITOR_EXPORT Q_DECLARE_LOGGING_CATEGORY(qLcWaylandCompositor) +Q_WAYLANDCOMPOSITOR_EXPORT Q_DECLARE_LOGGING_CATEGORY(qLcWaylandCompositorHardwareIntegration) Q_DECLARE_LOGGING_CATEGORY(qLcWaylandCompositorInputMethods) +Q_DECLARE_LOGGING_CATEGORY(qLcWaylandCompositorTextInput) -class Q_WAYLAND_COMPOSITOR_EXPORT QWaylandCompositor : public QWaylandObject +class Q_WAYLANDCOMPOSITOR_EXPORT QWaylandCompositor : public QWaylandObject { Q_OBJECT Q_DECLARE_PRIVATE(QWaylandCompositor) @@ -84,8 +49,32 @@ class Q_WAYLAND_COMPOSITOR_EXPORT QWaylandCompositor : public QWaylandObject Q_PROPERTY(QWaylandOutput *defaultOutput READ defaultOutput WRITE setDefaultOutput NOTIFY defaultOutputChanged) Q_PROPERTY(bool useHardwareIntegrationExtension READ useHardwareIntegrationExtension WRITE setUseHardwareIntegrationExtension NOTIFY useHardwareIntegrationExtensionChanged) Q_PROPERTY(QWaylandSeat *defaultSeat READ defaultSeat NOTIFY defaultSeatChanged) - + Q_PROPERTY(QVector<ShmFormat> additionalShmFormats READ additionalShmFormats WRITE setAdditionalShmFormats NOTIFY additionalShmFormatsChanged REVISION(6, 0)) + Q_MOC_INCLUDE("qwaylandseat.h") + QML_NAMED_ELEMENT(WaylandCompositorBase) + QML_UNCREATABLE("Cannot create instance of WaylandCompositorBase, use WaylandCompositor instead") + QML_ADDED_IN_VERSION(1, 0) public: + // Duplicates subset of supported values wl_shm_format enum + enum ShmFormat { + ShmFormat_ARGB8888 = 0, + ShmFormat_XRGB8888 = 1, + ShmFormat_C8 = 0x20203843, + ShmFormat_XRGB4444 = 0x32315258, + ShmFormat_ARGB4444 = 0x32315241, + ShmFormat_XRGB1555 = 0x35315258, + ShmFormat_RGB565 = 0x36314752, + ShmFormat_RGB888 = 0x34324752, + ShmFormat_XBGR8888 = 0x34324258, + ShmFormat_ABGR8888 = 0x34324241, + ShmFormat_BGR888 = 0x34324742, + ShmFormat_XRGB2101010 = 0x30335258, + ShmFormat_XBGR2101010 = 0x30334258, + ShmFormat_ARGB2101010 = 0x30335241, + ShmFormat_ABGR2101010 = 0x30334241 + }; + Q_ENUM(ShmFormat) + QWaylandCompositor(QObject *parent = nullptr); ~QWaylandCompositor() override; @@ -126,11 +115,17 @@ public: bool useHardwareIntegrationExtension() const; void setUseHardwareIntegrationExtension(bool use); + QVector<ShmFormat> additionalShmFormats() const; + void setAdditionalShmFormats(const QVector<ShmFormat> &additionalShmFormats); + virtual void grabSurface(QWaylandSurfaceGrabber *grabber, const QWaylandBufferRef &buffer); public Q_SLOTS: void processWaylandEvents(); +private Q_SLOTS: + void applicationStateChanged(Qt::ApplicationState state); + Q_SIGNALS: void createdChanged(); void socketNameChanged(const QByteArray &socketName); @@ -149,6 +144,8 @@ Q_SIGNALS: void outputAdded(QWaylandOutput *output); void outputRemoved(QWaylandOutput *output); + void additionalShmFormatsChanged(); + protected: virtual void retainedSelectionReceived(QMimeData *mimeData); virtual QWaylandSeat *createSeat(); |