summaryrefslogtreecommitdiffstats
path: root/src/quick3d/quick3dscene2d/items/scene2d.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2019-12-18 10:14:57 +0100
committerPaul Lemire <paul.lemire@kdab.com>2019-12-18 10:15:32 +0100
commit1776037b0443dc57d59afe0772a83b1d47aced14 (patch)
tree56213eee7188e5f1d2e4abe290b3757603c835ef /src/quick3d/quick3dscene2d/items/scene2d.cpp
parentc2ea752f684290d156c500c6a7174fe3f27fa086 (diff)
parentc754eb2883394852f155e31f5366fa25a4ffad42 (diff)
Merge branch '5.15' into dev
Diffstat (limited to 'src/quick3d/quick3dscene2d/items/scene2d.cpp')
-rw-r--r--src/quick3d/quick3dscene2d/items/scene2d.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/quick3d/quick3dscene2d/items/scene2d.cpp b/src/quick3d/quick3dscene2d/items/scene2d.cpp
index 981b290e2..a2247705e 100644
--- a/src/quick3d/quick3dscene2d/items/scene2d.cpp
+++ b/src/quick3d/quick3dscene2d/items/scene2d.cpp
@@ -208,11 +208,16 @@ void Scene2D::syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime)
if (!entity)
return;
- registerObjectPickerEvents(entity);
+ if (registerObjectPickerEvents(entity))
+ m_entities.push_back(id);
+ else
+ Qt3DCore::QNodePrivate::get(const_cast<Qt3DCore::QNode *>(frontEnd))->update();
}
- for (const auto &id: removedEntities)
+ for (const auto &id: removedEntities) {
+ m_entities.removeOne(id);
unregisterObjectPickerEvents(id);
- m_entities = ids;
+ }
+ std::sort(std::begin(m_entities), std::end(m_entities));
if (firstTime)
setSharedObject(dnode->m_renderManager->m_sharedObject);
@@ -428,8 +433,11 @@ bool Scene2D::registerObjectPickerEvents(Qt3DCore::QEntity *qentity)
{
Entity *entity = nullptr;
if (!resourceAccessor()->accessResource(RenderBackendResourceAccessor::EntityHandle,
- qentity->id(), (void**)&entity, nullptr))
+ qentity->id(), (void**)&entity, nullptr)) {
+ qCWarning(Qt3DRender::Quick::Scene2D) << Q_FUNC_INFO
+ << "Entity not yet available in backend";
return false;
+ }
if (!entity->containsComponentsOfType<ObjectPicker>() ||
!entity->containsComponentsOfType<GeometryRenderer>()) {