Alexander Shalamov
81e116d41a
[core] Use weak annotation manager
...
Map and renderer / orchestrator should be able to run on a separate threads,
however, legacy AnnotationManager is shared between Map and Renderer, therefore
is not a thread safe. Until AnnotationManager is deprecated and removed from a
code-base, use it only via weak pointers.
2020-03-05 17:43:37 +02:00
Juha Alanen
a4c4de2828
[test] Fix failing tests on iOS
2020-02-14 12:01:52 +02:00
Alexander Shalamov
ac50f5275b
[core] Make CustomGeometrySource::TileOptions immutable
2020-02-11 10:40:30 +02:00
Alexander Shalamov
879c44f661
[core] Modularize FileSource codebase ( #15768 )
...
* [core] Introduce FileSourceManager and use it for default platform impl
- Add `FileSourceManager` interface that provides access to `FileSource`
instances and means of registering / unregistering `FileSource` factories
- Split `DefaultFileSource` into smaller parts
- Add `DatabaseFileSource` interface and it's default implementation
- Remove inter-dependencies between concrete `FileSource` classes
* [build] Add files to next build system
* [core] Add generic property setters / getters
* [core] Remove setOnlineStatus from OnlineFileSource interface
* [core] Hide threading implementation details from DatabaseFileSource interface
* [core] Make DB file source methods virtual
* [core] Add documentation for DatabaseFileSource and rename one method
* [core] Use simple callback instead of ActorRef
* [core] Remove ActorRef from OnlineFileSource public header
* [core] Add callback to FileSource::forward async API
* [core] Pass OfflineRegionDefinition by value
* [core] Update tests to use modular file sources
* [core] Update unit tests
* [core] Update unit tests after rebase
* [core] Backport low prio fix for cached requests
* [core] Backport pack database
* [core] Return removed factory from unRegisterFileSourceFactory
* [core] Rename shadowed args in onlinefilesource
* [core] Remove simple std::function callback aliases
* [core] Expose online file source property keys in public header file
* [test-runner] Add proxy file source test runner
* [cache] Update mbgl-cache utility to use new file source
* [metrics] Rebaseline binary size metrics
* [offline] Update offline utility
* [core] Update changelog
2020-01-13 10:57:23 +02:00
Thiago Marcos P. Santos
7dad386f46
[tests] Fix -Werror=shadow issues in the unit tests
2019-12-12 17:44:11 +02:00
Mikhail Pozdnyakov
6419cd0ab2
[core] Calculate GeoJSON tile geometries in a background thread
...
Call `mapbox::geojsonvt::GeoJSONVT::getTile()` in a background
thread, so that the rendering thread is not blocked.
2019-11-29 11:12:55 +02:00
Mikhail Pozdnyakov
9f24115d13
[core] Identation and build fixes
2019-11-19 15:03:28 +02:00
Sergey Yershov
37b332899b
[core] Fix incorrect resizing of TileCache
2019-11-19 15:03:28 +02:00
Mikhail Pozdnyakov
273ad436fb
[core] Avoid copying feature properties
2019-07-25 17:36:35 +03:00
Mikhail Pozdnyakov
63dd17e2bb
[core] Introduce TileRenderData
...
Remove rendering functionality from Tile implementations.
2019-07-04 16:56:43 +03:00
Mikhail Pozdnyakov
5b6a262e15
[core] GeometryTile and TileLoader keep strong reference to FileSource
...
Thus we fix a potential bug: if `Renderer` outlives the `Map` it will hold a stale reference to the `FileSource` instance.
2019-05-14 11:29:24 +03:00
Mikhail Pozdnyakov
953ee5e81b
[core] Create glyph manager at renderer construction time
...
Avoid unnecessary glyph manager presence check in `Renderer::Impl::()`.
2019-05-14 11:29:24 +03:00
Thiago Marcos P. Santos
06f1dc48a2
[core] Make the BackgroundScheduler a singleton
...
- Do not carry it over everywhere as parameter, it is a shared
instance anyway and the lifecycle is pretty much the app lifecycle
from the moment we instantiate a map.
- Rename to BackgroundScheduler because it is a Scheduler that will
do tasks in the background, we don't make assumptions if it is a
thread pool or a single thread.
- Most importantly, remove the dependency from `core` on `platform`.
2019-05-10 14:20:38 +03:00
Mikhail Pozdnyakov
7a7192516f
[core] Introduce LayerRenderData. Source::update() accepts layer properties.
2019-04-17 17:21:41 +03:00
Chris Loer
f87ef3f72a
[core] OverscaledTileID::isChildOf should check wrap values.
...
Fixes issue #13478
2018-11-30 12:30:50 -08:00
Bruno de Oliveira Abinader
82be3104cd
[core] Fix VectorTileFeature::getValue() semantics after geometry@v1.0.0
2018-11-26 12:43:13 +02:00
Bruno de Oliveira Abinader
bf8b24fa8d
[build] Update to geometry v1.0.0
2018-11-13 17:28:26 +02:00
Chris Loer
7f42e3970e
[core] Convert GeometryTileWorker to "one-phase" loading
...
Modest simplification refactoring (issue #10457 ).
Also, fixes issue #11538 , which was caused in part by a hole in the vestigial two-phase loading.
2018-04-02 10:39:22 -07:00
Molly Lloyd
8a283b0306
[core] add support for mapzen terrarium ( #11154 )
...
* add support for mapzen terrarium
* Encoding --> DEMEncoding, avoid if statement when unpacking elevation values
* add Terrarium test
* update submodule
* remove redundant checks
2018-02-14 13:17:55 -08:00
Molly Lloyd
f3294200c6
[core] add raster-dem source type and hillshade layer type ( #10642 )
2018-01-23 10:49:23 -08:00
Asheem Mamoowala
acae193861
[core] Custom Geometry Sources
2017-11-22 13:56:38 -08:00
Chris Loer
54b990eb33
[core] Update unit tests for viewport collision.
...
Add 'GridIndex' unit test.
2017-11-17 10:05:15 -08:00
Konstantin Käfer
f659aa4eda
[core] make sure tiles are not treated as complete until all worker operations completed
...
Previously, when we started a worker operation that eventually throws an exception (e.g. due to the tile not being parseable), and then enqueue another worker operation while the first one is processing, we treated the worker as idle once the first operation's error callback fired, even though the second operation was still in progress. Due to our use of coalescing, I was unable to come up with a reliable test since we'd need to reproduce the behavior described above, which is timing dependent.
2017-09-21 12:20:54 +02:00
Konstantin Käfer
1a684c1f48
[core] keep tiles renderable even if a subsequent error occurs
...
Since 9a9408e811 , we marked tiles as non-renderable if an error occured. This lead to situations where a tile was loaded + parsed successfully, then a revalidation attempt occured (e.g. because the resource was stale) which failed. In this case, we used to mark the tile as non-renderable although we could've used the perfectly parsed (stale) resource.
2017-09-21 12:20:54 +02:00
John Firebaugh
e706ed4b2e
[core] Avoid RenderStyle dependency in query code
2017-08-24 13:06:23 -07:00
Ivo van Dongen
a5a0558bde
[test] allow only a single shared display to avoid egl errors
2017-07-18 10:45:12 +02:00
Ivo van Dongen
46c43510d7
[core] rename backend to renderer backend
2017-07-18 10:45:12 +02:00
Ivo van Dongen
3832f8d0d8
[core] renderer interface
2017-07-18 10:45:12 +02:00
Ivo van Dongen
e35cbbae55
[core] mutate style on annotation mutations immediately
2017-07-18 10:45:12 +02:00
Asheem Mamoowala
8ae7010546
[core][ios][android][macos] Use premultiplied image directly for RasterTile and ImageSource, un-premultiply in the shader for blending
2017-07-17 12:20:03 -07:00
Bruno de Oliveira Abinader
4014aa6721
[core] GCC 4.9 bracket initialization issues
2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
2fae373fc9
[core] GCC 4.9 is unable to deduce ctors when using bracket init
2017-07-12 20:42:29 +03:00
Chris Loer
a432a289a3
[core] Change OverscaledTileID to also include a "wrap" value.
...
This prevents TilePyramid from sharing wrapped copies of tiles.
This is necessary because two wrapped tiles no longer share the same CollisionTile.
2017-07-11 09:10:24 -07:00
John Firebaugh
be7e9bbb8d
[core] Refactor CustomLayer internals
...
Move the responsibility for initialization/deinitialization/rendering to RenderCustomLayer. This eliminates special case code from Map and Style.
2017-06-22 08:04:39 -07:00
Konstantin Käfer
7b90af5d35
[core] always return owning pointers for GeometryTileData::getLayer()
2017-06-21 17:18:08 -07:00
John Firebaugh
3270440f23
[core] Per-tile glyph/icon atlases
2017-06-13 10:18:43 -07:00
John Firebaugh
0b68731207
[core] Per-bucket icon atlases
2017-06-13 10:18:43 -07:00
John Firebaugh
92252849c1
[core] Per-bucket glyph atlases
2017-06-13 10:18:43 -07:00
John Firebaugh
74af076d40
[core] Split RenderStyle from Style
2017-06-05 19:38:08 -07:00
John Firebaugh
591af0021b
[core] Refactor RenderSource updates
...
* Eliminate updateBatch in favor of diffing layers and detecting changes to properties upon which layout depends.
* Replace RenderSource::{update,remove,invalidate,reload}Tiles with a single update method
* Replace TilePyramid::{update,remove,invalidate,reload}Tiles with a single update method
* Remove Style& dependency TODO from GeometryTile and TileParameters
2017-06-05 19:38:08 -07:00
John Firebaugh
32589c271c
[core] Thread Style parameter through queryRenderedFeatures
2017-06-05 19:38:08 -07:00
John Firebaugh
d766af44c8
[core] Auto-growable SpriteAtlas using shelf-pack
2017-05-26 11:21:56 -07:00
John Firebaugh
da4d735e2c
[core] Unify {Paint,Layout,Light}Properties
2017-05-15 09:45:55 -07:00
Asheem Mamoowala
84e39611a0
[core] Move renderer/* files into sub-folders ( #8983 )
...
Move renderer/* files into sub-folders
2017-05-12 17:07:48 -07:00
John Firebaugh
c2a5894f2d
[core] Immutable Impls
2017-05-12 11:26:27 -07:00
Bruno de Oliveira Abinader
baeaad83a3
[tidy] modernize-use-emplace
2017-05-12 18:07:36 +03:00
John Firebaugh
89f1ffc6d2
[core] UpdateParameters ⇢ TileParameters
2017-05-04 07:29:08 -07:00
John Firebaugh
d5f4d0f05f
[core] Move render-related sources out of style directory/namespace
...
Moves the following to the renderer directory and out of the style namespace:
* CascadeParameters
* PropertyEvaluationParameters
* UpdateParameters
* PropertyEvaluator
* DataDrivenPropertyEvaluator
* CrossFadedPropertyEvaluator
* PaintPropertyBinder
* PaintProperyStatistics
* PossiblyEvaluatedPropertyValue
* TransitioningLight
* EvaluatedLight
2017-05-03 08:30:17 -07:00
John Firebaugh
3f0c89d633
[core] Refactor Source::*Impls into RenderSources and TilePyramid
2017-05-02 08:45:09 -07:00
John Firebaugh
c2b00378b7
[all] Push querySourceFeatures back out to Map
...
Once Source and RendererSource are split, Source will no longer have access to tiles.
2017-05-02 08:45:09 -07:00