diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2019-12-20 12:41:04 +0100 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2020-02-11 06:08:41 +0000 |
commit | b828609440a4771838c242b3ad9962ecd7a2fe99 (patch) | |
tree | 5da6bce0cda327c4cca96696bce512ec243cc1fd /src/render/jobs/calcboundingvolumejob.cpp | |
parent | b0eb152b82cdd9658154ff7d9ef9e764eccc1ebd (diff) |
Remove deprecated classes and functions
Mostly old messaging API
Change-Id: I17eb2206b2ede56d2f7d36375d5e711d6149019f
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/jobs/calcboundingvolumejob.cpp')
-rw-r--r-- | src/render/jobs/calcboundingvolumejob.cpp | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/src/render/jobs/calcboundingvolumejob.cpp b/src/render/jobs/calcboundingvolumejob.cpp index 172c4ddca..1e4656247 100644 --- a/src/render/jobs/calcboundingvolumejob.cpp +++ b/src/render/jobs/calcboundingvolumejob.cpp @@ -52,6 +52,8 @@ #include <Qt3DRender/private/sphere_p.h> #include <Qt3DRender/private/buffervisitor_p.h> #include <Qt3DRender/private/entityaccumulator_p.h> +#include <Qt3DRender/private/qgeometry_p.h> +#include <Qt3DCore/private/qaspectmanager_p.h> #include <QtCore/qmath.h> #if QT_CONFIG(concurrent) @@ -350,8 +352,29 @@ struct ReduceUpdateBoundFunctor } // anonymous +class CalculateBoundingVolumeJobPrivate : public Qt3DCore::QAspectJobPrivate +{ +public: + CalculateBoundingVolumeJobPrivate() { } + ~CalculateBoundingVolumeJobPrivate() override { } + + void postFrame(Qt3DCore::QAspectManager *manager) override + { + for (Geometry *backend : qAsConst(m_updatedGeometries)) { + QGeometry *node = qobject_cast<QGeometry *>(manager->lookupNode(backend->peerId())); + if (!node) + continue; + QGeometryPrivate *dNode = static_cast<QGeometryPrivate *>(Qt3DCore::QNodePrivate::get(node)); + dNode->setExtent(backend->min(), backend->max()); + } + } + + QVector<Geometry *> m_updatedGeometries; +}; + CalculateBoundingVolumeJob::CalculateBoundingVolumeJob() - : m_manager(nullptr) + : Qt3DCore::QAspectJob(*new CalculateBoundingVolumeJobPrivate()) + , m_manager(nullptr) , m_node(nullptr) { SET_JOB_RUN_STAT_TYPE(this, JobTypes::CalcBoundingVolume, 0) @@ -380,9 +403,8 @@ void CalculateBoundingVolumeJob::run() updatedGeometries += calculateLocalBoundingVolume(m_manager, child); } - // Send extent updates to frontend - for (Geometry *geometry : updatedGeometries) - geometry->notifyExtentChanged(); + Q_D(CalculateBoundingVolumeJob); + d->m_updatedGeometries = std::move(updatedGeometries); } void CalculateBoundingVolumeJob::setRoot(Entity *node) |