summaryrefslogtreecommitdiffstats
path: root/src/render/frontend
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2020-06-29 11:57:36 +0200
committerPaul Lemire <paul.lemire@kdab.com>2020-07-02 13:03:44 +0200
commitb70f7af20550f55e9546ff5a2192f53d6ccb62cb (patch)
treec16156ad6b57a24e72dbcf491e680f95e73bce14 /src/render/frontend
parentabb02d0aae5a114b77ad2edc07568fb0bcf4c6e5 (diff)
QAspectJob: switch to using std::vector
Change-Id: I1314bd4d37ad17442ebd6287f571e41bc5d25490 Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'src/render/frontend')
-rw-r--r--src/render/frontend/qrenderaspect.cpp32
-rw-r--r--src/render/frontend/qrenderaspect.h2
-rw-r--r--src/render/frontend/qrenderaspect_p.h6
3 files changed, 20 insertions, 20 deletions
diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp
index c0db60eca..5d421dc01 100644
--- a/src/render/frontend/qrenderaspect.cpp
+++ b/src/render/frontend/qrenderaspect.cpp
@@ -653,7 +653,7 @@ void QRenderAspectPrivate::renderShutdown()
m_renderer->shutdown();
}
-QVector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time)
+std::vector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time)
{
using namespace Render;
@@ -665,7 +665,7 @@ QVector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time)
#endif
// Create jobs that will get executed by the threadpool
- QVector<QAspectJobPtr> jobs;
+ std::vector<QAspectJobPtr> jobs;
// 1 GeometryJobs, SceneLoaderJobs, LoadTextureJobs
// 2 CalculateBoundingVolumeJob (depends on LoadBuffer)
@@ -692,24 +692,24 @@ QVector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time)
auto loadSkeletonJob = Render::LoadSkeletonJobPtr::create(skeletonHandle);
loadSkeletonJob->setNodeManagers(manager);
d->m_syncLoadingJobs->addDependency(loadSkeletonJob);
- jobs.append(loadSkeletonJob);
+ jobs.push_back(loadSkeletonJob);
}
// TO DO: Have 2 jobs queue
// One for urgent jobs that are mandatory for the rendering of a frame
// Another for jobs that can span across multiple frames (Scene/Mesh loading)
- const QVector<Render::LoadSceneJobPtr> sceneJobs = manager->sceneManager()->takePendingSceneLoaderJobs();
+ const std::vector<Render::LoadSceneJobPtr> sceneJobs = manager->sceneManager()->takePendingSceneLoaderJobs();
for (const Render::LoadSceneJobPtr &job : sceneJobs) {
job->setNodeManagers(d->m_nodeManagers);
job->setSceneImporters(d->m_sceneImporter);
- jobs.append(job);
+ jobs.push_back(job);
}
- const QVector<QAspectJobPtr> geometryJobs = d->createGeometryRendererJobs();
- jobs.append(geometryJobs);
+ const std::vector<QAspectJobPtr> geometryJobs = d->createGeometryRendererJobs();
+ jobs.insert(jobs.end(), std::make_move_iterator(geometryJobs.begin()), std::make_move_iterator(geometryJobs.end()));
- const QVector<QAspectJobPtr> preRenderingJobs = d->createPreRendererJobs();
- jobs.append(preRenderingJobs);
+ const std::vector<QAspectJobPtr> preRenderingJobs = d->createPreRendererJobs();
+ jobs.insert(jobs.end(), std::make_move_iterator(preRenderingJobs.begin()), std::make_move_iterator(preRenderingJobs.end()));
// Don't spawn any rendering jobs, if the renderer decides to skip this frame
// Note: this only affects rendering jobs (jobs that load buffers,
@@ -758,8 +758,8 @@ QVector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time)
if (layersDirty)
jobs.push_back(d->m_updateEntityLayersJob);
- const QVector<QAspectJobPtr> renderBinJobs = d->m_renderer->renderBinJobs();
- jobs.append(renderBinJobs);
+ 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()));
}
return jobs;
@@ -876,11 +876,11 @@ void QRenderAspect::onUnregistered()
d->m_offscreenHelper = nullptr;
}
-QVector<Qt3DCore::QAspectJobPtr> QRenderAspectPrivate::createGeometryRendererJobs() const
+std::vector<Qt3DCore::QAspectJobPtr> QRenderAspectPrivate::createGeometryRendererJobs() const
{
Render::GeometryRendererManager *geomRendererManager = m_nodeManagers->geometryRendererManager();
const QVector<QNodeId> dirtyGeometryRenderers = geomRendererManager->dirtyGeometryRenderers();
- QVector<QAspectJobPtr> dirtyGeometryRendererJobs;
+ std::vector<QAspectJobPtr> dirtyGeometryRendererJobs;
dirtyGeometryRendererJobs.reserve(dirtyGeometryRenderers.size());
for (const QNodeId &geoRendererId : dirtyGeometryRenderers) {
@@ -895,7 +895,7 @@ QVector<Qt3DCore::QAspectJobPtr> QRenderAspectPrivate::createGeometryRendererJob
return dirtyGeometryRendererJobs;
}
-QVector<QAspectJobPtr> QRenderAspectPrivate::createPreRendererJobs() const
+std::vector<QAspectJobPtr> QRenderAspectPrivate::createPreRendererJobs() const
{
if (!m_renderer)
return {};
@@ -912,8 +912,8 @@ QVector<QAspectJobPtr> QRenderAspectPrivate::createPreRendererJobs() const
m_rayCastingJob->setFrameGraphRoot(m_renderer->frameGraphRoot());
}
- jobs.append(m_pickBoundingVolumeJob);
- jobs.append(m_rayCastingJob);
+ jobs.push_back(m_pickBoundingVolumeJob);
+ jobs.push_back(m_rayCastingJob);
return jobs;
}
diff --git a/src/render/frontend/qrenderaspect.h b/src/render/frontend/qrenderaspect.h
index f16f6f07f..ab1780c68 100644
--- a/src/render/frontend/qrenderaspect.h
+++ b/src/render/frontend/qrenderaspect.h
@@ -83,7 +83,7 @@ protected:
Q_DECLARE_PRIVATE(QRenderAspect)
private:
- QVector<Qt3DCore::QAspectJobPtr> jobsToExecute(qint64 time) override;
+ std::vector<Qt3DCore::QAspectJobPtr> jobsToExecute(qint64 time) override;
QVariant executeCommand(const QStringList &args) override;
diff --git a/src/render/frontend/qrenderaspect_p.h b/src/render/frontend/qrenderaspect_p.h
index f4dcb7234..fbdc0c053 100644
--- a/src/render/frontend/qrenderaspect_p.h
+++ b/src/render/frontend/qrenderaspect_p.h
@@ -117,9 +117,9 @@ public:
void renderSynchronous(bool swapBuffers = true);
void renderShutdown();
void registerBackendType(const QMetaObject &, const Qt3DCore::QBackendNodeMapperPtr &functor);
- QVector<Qt3DCore::QAspectJobPtr> createGeometryRendererJobs() const;
- QVector<Qt3DCore::QAspectJobPtr> createPreRendererJobs() const;
- QVector<Qt3DCore::QAspectJobPtr> createRenderBufferJobs() const;
+ std::vector<Qt3DCore::QAspectJobPtr> createGeometryRendererJobs() const;
+ std::vector<Qt3DCore::QAspectJobPtr> createPreRendererJobs() const;
+ std::vector<Qt3DCore::QAspectJobPtr> createRenderBufferJobs() const;
Render::AbstractRenderer *loadRendererPlugin();
bool processMouseEvent(QObject *obj, QMouseEvent *event);