diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2014-10-20 11:07:16 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2014-10-22 10:45:41 +0200 |
commit | 30d3beef0a9673586475787157845383e32bacc1 (patch) | |
tree | 584f8135c5e5cdc27122541c6df0bc46ed702ed2 | |
parent | 4be6e50f1af5520a989246035d3ed0ba6ab1bfd0 (diff) |
QLayer: QString name property converted to QStringList names
Change-Id: I1f1c80231118240d5ae590166d00d0b53661ab33
Task-number: QTBUG-41540
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r-- | examples/deferred-renderer-cpp/deferredrenderer.cpp | 8 | ||||
-rw-r--r-- | examples/deferred-renderer-cpp/deferredrenderer.h | 4 | ||||
-rw-r--r-- | examples/deferred-renderer-cpp/finaleffect.cpp | 8 | ||||
-rw-r--r-- | examples/deferred-renderer-cpp/main.cpp | 8 | ||||
-rw-r--r-- | examples/deferred-renderer-cpp/sceneeffect.cpp | 4 | ||||
-rw-r--r-- | examples/deferred-renderer-qml/main.qml | 4 | ||||
-rw-r--r-- | examples/playground-qml/main.qml | 2 | ||||
-rw-r--r-- | src/render/backend/renderlayer.cpp | 10 | ||||
-rw-r--r-- | src/render/backend/renderlayer_p.h | 5 | ||||
-rw-r--r-- | src/render/backend/renderview.cpp | 10 | ||||
-rw-r--r-- | src/render/frontend/qlayer.cpp | 15 | ||||
-rw-r--r-- | src/render/frontend/qlayer.h | 9 | ||||
-rw-r--r-- | src/render/frontend/qlayer_p.h | 2 |
13 files changed, 47 insertions, 42 deletions
diff --git a/examples/deferred-renderer-cpp/deferredrenderer.cpp b/examples/deferred-renderer-cpp/deferredrenderer.cpp index 607ae96c6..869c95d8d 100644 --- a/examples/deferred-renderer-cpp/deferredrenderer.cpp +++ b/examples/deferred-renderer-cpp/deferredrenderer.cpp @@ -79,12 +79,12 @@ void DeferredRenderer::setFinalPassCriteria(QList<Qt3D::QAnnotation *> criteria) c->setParent(m_finalPassFilter); } -void DeferredRenderer::setGBufferLayer(const QString &layerName) +void DeferredRenderer::setGBufferLayers(const QStringList &layerNames) { - m_sceneFilter->setLayers(QStringList(layerName)); + m_sceneFilter->setLayers(layerNames); } -void DeferredRenderer::setScreenQuadLayer(const QString &layerName) +void DeferredRenderer::setScreenQuadLayers(const QStringList &layerNames) { - m_screenQuadFilter->setLayers(QStringList(layerName)); + m_screenQuadFilter->setLayers(layerNames); } diff --git a/examples/deferred-renderer-cpp/deferredrenderer.h b/examples/deferred-renderer-cpp/deferredrenderer.h index 3f8cff183..382d5e49a 100644 --- a/examples/deferred-renderer-cpp/deferredrenderer.h +++ b/examples/deferred-renderer-cpp/deferredrenderer.h @@ -59,8 +59,8 @@ public: void setGBuffer(Qt3D::QRenderTarget *gBuffer); void setGeometryPassCriteria(QList<Qt3D::QAnnotation *> criteria); void setFinalPassCriteria(QList<Qt3D::QAnnotation *> criteria); - void setGBufferLayer(const QString &layerName); - void setScreenQuadLayer(const QString &layerName); + void setGBufferLayers(const QStringList &layerName); + void setScreenQuadLayers(const QStringList &layerName); private: Qt3D::QLayerFilter *m_screenQuadFilter; diff --git a/examples/deferred-renderer-cpp/finaleffect.cpp b/examples/deferred-renderer-cpp/finaleffect.cpp index d628e97b4..6599660e8 100644 --- a/examples/deferred-renderer-cpp/finaleffect.cpp +++ b/examples/deferred-renderer-cpp/finaleffect.cpp @@ -67,16 +67,16 @@ FinalEffect::FinalEffect(Qt3D::QNode *parent) m_passCriterion->setValue(QStringLiteral("final")); Qt3D::QShaderProgram *gl3Shader = new Qt3D::QShaderProgram(); - gl3Shader->setVertexShaderCode(gl3Shader->loadSource(QUrl(QStringLiteral(":/final_gl3.vert")))); - gl3Shader->setFragmentShaderCode(gl3Shader->loadSource(QUrl(QStringLiteral(":/final_gl3.frag")))); + gl3Shader->setVertexShaderCode(gl3Shader->loadSource(QUrl(QStringLiteral("qrc:/final_gl3.vert")))); + gl3Shader->setFragmentShaderCode(gl3Shader->loadSource(QUrl(QStringLiteral("qrc:/final_gl3.frag")))); m_gl3Pass->addAnnotation(m_passCriterion); m_gl3Pass->setShaderProgram(gl3Shader); m_gl3Technique->addPass(m_gl3Pass); Qt3D::QShaderProgram *gl2Shader = new Qt3D::QShaderProgram(); - gl2Shader->setVertexShaderCode(gl2Shader->loadSource(QUrl(QStringLiteral(":/final_gl2.vert")))); - gl2Shader->setFragmentShaderCode(gl2Shader->loadSource(QUrl(QStringLiteral(":/final_gl2.frag")))); + gl2Shader->setVertexShaderCode(gl2Shader->loadSource(QUrl(QStringLiteral("qrc:/final_gl2.vert")))); + gl2Shader->setFragmentShaderCode(gl2Shader->loadSource(QUrl(QStringLiteral("qrc:/final_gl2.frag")))); m_gl2Pass->addAnnotation(m_passCriterion); m_gl2Pass->setShaderProgram(gl2Shader); diff --git a/examples/deferred-renderer-cpp/main.cpp b/examples/deferred-renderer-cpp/main.cpp index e262f129d..9f114955a 100644 --- a/examples/deferred-renderer-cpp/main.cpp +++ b/examples/deferred-renderer-cpp/main.cpp @@ -84,10 +84,10 @@ int main(int ac, char **av) sphereMesh->setSlices(100); Qt3D::QLayer *sceneLayer = new Qt3D::QLayer(); - sceneLayer->setName("scene"); + sceneLayer->setNames(QStringList("scene")); Qt3D::QLayer *quadLayer = new Qt3D::QLayer(); - quadLayer->setName("screenQuad"); + quadLayer->setNames(QStringList("screenQuad")); Qt3D::QPlaneMesh *planeMesh = new Qt3D::QPlaneMesh(); planeMesh->setMeshResolution(QSize(2, 2)); @@ -130,8 +130,8 @@ int main(int ac, char **av) deferredRenderer->setGeometryPassCriteria(sceneEffect->passCriteria()); deferredRenderer->setGBuffer(gBuffer); deferredRenderer->setSceneCamera(camera); - deferredRenderer->setGBufferLayer(sceneLayer->name()); - deferredRenderer->setScreenQuadLayer(quadLayer->name()); + deferredRenderer->setGBufferLayers(sceneLayer->names()); + deferredRenderer->setScreenQuadLayers(quadLayer->names()); frameGraph->setActiveFrameGraph(deferredRenderer); rootEntity->addComponent(frameGraph); diff --git a/examples/deferred-renderer-cpp/sceneeffect.cpp b/examples/deferred-renderer-cpp/sceneeffect.cpp index 430f31f2e..033e07de2 100644 --- a/examples/deferred-renderer-cpp/sceneeffect.cpp +++ b/examples/deferred-renderer-cpp/sceneeffect.cpp @@ -77,8 +77,8 @@ SceneEffect::SceneEffect(Qt3D::QNode *parent) m_gl3Technique->addPass(m_gl3Pass); Qt3D::QShaderProgram *gl2Shader = new Qt3D::QShaderProgram(); - gl2Shader->setVertexShaderCode(Qt3D::QShaderProgram::loadSource(QUrl(QStringLiteral(":/geometry_gl2.vert")))); - gl2Shader->setFragmentShaderCode(Qt3D::QShaderProgram::loadSource(QUrl(QStringLiteral(":/geometry_gl2.frag")))); + gl2Shader->setVertexShaderCode(Qt3D::QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/geometry_gl2.vert")))); + gl2Shader->setFragmentShaderCode(Qt3D::QShaderProgram::loadSource(QUrl(QStringLiteral("qrc:/geometry_gl2.frag")))); m_gl2Pass->addAnnotation(m_passCriterion); m_gl2Pass->setShaderProgram(gl2Shader); diff --git a/examples/deferred-renderer-qml/main.qml b/examples/deferred-renderer-qml/main.qml index 161d84546..e83981393 100644 --- a/examples/deferred-renderer-qml/main.qml +++ b/examples/deferred-renderer-qml/main.qml @@ -66,7 +66,7 @@ Entity { id : screenQuadEntity components : [ Layer { - name : "screenQuad" + names : "screenQuad" }, PlaneMesh { width: 2.0 @@ -120,7 +120,7 @@ Entity { Layer { id : sceneLayer - name : "scene" + names : "scene" } SphereMesh { diff --git a/examples/playground-qml/main.qml b/examples/playground-qml/main.qml index 4dc15f18a..e56ca0f80 100644 --- a/examples/playground-qml/main.qml +++ b/examples/playground-qml/main.qml @@ -536,7 +536,7 @@ Entity { } - Layer { id: ballLayer; name : "balls" } + Layer { id: ballLayer; names : "balls" } Entity { id: ball diff --git a/src/render/backend/renderlayer.cpp b/src/render/backend/renderlayer.cpp index c1b9b3ce7..d8c94b959 100644 --- a/src/render/backend/renderlayer.cpp +++ b/src/render/backend/renderlayer.cpp @@ -67,19 +67,19 @@ void RenderLayer::cleanup() void RenderLayer::updateFromPeer(QNode *peer) { QLayer *layer = static_cast<QLayer *>(peer); - m_layer = layer->name(); + m_layers = layer->names(); } -QString RenderLayer::layer() const +QStringList RenderLayer::layers() const { - return m_layer; + return m_layers; } void RenderLayer::sceneChangeEvent(const QSceneChangePtr &e) { QScenePropertyChangePtr propertyChange = qSharedPointerCast<QScenePropertyChange>(e); - if (e->type() == NodeUpdated && propertyChange->propertyName() == QByteArrayLiteral("layer")) - m_layer = propertyChange->value().toString(); + if (e->type() == NodeUpdated && propertyChange->propertyName() == QByteArrayLiteral("names")) + m_layers = propertyChange->value().toStringList(); } } // Render diff --git a/src/render/backend/renderlayer_p.h b/src/render/backend/renderlayer_p.h index 0e127af50..00169a965 100644 --- a/src/render/backend/renderlayer_p.h +++ b/src/render/backend/renderlayer_p.h @@ -45,6 +45,7 @@ #include <Qt3DRenderer/qt3drenderer_global.h> #include <Qt3DCore/qbackendnode.h> #include <QUuid> +#include <QStringList> QT_BEGIN_NAMESPACE @@ -65,11 +66,11 @@ public: void updateFromPeer(QNode *peer) Q_DECL_OVERRIDE; - QString layer() const; + QStringList layers() const; void sceneChangeEvent(const QSceneChangePtr &e) Q_DECL_OVERRIDE; private: - QString m_layer; + QStringList m_layers; }; } // Render diff --git a/src/render/backend/renderview.cpp b/src/render/backend/renderview.cpp index 02c6a9130..d063e0a87 100644 --- a/src/render/backend/renderview.cpp +++ b/src/render/backend/renderview.cpp @@ -778,10 +778,14 @@ bool RenderView::checkContainedWithinLayer(RenderEntity *node) { if (m_data->m_layers.isEmpty()) return true; + // TO DO: find all RenderLayer components associated to node, not just the first one RenderLayer *renderLayer = node->renderComponent<RenderLayer>(); - if (renderLayer == Q_NULLPTR || !m_data->m_layers.contains(renderLayer->layer())) - return false; - return true; + if (renderLayer != Q_NULLPTR) { + Q_FOREACH (const QString &layerName, renderLayer->layers()) + if (m_data->m_layers.contains(layerName)) + return true; + } + return false; } } // namespace Render diff --git a/src/render/frontend/qlayer.cpp b/src/render/frontend/qlayer.cpp index 290d549ef..67d898f1a 100644 --- a/src/render/frontend/qlayer.cpp +++ b/src/render/frontend/qlayer.cpp @@ -55,7 +55,7 @@ void QLayer::copy(const QNode *ref) { QComponent::copy(ref); const QLayer *layer = static_cast<const QLayer*>(ref); - d_func()->m_name = layer->d_func()->m_name; + d_func()->m_names = layer->d_func()->m_names; } QLayer::QLayer(QNode *parent) @@ -63,24 +63,23 @@ QLayer::QLayer(QNode *parent) { } - QLayer::QLayer(QLayerPrivate &dd, QNode *parent) : QComponent(dd, parent) { } -QString QLayer::name() const +QStringList QLayer::names() const { Q_D(const QLayer); - return d->m_name; + return d->m_names; } -void QLayer::setName(const QString &name) +void QLayer::setNames(const QStringList &names) { Q_D(QLayer); - if (d->m_name != name) { - d->m_name = name; - emit nameChanged(); + if (d->m_names != names) { + d->m_names = names; + emit namesChanged(); } } diff --git a/src/render/frontend/qlayer.h b/src/render/frontend/qlayer.h index d155870c1..c4ac457d0 100644 --- a/src/render/frontend/qlayer.h +++ b/src/render/frontend/qlayer.h @@ -44,6 +44,7 @@ #include <Qt3DCore/qcomponent.h> #include <Qt3DRenderer/qt3drenderer_global.h> +#include <QStringList> QT_BEGIN_NAMESPACE @@ -54,15 +55,15 @@ class QLayerPrivate; class QT3DRENDERERSHARED_EXPORT QLayer : public QComponent { Q_OBJECT - Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) + Q_PROPERTY(QStringList names READ names WRITE setNames NOTIFY namesChanged) public: explicit QLayer(QNode *parent = 0); - QString name() const; - void setName(const QString &name); + QStringList names() const; + void setNames(const QStringList &names); Q_SIGNALS: - void nameChanged(); + void namesChanged(); protected: QLayer(QLayerPrivate &dd, QNode *parent = 0); diff --git a/src/render/frontend/qlayer_p.h b/src/render/frontend/qlayer_p.h index 89527761b..8e70ac13a 100644 --- a/src/render/frontend/qlayer_p.h +++ b/src/render/frontend/qlayer_p.h @@ -56,7 +56,7 @@ public: QLayerPrivate(QLayer *qq); Q_DECLARE_PUBLIC(QLayer) - QString m_name; + QStringList m_names; }; } // Qt3D |