summaryrefslogtreecommitdiffstats
path: root/src/render/frontend
diff options
context:
space:
mode:
authorAurélien Brooke <aurelien@bahiasoft.fr>2022-12-18 10:49:43 +0100
committerAurélien Brooke <aurelien@bahiasoft.fr>2022-12-19 08:50:15 +0100
commitb15f62e3234a85d7220fc1533b6a224522dd4735 (patch)
tree396ac5fea8548e2b68e5371f49d035b09128d984 /src/render/frontend
parent43a7aad707ece710fce1ace0c2c24aee23ddfa2d (diff)
Fix incorrect usages of std::make_move_iterator
In several places, std::make_move_iterator was used to move from a const vector, which is not possible and fell back to copy. Use the existing Qt3DCore::moveAtEnd utility to ensure a move operation is actually happening. * When readability permits, pass directly a return value as second parameter; * Otherwise, std::move from a mutable vector. Change-Id: I56c8925bbdeab95257d0a7fa89cffcda53fd6451 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/frontend')
-rw-r--r--src/render/frontend/qrenderaspect.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp
index 1626128c9..b8508cef1 100644
--- a/src/render/frontend/qrenderaspect.cpp
+++ b/src/render/frontend/qrenderaspect.cpp
@@ -148,6 +148,7 @@
#include <Qt3DCore/private/qaspectmanager_p.h>
#include <Qt3DCore/private/qeventfilterservice_p.h>
#include <Qt3DCore/private/calcboundingvolumejob_p.h>
+#include <Qt3DCore/private/vector_helper_p.h>
#include <QThread>
#include <QOpenGLContext>
@@ -667,11 +668,9 @@ std::vector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time)
jobs.push_back(job);
}
- const std::vector<QAspectJobPtr> geometryJobs = d->createGeometryRendererJobs();
- jobs.insert(jobs.end(), std::make_move_iterator(geometryJobs.begin()), std::make_move_iterator(geometryJobs.end()));
+ Qt3DCore::moveAtEnd(jobs, d->createGeometryRendererJobs());
- const std::vector<QAspectJobPtr> preRenderingJobs = d->createPreRendererJobs();
- jobs.insert(jobs.end(), std::make_move_iterator(preRenderingJobs.begin()), std::make_move_iterator(preRenderingJobs.end()));
+ Qt3DCore::moveAtEnd(jobs, d->createPreRendererJobs());
// Don't spawn any rendering jobs, if the renderer decides to skip this frame
// Note: this only affects rendering jobs (jobs that load buffers,
@@ -723,8 +722,7 @@ std::vector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time)
if (layersDirty)
jobs.push_back(d->m_updateEntityLayersJob);
- const std::vector<QAspectJobPtr> renderBinJobs = d->m_renderer->renderBinJobs();
- jobs.insert(jobs.end(), std::make_move_iterator(renderBinJobs.begin()), std::make_move_iterator(renderBinJobs.end()));
+ Qt3DCore::moveAtEnd(jobs, d->m_renderer->renderBinJobs());
}
return jobs;