summaryrefslogtreecommitdiffstats
path: root/examples/wayland/texture-sharing/custom-compositor/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/wayland/texture-sharing/custom-compositor/main.cpp')
-rw-r--r--examples/wayland/texture-sharing/custom-compositor/main.cpp147
1 files changed, 0 insertions, 147 deletions
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 af3750247..000000000
--- 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"