summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2014-10-20 11:07:16 +0200
committerPaul Lemire <paul.lemire@kdab.com>2014-10-22 10:45:41 +0200
commit30d3beef0a9673586475787157845383e32bacc1 (patch)
tree584f8135c5e5cdc27122541c6df0bc46ed702ed2
parent4be6e50f1af5520a989246035d3ed0ba6ab1bfd0 (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.cpp8
-rw-r--r--examples/deferred-renderer-cpp/deferredrenderer.h4
-rw-r--r--examples/deferred-renderer-cpp/finaleffect.cpp8
-rw-r--r--examples/deferred-renderer-cpp/main.cpp8
-rw-r--r--examples/deferred-renderer-cpp/sceneeffect.cpp4
-rw-r--r--examples/deferred-renderer-qml/main.qml4
-rw-r--r--examples/playground-qml/main.qml2
-rw-r--r--src/render/backend/renderlayer.cpp10
-rw-r--r--src/render/backend/renderlayer_p.h5
-rw-r--r--src/render/backend/renderview.cpp10
-rw-r--r--src/render/frontend/qlayer.cpp15
-rw-r--r--src/render/frontend/qlayer.h9
-rw-r--r--src/render/frontend/qlayer_p.h2
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