Commit Graph

3190 Commits

Author SHA1 Message Date
Thiago Marcos P. Santos
b5facd35bc Scope the Map thread to an Environment
Also, replace manual thread type checks with Environment::currentlyOn().
2015-03-18 12:51:33 +01:00
Thiago Marcos P. Santos
b52aab5f7c Introduce the ThreadInfoStore and Environment::Scope
The Environment will now keep track of every thread that is running
within a Environment::Scope. Once the Scope object is created, it will
automatically register the thread to the ThreadInfoStore with some
additional information and it will automatically deregister as the stack
frame rewinds (which can be useful for Threads that are temporally in
use by an Environment like Workers).

The ThreadInfoStore could be using the thread-local storage, but I think
that making the Environment aware of what threads are associated to it
can be useful for writing a mechanism for posting messages between threads.

Withing a Scope, the Environment associated to the thread can be queried
at any time which will save us from juggling a reference to the
Environemnt around. Finally, the type of thread (Main, Map, etc) can
also be queried at any moment to make sure a piece of code is running
on the desired thread.
2015-03-18 12:38:39 +01:00
Justin R. Miller
7b996012a5 Merge pull request #1012 from mapbox/1011-bundle
Look inside MapboxGL.bundle when present
2015-03-17 20:30:23 -07:00
Justin R. Miller
d47b29813e Merge pull request #1021 from mapbox/point-annotations-api
refs #893 #992: point annotations API
2015-03-17 20:01:38 -07:00
Justin R. Miller
93abf881fb feature() -> getFeature() to clear up ambiguity / Linux compiler error 2015-03-17 19:25:32 -07:00
Justin R. Miller
02cccfe7e8 properly clean up tile annotations on delete 2015-03-17 17:46:33 -07:00
Justin R. Miller
76f8a3d846 fix passing of annotation manager 2015-03-17 17:45:09 -07:00
Justin R. Miller
e049ce6df1 refs #893 #992: point annotations API 2015-03-17 17:30:24 -07:00
Brad Leege
1ce51a17e7 Merge pull request #1013 from mapbox/android-22
Update to latest API 22 build tools
2015-03-17 09:21:17 -05:00
Konstantin Käfer
36cee94e61 Merge pull request #843 from mapbox/843-fix-sprites
sprite images  missing on > 2.0 scale factors
2015-03-17 12:54:41 +01:00
Konstantin Käfer
48c55af5c1 fix sprites for pixel ratios that are not 1 and 2
- OpenGL ES 2 doesn't allow NPOT textures with wrap-around
- The Sprite object reported the map's pixelRatio, even though it loaded @2x assets
- Copying icons from the sprite into the atlas now uses bilinear scaling to scale up to the actual size
2015-03-17 12:30:40 +01:00
Leith Bade
9c907e78ac Update to latest API 22 build tools 2015-03-17 13:59:05 +11:00
Minh Nguyễn
3ba72da74f Look inside MapboxGL.bundle when present
Fixes #1011.
2015-03-16 16:22:16 -07:00
Minh Nguyễn
0b1faba369 Merge pull request #1009 from mapbox/1ec5-967-readme
Add iOS project setup walkthrough including dependencies
2015-03-16 15:12:15 -07:00
Minh Nguyễn
8548927f3b Added iOS project setup walkthrough
Lists the dependencies needed for linking.

Fixes #967.
2015-03-16 12:29:57 -07:00
Konstantin Käfer
0d8b3aa5f7 Merge pull request #1006 from mapbox/linux_build_fix
Link with X11 explicitly
2015-03-16 12:10:23 +01:00
Thiago Marcos P. Santos
d66b24f58f Link with X11 explicitly
We are using X11 symbols directly like XFree() so we need to link
with it explicitly. Previously these symbols were being resolved
somehow by libGL, but apparently they are now hidden - good - in
the custom version we are using since 5e40f72b7.

Fixes #1005.
2015-03-16 10:54:34 +02:00
John Firebaugh
0c985c024b Revert "Move atlas ownership to Style"
This reverts commit bffee07154.
2015-03-13 13:05:32 -07:00
John Firebaugh
6325f1e25a Index glyph use by tile pointer value, not tile ID
There can be multiple tiles with the same ID, but from different
sources.

Fixes #957
2015-03-13 10:55:49 -07:00
John Firebaugh
96682a02af Remove unused declaration 2015-03-13 10:55:49 -07:00
John Firebaugh
998092e5b2 Remove needless indirection 2015-03-13 10:55:49 -07:00
John Firebaugh
762e4bdfbe Clean up GlyphAtlas 2015-03-13 10:55:49 -07:00
John Firebaugh
bffee07154 Move atlas ownership to Style
This follows gl-js and just makes sense -- whenever the style changes
the atlases should be blown away.

Refs #957
2015-03-13 10:55:47 -07:00
Justin R. Miller
c36522e2a0 Merge pull request #1000 from mapbox/ios-set-classes
iOS setAppliedStyleClasses -> setStyleClasses
2015-03-13 09:10:27 -07:00
Justin R. Miller
bcc4c9e78d iOS setAppliedStyleClasses -> setStyleClasses 2015-03-13 08:02:02 -07:00
Konstantin Käfer
069505fe75 fix rare issue that had the notify and cancel callbacks called in the wrong order 2015-03-13 15:30:10 +01:00
Konstantin Käfer
5e40f72b7c scripts for running linux tests with docker 2015-03-13 12:06:11 +01:00
Justin R. Miller
5225a2ce5b Merge pull request #994 from mapbox/990-paintItBlack
paint it black
2015-03-12 22:04:05 -07:00
John Firebaugh
ba933b3f45 Merge pull request #984 from mapbox/log_stderr_printf
Get rid of printf and cout by using Log::*
2015-03-12 15:39:07 -07:00
Brad Leege
d659517e7f #990 - Changing to clear color instead of black 2015-03-12 17:17:08 -05:00
Brad Leege
a4e0732a78 #990 - Changing background color from white to black 2015-03-12 17:15:28 -05:00
Minh Nguyễn
4c7939b96e Avoid building a redundant array
Followup to 28e28934c7.
2015-03-12 09:25:39 -07:00
Anthony Picciano
28e28934c7 Remove the file extensions from the bundledStyleNames method 2015-03-12 16:29:45 +01:00
Konstantin Käfer
74ef8840ce tolerate missing sprites
Do not try to fulfil the promise twice in case both requests to the sprite JSON and image fail. this will crash the program. Instead, we always continue with the promise, instead of throwing an exception. This allows the program to continue parsing tiles, but without an image sprite available. This means the map will render, but without the sprite images
2015-03-12 15:27:56 +01:00
Thiago Marcos P. Santos
124b49562d Get rid of printf and cout by using Log::*
Use our logging system that will route the message accordingly on
the target platform.

Fixes #613
2015-03-12 14:19:32 +02:00
Thiago Marcos P. Santos
2b6afe6a54 Merge pull request #972 from mapbox/log_cleanup
Refactoring of the log system
2015-03-12 14:18:25 +02:00
Konstantin Käfer
4e8036311d Merge pull request #838 from mapbox/838-fix-rotate-flicker
black flicker on iOS device rotation
2015-03-12 12:55:59 +01:00
Thiago Marcos P. Santos
79f3149d9d Update the FixtureLog
Now the FixtureLog is an Log::Observer instead of a backend. The
observer can sniff and filter log messages, that can be used
for fail a test if it emits a warning for example.
2015-03-12 13:28:41 +02:00
Thiago Marcos P. Santos
51bc265db3 Make the logging system static
No initialization is needed anymore and we can use the logging functions
safely at any point of the code (threading is not handled though, so you
might get multiplexed messages if you log from two threads
simultaneously).
2015-03-12 13:28:41 +02:00
Thiago Marcos P. Santos
2948e7d121 Simplify the logging mechanism
Move the implementation of the more specialized methods to the base
class and let the platform implement only the most generic method that
takes all the possible arguments.

These specialized methods will then map to the generic implementation
that must be provided by the platforms we support.
2015-03-12 13:28:40 +02:00
Konstantin Käfer
47ede853c4 fixes black flicker on rotating the device
fixes #838

instead of rendering ad libitum on the map thread, we are now driving rendering from the UI thread on iOS via the map.renderSync() function. There are still white bars during the rotation, but the general content of the view is kept visible.

- upgrades GLFW to 3.1
- removes swapped/needsSwap in favor of a more explicit scheme
- View#invalidate() now replaces View#swap() and is called whenever the View needs to trigger a rerender. GLFW and Android to this right away, while iOS goes back to the main thread and does the Map redrawing as part of the GLKView update
- sets all iOS deployment targets to 7.0
- disables SQLite3 version check, since the library version changed on iOS 8.2
2015-03-12 12:16:38 +01:00
Konstantin Käfer
ba9d242069 Merge pull request #982 from mapbox/982-android-only-upload-existing-apks
Build $(BUILDTYPE) apk file and only upload those
2015-03-12 12:15:33 +01:00
Konstantin Käfer
d632816970 only upload the artifact we're building
fixes #982
2015-03-12 11:20:12 +01:00
Konstantin Käfer
fc8fd3af80 build the BUILDTYPE with gradle as well 2015-03-12 10:52:48 +01:00
John Firebaugh
126b7778aa Merge pull request #976 from mapbox/968-sqlite-version-check
Relax sqlite version check to major version only
2015-03-11 13:49:34 -07:00
Brad Leege
4549ec27e1 Merge pull request #979 from mapbox/gradleSpeed
Gradle Speed
2015-03-11 15:35:06 -05:00
Brad Leege
fceb36c741 #978 - Creating android-project task as an alias for android-lib to mirror iproj functionality 2015-03-11 15:08:41 -05:00
Brad Leege
5f4a2a66c7 #978 - Changing gradle build to gradle assembleRelease for make android 2015-03-11 14:32:23 -05:00
John Firebaugh
bb73dbcd30 Relax sqlite version check to major version only
iOS 8.2 updates the included SQLite version to 3.8.4, while iOS 7.0 up
to iOS 8.1 provides version 3.7.13. When compiling with the 8.2 SDK and
running on 8.1 or below, or vice versa, a strict check fails.

Fixes #968.
2015-03-11 10:21:26 -07:00
John Firebaugh
24c7239e35 Merge pull request #971 from mapbox/optimize-vt
Don't copy VT keys / values into each feature
2015-03-11 10:10:22 -07:00