diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2020-05-05 14:07:25 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2020-06-04 11:13:16 +0200 |
commit | 0c9c4e163458f99ac350aef4979754cbe147dac3 (patch) | |
tree | f6acbf7b96f2ca146a2f2fefc666e3df817fa30d /src | |
parent | 83ee10ff799fa5892b14a677036fb445ae16b10b (diff) |
QResourcesManager: switch to std::vector
Given QVector is potentially slower for this use case and the fact
that QVector might become QList in Qt6, we're better of using the
std.
Change-Id: If2c403439ddb856b60f8bfd5ae7c6ec1cb2c892a
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit 04bdb35a6c5f5fe417c06392e6a0861d80ec9dba)
Diffstat (limited to 'src')
-rw-r--r-- | src/core/resources/qresourcemanager_p.h | 6 | ||||
-rw-r--r-- | src/input/backend/inputhandler.cpp | 2 | ||||
-rw-r--r-- | src/plugins/renderers/opengl/jobs/materialparametergathererjob.cpp | 2 | ||||
-rw-r--r-- | src/plugins/renderers/opengl/jobs/materialparametergathererjob_p.h | 7 | ||||
-rw-r--r-- | src/plugins/renderers/opengl/renderer/renderer.cpp | 26 | ||||
-rw-r--r-- | src/plugins/renderers/opengl/renderer/renderviewbuilder.cpp | 15 | ||||
-rw-r--r-- | src/plugins/renderers/rhi/renderer/renderer.cpp | 20 | ||||
-rw-r--r-- | src/plugins/renderers/rhi/renderer/renderviewbuilder.cpp | 32 | ||||
-rw-r--r-- | src/render/jobs/filterentitybycomponentjob_p.h | 2 | ||||
-rw-r--r-- | src/render/jobs/filterlayerentityjob.cpp | 4 | ||||
-rw-r--r-- | src/render/jobs/filterproximitydistancejob.cpp | 2 | ||||
-rw-r--r-- | src/render/jobs/lightgatherer.cpp | 2 | ||||
-rw-r--r-- | src/render/jobs/updateentitylayersjob.cpp | 2 | ||||
-rw-r--r-- | src/render/jobs/updatemeshtrianglelistjob.cpp | 2 | ||||
-rw-r--r-- | src/render/jobs/updateshaderdatatransformjob.cpp | 2 | ||||
-rw-r--r-- | src/render/jobs/updateworldboundingvolumejob.cpp | 2 |
16 files changed, 66 insertions, 62 deletions
diff --git a/src/core/resources/qresourcemanager_p.h b/src/core/resources/qresourcemanager_p.h index 6e479d5ef..88bce2e1c 100644 --- a/src/core/resources/qresourcemanager_p.h +++ b/src/core/resources/qresourcemanager_p.h @@ -247,7 +247,7 @@ public: void releaseResource(const Handle &handle) { - m_activeHandles.removeOne(handle); + m_activeHandles.erase(std::remove(m_activeHandles.begin(), m_activeHandles.end(), handle), m_activeHandles.end()); typename Handle::Data *d = handle.data_ptr(); d->nextFree = freeList; freeList = d; @@ -272,7 +272,7 @@ public: } int count() const { return m_activeHandles.size(); } - QVector<Handle> activeHandles() const { return m_activeHandles; } + const std::vector<Handle> &activeHandles() const { return m_activeHandles; } private: Q_DISABLE_COPY(ArrayAllocatingPolicy) @@ -290,7 +290,7 @@ private: }; Bucket *firstBucket = 0; - QVector<Handle > m_activeHandles; + std::vector<Handle> m_activeHandles; typename Handle::Data *freeList = 0; int allocCounter = 1; diff --git a/src/input/backend/inputhandler.cpp b/src/input/backend/inputhandler.cpp index 9484909ab..adaaebc88 100644 --- a/src/input/backend/inputhandler.cpp +++ b/src/input/backend/inputhandler.cpp @@ -264,7 +264,7 @@ QVector<Qt3DCore::QAspectJobPtr> InputHandler::mouseJobs() #endif ) { // Send the events to the mouse handlers that have for sourceDevice controller - const QVector<HMouseHandler> activeMouseHandlers = m_mouseInputManager->activeHandles(); + const std::vector<HMouseHandler> &activeMouseHandlers = m_mouseInputManager->activeHandles(); for (const HMouseHandler &mouseHandlerHandle : activeMouseHandlers) { MouseHandler *mouseHandler = m_mouseInputManager->data(mouseHandlerHandle); diff --git a/src/plugins/renderers/opengl/jobs/materialparametergathererjob.cpp b/src/plugins/renderers/opengl/jobs/materialparametergathererjob.cpp index 66f62eda4..932baf685 100644 --- a/src/plugins/renderers/opengl/jobs/materialparametergathererjob.cpp +++ b/src/plugins/renderers/opengl/jobs/materialparametergathererjob.cpp @@ -74,7 +74,7 @@ public: bool MaterialParameterGathererJobPrivate::isRequired() const { - return !q_ptr->m_handles.isEmpty(); + return !q_ptr->m_handles.empty(); } void MaterialParameterGathererJobPrivate::postFrame(Qt3DCore::QAspectManager *manager) diff --git a/src/plugins/renderers/opengl/jobs/materialparametergathererjob_p.h b/src/plugins/renderers/opengl/jobs/materialparametergathererjob_p.h index 91454f8c1..f1ad5e735 100644 --- a/src/plugins/renderers/opengl/jobs/materialparametergathererjob_p.h +++ b/src/plugins/renderers/opengl/jobs/materialparametergathererjob_p.h @@ -81,8 +81,9 @@ public: inline void setNodeManagers(NodeManagers *manager) Q_DECL_NOTHROW { m_manager = manager; } inline void setTechniqueFilter(TechniqueFilter *techniqueFilter) Q_DECL_NOTHROW { m_techniqueFilter = techniqueFilter; } inline void setRenderPassFilter(RenderPassFilter *renderPassFilter) Q_DECL_NOTHROW { m_renderPassFilter = renderPassFilter; } - inline const QHash<Qt3DCore::QNodeId, QVector<RenderPassParameterData>> &materialToPassAndParameter() Q_DECL_NOTHROW { return m_parameters; } - inline void setHandles(const QVector<HMaterial> &handles) Q_DECL_NOTHROW { m_handles = handles; } + inline const MaterialParameterGathererData &materialToPassAndParameter() Q_DECL_NOTHROW { return m_parameters; } + inline void setHandles(std::vector<HMaterial> &&handles) Q_DECL_NOTHROW { m_handles = std::move(handles); } + inline void setHandles(const std::vector<HMaterial> &handles) Q_DECL_NOTHROW { m_handles = handles; } inline TechniqueFilter *techniqueFilter() const Q_DECL_NOTHROW { return m_techniqueFilter; } inline RenderPassFilter *renderPassFilter() const Q_DECL_NOTHROW { return m_renderPassFilter; } @@ -96,7 +97,7 @@ private: // Material id to array of RenderPasse with parameters MaterialParameterGathererData m_parameters; - QVector<HMaterial> m_handles; + std::vector<HMaterial> m_handles; Q_DECLARE_PRIVATE(MaterialParameterGathererJob) }; diff --git a/src/plugins/renderers/opengl/renderer/renderer.cpp b/src/plugins/renderers/opengl/renderer/renderer.cpp index d38b12384..a5d624c34 100644 --- a/src/plugins/renderers/opengl/renderer/renderer.cpp +++ b/src/plugins/renderers/opengl/renderer/renderer.cpp @@ -598,14 +598,14 @@ void Renderer::releaseGraphicsResources() if (context->thread() == QThread::currentThread() && context->makeCurrent(offscreenSurface)) { // Clean up the graphics context and any resources - const QVector<HGLTexture> activeTexturesHandles = m_glResourceManagers->glTextureManager()->activeHandles(); + const std::vector<HGLTexture> &activeTexturesHandles = m_glResourceManagers->glTextureManager()->activeHandles(); for (const HGLTexture &textureHandle : activeTexturesHandles) { GLTexture *tex = m_glResourceManagers->glTextureManager()->data(textureHandle); tex->destroy(); } // Do the same thing with buffers - const QVector<HGLBuffer> activeBuffers = m_glResourceManagers->glBufferManager()->activeHandles(); + const std::vector<HGLBuffer> &activeBuffers = m_glResourceManagers->glBufferManager()->activeHandles(); for (const HGLBuffer &bufferHandle : activeBuffers) { GLBuffer *buffer = m_glResourceManagers->glBufferManager()->data(bufferHandle); buffer->destroy(m_submissionContext.data()); @@ -616,7 +616,7 @@ void Renderer::releaseGraphicsResources() qDeleteAll(shaders); // Do the same thing with VAOs - const QVector<HVao> activeVaos = m_glResourceManagers->vaoManager()->activeHandles(); + const std::vector<HVao> &activeVaos = m_glResourceManagers->vaoManager()->activeHandles(); for (const HVao &vaoHandle : activeVaos) { OpenGLVertexArrayObject *vao = m_glResourceManagers->vaoManager()->data(vaoHandle); vao->destroy(); @@ -1020,7 +1020,7 @@ void Renderer::prepareCommandsSubmission(const QVector<RenderView *> &renderView // Executed in a job void Renderer::lookForAbandonedVaos() { - const QVector<HVao> activeVaos = m_glResourceManagers->vaoManager()->activeHandles(); + const std::vector<HVao> &activeVaos = m_glResourceManagers->vaoManager()->activeHandles(); for (HVao handle : activeVaos) { OpenGLVertexArrayObject *vao = m_glResourceManagers->vaoManager()->data(handle); @@ -1037,7 +1037,7 @@ void Renderer::lookForAbandonedVaos() // Executed in a job void Renderer::lookForDirtyBuffers() { - const QVector<HBuffer> activeBufferHandles = m_nodesManager->bufferManager()->activeHandles(); + const std::vector<HBuffer> &activeBufferHandles = m_nodesManager->bufferManager()->activeHandles(); for (const HBuffer &handle: activeBufferHandles) { Buffer *buffer = m_nodesManager->bufferManager()->data(handle); if (buffer->isDirty()) @@ -1049,7 +1049,7 @@ void Renderer::lookForDirtyBuffers() void Renderer::lookForDownloadableBuffers() { m_downloadableBuffers.clear(); - const QVector<HBuffer> activeBufferHandles = m_nodesManager->bufferManager()->activeHandles(); + const std::vector<HBuffer> &activeBufferHandles = m_nodesManager->bufferManager()->activeHandles(); for (const HBuffer &handle : activeBufferHandles) { Buffer *buffer = m_nodesManager->bufferManager()->data(handle); if (buffer->access() & QBuffer::Read) @@ -1065,7 +1065,7 @@ void Renderer::lookForDirtyTextures() // image has been updated to then notify textures referencing the image // that they need to be updated TextureImageManager *imageManager = m_nodesManager->textureImageManager(); - const QVector<HTextureImage> activeTextureImageHandles = imageManager->activeHandles(); + const std::vector<HTextureImage> &activeTextureImageHandles = imageManager->activeHandles(); Qt3DCore::QNodeIdVector dirtyImageIds; for (const HTextureImage &handle: activeTextureImageHandles) { TextureImage *image = imageManager->data(handle); @@ -1076,7 +1076,7 @@ void Renderer::lookForDirtyTextures() } TextureManager *textureManager = m_nodesManager->textureManager(); - const QVector<HTexture> activeTextureHandles = textureManager->activeHandles(); + const std::vector<HTexture> &activeTextureHandles = textureManager->activeHandles(); for (const HTexture &handle: activeTextureHandles) { Texture *texture = textureManager->data(handle); const QNodeIdVector imageIds = texture->textureImageIds(); @@ -1103,8 +1103,8 @@ void Renderer::lookForDirtyTextures() void Renderer::reloadDirtyShaders() { Q_ASSERT(isRunning()); - const QVector<HTechnique> activeTechniques = m_nodesManager->techniqueManager()->activeHandles(); - const QVector<HShaderBuilder> activeBuilders = m_nodesManager->shaderBuilderManager()->activeHandles(); + const std::vector<HTechnique> &activeTechniques = m_nodesManager->techniqueManager()->activeHandles(); + const std::vector<HShaderBuilder> &activeBuilders = m_nodesManager->shaderBuilderManager()->activeHandles(); for (const HTechnique &techniqueHandle : activeTechniques) { Technique *technique = m_nodesManager->techniqueManager()->data(techniqueHandle); // If api of the renderer matches the one from the technique @@ -1159,7 +1159,7 @@ void Renderer::sendShaderChangesToFrontend(Qt3DCore::QAspectManager *manager) Q_ASSERT(isRunning()); // Sync Shader - const QVector<HShader> activeShaders = m_nodesManager->shaderManager()->activeHandles(); + const std::vector<HShader> &activeShaders = m_nodesManager->shaderManager()->activeHandles(); for (const HShader &handle :activeShaders) { Shader *s = m_nodesManager->shaderManager()->data(handle); if (s->requiresFrontendSync()) { @@ -1247,7 +1247,7 @@ void Renderer::sendDisablesToFrontend(Qt3DCore::QAspectManager *manager) } // Compute Commands - const QVector<HComputeCommand> activeCommands = m_nodesManager->computeJobManager()->activeHandles(); + const std::vector<HComputeCommand> &activeCommands = m_nodesManager->computeJobManager()->activeHandles(); for (const HComputeCommand &handle :activeCommands) { ComputeCommand *c = m_nodesManager->computeJobManager()->data(handle); if (c->hasReachedFrameCount()) { @@ -1348,7 +1348,7 @@ void Renderer::updateGLResources() QNodeIdVector updatedTexturesForFrame; if (m_submissionContext != nullptr) { GLTextureManager *glTextureManager = m_glResourceManagers->glTextureManager(); - const QVector<HGLTexture> glTextureHandles = glTextureManager->activeHandles(); + const std::vector<HGLTexture> &glTextureHandles = glTextureManager->activeHandles(); // Upload texture data for (const HGLTexture &glTextureHandle : glTextureHandles) { GLTexture *glTexture = glTextureManager->data(glTextureHandle); diff --git a/src/plugins/renderers/opengl/renderer/renderviewbuilder.cpp b/src/plugins/renderers/opengl/renderer/renderviewbuilder.cpp index 613148d50..6ba1ac361 100644 --- a/src/plugins/renderers/opengl/renderer/renderviewbuilder.cpp +++ b/src/plugins/renderers/opengl/renderer/renderviewbuilder.cpp @@ -609,15 +609,18 @@ void RenderViewBuilder::prepareJobs() const bool materialCacheNeedsRebuild = m_rebuildFlags.testFlag(RebuildFlag::MaterialCacheRebuild); if (materialCacheNeedsRebuild) { // Since Material gathering is an heavy task, we split it - const QVector<HMaterial> materialHandles = m_renderer->nodeManagers()->materialManager()->activeHandles(); - if (materialHandles.count()) { - const int elementsPerJob = qMax(materialHandles.size() / m_optimalParallelJobCount, 1); + const std::vector<HMaterial> &materialHandles = m_renderer->nodeManagers()->materialManager()->activeHandles(); + const size_t handlesCount = materialHandles.size(); + if (handlesCount) { m_materialGathererJobs.reserve(m_optimalParallelJobCount); - int elementCount = 0; - while (elementCount < materialHandles.size()) { + const size_t elementsPerJob = std::max(handlesCount / m_optimalParallelJobCount, size_t(1)); + size_t elementCount = 0; + while (elementCount < handlesCount) { auto materialGatherer = MaterialParameterGathererJobPtr::create(); materialGatherer->setNodeManagers(m_renderer->nodeManagers()); - materialGatherer->setHandles(materialHandles.mid(elementCount, elementsPerJob)); + // TO DO: Candidate for std::span if C++20 + materialGatherer->setHandles({materialHandles.begin() + elementCount, + materialHandles.begin() + std::min(elementCount + elementsPerJob, handlesCount)}); m_materialGathererJobs.push_back(materialGatherer); elementCount += elementsPerJob; diff --git a/src/plugins/renderers/rhi/renderer/renderer.cpp b/src/plugins/renderers/rhi/renderer/renderer.cpp index ee9a26a98..bd457dd79 100644 --- a/src/plugins/renderers/rhi/renderer/renderer.cpp +++ b/src/plugins/renderers/rhi/renderer/renderer.cpp @@ -1271,7 +1271,7 @@ Renderer::prepareCommandsSubmission(const QVector<RenderView *> &renderViews) // Executed in a job void Renderer::lookForDirtyBuffers() { - const QVector<HBuffer> activeBufferHandles = m_nodesManager->bufferManager()->activeHandles(); + const std::vector<HBuffer> &activeBufferHandles = m_nodesManager->bufferManager()->activeHandles(); for (const HBuffer &handle : activeBufferHandles) { Buffer *buffer = m_nodesManager->bufferManager()->data(handle); if (buffer->isDirty()) @@ -1283,7 +1283,7 @@ void Renderer::lookForDirtyBuffers() void Renderer::lookForDownloadableBuffers() { m_downloadableBuffers.clear(); - const QVector<HBuffer> activeBufferHandles = m_nodesManager->bufferManager()->activeHandles(); + const std::vector<HBuffer> &activeBufferHandles = m_nodesManager->bufferManager()->activeHandles(); for (const HBuffer &handle : activeBufferHandles) { Buffer *buffer = m_nodesManager->bufferManager()->data(handle); if (buffer->access() & QBuffer::Read) @@ -1299,7 +1299,7 @@ void Renderer::lookForDirtyTextures() // image has been updated to then notify textures referencing the image // that they need to be updated TextureImageManager *imageManager = m_nodesManager->textureImageManager(); - const QVector<HTextureImage> activeTextureImageHandles = imageManager->activeHandles(); + const std::vector<HTextureImage> &activeTextureImageHandles = imageManager->activeHandles(); Qt3DCore::QNodeIdVector dirtyImageIds; for (const HTextureImage &handle : activeTextureImageHandles) { TextureImage *image = imageManager->data(handle); @@ -1310,7 +1310,7 @@ void Renderer::lookForDirtyTextures() } TextureManager *textureManager = m_nodesManager->textureManager(); - const QVector<HTexture> activeTextureHandles = textureManager->activeHandles(); + const std::vector<HTexture> &activeTextureHandles = textureManager->activeHandles(); for (const HTexture &handle : activeTextureHandles) { Texture *texture = textureManager->data(handle); const QNodeIdVector imageIds = texture->textureImageIds(); @@ -1337,9 +1337,9 @@ void Renderer::lookForDirtyTextures() void Renderer::reloadDirtyShaders() { Q_ASSERT(isRunning()); - const QVector<HTechnique> activeTechniques = + const std::vector<HTechnique> &activeTechniques = m_nodesManager->techniqueManager()->activeHandles(); - const QVector<HShaderBuilder> activeBuilders = + const std::vector<HShaderBuilder> &activeBuilders = m_nodesManager->shaderBuilderManager()->activeHandles(); for (const HTechnique &techniqueHandle : activeTechniques) { Technique *technique = m_nodesManager->techniqueManager()->data(techniqueHandle); @@ -1394,7 +1394,7 @@ void Renderer::sendShaderChangesToFrontend(Qt3DCore::QAspectManager *manager) Q_ASSERT(isRunning()); // Sync Shader - const QVector<HShader> activeShaders = m_nodesManager->shaderManager()->activeHandles(); + const std::vector<HShader> &activeShaders = m_nodesManager->shaderManager()->activeHandles(); for (const HShader &handle : activeShaders) { Shader *s = m_nodesManager->shaderManager()->data(handle); if (s->requiresFrontendSync()) { @@ -1469,7 +1469,7 @@ void Renderer::sendDisablesToFrontend(Qt3DCore::QAspectManager *manager) } // Compute Commands - const QVector<HComputeCommand> activeCommands = + const std::vector<HComputeCommand> &activeCommands = m_nodesManager->computeJobManager()->activeHandles(); for (const HComputeCommand &handle : activeCommands) { ComputeCommand *c = m_nodesManager->computeJobManager()->data(handle); @@ -1549,7 +1549,7 @@ void Renderer::updateResources() // RHITexture if (m_submissionContext != nullptr) { RHITextureManager *rhiTextureManager = m_RHIResourceManagers->rhiTextureManager(); - const QVector<HRHITexture> glTextureHandles = rhiTextureManager->activeHandles(); + const std::vector<HRHITexture> &glTextureHandles = rhiTextureManager->activeHandles(); // Upload texture data for (const HRHITexture &glTextureHandle : glTextureHandles) { RHI_UNIMPLEMENTED; @@ -2486,7 +2486,7 @@ void Renderer::cleanGraphicsResources() // Remove unused GraphicsPipeline RHIGraphicsPipelineManager *pipelineManager = m_RHIResourceManagers->rhiGraphicsPipelineManager(); - const QVector<HRHIGraphicsPipeline> graphicsPipelinesHandles = pipelineManager->activeHandles(); + const std::vector<HRHIGraphicsPipeline> &graphicsPipelinesHandles = pipelineManager->activeHandles(); for (HRHIGraphicsPipeline pipelineHandle : graphicsPipelinesHandles) { RHIGraphicsPipeline *pipeline = pipelineManager->data(pipelineHandle); pipeline->decreaseScore(); diff --git a/src/plugins/renderers/rhi/renderer/renderviewbuilder.cpp b/src/plugins/renderers/rhi/renderer/renderviewbuilder.cpp index 6455d2e10..387c5ff8d 100644 --- a/src/plugins/renderers/rhi/renderer/renderviewbuilder.cpp +++ b/src/plugins/renderers/rhi/renderer/renderviewbuilder.cpp @@ -609,23 +609,23 @@ void RenderViewBuilder::prepareJobs() if (m_materialGathererCacheNeedsToBeRebuilt) { // Since Material gathering is an heavy task, we split it - const QVector<HMaterial> materialHandles = + const std::vector<HMaterial> &materialHandles = m_renderer->nodeManagers()->materialManager()->activeHandles(); - const int elementsPerJob = - materialHandles.size() / RenderViewBuilder::m_optimalParallelJobCount; - const int lastRemaingElements = - materialHandles.size() % RenderViewBuilder::m_optimalParallelJobCount; - m_materialGathererJobs.reserve(RenderViewBuilder::m_optimalParallelJobCount); - for (auto i = 0; i < RenderViewBuilder::m_optimalParallelJobCount; ++i) { - auto materialGatherer = MaterialParameterGathererJobPtr::create(); - materialGatherer->setNodeManagers(m_renderer->nodeManagers()); - if (i == RenderViewBuilder::m_optimalParallelJobCount - 1) - materialGatherer->setHandles(materialHandles.mid( - i * elementsPerJob, elementsPerJob + lastRemaingElements)); - else - materialGatherer->setHandles( - materialHandles.mid(i * elementsPerJob, elementsPerJob)); - m_materialGathererJobs.push_back(materialGatherer); + const size_t handlesCount = materialHandles.size(); + if (handlesCount) { + m_materialGathererJobs.reserve(m_optimalParallelJobCount); + const size_t elementsPerJob = std::max(handlesCount / m_optimalParallelJobCount, size_t(1)); + size_t elementCount = 0; + while (elementCount < handlesCount) { + auto materialGatherer = MaterialParameterGathererJobPtr::create(); + materialGatherer->setNodeManagers(m_renderer->nodeManagers()); + // TO DO: Candidate for std::span if C++20 + materialGatherer->setHandles({materialHandles.begin() + elementCount, + materialHandles.begin() + std::min(elementCount + elementsPerJob, handlesCount)}); + m_materialGathererJobs.push_back(materialGatherer); + + elementCount += elementsPerJob; + } } m_syncMaterialGathererJob = SynchronizerJobPtr::create( SyncMaterialParameterGatherer(m_materialGathererJobs, m_renderer, m_leafNode), diff --git a/src/render/jobs/filterentitybycomponentjob_p.h b/src/render/jobs/filterentitybycomponentjob_p.h index 58c3e310c..40bb75f37 100644 --- a/src/render/jobs/filterentitybycomponentjob_p.h +++ b/src/render/jobs/filterentitybycomponentjob_p.h @@ -83,7 +83,7 @@ public: void run() override { m_filteredEntities.clear(); - const QVector<HEntity> handles = m_manager->activeHandles(); + const std::vector<HEntity> &handles = m_manager->activeHandles(); m_filteredEntities.reserve(handles.size()); for (const HEntity &handle : handles) { Entity *e = m_manager->data(handle); diff --git a/src/render/jobs/filterlayerentityjob.cpp b/src/render/jobs/filterlayerentityjob.cpp index 032004422..ae3cced59 100644 --- a/src/render/jobs/filterlayerentityjob.cpp +++ b/src/render/jobs/filterlayerentityjob.cpp @@ -152,7 +152,7 @@ void FilterLayerEntityJob::filterDiscardAllMatchingLayers(Entity *entity, void FilterLayerEntityJob::filterLayerAndEntity() { EntityManager *entityManager = m_manager->renderNodesManager(); - const QVector<HEntity> handles = entityManager->activeHandles(); + const std::vector<HEntity> &handles = entityManager->activeHandles(); QVector<Entity *> entitiesToFilter; entitiesToFilter.reserve(handles.size()); @@ -215,7 +215,7 @@ void FilterLayerEntityJob::filterLayerAndEntity() void FilterLayerEntityJob::selectAllEntities() { EntityManager *entityManager = m_manager->renderNodesManager(); - const QVector<HEntity> handles = entityManager->activeHandles(); + const std::vector<HEntity> &handles = entityManager->activeHandles(); m_filteredEntities.reserve(handles.size()); for (const HEntity &handle : handles) { diff --git a/src/render/jobs/filterproximitydistancejob.cpp b/src/render/jobs/filterproximitydistancejob.cpp index 02b712fc2..56c3baa62 100644 --- a/src/render/jobs/filterproximitydistancejob.cpp +++ b/src/render/jobs/filterproximitydistancejob.cpp @@ -92,7 +92,7 @@ void FilterProximityDistanceJob::run() void FilterProximityDistanceJob::selectAllEntities() { EntityManager *entityManager = m_manager->renderNodesManager(); - const QVector<HEntity> handles = entityManager->activeHandles(); + const std::vector<HEntity> &handles = entityManager->activeHandles(); m_filteredEntities.reserve(handles.size()); for (const HEntity &handle : handles) { diff --git a/src/render/jobs/lightgatherer.cpp b/src/render/jobs/lightgatherer.cpp index b878b0a78..b3500806d 100644 --- a/src/render/jobs/lightgatherer.cpp +++ b/src/render/jobs/lightgatherer.cpp @@ -62,7 +62,7 @@ void LightGatherer::run() m_lights.clear(); m_environmentLight = nullptr; - const QVector<HEntity> handles = m_manager->activeHandles(); + const std::vector<HEntity> &handles = m_manager->activeHandles(); int envLightCount = 0; for (const HEntity &handle : handles) { diff --git a/src/render/jobs/updateentitylayersjob.cpp b/src/render/jobs/updateentitylayersjob.cpp index b8c50c179..62b3b1c78 100644 --- a/src/render/jobs/updateentitylayersjob.cpp +++ b/src/render/jobs/updateentitylayersjob.cpp @@ -61,7 +61,7 @@ void UpdateEntityLayersJob::run() Q_ASSERT(m_manager); EntityManager *entityManager = m_manager->renderNodesManager(); - const QVector<HEntity> handles = entityManager->activeHandles(); + const std::vector<HEntity> &handles = entityManager->activeHandles(); // Clear list of recursive layerIds for (const HEntity &handle : handles) { diff --git a/src/render/jobs/updatemeshtrianglelistjob.cpp b/src/render/jobs/updatemeshtrianglelistjob.cpp index 4837dcad6..77292a84f 100644 --- a/src/render/jobs/updatemeshtrianglelistjob.cpp +++ b/src/render/jobs/updatemeshtrianglelistjob.cpp @@ -79,7 +79,7 @@ void UpdateMeshTriangleListJob::run() BufferManager *bufferManager = m_manager->bufferManager(); AttributeManager *attributeManager = m_manager->attributeManager(); - const QVector<HGeometryRenderer> handles = geomRenderermanager->activeHandles(); + const std::vector<HGeometryRenderer> &handles = geomRenderermanager->activeHandles(); for (const HGeometryRenderer &handle : handles) { // Look if for the GeometryRender/Geometry the attributes and or buffers are dirty diff --git a/src/render/jobs/updateshaderdatatransformjob.cpp b/src/render/jobs/updateshaderdatatransformjob.cpp index 11fe91932..f5cf3175b 100644 --- a/src/render/jobs/updateshaderdatatransformjob.cpp +++ b/src/render/jobs/updateshaderdatatransformjob.cpp @@ -81,7 +81,7 @@ NodeManagers *UpdateShaderDataTransformJob::managers() const void UpdateShaderDataTransformJob::run() { EntityManager *manager = m_manager->renderNodesManager(); - const QVector<HEntity> handles = manager->activeHandles(); + const std::vector<HEntity> &handles = manager->activeHandles(); for (const HEntity &handle : handles) { Entity *node = manager->data(handle); diff --git a/src/render/jobs/updateworldboundingvolumejob.cpp b/src/render/jobs/updateworldboundingvolumejob.cpp index 65a3ec75d..ae1df3fd9 100644 --- a/src/render/jobs/updateworldboundingvolumejob.cpp +++ b/src/render/jobs/updateworldboundingvolumejob.cpp @@ -57,7 +57,7 @@ UpdateWorldBoundingVolumeJob::UpdateWorldBoundingVolumeJob() void UpdateWorldBoundingVolumeJob::run() { - const QVector<HEntity> handles = m_manager->activeHandles(); + const std::vector<HEntity> &handles = m_manager->activeHandles(); for (const HEntity &handle : handles) { Entity *node = m_manager->data(handle); |