summaryrefslogtreecommitdiff
path: root/src/mbgl/tile/geometry_tile.hpp
Commit message (Collapse)AuthorAgeFilesLines
* [core] add gfx::UploadPass, split startRender into prepare and uploadupstream/gfx-refactor-7Konstantin Käfer2019-05-151-1/+1
|
* [core] GeometryTile and TileLoader keep strong reference to FileSourceMikhail Pozdnyakov2019-05-141-1/+1
| | | | Thus we fix a potential bug: if `Renderer` outlives the `Map` it will hold a stale reference to the `FileSource` instance.
* [core] Create glyph manager at renderer construction timeMikhail Pozdnyakov2019-05-141-0/+1
| | | | Avoid unnecessary glyph manager presence check in `Renderer::Impl::()`.
* [core] Pass ImageManager to ImageRequestor's constructorAlexander Shalamov2019-04-251-1/+1
| | | | | This makes ImageRequestor API explicitly dependant on ImageManager, so that ImageRequestor can unregister itself from ImageManager on destruction.
* [core] Update `style::LayerProperties` instances in tilesMikhail Pozdnyakov2019-04-171-0/+3
|
* [core] Introduce `LayerRenderData`. Source::update() accepts layer properties.Mikhail Pozdnyakov2019-04-171-5/+6
|
* add onStyleImageMissing to allow dynamically loaded or generated images (#14253)Ansis Brammanis2019-04-021-1/+1
| | | Also make `Style#updateImage(...)` much faster when the image doesn't change size. This can be useful for asynchronously generating images.
* [core] use abstract Context interface where possibleKonstantin Käfer2019-03-121-4/+1
|
* [core] move Texture to the gfx namespaceKonstantin Käfer2019-03-121-2/+2
|
* [core] Port "collision group" plumbing to gl-native.Chris Loer2018-09-121-2/+2
| | | | | [node] Hook up map-wide "crossSourceCollisions" option, defaulting to true. [test] Pass "crossSourceCollisions" test option through test harness; enable cross-source-collisions tests on native.
* [core] Implement CrossFadedDataDrivenProperty to add support for feature ↵Molly Lloyd2018-08-311-7/+7
| | | | expressions in `*-pattern` properties
* [core] Remove unused 'Throttler' class.Chris Loer2018-04-301-1/+0
| | | | Throttler was previously used to control how frequently background placement ran.
* [core] fix circle querying for scale and alignmentChris Loer2018-04-261-1/+2
| | | | | | | This fixes circle querying for cases where either circle-pitch-alignment=map or circle-pitch-scaling=viewport
* [core] fix querying circles across tile boundariesChris Loer2018-04-261-0/+2
|
* Port global symbol query from GL JS:Chris Loer2018-04-251-6/+4
| | | | | | | - Symbol querying is now global instead of per-tile - Symbols that bleed over tile boundaries no longer missed in queries - Symbol results now sorted based on rendering order (ie overlapping symbols change their sort order when a bearing change causes their render order to change) - Placement::retainedQueryData now responsible for maintaining symbol querying data for buckets that may no longer be in the TilePyramid.
* [core] Make FeatureIndex own GeometryTileData.Chris Loer2018-04-021-6/+2
| | | | | Prevents querying a FeatureIndex built against a separate set of data, which can lead to invalid index exceptions. The GeometryTileWorker 'data' member can still change independently of the data in the feature index, at the time 'setData' is called. The GeometryTileWorker maintains ownership of its local data (which may be used to re-parse) and clones the data for use by the FeatureIndex in the foreground.
* [core] Consolidate GeometryTile symbol/nonSymbolBucketsChris Loer2018-04-021-8/+4
| | | | Conversion to one-phase tile loading removed any need to track them separately.
* [core] Convert GeometryTileWorker to "one-phase" loadingChris Loer2018-04-021-20/+13
| | | | | Modest simplification refactoring (issue #10457). Also, fixes issue #11538, which was caused in part by a hole in the vestigial two-phase loading.
* [core] Fix potential race condition crash in symbol querying..Chris Loer2018-03-291-2/+2
| | | | | | Second half of fix for issue #11538. If a global placement took place between the time a tile's non-symbol layout updated and the time new symbol buckets arrived, the tile's new FeatureIndex would be committed, but the global CollisionIndex would be generated against the old symbolBuckets. The mismatch could cause the CollisionIndex to contain indices that didn't exist in the new FeatureIndex, and attempting to access them would generate an out-of-bounds exception.
* [core] Fix potential race condition crash in symbol querying..Chris Loer2018-03-291-2/+2
| | | | | | | | First half of fix for issue #11538. Testing `if (pendingData)` didn't work if there _was_ a data update, but the update was "the data for this tile is now null". In that case, the tile's FeatureIndex would be updated, but the tile's data member would remain unchanged. In the case of a tile's data being deleted, the matching FeatureIndex would have an empty set of bucketLayerIDs, but the _old_ data would still be in place for querying, and the symbolBuckets might not be updated yet (pending onPlacement). In this case `bucketLayerIDs.at(indexedFeature.bucketName)` could throw an out-of-range exception.
* [core] GeometryTileData needs to be updated in lockstep with FeatureIndexChris Loer2018-01-181-0/+1
|
* [core] Synchronize state of CollisionIndex and FeatureIndexes.Chris Loer2018-01-181-0/+3
| | | | Fixes issue #10778, in which mismatch between FeatureIndex and CollisionIndex could lead to inconsistent results or even invalid array access.
* [core] port minor collision changes from -js (#10764)Ansis Brammanis2018-01-081-2/+0
|
* [core] Symbol cross-fading.Chris Loer2017-11-171-0/+13
| | | | Hold onto tiles after they've been removed from the render tree long enough to run a fade animation on their symbols.
* [core] Cleanup in response to review comments.Chris Loer2017-11-171-2/+0
|
* [core] Switch from background to foreground placementChris Loer2017-11-171-13/+9
| | | | | | | | | | | | - Background placement code now just generates static symbol buffers - Don't render GeometryTiles until their symbols are loaded. This is necessary for the CrossTileSymbolIndex to successfully prevent flicker. - SymbolInstances are transferred to SymbolBucket for use on foreground during collision detection - Symbols are sorted on foreground by sorting their index buffer but leaving vertex buffers intact (only works within one segment) - Vertical glyphs are generated at same time as horizontal glyphs. `reprojectLineLabels` chooses which one to use at render time and hides the other. - Icons are now always represented with a single collision box, even if they're placed along a line (this means their rotation alignment may be wrong, but the approach of representing them with multiple collision boxes wasn't very accurate either). - Generate vertices for new debug collision boxes and collision circles - Only add symbols within tile boundaries (reduces work, avoids double-draw) - Update symbol_projection.cpp to support line label projection calls from CollisionIndex.
* [core] remove throttling from geometry tileIvo van Dongen2017-09-221-2/+1
| | | | - This doesn't work for asynchronous rendering - see https://github.com/mapbox/mapbox-gl-native/pull/9611
* [core] make sure tiles are not treated as complete until all worker ↵Konstantin Käfer2017-09-211-13/+7
| | | | | | 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.
* [core] Added GeometryTileWorker-owned image correlation IDBruno de Oliveira Abinader2017-08-251-2/+2
|
* [core] Don't throttle placement in still modeBruno de Oliveira Abinader2017-08-251-0/+1
|
* [core] Avoid RenderStyle dependency in query codeJohn Firebaugh2017-08-241-2/+1
|
* [core] Fix build; struct ⇢ classJohn Firebaugh2017-07-191-1/+1
|
* [core] No need for default ctor in {Update,Tile}ParametersBruno de Oliveira Abinader2017-07-191-1/+1
|
* [core] GCC 4.9 is unable to deduce ctors when using bracket initBruno de Oliveira Abinader2017-07-121-2/+22
|
* [core] Hold on to tile yStretch value for rendering old symbolBuckets while ↵Chris Loer2017-07-111-0/+1
| | | | waiting for new ones.
* [core] Improved label pitch-scaling: approximate collision box shapes based ↵Chris Loer2017-07-111-0/+2
| | | | on tile distance from camera.
* [core] Per-tile glyph/icon atlasesJohn Firebaugh2017-06-131-0/+14
|
* [core] Per-bucket icon atlasesJohn Firebaugh2017-06-131-5/+5
|
* [core] Per-bucket glyph atlasesJohn Firebaugh2017-06-131-3/+3
|
* [core] Merge RenderLayer::uploadBuckets into RenderSource::startRenderJohn Firebaugh2017-06-131-0/+1
|
* [core] Split RenderStyle from StyleJohn Firebaugh2017-06-051-1/+2
|
* [core] Refactor RenderSource updatesJohn Firebaugh2017-06-051-11/+2
| | | | | | | * 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
* [core] Thread Style parameter through queryRenderedFeaturesJohn Firebaugh2017-06-051-0/+3
|
* [core] Throttle tiles to redo symbol placement at most once every 300ms.Chris Loer2017-05-171-0/+4
| | | | Fixes issue #8435 and prepares for pitch-scaling changes in issue #8967.
* [core] Immutable ImplsJohn Firebaugh2017-05-121-1/+1
|
* [core] Avoid calling virtual GeometryTile::cancel() on dtorBruno de Oliveira Abinader2017-05-121-0/+2
| | | | | warning: Call to virtual function during destruction will not dispatch to derived class [clang-analyzer-optin.cplusplus.VirtualCall]
* [core] UpdateParameters ⇢ TileParametersJohn Firebaugh2017-05-041-2/+2
|
* [core] Move render-related sources out of style directory/namespaceJohn Firebaugh2017-05-031-2/+2
| | | | | | | | | | | | | | | | Moves the following to the renderer directory and out of the style namespace: * CascadeParameters * PropertyEvaluationParameters * UpdateParameters * PropertyEvaluator * DataDrivenPropertyEvaluator * CrossFadedPropertyEvaluator * PaintPropertyBinder * PaintProperyStatistics * PossiblyEvaluatedPropertyValue * TransitioningLight * EvaluatedLight
* [all] Push querySourceFeatures back out to MapJohn Firebaugh2017-05-021-2/+2
| | | | Once Source and RendererSource are split, Source will no longer have access to tiles.
* [core] Tweak handling of annotation special case SpriteAtlasJohn Firebaugh2017-04-261-6/+7
| | | | | * Simplify SymbolLayout; it never needs to care about more than one SpriteAtlas. * Move the reference from SymbolLayer::Impl to SymbolBucket. This is a prerequisite for making layer Impls immutable.