diff options
Diffstat (limited to 'examples/wayland/texture-sharing/custom-compositor')
-rw-r--r-- | examples/wayland/texture-sharing/custom-compositor/CMakeLists.txt | 58 | ||||
-rw-r--r-- | examples/wayland/texture-sharing/custom-compositor/compositor.qrc | 9 | ||||
-rw-r--r-- | examples/wayland/texture-sharing/custom-compositor/custom-compositor.pro | 17 | ||||
-rw-r--r-- | examples/wayland/texture-sharing/custom-compositor/images/background.png | bin | 9287 -> 0 bytes | |||
-rw-r--r-- | examples/wayland/texture-sharing/custom-compositor/images/car.ktx | bin | 11908 -> 0 bytes | |||
-rw-r--r-- | examples/wayland/texture-sharing/custom-compositor/images/qt4.astc | bin | 12816 -> 0 bytes | |||
-rw-r--r-- | examples/wayland/texture-sharing/custom-compositor/images/qt_logo.png | bin | 1528 -> 0 bytes | |||
-rw-r--r-- | examples/wayland/texture-sharing/custom-compositor/main.cpp | 147 | ||||
-rw-r--r-- | examples/wayland/texture-sharing/custom-compositor/qml/main.qml | 119 |
9 files changed, 0 insertions, 350 deletions
diff --git a/examples/wayland/texture-sharing/custom-compositor/CMakeLists.txt b/examples/wayland/texture-sharing/custom-compositor/CMakeLists.txt deleted file mode 100644 index 0ca81f26..00000000 --- a/examples/wayland/texture-sharing/custom-compositor/CMakeLists.txt +++ /dev/null @@ -1,58 +0,0 @@ -# Generated from custom-compositor.pro. - -cmake_minimum_required(VERSION 3.14) -project(texture-sharing-custom-compositor LANGUAGES CXX) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) - -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") -endif() - -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/wayland/texture-sharing/custom-compositor") - -find_package(Qt6 COMPONENTS Core) -find_package(Qt6 COMPONENTS Gui) -find_package(Qt6 COMPONENTS Qml) -find_package(Qt6 COMPONENTS WaylandCompositor) - -qt_add_executable(texture-sharing-custom-compositor - main.cpp -) -set_target_properties(texture-sharing-custom-compositor PROPERTIES - WIN32_EXECUTABLE TRUE - MACOSX_BUNDLE TRUE -) -target_link_libraries(texture-sharing-custom-compositor PUBLIC - Qt::Core - Qt::Gui - Qt::Qml - Qt::WaylandCompositorPrivate -) - - -# Resources: -set(compositor_resource_files - "images/background.png" - "images/car.ktx" - "images/qt4.astc" - "images/qt_logo.png" - "qml/main.qml" -) - -qt6_add_resources(texture-sharing-custom-compositor "compositor" - PREFIX - "/" - FILES - ${compositor_resource_files} -) - -install(TARGETS texture-sharing-custom-compositor - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" -) diff --git a/examples/wayland/texture-sharing/custom-compositor/compositor.qrc b/examples/wayland/texture-sharing/custom-compositor/compositor.qrc deleted file mode 100644 index 86a8567f..00000000 --- a/examples/wayland/texture-sharing/custom-compositor/compositor.qrc +++ /dev/null @@ -1,9 +0,0 @@ -<RCC> - <qresource prefix="/"> - <file>images/background.png</file> - <file>images/qt_logo.png</file> - <file>images/qt4.astc</file> - <file>images/car.ktx</file> - <file>qml/main.qml</file> - </qresource> -</RCC> diff --git a/examples/wayland/texture-sharing/custom-compositor/custom-compositor.pro b/examples/wayland/texture-sharing/custom-compositor/custom-compositor.pro deleted file mode 100644 index 098034f3..00000000 --- a/examples/wayland/texture-sharing/custom-compositor/custom-compositor.pro +++ /dev/null @@ -1,17 +0,0 @@ -QT += core gui qml - -QT += waylandcompositor-private - -SOURCES += \ - main.cpp - -OTHER_FILES = \ - qml/main.qml \ - images/background.jpg - -RESOURCES += compositor.qrc - -TARGET = texture-sharing-custom-compositor - -target.path = $$[QT_INSTALL_EXAMPLES]/wayland/texture-sharing/custom-compositor -INSTALLS += target diff --git a/examples/wayland/texture-sharing/custom-compositor/images/background.png b/examples/wayland/texture-sharing/custom-compositor/images/background.png Binary files differdeleted file mode 100644 index 845830c5..00000000 --- a/examples/wayland/texture-sharing/custom-compositor/images/background.png +++ /dev/null diff --git a/examples/wayland/texture-sharing/custom-compositor/images/car.ktx b/examples/wayland/texture-sharing/custom-compositor/images/car.ktx Binary files differdeleted file mode 100644 index 2aefdd30..00000000 --- a/examples/wayland/texture-sharing/custom-compositor/images/car.ktx +++ /dev/null diff --git a/examples/wayland/texture-sharing/custom-compositor/images/qt4.astc b/examples/wayland/texture-sharing/custom-compositor/images/qt4.astc Binary files differdeleted file mode 100644 index 7f7a3f47..00000000 --- a/examples/wayland/texture-sharing/custom-compositor/images/qt4.astc +++ /dev/null diff --git a/examples/wayland/texture-sharing/custom-compositor/images/qt_logo.png b/examples/wayland/texture-sharing/custom-compositor/images/qt_logo.png Binary files differdeleted file mode 100644 index 5e2b355e..00000000 --- a/examples/wayland/texture-sharing/custom-compositor/images/qt_logo.png +++ /dev/null diff --git a/examples/wayland/texture-sharing/custom-compositor/main.cpp b/examples/wayland/texture-sharing/custom-compositor/main.cpp deleted file mode 100644 index af375024..00000000 --- a/examples/wayland/texture-sharing/custom-compositor/main.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2019 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 <QtGui/QPainter> -#include <QtGui/QImage> - -#include <QtCore/QDateTime> - -#include "QtWaylandCompositor/private/qwltexturesharingextension_p.h" - -#ifndef GL_RGBA8 -#define GL_RGBA8 0x8058 -#endif - -class CustomSharingExtension : public QWaylandTextureSharingExtension -{ - Q_OBJECT -public: - CustomSharingExtension() {qDebug("Instantiating custom texture sharing extension.");} -protected: - bool customPixelData(const QString &key, QByteArray *data, QSize *size, uint *glInternalFormat) override - { - qDebug() << "CustomSharingExtension looking for local texture data for" << key; - if (key.startsWith("unreasonably large ")) { - int w = 10000; - int h = 10000; - int numBytes = w * h * 4; - *data = QByteArray(numBytes, 0); - quint32 *pixels = reinterpret_cast<quint32*>(data->data()); - for (int i = 0; i < w*h; ++i) - pixels[i] = 0xff7f1fff; - *glInternalFormat = GL_RGBA8; - *size = QSize(w,h); - return true; - } - - QImage img; - - if (key == QLatin1String("test pattern 1")) { - img = QImage(128,128,QImage::Format_ARGB32_Premultiplied); - img.fill(QColor(0x55,0x0,0x55,0x01)); - { - QPainter p(&img); - QPen pen = p.pen(); - pen.setWidthF(3); - pen.setColor(Qt::red); - p.setPen(pen); - p.drawLine(0,0,128,128); - pen.setColor(Qt::green); - p.setPen(pen); - p.drawLine(128,0,0,128); - pen.setColor(Qt::blue); - p.setPen(pen); - p.drawLine(32,16,96,16); - pen.setColor(Qt::black); - p.setPen(pen); - p.translate(64, 64); - p.rotate(45); - p.drawText(QRect(-48, -32, 96, 64), - QDateTime::currentDateTime().toString(), - QTextOption(Qt::AlignHCenter)); - } - } - - if (!img.isNull()) { - img = img.convertToFormat(QImage::Format_RGBA8888); - *data = QByteArray(reinterpret_cast<const char*>(img.constBits()), img.sizeInBytes()); - *size = img.size(); - *glInternalFormat = GL_RGBA8; - return true; - } - return false; - } -}; - -Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(CustomSharingExtension); - -int main(int argc, char *argv[]) -{ - QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts, true); - QGuiApplication app(argc, argv); - QQmlApplicationEngine appEngine; - - qmlRegisterType<CustomSharingExtensionQuickExtension>("com.theqtcompany.customsharingextension", 1, 0, "CustomSharingExtension"); - appEngine.addImageProvider("wlshared", new QWaylandSharedTextureProvider); - - appEngine.load(QUrl("qrc:///qml/main.qml")); - - return app.exec(); -} - -#include "main.moc" diff --git a/examples/wayland/texture-sharing/custom-compositor/qml/main.qml b/examples/wayland/texture-sharing/custom-compositor/qml/main.qml deleted file mode 100644 index 7a570516..00000000 --- a/examples/wayland/texture-sharing/custom-compositor/qml/main.qml +++ /dev/null @@ -1,119 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2019 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 -import QtQuick.Window -import QtWayland.Compositor -import QtWayland.Compositor.XdgShell -import QtWayland.Compositor.WlShell - -import com.theqtcompany.customsharingextension - -WaylandCompositor { - WaylandOutput { - sizeFollowsWindow: true - window: Window { - width: 1024 - height: 768 - visible: true - Image { - id: background - anchors.fill: parent - fillMode: Image.Tile - source: "qrc:/images/background.png" - smooth: true - - Rectangle { - width: 100 - height: 100 - color: "red" - anchors.bottom: parent.bottom; - anchors.right: parent.right; - MouseArea { - anchors.fill: parent - onClicked: sharedTextureImage.source = "image://wlshared/car.ktx" - } - } - Image { - id: sharedTextureImage - anchors.bottom: parent.bottom; - anchors.right: parent.right; - source: "" - } - Image { - id: topRightImage - anchors.top: parent.top; - anchors.right: parent.right; - source: "image://wlshared/qt_logo.png" - } - } - Repeater { - model: shellSurfaces - ShellSurfaceItem { - shellSurface: modelData - onSurfaceDestroyed: shellSurfaces.remove(index) - } - } - } - } - WlShell { - onWlShellSurfaceCreated: - shellSurfaces.append({shellSurface: shellSurface}); - } - XdgShell { - onToplevelCreated: - shellSurfaces.append({shellSurface: xdgSurface}); - } - ListModel { id: shellSurfaces } - - CustomSharingExtension { - imageSearchPath: ":/images;." - } -} |