summaryrefslogtreecommitdiffstats
path: root/src/render/frontend/qrenderpass.cpp
diff options
context:
space:
mode:
authorKevin Ottens <kevin.ottens.ecortex@kdab.com>2014-11-21 08:38:50 +0100
committerSean Harmer <sean.harmer@kdab.com>2014-11-27 15:03:46 +0100
commit01039e45417733e2d93f859f694eaba5ba7e4701 (patch)
treebd9099f57f9074b8bd73c3bcbcf934cd13bee3f8 /src/render/frontend/qrenderpass.cpp
parenta0b300075f43432d3cbece6b2d25efa246923ba0 (diff)
Make cloning available to third party QNodes
Third party QNode subclasses won't have access to QNodePrivate, so move the clone() operation as a protected static method on QNode itself. This way third party nodes can implement deep copy in their copy() implementation as expected. Change-Id: I59d0414f4ea9c679f2b7e197ea90e36bd8a915a4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/frontend/qrenderpass.cpp')
-rw-r--r--src/render/frontend/qrenderpass.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/render/frontend/qrenderpass.cpp b/src/render/frontend/qrenderpass.cpp
index 329cfad85..4fdcb71cf 100644
--- a/src/render/frontend/qrenderpass.cpp
+++ b/src/render/frontend/qrenderpass.cpp
@@ -63,14 +63,14 @@ void QRenderPass::copy(const QNode *ref)
{
QNode::copy(ref);
const QRenderPass *other = static_cast<const QRenderPass*>(ref);
- d_func()->m_shader = qobject_cast<QShaderProgram *>(QNodePrivate::get(other->d_func()->m_shader)->clone());
+ d_func()->m_shader = qobject_cast<QShaderProgram *>(QNode::clone(other->d_func()->m_shader));
Q_FOREACH (QAnnotation *crit, other->d_func()->m_annotationList)
- addAnnotation(qobject_cast<QAnnotation *>(QNodePrivate::get(crit)->clone()));
+ addAnnotation(qobject_cast<QAnnotation *>(QNode::clone(crit)));
Q_FOREACH (QParameterMapping *binding, other->d_func()->m_bindings)
- addBinding(qobject_cast<QParameterMapping *>(QNodePrivate::get(binding)->clone()));
+ addBinding(qobject_cast<QParameterMapping *>(QNode::clone(binding)));
Q_FOREACH (QRenderState *renderState, other->d_func()->m_renderStates)
- addRenderState(qobject_cast<QRenderState *>(QNodePrivate::get(renderState)->clone()));
+ addRenderState(qobject_cast<QRenderState *>(QNode::clone(renderState)));
}
QRenderPass::QRenderPass(QNode *parent)
@@ -189,7 +189,7 @@ void QRenderPass::addBinding(QParameterMapping *binding)
if (d->m_changeArbiter != Q_NULLPTR) {
QScenePropertyChangePtr change(new QScenePropertyChange(NodeAdded, this));
change->setPropertyName(QByteArrayLiteral("binding"));
- change->setValue(QVariant::fromValue(QNodePrivate::get(binding)->clone()));
+ change->setValue(QVariant::fromValue(QNode::clone(binding)));
d->notifyObservers(change);
}
}
@@ -226,7 +226,7 @@ void QRenderPass::addRenderState(QRenderState *state)
if (d->m_changeArbiter != Q_NULLPTR) {
QScenePropertyChangePtr change(new QScenePropertyChange(NodeAdded, this));
change->setPropertyName(QByteArrayLiteral("renderState"));
- change->setValue(QVariant::fromValue(QNodePrivate::get(state)->clone()));
+ change->setValue(QVariant::fromValue(QNode::clone(state)));
d->notifyObservers(change);
}
}