Commit Graph

2684 Commits

Author SHA1 Message Date
Konstantin Käfer
d1d523686c [core] upgrade RapidJSON to 1.1.0 2016-09-15 14:05:23 +02:00
Konstantin Käfer
ca8f32a914 [core] add explicit std::hash<mbgl::style::ClassID> implementation to appease GCC 2016-09-15 13:41:59 +02:00
Brad Leege
e49c96f05c [core] #3980 - Putting friend class SymbolLayout back 2016-09-14 16:57:54 -07:00
Brad Leege
d0f9ba4998 [core] #3980 - Switching Core GL instances of map to unordered_map 2016-09-14 16:40:20 -07:00
John Firebaugh
a9f5224664 [core] Avoid gratuitous SymbolBucket creation 2016-09-14 13:41:56 -07:00
John Firebaugh
c8217a8739 [core] Extract SymbolLayout from SymbolBucket
SymbolLayout lives on the worker thread and contains the persistent data needed for repeated placement. SymbolBucket contains the data generated during placement, and is transferred to the main thread for rendering.

This eliminates the risky sharing of GeometryTile::buckets between the main thread and worker thread during TileWorker::redoPlacement.

While here, rationalize the names of states a SymbolLayout may be in:

* Pending: Waiting for the necessary glyphs or icons to be available.
* Prepared: The potential positions of text and icons have been determined.
* Placed: The final positions have been determined, taking into account prior layers.

In TileWorker, all SymbolLayouts are stored in a single vector. Each SymbolLayout knows what state it is in, and TileWorker can easily determine how much progress it can make toward a final result.
2016-09-14 13:41:56 -07:00
John Firebaugh
ffa8c48926 [core] Another band-aid (#6322) (#6333) 2016-09-14 12:04:37 -07:00
John Firebaugh
8f3736fbfd [core] Band-aid to prevent GeometryTile::redoLayout race condition from causing a crash (#6322) 2016-09-13 15:40:55 -07:00
Ivo van Dongen
290bd07a92 [core] OnlineFileSource - rate limit 2016-09-13 14:21:37 +02:00
Bruno de Oliveira Abinader
beb67fb7b2 [core] Separate transition options accessors from class API
Now the style class transition options have its own getter/setter, which
persists for each style until a new style is set.
2016-09-13 12:38:59 +03:00
Bruno de Oliveira Abinader
0cc062a5fd [core] Check if style exists prior to accessing via Map functions 2016-09-13 12:38:59 +03:00
John Firebaugh
29f4204d1c [core] Don't use std::move on forwarding references 2016-09-08 16:36:47 -07:00
John Firebaugh
030234c7a6 [core] Rework invokeWithCallback so that the callback is last 2016-09-08 16:36:47 -07:00
Konstantin Käfer
f3191dbbb4 [core] change bool *AlongLine to SymbolPlacementType 2016-09-07 17:56:38 +02:00
Konstantin Käfer
1845919c25 [core] change bool onRight to Side 2016-09-07 17:56:38 +02:00
Konstantin Käfer
3d960c8136 [core] change bool round to LinePatternCap 2016-09-07 17:56:38 +02:00
Konstantin Käfer
85e222c825 [core] change bool overdraw to PaintMode::Overdraw 2016-09-07 17:56:38 +02:00
Konstantin Käfer
ff0c895eaa [core] change bool wrap/repeating to enum class SpritePatternMode 2016-09-07 17:56:38 +02:00
Konstantin Käfer
426242fe41 [core] change bool to enum class bool TileLoadState 2016-09-07 17:56:38 +02:00
John Firebaugh
d6f667a5e7 [core] Observe visibility changes 2016-09-06 14:29:22 -07:00
John Firebaugh
6d770cb40f [core] Initial state of Source::Impl::enabled must be true
Until Style::recalculate() is called to check that there are no visible layers using the source, we have to assume there are. Otherwise, Style::isLoaded() can return a false positive.
2016-09-06 14:29:22 -07:00
John Firebaugh
8e2170c885 [core] Batch source updates 2016-09-06 14:29:22 -07:00
John Firebaugh
6c23a6a095 [core] Avoid triggering re-layout of fill annotation source 2016-09-06 14:29:22 -07:00
John Firebaugh
b4864ca9d5 [core] Trigger Source::Impl::reload when a filter or layout property is modified 2016-09-06 14:29:22 -07:00
John Firebaugh
fe2a26225f [core, ios, android, qt] Observe style layer mutations rather than requiring SDKs to use Map::update
This paves the way for updates to filter and layout properties to trigger a source reload, without each SDK having to participate in the implementation.
2016-09-06 14:29:22 -07:00
John Firebaugh
3a48c60813 [core] Add missing classed paint property getter 2016-09-06 12:52:14 -07:00
John Firebaugh
3635b9f147 [core] Prepare style observer interfaces for source reloading
* Renamed {Source,Tile}Observer::onNeedsRepaint to onTileUpdated. Messages should be in terms of what happened to the observed object, not in terms of what the observer needs to do. This also removes a confusing overlap of virtual methods on StyleObserver.
* Added style::Observer::onUpdate(Update). This is also a violation of the above rule, but I'm hopeful that it will disappear when update batching is implemented.
2016-09-06 12:52:14 -07:00
John Firebaugh
5b4f6335e3 [core] Add Source::Impl::reload 2016-09-06 12:52:14 -07:00
John Firebaugh
21dc12ee93 [core] Ensure that TileWorker can retain tileData after layout 2016-09-06 12:52:13 -07:00
John Firebaugh
5b8d90bf00 [core] Delete the now-unused ptr.hpp 2016-09-06 12:52:13 -07:00
John Firebaugh
0afd14ae29 [core] Eliminate use of util::ptr in GeometryTile* interfaces 2016-09-06 12:52:13 -07:00
John Firebaugh
1c51b43daf [core] Create GeoJSONTile{Layer,Feature} objects lazily
Avoids conversion to GeometryCollection and clipping for features that are not used.
2016-09-06 12:52:13 -07:00
Konstantin Käfer
4eb54270d7 [core] remove unused TimePoint during Source update 2016-09-05 19:04:34 +02:00
Konstantin Käfer
46b73b8a2c [core] Source::update => Source::{load,parse}Tiles, Source::load => Source::loadDescription 2016-09-05 19:03:27 +02:00
John Firebaugh
e126dc3a5a [core] Fix updates of line and fill annotations 2016-08-29 08:08:44 -07:00
John Firebaugh
f07f592078 [core] Simplify GeoJSONTile constructor 2016-08-26 10:30:55 -07:00
John Firebaugh
d2abb1b6d5 [core] Change GeoJSONSource::getURL() to return an optional<std::string>
GeoJSON sources may have inline GeoJSON rather than a URL; returning an optional type ensures that consumers handle this case.
2016-08-26 10:30:55 -07:00
John Firebaugh
2d6f04dfb9 [core] Clean up and simplify geojson_tile.cpp 2016-08-26 10:30:55 -07:00
John Firebaugh
7c801696eb [core] const consistency 2016-08-26 10:30:55 -07:00
John Firebaugh
a79d2afe1b [core] Rename data ⇢ tile; use Resource::Necessity 2016-08-26 10:30:55 -07:00
John Firebaugh
8ac03f3870 [core] Inline Source::Impl::getTile 2016-08-26 10:30:55 -07:00
Dane Springmeyer
bb34b5302c upgrade to protozer 1.4.0 (#6158) 2016-08-25 11:05:03 -07:00
Thiago Marcos P. Santos
c98f4f476b [core] Emit MapChangeDidFailLoadingMap when the style cannot be loaded or parsed
Currently this signal is never emitted, which can cause the Still mode
to starve in case of an invalid style or failed request.
2016-08-24 20:02:31 +03:00
John Firebaugh
646528bc53 [core] Simplify Thread::invokeSync (#6128) 2016-08-24 09:36:11 -07:00
John Firebaugh
63cce78cf1 [core] Add static getters for property default values (#6124) 2016-08-23 12:49:47 -07:00
John Firebaugh
86cccc4d24 [core] Don't allow style mutations to be overwritten by revalidation
* Once we get a fresh style, stop revalidating.
* If the style is mutated, stop revalidating and preserve the existing mutations.
2016-08-23 09:55:32 -07:00
Konstantin Käfer
e6bcbdd5d3 [core] set correct depth values for CustomLayer so compositing works 2016-08-22 18:32:12 +02:00
Konstantin Käfer
0df60c4651 [core] add ability show visualize the depth buffer to the GLFW and macOS app 2016-08-19 17:41:55 +02:00
Konstantin Käfer
cb33c861b4 [core] parse more Style JSON properties
We're now parsing "name", "center", "zoom", "bearing", and "pitch" from the stylesheet.
2016-08-19 17:34:10 +02:00
Konstantin Käfer
18176605f6 [core] support "scheme": "tms" in TileJSON files 2016-08-16 11:04:30 +02:00