Commit Graph

11692 Commits

Author SHA1 Message Date
Chris Loer
ff58848cfd [core] Remove dead code
- CollisionTile
 - FrameHistory
 - PlacementConfig
2017-11-17 10:05:15 -08:00
Chris Loer
4137f559f0 [core] Use floats instead of ints for Shaping.
Brings gl-native shaping closer to gl-js.
2017-11-17 10:05:15 -08:00
Chris Loer
30de793c2a [core] Update shaders/tests from GL JS. 2017-11-17 10:05:15 -08:00
Chris Loer
77bfb47fda [core] Update queryRenderedFeatures to use global CollisionIndex. 2017-11-17 10:05:15 -08:00
Chris Loer
c0cb210ddc [core] Switch from background to foreground placement
- Background placement code now just generates static symbol buffers
 - Don't render GeometryTiles until their symbols are loaded. This is necessary for the CrossTileSymbolIndex to successfully prevent flicker.
 - SymbolInstances are transferred to SymbolBucket for use on foreground during collision detection
 - Symbols are sorted on foreground by sorting their index buffer but leaving vertex buffers intact (only works within one segment)
 - Vertical glyphs are generated at same time as horizontal glyphs. `reprojectLineLabels` chooses which one to use at render time and hides the other.
 - Icons are now always represented with a single collision box, even if they're placed along a line (this means their rotation alignment may be wrong, but the approach of representing them with multiple collision boxes wasn't very accurate either).
 - Generate vertices for new debug collision boxes and collision circles
 - Only add symbols within tile boundaries (reduces work, avoids double-draw)
 - Update symbol_projection.cpp to support line label projection calls from CollisionIndex.
2017-11-17 10:05:15 -08:00
Chris Loer
9a5b2fdfc3 [core] Enable dynamic updates of index buffers. 2017-11-17 10:05:15 -08:00
Chris Loer
4c6f0e8138 [core] Add global CollisionIndex to replace CollisionTile.
- Switches from tile to viewport coordinates
 - Represents line labels with circle geometries
 - Projects line labels at collision detection time to improve accuracy
 - Adapts tile-based symbol queries to viewport coordinates
2017-11-17 10:05:15 -08:00
Chris Loer
18d735ccc2 [core] Add Placement class.
Responsible for running global collision detection/symbol placement algorithm and updating symbol opacity buffers accordingly.
2017-11-17 10:05:15 -08:00
Chris Loer
601a1c8dcf [core] Add circle geometries to GridIndex.
- Adds early exiting "hitTest" query for fast collision detection
 - GridIndex now determines cell count separately for x and y axes based on grid dimensions.
2017-11-17 10:05:15 -08:00
Chris Loer
31f0f47195 [core] Add CrossTileSymbolIndex.
This class is responsible for tracking which symbols are "the same" between tiles at different zoom levels, so that symbol opacities (fade animations) can be copied smoothly between tiles.
2017-11-17 10:05:15 -08:00
Eduard Popov
dcd7da14f6 [docs] Fix link in node readme (#10395) 2017-11-15 13:10:30 -05:00
Bruno de Oliveira Abinader
3bef7593a6 [build] Clang-3.8: Explicit mbgl::style::expression::Result default ctor 2017-11-14 19:01:04 +02:00
Bruno de Oliveira Abinader
2c51901400 [build] Clang-3.8: Default init of a const type requires user-provided ctor 2017-11-14 19:01:04 +02:00
Bruno de Oliveira Abinader
10a9b25928 [Qt] Fix deprecation warnings in Qt 5.10 2017-11-13 11:47:31 -02:00
Thiago Marcos P. Santos
92608f5885 [core] Fix build on Android + GCC and Android + armeabi
Sadly we don't have bots for these two setups.
2017-11-12 13:17:57 -02:00
Minh Nguyễn
465b345dd2 [ios, macos] Updated changelogs 2017-11-10 11:25:40 -08:00
Tobrun
a47f8245da Monkey crashes (#10440)
* [android] - avoid null map from trackballevent

* [android] - fixup animated marker test activity from monkey runs

* [android] - harden NativeMapView OnMapChangeListener

* [android] - harden against destroyed wrapper activity while moving touch pointers

* [android] - harden bulk marker activity for monkey runner

* [android] - harden scale end gesture event for null velocity tracker

* [android] - invalid mapboxMap invocation

* [android] - reset test setup
2017-11-10 16:33:51 +01:00
Tobrun
225fba8a0a Merge branch 'release-agua' into tvn-merge-release 2017-11-10 06:16:35 +01:00
Jordan Kiley
91dabd01df [ios] Silence smart invert warnings (#10425) 2017-11-09 13:09:16 -08:00
Nadia Barbosa
bfdd0c5031 [ios] Doc fixes for "Adding Points to a Map" guide 2017-11-09 13:11:09 -05:00
Bruno de Oliveira Abinader
6b5afaab76 [Qt] Explicit QVariant type as string when binding text 2017-11-09 19:17:10 +02:00
Bruno de Oliveira Abinader
a339dcc6cc [Qt] Do not assume viewport size == fbo size in Qt4 2017-11-09 16:13:05 +02:00
Bruno de Oliveira Abinader
12f69ae14a [Qt] Call QNetworkReply::readAll() only once 2017-11-09 16:13:05 +02:00
Bruno de Oliveira Abinader
7936c138fe [Qt] Call QSqlQuery::finish() when inactive 2017-11-09 16:13:05 +02:00
Bruno de Oliveira Abinader
ca73bbc9be [Qt] Do not store QSqlDatabase 2017-11-09 16:13:05 +02:00
Bruno de Oliveira Abinader
3053dabca3 [build] Added Qt{4,5} Linux build folders to YCM config 2017-11-09 16:13:05 +02:00
Bruno de Oliveira Abinader
2b03d6e805 [Qt] Qt SQLite driver has no setForwardOnly support 2017-11-09 16:13:05 +02:00
Ivo van Dongen
c30161e4c8 [android] MapRendererRunnable - avoid weak reference table overflow
Apparently on some devices the weak reference table is limited (numbers around 52000). Even though we don't use that many weak references, when GC is not called for a while they can stack up and a crash will occur before the GC has had the time to clear the references. The C++ peer now holds on to a global ref (strong) which can be obtained to queue the java peer and then release automatically so that the GC can take over after the runnable has been executed.
2017-11-09 15:24:34 +02:00
Ivo van Dongen
43f89d6b6a [android] fix map snapshotter marker example
The reference to the MapSnapshotter needs to be held for the duration of the snapshot, otherwise it might be GC'd
2017-11-09 15:24:15 +02:00
Pablo Guardiola
cec7d12e37 [android] revert adding mapbox-android-core dependency (#10354) (#10380) 2017-11-09 12:43:28 +01:00
Fabian Guerra
a936fd6f8a [ios, macos] Cleanup duplicated snapshotter frame code. 2017-11-08 16:40:50 -05:00
Anand Thakker
a71756ea8d Fix gl-js submodule sha (#10420) 2017-11-08 14:06:37 -05: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
Pablo Guardiola
46fcc83097 [android] release 5.2.0-beta.4 (#10384) 2017-11-08 01:58:51 -08:00
Tobrun
cc67335499 [android] - add config file for excluding generated tests, refactor generation script output 2017-11-08 09:58:31 +01:00
Fabian Guerra
3efb740b42 [ios] Bump podspec to beta.4 2017-11-07 18:41:47 -05:00
Fabian Guerra
93e363bd8c [ios, macos] Add attribution to snapshots. 2017-11-07 17:56:09 -05:00
tobrun
24de48b772 [android] - update android unit tests, update test make target to SDK 2017-11-06 18:53:50 +01:00
tobrun
4d486e10ce [android] - check for null value when calling mapboxMap.clear 2017-11-06 17:16:27 +01:00
Jordan Kiley
d29ebe3d3f [ios, macos] noted how to update shape source (#10383) 2017-11-03 18:29:03 -07:00
Tobrun
9aac976104 [android] - update getting started documentation 2017-11-03 17:44:29 -07:00
Pablo Guardiola
cdc5dde0ec [android] revert adding mapbox-android-core dependency (#10354) (#10380) 2017-11-03 15:39:53 -07:00
Minh Nguyễn
2955fb594c Make places and roads accessible to VoiceOver (#9950)
* [ios] Summarize places, roads after zooming with VoiceOver

After zooming, MGLMapView’s accessibility value now indicates the number of visible roads and lists out a few places visible in the current viewport, starting with the features at the highest z-index (not necessarily the largest or the closest to the center of the view). Avoid saying that no annotations are visible.

* [ios] Allow VoiceOver to navigate among place features

Split out a separate header for the various accessibility elements tied to MGLMapView. Wrap place features in accessibility elements and insert them into the narration order after the visible annotations but before the attribution button. Refactored MGLMapView’s accessibility code to rely on ranges to avoid off-by-one errors.

* [ios] Post layout change notification when fully rendered

Post a layout change notification when fully finishing a map render.

* [ios, macos] Moved MGLVectorSource+MGLAdditions to more specific group

* [ios] Localize accessibility feature names

* [ios] Find place feature accessibility elements by identifier

* [ios] Refactored accessibility traits

Also created a new MGLPlaceFeatureAccessibilityElement class.

* [ios] Sort accessibility elements by screen distance from center

Sort annotation accessibility elements by screen distance, not the hypotenuse of coordinates, which can yield incorrect results when the map is rotated or tilted or when the user is located at high latitudes. Sort place feature accessibility elements by screen distance as well.

* [ios] Create a place feature accessibility element, not an abstract feature accessibility element

* [ios] Only query for visible place features once per camera

Improved accessibility performance after changing the map camera. MGLMapView no longer queries the map for place features once per place feature.

* [ios] Made roads accessible

Wrap visible road features in accessibility elements described by the road name, route number, and general direction of travel.

* [ios] Cleaned up radian conversions

* [ios] Thickened road accessibility elements

* [ios] Made unioned roads accessible

* [ios] Consistently sort accessibility elements

Also fixed an issue causing road feature accessibility elements to get treated like place feature accessibility elements.

* [ios] Announce direction of divided roads

Announce the direction of a divided road based on the direction of its first polyline.

* [ios] Refined announced elevation units

* [ios] Romanize feature names

* [ios] Updated changelog

* [ios] Delay zoom announcement

A 100-millisecond delay is enough for the post-zooming announcement to reflect the new zoom level rather than the previous zoom level.

* [ios] Consolidated geometry functions

Adopted MGLGeometry_Private.h in the accessibility code, forcing a conversion to Objective-C++. Avoid inlining some of the more complex geometric functions.

* [ios] Fixed feature name romanization in accessibility labels

NSLocale.scriptCode is only set when the locale identifier explicitly specifies a script. Use NSOrthography to identify the dominant orthography regardless of locale.

Also added a unit test of feature accessibility element labels.

* [ios] Added tests for place, road accessibility values

* [ios] Announce one-way roads

A road feature’s accessibility value now indicates whether the road is a one-way road.
2017-11-03 12:17:45 -07:00
Ivo van Dongen
d1d0c20044 [android] TextureView - cleanup destruction code 2017-11-03 09:19:39 -07:00
Ivo van Dongen
8753edf08f [android] test app - texture view test activities 2017-11-03 09:19:39 -07:00
Ivo van Dongen
3b2bd7ce4f [android] bring back texture view 2017-11-03 09:19:39 -07:00
Ivo van Dongen
e9bb4d1582 [android] texture view map renderer 2017-11-03 09:19:39 -07:00
Ivo van Dongen
fd5f357d1d [android] move egl under renderer package 2017-11-03 09:19:39 -07:00
Ivo van Dongen
6adeee601e [android] encapsulate gl surfaceview rendering specifics in map renderer subclass
- preparation for re-introduction of texture view
2017-11-03 09:19:39 -07:00
Ivo van Dongen
c24721103d [android] TextureView - cleanup destruction code 2017-11-03 12:31:44 +02:00