Commit Graph

473 Commits

Author SHA1 Message Date
Thiago Marcos P. Santos
cb92290f9d [core] Use tileSize constant
Instead of hardcoding the tile size again.
2015-11-06 14:44:52 +02:00
Konstantin Käfer
177372b836 [core] only update the render order array when there are changes to tiles 2015-11-05 10:33:21 +01:00
Konstantin Käfer
4d5c6333be [core] move retry logic to DefaultFileSource 2015-11-02 17:24:40 +01:00
John Firebaugh
ddc4251074 [core] Polymorphic bucket creation 2015-10-30 11:19:28 -07:00
John Firebaugh
540c6eca15 [core] Eliminate StyleBucket 2015-10-30 11:19:28 -07:00
John Firebaugh
8c3b3cb792 [core] Use current copy of style layers when reparsing tiles
This fixes adding shape annotations after VectorTileData objects have
been created for annotations already, and will also be necessary for
the dynamic Style API.
2015-10-30 11:17:01 -07:00
John Firebaugh
7669e02062 [core] Monitor annotation tiles, rather than completely invalidating them
Fixes #1688
2015-10-30 11:17:01 -07:00
John Firebaugh
f745f271e3 [core] When reparsing a tile, replace all existing buckets
A tile may go from having particular layers, to not having them.
(Annotation tiles in particular.)
2015-10-30 11:17:01 -07:00
John Firebaugh
f6f5d9608d [core] Separate type for RasterTileParseResult 2015-10-30 11:17:00 -07:00
John Firebaugh
e2dc956eb6 [core] Merge LiveTileData into VectorTileData
To encapsulate the differences, this introduces an abstract
GeometryTileMonitor class, with concrete VectorTileMonitor and
AnnotationTileMonitor implementations, and makes pbf parsing for
VectorTile data happen lazily in getLayer, since we want that to
happen on the worker thread, rather than when VectorTile is created.

Fixes #2792
2015-10-29 12:05:40 -07:00
John Firebaugh
014b517820 [node] Output debug logs when a render test times out 2015-10-28 15:54:34 -07:00
Ansis Brammanis
750c72f324 improve gestures in perspective view
The location under your finger stays under your finger as you pan.
The location you double tap to zoom stays at the same point.
The location at the center of a pinch zoom stays at the center.
The location at the center of a rotation stays at the center.
2015-10-26 12:48:03 -07:00
Konstantin Käfer
75dec6ffac [core] always reparse with the freshest possible placement config
Fixes an issue where updates to stale tiles would remove labels altogether until the map was rotated.
2015-10-26 16:44:55 +01:00
Konstantin Käfer
c0c554e36f [core] reparse tiles when new data arrives
We're now reparsing tiles when they expire. We're also swapping out buckets atomically to avoid flickering data; i.e. we're displaying the old data as long as we don't have a new parsed bucket for that layer yet. The parsed buckets now live in the *TileData objects rather than in the TileWorker; only partially parsed == pending buckets will remain in the TileWorker. Once they're parsed, they're moved to the *TileData object.
2015-10-26 15:54:27 +01:00
Konstantin Käfer
5173bf1bb8 [core] Make response data shared to avoid excessive copying 2015-10-26 15:54:27 +01:00
Konstantin Käfer
6a7334b882 [core] add support for stale responses
We're now returning stale responses from cache. Those responses will have the `stale` flag set to true. Currently, all requesters in the core code discard stale responses, and cancel the request immediately after they got a non-stale response.
2015-10-26 15:54:27 +01:00
Konstantin Käfer
096a3edf39 [core] use RAII-style lifetime tracking of Request objects 2015-10-26 15:54:27 +01:00
Konstantin Käfer
94a5ac857f [core] all requests have to be canceled explicitly now
By not automatically destroying Request objects after the result has been delivered, we are making sure that we can potentially fire the callback multiple times without adverse effects. This means that you have to hold on to the result of fs->request(), can explicitly cancel it if you don't want to be notified of data changes anymore. Not doing so will monitor the request indefinitely and will prevent the app from exiting.
2015-10-26 15:54:27 +01:00
Thiago Marcos P. Santos
1007dc9754 [core] Initialize attributes before using them
Spotted by valgrind.
2015-10-26 10:41:16 +02:00
John Firebaugh
0665b64590 [core] Introduce StyleCalculationParameters
This makes subsequent changes to the the parameter list less intrusive.
2015-10-23 13:56:55 -07:00
John Firebaugh
1f4144c65a [core] Remove StyleLayer::isBackground() 2015-10-22 17:53:16 -07:00
Bruno de Oliveira Abinader
5fa144647d [core] Added GLContextMode to MapData
Adding new mbgl::GLContextMode enum to mbgl::Map ctor, which gets stored
in MapData. In shared GL context environments, we cannot assume that the
GL state that has been left since the last draw is the same, so we reset
the GL configurations to their default values.
2015-10-22 16:02:39 -07:00
John Firebaugh
3afc8b4a29 [core] Introduce StyleLayer subclasses 2015-10-22 09:34:40 -07:00
John Firebaugh
df89de5cc5 [core] Rationalize style property classes: <type>{Paint,Layout}Properties 2015-10-22 09:21:30 -07:00
Bruno de Oliveira Abinader
6824a24acd [core] Removed time param from Painter::render
Animation time can be obtained directly from MapData.
2015-10-21 11:20:45 -07:00
Bruno de Oliveira Abinader
0045eef00a [core] Moved Painter::setup() to Painter ctor 2015-10-21 11:20:39 -07:00
Bruno de Oliveira Abinader
ad3078e73d [core] Remove redundant setDebug() from Painter
This information can be obtained directly from MapData.
2015-10-21 11:20:20 -07:00
Bruno de Oliveira Abinader
5db4670d78 [core] Added more transform state getters
Some platforms requires specific information that was previously not
available in public API, but stored internally in TransformState object.
2015-10-21 11:06:51 -07:00
Jason Wray
e5aab73b60 [core] only check for mapbox:// at the start of the failed request's URL 2015-10-21 11:38:01 -04:00
Jason Wray
ae5a345cc4 [core] Improve error message when style is not found or is incompatible
Attempting to use a Mapbox-hosted incompatible raster map/style with GL
would throw a simple 404, without any indication of the real issue.

Fix #1724, ref #1841
2015-10-21 11:38:01 -04:00
John Firebaugh
c5b95032a5 [core] Annotation refactor 2015-10-20 13:54:19 -07:00
John Firebaugh
597b2b4851 [core] Pull annotation typedefs to own header; add AnnotationID 2015-10-20 13:54:19 -07:00
Bruno de Oliveira Abinader
6a1b9b31a6 [core] MapContext setStyle{URL,JSON} should ignore redundant calls
Our engine should be robust enough to ignore redundant calls and avoid
triggering a whole style update if the style URL and/or JSON are the
same.
2015-10-16 13:16:02 +11:00
Leith Bade
2ee7b02189 [core] [android] Fix InfoWindow topOffsetPixels adjustment when switching styles
Fixes #2599
Make getTopOffsetPixelsForAnnotationSymbol private
Also implements MapChangeWillStartLoadingMap, MapChangeDidFinishLoadingMap
Paritally implements #630
2015-10-16 13:06:49 +11:00
Bruno de Oliveira Abinader
074d61a55e [core] MapContext setStyle{URL,JSON} should ignore redundant calls
Our engine should be robust enough to ignore redundant calls and avoid
triggering a whole style update if the style URL and/or JSON are the
same.
2015-10-14 22:44:00 -07:00
Bruno de Oliveira Abinader
9a97333e85 [core] Set fade/transition duration to 0 if map mode is still 2015-10-14 11:49:18 -07:00
Leith Bade
154e27968f [core] Protect MapData.pause with a lock
Fixes #2522
2015-10-08 11:36:22 +11:00
Bruno de Oliveira Abinader
402819e1ad Fix for style properties transition updates 2015-10-06 12:25:46 -07:00
Vladimir Agafonkin
453fd4c0b0 fix layer minZoom being ignored if not less than source maxZoom
This condition led to layers with high minzoom like oneway street
arrows (z15) get parsed and placed regardless of minzoom (e.g. z11+),
wasting a lot of worker CPU time.

It became unnecessary after we added reparsing tiles when overscaling,
and even before that it should have probably been <= rather than <.
2015-10-06 14:25:00 +03:00
Leith Bade
b869771992 Correctly handle spurious wake-ups in Map::pause()
Fixes #2522
2015-10-06 14:10:32 +11:00
Konstantin Käfer
3d834b5c40 give every bucket its own set of buffers
This allows changing individual buckets without having leftover data
2015-10-02 15:05:19 +02:00
John Firebaugh
2066295e35 Install RapidJSON from mason 2015-10-01 11:40:47 -07:00
Mike Morris
b46c102eb0 mason variant@1.0 2015-09-30 15:34:40 -07:00
bsudekum
7112d43609 [node] Handle tiles which 404 better 2015-09-29 18:20:22 -07:00
Adam Hunter
fa2d7453a5 Fix up of some naming issues, etc. 2015-09-29 15:07:39 -07:00
Adam Hunter
3f9f259619 Added GL logging utility 2015-09-29 15:07:39 -07:00
John Firebaugh
af392b9434 Rewrite annotation invalidation strategy
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 #1675
Fixes #2322
Fixes #2095
2015-09-28 14:10:23 -07:00
John Firebaugh
24a5834428 Move updateAnnotationTiles[IfNeeded] to AnnotationManager 2015-09-28 14:10:01 -07:00
John Firebaugh
0c4c7ed901 map/annotation.* ⇢ annotation/annotation_manager.* 2015-09-28 14:10:01 -07:00
John Firebaugh
588fed9a9d Move Annotation class to cpp file 2015-09-28 14:10:01 -07:00