diff options
author | Mike Krus <mike.krus@kdab.com> | 2016-03-16 21:09:04 +0000 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2016-03-17 21:21:39 +0000 |
commit | 7b04eec1ceb5de8c9f74ed0fa319287035480754 (patch) | |
tree | 5988deb15432bd859094ef0bc849a3815aa71824 /src | |
parent | 7aa715798b7771586e1109ebd61eb492c8a8f613 (diff) |
Merge QAbstractSceneLoader down into QSceneLoader
Task-number: QTBUG-51484
Change-Id: I8eebe105331cb94306d27739996e34862fbd1a0a
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/quick3d/imports/render/qt3dquick3drenderplugin.cpp | 2 | ||||
-rw-r--r-- | src/quick3d/quick3drender/items/quick3dscene_p.h | 4 | ||||
-rw-r--r-- | src/render/frontend/qrenderaspect.cpp | 4 | ||||
-rw-r--r-- | src/render/io/io.pri | 4 | ||||
-rw-r--r-- | src/render/io/qabstractsceneloader.cpp | 111 | ||||
-rw-r--r-- | src/render/io/qabstractsceneloader.h | 95 | ||||
-rw-r--r-- | src/render/io/qsceneloader.cpp | 57 | ||||
-rw-r--r-- | src/render/io/qsceneloader.h | 35 | ||||
-rw-r--r-- | src/render/io/qsceneloader_p.h (renamed from src/render/io/qabstractsceneloader_p.h) | 16 | ||||
-rw-r--r-- | src/render/io/scene.cpp | 6 |
10 files changed, 102 insertions, 232 deletions
diff --git a/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp b/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp index bb2e8e947..64fad93e4 100644 --- a/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp +++ b/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp @@ -39,7 +39,6 @@ ****************************************************************************/ #include "qt3dquick3drenderplugin.h" -#include <Qt3DRender/qabstractsceneloader.h> #include <Qt3DRender/qsceneloader.h> #include <Qt3DRender/qmesh.h> #include <Qt3DRender/qrenderpass.h> @@ -185,7 +184,6 @@ void Qt3DQuick3DRenderPlugin::registerTypes(const char *uri) qmlRegisterType<Qt3DRender::QPickingSettings>(uri, 2, 0, "PickingSettings"); // @uri Qt3D.Render - qmlRegisterUncreatableType<Qt3DRender::QAbstractSceneLoader>(uri, 2, 0, "QAbstractSceneLoader", "QAbstractScene is abstract"); Qt3DRender::Quick::registerExtendedType<Qt3DRender::QSceneLoader, Qt3DRender::Render::Quick::Quick3DScene>("QSceneLoader", "Qt3D.Render/SceneLoader", uri, 2, 0, "SceneLoader"); Qt3DRender::Quick::registerExtendedType<Qt3DRender::QEffect, Qt3DRender::Render::Quick::Quick3DEffect>("QEffect", "Qt3D.Render/Effect", uri, 2, 0, "Effect"); Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTechnique, Qt3DRender::Render::Quick::Quick3DTechnique>("QTechnique", "Qt3D.Render/Technique", uri, 2, 0, "Technique"); diff --git a/src/quick3d/quick3drender/items/quick3dscene_p.h b/src/quick3d/quick3drender/items/quick3dscene_p.h index 30674651b..60c2d2ab5 100644 --- a/src/quick3d/quick3drender/items/quick3dscene_p.h +++ b/src/quick3d/quick3drender/items/quick3dscene_p.h @@ -53,7 +53,7 @@ #include <Qt3DQuickRender/private/qt3dquickrender_global_p.h> #include <Qt3DQuick/private/quick3dentity_p.h> -#include <Qt3DRender/qabstractsceneloader.h> +#include <Qt3DRender/qsceneloader.h> QT_BEGIN_NAMESPACE @@ -67,7 +67,7 @@ class QT3DQUICKRENDERSHARED_PRIVATE_EXPORT Quick3DScene : public QObject public: explicit Quick3DScene(QObject *parent = 0); - inline QAbstractSceneLoader *parentScene() const { return qobject_cast<QAbstractSceneLoader *>(parent()); } + inline QSceneLoader *parentScene() const { return qobject_cast<QSceneLoader *>(parent()); } }; } // namespace Quick diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp index 8de5a0e03..edfe8c8cf 100644 --- a/src/render/frontend/qrenderaspect.cpp +++ b/src/render/frontend/qrenderaspect.cpp @@ -46,7 +46,7 @@ #include <Qt3DRender/private/scenemanager_p.h> #include <Qt3DRender/private/geometryrenderermanager_p.h> -#include <Qt3DRender/qabstractsceneloader.h> +#include <Qt3DRender/qsceneloader.h> #include <Qt3DRender/qcameraselector.h> #include <Qt3DRender/qlayer.h> #include <Qt3DRender/qlayerfilter.h> @@ -193,7 +193,7 @@ void QRenderAspectPrivate::registerBackendTypes() q->registerBackendType<Qt3DRender::QCameraLens>(QBackendNodeMapperPtr(new Render::NodeFunctor<Render::CameraLens, Render::CameraManager>(m_renderer, m_nodeManagers->cameraManager()))); q->registerBackendType<QLayer>(QBackendNodeMapperPtr(new Render::NodeFunctor<Render::Layer, Render::LayerManager>(m_renderer, m_nodeManagers->layerManager()))); q->registerBackendType<QRenderPass>(QBackendNodeMapperPtr(new Render::NodeFunctor<Render::RenderPass, Render::RenderPassManager>(m_renderer, m_nodeManagers->renderPassManager()))); - q->registerBackendType<QAbstractSceneLoader>(QBackendNodeMapperPtr(new Render::RenderSceneFunctor(m_renderer, m_nodeManagers->sceneManager()))); + q->registerBackendType<QSceneLoader>(QBackendNodeMapperPtr(new Render::RenderSceneFunctor(m_renderer, m_nodeManagers->sceneManager()))); q->registerBackendType<QRenderTarget>(QBackendNodeMapperPtr(new Render::NodeFunctor<Render::RenderTarget, Render::RenderTargetManager>(m_renderer, m_nodeManagers->renderTargetManager()))); q->registerBackendType<QRenderTargetOutput>(QBackendNodeMapperPtr(new Render::NodeFunctor<Render::RenderTargetOutput, Render::AttachmentManager>(m_renderer, m_nodeManagers->attachmentManager()))); q->registerBackendType<QSortCriterion>(QBackendNodeMapperPtr(new Render::NodeFunctor<Render::SortCriterion, Render::SortCriterionManager>(m_renderer, m_nodeManagers->sortCriterionManager()))); diff --git a/src/render/io/io.pri b/src/render/io/io.pri index e35ad2ffe..512b42cfd 100644 --- a/src/render/io/io.pri +++ b/src/render/io/io.pri @@ -2,10 +2,9 @@ INCLUDEPATH += $$PWD HEADERS += \ $$PWD/objloader_p.h \ - $$PWD/qabstractsceneloader.h \ - $$PWD/qabstractsceneloader_p.h \ $$PWD/qaxisalignedboundingbox_p.h \ $$PWD/qsceneloader.h \ + $$PWD/qsceneloader_p.h \ $$PWD/qurlhelper_p.h \ $$PWD/scene_p.h \ $$PWD/scenemanager_p.h \ @@ -16,7 +15,6 @@ HEADERS += \ SOURCES += \ $$PWD/objloader.cpp \ - $$PWD/qabstractsceneloader.cpp \ $$PWD/qaxisalignedboundingbox.cpp \ $$PWD/qsceneloader.cpp \ $$PWD/qurlhelper.cpp \ diff --git a/src/render/io/qabstractsceneloader.cpp b/src/render/io/qabstractsceneloader.cpp deleted file mode 100644 index ddb88cc08..000000000 --- a/src/render/io/qabstractsceneloader.cpp +++ /dev/null @@ -1,111 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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 Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or 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.GPL2 and 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-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qabstractsceneloader.h" -#include "qabstractsceneloader_p.h" -#include "qsceneiohandler_p.h" -#include <Qt3DRender/private/renderlogging_p.h> -#include <Qt3DCore/qscenepropertychange.h> - -QT_BEGIN_NAMESPACE - -namespace Qt3DRender { - -QAbstractSceneLoaderPrivate::QAbstractSceneLoaderPrivate() - : QComponentPrivate() - , m_status(QAbstractSceneLoader::Loading) -{ - m_shareable = false; -} - -/*! \internal */ -QAbstractSceneLoader::QAbstractSceneLoader(QAbstractSceneLoaderPrivate &dd, QNode *parent) - : QComponent(dd, parent) -{ -} - -QAbstractSceneLoader::QAbstractSceneLoader(QNode *parent) - : QComponent(*new QAbstractSceneLoaderPrivate, parent) -{ -} - -QAbstractSceneLoader::~QAbstractSceneLoader() -{ - Q_ASSERT_X(Qt3DCore::QNodePrivate::get(this)->m_wasCleanedUp, Q_FUNC_INFO, "QNode::cleanup should have been called by now. A Qt3DRender::QAbstractSceneLoader subclass didn't call QNode::cleanup in its destructor"); -} - -void QAbstractSceneLoader::copy(const QNode *ref) -{ - const QAbstractSceneLoader *s = static_cast<const QAbstractSceneLoader*>(ref); - d_func()->m_source = s->d_func()->m_source; -} - -QUrl QAbstractSceneLoader::source() const -{ - Q_D(const QAbstractSceneLoader); - return d->m_source; -} - -void QAbstractSceneLoader::setSource(const QUrl &arg) -{ - Q_D(QAbstractSceneLoader); - if (d->m_source != arg) { - d->m_source = arg; - emit sourceChanged(arg); - } -} - -QAbstractSceneLoader::Status QAbstractSceneLoader::status() const -{ - Q_D(const QAbstractSceneLoader); - return d->m_status; -} - -void QAbstractSceneLoader::setStatus(QAbstractSceneLoader::Status status) -{ - Q_D(QAbstractSceneLoader); - if (d->m_status != status) { - d->m_status = status; - emit statusChanged(status); - } -} - -} // namespace Qt3DRender - -QT_END_NAMESPACE diff --git a/src/render/io/qabstractsceneloader.h b/src/render/io/qabstractsceneloader.h deleted file mode 100644 index 747405c12..000000000 --- a/src/render/io/qabstractsceneloader.h +++ /dev/null @@ -1,95 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** 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 Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or 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.GPL2 and 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-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QT3DRENDER_QABSTRACTSCENELOADER_H -#define QT3DRENDER_QABSTRACTSCENELOADER_H - -#include <Qt3DCore/qcomponent.h> -#include <Qt3DCore/qscenechange.h> -#include <Qt3DRender/qt3drender_global.h> -#include <QUrl> - -QT_BEGIN_NAMESPACE - -namespace Qt3DRender { - -class QAbstractSceneLoader; -class QAbstractSceneLoaderPrivate; - -class QT3DRENDERSHARED_EXPORT QAbstractSceneLoader : public Qt3DCore::QComponent -{ - Q_OBJECT - Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) - Q_PROPERTY(Status status READ status NOTIFY statusChanged) -public: - explicit QAbstractSceneLoader(Qt3DCore::QNode *parent = 0); - ~QAbstractSceneLoader(); - - enum Status { - None = 0, - Loading, - Ready, - Error - }; - Q_ENUM(Status) - - QUrl source() const; - Status status() const; - -public Q_SLOTS: - void setSource(const QUrl &arg); - void setStatus(Status status); - -Q_SIGNALS: - void sourceChanged(const QUrl &source); - void statusChanged(Status status); - -protected: - QAbstractSceneLoader(QAbstractSceneLoaderPrivate &dd, Qt3DCore::QNode *parent = 0); - void copy(const Qt3DCore::QNode *ref) Q_DECL_OVERRIDE; - -private: - Q_DECLARE_PRIVATE(QAbstractSceneLoader) -}; - -} // namespace Qt3DRender - -QT_END_NAMESPACE - -#endif // QT3DRENDER_QABSTRACTSCENELOADER_H diff --git a/src/render/io/qsceneloader.cpp b/src/render/io/qsceneloader.cpp index e5262d7d8..e43a2cb1f 100644 --- a/src/render/io/qsceneloader.cpp +++ b/src/render/io/qsceneloader.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "qsceneloader.h" -#include "qabstractsceneloader_p.h" +#include "qsceneloader_p.h" #include <Qt3DCore/private/qscene_p.h> #include <Qt3DCore/qscenepropertychange.h> #include <Qt3DCore/qentity.h> @@ -51,8 +51,21 @@ using namespace Qt3DCore; namespace Qt3DRender { +QSceneLoaderPrivate::QSceneLoaderPrivate() + : QComponentPrivate() + , m_status(QSceneLoader::Loading) +{ + m_shareable = false; +} + + QSceneLoader::QSceneLoader(QNode *parent) - : QAbstractSceneLoader(parent) + : Qt3DCore::QComponent(*new QSceneLoaderPrivate, parent) +{ +} + +QSceneLoader::QSceneLoader(QSceneLoaderPrivate &dd, QNode *parent) + : Qt3DCore::QComponent(dd, parent) { } @@ -64,7 +77,7 @@ QSceneLoader::~QSceneLoader() // Called in main thread void QSceneLoader::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change) { - QAbstractSceneLoaderPrivate *d = static_cast<QAbstractSceneLoaderPrivate*>(QNodePrivate::get(this)); + Q_D(QSceneLoader); QScenePropertyChangePtr e = qSharedPointerCast<QScenePropertyChange>(change); if (e->type() == NodeUpdated) { if (e->propertyName() == QByteArrayLiteral("scene")) { @@ -85,11 +98,47 @@ void QSceneLoader::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change) } } else if (e->propertyName() == QByteArrayLiteral("status")) { - QAbstractSceneLoader::setStatus(static_cast<QAbstractSceneLoader::Status>(e->value().toInt())); + setStatus(static_cast<QSceneLoader::Status>(e->value().toInt())); } } } +void QSceneLoader::copy(const QNode *ref) +{ + const QSceneLoader *s = static_cast<const QSceneLoader*>(ref); + d_func()->m_source = s->d_func()->m_source; +} + +QUrl QSceneLoader::source() const +{ + Q_D(const QSceneLoader); + return d->m_source; +} + +void QSceneLoader::setSource(const QUrl &arg) +{ + Q_D(QSceneLoader); + if (d->m_source != arg) { + d->m_source = arg; + emit sourceChanged(arg); + } +} + +QSceneLoader::Status QSceneLoader::status() const +{ + Q_D(const QSceneLoader); + return d->m_status; +} + +void QSceneLoader::setStatus(QSceneLoader::Status status) +{ + Q_D(QSceneLoader); + if (d->m_status != status) { + d->m_status = status; + emit statusChanged(status); + } +} + } // namespace Qt3DRender QT_END_NAMESPACE diff --git a/src/render/io/qsceneloader.h b/src/render/io/qsceneloader.h index 0a42970f6..451848fff 100644 --- a/src/render/io/qsceneloader.h +++ b/src/render/io/qsceneloader.h @@ -40,22 +40,53 @@ #ifndef QT3DRENDER_QSCENELOADER_H #define QT3DRENDER_QSCENELOADER_H -#include <Qt3DRender/qabstractsceneloader.h> +#include <Qt3DCore/qcomponent.h> +#include <Qt3DCore/qscenechange.h> +#include <Qt3DRender/qt3drender_global.h> +#include <QUrl> QT_BEGIN_NAMESPACE namespace Qt3DRender { -class QT3DRENDERSHARED_EXPORT QSceneLoader : public QAbstractSceneLoader +class QSceneLoaderPrivate; + +class QT3DRENDERSHARED_EXPORT QSceneLoader : public Qt3DCore::QComponent { Q_OBJECT + Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(Status status READ status NOTIFY statusChanged) public: explicit QSceneLoader(Qt3DCore::QNode *parent = 0); ~QSceneLoader(); + void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change) Q_DECL_OVERRIDE; + enum Status { + None = 0, + Loading, + Ready, + Error + }; + Q_ENUM(Status) + + QUrl source() const; + Status status() const; + +public Q_SLOTS: + void setSource(const QUrl &arg); + void setStatus(Status status); + +Q_SIGNALS: + void sourceChanged(const QUrl &source); + void statusChanged(Status status); protected: QT3D_CLONEABLE(QSceneLoader) + QSceneLoader(QSceneLoaderPrivate &dd, Qt3DCore::QNode *parent = 0); + void copy(const Qt3DCore::QNode *ref) Q_DECL_OVERRIDE; + +private: + Q_DECLARE_PRIVATE(QSceneLoader) }; } // namespace Qt3DRender diff --git a/src/render/io/qabstractsceneloader_p.h b/src/render/io/qsceneloader_p.h index ac0e4decf..f884feb75 100644 --- a/src/render/io/qabstractsceneloader_p.h +++ b/src/render/io/qsceneloader_p.h @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#ifndef QT3DRENDER_QABSTRACTSCENELOADER_P_H -#define QT3DRENDER_QABSTRACTSCENELOADER_P_H +#ifndef QT3DRENDER_QSCENELOADER_P_H +#define QT3DRENDER_QSCENELOADER_P_H // // W A R N I N G @@ -52,7 +52,7 @@ // #include <private/qcomponent_p.h> -#include <Qt3DRender/qabstractsceneloader.h> +#include <Qt3DRender/qsceneloader.h> QT_BEGIN_NAMESPACE @@ -60,19 +60,19 @@ namespace Qt3DRender { class QSceneIOHandler; -class QAbstractSceneLoaderPrivate : public Qt3DCore::QComponentPrivate +class QSceneLoaderPrivate : public Qt3DCore::QComponentPrivate { public: - QAbstractSceneLoaderPrivate(); + QSceneLoaderPrivate(); - Q_DECLARE_PUBLIC(QAbstractSceneLoader) + Q_DECLARE_PUBLIC(QSceneLoader) QUrl m_source; - QAbstractSceneLoader::Status m_status; + QSceneLoader::Status m_status; }; } // namespace Qt3DRender QT_END_NAMESPACE -#endif // QT3DRENDER_QABSTRACTSCENE_P_H +#endif // QT3DRENDER_QSCENELOADER_P_H diff --git a/src/render/io/scene.cpp b/src/render/io/scene.cpp index ccc425c01..1545fc4ff 100644 --- a/src/render/io/scene.cpp +++ b/src/render/io/scene.cpp @@ -43,7 +43,7 @@ #include <Qt3DCore/private/qnode_p.h> #include <Qt3DCore/private/qscene_p.h> #include <Qt3DCore/qbackendscenepropertychange.h> -#include <Qt3DRender/qabstractsceneloader.h> +#include <Qt3DRender/qsceneloader.h> #include <Qt3DRender/private/scenemanager_p.h> QT_BEGIN_NAMESPACE @@ -61,7 +61,7 @@ Scene::Scene() void Scene::updateFromPeer(Qt3DCore::QNode *peer) { - QAbstractSceneLoader *loader = static_cast<QAbstractSceneLoader *>(peer); + QSceneLoader *loader = static_cast<QSceneLoader *>(peer); m_source = loader->source(); m_sceneManager->addSceneData(m_source, peerId()); @@ -93,7 +93,7 @@ void Scene::setSceneSubtree(Qt3DCore::QEntity *subTree) notifyObservers(e); QBackendScenePropertyChangePtr e2(new QBackendScenePropertyChange(NodeUpdated, peerId())); e2->setPropertyName("status"); - e2->setValue(subTree != Q_NULLPTR ? QAbstractSceneLoader::Ready : QAbstractSceneLoader::Error); + e2->setValue(subTree != Q_NULLPTR ? QSceneLoader::Ready : QSceneLoader::Error); e2->setTargetNode(peerId()); notifyObservers(e2); } |