From 5a03ae3d906336536ee493426d6cdcc3129c155d Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Wed, 28 Jun 2017 17:39:49 +0300 Subject: [core] Reserve space for index/vertex items when possible --- src/mbgl/renderer/buckets/fill_bucket.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/mbgl/renderer/buckets/fill_bucket.cpp') diff --git a/src/mbgl/renderer/buckets/fill_bucket.cpp b/src/mbgl/renderer/buckets/fill_bucket.cpp index 042d7b7506..06658f0150 100644 --- a/src/mbgl/renderer/buckets/fill_bucket.cpp +++ b/src/mbgl/renderer/buckets/fill_bucket.cpp @@ -61,6 +61,9 @@ void FillBucket::addFeature(const GeometryTileFeature& feature, if (nVertices == 0) continue; + vertices.reserve(vertices.vertexSize() + nVertices); + lines.reserve(lines.indexSize() + nVertices); + if (lineSegments.empty() || lineSegments.back().vertexLength + nVertices > std::numeric_limits::max()) { lineSegments.emplace_back(vertices.vertexSize(), lines.indexSize()); } @@ -94,6 +97,7 @@ void FillBucket::addFeature(const GeometryTileFeature& feature, assert(triangleSegment.vertexLength <= std::numeric_limits::max()); uint16_t triangleIndex = triangleSegment.vertexLength; + triangles.reserve(triangles.indexSize() + (nIndicies / 3) + 1); for (uint32_t i = 0; i < nIndicies; i += 3) { triangles.emplace_back(triangleIndex + indices[i], triangleIndex + indices[i + 1], -- cgit v1.2.1