From d61673010fcc67d60e76619941fac714d0141323 Mon Sep 17 00:00:00 2001 From: Volker Krause Date: Wed, 6 Jan 2016 13:48:58 +0100 Subject: Use QList::reserve. The intermediate QLists are still not optimal here, as these methods are called per frame, but at least this is now down to one allocation each. Change-Id: I7705172aabc5e526c5123d70450d3ae2dec20d03 Reviewed-by: Sean Harmer --- src/render/backend/entity.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/render/backend') diff --git a/src/render/backend/entity.cpp b/src/render/backend/entity.cpp index 48a7c738d..745e54735 100644 --- a/src/render/backend/entity.cpp +++ b/src/render/backend/entity.cpp @@ -364,6 +364,7 @@ template<> QList Entity::componentsHandle() const { QList layerHandles; + layerHandles.reserve(m_layerComponents.size()); Q_FOREACH (const QNodeId &id, m_layerComponents) layerHandles.append(m_nodeManagers->layerManager()->lookupHandle(id)); return layerHandles; @@ -373,6 +374,7 @@ template<> QList Entity::componentsHandle() const { QList shaderDataHandles; + shaderDataHandles.reserve(m_shaderDataComponents.size()); Q_FOREACH (const QNodeId &id, m_shaderDataComponents) shaderDataHandles.append(m_nodeManagers->shaderDataManager()->lookupHandle(id)); return shaderDataHandles; @@ -388,6 +390,7 @@ template<> QList Entity::componentsHandle() const { QList lightHandles; + lightHandles.reserve(m_lightComponents.size()); Q_FOREACH (const QNodeId &id, m_lightComponents) lightHandles.append(m_nodeManagers->lightManager()->lookupHandle(id)); return lightHandles; @@ -429,6 +432,7 @@ template<> QList Entity::renderComponents() const { QList layers; + layers.reserve(m_layerComponents.size()); Q_FOREACH (const QNodeId &id, m_layerComponents) layers.append(m_nodeManagers->layerManager()->lookupResource(id)); return layers; @@ -438,6 +442,7 @@ template<> QList Entity::renderComponents() const { QList shaderDatas; + shaderDatas.reserve(m_shaderDataComponents.size()); Q_FOREACH (const QNodeId &id, m_shaderDataComponents) shaderDatas.append(m_nodeManagers->shaderDataManager()->lookupResource(id)); return shaderDatas; @@ -447,6 +452,7 @@ template<> QList Entity::renderComponents() const { QList lights; + lights.reserve(m_lightComponents.size()); Q_FOREACH (const QNodeId &id, m_lightComponents) lights.append(m_nodeManagers->lightManager()->lookupResource(id)); return lights; -- cgit v1.2.3