summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Oops, got the index length wrong for circle debug boxes.upstream/start-collision-no-background-placementChris Loer2017-10-261-1/+1
| | | | [skip ci]
* Stop doing collision detection in background.Chris Loer2017-10-2613-514/+35
| | | | | Remove CollisionTile. "Placement" in background is now just "layout for symbol buckets" (as opposed to layout for non-symbol buckets, which finishes in "redoLayout").
* Flip line label collisions from broken to not broken.Chris Loer2017-10-261-1/+1
| | | | Don't worry, we'll squash all these embarrassing commits later.
* GridIndex support for queries fully containing or fully outside of gridChris Loer2017-10-262-0/+52
|
* Switch GridIndex to use float coordinates instead of int16s: fast way to ↵Chris Loer2017-10-264-21/+24
| | | | prevent flicker from coordinate rounding.
* remove placedText and placedIcon from SymbolInstanceAnsis Brammanis2017-10-263-7/+1
| | | | | | | Opacities are stored in a separate map in Placement and linked to the symbol instance by an id. Hopefully this will make it easier to apply semi-stale placements to newly-loaded tiles later on. [skip ci]
* keep rendering until labels fade in [skip ci]Ansis Brammanis2017-10-264-43/+52
|
* switch `float targetOpacity` to `bool placed`Ansis Brammanis2017-10-263-35/+43
| | | | and make `Placement.commit(...)` return whether anything changed.
* fix incorrectly hidden symbolsAnsis Brammanis2017-10-252-2/+11
|
* fix collision box opacity [skip ci]Ansis Brammanis2017-10-251-2/+2
|
* add a couple of assertions [skip ci]Ansis Brammanis2017-10-252-0/+5
|
* implement fading within tiles [skip ci]Ansis Brammanis2017-10-258-21/+35
|
* Fix segment overflow bug for collision circles.Chris Loer2017-10-251-1/+2
| | | | [skip ci]
* Initial implementation of debug collision circlesChris Loer2017-10-2510-38/+185
| | | | | | | - Naive copy-pasting of collision box code: should factor out more of the commonalities - "Used circle" logic seems to be working correctly - Rendering seems to break if there are too many circles (probably something to do with segment logic?) [skip ci]
* Move CollisionIndex to use GridIndex instead of boost::rtree.Chris Loer2017-10-255-73/+130
| | | | | | - Stops crash on inserting line labels - Breaks queryRenderedSymbols for now. [skip ci]
* Hook up placement updates for collision boxes.Chris Loer2017-10-252-1/+18
|
* use the values in the collisionbox opacity buffer [skip ci]Ansis Brammanis2017-10-254-9/+54
|
* Starting implementation of debug collision boxes.Chris Loer2017-10-2511-86/+158
| | | | | - Dynamic buffers not hooked up yet - Circles not hooked up yet
* start running new placement [skip ci]Ansis Brammanis2017-10-2416-224/+367
|
* update shaders and create symbol opacity bufferAnsis Brammanis2017-10-2413-75/+68
|
* Initial implementation: add support for circle geometries to GridIndex.Chris Loer2017-10-243-49/+279
| | | | Modify FeatureIndex to use new interface.
* CollisionIndex initial implementation of line labels.Chris Loer2017-10-186-77/+216
| | | | | | Boxes are still used instead of circles, but it would be pretty easy (if not necessarily most performant) to add a circle geometry refinement to the tree-querying logic. Compiles but not tested. [skip ci]
* Start implementing `CollisionIndex`, the global/viewport-based replacement ↵Chris Loer2017-10-182-0/+241
| | | | | | | | for `CollisionTile`. No support for line-labels/circles yet. Compiles but not tested. [skip ci]
* Initial implementation of "PlacementState": intended to be used by renderer ↵Chris Loer2017-10-184-0/+183
| | | | to pause and restart placement.
* add SymbolOpacityIndex [skip ci]Ansis Brammanis2017-10-186-4/+267
|
* Remove FrameHistory. This will disable zoom-based collisions until ↵Chris Loer2017-10-189-142/+2
| | | | foreground placement is implemented.
* Port viewport-collision changes to symbol_projection.cpp:Chris Loer2017-10-184-36/+127
| | | | | | - Adds "placeFirstAndLastGlyph" which can be called from CollisionIndex - Doesn't add JS-specific projection/glyph hiding optimizations - Only testing is a brief exercise of the previously existing line projection logic -- this still needs to be hooked up to more code to actually be useful.
* Prepare for viewport-collision work: remove "straight" option for ↵Chris Loer2017-10-182-20/+5
| | | | line-placed icons.
* [core] correctly alter sprite URLs when attaching sprite.png/sprite.json ↵Konstantin Käfer2017-10-171-8/+10
| | | | filenames
* [core] don't generate clip IDs for buckets/layers that don't need to be clippedKonstantin Käfer2017-10-173-1/+9
|
* [core] Move SourceType to the 'style' namespaceAnand Thakker2017-10-1610-14/+14
|
* [core, node] Support axonometric renderingLauren Budorick2017-10-145-0/+75
|
* [core] Fix out-of-bounds array accessAsheem Mamoowala2017-10-121-1/+1
|
* [core] make forcing cache/network only more explicitKonstantin Käfer2017-10-1216-83/+77
| | | | | | Previously, we used the existence of a `prior*` field in the Resource object as an indication for whether we should consult the cache or not. However, this is prone to error, since a failed cache lookup won't set any prior fields. Therefore, we manually set `priorExpires` to 0. This in turn triggered another bug where generated wrong expiration timestamps when the server response we got was expired (or expired between sending and receiving). This commit changes the flags so that we can now explicitly request CacheOnly/NetworkOnly (or All) loading methods, rather than the implicit Optional/Required naming scheme.
* [core] Add `cameraForLatLngs()` method with modified bearingAsheem Mamoowala2017-10-091-11/+34
|
* [core] Update glyph requestors _before_ requesting from file sourceBruno de Oliveira Abinader2017-10-092-8/+5
|
* [core] Split GeoJSONTileData and related classes into a separate headerAsheem Mamoowala2017-09-282-94/+95
|
* [core] Add minzoom to GeoJSONOptionsKonstantin Käfer2017-09-281-1/+1
|
* [build] split out DefaultFileSource and dependents to a separate targetKonstantin Käfer2017-09-283-68/+2
| | | | We don't want to link it into the node bindings, so keep it in a separate target
* [core] Move *TileID hashing to separate implJesse Crocker2017-09-262-276/+29
|
* [core] fix loading of stale must-revalidate resourcesKonstantin Käfer2017-09-251-0/+3
| | | | | | In https://github.com/mapbox/mapbox-gl-native/pull/9670, we implemented support for the Cache-Control: must-revalidate header. While we now respect this header and don't show resources that are stale and have this header set, the optional cache request never completes. This means we're also never going to try to actually get a fresh tile and just never show this tile anymore. This commit fixes this by responding with a Not Found error when the resource is unusable (= stale and has must-revalidate set). Since we actually still have the data (but can't use it due to caching rules), we're responding with the data as well. To avoid a second cache hit, tile_loader_impl.hpp now passes on the data from the Optional to the Required request so that it can be reused when we get a 304 Not Modified response from the server.
* [core] custom layer - add contextLost callbackIvo van Dongen2017-09-224-3/+20
| | | | - optional callback method that can be used to do cleanup when the context has been lost before re-initialisation
* [core] send signal to RenderCustomLayer when gl context has been lostIvo van Dongen2017-09-225-1/+27
| | | | - Prevents cleaning up of GL resources that no longer exist, resulting in a crash
* [core] allow context to be abandoned on destructionIvo van Dongen2017-09-222-1/+9
| | | | - This enables the use case where the system already destroyed the underlying GL resources. Otherwise, the cleanup would fail and crash
* [core] remove throttling from geometry tileIvo van Dongen2017-09-222-9/+2
| | | | - This doesn't work for asynchronous rendering - see https://github.com/mapbox/mapbox-gl-native/pull/9611
* Preserve depth buffer between 3D layers + optimize render order (#9931)Lauren Budorick2017-09-2111-133/+183
| | | Port of https://github.com/mapbox/mapbox-gl-js/pull/5101: adds a new render pass `Pass3D` before any other rendering wherein we render layers with 3D passes (fill-extrusion layers) to offscreen framebuffers, sharing a depth renderbuffer between those layers in order to render 3D space correctly. Those framebuffers are saved on the RenderLayers and copied back to the map during the translucent pass. Rendering to offscreen framebuffers before we do any clear + draw means we can avoid expensive framebuffer restores.
* [core] make sure tiles are not treated as complete until all worker ↵Konstantin Käfer2017-09-217-37/+43
| | | | | | 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] keep tiles renderable even if a subsequent error occursKonstantin Käfer2017-09-212-5/+0
| | | | Since 9a9408e8111bcdcd0fcb9a93112d61ab8fce0601, 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.
* Fix platform dependent number type `unsigned long` -> `uint64_t`Asheem Mamoowala2017-09-202-3/+3
|
* [core] Don't redo placement for zoom changes at low pitch.Chris Loer2017-09-181-3/+3
| | | | | Fixes issue #9996 Port of GL-JS #5284