| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This removes the only boost dependency from public headers.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also implement a Timer and AsyncTask based on Android's Looper.
|
|\ |
|
| |
| |
| |
| | |
We don't expect toString to be called with a null std::exception_ptr. But if it is, we'd prefer not to terminate the process in release builds.
|
| | |
|
| |
| |
| |
| | |
boost's crc64 breaks on iOS
|
| |
| |
| |
| |
| |
| | |
This new code can be used for rendering on the Main thread
while it will also work for rendering on the Map thread
before we make the switch. Needed by #2909.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Simplify LatLng::{wrap,unwrapForShortestPath} code, avoiding duplicated
code between Transform::{latLngToScreenCoordinate,easeTo,flyTo}.
Added unit tests for camera usage in Transform to detect cases like e.g.
crossing the antimeridian as a shortest path between two coordinates.
Transform::flyTo precision loss to be handled in #4298.
|
|/ |
|
| |
|
| |
|
|
|
|
| |
vec2<T>::operator bool() checks for NaNs already.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Make returning LatLngs unwrapped by default.
- PointAnnotation and ShapeAnnotation are always wrapped so they can be
selected via intersection from the visible tile boundaries.
- Fixes LatLng::wrap() calculation.
- Fixes LatLng::unwrapForShortestPath() calculation.
The new unwrapForShortestPath algorithm unwraps the start coordinate
either forwards or backwards depending on the end coordinate value, so
we can always cross the antimeridian when needed and still obtain a
wrapped end coordinate in the end.
Fixes #4214.
|
|
|
|
|
|
|
| |
When porting this from Transform::unwrapLatLng, I forgot to check for
the second alternative.
Fixes #4174.
|
|
|
|
| |
Plus type change for zoom and removed redundant inlines.
|
| |
|
|
|
|
| |
Fixes a precision loss when converting unwrapped LatLngs.
|
| |
|
| |
|
|
|
|
|
| |
Also introduced GeometryCoordinates (vector of GeometryCoordinate
items), to better cope with GeometryCollection.
|
|
|
|
|
| |
Use 'LATITUDE_MAX', 'LONGITUDE_MAX', 'DEG2RAD' and 'RAD2DEG' whenever
possible.
|
|
|
|
| |
Fix no viable conversion on OSX.
|
|
|
|
|
|
|
|
|
|
| |
If the server keeps sending replies considered from the client in the
past (there is no way to tell if the server or client clock is wrong),
the client will try to interpolate a valid expiration time based
on the delta of the expiration intervals sent by the server.
If the intervals are always the same, exponential backoff kicks in
until we get a different expiration time from what we already have.
|
| |
|
|
|
|
| |
port https://github.com/mapbox/mapbox-gl-js/pull/2043 from -js
|
|
|
|
| |
Instead, the eviction policy accounts for the actual size needed for an incoming put.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When inserting an cached resource, or removing a region, remove least-recently used resources and tiles, not used by offline regions, until the used database size, as calculated by multiplying the number of in-use pages by the page size, is less than the maximum cache size minus 5 times the page size.
In addition, OfflineDatabase may be configured to ignore cache puts of individual resources larger than a certain size.
This policy is similar but not identical to the former SQLiteCache policy:
* It accounts for offline, by exempting resources required by offline regions from eviction.
* It must delete from two tables (resources and tiles), rather than one. Currently the strategy is naive: evict 50 rows at a time from each table.
* It makes maximumCacheSize and maximumCacheEntrySize completely independent. The SQLiteCache implementation evicted when `usedSize > maximumCacheSize - 2 * maximumCacheEntrySize`. This evicts when `usedSize > maximumCacheSize - 5 * pageSize`.
* It uses a non-unlimited default value for maximumCacheSize: 50 MB. We should have always had a limit in place; "a cache without an eviction policy is a resource leak".
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Implicit bool conversions are bad; they'll be used e.g. for a == b and a != b if those operators are not defined. This was happening at https://github.com/mapbox/mapbox-gl-native/blob/032c8fba3c8e3c122dd399b5c9341d92ad9d286f/src/mbgl/map/transform.cpp#L132-L132, for example.
|
|
|
|
|
|
|
| |
* Use "named constructors": empty, world, hull
* Make the two-argument constructor lenient (i.e., it is a hull operation)
* Add various accessors
* Enforce a single empty representation
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Convert all geometries to the maximum extent supported by our buffers
and then use that constant extent everywhere else.
|
|
|
|
| |
It makes forward declarations inconsistent and liable to change, for no real gain.
|