summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-03-11 15:18:14 +0100
committerSean Harmer <sean.harmer@kdab.com>2015-04-25 08:04:56 +0000
commit215311202708d8f16a1da6a00e8fa56bc3878551 (patch)
tree9667b5a437845f0445b5b0da1bd312b7314e1d53
parent1d1b84a579eff2e245e491012104b7c5b5d655d1 (diff)
QRenderPass use QNodePtr to send clones
and updated tst_renderrenderpass Change-Id: I9fae01de6c1c343cdc327cfed5ffa0cf16b01988 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--src/render/backend/renderrenderpass.cpp3
-rw-r--r--src/render/frontend/qrenderpass.cpp2
-rw-r--r--tests/auto/render/renderrenderpass/tst_renderrenderpass.cpp5
3 files changed, 5 insertions, 5 deletions
diff --git a/src/render/backend/renderrenderpass.cpp b/src/render/backend/renderrenderpass.cpp
index 21d573651..9cdb387da 100644
--- a/src/render/backend/renderrenderpass.cpp
+++ b/src/render/backend/renderrenderpass.cpp
@@ -181,7 +181,8 @@ void RenderRenderPass::sceneChangeEvent(const QSceneChangePtr &e)
appendBinding(RenderParameterMapping(propertyChange->value().value<QParameterMapping *>()));
}
else if (propertyChange->propertyName() == QByteArrayLiteral("renderState")) {
- QRenderState *renderState = propertyChange->value().value<QRenderState *>();
+ QNodePtr nodePtr = propertyChange->value().value<QNodePtr>();
+ QRenderState *renderState = static_cast<QRenderState *>(nodePtr.data());
appendRenderState(renderState->id(), getOrCreateBackendState(renderState));
}
break;
diff --git a/src/render/frontend/qrenderpass.cpp b/src/render/frontend/qrenderpass.cpp
index 9482248f5..cfa6fee2e 100644
--- a/src/render/frontend/qrenderpass.cpp
+++ b/src/render/frontend/qrenderpass.cpp
@@ -226,7 +226,7 @@ void QRenderPass::addRenderState(QRenderState *state)
if (d->m_changeArbiter != Q_NULLPTR) {
QScenePropertyChangePtr change(new QScenePropertyChange(NodeAdded, QSceneChange::Node, id()));
change->setPropertyName("renderState");
- change->setValue(QVariant::fromValue(QNode::clone(state)));
+ change->setValue(QVariant::fromValue(QNodePtr(QNode::clone(state))));
d->notifyObservers(change);
}
}
diff --git a/tests/auto/render/renderrenderpass/tst_renderrenderpass.cpp b/tests/auto/render/renderrenderpass/tst_renderrenderpass.cpp
index 79ab05c67..61465fc38 100644
--- a/tests/auto/render/renderrenderpass/tst_renderrenderpass.cpp
+++ b/tests/auto/render/renderrenderpass/tst_renderrenderpass.cpp
@@ -297,8 +297,7 @@ private slots:
{
// GIVEN
QFETCH(QRenderState*, frontendState);
- QScopedPointer<QRenderState> frontendStatePtr(frontendState);
- Q_UNUSED(frontendStatePtr);
+ QNodePtr frontendStatePtr(frontendState);
RenderRenderPass backend;
@@ -306,7 +305,7 @@ private slots:
// WHEN
QScenePropertyChangePtr addChange(new QScenePropertyChange(NodeAdded, QSceneChange::Node, frontendState->id()));
- addChange->setValue(QVariant::fromValue(frontendState));
+ addChange->setValue(QVariant::fromValue(frontendStatePtr));
addChange->setPropertyName("renderState");
backend.sceneChangeEvent(addChange);