Commit Graph

1215 Commits

Author SHA1 Message Date
Asheem Mamoowala
560afaf1fb Cherry pick #11176 for Agua patch 2018-02-12 13:29:22 -08:00
Asheem Mamoowala
64374711a0 Support TileJSON bounds property (#10701)
* [core] Parse TileJSON bounds property
* [core] Add TileRange and LatLngBounds::contains(CanonicalTileID)
Move LatLngBounds::contains impl to cpp file
* [core] Skip tile creation outside of tileset bounds
* [core] Fix TileRange for wrapped bounds and use for CustomTileLoader instead of LatLngBounds comparisons for tiles.
2018-02-08 12:39:30 -08:00
Konstantin Käfer
3f7c30f9d3 [core] fix style parsing crash when a layer's paint property is not an object 2018-01-23 13:56:42 -08:00
Konstantin Käfer
498dbf27b9 [core] don't tie Annotation geometries to Map maxzoom
Instead, geometry generation via GeoJSONVT is now bound to the hardcoded limit of the annotation tile source.
2018-01-02 20:17:15 +01:00
Konstantin Käfer
9c12a311f2 [core] correctly alter sprite URLs when attaching sprite.png/sprite.json filenames 2017-10-17 17:31:59 -07:00
Konstantin Käfer
0cd646180e [core] don't generate clip IDs for buckets/layers that don't need to be clipped 2017-10-17 15:48:41 -07:00
Konstantin Käfer
78ea88d757 [core] make forcing cache/network only more explicit
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.
2017-10-12 17:58:03 +02:00
Asheem Mamoowala
df20b0cbec [core] Add cameraForLatLngs() method with modified bearing 2017-10-09 13:58:11 -07:00
Konstantin Käfer
8fae8a1645 [core] Add minzoom to GeoJSONOptions 2017-09-28 15:47:21 -07:00
Konstantin Käfer
f281e6ae8a [core] fix loading of stale must-revalidate resources
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.
2017-09-25 10:47:20 +02:00
Ivo van Dongen
8b9794b1a7 [core] Actor/ActorRef - ask calls to void methods
- allows to wait for execution of void methods as well as non-void methods
2017-09-22 23:33:56 +03:00
Konstantin Käfer
ca4f0bbcc5 [test] add test for rendering a 204 No Content tile 2017-09-22 19:24:42 +02:00
Lauren Budorick
a9ddf5b7fd Preserve depth buffer between 3D layers + optimize render order (#9931)
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.
2017-09-21 14:26:48 -07: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
Bruno de Oliveira Abinader
45d07163eb [core] Reset zoom history state in still mode 2017-09-15 16:41:29 -03:00
Asheem Mamoowala
50fd917510 Fast tileCount with help from @mapbox/sphericalmercator module 2017-09-08 17:38:42 -07:00
Asheem Mamoowala
a2712f6fa4 Update to gejson 0.4.2 and add StyleParser test to verify that GeoJSON without properties field can be loaded 2017-08-28 15:43:18 -07:00
Lauren Budorick
2de89a99bc Implement icon-anchor property 2017-08-28 13:32:56 -07:00
Bruno de Oliveira Abinader
fe8cbc78d3 [core] Added GeometryTileWorker-owned image correlation ID 2017-08-25 23:41:52 +03:00
John Firebaugh
e706ed4b2e [core] Avoid RenderStyle dependency in query code 2017-08-24 13:06:23 -07:00
Thiago Marcos P. Santos
bd15e273dc [tests] Enforce the schema downgrade behavior
Which is, delete and recreate the database.
2017-08-22 12:46:38 +03:00
Bruno de Oliveira Abinader
224e9e6261 [test] Re-added API.ZoomHistory 2017-08-22 10:17:25 +03:00
Chris Loer
fd2b525c4d [core] Correct x-offset introduced by vertical glyph rotation
Fixes issue#9768.
Port of GL JS PR #5100.
2017-08-18 10:53:26 -07:00
Bruno de Oliveira Abinader
5d62028ed2 [test] Added API.RecycleMapUpdateImages test 2017-08-14 18:23:03 +03:00
Bruno de Oliveira Abinader
bd4441503f [test] Added Map.SetStyleDefaultCamera test 2017-08-11 22:04:52 +03:00
Bruno de Oliveira Abinader
6179e0f9c0 [core] Added Style::getDefaultCamera() 2017-08-11 22:04:52 +03:00
Konstantin Käfer
f0a7c45064 [core] finish must-revalidate support 2017-08-08 12:40:38 +02:00
Ivo van Dongen
68f470fdda [core] make actor self reference optional - again
- uses a different method of constructor selection that also works on Apple clang < 8.2.
2017-08-08 11:36:30 +03:00
Thiago Marcos P. Santos
2dd8ec8854 [core] Removed unused constructor
Not in use at the moment, was causing a compiler error on
Apple LLVM version 8.0.0 (clang-800.0.42.1).

```
src/mbgl/sprite/sprite_loader.cpp:25:11: error: call to constructor of
'Actor<mbgl::SpriteLoaderWorker>' is ambiguous
```
2017-08-07 18:48:42 +03:00
Molly Lloyd
ba7574ec51 [core] modify texture coordinate scaling (#9153)
ignore unsupported dds property tests

fix tests

remove unneeded texture extent variable

bump gl-js to master
2017-07-27 14:54:03 -07:00
John Firebaugh
d4cb498d7a [all] Merge View into RendererBackend 2017-07-26 09:50:38 -07:00
John Firebaugh
32bd1d54fa [node, tests] Consolidate headless rendering logic in HeadlessFrontend 2017-07-26 09:50:38 -07:00
John Firebaugh
11933f6ab8 [core] Remove API tests that are covered by node tests 2017-07-26 09:50:38 -07:00
John Firebaugh
c85193a0ad [core] Replace API.ZoomHistory test with integration test 2017-07-26 09:50:38 -07:00
Ivo van Dongen
5ee05a7781 [core] make actor self reference optional 2017-07-24 19:30:02 +03:00
Ivo van Dongen
81e9ed7fdd [core] add ask pattern to actor ref 2017-07-24 19:30:02 +03:00
Ivo van Dongen
a9ac314a5d [core] implement ask pattern in actor 2017-07-24 19:30:02 +03:00
Konstantin Käfer
c0efad5de2 [core] generate masks for raster tiles to avoid painting over children 2017-07-24 12:10:45 +02:00
Konstantin Käfer
4dff51719b [core] add algorithm for computing masks for raster tiles 2017-07-24 12:10:45 +02:00
John Firebaugh
b43e1ae123 [core] Correctly track sprite loaded state through smart setStyle 2017-07-20 08:58:50 -07:00
Konstantin Käfer
698542cf45 [build] make Xcode use the correct compiler when it is installed in a non-standard location 2017-07-18 11:54:14 +02:00
Ivo van Dongen
9ebf727f56 [core] BackendScope prevent double (de-)activation
- Guards against duplicate activations by checking wether the backend of the prior scope is the same as the current ones
- Makes sure that only the most outer backend scope deactivates by tracking activation state
2017-07-18 10:45:12 +02: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
57351c068b [core] split backend from mapobserver 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
Asheem Mamoowala
1d15ed64dc [core] Use shared pointer to manage Image source raster data and speed up change detection 2017-07-17 12:20:03 -07:00