First, move style mutation code out of StyleParser and into AnnotationManager,
coalescing it with the mutation code for shape layers.
Second, allow AnnotationManager to keep track of stale tiles entirely
internally. There's no reason to pass sets of TileIDs around.
Third, correct the logic for invalidating the shape source. Since
AnnotationManager does not track shape invalidations on a tile-by-tile basis,
don't try to invalidate the shape source tile-by-tile.
Fixes#1675Fixes#2322Fixes#2095
Annotation tiles may become partially parsed just like regular tiles,
for example if a point annotation is added to the map before the style's
sprite has been loaded. In such cases, they need to be reparsed or the
annotation will not be rendered. Previously, the code path for reparsing
would be short-circuited by a dynamic_cast<VectorTileData*> followed by
a null check. This commit removes that case and adds (back) a virtual
reparse method to the TileData interface.
Travis is inconsistently failing the following tests, so let's
temporarily disable them.
- `testDirectionSet`
- `testCompassTap`
- `testDirectionReset`
- `testCenterSet`
- `testDelegateRegionDidChange`
It bears repeating that these tests _only_ fail on Travis, running them
locally has always passed.
Fixes#2347
I thought that the tests were bypassing the permissions dialog, but it turns out that was only half correct: we were not actually asking for `always` location permission in MBGL.
- does not prepend /v4/ to api endpoints like /fonts/v1/
- only prepends it to things starting with /fontstack
- solves the problem in #1918
- refs mapbox/mapbox-gl-style-spec#309
This will make the code a lot more clear and it will
also move how parsing is initiated to the GlyphPBF
class, to be initiated after the request, like we do
for other resources.