summaryrefslogtreecommitdiffstats
path: root/src/QtExtras
diff options
context:
space:
mode:
Diffstat (limited to 'src/QtExtras')
-rw-r--r--src/QtExtras/QtExtras.pro2
-rw-r--r--src/QtExtras/qmlstreamer/q3dsincubationcontroller.h55
-rw-r--r--src/QtExtras/qmlstreamer/q3dsqmlstream.cpp68
-rw-r--r--src/QtExtras/qmlstreamer/q3dsqmlstream.h68
-rw-r--r--src/QtExtras/qmlstreamer/q3dsqmlstreamer_global.h41
-rw-r--r--src/QtExtras/qmlstreamer/q3dsqmlstreamerserviceimpl.cpp67
-rw-r--r--src/QtExtras/qmlstreamer/q3dsqmlstreamerserviceimpl.h52
-rw-r--r--src/QtExtras/qmlstreamer/q3dsqmlstreamproducer.cpp53
-rw-r--r--src/QtExtras/qmlstreamer/q3dsqmlstreamproducer.h61
-rw-r--r--src/QtExtras/qmlstreamer/q3dsqmlstreamproxy.cpp253
-rw-r--r--src/QtExtras/qmlstreamer/q3dsqmlstreamproxy.h79
-rw-r--r--src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.cpp483
-rw-r--r--src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.h124
-rw-r--r--src/QtExtras/qmlstreamer/q3dsqmlstreamservice.h80
-rw-r--r--src/QtExtras/qmlstreamer/q3dsqmlsubpresentationsettings.cpp53
-rw-r--r--src/QtExtras/qmlstreamer/q3dsqmlsubpresentationsettings.h55
-rw-r--r--src/QtExtras/qmlstreamer/qmlstreamer.pro50
17 files changed, 0 insertions, 1644 deletions
diff --git a/src/QtExtras/QtExtras.pro b/src/QtExtras/QtExtras.pro
deleted file mode 100644
index 36916d01..00000000
--- a/src/QtExtras/QtExtras.pro
+++ /dev/null
@@ -1,2 +0,0 @@
-TEMPLATE = subdirs
-SUBDIRS += qmlstreamer
diff --git a/src/QtExtras/qmlstreamer/q3dsincubationcontroller.h b/src/QtExtras/qmlstreamer/q3dsincubationcontroller.h
deleted file mode 100644
index 733037c6..00000000
--- a/src/QtExtras/qmlstreamer/q3dsincubationcontroller.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QCoreApplication>
-#include <QGuiApplication>
-#include <QQmlComponent>
-#include <QQuickItem>
-#include <QQmlIncubationController>
-#include <QScreen>
-
-class Q3DSIncubationController : public QObject, public QQmlIncubationController
-{
- Q_OBJECT
-public:
- explicit Q3DSIncubationController(QObject *parent = nullptr)
- : QObject(parent)
- , m_incubationTime(std::max(1, int(333 / QGuiApplication::primaryScreen()->refreshRate())))
- {
- startTimer(QGuiApplication::primaryScreen()->refreshRate());
- }
-
- void timerEvent(QTimerEvent *) Q_DECL_OVERRIDE
- {
- incubateFor(m_incubationTime);
- }
-
-private:
- const int m_incubationTime;
-};
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlstream.cpp b/src/QtExtras/qmlstreamer/q3dsqmlstream.cpp
deleted file mode 100644
index ec231d83..00000000
--- a/src/QtExtras/qmlstreamer/q3dsqmlstream.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "q3dsqmlstream.h"
-
-Q3DSQmlStream::Q3DSQmlStream(QObject *parent)
- : QObject(parent)
- , m_item(nullptr)
-{
-
-}
-
-Q3DSQmlStream::~Q3DSQmlStream()
-{
-
-}
-
-QString Q3DSQmlStream::presentationId() const
-{
- return m_presentationId;
-}
-
-QQuickItem *Q3DSQmlStream::item() const
-{
- return m_item;
-}
-
-void Q3DSQmlStream::setPresentationId(const QString presentationId)
-{
- if (m_presentationId != presentationId) {
- m_presentationId = presentationId;
- emit presentationIdChanged(presentationId);
- }
-}
-
-void Q3DSQmlStream::setItem(QQuickItem *item)
-{
- if (m_item != item) {
- m_item = item;
- emit itemChanged(item);
- }
-}
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlstream.h b/src/QtExtras/qmlstreamer/q3dsqmlstream.h
deleted file mode 100644
index 74825902..00000000
--- a/src/QtExtras/qmlstreamer/q3dsqmlstream.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef Q3DS_QMLSTREAM_H
-#define Q3DS_QMLSTREAM_H
-
-#include <QObject>
-
-#include "q3dsqmlstreamer_global.h"
-
-QT_BEGIN_NAMESPACE
-class QQuickItem;
-QT_END_NAMESPACE
-
-class Q3DS_QMLSTREAMERSHARED_EXPORT Q3DSQmlStream : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QString presentationId READ presentationId WRITE setPresentationId NOTIFY presentationIdChanged)
- Q_PROPERTY(QQuickItem *item READ item WRITE setItem NOTIFY itemChanged)
-
- Q_CLASSINFO("DefaultProperty", "item")
-public:
- Q3DSQmlStream(QObject *parent = nullptr);
- ~Q3DSQmlStream();
-
- QString presentationId() const;
- QQuickItem *item() const;
-
-public Q_SLOTS:
- void setPresentationId(const QString presentationId);
- void setItem(QQuickItem *item);
-
-Q_SIGNALS:
- void presentationIdChanged(const QString presentationId);
- void itemChanged(QQuickItem *item);
-
-private:
- QString m_presentationId;
- QQuickItem *m_item;
-};
-
-#endif // Q3DSQMLSTREAM_H
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlstreamer_global.h b/src/QtExtras/qmlstreamer/q3dsqmlstreamer_global.h
deleted file mode 100644
index af12e6f0..00000000
--- a/src/QtExtras/qmlstreamer/q3dsqmlstreamer_global.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef Q3DS_QMLSTREAMER_GLOBAL_H
-#define Q3DS_QMLSTREAMER_GLOBAL_H
-
-#include <QtCore/qglobal.h>
-
-#if defined(QMLSTREAMER_LIBRARY)
-# define Q3DS_QMLSTREAMERSHARED_EXPORT Q_DECL_EXPORT
-#else
-# define Q3DS_QMLSTREAMERSHARED_EXPORT Q_DECL_IMPORT
-#endif
-
-#endif // Q3DS_QMLSTREAMER_GLOBAL_H
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlstreamerserviceimpl.cpp b/src/QtExtras/qmlstreamer/q3dsqmlstreamerserviceimpl.cpp
deleted file mode 100644
index 78c0a36a..00000000
--- a/src/QtExtras/qmlstreamer/q3dsqmlstreamerserviceimpl.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "q3dsqmlstreamerserviceimpl.h"
-
-Q3DSQmlStreamServiceImpl::Q3DSQmlStreamServiceImpl()
-{
-
-}
-
-IQ3DSQmlStreamRenderer *Q3DSQmlStreamServiceImpl::getRenderer(const char *id)
-{
- if (m_producers[QString(id)])
- return m_producers[QString(id)]->getRenderer();
- return nullptr;
-}
-
-bool Q3DSQmlStreamServiceImpl::registerProducer(IQ3DSQmlStreamProducer *producer, const char *id)
-{
- m_producers[QString(id)] = producer;
- return true;
-}
-
-void Q3DSQmlStreamServiceImpl::unregisterProducer(IQ3DSQmlStreamProducer *producer)
-{
- auto iter = m_producers.begin();
- for (; iter != m_producers.end(); ++iter) {
- if (*iter == producer) {
- m_producers.erase(iter);
- return;
- }
- }
-}
-
-static Q3DSQmlStreamServiceImpl *service = nullptr;
-IQ3DSQmlStreamService *IQ3DSQmlStreamService::getQmlStreamService()
-{
- if (!service)
- service = new Q3DSQmlStreamServiceImpl();
- return service;
-}
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlstreamerserviceimpl.h b/src/QtExtras/qmlstreamer/q3dsqmlstreamerserviceimpl.h
deleted file mode 100644
index a17bf340..00000000
--- a/src/QtExtras/qmlstreamer/q3dsqmlstreamerserviceimpl.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef Q3DS_QMLSTREAM_SERVICE_IMPL_H
-#define Q3DS_QMLSTREAM_SERVICE_IMPL_H
-
-#include <QMap>
-
-#include "q3dsqmlstreamservice.h"
-
-#include "q3dsqmlstreamer_global.h"
-
-class Q3DSQmlStreamServiceImpl : public IQ3DSQmlStreamService
-{
-public:
- Q3DSQmlStreamServiceImpl();
-
- IQ3DSQmlStreamRenderer *getRenderer(const char *id) override;
- bool registerProducer(IQ3DSQmlStreamProducer *producer, const char *id) override;
- void unregisterProducer(IQ3DSQmlStreamProducer *producer) override;
-private:
-
- QMap<QString, IQ3DSQmlStreamProducer *> m_producers;
-};
-
-#endif // Q3DS_QMLSTREAMER_SERVICE_IMPL_H
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlstreamproducer.cpp b/src/QtExtras/qmlstreamer/q3dsqmlstreamproducer.cpp
deleted file mode 100644
index 39eccb1b..00000000
--- a/src/QtExtras/qmlstreamer/q3dsqmlstreamproducer.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "q3dsqmlstreamproducer.h"
-#include "q3dsqmlstreamrenderer.h"
-
-Q3DSQmlStreamProducer::Q3DSQmlStreamProducer(const QString &id, const QString &args,
- QObject *parent)
- : QObject(parent), m_id(id), m_args(args), m_renderer(new Q3DSQmlStreamRenderer)
-{
-
-}
-
-Q3DSQmlStreamProducer::~Q3DSQmlStreamProducer()
-{
- delete m_renderer;
-}
-
-IQ3DSQmlStreamRenderer* Q3DSQmlStreamProducer::getRenderer()
-{
- return m_renderer;
-}
-
-void Q3DSQmlStreamProducer::setPresentationItem(QQuickItem *item)
-{
- m_renderer->setItem(item);
-}
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlstreamproducer.h b/src/QtExtras/qmlstreamer/q3dsqmlstreamproducer.h
deleted file mode 100644
index d3b330d1..00000000
--- a/src/QtExtras/qmlstreamer/q3dsqmlstreamproducer.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef Q3DS_QMLSTREAM_PRODUCER_H
-#define Q3DS_QMLSTREAM_PRODUCER_H
-
-#include <QObject>
-#include "q3dsqmlstreamservice.h"
-#include "q3dsqmlstreamer_global.h"
-
-QT_BEGIN_NAMESPACE
-class QQuickItem;
-QT_END_NAMESPACE
-
-class Q3DSQmlStreamRenderer;
-
-class Q3DS_QMLSTREAMERSHARED_EXPORT Q3DSQmlStreamProducer : public QObject,
- public IQ3DSQmlStreamProducer
-{
- Q_OBJECT
-public:
- Q3DSQmlStreamProducer(const QString &id, const QString &args, QObject *parent = nullptr);
- virtual ~Q3DSQmlStreamProducer();
-
- IQ3DSQmlStreamRenderer* getRenderer() override;
-
- void setPresentationItem(QQuickItem *item);
-
-private:
- QString m_id;
- QString m_args;
- Q3DSQmlStreamRenderer *m_renderer;
-};
-
-#endif // Q3DS_QMLSTREAM_PRODUCER_H
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlstreamproxy.cpp b/src/QtExtras/qmlstreamer/q3dsqmlstreamproxy.cpp
deleted file mode 100644
index 9b8550cf..00000000
--- a/src/QtExtras/qmlstreamer/q3dsqmlstreamproxy.cpp
+++ /dev/null
@@ -1,253 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "q3dsqmlstreamservice.h"
-#include "q3dsqmlstreamproxy.h"
-#include "q3dsqmlstreamproducer.h"
-#include "q3dsincubationcontroller.h"
-
-#include <QCoreApplication>
-#include <QGuiApplication>
-#include <QQmlComponent>
-#include <QQuickItem>
-#include <QQmlIncubationController>
-#include <QScreen>
-#include <QFileInfo>
-
-class Qt3DSQmlStreamEvent : public QEvent
-{
-public:
- Qt3DSQmlStreamEvent(const QString &id, const QString &args)
- : QEvent(QEvent::User), presentationId(id), presentationArgs(args), unregister(false)
- {
-
- }
-
- Qt3DSQmlStreamEvent(const QString &id)
- : QEvent(QEvent::User), presentationId(id), unregister(true)
- {
-
- }
-
- QString presentationId;
- QString presentationArgs;
- bool unregister;
-};
-
-Q3DSQmlStreamProxy::renderitem::~renderitem()
-{
- delete item;
- delete component;
-}
-
-Q3DSQmlStreamProxy::Q3DSQmlStreamProxy(QObject *parent)
- : QObject(parent), m_engine(nullptr), m_settings(nullptr)
-{
-}
-
-Q3DSQmlStreamProxy::~Q3DSQmlStreamProxy()
-{
- for (Q3DSQmlStreamProducer *p : m_streamProducers) {
- IQ3DSQmlStreamService::getQmlStreamService()->unregisterProducer(p);
- delete p;
- }
-}
-
-void Q3DSQmlStreamProxy::loadPresentationItem(const QString& presentationId,
- const QString& presentationArgs)
-{
- if (!m_engine) {
- m_engine = new QQmlEngine;
-
- // Add extra import path for binary installations
- QString extraImportPath(QStringLiteral("%1/qml"));
- m_engine->addImportPath(extraImportPath.arg(QGuiApplication::applicationDirPath()));
-
- m_engine->setIncubationController(new Q3DSIncubationController(this));
- }
-
- QString itemPath = presentationArgs;
- itemPath.replace("\\", "/");
-
- QUrl purl = QUrl(itemPath);
- if (purl.isRelative()) {
- purl.setPath(m_path.path() + QStringLiteral("/") + purl.path());
- purl.setScheme(m_path.scheme());
- } else {
- purl = pathToUrl(itemPath);
- }
-
- QQmlComponent *component = new QQmlComponent(m_engine, purl);
- if (!component)
- return;
- renderitem *item = new renderitem;
- item->args = itemPath;
- item->component = component;
- item->presentationId = presentationId;
- m_loadedItems.push_back(item);
-
- if (component->isLoading())
- connect(component, &QQmlComponent::statusChanged, this, &Q3DSQmlStreamProxy::itemLoaded);
- else
- itemLoaded();
-}
-
-void Q3DSQmlStreamProxy::itemLoaded()
-{
- for (renderitem *item : m_loadedItems) {
- if (item->item == nullptr && item->component->isLoading() == false) {
- disconnect(item->component, &QQmlComponent::statusChanged,
- this, &Q3DSQmlStreamProxy::itemLoaded);
- if (!item->component->errors().isEmpty()) {
- QList<QQmlError> errorList = item->component->errors();
- for (const QQmlError &error: errorList)
- qWarning() << error.url() << error.line() << error;
- m_loadedItems.removeAll(item);
- delete item;
- } else {
- QObject *root = item->component->create();
- if (!root) {
- QList<QQmlError> errorList = item->component->errors();
- for (const QQmlError &error: errorList)
- qWarning() << error.url() << error.line() << error;
- m_loadedItems.removeAll(item);
- delete item;
- } else {
- QQuickItem *qi = qobject_cast<QQuickItem *>(root);
- if (!qi) {
- m_loadedItems.removeAll(item);
- delete item;
- } else {
- item->item = qi;
- m_streamProducers[item->presentationId]->setPresentationItem(qi);
- }
- }
- }
- }
- }
-}
-
-QUrl Q3DSQmlStreamProxy::pathToUrl(const QString &path)
-{
- QUrl retval;
- if (path.startsWith(QStringLiteral(":"))) {
- retval.setScheme(QStringLiteral("qrc"));
- retval.setPath(path.mid(1));
- } else if (path.startsWith(QStringLiteral("qrc:"), Qt::CaseInsensitive)) {
- retval.setScheme(QStringLiteral("qrc"));
- retval.setPath(path.mid(4));
- } else {
- retval.setScheme(QStringLiteral("file"));
- retval.setPath(path);
- }
- return retval;
-}
-
-bool Q3DSQmlStreamProxy::event(QEvent *event)
-{
- if (event->type() == QEvent::User) {
- Qt3DSQmlStreamEvent *e = static_cast<Qt3DSQmlStreamEvent *>(event);
- Q3DSQmlStreamProducer *producer = nullptr;
- if (e->unregister && m_streamProducers.contains(e->presentationId)) {
- for (int i = 0; i < m_loadedItems.size(); i++) {
- if (m_loadedItems[i]->presentationId == e->presentationId) {
- delete m_loadedItems[i];
- m_loadedItems.remove(i);
- break;
- }
- }
- producer = static_cast<Q3DSQmlStreamProducer *>(
- m_streamProducers.take(e->presentationId));
- IQ3DSQmlStreamService::getQmlStreamService()->unregisterProducer(producer);
- delete producer;
- return true;
- }
- if (!m_streamProducers.contains(e->presentationId)) {
- producer = new Q3DSQmlStreamProducer(e->presentationId, e->presentationArgs, this);
- m_streamProducers[e->presentationId] = producer;
- IQ3DSQmlStreamService::getQmlStreamService()
- ->registerProducer(producer, e->presentationId.toLatin1().data());
- } else {
- producer = static_cast<Q3DSQmlStreamProducer *>(m_streamProducers[e->presentationId]);
- }
-
- if (m_settings) {
- bool streamFound = false;
- for (Q3DSQmlStream *s : m_settings->qmlStreamsList()) {
- if (s->presentationId() == e->presentationId) {
- producer->setPresentationItem(s->item());
- streamFound = true;
- break;
- }
- }
- if (!streamFound && !e->presentationArgs.isNull())
- loadPresentationItem(e->presentationId, e->presentationArgs);
- } else if (!e->presentationArgs.isNull()){
- loadPresentationItem(e->presentationId, e->presentationArgs);
- }
- return true;
- }
- return false;
-}
-
-void Q3DSQmlStreamProxy::registerPresentation(const QString &presentationId, const QString &args)
-{
- QCoreApplication::postEvent(this,
- new Qt3DSQmlStreamEvent(QString(presentationId), QString(args)));
-}
-
-void Q3DSQmlStreamProxy::unregisterPresentation(const QString &presentationId)
-{
- QCoreApplication::postEvent(this, new Qt3DSQmlStreamEvent(QString(presentationId)));
-}
-
-void Q3DSQmlStreamProxy::setSettings(Q3DSSubPresentationSettings *settings)
-{
- m_settings = settings;
-}
-
-void Q3DSQmlStreamProxy::setPath(const QString& path)
-{
- QString modPath = QFileInfo(path).path(); // path() strips filename out
- m_path = pathToUrl(modPath);
-}
-
-void Q3DSQmlStreamProxy::setEngine(QQmlEngine *engine)
-{
- if (m_engine)
- delete m_engine;
-
- m_engine = engine;
-
- // Add extra import path for binary installations
- QString extraImportPath(QStringLiteral("%1/qml"));
- m_engine->addImportPath(extraImportPath.arg(QGuiApplication::applicationDirPath()));
-
- m_engine->setIncubationController(new Q3DSIncubationController(this));
-}
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlstreamproxy.h b/src/QtExtras/qmlstreamer/q3dsqmlstreamproxy.h
deleted file mode 100644
index 85a1cc6d..00000000
--- a/src/QtExtras/qmlstreamer/q3dsqmlstreamproxy.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef Q3DS_QMLSTREAM_PROXY_H
-#define Q3DS_QMLSTREAM_PROXY_H
-
-#include <QtCore/QObject>
-#include <QtCore/QEvent>
-#include <QtCore/QString>
-#include <QtCore/QVector>
-#include <QtQml/QQmlEngine>
-
-#include "q3dsqmlstreamproducer.h"
-#include "q3dsqmlsubpresentationsettings.h"
-
-class Q3DS_QMLSTREAMERSHARED_EXPORT Q3DSQmlStreamProxy : public QObject
-{
- Q_OBJECT
-
-public:
- Q3DSQmlStreamProxy(QObject *parent = nullptr);
- ~Q3DSQmlStreamProxy();
-
- bool event(QEvent *event) Q_DECL_OVERRIDE;
- void registerPresentation(const QString &presentationId, const QString &args);
- void unregisterPresentation(const QString &presentationId);
- void setSettings(Q3DSSubPresentationSettings *settings);
- void setPath(const QString& path);
- void setEngine(QQmlEngine *engine);
-
-private:
- void loadPresentationItem(const QString& presentationId, const QString& presentationArgs);
- void itemLoaded();
- QUrl pathToUrl(const QString &path);
-
- QQmlEngine *m_engine;
- Q3DSSubPresentationSettings *m_settings;
- QMap<QString, Q3DSQmlStreamProducer *> m_streamProducers;
- struct renderitem {
- QString args;
- QString presentationId;
- QQmlComponent *component;
- QQuickItem *item;
- renderitem()
- : component(nullptr), item(nullptr) {}
- ~renderitem();
- };
-
- QUrl m_path;
- QVector<renderitem *> m_loadedItems;
-};
-
-#endif // Q3DS_QMLSTREAM_PROXY_H
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.cpp b/src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.cpp
deleted file mode 100644
index f1879a6e..00000000
--- a/src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.cpp
+++ /dev/null
@@ -1,483 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "q3dsqmlstreamrenderer.h"
-
-#include <QCoreApplication>
-#include <qdebug.h>
-#include <QOpenGLContext>
-#include <QSurface>
-#include <QPainter>
-#include <QOpenGLFunctions>
-#include <QWindow>
-#include <QQuickWindow>
-#include <QQuickRenderControl>
-#include <QtQml/QQmlEngine>
-#include <QtQml/QQmlContext>
-#include <QQuickWindow>
-#include <QQuickItem>
-#include <QThread>
-#include <QOffscreenSurface>
-#include <QOpenGLFramebufferObject>
-#include <QOpenGLShaderProgram>
-#include <QOpenGLBuffer>
-#include <QOpenGLVertexArrayObject>
-
-Q_GLOBAL_STATIC(QThread, renderThread)
-Q_GLOBAL_STATIC(QAtomicInt, renderThreadClientCount)
-
-#define RenderEvent(name, value) \
- class name : public QEvent \
- { \
- public: \
- name() : QEvent(_type) {} \
- static const QEvent::Type _type; \
- }; \
- const QEvent::Type name::_type = QEvent::Type(value);
-
-RenderEvent(InitializeRender, QEvent::User + 1)
-RenderEvent(RequestUpdate, QEvent::User + 2)
-RenderEvent(InitializeRenderThread, QEvent::User + 3)
-RenderEvent(PrepareRender, QEvent::User + 4)
-RenderEvent(Cleanup, QEvent::User + 5)
-
-#define EventType(e) (e::_type)
-
-class RenderControl : public QQuickRenderControl
-{
-public:
- RenderControl(QWindow *w)
- : m_window(w)
- {
- }
-
- QWindow *renderWindow(QPoint *offset) Q_DECL_OVERRIDE
- {
- if (offset)
- *offset = QPoint(0, 0);
- return m_window;
- }
-
-private:
- QWindow *m_window;
-};
-
-Q3DSQmlStreamEventHandler::Q3DSQmlStreamEventHandler(Q3DSQmlStreamRenderer *renderer)
- : m_renderer(renderer)
-{
-
-}
-
-bool Q3DSQmlStreamEventHandler::event(QEvent *e)
-{
- switch (e->type()) {
-
- case EventType(RequestUpdate): {
- m_renderer->renderTexture();
- return true;
- }
-
- case EventType(InitializeRenderThread): {
- m_renderer->initializeRender();
- return true;
- }
-
- case EventType(Cleanup): {
- m_renderer->cleanup();
- return true;
- }
-
- default:
- break;
- }
- return QObject::event(e);
-}
-
-Q3DSQmlStreamRenderer::Q3DSQmlStreamRenderer()
- : m_renderControl(nullptr)
- , m_quickWindow(nullptr)
- , m_rootItem(nullptr)
- , m_frameBuffer(nullptr)
- , m_program(nullptr)
- , m_vao(nullptr)
- , m_vertices(nullptr)
- , m_context(nullptr)
- , m_offscreenSurface(nullptr)
- , m_renderObject(nullptr)
- , m_renderThread(nullptr)
- , m_requestUpdate(false)
- , m_initialized(false)
- , m_prepared(false)
- , m_update(false)
- , m_delayedUpdateRequest(false)
-{
- renderThreadClientCount->fetchAndAddAcquire(1);
-
- QSurfaceFormat format = QSurfaceFormat::defaultFormat();
- if (QOpenGLContext::currentContext())
- format = QOpenGLContext::currentContext()->format();
- else {
- format.setDepthBufferSize(24);
- format.setStencilBufferSize(8);
- }
-
- m_offscreenSurface = new QOffscreenSurface;
- m_offscreenSurface->setFormat(format);
- m_offscreenSurface->create();
-
- m_renderControl = new RenderControl(nullptr);
-
- connect(m_renderControl, &QQuickRenderControl::renderRequested,
- this, &Q3DSQmlStreamRenderer::requestUpdate);
- connect(m_renderControl, &QQuickRenderControl::sceneChanged,
- this, &Q3DSQmlStreamRenderer::requestUpdate);
-
- m_quickWindow = new QQuickWindow(m_renderControl);
- m_quickWindow->setClearBeforeRendering(true);
- m_quickWindow->setColor(Qt::transparent);
-
- m_renderObject = new Q3DSQmlStreamEventHandler(this);
- renderThread->setObjectName(QStringLiteral("Qt3DSQmlStreamRenderer::renderThread"));
- m_renderThread = renderThread;
-
- m_renderObject->moveToThread(m_renderThread);
- if (!m_renderThread->isRunning())
- m_renderThread->start();
-}
-
-Q3DSQmlStreamRenderer::~Q3DSQmlStreamRenderer()
-{
- QMutexLocker lock(&m_mutex);
- QCoreApplication::postEvent(m_renderObject, new Cleanup());
- m_waitCondition.wait(&m_mutex);
-
- delete m_offscreenSurface;
- delete m_renderControl;
- delete m_quickWindow;
- delete m_renderObject;
-
- renderThreadClientCount->fetchAndSubAcquire(1);
- if (renderThreadClientCount->load() == 0)
- renderThread->quit();
-}
-
-void Q3DSQmlStreamRenderer::cleanup()
-{
- if (m_context)
- m_context->makeCurrent(m_offscreenSurface);
- if (m_renderControl)
- m_renderControl->invalidate();
-
- delete m_frameBuffer;
- delete m_program;
- delete m_vertices;
-
- if (m_context)
- m_context->doneCurrent();
- delete m_context;
-
- if (m_renderObject)
- m_renderObject->moveToThread(QCoreApplication::instance()->thread());
- m_waitCondition.wakeOne();
-}
-
-bool Q3DSQmlStreamRenderer::initialize(QOpenGLContext *context, QSurface *surface)
-{
- Q_UNUSED(surface);
- QMutexLocker lock(&m_renderMutex);
- if (!m_context) {
- m_context = new QOpenGLContext();
- m_context->setShareContext(context);
- m_context->setFormat(context->format());
- m_context->create();
- m_context->moveToThread(m_renderThread);
- }
-
- if (!m_rootItem) {
- return true;
- }
-
- if (m_initialized) {
- Q_ASSERT(QOpenGLContext::areSharing(context, m_context));
- return true;
- }
-
- m_rootItem->setParentItem(m_quickWindow->contentItem());
-
- updateSizes();
-
- m_initialized = true;
- // Initialize render thread
- QCoreApplication::postEvent(m_renderObject,
- new InitializeRenderThread());
- return true;
-}
-void Q3DSQmlStreamRenderer::initializeFboCopy()
-{
- m_program = new QOpenGLShaderProgram;
- if (m_context->format().renderableType() == QSurfaceFormat::OpenGLES) {
- static const char *vsSource =
- "attribute highp vec4 pos;\n"
- "attribute highp vec2 tc;\n"
- "varying lowp vec2 texcoord;\n"
- "void main() {\n"
- " texcoord = tc;\n"
- " gl_Position = pos;\n"
- "}\n";
- static const char *fsSource =
- "varying highp vec2 texcoord;\n"
- "uniform sampler2D sampler;\n"
- "void main() {\n"
- " gl_FragColor = texture2D(sampler, texcoord);\n"
- "}\n";
- m_program->addShaderFromSourceCode(QOpenGLShader::Vertex, vsSource);
- m_program->addShaderFromSourceCode(QOpenGLShader::Fragment, fsSource);
- } else {
- static const char *vsSource =
- "#version 150 core\n"
- "in vec4 pos;\n"
- "in vec2 tc;\n"
- "out vec2 texcoord;\n"
- "void main() {\n"
- " texcoord = tc;\n"
- " gl_Position = pos;\n"
- "}\n";
- static const char *fsSource =
- "#version 150 core\n"
- "in vec2 texcoord;\n"
- "out vec4 fragColor;\n"
- "uniform sampler2D sampler;\n"
- "void main() {\n"
- " fragColor = texture(sampler, texcoord);\n"
- "}\n";
- m_program->addShaderFromSourceCode(QOpenGLShader::Vertex, vsSource);
- m_program->addShaderFromSourceCode(QOpenGLShader::Fragment, fsSource);
- }
-
- m_program->bindAttributeLocation("pos", 0);
- m_program->bindAttributeLocation("tc", 1);
-
- if (!m_program->link()) {
- QByteArray logData(m_program->log().toLocal8Bit());
- const char *log = logData.data();
- qFatal("Failed to create shader program: %s", log);
- }
-
- m_vertices = new QOpenGLBuffer;
- m_vertices->create();
- m_vertices->bind();
-
- static const float vertices[] =
- {
- -1, -1, 0, 1, 0, 0,
- 1, -1, 0, 1, 1, 0,
- 1, 1, 0, 1, 1, 1,
- -1, -1, 0, 1, 0, 0,
- 1, 1, 0, 1, 1, 1,
- -1, 1, 0, 1, 0, 1,
- };
-
- m_vertices->allocate(vertices, sizeof(vertices));
- m_vertices->release();
-}
-
-void Q3DSQmlStreamRenderer::initializeRender()
-{
- QMutexLocker lock(&m_renderMutex);
- m_context->makeCurrent(m_offscreenSurface);
- m_renderControl->initialize(m_context);
- m_context->doneCurrent();
- QCoreApplication::postEvent(this, new PrepareRender());
-}
-
-QSize Q3DSQmlStreamRenderer::getDesiredSize()
-{
- return m_size;
-}
-
-E_TEXTURE_FORMAT Q3DSQmlStreamRenderer::getDesiredFormat()
-{
- return E_TEXTURE_RGBA8;
-}
-
-bool Q3DSQmlStreamRenderer::isUpdateRequested()
-{
- return m_update;
-}
-
-// Called by stream renderer client when it stops using the renderer
-// TODO: We are sharing the context so stop using it.
-void Q3DSQmlStreamRenderer::uninitialize()
-{
-}
-
-void Q3DSQmlStreamRenderer::setItem(QQuickItem *item)
-{
- if (item && m_rootItem && m_initialized) {
- QMutexLocker lock(&m_renderMutex);
- m_rootItem->setParentItem(nullptr);
- m_rootItem = item;
- m_rootItem->setParentItem(m_quickWindow->contentItem());
- updateSizes();
- } else {
- if (item && m_rootItem != item) {
- m_rootItem = item;
-
- if (m_context)
- initialize(m_context, nullptr);
- }
- }
-}
-
-bool Q3DSQmlStreamRenderer::event(QEvent *event)
-{
- switch (event->type()) {
-
- case EventType(PrepareRender): {
-
- m_renderControl->prepareThread(m_renderThread);
- m_prepared = true;
-
- if (m_delayedUpdateRequest) {
- QCoreApplication::postEvent(this, new RequestUpdate());
- m_delayedUpdateRequest = false;
- }
-
- return true;
- }
-
- case EventType(RequestUpdate): {
-
- m_renderControl->polishItems();
- QMutexLocker lock(&m_mutex);
- QCoreApplication::postEvent(m_renderObject, new RequestUpdate());
- m_waitCondition.wait(&m_mutex);
- return true;
- }
-
- default:
- break;
- }
-
- return QObject::event(event);
-}
-
-void Q3DSQmlStreamRenderer::updateSizes()
-{
- if (m_rootItem->width() > 0 && m_rootItem->height() > 0) {
- m_size = QSize(m_rootItem->width(), m_rootItem->height());
- } else {
- m_rootItem->setWidth(256);
- m_rootItem->setHeight(256);
- }
-
- m_quickWindow->setGeometry(0, 0, m_size.width(), m_size.height());
-}
-
-void Q3DSQmlStreamRenderer::requestUpdate()
-{
- if (!m_requestUpdate) {
- m_requestUpdate = true;
- if (m_initialized)
- QCoreApplication::postEvent(this, new RequestUpdate());
- else
- m_delayedUpdateRequest = true;
- }
-}
-
-void Q3DSQmlStreamRenderer::renderTexture()
-{
- QMutexLocker lock(&m_renderMutex);
- m_context->makeCurrent(m_offscreenSurface);
-
- if (!m_frameBuffer || m_frameBuffer->size() != m_size) {
- if (m_frameBuffer)
- delete m_frameBuffer;
-
- m_frameBuffer = new QOpenGLFramebufferObject(m_size);
- m_frameBuffer->setAttachment(QOpenGLFramebufferObject::CombinedDepthStencil);
- m_quickWindow->setRenderTarget(m_frameBuffer);
- }
-
- {
- QMutexLocker lock(&m_mutex);
- if (m_requestUpdate) {
- m_requestUpdate = false;
- m_renderControl->sync();
- m_renderControl->render();
- m_waitCondition.wakeOne();
- }
- }
-
- m_context->functions()->glFlush();
- m_quickWindow->resetOpenGLState();
- m_context->doneCurrent();
- m_update = true;
-}
-
-void Q3DSQmlStreamRenderer::render()
-{
- QMutexLocker lock(&m_renderMutex);
- if (m_update && m_initialized) {
- QOpenGLContext *context = QOpenGLContext::currentContext();
- QOpenGLFunctions *func = context->functions();
- GLuint texture = m_frameBuffer->texture();
- func->glDisable(GL_DEPTH_TEST);
- func->glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
-
- if (!m_program)
- initializeFboCopy();
-
- m_program->bind();
-
- if (!m_vao) {
- m_vao = new QOpenGLVertexArrayObject;
- m_vao->create();
- m_vao->bind();
- m_vertices->bind();
-
- m_program->enableAttributeArray(0);
- m_program->enableAttributeArray(1);
- func->glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 6 * sizeof(float), 0);
- func->glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 6 * sizeof(float),
- (const void *)(4 * sizeof(GLfloat)));
- m_vertices->release();
- } else {
- m_vao->bind();
- }
-
- func->glActiveTexture(GL_TEXTURE0);
- func->glBindTexture(GL_TEXTURE_2D, texture);
- func->glDrawArrays(GL_TRIANGLES, 0, 6);
- func->glEnable(GL_DEPTH_TEST);
-
- m_program->release();
- m_vao->release();
- }
-}
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.h b/src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.h
deleted file mode 100644
index e9274794..00000000
--- a/src/QtExtras/qmlstreamer/q3dsqmlstreamrenderer.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef Q3DS_QMLSTREAM_RENDERER_H
-#define Q3DS_QMLSTREAM_RENDERER_H
-
-#include "q3dsqmlstreamservice.h"
-
-#include <QOpenGLFunctions>
-#include <QSize>
-#include <QThread>
-#include <QWaitCondition>
-#include <QMutex>
-
-QT_BEGIN_NAMESPACE
-class QQuickRenderControl;
-class QQuickWindow;
-class QQuickItem;
-class QOpenGLContext;
-class QOffscreenSurface;
-class QOpenGLFramebufferObject;
-class QOpenGLShaderProgram;
-class QOpenGLBuffer;
-class QOpenGLVertexArrayObject;
-QT_END_NAMESPACE
-
-class Q3DSQmlStreamRenderer;
-
-class Q3DSQmlStreamEventHandler : public QObject
-{
- Q_OBJECT
-public:
- Q3DSQmlStreamEventHandler(Q3DSQmlStreamRenderer *renderer);
- bool event(QEvent *e) Q_DECL_OVERRIDE;
-
-private:
- Q3DSQmlStreamRenderer *m_renderer;
-};
-
-class Q3DSQmlStreamRenderer : public QObject,
- public IQ3DSQmlStreamRenderer
-{
- Q_OBJECT
-public:
- Q3DSQmlStreamRenderer();
- virtual ~Q3DSQmlStreamRenderer();
-
- bool initialize(QOpenGLContext *context, QSurface *surface) override;
-
- QSize getDesiredSize() override;
- E_TEXTURE_FORMAT getDesiredFormat() override;
- bool isUpdateRequested() override;
-
- void render() override;
-
- void uninitialize() override;
-
- void setItem(QQuickItem *item);
-
- bool event(QEvent *event) Q_DECL_OVERRIDE;
-
-private:
-
- void updateSizes();
- void requestUpdate();
- void cleanup();
- void initializeRender();
- void renderTexture();
- void initializeFboCopy();
-
- QSize m_size;
- QMutex m_mutex, m_renderMutex;
- QWaitCondition m_waitCondition;
-
- QQuickRenderControl *m_renderControl;
- QQuickWindow *m_quickWindow;
- QQuickItem *m_rootItem;
-
- QOpenGLFramebufferObject *m_frameBuffer;
- QOpenGLShaderProgram *m_program;
- QOpenGLVertexArrayObject *m_vao;
- QOpenGLBuffer *m_vertices;
- QOpenGLContext *m_context;
- QOffscreenSurface *m_offscreenSurface;
-
- Q3DSQmlStreamEventHandler *m_renderObject;
- QThread *m_renderThread;
-
- bool m_requestUpdate;
- bool m_initialized;
- bool m_prepared;
- bool m_update;
- bool m_delayedUpdateRequest;
-
- friend class Q3DSQmlStreamEventHandler;
-};
-
-#endif // Q3DS_QMLSTREAM_RENDERER_H
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlstreamservice.h b/src/QtExtras/qmlstreamer/q3dsqmlstreamservice.h
deleted file mode 100644
index 2b44fe3b..00000000
--- a/src/QtExtras/qmlstreamer/q3dsqmlstreamservice.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef Q3DS_QMLSTREAM_SERVICE_H
-#define Q3DS_QMLSTREAM_SERVICE_H
-
-#include <qglobal.h>
-#include <q3dsqmlstreamer_global.h>
-
-QT_BEGIN_NAMESPACE
-class QOpenGLContext;
-class QSurface;
-class QSize;
-QT_END_NAMESPACE
-
-enum E_TEXTURE_FORMAT
-{
- E_TEXTURE_RGBA8,
- E_TEXTURE_UNKNOWN
-};
-
-class Q3DS_QMLSTREAMERSHARED_EXPORT IQ3DSQmlStreamRenderer
-{
-public:
- virtual bool initialize(QT_PREPEND_NAMESPACE(QOpenGLContext) *context, QSurface *surface) = 0;
-
- virtual QSize getDesiredSize() = 0;
- virtual E_TEXTURE_FORMAT getDesiredFormat() = 0;
- virtual bool isUpdateRequested() = 0;
-
- virtual void render() = 0;
-
- virtual void uninitialize() = 0;
-};
-
-class Q3DS_QMLSTREAMERSHARED_EXPORT IQ3DSQmlStreamProducer
-{
-public:
- virtual IQ3DSQmlStreamRenderer *getRenderer() = 0;
-};
-
-class Q3DS_QMLSTREAMERSHARED_EXPORT IQ3DSQmlStreamService
-{
-public:
- virtual IQ3DSQmlStreamRenderer *getRenderer(const char *id) = 0;
- virtual bool registerProducer(IQ3DSQmlStreamProducer *producer, const char *id) = 0;
- virtual void unregisterProducer(IQ3DSQmlStreamProducer *producer) = 0;
-
- static IQ3DSQmlStreamService *getQmlStreamService();
-};
-
-#endif // Q3DS_QMLSTREAM_SERVICE_H
-
-
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlsubpresentationsettings.cpp b/src/QtExtras/qmlstreamer/q3dsqmlsubpresentationsettings.cpp
deleted file mode 100644
index 8487909b..00000000
--- a/src/QtExtras/qmlstreamer/q3dsqmlsubpresentationsettings.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "q3dsqmlsubpresentationsettings.h"
-#include "q3dsqmlstream.h"
-
-Q3DSSubPresentationSettings::Q3DSSubPresentationSettings(QObject *parent)
- : QObject(parent)
-{
-
-}
-
-Q3DSSubPresentationSettings::~Q3DSSubPresentationSettings()
-{
- qDeleteAll(m_list);
-}
-
-QQmlListProperty<Q3DSQmlStream> Q3DSSubPresentationSettings::qmlStreams()
-{
- return QQmlListProperty<Q3DSQmlStream>(this, m_list);
-}
-
-QList<Q3DSQmlStream *> Q3DSSubPresentationSettings::qmlStreamsList()
-{
- return m_list;
-}
-
diff --git a/src/QtExtras/qmlstreamer/q3dsqmlsubpresentationsettings.h b/src/QtExtras/qmlstreamer/q3dsqmlsubpresentationsettings.h
deleted file mode 100644
index b295f2a0..00000000
--- a/src/QtExtras/qmlstreamer/q3dsqmlsubpresentationsettings.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef Q3DS_QML_SUBPRESENTATION_SETTINGS_H
-#define Q3DS_QML_SUBPRESENTATION_SETTINGS_H
-
-#include <QtCore/QObject>
-#include <QtCore/QList>
-#include <QtQml/QQmlListProperty>
-
-#include "q3dsqmlstream.h"
-#include "q3dsqmlstreamer_global.h"
-
-class Q3DS_QMLSTREAMERSHARED_EXPORT Q3DSSubPresentationSettings : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQmlListProperty<Q3DSQmlStream> qmlStreams READ qmlStreams)
-public:
-
- Q3DSSubPresentationSettings(QObject *parent = nullptr);
- ~Q3DSSubPresentationSettings();
-
- QQmlListProperty<Q3DSQmlStream> qmlStreams();
- QList<Q3DSQmlStream *> qmlStreamsList();
-private:
- QList<Q3DSQmlStream *> m_list;
-};
-
-#endif // Q3DS_QML_SUBPRESENTATION_SETTINGS_H
diff --git a/src/QtExtras/qmlstreamer/qmlstreamer.pro b/src/QtExtras/qmlstreamer/qmlstreamer.pro
deleted file mode 100644
index 19b91a2b..00000000
--- a/src/QtExtras/qmlstreamer/qmlstreamer.pro
+++ /dev/null
@@ -1,50 +0,0 @@
-TEMPLATE = lib
-TARGET = qt3dsqmlstreamer
-VERSION = $$MODULE_VERSION
-include($$PWD/../../commonplatform.pri)
-
-CONFIG += installed
-load(qt_helper_lib)
-
-# qt_helper_lib assumes non-qt lib, so it clears some qt variables, reset those
-CONFIG += qt
-QT += core qml quick opengl
-
-DEFINES += QMLSTREAMER_LIBRARY
-
-# The following define makes your compiler emit warnings if you use
-# any feature of Qt which as been marked as deprecated (the exact warnings
-# depend on your compiler). Please consult the documentation of the
-# deprecated API in order to know how to port your code away from it.
-DEFINES += QT_DEPRECATED_WARNINGS
-
-# You can also make your code fail to compile if you use deprecated APIs.
-# In order to do so, uncomment the following line.
-# You can also select to disable deprecated APIs only up to a certain version of Qt.
-#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
-
-SOURCES += \
- q3dsqmlstream.cpp \
- q3dsqmlstreamerserviceimpl.cpp \
- q3dsqmlstreamproducer.cpp \
- q3dsqmlstreamproxy.cpp \
- q3dsqmlstreamrenderer.cpp \
- q3dsqmlsubpresentationsettings.cpp
-
-HEADERS += \
- q3dsincubationcontroller.h \
- q3dsqmlstream.h \
- q3dsqmlstreamer_global.h \
- q3dsqmlstreamerserviceimpl.h \
- q3dsqmlstreamproducer.h \
- q3dsqmlstreamproxy.h \
- q3dsqmlstreamrenderer.h \
- q3dsqmlstreamservice.h \
- q3dsqmlsubpresentationsettings.h
-
-INCLUDEPATH += \
- $$PWD/../Runtime/Source/engine \
- $$PWD/../Runtime/Source/system \
- $$PWD/../QtExtras/qmlstreamer
-
-macos:QMAKE_LFLAGS_SONAME = -Wl,-install_name,@rpath/