diff options
author | Volker Krause <volker.krause@kdab.com> | 2016-01-06 13:48:58 +0100 |
---|---|---|
committer | Volker Krause <volker.krause@kdab.com> | 2016-01-06 15:55:52 +0000 |
commit | d61673010fcc67d60e76619941fac714d0141323 (patch) | |
tree | db000550ce130af6bf192d19641f9a1876e7f9a7 /src/render | |
parent | b2bcca82e7170de45b2a1fcdc29c4aecbda581a5 (diff) |
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 <sean.harmer@kdab.com>
Diffstat (limited to 'src/render')
-rw-r--r-- | src/render/backend/entity.cpp | 6 | ||||
-rw-r--r-- | src/render/framegraph/framegraphnode.cpp | 1 |
2 files changed, 7 insertions, 0 deletions
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<HLayer> Entity::componentsHandle<Layer>() const { QList<HLayer> 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<HShaderData> Entity::componentsHandle<ShaderData>() const { QList<HShaderData> 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<HLight> Entity::componentsHandle<Light>() const { QList<HLight> 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<Layer *> Entity::renderComponents<Layer>() const { QList<Layer *> 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<ShaderData *> Entity::renderComponents<ShaderData>() const { QList<ShaderData *> 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<Light *> Entity::renderComponents<Light>() const { QList<Light *> lights; + lights.reserve(m_lightComponents.size()); Q_FOREACH (const QNodeId &id, m_lightComponents) lights.append(m_nodeManagers->lightManager()->lookupResource(id)); return lights; diff --git a/src/render/framegraph/framegraphnode.cpp b/src/render/framegraph/framegraphnode.cpp index d1718b7e5..1c913b281 100644 --- a/src/render/framegraph/framegraphnode.cpp +++ b/src/render/framegraph/framegraphnode.cpp @@ -137,6 +137,7 @@ FrameGraphNode *FrameGraphNode::parent() const QList<FrameGraphNode *> FrameGraphNode::children() const { QList<FrameGraphNode *> children; + children.reserve(m_childrenHandles.size()); Q_FOREACH (HFrameGraphNode handle, m_childrenHandles) { FrameGraphNode **child = m_manager->data(handle); |