diff options
author | Young Hahn <young@mapbox.com> | 2016-05-25 02:45:54 -0400 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-05-31 10:15:18 -0700 |
commit | a800d33dd8b88b1be8db64a4ee83835758a9718e (patch) | |
tree | 767f778866b7d6de502ba3de25b818c5f0ea1373 /src/mbgl/renderer | |
parent | 517218204fb3639413161662824164c463c7e407 (diff) | |
download | qtlocation-mapboxgl-a800d33dd8b88b1be8db64a4ee83835758a9718e.tar.gz |
[core] Don't earcut more than 500 inner rings
Diffstat (limited to 'src/mbgl/renderer')
-rw-r--r-- | src/mbgl/renderer/fill_bucket.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mbgl/renderer/fill_bucket.cpp b/src/mbgl/renderer/fill_bucket.cpp index ed8f70059a..967a2df8c3 100644 --- a/src/mbgl/renderer/fill_bucket.cpp +++ b/src/mbgl/renderer/fill_bucket.cpp @@ -35,7 +35,10 @@ FillBucket::~FillBucket() { } void FillBucket::addGeometry(const GeometryCollection& geometry) { - for (const auto& polygon : classifyRings(geometry)) { + for (auto& polygon : classifyRings(geometry)) { + // Optimize polygons with many interior rings for earcut tesselation. + limitHoles(polygon, 500); + std::size_t totalVertices = 0; for (const auto& ring : polygon) { |