summaryrefslogtreecommitdiff
path: root/examples/wayland/texture-sharing/custom-compositor
diff options
context:
space:
mode:
Diffstat (limited to 'examples/wayland/texture-sharing/custom-compositor')
-rw-r--r--examples/wayland/texture-sharing/custom-compositor/CMakeLists.txt58
-rw-r--r--examples/wayland/texture-sharing/custom-compositor/compositor.qrc9
-rw-r--r--examples/wayland/texture-sharing/custom-compositor/custom-compositor.pro17
-rw-r--r--examples/wayland/texture-sharing/custom-compositor/images/background.pngbin9287 -> 0 bytes
-rw-r--r--examples/wayland/texture-sharing/custom-compositor/images/car.ktxbin11908 -> 0 bytes
-rw-r--r--examples/wayland/texture-sharing/custom-compositor/images/qt4.astcbin12816 -> 0 bytes
-rw-r--r--examples/wayland/texture-sharing/custom-compositor/images/qt_logo.pngbin1528 -> 0 bytes
-rw-r--r--examples/wayland/texture-sharing/custom-compositor/main.cpp147
-rw-r--r--examples/wayland/texture-sharing/custom-compositor/qml/main.qml119
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
deleted file mode 100644
index 845830c5..00000000
--- a/examples/wayland/texture-sharing/custom-compositor/images/background.png
+++ /dev/null
Binary files differ
diff --git a/examples/wayland/texture-sharing/custom-compositor/images/car.ktx b/examples/wayland/texture-sharing/custom-compositor/images/car.ktx
deleted file mode 100644
index 2aefdd30..00000000
--- a/examples/wayland/texture-sharing/custom-compositor/images/car.ktx
+++ /dev/null
Binary files differ
diff --git a/examples/wayland/texture-sharing/custom-compositor/images/qt4.astc b/examples/wayland/texture-sharing/custom-compositor/images/qt4.astc
deleted file mode 100644
index 7f7a3f47..00000000
--- a/examples/wayland/texture-sharing/custom-compositor/images/qt4.astc
+++ /dev/null
Binary files differ
diff --git a/examples/wayland/texture-sharing/custom-compositor/images/qt_logo.png b/examples/wayland/texture-sharing/custom-compositor/images/qt_logo.png
deleted file mode 100644
index 5e2b355e..00000000
--- a/examples/wayland/texture-sharing/custom-compositor/images/qt_logo.png
+++ /dev/null
Binary files differ
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;."
- }
-}