diff options
Diffstat (limited to 'examples/wayland/server-buffer/cpp-client')
4 files changed, 0 insertions, 314 deletions
diff --git a/examples/wayland/server-buffer/cpp-client/cpp-client.pro b/examples/wayland/server-buffer/cpp-client/cpp-client.pro deleted file mode 100644 index 7f785f983..000000000 --- a/examples/wayland/server-buffer/cpp-client/cpp-client.pro +++ /dev/null @@ -1,13 +0,0 @@ -QT += waylandclient-private gui-private -CONFIG += wayland-scanner - -WAYLANDCLIENTSOURCES += ../share-buffer.xml - -SOURCES += main.cpp \ - sharebufferextension.cpp - -HEADERS += \ - sharebufferextension.h - -target.path = $$[QT_INSTALL_EXAMPLES]/wayland/server-buffer/cpp-client -INSTALLS += target diff --git a/examples/wayland/server-buffer/cpp-client/main.cpp b/examples/wayland/server-buffer/cpp-client/main.cpp deleted file mode 100644 index 70509d063..000000000 --- a/examples/wayland/server-buffer/cpp-client/main.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/**************************************************************************** - ** - ** Copyright (C) 2017 The Qt Company Ltd. - ** Contact: https://www.qt.io/licensing/ - ** - ** 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 <QGuiApplication> -#include <QtGui/private/qguiapplication_p.h> -#include <QOpenGLWindow> -#include <QOpenGLTexture> -#include <QOpenGLTextureBlitter> -#include <QPainter> -#include <QMouseEvent> -#include <QPlatformSurfaceEvent> - -#include <QtWaylandClient/private/qwaylanddisplay_p.h> -#include <QtWaylandClient/private/qwaylandintegration_p.h> -#include <QtWaylandClient/private/qwaylandserverbufferintegration_p.h> -#include "sharebufferextension.h" - -#include <QDebug> -#include <QtGui/qpa/qplatformnativeinterface.h> -#include <QTimer> -#include <QMap> - -class TestWindow : public QOpenGLWindow -{ - Q_OBJECT - -public: - TestWindow() - { - m_extension = new ShareBufferExtension; - connect(m_extension, SIGNAL(bufferReceived(QtWaylandClient::QWaylandServerBuffer*)), this, SLOT(receiveBuffer(QtWaylandClient::QWaylandServerBuffer*))); - } - -public slots: - void receiveBuffer(QtWaylandClient::QWaylandServerBuffer *buffer) - { - m_buffers.append(buffer); - update(); - } - -protected: - - void initializeGL() override - { - m_blitter = new QOpenGLTextureBlitter; - m_blitter->create(); - } - - void paintGL() override { - glClearColor(.5, .45, .42, 1.); - glClear(GL_COLOR_BUFFER_BIT); - int x = 0; - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - for (auto buffer: m_buffers) { - m_blitter->bind(); - QPointF pos(x,0); - QSize s(buffer->size()); - QRectF targetRect(pos, s); - QOpenGLTexture *texture = buffer->toOpenGlTexture(); - auto surfaceOrigin = QOpenGLTextureBlitter::OriginTopLeft; - QMatrix4x4 targetTransform = QOpenGLTextureBlitter::targetTransform(targetRect, QRect(QPoint(), size())); - m_blitter->blit(texture->textureId(), targetTransform, surfaceOrigin); - m_blitter->release(); - x += s.width() + 10; - } - } - -private: - - QOpenGLTextureBlitter *m_blitter = nullptr; - ShareBufferExtension *m_extension = nullptr; - QList<QtWaylandClient::QWaylandServerBuffer*> m_buffers; - -}; - -int main (int argc, char **argv) -{ - QGuiApplication app(argc, argv); - - TestWindow window; - window.show(); - - return app.exec(); -} - -#include "main.moc" diff --git a/examples/wayland/server-buffer/cpp-client/sharebufferextension.cpp b/examples/wayland/server-buffer/cpp-client/sharebufferextension.cpp deleted file mode 100644 index 47b24822c..000000000 --- a/examples/wayland/server-buffer/cpp-client/sharebufferextension.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 <QtWaylandClient/private/qwaylanddisplay_p.h> -#include <QtWaylandClient/private/qwaylandintegration_p.h> -#include <QtWaylandClient/private/qwaylandserverbufferintegration_p.h> -#include <QtGui/QGuiApplication> -#include <QtGui/private/qguiapplication_p.h> -#include <QtGui/QWindow> -#include <QtGui/QPlatformSurfaceEvent> -#include <QtGui/qpa/qplatformnativeinterface.h> -#include <QDebug> - -QT_BEGIN_NAMESPACE - -ShareBufferExtension::ShareBufferExtension() - : QWaylandClientExtensionTemplate(/* Supported protocol version */ 1 ) -{ - - auto *wayland_integration = static_cast<QtWaylandClient::QWaylandIntegration *>(QGuiApplicationPrivate::platformIntegration()); - m_server_buffer_integration = wayland_integration->serverBufferIntegration(); - if (!m_server_buffer_integration) { - qCritical() << "This application requires a working serverBufferIntegration"; - QGuiApplication::quit(); - } -} - -void ShareBufferExtension::share_buffer_cross_buffer(struct ::qt_server_buffer *buffer) -{ - QtWaylandClient::QWaylandServerBuffer *serverBuffer = m_server_buffer_integration->serverBuffer(buffer); - emit bufferReceived(serverBuffer); -} - - -QT_END_NAMESPACE diff --git a/examples/wayland/server-buffer/cpp-client/sharebufferextension.h b/examples/wayland/server-buffer/cpp-client/sharebufferextension.h deleted file mode 100644 index 1440187da..000000000 --- a/examples/wayland/server-buffer/cpp-client/sharebufferextension.h +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 <qpa/qwindowsysteminterface.h> -#include <QtWaylandClient/private/qwayland-wayland.h> -#include <QtWaylandClient/qwaylandclientextension.h> -#include "qwayland-share-buffer.h" - -QT_BEGIN_NAMESPACE - -namespace QtWaylandClient { - class QWaylandServerBuffer; - class QWaylandServerBufferIntegration; -}; - -class ShareBufferExtension : public QWaylandClientExtensionTemplate<ShareBufferExtension> - , public QtWayland::qt_share_buffer -{ - Q_OBJECT -public: - ShareBufferExtension(); - -signals: - void bufferReceived(QtWaylandClient::QWaylandServerBuffer *buffer); - -private: - void share_buffer_cross_buffer(struct ::qt_server_buffer *buffer) override; - QtWaylandClient::QWaylandServerBufferIntegration *m_server_buffer_integration = nullptr; -}; - -QT_END_NAMESPACE - -#endif // SHAREBUFFEREXTENSION_H |