summaryrefslogtreecommitdiffstats
path: root/src/render/jobs/pickboundingvolumeutils.cpp
diff options
context:
space:
mode:
authorTasuku Suzuki <tasuku.suzuki@qt.io>2018-05-01 15:29:24 +0900
committerAndy Nichols <andy.nichols@qt.io>2018-06-01 08:05:20 +0000
commit2f13dc60fed05bc216c6a12291acc0205c8b5438 (patch)
tree985ec224230f12afc2872a4d8a7e98173b47b14b /src/render/jobs/pickboundingvolumeutils.cpp
parented92aecef9ad3630aa692f9a4bfdbad1d92362e1 (diff)
Fix build without QtConcurrent
Change-Id: I9ce68e849e45e85c6dc84a73c8836efa8e94c499 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'src/render/jobs/pickboundingvolumeutils.cpp')
-rw-r--r--src/render/jobs/pickboundingvolumeutils.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/render/jobs/pickboundingvolumeutils.cpp b/src/render/jobs/pickboundingvolumeutils.cpp
index a9c2aee10..5fed946d6 100644
--- a/src/render/jobs/pickboundingvolumeutils.cpp
+++ b/src/render/jobs/pickboundingvolumeutils.cpp
@@ -496,7 +496,15 @@ HitList EntityCollisionGathererFunctor::computeHits(const QVector<Entity *> &ent
{
const auto reducerOp = allHitsRequested ? PickingUtils::reduceToAllHits : PickingUtils::reduceToFirstHit;
const MapFunctorHolder holder(this);
+#if QT_CONFIG(concurrent)
return QtConcurrent::blockingMappedReduced<HitList>(entities, holder, reducerOp);
+#else
+ HitList sphereHits;
+ QVector<PickingUtils::EntityCollisionGathererFunctor::result_type> results;
+ for (const Entity *entity : entities)
+ sphereHits = reducerOp(sphereHits, holder(entity));
+ return sphereHits;
+#endif
}
HitList EntityCollisionGathererFunctor::pick(const Entity *entity) const
@@ -515,7 +523,15 @@ HitList TriangleCollisionGathererFunctor::computeHits(const QVector<Entity *> &e
{
const auto reducerOp = allHitsRequested ? PickingUtils::reduceToAllHits : PickingUtils::reduceToFirstHit;
const MapFunctorHolder holder(this);
+#if QT_CONFIG(concurrent)
return QtConcurrent::blockingMappedReduced<HitList>(entities, holder, reducerOp);
+#else
+ HitList sphereHits;
+ QVector<PickingUtils::TriangleCollisionGathererFunctor::result_type> results;
+ for (const Entity *entity : entities)
+ sphereHits = reducerOp(sphereHits, holder(entity));
+ return sphereHits;
+#endif
}
HitList TriangleCollisionGathererFunctor::pick(const Entity *entity) const
@@ -541,7 +557,15 @@ HitList LineCollisionGathererFunctor::computeHits(const QVector<Entity *> &entit
{
const auto reducerOp = allHitsRequested ? PickingUtils::reduceToAllHits : PickingUtils::reduceToFirstHit;
const MapFunctorHolder holder(this);
+#if QT_CONFIG(concurrent)
return QtConcurrent::blockingMappedReduced<HitList>(entities, holder, reducerOp);
+#else
+ HitList sphereHits;
+ QVector<PickingUtils::LineCollisionGathererFunctor::result_type> results;
+ for (const Entity *entity : entities)
+ sphereHits = reducerOp(sphereHits, holder(entity));
+ return sphereHits;
+#endif
}
HitList LineCollisionGathererFunctor::pick(const Entity *entity) const
@@ -566,7 +590,15 @@ HitList PointCollisionGathererFunctor::computeHits(const QVector<Entity *> &enti
{
const auto reducerOp = allHitsRequested ? PickingUtils::reduceToAllHits : PickingUtils::reduceToFirstHit;
const MapFunctorHolder holder(this);
+#if QT_CONFIG(concurrent)
return QtConcurrent::blockingMappedReduced<HitList>(entities, holder, reducerOp);
+#else
+ HitList sphereHits;
+ QVector<PickingUtils::PointCollisionGathererFunctor::result_type> results;
+ for (const Entity *entity : entities)
+ sphereHits = reducerOp(sphereHits, holder(entity));
+ return sphereHits;
+#endif
}
HitList PointCollisionGathererFunctor::pick(const Entity *entity) const