summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGiulio Camuffo <giulio.camuffo@kdab.com>2019-04-02 11:24:33 +0200
committerPaul Lemire <paul.lemire@kdab.com>2019-04-02 14:16:50 +0000
commit03234c59244ed77cb8eea5fca6b93741f40ca59d (patch)
tree690e114792e5bb1f037999550d810cd3953f21a3 /src
parent59d26d3e9411150c7ed0fb0cf68d48988c8dbf59 (diff)
Fix assert when using QScreenRayCaster with multiple viewports
The mouse can't be in all viewports at once so the ray will not be valid for all the viewports. Cherry-picked from b68ebfde583dc5cec7ae60f752f1e05371e57dba Change-Id: Id196f043c4f670cd2106993fc5c0a9dd468a491e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/render/jobs/raycastingjob.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/render/jobs/raycastingjob.cpp b/src/render/jobs/raycastingjob.cpp
index e76b9fe8d..7d3af34cc 100644
--- a/src/render/jobs/raycastingjob.cpp
+++ b/src/render/jobs/raycastingjob.cpp
@@ -164,8 +164,11 @@ bool RayCastingJob::runHelper()
rays.back().transform(*pair.first->worldTransform());
break;
case QAbstractRayCasterPrivate::ScreenScapeRayCaster:
- for (const PickingUtils::ViewportCameraAreaDetails &vca : vcaDetails)
- rays << rayForViewportAndCamera(vca, nullptr, pair.second->position());
+ for (const PickingUtils::ViewportCameraAreaDetails &vca : vcaDetails) {
+ auto ray = rayForViewportAndCamera(vca, nullptr, pair.second->position());
+ if (ray.isValid())
+ rays << ray;
+ }
break;
default:
Q_UNREACHABLE();