diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2019-12-18 10:14:57 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2019-12-18 10:15:32 +0100 |
commit | 1776037b0443dc57d59afe0772a83b1d47aced14 (patch) | |
tree | 56213eee7188e5f1d2e4abe290b3757603c835ef /src/quick3d/quick3dscene2d/items/scene2d.cpp | |
parent | c2ea752f684290d156c500c6a7174fe3f27fa086 (diff) | |
parent | c754eb2883394852f155e31f5366fa25a4ffad42 (diff) |
Merge branch '5.15' into dev
Change-Id: I731aa986e1cc45b3af920db1a23f256927beecf7
Diffstat (limited to 'src/quick3d/quick3dscene2d/items/scene2d.cpp')
-rw-r--r-- | src/quick3d/quick3dscene2d/items/scene2d.cpp | 16 |
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>()) { |