| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
[skip ci]
|
|
|
|
|
| |
Remove CollisionTile.
"Placement" in background is now just "layout for symbol buckets" (as opposed to layout for non-symbol buckets, which finishes in "redoLayout").
|
|
|
|
| |
Don't worry, we'll squash all these embarrassing commits later.
|
| |
|
|
|
|
| |
prevent flicker from coordinate rounding.
|
|
|
|
|
|
|
| |
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]
|
| |
|
|
|
|
| |
and make `Placement.commit(...)` return whether anything changed.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
[skip ci]
|
|
|
|
|
|
|
| |
- 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]
|
|
|
|
|
|
| |
- Stops crash on inserting line labels
- Breaks queryRenderedSymbols for now.
[skip ci]
|
| |
|
| |
|
|
|
|
|
| |
- Dynamic buffers not hooked up yet
- Circles not hooked up yet
|
| |
|
| |
|
|
|
|
| |
Modify FeatureIndex to use new interface.
|
|
|
|
|
|
| |
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]
|
|
|
|
|
|
|
|
| |
for `CollisionTile`.
No support for line-labels/circles yet.
Compiles but not tested.
[skip ci]
|
|
|
|
| |
to pause and restart placement.
|
| |
|
|
|
|
| |
foreground placement is implemented.
|
|
|
|
|
|
| |
- 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.
|
|
|
|
| |
line-placed icons.
|
|
|
|
| |
filenames
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
We don't want to link it into the node bindings, so keep it in a separate target
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
- optional callback method that can be used to do cleanup when the context has been lost before re-initialisation
|
|
|
|
| |
- Prevents cleaning up of GL resources that no longer exist, resulting in a crash
|
|
|
|
| |
- This enables the use case where the system already destroyed the underlying GL resources. Otherwise, the cleanup would fail and crash
|
|
|
|
| |
- This doesn't work for asynchronous rendering - see https://github.com/mapbox/mapbox-gl-native/pull/9611
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Fixes issue #9996
Port of GL-JS #5284
|