Commit Graph

3474 Commits

Author SHA1 Message Date
Chris Loer
966606a107 [core] Update debug collision circle shader.
Fixes issue #10876.
2018-01-09 13:14:02 -08:00
Konstantin Käfer
145a0ee6d0 [core] blacklist binary program loading for Vivante GC4000 GPUs 2018-01-09 09:55:05 -08:00
Thiago Marcos P. Santos
fef095f785 [windows][core] Use Qt's own zlib on Windows 2018-01-08 22:58:20 +02:00
Thiago Marcos P. Santos
5b789aa4d6 [windows][core] Include what you use 2018-01-08 22:58:20 +02:00
Thiago Marcos P. Santos
f880baaeb7 [windows][qt] Remove std:: namespace of some functions
Not available on Windows.
2018-01-08 22:58:20 +02:00
Bruno de Oliveira Abinader
af183f3952 [ios] Ignore Boost's 'implicit conversion loses integer precision' warning 2018-01-08 22:58:20 +02:00
Ansis Brammanis
feab36a9fb [core] port minor collision changes from -js (#10764) 2018-01-08 12:57:03 -05:00
Asheem Mamoowala
10a44050f4 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-01-05 06:35:31 -08:00
Ansis Brammanis
aa158bb20c [core] fix #10833 loading overscaled tiles
This reverts a regression in ed5438fc21
which set `tileZoom = idealZoom` for all types of tiles.

The second change makes it so that panTiles get loaded only if they have
a lower *data zoom* (only if they cover a larger area).
2018-01-05 10:51:38 +02:00
Fabian Guerra
6fa57b7d48 Merge branch 'release-agua' back to master. 2018-01-04 17:13:55 -06:00
Chris Loer
5bfa20d71d Fix distant collision perspective ratios (#10794).
Analog of GL JS issue #5911.
Add native ignore for tilejson-bounds.
2018-01-04 14:24:37 -08:00
Fabian Guerra
187b6dc31c Merge branch 'release-agua' into master
# Conflicts:
#	circle.yml
#	cmake/core-files.cmake
#	platform/android/CHANGELOG.md
#	platform/android/MapboxGLAndroidSDK/build.gradle
#	platform/android/MapboxGLAndroidSDK/gradle.properties
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/text/LocalGlyphRasterizer.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/BitmapUtils.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/LocalGlyphActivity.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationTintActivity.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_local_glyph.xml
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml
#	platform/darwin/src/MGLMapSnapshotter.mm
#	platform/darwin/src/MGLRendererConfiguration.h
#	platform/ios/CHANGELOG.md
#	platform/ios/DEVELOPING.md
#	platform/ios/INSTALL.md
#	platform/ios/README.md
#	platform/ios/resources/bg.lproj/Localizable.strings
#	platform/ios/resources/es.lproj/Localizable.strings
#	platform/ios/resources/vi.lproj/Localizable.strings
#	platform/ios/src/MGLMapView.mm
#	platform/macos/macos.xcodeproj/project.pbxproj
#	src/mbgl/text/glyph_manager.cpp
2018-01-04 12:55:19 -06:00
Bruno de Oliveira Abinader
ed5438fc21 [core] Allow prefetching tiles for all source types 2018-01-03 16:58:54 +02: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
ac32b41493 [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 19:41:07 +01:00
Asheem Mamoowala
6a9eec8ed5 Fix CustomLayer context retain count (#10765)
* [core] RenderCustomLayer should de-initialize old context

* [iOS, macOS] Use toll-free bridging to retain/release MGLOpenGLStyleLayer instead of a separate array.
2017-12-20 14:51:30 -08:00
Lauren Budorick
920057c9d6 [core] Better align fill-extrusion vertex layout 2017-12-20 15:17:11 -05:00
Chris Loer
f1f2ebb019 [core] Hook LocalGlyphRasterizer "font family" configuration up to Renderer 2017-12-18 12:17:22 -08:00
Chris Loer
a53818a10b [core] Enable local glyph generation using TinySDF.
- Platform-specific LocalGlyphRasterizer is responsible for deciding which glyphs to rasterize locally and for implementing the rasterization.
 - Default platform implementation doesn't locally generate any glyphs -> no behavior change
 - Unit test uses StubLocalGlyphRasterizer, which returns a single fixed bitmap for all CJK glyphs
 - Rename glyph_loader.test to glyph_manager.test
2017-12-18 12:17:22 -08:00
Chris Loer
2e3e88f027 [core] C++ port of TinySDF 2017-12-18 12:17:22 -08:00
Minh Nguyễn
40f20a1339 [core] Migrated upcase, downcase to platform code
Replaced manual, per-character upper- and lowercasing code with calls to platform-specific code that affects a wider range of characters.
2017-12-14 09:14:54 -08:00
Asheem Mamoowala
f545d21df0 [core] Overzoomed image sources vanish (#10677)
Use z0 tile coordinates instead of screen coordinates to compute ideal zoom for image sources
2017-12-13 12:52:23 -08:00
Chris Loer
3fed2358d6 [core] Include bucket name in queryRenderedSymbols duplicate feature filter
- Port of GL JS PR #5703
 - Fixes issue #10616
2017-12-11 15:05:18 -08:00
Chris Loer
cb380064bb [ios,macos] Darwin implementation of a CoreText-based LocalGlyphRasterizer.
- Changing font weight does not currently appear to be working.
 - Glyph metric extraction code not working; currently unused.
2017-12-11 10:43:00 -08:00
Chris Loer
1661af1cb4 [core] Enable local glyph generation using TinySDF.
- Platform-specific LocalGlyphRasterizer is responsible for deciding which glyphs to rasterize locally and for implementing the rasterization.
 - Default platform implementation doesn't locally generate any glyphs -> no behavior change
 - Unit test uses StubLocalGlyphRasterizer, which returns a single fixed bitmap for all CJK glyphs
 - Rename glyph_loader.test to glyph_manager.test
2017-12-11 10:43:00 -08:00
Chris Loer
730054276e [core] C++ port of TinySDF 2017-12-11 10:43:00 -08:00
Lauren Budorick
a0199efa9a Correct ColorMode::Replace 2017-12-07 13:01:42 -08:00
Asheem Mamoowala
ca9d9bb857 [core] Use wrapped bounds check for CustomTileLoader 2017-12-07 09:53:36 -08:00
Asheem Mamoowala
31a216459c [core] Mark custom geometry tiles stale without clearing data 2017-12-06 19:44:12 -08:00
Konstantin Käfer
f16ecf5907 [core] don't include .cpp file 2017-12-05 15:53:48 +01:00
Konstantin Käfer
8757164ac8 [build] standardize on -fvisibility=hidden for all targets
Enables -fvisibility=hidden for iOS and Linux, and adds a workaround for GCC 6.3-7.1
Adds a GCC 6 build
Enables diagnostics for C files
Fixes a shadow warning in parsedate.c
2017-11-29 17:31:33 +01:00
Konstantin Käfer
2eec5a1980 [core] move HeadlessBackend extension initialization code into Impl 2017-11-29 15:48:51 +01:00
Bruno de Oliveira Abinader
772b909062 [build] Clang-3.8: Explicit mbgl::PlacedGlyph default+copy+move ctor 2017-11-29 16:18:17 +02:00
Thiago Marcos P. Santos
d8bcc943c5 [core] Android + old libstdc++ build fix 2017-11-27 15:54:17 -02:00
Thiago Marcos P. Santos
43d96cd1b9 [core] Fix crash on Qt + Windows + ANGLE
Support for VAO extensions is broken.
2017-11-24 01:30:39 -02:00
Asheem Mamoowala
ba63d06cfc [core] Use Actors for CustomTileLoader invocation from bindings. 2017-11-22 13:56:38 -08:00
Asheem Mamoowala
acae193861 [core] Custom Geometry Sources 2017-11-22 13:56:38 -08:00
Chris Loer
25cfb5863c [core] Symbol cross-fading.
Hold onto tiles after they've been removed from the render tree long enough to run a fade animation on their symbols.
2017-11-17 10:05:15 -08:00
Ansis Brammanis
d69c1c4806 [core] Add unit test for CrossTileSymbolIndex 2017-11-17 10:05:15 -08:00
Chris Loer
c39232a89f [core] Cleanup in response to review comments. 2017-11-17 10:05:15 -08:00
Ansis Brammanis
6b50885c79 [core] Sort child symbol tiles before parent symbol tiles
This is necessary so that when there are mixed zoom levels, child symbols get placed before parent symbols.
2017-11-17 10:05:15 -08:00
Chris Loer
4f0e5374c3 [core] Skip fade animation for placed symbols that are currently offscreen.
Don't mark items that are outside the collision grid range as placed.
Requires new ignore because GL JS issue #5654 allows insertion of symbols outside the CollisionIndex range, and those symbols can cascade in to affect items within the viewport.
2017-11-17 10:05:15 -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
5bdee52e5c [core] Cleanup in response to review comments 2017-11-17 10:05:15 -08:00
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