summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick3d/quick3drender/scene2d/qscene2d.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/quick3d/quick3drender/scene2d/qscene2d.cpp b/src/quick3d/quick3drender/scene2d/qscene2d.cpp
index 2f4c12367..c0028a6a0 100644
--- a/src/quick3d/quick3drender/scene2d/qscene2d.cpp
+++ b/src/quick3d/quick3drender/scene2d/qscene2d.cpp
@@ -492,6 +492,7 @@ void Scene2DManager::cleanup()
QScene2DPrivate::QScene2DPrivate()
: Qt3DCore::QNodePrivate()
, m_renderManager(new Scene2DManager(this))
+ , m_output(nullptr)
{
}
@@ -545,14 +546,16 @@ void QScene2D::setSource(const QUrl &url)
qWarning() << "Unable to set source after initialization.";
return;
}
- d->m_renderManager->setSource(url);
- emit sourceChanged(url);
+ if (d->m_renderManager->m_source != url) {
+ d->m_renderManager->setSource(url);
+ emit sourceChanged(url);
+ }
}
QQuickItem* QScene2D::item() const
{
Q_D(const QScene2D);
- return d->m_renderManager->m_rootItem;
+ return d->m_renderManager->m_item;
}
void QScene2D::setItem(QQuickItem *item)
@@ -562,8 +565,10 @@ void QScene2D::setItem(QQuickItem *item)
qWarning() << "Unable to set item after initialization.";
return;
}
- d->m_renderManager->setItem(item);
- emit itemChanged(item);
+ if (d->m_renderManager->m_item != item) {
+ d->m_renderManager->setItem(item);
+ emit itemChanged(item);
+ }
}
/*!