Commit Graph

234 Commits

Author SHA1 Message Date
Konstantin Käfer
18c0590ddd [test] add new OffscreenTexture test 2019-05-28 16:11:05 +02:00
Aleksandar Stojiljkovic
9809c9f8f5 [core] Offset viewport center when edge insets are specified
The change is implemented in TransformState::getProjMatrix, the rest of the code is making sure that existing API contracts stay and there are tests verifyingrendering and render query processing only items within screen and given tolerance around screen edges.

MapView: don't bake edge insets into relalculated camera center. Keep edge insets as property of camera in TransformState (similar to pitch, zoom, bearing) independent from specified camera center. Interpolate edge insets in animation.

iOS Demo app: "Turn On/Off Content Insets" pitch the camera and navigate to convenient location in Denver, where streets are parallel to cardinal directions, to illustrate viewport center offset when edge insets are set.

Tests:
ViewFrustumCulling: although Annotations are deprecated, queryRenderedFeatures related tests in Annotations would need to get ported and decided to add the edge insets related query tests next to them. Verify frustum culling (render+queryRenderedFeatures) With different camera and edge insets setups. TODO: port Annotations tests.

Transform.Padding: Verify that coordinates take proper place on screen after applying edge insets.

LocalGlyphRasterizer: verify text rendering when applying padding.

Related to #11882: both use projection matrix elements [8] and [9].

Alternative approach to this was to increase and offset map origin so that the screen would be a sub-rectangle in larger map viewport. This approach has a drawback of unecessary processing the items that are outside screen area.

Fixes #12107, #12728, navigation-sdks/issues/120
2019-05-28 14:38:01 +03:00
Antonio Zugaldia
d5659aa664 [core,ios,android] Update feedback URL in code and tests (#13710)
* [core,ios] rename all occurrence of www.mapbox.com/map-feedback to apps.mapbox.com/feedback

* [ios,android] rename all occurrence of www.mapbox.com/feedback to apps.mapbox.com/feedback
2019-01-17 17:00:56 -08:00
Alexander Shalamov
d1b386e3fc [android] Add list of skipped core unit tests 2019-01-10 18:49:44 +02:00
Bruno de Oliveira Abinader
513b50eee8 [Qt] Implement LocalGlyphRasterizer 2019-01-04 17:27:41 -04:00
Alexander Shalamov
191d47b935 [core] Add unit tests for queryFeatureExtensions 2018-12-12 15:08:18 +02:00
Mikhail Pozdnyakov
8ac87ec5cb Refactor util::fontStacks()
So that it does not downcast `Layer::Impl` instances.
Also, an unneeded `std::vector` construction was removed from
`Parser::fontStacks()`.
2018-11-19 17:16:54 +02:00
Thiago Marcos P. Santos
cd92a231b3 [qt] Deprecate Qt4 and old versions of Qt5
Not enough adoption to keep the platform alive.
2018-11-13 22:55:26 +02:00
Bruno de Oliveira Abinader
98c36fc06e [core] CameraOptions receives and outputs angle and pitch as degrees, not radians 2018-10-19 12:05:16 +02:00
Chris Loer
fed55418f2 [core,test] Update expression style parsing test fixture.
Always clear errors before trying automatic coercion for a new compound expression overload.
2018-10-15 13:15:46 -07:00
Bruno de Oliveira Abinader
19179e08bc [core] Do not constrain on X axis in ConstrainMode::HeightOnly 2018-10-02 06:16:13 -07:00
Konstantin Käfer
071129bf61 [linux,qt] Remove remainder of WebP support 2018-09-13 13:27:44 +02:00
Asheem Mamoowala
fcab3a81cd Add unit tests and fixtures for OfflineDatabase::mergeDatabase 2018-08-28 07:14:54 -07:00
John Firebaugh
8ca419fb2e [core] Evict unused font stacks from GlyphManager 2018-08-17 09:38:39 -07:00
Konstantin Käfer
fa7b70945f [core] harden OfflineDatabase 2018-08-14 17:03:46 -07:00
John Firebaugh
2bbc792060 [core] Check all bucket dynamic_casts
A mismatch can occur when a layer changes from one type to another.
2018-07-24 11:08:40 -07:00
John Firebaugh
c8edbb0500 [core] Replace {Source,Camera,Composite}Function with PropertyExpression 2018-07-20 11:56:30 -07:00
John Firebaugh
ab5e496219 [tests] Replaced the ZoomHistory test with a render test 2018-06-28 16:31:48 -07:00
Bruno de Oliveira Abinader
48744d51d8 [test] Update Map.PrefetchTiles 2018-02-28 11:54:37 +02:00
Thiago Marcos P. Santos
869799a716 [tests] Added a test for getting resources from the database
This test would have flagged the Qt regression.
2018-02-26 14:43:32 +02:00
Konstantin Käfer
191c0124c7 [core] don't force downloading of Open Sans fonts
When a SymbolLayer doesn't have a text-font defined, we automatically add Open Sans/Arial Unicode MS. However, when the SymbolLayer is only used for rendering icons, it doesn't have text-field defined either. In those cases, we still force downloading Open Sans/Arial Unicode MS during offline pack creation. If the user doesn't use this font, this change should save ~15MB and a few seconds in download time.
2018-01-25 17:21:18 -08:00
Konstantin Käfer
d4ed8d1a44 [core] fix style parsing crash when a layer's paint property is not an object 2018-01-23 13:45:14 -08:00
John Firebaugh
542713fefe [core] Add warning for invalid text-font values 2018-01-10 15:31:12 -08:00
Chris Loer
b4c781aef7 [core, macos, ios] Unit tests for LocalGlyphRasterizer
Core test uses stubbed "glyph.pbf" without Chinese glyphs
Darwin test relies on locally available "PingFang" font.
Android test relies on locally available "Droid" font. 'expected.png' is NOT correct b/c I haven't figured out how to run unit tests on Android yet.
2017-12-11 10:43:00 -08:00
Asheem Mamoowala
acae193861 [core] Custom Geometry Sources 2017-11-22 13:56:38 -08:00
Ansis Brammanis
22c07596a0 [core] Split MapMode::Still into Static and Tile
`Tile` makes sure the symbols in the resulting tile are tileable while
symbols in `Still` match rendering in `Continuous` mode.
2017-11-17 10:05:15 -08:00
Chris Loer
54b990eb33 [core] Update unit tests for viewport collision.
Add 'GridIndex' unit test.
2017-11-17 10:05:15 -08:00
Anand Thakker
f648cfeef6 Implement Expressions (#9439)
Ports https://github.com/mapbox/mapbox-gl-js/pull/4777 (and its several follow-ups)
2017-11-08 12:34:02 -05:00
Bruno de Oliveira Abinader
0ef7b7154f [test] Added GLContextMode.Shared utest 2017-11-01 17:45:37 +02:00
Konstantin Käfer
ca4f0bbcc5 [test] add test for rendering a 204 No Content tile 2017-09-22 19:24:42 +02: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
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
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
Konstantin Käfer
f0a7c45064 [core] finish must-revalidate support 2017-08-08 12:40:38 +02: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
Thiago Marcos P. Santos
69c8f602de [tests] Add unit test for tile prefetching 2017-07-07 14:28:52 +03:00
Bruno de Oliveira Abinader
a744e35f44 [test] Added API.ZoomHistory 2017-07-04 15:50:50 +03:00
Bruno de Oliveira Abinader
9a0c5b4dfa [test] Use test::checkImage in API.RepeatedRender 2017-07-04 15:50:50 +03:00
John Firebaugh
0b68731207 [core] Per-bucket icon atlases 2017-06-13 10:18:43 -07:00
Asheem Mamoowala
aa6647e910 [core] Offline support for Image Sources 2017-06-01 15:38:01 -07:00
Asheem Mamoowala
7a010df956 [core] Add ImageSource support to style parsers 2017-06-01 15:38:01 -07:00
John Firebaugh
d766af44c8 [core] Auto-growable SpriteAtlas using shelf-pack 2017-05-26 11:21:56 -07:00
John Firebaugh
e4e08aca79 [tests] Add test for calling addAnnotationImage with an existing ID 2017-05-26 11:21:56 -07:00
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