| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
The callback will be called when any of the resources requested
from the network failed to load.
There is not recovery implemented yet, so the closest thing to
reseting the Map object and reloading all the resources would
be setting a new style.
|
| |
|
|\
| |
| | |
Prevent full-circle spin during animated rotation
|
| |
| |
| |
| |
| |
| | |
#1295 made #1199 a lot less common, but it was still possible for the map to do a full 180° when drift-rotating past due-south. With this change, the map is atomically rotated to a bearing in the same cycle as the final bearing.
/cc @friedbunny
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
fixes #1398
js: 212760981493460b438f1cc117001825773fad91
https://github.com/mapbox/mapbox-gl-js/pull/1195
The sprite atlas already had two empty pixels between each each icon.
But the icon's real boundary isn't used for drawing. Drawing uses an
icon's box rounded up to the nearest multiple of four. Sometimes this
rounded boundary was directly on the edge of another icon. When the icon
was sampled with linear interpolation it's edge would get polluted with
values from the other icon.
This commit shifts all icons and glyphs by 1px so that there is padding
on all sides of the box being drawn. The quads used for drawing are
shifted in the opposite direction by 1px to compensate for this.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Fixes #1585
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We only emit signals when the number of buckets increase (i.e. the
new data that arrived added a new bucket to the tile).
Also, if we try to reparse a partial tile but it is not possible, we
keep the flag up for trying to reparse it again on the next update,
because the data might have arrived after the bucket that is waiting
for the data was processed but before the end of the parsing.
Fixes #1458
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When parsing a tile, we request resources from the network, like
sprites and glyphs.
In the rare case of the resources arriving before the tile is
parsed for the first time, if we don't mark it for being parsed
again, it can end up with a tile eternally stuck in the partial
state.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Partial tiles are now only processed again when there is a new resource
available. If we don't have new resources - like new glyphs - the end result
of the reparsing is the same, because no new SymbolBuckets would are created.
In my tests debugging with PowerTOP, this patch drops the CPU utilization
during the sampling period from 100ms/s to 40ms/s. The improvements on
slow connections (i.e. more time waiting for resources) are even more
noticeable.
|
| |
| |
| |
| |
| |
| | |
We were previously emitting the signal on the thread parsing the
glyph, but signals can only be trigger from the MapThread
because the observers are living there.
|
| |
| |
| |
| |
| |
| |
| | |
For now, keep a pointer so we can subscribe/unsubscribe to events. In
the future, we should move this object completely to ResourceLoader, but
we can't do it now because we delete the ResourceLoader when changing
the style.
|
| | |
|
| |
| |
| |
| | |
fixes #1407 and #1408
|
| |
| |
| |
| | |
Map thread and Main thread should be separated in Mode::Static now
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When processing a layer, we request the dependencies of all the
SymbolBuckets even if we are not processing it completely.
By doing that we are now requesting glyphs in parallel instead of
sequentially as we were doing before.
This patch is also simplifying the SymbolBucket creation code by getting
rid of the ugly "needsResources" return value passed by reference as
argument.
|
| |
| |
| |
| |
| |
| | |
This is necessary to ensure that background and fill images are ready
to render.
Fixes #1563
|
| | |
|
| | |
|
| |
| |
| |
| | |
These were used only for prerendered textures, which were removed.
|
| |
| |
| |
| |
| |
| | |
If the request is cancelled, the response callback won't be called, and
~Source ensures that the request is cancelled. So it's safe to bind
`this` in the lambda.
|
| | |
|
| |
| |
| |
| |
| | |
There are no longer any requests made that don't have a run loop to
dispatch back to.
|
| |
| |
| |
| | |
when rendering still images, we don't need to render until everything is completely loaded
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In order to calculate the collision correctly, the layer ordering
matters. Because of that, when we find the first incomplete symbol
bucket, we stop processing any furter SymbolBucket.
The side effect of this change is, if the first SymbolBucket is the
last to receive its resources, we won't see any label at all on
the screen until the last moment, when everything will be draw at
once.
|
| |
| |
| |
| |
| |
| |
| |
| | |
We keep the Collision object alive longer because we need it
for the SymbolBuckets yet to be created in case more data
resources arrive. When the tile is no longer needed or if it
is completely parsed or obsolete (i.e. in a immutable state)
we throw the Collision object away.
|
| |
| |
| |
| |
| |
| | |
Also add a virtual setState() method to give subclasses a chance
to intercept the change of state. This will be used by VectorTileData
to release resources when the TileData becomes immutable.
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Fix potential integer overflow in line_atlas
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Fixes #1478
|
|\ \ \
| | | |
| | | | |
Android GL Crash
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Initialise NativeMapView's EGL variables before Map
Fix hang
Add check for double pause
Add test for double pause
|
|\ \ \
| | | |
| | | | |
Initialize the atomic_flag in the class definition
|
| | |/
| |/|
| | |
| | |
| | | |
ATOMIC_FLAG_INIT is often defined to { 0 } or { false } and some
compilers might complain about initializing as flag(ATOMIC_FLAG_INIT).
|
|/ / |
|
| | |
|
| | |
|
|\ \ |
|
| | | |
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
Parse feature types in set filters
|