diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2020-06-29 11:57:36 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2020-07-02 13:03:44 +0200 |
commit | b70f7af20550f55e9546ff5a2192f53d6ccb62cb (patch) | |
tree | c16156ad6b57a24e72dbcf491e680f95e73bce14 /src/render/frontend | |
parent | abb02d0aae5a114b77ad2edc07568fb0bcf4c6e5 (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.cpp | 32 | ||||
-rw-r--r-- | src/render/frontend/qrenderaspect.h | 2 | ||||
-rw-r--r-- | src/render/frontend/qrenderaspect_p.h | 6 |
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); |