diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2017-06-28 17:39:49 +0300 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2017-06-28 18:20:45 +0300 |
commit | 5a03ae3d906336536ee493426d6cdcc3129c155d (patch) | |
tree | 8083c4a5dfd1c743db6c73d0e14434c06390d16a /src/mbgl/renderer/buckets/fill_bucket.cpp | |
parent | a35b268606b6becf218286036e4d1cfc22ddcaa3 (diff) | |
download | qtlocation-mapboxgl-5a03ae3d906336536ee493426d6cdcc3129c155d.tar.gz |
[core] Reserve space for index/vertex items when possibleupstream/index-vertex-vector-reserve
Diffstat (limited to 'src/mbgl/renderer/buckets/fill_bucket.cpp')
-rw-r--r-- | src/mbgl/renderer/buckets/fill_bucket.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
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<uint16_t>::max()) { lineSegments.emplace_back(vertices.vertexSize(), lines.indexSize()); } @@ -94,6 +97,7 @@ void FillBucket::addFeature(const GeometryTileFeature& feature, assert(triangleSegment.vertexLength <= std::numeric_limits<uint16_t>::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], |