Commit Graph

188 Commits

Author SHA1 Message Date
John Firebaugh
baaae99a03 [core, android] Factor JSON string conversions
This adds a `convertJSON` template, to be used like:

   Error error
   optional<Foo> foo = convertJSON<Foo>(string, error);

Internally, it parses the string with RapidJSON and then calls `convert<Foo>(parsed, error)`.

While here, rationalize GeoJSON converters and fix error handling for Tileset conversion in OfflineDownload.
2017-05-08 13:48:57 -07:00
John Firebaugh
197751bace [core] Load source TileJSON immediately
This reverses #3095. Rationale:

* We're now exposing source attributes as a public API. Making those attributes unavailable at certain times complicates that API.
* We're preparing to split RenderSource out of Source. Removing this removes a point of coupling between the two.
2017-05-02 08:45:09 -07:00
Lauren Budorick
f6e79d7073 [core] Render fill-extrusion layers (#8431) 2017-04-27 15:56:55 -07:00
Ivo van Dongen
1d1ea2fa24 [core] fixup stale constants references in test fixtures 2017-04-04 18:31:11 +03:00
Ivo van Dongen
0d10d2df1c [core] query source features 2017-03-09 13:11:23 -08:00
Asheem Mamoowala
60d10dd27d [core] Add support for queryRenderedFeatures filter 2017-03-04 15:42:07 -08:00
John Firebaugh
94f011895c [core] Make Image safer
Provide Image::copy, which handles copying rectangles from a source to a destination, with thorough bounds checking.

Also fixes an indexing error in SpriteAtlas, where the top row of pixels in a wrapped image was copied from the wrong source row.
2017-02-14 12:29:01 -06:00
John Firebaugh
c6d5eaf479 [tests] Use test::checkImage 2017-02-14 12:29:01 -06:00
John Firebaugh
0bbc6b814c [core] Restore support for GL implementations without VAO extension 2017-02-10 18:04:45 -06:00
Konstantin Käfer
b6c1119172 [core] harden Glyph PBF parsing 2017-01-17 19:23:20 +01:00
Minh Nguyễn
a6b1773a44 Merge branch 'release-ios-v3.4.0' into 1ec5-release-ios-v3.4.0-beta.5-master
Also reran make style-code and manually discarded anything related to fill extrusion layers.
2016-12-20 12:41:40 -08:00
Roman Blum
1045934d5e [core, ios, macos] Add image accessor to MGLStyle (#7096)
* [core] Add interface to get image from sprite atlas

* [tests] Add tests for Map::getImage

* [ios, macos] WIP: get MGLImage for name from style

* [ios, macos] Fixed -imageForName:

Convert from sprite images to platform images using the existing encodePNG() function, which is also used for printing. Allow -imageForName: to return nil without an assertion failure. Added a basic test.
2016-12-05 17:16:13 -08:00
John Firebaugh
7d16824fda [core] Functions must have at least one stop
This is already enforced by the style validator in mapbox-gl-style-spec. Enforce it here too.
2016-12-01 09:00:06 -08:00
Ivo van Dongen
c810d16f0d [android][build] core tests - initial setup for rendering tests 2016-11-27 18:50:24 +02:00
Konstantin Käfer
bcdbbbcac2 [core] don't assign clip IDs to tiles that aren't rendered 2016-11-08 18:09:58 +01:00
Thiago Marcos P. Santos
82b801250e [tests] Add unit tests for query features fiters 2016-10-05 11:12:16 +03:00
Konstantin Käfer
c88ce2d51e [core] add ability to render to offscreen textures 2016-09-27 10:42:10 +02:00
Thiago Marcos P. Santos
4d3356dc1e [tests] Add tests for Map::[add|remove]Image 2016-09-22 17:43:28 +03:00
Konstantin Käfer
1e8f9c75ca [core] do not render layers that are outside their zoom range
So far, we didn't properly disable layers that are outside the zoom range. This means that we rendered layers that should not have been rendered, albeit we didn't make any attempt to load tiles for those layers. However, when zooming in/out, existing tiles might already have been loaded in the source which continued to be rendered. In most cases they weren't actually visible because either the matrices weren't updated, or the clip IDs weren't set so that they would be "rendered" off-screen and clipped completely. In any case, we did way too much work.
2016-09-20 14:10:38 +02:00
Jason Wray
9237ad3c58 [tests] Add v3 & v4 database migration tests 2016-09-14 15:48:53 -04:00
John Firebaugh
e126dc3a5a [core] Fix updates of line and fill annotations 2016-08-29 08:08:44 -07:00
Thiago Marcos P. Santos
c98f4f476b [core] Emit MapChangeDidFailLoadingMap when the style cannot be loaded or parsed
Currently this signal is never emitted, which can cause the Still mode
to starve in case of an invalid style or failed request.
2016-08-24 20:02:31 +03:00
Konstantin Käfer
e6bcbdd5d3 [core] set correct depth values for CustomLayer so compositing works 2016-08-22 18:32:12 +02:00
Jesse Bounds
dfd40b27a5 [tests] Add tests for shape overlays crossing the antimeridian
This adds two tests:

AntimeridianAnnotationSmall: Test that a shape that is represented with
+-180 longitudinal values is drawn spanning the antimeridian. In other
words, it is rendered as a "small" shape as opposed to one that spans
around the world to reach the other side of the antimeridian. This test
is currently failing at the time of this commit.

AntimeridianAnnotationLarge: Test that a shape that is represented with
points that do not cross the +-180 boundary is rendered as a "large"
shape. In other words, it is rendered by wrapping around the world to
reach the other side of the meridian. This test is currently passing at
the time of this commit.
2016-08-19 16:51:01 +03:00
Amy Lee Walton
b0cb8715ed CJK overflow - update to match gl-shader (#5908)
* update vertex array ushorts

* update atlas size

* testing latest cjk test-suite branch

* update shader ref

* update shaders

* update icon buffer

* shaders

* updated tests

* buffer fix

* updated make tests

* annotation expected updates

* final push

* final fonts

* a_data1 removal

* remove cjk-mixed test

* hiring threshold for cjk-chinese

* update to new test suite

* Rename a_data2 to a_data in sdf and icon shaders

* update test-suite sha
2016-08-11 09:49:36 -07:00
Konstantin Käfer
03ebae0f2e [core] don't crash when the version number is not a number 2016-07-20 15:33:09 +02:00
Konstantin Käfer
a07fbe8e34 [core] fix crash when the style JSON doesn't have an object at its root 2016-07-20 15:33:09 +02:00
Minh Nguyễn
74fe96d261 [core] Restored shape annotation z-order
Shapes are once again always added to the top z-index.

Fixes #5691.
2016-07-18 14:43:44 -07:00
Young Hahn
71a3b1d0db [core] geometry@0.8.0 / geojsonvt@6.0.0 (#5514)
* [core] geometry.hpp 0.8.0

* geojsonvt @ 6.0.0

* Update platform deps, build scripts

* Perf optimizations/cleanup

* Rebase in geometry@080

* D.R.Y. etc

* Ensure fill annotation geometries have closed rings.

* Optimizations

* Update to geojsonvt @ 6.1.0 for clean handoff between geojson parsing and geojsonvt

* Apply close multi/poly geoms for line annotations as well
2016-07-06 17:29:34 -04:00
Bruno de Oliveira Abinader
33a8856c2a [test] Added max zoom annotation tests 2016-06-28 12:02:43 +03:00
John Firebaugh
021d4199cb [core, node] Implement bindings for addSource 2016-06-24 09:39:51 -07:00
John Firebaugh
16c435b151 [core, node] Implement bindings for addLayer 2016-06-24 09:39:51 -07:00
John Firebaugh
a18d6dda5d [core] Rewrite style parsing logic for reuse in node bindings 2016-06-21 15:38:13 -07:00
Thiago Marcos P. Santos
ddc6bc330f [tests] Add memory tests
Simple tests that will render a raster and a vector map and
hopefully the valgrind bot will detect something wrong if any.

The other test will look for application lifetime leaks that cannot
be detected with valgrind. It can also detect GL leaks if they are
very expressive.  A threshold is needed because of memory will grow
anyway due to fragmentation.
2016-06-21 19:12:32 +02:00
Thiago Marcos P. Santos
178e0e9da9 [tests] Add resources for rendering offline
The StupFileSource of the memory test will do the rendering
completely offline with a vector tile that is densly populated
with features and a raster tile of the same region.

The styles are streets and satellite respectivelly.
2016-06-21 18:58:48 +02:00
John Firebaugh
2921127bdb [core] Avoid unnecessary work when a symbol annotation is updated
In particular, if only the geometry changes, don't cascade and recalculate the style.
2016-06-17 11:38:04 -07:00
John Firebaugh
ba4a8a9731 [tests] Add basic tests for Map::{add,remove}Layer 2016-06-02 14:51:39 -07:00
John Firebaugh
1fb96d38a0 [tests] Tweak LineAnnotation test so that it reveals a bug; fix the bug 2016-06-02 14:47:35 -07:00
Molly Lloyd
c86f558e9d [core] port outlinepattern for fill-pattern anti-aliasing from gl-js to native
add outlinepattern shader class to relevant files

add outlinepattern code to painter_fill.cpp

add outlinepattern code to fill_bucket

refactor painter_fill, fix tests

fix merge conflicts and setDepthSublayer

update render test to no antialiasing so travis will be happy
2016-04-28 17:13:20 -07:00
John Firebaugh
e916cc811c [tests] Rationalize test fixtures (#4834)
Place them in a directory corresponding to the test .cpp file name.
2016-04-25 14:51:27 -07:00
John Firebaugh
5eda74a514 Merge branch 'release-ios-3.2.0-android-4.0.0' 2016-03-30 17:43:37 -07:00
Konstantin Käfer
db5ac4785f [test] rearrange test files so they're not in the fixtures folder 2016-03-22 11:56:01 -07:00
Konstantin Käfer
1dd81d9776 [test] remove crc64 and compare images
boost's crc64 breaks on iOS
2016-03-22 11:56:01 -07:00
John Firebaugh
5130ca8843 [core] Implement a vacuum strategy for the offline database
Enable `PRAGMA auto_vacuum = INCREMENTAL`, and perform a `PRAGMA incremental_vacuum` when deleting an offline region.
2016-03-17 14:17:59 -07:00
John Firebaugh
065cda83fa [core] Limit total number of offline Mapbox tiles 2016-02-24 13:38:14 -08:00
John Firebaugh
ce1d8561b4 [tests] Add test for Map::updatePointAnnotation 2016-02-12 16:47:24 -08:00
John Firebaugh
0cf450e3e5 [core] Retry errors encountered during offline downloads 2016-02-10 15:40:20 -08:00
John Firebaugh
c3c4c7b9a6 [core] Interface and implementation for offline 2016-02-10 15:40:20 -08:00
John Firebaugh
cdedb66387 [core] Reimplement existing caching within an offline-capable database schema 2016-02-10 15:40:20 -08:00
John Firebaugh
025375ad0b [core] Cache with mapbox:// tile URLs 2016-02-10 15:40:20 -08:00