diff options
Diffstat (limited to 'examples/wayland/server-buffer/compositor')
-rw-r--r-- | examples/wayland/server-buffer/compositor/compositor.pro | 27 | ||||
-rw-r--r-- | examples/wayland/server-buffer/compositor/compositor.qrc | 7 | ||||
-rw-r--r-- | examples/wayland/server-buffer/compositor/images/Siberischer_tiger_de_edit02.jpg | bin | 21801 -> 0 bytes | |||
-rw-r--r-- | examples/wayland/server-buffer/compositor/images/Siberischer_tiger_de_edit02.txt | 5 | ||||
-rw-r--r-- | examples/wayland/server-buffer/compositor/images/background.png | bin | 9528 -> 0 bytes | |||
-rw-r--r-- | examples/wayland/server-buffer/compositor/main.cpp | 76 | ||||
-rw-r--r-- | examples/wayland/server-buffer/compositor/qml/main.qml | 92 | ||||
-rw-r--r-- | examples/wayland/server-buffer/compositor/sharebufferextension.cpp | 133 | ||||
-rw-r--r-- | examples/wayland/server-buffer/compositor/sharebufferextension.h | 100 |
9 files changed, 0 insertions, 440 deletions
diff --git a/examples/wayland/server-buffer/compositor/compositor.pro b/examples/wayland/server-buffer/compositor/compositor.pro deleted file mode 100644 index 8ff20ad2e..000000000 --- a/examples/wayland/server-buffer/compositor/compositor.pro +++ /dev/null @@ -1,27 +0,0 @@ -QT += core gui qml - -QT += waylandcompositor-private - -CONFIG += wayland-scanner -CONFIG += c++11 -SOURCES += \ - main.cpp \ - sharebufferextension.cpp - -OTHER_FILES = \ - qml/main.qml \ - qml/Screen.qml \ - images/background.jpg - -WAYLANDSERVERSOURCES += \ - ../share-buffer.xml - -RESOURCES += compositor.qrc - -TARGET = compositor - -HEADERS += \ - sharebufferextension.h - -target.path = $$[QT_INSTALL_EXAMPLES]/wayland/server-buffer/compositor -INSTALLS += target diff --git a/examples/wayland/server-buffer/compositor/compositor.qrc b/examples/wayland/server-buffer/compositor/compositor.qrc deleted file mode 100644 index b50594b55..000000000 --- a/examples/wayland/server-buffer/compositor/compositor.qrc +++ /dev/null @@ -1,7 +0,0 @@ -<RCC> - <qresource prefix="/"> - <file>images/background.png</file> - <file>images/Siberischer_tiger_de_edit02.jpg</file> - <file>qml/main.qml</file> - </qresource> -</RCC> diff --git a/examples/wayland/server-buffer/compositor/images/Siberischer_tiger_de_edit02.jpg b/examples/wayland/server-buffer/compositor/images/Siberischer_tiger_de_edit02.jpg Binary files differdeleted file mode 100644 index eb1b73f84..000000000 --- a/examples/wayland/server-buffer/compositor/images/Siberischer_tiger_de_edit02.jpg +++ /dev/null diff --git a/examples/wayland/server-buffer/compositor/images/Siberischer_tiger_de_edit02.txt b/examples/wayland/server-buffer/compositor/images/Siberischer_tiger_de_edit02.txt deleted file mode 100644 index 3a26c00d3..000000000 --- a/examples/wayland/server-buffer/compositor/images/Siberischer_tiger_de_edit02.txt +++ /dev/null @@ -1,5 +0,0 @@ -Image from https://en.wikipedia.org/wiki/File:Siberischer_tiger_de_edit02.jpg - -Author: S. Taheri, edited by Fir0002 - -License: Creative Commons Attribution-Share Alike 2.5 Generic diff --git a/examples/wayland/server-buffer/compositor/images/background.png b/examples/wayland/server-buffer/compositor/images/background.png Binary files differdeleted file mode 100644 index 292160cd8..000000000 --- a/examples/wayland/server-buffer/compositor/images/background.png +++ /dev/null diff --git a/examples/wayland/server-buffer/compositor/main.cpp b/examples/wayland/server-buffer/compositor/main.cpp deleted file mode 100644 index 689a3bbe7..000000000 --- a/examples/wayland/server-buffer/compositor/main.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: http://www.qt-project.org/legal -** -** This file is part of the examples of the Qt Wayland module -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtCore/QUrl> -#include <QtCore/QDebug> -#include <QtGui/QGuiApplication> -#include <QtQml/QQmlApplicationEngine> - -#include <QtQml/qqml.h> -#include <QtQml/QQmlEngine> - -#include "sharebufferextension.h" - -static void registerTypes() -{ - qmlRegisterType<ShareBufferExtensionQuickExtension>("com.theqtcompany.sharebufferextension", 1, 0, "ShareBufferExtension"); -} - -int main(int argc, char *argv[]) -{ - // Make sure there is a valid OpenGL context in the main thread - qputenv("QSG_RENDER_LOOP", "basic"); - - QGuiApplication app(argc, argv); - registerTypes(); - QQmlApplicationEngine appEngine(QUrl("qrc:///qml/main.qml")); - - return app.exec(); -} diff --git a/examples/wayland/server-buffer/compositor/qml/main.qml b/examples/wayland/server-buffer/compositor/qml/main.qml deleted file mode 100644 index 7df8ab7bb..000000000 --- a/examples/wayland/server-buffer/compositor/qml/main.qml +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: http://www.qt-project.org/legal -** -** This file is part of the examples of the Qt Wayland module -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.6 -import QtWayland.Compositor 1.0 -import QtQuick.Window 2.2 - -import com.theqtcompany.sharebufferextension 1.0 - -import QtQuick 2.6 -import QtQuick.Window 2.2 -import QtWayland.Compositor 1.0 - -WaylandCompositor { - WaylandOutput { - sizeFollowsWindow: true - window: Window { - width: 1024 - height: 768 - visible: true - Image { - id: surfaceArea - anchors.fill: parent - fillMode: Image.Tile - source: "qrc:/images/background.png" - smooth: false - } - } - } - Component { - id: chromeComponent - ShellSurfaceItem { - onSurfaceDestroyed: destroy() - } - } - - WlShell { - onWlShellSurfaceCreated: - chromeComponent.createObject(surfaceArea, { "shellSurface": shellSurface } ); - } - - ShareBufferExtension { - } - -} diff --git a/examples/wayland/server-buffer/compositor/sharebufferextension.cpp b/examples/wayland/server-buffer/compositor/sharebufferextension.cpp deleted file mode 100644 index ecc57b571..000000000 --- a/examples/wayland/server-buffer/compositor/sharebufferextension.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: http://www.qt-project.org/legal -** -** This file is part of the examples of the Qt Wayland module -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "sharebufferextension.h" - -#include <QWaylandSurface> - -#include <QDebug> - -#include <QQuickWindow> - -#include <QPainter> -#include <QPen> - -ShareBufferExtension::ShareBufferExtension(QWaylandCompositor *compositor) - : QWaylandCompositorExtensionTemplate(compositor) -{ -} - -void ShareBufferExtension::initialize() -{ - QWaylandCompositorExtensionTemplate::initialize(); - QWaylandCompositor *compositor = static_cast<QWaylandCompositor *>(extensionContainer()); - init(compositor->display(), 1); -} - -QtWayland::ServerBuffer *ShareBufferExtension::addImage(const QImage &img) -{ - if (!m_server_buffer_integration) { - QWaylandCompositor *compositor = static_cast<QWaylandCompositor *>(extensionContainer()); - - m_server_buffer_integration = QWaylandCompositorPrivate::get(compositor)->serverBufferIntegration(); - if (!m_server_buffer_integration) { - qWarning("Could not find a server buffer integration"); - return nullptr; - } - } - - QImage image = img.convertToFormat(QImage::Format_RGBA8888); - - auto *buffer = m_server_buffer_integration->createServerBufferFromImage(image, QtWayland::ServerBuffer::RGBA32); - - m_server_buffers.append(buffer); - return buffer; -} - -void ShareBufferExtension::createServerBuffers() -{ - QImage image(100,100,QImage::Format_ARGB32_Premultiplied); - image.fill(QColor(0x55,0x0,0x55,0x01)); - { - QPainter p(&image); - QPen pen = p.pen(); - pen.setWidthF(3); - pen.setColor(Qt::red); - p.setPen(pen); - p.drawLine(0,0,100,100); - pen.setColor(Qt::green); - p.setPen(pen); - p.drawLine(100,0,0,100); - pen.setColor(Qt::blue); - p.setPen(pen); - p.drawLine(25,15,75,15); - } - - addImage(image); - - QImage image2(":/images/Siberischer_tiger_de_edit02.jpg"); - addImage(image2); - - m_server_buffers_created = true; -} - - -void ShareBufferExtension::share_buffer_bind_resource(Resource *resource) -{ - if (!m_server_buffers_created) - createServerBuffers(); - - for (auto *buffer : qAsConst(m_server_buffers)) { - qDebug() << "sending" << buffer << "to client"; - struct ::wl_client *client = wl_resource_get_client(resource->handle); - struct ::wl_resource *buffer_resource = buffer->resourceForClient(client); - send_cross_buffer(resource->handle, buffer_resource); - } -} diff --git a/examples/wayland/server-buffer/compositor/sharebufferextension.h b/examples/wayland/server-buffer/compositor/sharebufferextension.h deleted file mode 100644 index 4719844b3..000000000 --- a/examples/wayland/server-buffer/compositor/sharebufferextension.h +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: http://www.qt-project.org/legal -** -** This file is part of the examples of the Qt Wayland module -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef SHAREBUFFEREXTENSION_H -#define SHAREBUFFEREXTENSION_H - -#include "wayland-util.h" - -#include <QtCore/QMap> - -#include <QtWaylandCompositor/QWaylandCompositorExtensionTemplate> -#include <QtWaylandCompositor/QWaylandQuickExtension> -#include <QtWaylandCompositor/QWaylandCompositor> - -#include <QtWaylandCompositor/private/qwaylandcompositor_p.h> -#include <QtWaylandCompositor/private/qwlserverbufferintegration_p.h> - -#include "qwayland-server-share-buffer.h" - -QT_BEGIN_NAMESPACE - -namespace QtWayland -{ - class ServerBufferIntegration; -}; - - -class ShareBufferExtension : public QWaylandCompositorExtensionTemplate<ShareBufferExtension> - , public QtWaylandServer::qt_share_buffer -{ - Q_OBJECT -public: - ShareBufferExtension(QWaylandCompositor *compositor = nullptr); - void initialize() override; - -protected slots: - QtWayland::ServerBuffer *addImage(const QImage &image); - -protected: - void share_buffer_bind_resource(Resource *resource) override; - -private: - void createServerBuffers(); - QList<QtWayland::ServerBuffer *> m_server_buffers; - QtWayland::ServerBufferIntegration *m_server_buffer_integration = nullptr; - bool m_server_buffers_created = false; -}; - -Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(ShareBufferExtension) - -QT_END_NAMESPACE - -#endif // SHAREBUFFEREXTENSION_H |