| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch partly fixes #15163 in a way that it doesn't allow loading tens of thousands of tiles and attempt to show area above horizon:
Limit pitch based on edge insets. It is not too bad - current limit of 60 degrees stays active until center of perspective is moved towards the bottom, to 84% of screen height. The plan is to split removal of 60 degrees limit to follow up patch.
Fix max Z calculation in getProjMatrix. TransformState::getProjMatrix calculation of farZ was complex with possibility to lead to negative z values. Replacing it with simpler, precise calculation:
furthestDistance = cameraToCenterDistance / (1 - tanFovAboveCenter * std::tan(getPitch()));
TransformState::getProjMatrix calculation of farZ was an aproximation. Replacing it with simpler, but precise calculation.
Related to: #15163
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
sizeof(SymbolBucket): 2296 -> 1024
|
|
|
|
| |
Remove rendering functionality from Tile implementations.
|
| |
|
|
|
|
| |
Fixes #14993
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
- Removed this parameter from the constructor, now that we
have a method to set it.
- Add the method and enforce the limits if the ambient cache exceeds the
size.
|
|
|
|
|
| |
These methods were only affecting tiles, but they should really
work on every resource like style, glyphs, etc.
|
|
|
|
|
| |
Avoid confusion about what is being reset. In this case, the whole
database and not only the ambient cache.
|
| |
|
|
|
|
|
|
| |
Test if the physical size of the database will also reduce.
Clear the cache while adding resource on another connection.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Make the constructor less verbose and set good defaults.
|
|
|
|
|
|
|
| |
Make the distinction if a resource is being requested for offline
usage or if it will be used immediately.
Fixes #14746
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The change is implemented in TransformState::getProjMatrix, the rest of the code is making sure that existing API contracts stay and there are tests verifyingrendering and render query processing only items within screen and given tolerance around screen edges.
MapView: don't bake edge insets into relalculated camera center. Keep edge insets as property of camera in TransformState (similar to pitch, zoom, bearing) independent from specified camera center. Interpolate edge insets in animation.
iOS Demo app: "Turn On/Off Content Insets" pitch the camera and navigate to convenient location in Denver, where streets are parallel to cardinal directions, to illustrate viewport center offset when edge insets are set.
Tests:
ViewFrustumCulling: although Annotations are deprecated, queryRenderedFeatures related tests in Annotations would need to get ported and decided to add the edge insets related query tests next to them. Verify frustum culling (render+queryRenderedFeatures) With different camera and edge insets setups. TODO: port Annotations tests.
Transform.Padding: Verify that coordinates take proper place on screen after applying edge insets.
LocalGlyphRasterizer: verify text rendering when applying padding.
Related to #11882: both use projection matrix elements [8] and [9].
Alternative approach to this was to increase and offset map origin so that the screen would be a sub-rectangle in larger map viewport. This approach has a drawback of unecessary processing the items that are outside screen area.
Fixes #12107, #12728, navigation-sdks/issues/120
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The implementation is buggy and not worth maintaining anymore
because performance benefits are not substantial or sometimes
worse. Also, removing it saves about 150 ~ 180 KB in binary size.
Below timings are averages of minimum 5 runs.
```
Device Init launch Average relaunch
s10 1129.8 ms 700 ms
s10 - binary 1346.75 ms 694 ms
Pixel 1692 ms 723 ms
Pixel - binary 1883 ms 1039 ms
Kazam 17948 ms 1339 ms
Kazam - binary 19157 ms 1564 ms
Wiko 2060 ms 1278 ms
Wiko - binary 3876 ms 1136 ms
```
Fixes #14294
|
|
|
|
|
| |
Add handling of default value to the conversion of legacy identity
functions. The color and enum tests still don't pass though.
|
|
|
|
|
| |
Refactor out HeadlessFrontend and HeadlessBackend gl independent code to gfx.
Define gl::HeadlessBackend as subclass, instantiated by gfx::HeadlessBackend static factory method.
GL dependent tests are still using gl::HeadlessBackend directly (not through gfx).
|
| |
|
| |
|
|
|
|
| |
Thus we fix a potential bug: if `Renderer` outlives the `Map` it will hold a stale reference to the `FileSource` instance.
|
|
|
|
| |
Avoid unnecessary glyph manager presence check in `Renderer::Impl::()`.
|
|
|
|
|
|
|
|
|
|
| |
- Do not carry it over everywhere as parameter, it is a shared
instance anyway and the lifecycle is pretty much the app lifecycle
from the moment we instantiate a map.
- Rename to BackgroundScheduler because it is a Scheduler that will
do tasks in the background, we don't make assumptions if it is a
thread pool or a single thread.
- Most importantly, remove the dependency from `core` on `platform`.
|
|
|
|
|
|
|
|
|
| |
same thread
Before this change, ImageManger's 'done' callback for onStyleImageMissing observer
notification that was created on renderer thread, could be called from different thread,
therefore, is not thread safe. For example, on Android platform, callback was invoked
from UI thread. This change makes callback to be scheduled on originating thread.
|
|
|
|
| |
JSON keys in our style specification don't have a defined order. This change sorts them alphabetically so that we can rely on the order remaining them same across code generation runs.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This makes ImageRequestor API explicitly dependant on ImageManager, so that
ImageRequestor can unregister itself from ImageManager on destruction.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|