diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2020-08-24 14:50:08 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2020-08-26 11:24:10 +0200 |
commit | 29281788884b69d7e7a86a17efbbe4c62c680e19 (patch) | |
tree | 714ab4fad98f9cb2c166c6b6721d4c3088fa34cc /src/render | |
parent | cd3abdfe708bc665622021e79f4d1b17fe01e60b (diff) |
FilterProximityDistanceJob/FrustumCullingJob: reimplement QAspectJob::isRequired
So that we can benefit from early job discarding.
Change-Id: Icf2dfe074d3593932099d6dad80bf761947f3902
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'src/render')
-rw-r--r-- | src/render/jobs/filterproximitydistancejob.cpp | 5 | ||||
-rw-r--r-- | src/render/jobs/filterproximitydistancejob_p.h | 1 | ||||
-rw-r--r-- | src/render/jobs/frustumcullingjob.cpp | 5 | ||||
-rw-r--r-- | src/render/jobs/frustumcullingjob_p.h | 1 |
4 files changed, 12 insertions, 0 deletions
diff --git a/src/render/jobs/filterproximitydistancejob.cpp b/src/render/jobs/filterproximitydistancejob.cpp index cbbd39b8c..90978d573 100644 --- a/src/render/jobs/filterproximitydistancejob.cpp +++ b/src/render/jobs/filterproximitydistancejob.cpp @@ -58,6 +58,11 @@ FilterProximityDistanceJob::~FilterProximityDistanceJob() --instanceCounter; } +bool FilterProximityDistanceJob::isRequired() +{ + return hasProximityFilter(); +} + void FilterProximityDistanceJob::run() { Q_ASSERT(m_manager != nullptr); diff --git a/src/render/jobs/filterproximitydistancejob_p.h b/src/render/jobs/filterproximitydistancejob_p.h index fe93ba731..e25fb7812 100644 --- a/src/render/jobs/filterproximitydistancejob_p.h +++ b/src/render/jobs/filterproximitydistancejob_p.h @@ -66,6 +66,7 @@ public: // QAspectJob interface void run() final; const std::vector<Entity *> &filteredEntities() const { return m_filteredEntities; } + bool isRequired() override; #if defined (QT_BUILD_INTERNAL) // For unit testing diff --git a/src/render/jobs/frustumcullingjob.cpp b/src/render/jobs/frustumcullingjob.cpp index 17dac3c49..89cb0475d 100644 --- a/src/render/jobs/frustumcullingjob.cpp +++ b/src/render/jobs/frustumcullingjob.cpp @@ -115,6 +115,11 @@ void FrustumCullingJob::cullScene(Entity *e, const Plane *planes) }); } +bool FrustumCullingJob::isRequired() +{ + return m_active; +} + } // Render } // Qt3DRender diff --git a/src/render/jobs/frustumcullingjob_p.h b/src/render/jobs/frustumcullingjob_p.h index 276c0c803..ec31afb8c 100644 --- a/src/render/jobs/frustumcullingjob_p.h +++ b/src/render/jobs/frustumcullingjob_p.h @@ -83,6 +83,7 @@ public: inline bool isActive() const Q_DECL_NOTHROW { return m_active; } inline void setViewProjection(const Matrix4x4 &viewProjection) Q_DECL_NOTHROW { m_viewProjection = viewProjection; } inline Matrix4x4 viewProjection() const Q_DECL_NOTHROW { return m_viewProjection; } + bool isRequired() override; const std::vector<Entity *> &visibleEntities() const Q_DECL_NOTHROW { return m_visibleEntities; } |