Commit Graph

85 Commits

Author SHA1 Message Date
Minh Nguyễn
3b546b9646 [ios, macos] Ignore progress updates after suspending
-suspend and -resume are now presumed to be synchronous, even if technically they remain asynchronous under the hood.
2016-09-20 22:34:54 -07:00
Konstantin Käfer
1014a503a2 [build] Upgrade GLFW to 3.2.1, SQLite to 3.14.2 and libwebp to 0.5.1 2016-09-19 14:38:47 +02:00
Justin R. Miller
0bd66d40dd [ios] fixes #6248: properly handle all NSNumber types in filters (#6290) 2016-09-16 11:46:22 -07:00
Brad Leege
d0f9ba4998 [core] #3980 - Switching Core GL instances of map to unordered_map 2016-09-14 16:40:20 -07:00
Jason Wray
83d0b39adb [ios, macos] Remove changelog lines for WAL db change 2016-09-14 15:46:45 -04:00
Minh Nguyễn
b7aa872def [macos] Updated reference to MGLFilterTests 2016-09-09 14:02:56 -07:00
Jesse Bounds
4c8d61abf1 [ios, macos] Put MGLStyleLayer inits in respective classes
Previously, we declared MGLStyleLayer initializers in the MGLStyleLayer
protocol as optional methods. This made it easy to opt in and out
of initializers that did or or did not make sense for the subclass.
However, this approach was dangerous since it was easy for an
application developer to initialize an MGLStyleLayer subclass with an
init method that was actually not implemented in that class causing
an exception at runtime.

This commit moves the init methods that each subclass supports to
each subclass so xcode (and the compiler) help the developer avoid
the previously possible runtime exception.

In addition, a new init method is added that takes the source layer
and passes that on to `mbgl::style:Layer` (but only on classes
where this is possible in core). This allows an application developer
to style a specific source layer (i.e. the contour lines of the mapbox
terrain vector source).

Finally, this refactors MGLStyleLayer classes to use an MGLSource instead of a
string identifier for the source when initializing the style.
2016-09-08 09:17:35 -07:00
John Firebaugh
fe2a26225f [core, ios, android, qt] Observe style layer mutations rather than requiring SDKs to use Map::update
This paves the way for updates to filter and layout properties to trigger a source reload, without each SDK having to participate in the implementation.
2016-09-06 14:29:22 -07:00
Fredrik Karlsson
d77a13eb73 [ios] Added support for filters (NSPredicate)
[ios, macos] cleaned up filters

[ios] added a filter example

[ios] utest filters

[ios, macos] nested predicates

[ios] refactored

[ios] filter -> NSPredicate

[ios] fixed mbgl::Any/AllFilter -> NSPredicate

[ios] translate nested mbgl::NotIn filters

[ios] cleanup and added more utests

[ios] fixed a bug in the None filter conversion and improved utests

[ios, macos] doc

[macos] added missing category

[ios, macos] additional utests

[ios, macos] updated documentation
2016-09-02 22:42:05 +02:00
Konstantin Käfer
1e2189266f [macos] Explicitly link the OpenGL framework for compatibility with macOS Sierra 2016-08-31 15:40:32 +02:00
Minh Nguyễn
d0a0b2ef7e [macos] Typo
[skip ci]
2016-08-25 11:28:00 -07:00
Minh Nguyễn
11f3a587c4 [macos] Synchronized readme w/ install docs
The packaged readme was missing the AppleScript example added to the in-repo installation instructions in 350d015cc2.

[skip ci]
2016-08-25 11:27:12 -07:00
Minh Nguyễn
5836738906 Document -mapViewDidFailLoadingMap:withError: (#6145)
* [macos] Implement -mapViewDidFailLoadingMap:withError:

* [ios] Documented -mapViewDidFailLoadingMap:withError:
2016-08-24 14:47:28 -07:00
Minh Nguyễn
9720f581ff [macos] Avoid negative content insets (#6102)
Fixed an issue in which a map view that doesn’t occupy the entire window would consider its center point to be the window’s center point rather than the view’s.
2016-08-23 18:12:35 -07:00
Jason Wray
a5b089de62 [ios, macos] Move debug mask options to shared header (#6094)
* [ios, macos] Move debug mask options to shared header

* Limit buffer debug modes to macOS

... because these modes use OpenGL features that aren't supported by iOS.

* Try a different tact: exclude "iPhone"

... which is actually all iOS-like devices.
2016-08-23 20:14:22 -04:00
Jason Wray
c034ba4ee1 [ios, macos] Update changelog with database performance note 2016-08-23 13:26:02 -04:00
Minh Nguyễn
44fe8ef7ea [macos] Took NSColor+MGLAdditions private (#5995)
Fixes #5989.
2016-08-21 16:28:16 -07:00
Minh Nguyễn
0a2fec272d [ios, macos] Updated changelogs 2016-08-19 17:33:22 -07:00
Konstantin Käfer
0df60c4651 [core] add ability show visualize the depth buffer to the GLFW and macOS app 2016-08-19 17:41:55 +02:00
Konstantin Käfer
effd853e79 [build] revert macOS deployment target to 10.10 2016-08-19 14:10:27 +02:00
Jason Wray
256689a33d [ios, macos] Make Xcode 7.3 the minimum required version
- Removes nullability shims for Xcode 6.
- Removes MGLTypes.h from files where it was only being used for
  nullability support.
- Accepts that `NS_SWIFT_NAME` is not fully supported by Xcode 7.2 and
  lower.
- Adds documentation about Xcode 7.3 requirement.
2016-08-18 11:35:32 -04:00
Fredrik Karlsson
a202941360 [ios, macos] reuse utility function 2016-08-18 14:26:05 +02:00
Fredrik Karlsson
f7069523b4 [ios, macos] fixes #5974 Move style classes API to MGLStyle 2016-08-18 14:26:05 +02:00
Fredrik Karlsson
5d307d098b [ios, macos] Fixes #5975 Add source getter to MGLStyle 2016-08-18 14:26:04 +02:00
Fredrik Karlsson
2217e05f5e [macos] fixes #5956 remove dead code 2016-08-18 14:26:04 +02:00
Minh Nguyễn
9fe22bc0cd [macos] Moved runtime styling demo to Debug menu
Fixes #6022.
2016-08-17 23:17:40 -07:00
Minh Nguyễn
61df0b1bfa [ios, macos] Use local GeoJSON for runtime styling demo
Also changed the menu item to something more descriptive.

Fixes #6021.
2016-08-17 23:16:59 -07:00
Minh Nguyễn
0062cf2f94 [ios, macos] Added MGLBaseStyleLayer_Private.h to project 2016-08-16 16:48:02 -07:00
Minh Nguyễn
5539a90c48 [ios, macos] Renamed Objective-C++ headers to .h
Also removed a redundant reference to MGLStyle_Private.h in ios.xcodeproj.

Fixes #5952.
2016-08-16 16:46:04 -07:00
Konstantin Käfer
18176605f6 [core] support "scheme": "tms" in TileJSON files 2016-08-16 11:04:30 +02:00
Minh Nguyễn
1daba5d04b [ios, macos] Accept absolute file paths as style URLs (#6026)
It turns out that mbgl::AssetFileSource supports absolute file URLs in addition to relative file URLs. So replace the file: scheme with asset: while percent-escaping as necessary.

Also added amsterdam.geojson to macos.xcodeproj for consistency with ios.xcodeproj.
2016-08-16 10:17:11 +02:00
Minh Nguyễn
52134eb8fd [macos] Link unit test bundle against libmbgl-core (#5994)
Fixes #5990.
2016-08-15 09:11:31 -07:00
Minh Nguyễn
e147887e35 [core, android, ios, macos] Replaced getPointAnnotationsInBounds() w/ queryPointAnnotations() (#5165)
queryPointAnnotations() accepts a screen rectangle instead of a geographic bounding box, so marker hit testing works at the edges of a rotated, tilted map view.

Fixes #5151.
2016-08-12 15:45:18 -07:00
Minh Nguyễn
a3e20bae32 [ios, macos] Updated changelogs 2016-08-11 14:07:38 -07:00
Minh Nguyễn
9a96877742 [ios, macos] Upgraded project build settings for Xcode 8 (#5935)
Set CLANG_WARN_INFINITE_RECURSION and CLANG_WARN_SUSPICIOUS_MOVE as recommended by Xcode 8.
2016-08-11 10:52:18 -07:00
Fredrik Karlsson
2354c87411 Runtime styling API for iOS/macOS (#5727)
* [ios] wip runtime styling

* [ios, macos] Outlined header templates

* [ios, macos] cleanup and use appropiate data types

* [ios, macos] removed refs to mbgl and added convenient color methods on UIColor and NSColor

* [ios, macos] updated header template, included doc string

* [ios, macos] outlined template for layer implementation files

* [ios, macos] moved script to platform/darwin and updated comments

* [ios, macos] Cleaned up the implementation template

* [ios, macos] removed unused function and added support for more datatypes

* [ios, macos] overhauling the type protocols

* [ios, macos] removed unnecessary style classes

* [ios, macos] added support for more types

* [ios, macos] fixed string and number prop values

* [ios, macos] enum getters

* [ios, macos] added removeLayer() and removed unused layer ref

* [ios, macos] fixed remaining layer types and converted style layer into a protocol

* [ios, macos] fixed addLayer() and added example for line layer

* [ios] GeoJSON source now works

* [ios] fixed raster layer and raster source

* [ios] fixed attr prop number and outlined prop function

* [ios] wip functions

* [ios] bool and float function fix

* [ios] cleanup

* [macos] fixed support for macos

* [ios] fixed string functions

* [ios] extended array functions

* [ios] added tests and fixed a few bugs

* [ios] less verbose functions and improved tests

* [ios, macos] Removed unnecessary use of default arguments

Default arguments aren’t supported in Node v4, and they aren’t needed here anyways, because we’re only testing for truthiness.

* [ios, macos] Enum setters

Rely on a macro instead of category methods to specialize the setter implementation for enum attributes, since generic types are disallowed in Objective-C method signatures and mbgl::style::PropertyType must be type-qualified.

* [ios, macos] Got macOS closer to parity w/ iOS

Added various classes and test classes to the macOS workspace. Also fixed lots of compiler errors and updated macosapp runtime styling example to use the new dictionary syntax for function stops.

Updated all conversions from Objective-C stops to C++ stops to enumerate over the dictionary. Fixed compiler errors in enum setter implementations.

Also corrected path to script in generated file comments.

* [ios, macos] Added EJS templates to project

* [ios, macos] Code formatting

Made code format more consistent.

* [ios, macos] Spelled out ID

Cocoa convention is to always spell out “ID” as “identifier”, in part to avoid confusion with the id keyword. Also, URL is capitalized in most contexts, including property names.

* [ios, macos] Grouped related headers together

* [ios, macos] Cleaned up layer transformation

Also added support for converting background layers into Objective-C.

* [ios, macos] Cleaned up tests

Also made the tests work on macOS by introducing a new window to host the map.

* [ios, macos] Replaced TODOs with #warnings

* [ios] convert array based property values

* [ios, macos] color function/undefined getter

* [ios, macos] fixed function/undefined getters for bool and float properties

* [ios, macos] more function/undefined property getters

* [ios, macos] more type conversion and cleanup

* [ios, macos] disable macos runtime styling tests for now

* [ios, macos] cleaned up style code script

* [ios, macos] more type conversion

* [ios] added a base layer to handle visibility min/max zoom

* [macos] fixed base layer

* [ios, macos] use accessor methods

* [ios, macos] cleanup

* [ios, macos] add geojson to ios and macos

* [macos] rebase fix

* [ios, macos] fixed enum getters and added tests for enums

* [ios, macos] added an update method to base layer

* [ios, macos] added some documentation

* [ios, macos] docs

* [ios, macos] removed refs to filters for now

* [ios, macos] various tail work

* [ios, macos] missing import and incorrect type
2016-08-11 13:14:45 -04:00
Konstantin Käfer
131cd8a547 [build] Fix Qt4 build on OS X 2016-08-05 11:42:22 +02:00
Konstantin Käfer
95b6d48b71 [build] use cmake script bundled with Mason 2016-08-05 11:42:22 +02:00
Konstantin Käfer
163fc3c113 [build] fix various CI builds 2016-08-05 11:42:22 +02:00
Konstantin Käfer
2b59061199 [build] add Xcode project for Qt builds 2016-08-05 11:42:22 +02:00
Konstantin Käfer
692fe1f3ff [build] switch to CMake
This is very much a work in progress.
2016-08-05 11:42:22 +02:00
Minh Nguyễn
ebadf94b37 [macos] Avoid following symlinks copying framework (#5850)
Use ditto to avoid following symlinks when copying the framework into place.

Fixes #5818.
2016-08-02 22:35:10 -07:00
Justin R. Miller
de0cb554d6 fixes #5771: adds dates to releases in changelogs 2016-07-27 13:26:01 -07:00
Vladimir Agafonkin
9ecc0d9597 GeoJSON point clustering (#5724)
* add supercluster dependency
* prepare GeoJSONTile for Supercluster
* prepare GeoJSONSource for accepting options
* try removing mbgl::GeoJSON
* fix setGeoJSON types
* add GeoJSONSource getURL
* add geojson to include path
* add Supercluster index in GeoJSONSource
* fix GeoJSONSource getZoomRange
* bring back mbgl::GeoJSON header
* fix tidy warnings hopefully
* try test-suite with enabled cluster test
* fix formatting in clustering-related files
2016-07-27 20:18:41 +03:00
Bruno de Oliveira Abinader
26a9213f6e [build] Upgrade geojson-vt-cpp@6.1.2 2016-07-26 16:35:29 +03:00
Jason Wray
4dd734f040 [macos] Add showAnnotations: methods (#5749)
SDK
- Ported `showAnnotations:animated:` and `showAnnotations:edgePadding:animated:` from the iOS SDK.

Demo App
- Added "Show All Annotations" debug menu item with ⇧⌘A shortcut key.
- Disabled "Add Animated Annotation" debug menu item when the annotation already shown.
2016-07-21 16:35:59 -04:00
Bruno de Oliveira Abinader
000539af82 [ios,macos,node] Updated changelog about debug options no-ops in release mode 2016-07-20 12:48:52 +03:00
Minh Nguyễn
53131def65 [core] Fixed test build errors
Missed this bad merge from #5729.
2016-07-19 15:26:09 -07:00
Minh Nguyễn
a53dfcd675 [ios, macos] Updated changelogs
Updated changelogs for #5723, #5554.
2016-07-19 12:08:24 -07:00
Minh Nguyễn
1bc4f0e027 [ios, macos] Offline storage size API
Added a property to MGLOfflineStorage that indicates the disk space occupied by all cached and offline resources.

Fixes #5580.
2016-07-18 22:04:33 -07:00