Commit Graph

219 Commits

Author SHA1 Message Date
Minh Nguyễn
35aeb06fe2 [ios] Add SQLite, zlib linker flags 2015-12-22 16:15:51 -08:00
John Firebaugh
b60b6c47c0 [core] Merge SQLiteCache into the platform library
OfflineFileSource will depend on SQLite too.
2015-12-22 12:09:14 -08:00
John Firebaugh
ab0efe5d00 [core] Move OnlineFileSource to platform
Preparation for OfflineFileSource which depends on SQLite
2015-12-22 12:09:14 -08:00
John Firebaugh
a7e4e6bb1c [ios] Move source to src folder, matching osx 2015-12-17 10:16:22 -08:00
John Firebaugh
2b782308e5 [android] Simplify structure for native files 2015-12-16 16:06:45 -08:00
Minh Nguyễn
350cafb903 Revert "Revert "[ios] Custom style layer""
This reverts commit 081e4e4451.
2015-12-16 15:48:55 -08:00
John Firebaugh
0db9f229f2 [android] Move includes to platform subdirectory 2015-12-16 14:52:29 -08:00
John Firebaugh
081e4e4451 Revert "[ios] Custom style layer"
ec9a4cd328
2015-12-16 14:05:54 -08:00
Minh Nguyễn
ec9a4cd328 [ios] Custom style layer
Exposed Map::addCustomLayer() publicly as an undocumented, block-based API. This change avoids the terms “layer”, “initialize”, “render”, and “altitude” because they overload existing terminology in the SDK, UIKit, or MapKit. (“Layer” is qualified as “style layer”.) There are outstanding questions about ARC memory management, but this approach works in both Objective-C and Swift for pure OpenGL programming.

Added a demo to iosapp that draws a green layer below any labels in Mapbox Streets.
2015-12-16 11:03:54 -08:00
Romain Quidet
02a32b55e4 2210: MGLAnnotationImage image can be update 2015-12-15 16:36:17 -08:00
Minh Nguyễn
0fb2b855a4 [osx] Map camera
Shared MGLMapCamera between iOS and OS X. Unfortunately -camera and -setCamera: implementations need to be copy-pasted for now.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
bab3935431 [osx] Fixed standalone launch of osxapp (and run-xosx)
Mapbox.framework needs to be embedded in the application bundle.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
ea57be5598 [osx] Documentation comments for public classes
Added documentation comments for all the public headers that aren’t being shared with iOS.

Removed an animated: parameter from -selectAnnotation: and -deselectAnnotation:: because callout popovers may extend beyond the entire window, there is no need to scroll the map to make the entire callout visible.

Added missing geometric conversion methods.

Renamed -mapView:regionWillChangeAnimated: et al. to say “camera” instead of “region”. “Region” leaves ambiguity about whether properties like rotation and pitch trigger this method. “Camera” associates these methods with the camera property, which seems apt.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
47fb5e820b [osx] Moved Mapbox.{h,m} into framework proper; set version variables 2015-12-13 17:26:53 -08:00
Minh Nguyễn
df0511af18 [osx] Build framework based on static library 2015-12-13 17:26:53 -08:00
Minh Nguyễn
0cab7809eb [osx] Rewrote platform-osx and osxapp
platform-osx now vends a real NSView subclass, MGLMapView, that is readily embedded inside a Cocoa application for OS X. MGLMapView is backed by an NSOpenGLLayer for optimal performance and integration with other layer-backed views. It supports keyboard shortcuts and several gestures and hosts attribution, zooming, and rotation controls as subviews. osxapp is now a bona fide Cocoa application that embeds MGLMapView inside a XIB. osxapp has preferences and a share button for tight integration with custom styles.

Enabling asynchronous rendering would be more consistent with iOS but increases CPU usage so much, even when idle, that it isn’t worth any performance gain. The bigger issue is that VAOs aren’t being used.

make xpackage creates a static library similar to the one created by make ipackage. make clean cleans additional places where build output ends up.

The OS X minimum deployment target has been increased from 10.9 to 10.10. osxapp’s window has a full size content view, which requires 10.10. Lightweight generics require iOS 9+ and OS X 10.11 regardless, because it was only in that release that Foundation collection classes started adopting lightweight generics.

Shuffled files around and refactored annotations so that iOS and OS X share a good chunk of the annotations code, which now takes advantage of polymorphism. MGLMapView can now display annotations but cannot yet select them. In osxapp, a long press drops a pin, and so does the map view’s context menu.

Annotations have NSPopovers as callouts, and their view controllers can be customized. Annotation image alignment rects are respected for hit testing purposes and for positioning the callout anchor. Callouts in osxapp demonstrate the use of bindings to keep callouts in sync with underlying model objects.
2015-12-13 17:17:35 -08:00
John Firebaugh
0ff9295ca8 [core] Move linux and osx to platform subdirectory 2015-12-10 16:50:39 -08:00
Konstantin Käfer
655b777635 [core] don't rebuild shaders unless they change 2015-12-10 11:59:51 -08:00
Justin R. Miller
41e26394b6 fixes #3180, fixes #3113: bring back -ObjC linker flag
Reverts a tiny sliver of 423cfc1
2015-12-03 15:52:03 -08:00
Thiago Marcos P. Santos
3d07aaf95d [core] Don't link with libuv on components not using it directly 2015-12-01 11:49:02 +02:00
Thiago Marcos P. Santos
ab6477d906 [core] Removed libuv dependency from AssetZipContext 2015-12-01 11:49:02 +02:00
Thiago Marcos P. Santos
9b36c19aeb [core] Introduce Timer abstraction 2015-12-01 00:00:09 +02:00
Thiago Marcos P. Santos
d422c8cac4 [core] Abstract main loop inside RunLoop class 2015-12-01 00:00:09 +02:00
Thiago Marcos P. Santos
123c5df922 [core] Introduce the AsyncTask 2015-12-01 00:00:09 +02:00
John Firebaugh
0c1e378bc9 [core] Rewrite image handling
* Consolidate Image and StillImage
* Typecheck unassociated vs premultiplied images
* Rewrite default platform image decoding implementation
2015-11-25 15:57:36 -08:00
Justin R. Miller
f5a0586408 move from Fabric framework to bare headers per Twitter recommendation
Rolls back part of #2742
2015-11-09 17:35:43 -08:00
Justin R. Miller
423cfc11e5 refs #2966: remove -ObjC linker flag & bring in categories via other means 2015-11-06 16:16:50 -08:00
Mike Morris
dfb36d6231 [core] move mbgl.gyp to gyp directory
So npm won't clobber binding.gyp, refs
https://github.com/npm/npm/issues/10243
2015-11-04 11:34:35 -05:00
Lucas Wojciechowski
da569c266b [node] enable npm to build mapbox-gl-native package from source
This reverts commit 311bf93abe.

more explicit require paths in tests
2015-11-04 11:34:35 -05:00
Mike Morris
79a5a96037 [core] mason geojsonvt-2.1.6.3
- [osx] set -fvisibility-inlines-hidden in gyp/common.gypi to silence
  mismatched visibility linker warnings
- [linux] set cxx_host in GYP_FLAGS to set -fabi-version=0 on gcc builds
  to use clang-built mason binaries
- [ios] update symbol visibility for iOS tests
- [ios] link libgeojsonvt.a in iOS tests xcodeproj
  - add libgeojsonvt.a to General -> Linked Frameworks and Libraries
  - add mason_packages (recursive) to Build Settings -> Library Search Path
- [ios] add libuv and geojsonvt first in iOS libtool smush to ensure symbols
  are found by later compilation units where they are undefined
2015-11-02 18:41:34 -05:00
Minh Nguyễn
557b8afb7c [core][iOS] Source iOS styles from default_styles
Moved mbgl::util::default_styles to a more appropriate location, where iOS platform code can also find it. Moved -[MGLMapView bundledStyleURLs] (which is now deprecated) and the style switcher in iosapp to default_styles.

Added a collection of convenience methods for getting style URLs. It makes little sense to layer an enum atop this, as MapKit does, because MGLMapView styles aren’t limited to this set. A good analogy is UIColor. This also makes for a good entry point for future runtime styling APIs.

Introduced independent constants for each default style, because it’s more common to need access to a particular style than to iterate over them. This fact is apparent in the MGLStyle class, which now uses macros and assertions to ensure that it’s kept up-to-date with changes in default_styles.

/ref #1462
2015-10-30 13:09:37 -07:00
Leith Bade
abf93c008b [core] Remove bundled styles.
Fixes #2239
2015-10-30 13:09:04 -07:00
Leith Bade
39911e581c [android] Move android files
Fixes #2032
2015-10-25 01:07:16 +11:00
Justin R. Miller
144a4714f0 refs #2684: integrate Twitter Fabric 2015-10-23 14:13:56 -07:00
Jason Wray
28be82c1c1 [ios] remove CoreTelephony dependency
Cellular carrier name and connectivity level will now only be sent if
the developer independently chooses to link the CoreTelephony framework
in their app.
2015-10-19 13:52:28 -04:00
Mike Morris
071dbcf44c [core] c++1y -> c++14 2015-10-14 11:36:28 -04:00
John Firebaugh
2066295e35 Install RapidJSON from mason 2015-10-01 11:40:47 -07:00
Mike Morris
b46c102eb0 mason variant@1.0 2015-09-30 15:34:40 -07:00
Justin R. Miller
15cffcd3a2 fixes #2350: remove iOS-specific SQLite cache wrapper 2015-09-23 15:46:32 -07:00
Lucas Wojciechowski
311bf93abe Revert "[node] Enable npm to build mapbox-gl-native package from source"
This reverts commit 4e1ead344b.
2015-09-16 16:27:53 -07:00
Lucas Wojciechowski
4e1ead344b [node] Enable npm to build mapbox-gl-native package from source
- Allow node bindings to be built if git submodules cannot be checked out
 - Made geojsonvt a mason package instead of a git submodule
 - Use globally installed mason if it cannot be checked out via git submodules
2015-09-15 11:17:53 -07:00
Minh Nguyễn
0a172a21fd CameraOptions
Plumbed camera options all the way through to MGLMapView. Added a method that lets you specify a direction in addition to center point and zoom level.

Added Map::jumpTo() for parity with mapbox-gl-js. Replaced usage of Map::setLatLng() and Map::setLatLngZoom() with Map::jumpTo() or Map::easeTo() within MGLMapView. Replaced MGLMapView.pitch with MGLMapCamera for setting all supported degrees of freedom simultaneously. Simultaneously move and rotate with course.

Support customizable timing functions on iOS.

iosapp now persists an archived MGLMapCamera instead of separate viewpoint properties and also synchronizes user defaults on termination. This change implements persistence entirely in Objective-C, eliminating the use of the Objective-C++ implementation.

Fixes #1643, fixes #1834. Ref #1581.
2015-09-07 09:22:52 -07:00
Jason Wray
6929dcec96 Add resources folder to iOS Xcode project, exclude README from .bundle 2015-09-02 13:17:53 -04:00
Justin R. Miller
3f99f5e712 GL is the library, SDK is the product 2015-08-21 11:01:07 -07:00
Leith Bade
0cbe7e07f5 Use OkHTTP to implement HTTPContext on Android.
Closes #823
2015-08-11 11:59:08 +10:00
Konstantin Käfer
e6053aa547 Make build system architecture agnostic to remove Android special case 2015-08-04 14:08:58 +02:00
Konstantin Käfer
da4c62087d include $CFLAGS into build 2015-08-04 14:08:20 +02:00
Justin R. Miller
5ab58deb44 Cocoa custom marker imagery API 2015-07-08 19:46:03 +02:00
Minh Nguyễn
1d11624efd Test fit to bounds; added MGLCoordinateBounds functions
Added a bunch of functions to work with MGLCoordinateBounds in a separate header analogous to MKGeometry.h. Added resolution-independent tests for common fit to bounds scenarios.
2015-06-25 21:54:57 -07:00
Justin R. Miller
bd0bf294bf squash of #1655: shape annotations support for core & iOS 2015-06-15 18:30:39 -07:00