Commit Graph

415 Commits

Author SHA1 Message Date
Ansis Brammanis
b4b56c951e increase precision for coordinate conversions
This fixes the earthquakes while panning at high zoom levels.

Cherry-picked from 9607171612c4a40e41eddaff5230ad571571a5b9 on the perspective-improved-gestures branch.
2015-09-11 11:56:25 -07:00
Justin R. Miller
0d899df9dd fixes #1675: abstract annotation tile refresh check/render; trigger post-sprite/sprite store load 2015-09-08 18:03:10 -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
Bruno de Oliveira Abinader
0ff7cf20e9 Get rid of MapData::{get,set}NeedsRepaint 2015-09-02 23:20:47 +03:00
Bruno de Oliveira Abinader
0b501e0566 Substitute nudgeTransitions with async view invalidation 2015-09-02 23:20:46 +03:00
Bruno de Oliveira Abinader
e920328223 Provide view invalidation call coalescion via uv_async_t 2015-09-02 23:20:46 +03:00
Bruno de Oliveira Abinader
227776dee0 Style no longer requires mainloop access 2015-09-02 23:18:29 +03:00
Mike Morris
45eb197bd3 remove debug logging and whitespace [skip ci] 2015-09-01 16:46:57 -04:00
John Firebaugh
55d25a80a7 In still mode, don't load resources until a render request is made 2015-08-31 18:09:11 -07:00
John Firebaugh
abc1c84fb8 Merge branch 'master' into node 2015-08-31 16:45:21 -07:00
Mike Morris
6bfda4fcef local nvm? 2015-08-28 15:49:25 -04:00
Minh Nguyễn
0e456940b9 Merge branch 'master' into perspective-without-y-flip 2015-08-25 14:13:16 -07:00
Mike Morris
4540c3c0e8 View::swap -> View::beforeRender View::afterRender
To be able to resize the framebuffer on the map thread
in HeadlessView.
2015-08-25 14:39:49 -04:00
Bruno de Oliveira Abinader
765c4695d8 Revert "only update the render order array when there are changes to tiles"
This reverts commit fd98607c5f.

Fixes #2163.
2015-08-25 11:36:10 -07:00
Ansis Brammanis
36d71c95dc move the point origin back to bottom-left 2015-08-25 11:59:02 -04:00
Ansis Brammanis
51c93867ae fix LatLng --> point for perspective views 2015-08-24 18:41:51 -04:00
Ansis Brammanis
99c5976498 port minor collision code cleanup, fix #1705
https://github.com/mapbox/mapbox-gl-js/pull/1261
2015-08-24 18:41:51 -04:00
Ansis Brammanis
14dee43a71 add map.setPitch(pitch) and map.getPitch() 2015-08-24 18:41:51 -04:00
Ansis Brammanis
9e68e49c89 fix depth clipping in perspective view
The depth range is now set slightly differently. Both ends of the range
are shifted for each layer to solve some precision issues.

Some layers draw multiple things at different depths. For example, fill
layers draw fills and antialiasing separately. To handle this case, I
added setDepthSublayer(n) which a
2015-08-24 18:41:51 -04:00
Ansis Brammanis
0d68c4fedf load correct covering tiles in perspective view
port pointCoordinate from -js to convert screen points to tile
coordinates correctly in perspective view.
2015-08-24 18:41:51 -04:00
Ansis Brammanis
bc92c2de39 fix symbol collision detection in perspective view 2015-08-24 18:41:50 -04:00
Ansis Brammanis
2535e669e2 hacks to see stuff 2015-08-24 18:41:50 -04:00
Ansis Brammanis
8d22e2bf01 port perspective projection matrix from -js 2015-08-24 18:41:50 -04:00
John Firebaugh
0451aca37e Merge branch 'v8' 2015-08-24 10:47:30 -07:00
Lucas Wojciechowski
e97662972f Support v8 sprite, glyph, and style mapbox:// urls 2015-08-21 14:39:26 -07:00
Konstantin Käfer
fd98607c5f only update the render order array when there are changes to tiles 2015-08-20 16:13:46 -04:00
Ansis Brammanis
231e83b450 reverse label priority order 2015-08-20 11:59:08 -07:00
Ansis Brammanis
60e9712916 remove text-max-size and icon-max-size
port https://github.com/mapbox/mapbox-gl-js/pull/1419
2015-08-20 11:59:08 -07:00
Bruno de Oliveira Abinader
98534631e0 Add circle render type
As specified in:
https://github.com/mapbox/mapbox-gl-style-spec/blob/v8-circle/reference/v8.json

Part of #1740.
2015-08-20 11:59:07 -07:00
Tom MacWright
d1100f34de Rename some style properties
symbol-min-distance ⇢ symbol-spacing
background-image ⇢ background-pattern
line-image ⇢ line-pattern
fill-image ⇢ fill-pattern
2015-08-20 11:58:57 -07:00
Konstantin Käfer
bb0ae37c25 disable debugging groups in non-debug builds
Use a macro to completely remove all instantiations of mbgl::gl::debugging::group so that we aren't executing the code to generate the arguments to the object instantiation
2015-08-19 18:21:12 -04:00
Bruno de Oliveira Abinader
fa18f1afd0 Trigger a view invalidation upon resume
Causes view to repaint when returning from pause state, fixing the black
screen perceived in some scenarios.

Fixes #2071.
2015-08-19 04:54:07 -04:00
Bruno de Oliveira Abinader
5ff855bb00 Fix Update flags in mbgl::Transform
Transform::{_moveBy,_setAngle} were returning Update::Nothing, causing
the render to not repaint. Replacing with Update::Repaint fixes the
issue.

Fixes #2036.
2015-08-13 10:17:08 +03:00
Bruno de Oliveira Abinader
ac9d5886f0 Added operator implementations for mbgl::Update enum class 2015-08-13 10:12:48 +03:00
Konstantin Käfer
21ec505648 add benchmark mode that shows the real frame time rather than the vsync time 2015-08-11 16:40:40 +03:00
Konstantin Käfer
0a527f623e don't constantly repaint by setting needsRepaint to false
fix by @brunoabinader
2015-08-10 22:39:08 +03:00
Minh Nguyễn
bea457697a Ignore tile URL sharding
The source returns sharded tile URLs, but sharding doesn’t buy us anything on native platforms, so always grab the first.

ref mapbox/mapbox-gl-native#2007
2015-08-06 10:37:46 -07:00
Bruno de Oliveira Abinader
fa4636ffe4 Map::nudgeTransitions no longer depends on client information
Clients no longer need to provide data (eg. if gesturing or in a custom
animation) to Map::nudgeTransitions().

Upon MapContext::renderSync(), a new atomic bool 'needsRepaint' in MapData
allows thread-safe communication between Map and MapContext.
2015-08-05 15:19:00 +03:00
Bruno de Oliveira Abinader
9fd7e883a7 Coalesce view invalidation calls
Do not call for view invalidation until painter has rendered a new
frame.
2015-08-05 15:19:00 +03:00
Bruno de Oliveira Abinader
492bcf0bd7 Added Update::Repaint 2015-08-05 15:19:00 +03:00
Bruno de Oliveira Abinader
58357b7964 Removed Transform::needsTransition()
Transform::updateTransitions() already checks if there is a callback to
update transitions.
2015-08-05 15:19:00 +03:00
Bruno de Oliveira Abinader
0eb7effad7 Make MapContext use StillImageCallback definition from Map 2015-08-05 15:19:00 +03:00
Konstantin Käfer
78ec33320f don't use certain STL functions
some functions defined in <cmath>, as well as std::to_string aren't available on GNU's STL for some platforms, e.g. Android
2015-08-04 14:08:19 +02:00
Bruno de Oliveira Abinader
58b93553c1 Replace size() with empty() whenever possible
Before C++11, std::list's implementation of size was O(n). It should be
all O(1) now, but it is probably still a good idea to use empty() to
emphasize the intend.
2015-07-29 11:03:47 +03:00
Bruno de Oliveira Abinader
38f3bed63e Export default transition delay in Map public API
Added a setter/getter for default transition delay, in the same fashion
as the default transition duration.

Spin-off from #1888. Fixes #302.
2015-07-21 18:02:09 +03:00
Bruno de Oliveira Abinader
784eb35512 Revert "Revert "split renderSync and transition nudging to allow client view syncing""
This reverts commit 263f9fad30.
2015-07-20 21:59:13 +03:00
Bruno de Oliveira Abinader
263f9fad30 Revert "split renderSync and transition nudging to allow client view syncing"
This reverts commit b8388168dd.

It seems 'nudgeTransitions()' is no longer necessary as #1548 has fixed the update issues.
2015-07-20 17:07:55 +03:00
Bruno de Oliveira Abinader
0753aad57b Check for pending animations or transitions when scheduling another render pass
In continuous mode, we need to check if there are any pending animations or
transitions so we can properly tell the client application that another render
pass is required.
2015-07-20 14:38:19 +03:00
Thiago Marcos P. Santos
c6e58515fc Keep updating until all the tiles are State::parsed
This is needed because of a race that can occur now that we
requests Glyphs from the Map Thread:

The glyph might arrive at the moment a tile is being parsed
and they won't be notified again of any new data, remaining
forever at the partial state.
2015-07-16 19:38:38 +03:00
Minh Nguyễn
1f78d28516 Merge branch 'release-v0.5.0' 2015-07-14 10:49:52 -07:00