summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [build] split out DefaultFileSource and dependents to a separate targetKonstantin Käfer2017-09-283-68/+2
| | | | We don't want to link it into the node bindings, so keep it in a separate target
* [core] Move *TileID hashing to separate implJesse Crocker2017-09-262-276/+29
|
* [core] fix loading of stale must-revalidate resourcesKonstantin Käfer2017-09-251-0/+3
| | | | | | In https://github.com/mapbox/mapbox-gl-native/pull/9670, we implemented support for the Cache-Control: must-revalidate header. While we now respect this header and don't show resources that are stale and have this header set, the optional cache request never completes. This means we're also never going to try to actually get a fresh tile and just never show this tile anymore. This commit fixes this by responding with a Not Found error when the resource is unusable (= stale and has must-revalidate set). Since we actually still have the data (but can't use it due to caching rules), we're responding with the data as well. To avoid a second cache hit, tile_loader_impl.hpp now passes on the data from the Optional to the Required request so that it can be reused when we get a 304 Not Modified response from the server.
* [core] custom layer - add contextLost callbackIvo van Dongen2017-09-224-3/+20
| | | | - optional callback method that can be used to do cleanup when the context has been lost before re-initialisation
* [core] send signal to RenderCustomLayer when gl context has been lostIvo van Dongen2017-09-225-1/+27
| | | | - Prevents cleaning up of GL resources that no longer exist, resulting in a crash
* [core] allow context to be abandoned on destructionIvo van Dongen2017-09-222-1/+9
| | | | - This enables the use case where the system already destroyed the underlying GL resources. Otherwise, the cleanup would fail and crash
* [core] remove throttling from geometry tileIvo van Dongen2017-09-222-9/+2
| | | | - This doesn't work for asynchronous rendering - see https://github.com/mapbox/mapbox-gl-native/pull/9611
* Preserve depth buffer between 3D layers + optimize render order (#9931)Lauren Budorick2017-09-2111-133/+183
| | | Port of https://github.com/mapbox/mapbox-gl-js/pull/5101: adds a new render pass `Pass3D` before any other rendering wherein we render layers with 3D passes (fill-extrusion layers) to offscreen framebuffers, sharing a depth renderbuffer between those layers in order to render 3D space correctly. Those framebuffers are saved on the RenderLayers and copied back to the map during the translucent pass. Rendering to offscreen framebuffers before we do any clear + draw means we can avoid expensive framebuffer restores.
* [core] make sure tiles are not treated as complete until all worker ↵Konstantin Käfer2017-09-217-37/+43
| | | | | | operations completed Previously, when we started a worker operation that eventually throws an exception (e.g. due to the tile not being parseable), and then enqueue another worker operation while the first one is processing, we treated the worker as idle once the first operation's error callback fired, even though the second operation was still in progress. Due to our use of coalescing, I was unable to come up with a reliable test since we'd need to reproduce the behavior described above, which is timing dependent.
* [core] keep tiles renderable even if a subsequent error occursKonstantin Käfer2017-09-212-5/+0
| | | | Since 9a9408e8111bcdcd0fcb9a93112d61ab8fce0601, we marked tiles as non-renderable if an error occured. This lead to situations where a tile was loaded + parsed successfully, then a revalidation attempt occured (e.g. because the resource was stale) which failed. In this case, we used to mark the tile as non-renderable although we could've used the perfectly parsed (stale) resource.
* Fix platform dependent number type `unsigned long` -> `uint64_t`Asheem Mamoowala2017-09-202-3/+3
|
* [core] Don't redo placement for zoom changes at low pitch.Chris Loer2017-09-181-3/+3
| | | | | Fixes issue #9996 Port of GL-JS #5284
* [core] Bypass GeoJSON tile data update if tileID zoom is above source's maxZoomBruno de Oliveira Abinader2017-09-151-5/+8
|
* [core] TransformState::getIntegerZoom should be uint8_tBruno de Oliveira Abinader2017-09-152-2/+2
|
* [core] Reset zoom history state in still modeBruno de Oliveira Abinader2017-09-151-2/+9
|
* [core] Partially revert ZoomHistory.lastIntegerZoom updateBruno de Oliveira Abinader2017-09-151-1/+1
|
* [core] Do not cache stale tilesBruno de Oliveira Abinader2017-09-142-23/+20
|
* [core] Precompute if has image diffs when updating sourcesBruno de Oliveira Abinader2017-09-141-5/+3
|
* [core] Clear atlasImage rect for a removed patternBruno de Oliveira Abinader2017-09-131-0/+7
|
* [core] Rename for clarity: ActiveTexture → ActiveTextureUnitJohn Firebaugh2017-09-116-12/+12
|
* [core] Dirty the correct state when a texture is deletedJohn Firebaugh2017-09-111-2/+4
| | | | When a texture is deleted, it is as if all texture units to which that texture object is bound are rebound to texture object zero. Therefore it's the *bindings* that need to be dirtied, not the active texture unit.
* Fast tileCount with help from @mapbox/sphericalmercator moduleAsheem Mamoowala2017-09-082-0/+24
|
* [core] Align line vertex to 4-byte boundaryJohn Firebaugh2017-09-086-21/+13
| | | | 10 byte vertices are heavily penalized by common GL implementations.
* [core] Fix z-fighting of translucent fillsJohn Firebaugh2017-09-081-1/+3
|
* [core] Remove debug::renderTreeLauren Budorick2017-09-072-23/+0
|
* [core] remove map update enumIvo van Dongen2017-08-314-68/+41
|
* [core] move annotation tile updates to rendererIvo van Dongen2017-08-312-5/+4
| | | | | - AnnotationData.updateData() was not completely thread safe. Calling it from the renderer thread instead of the main thread fixes this - Since we moved the coalescing of updates out of the map and into the renderer frontend implementations, the updateData was called too much, resulting in degraded performance. Moving it into the renderer makes sure it gets coalesced again.
* [core] annotation manager - manage dirty state internallyIvo van Dongen2017-08-313-24/+29
|
* [node] Cleanup NodeMap::RenderBruno de Oliveira Abinader2017-08-311-0/+7
|
* [core][ios][macos][android]DDS-ify `text-letter-spacing` and `text-max-width`Asheem Mamoowala2017-08-303-10/+10
|
* [core] make thread.hpp publicIvo van Dongen2017-08-301-163/+0
|
* [core] Set Style::Impl::loaded only when finishing parsing styleBruno de Oliveira Abinader2017-08-301-1/+2
|
* [core] Clear RenderGeoJSONSource tilePyramid if no data is availableBruno de Oliveira Abinader2017-08-301-6/+11
|
* Implement icon-anchor propertyLauren Budorick2017-08-288-65/+107
|
* [core] Fix issue #9843 (overzoomed line label rendering glitch).Chris Loer2017-08-251-19/+53
| | | | | | Ports fix for GL JS issue #5112. Line label projection can't be based on tile geometry that's behind the plane of the camera. The relevant tests are still ignored because the overzoomed collision behavior is different between native and JS.
* [core] Add optional type template parameter to util::unit, so that it ↵Chris Loer2017-08-251-2/+2
| | | | doesn't always pick up the default type of 'double' from util::mag.
* [core] Added GeometryTileWorker-owned image correlation IDBruno de Oliveira Abinader2017-08-257-20/+41
|
* [core] Don't throttle placement in still modeBruno de Oliveira Abinader2017-08-252-2/+8
|
* Revert "[core] Ensure image dependencies in ↵Bruno de Oliveira Abinader2017-08-251-6/+1
| | | | | | GeometryTileWorker::onImagesAvailable" This reverts commit cd8eb13ba2d8b65f6cac12a36e0586abc56fcb9f.
* [core] No need to skip glClear optimization in overdraw modeJohn Firebaugh2017-08-241-5/+0
|
* [core] Eliminate temporary sources setJohn Firebaugh2017-08-241-11/+8
|
* [core] Clean up includes and forward declarationsJohn Firebaugh2017-08-243-25/+13
|
* [core] Inline Renderer::Impl::doRenderJohn Firebaugh2017-08-243-41/+25
|
* [core] Remove unnecessary members from UpdateParametersJohn Firebaugh2017-08-243-8/+2
|
* [core] Create BackendScopes in Renderer, assert in ImplJohn Firebaugh2017-08-242-9/+7
| | | | This avoids a long series of reset() calls in the Impl.
* [core] Inline RenderItem and RenderDataJohn Firebaugh2017-08-242-49/+18
|
* [core] Merge RenderStyle into Renderer::ImplJohn Firebaugh2017-08-247-605/+477
|
* [core] Avoid GeometryTile dependency in FeatureIndexJohn Firebaugh2017-08-243-23/+14
|
* [core] Avoid RenderStyle dependency in query codeJohn Firebaugh2017-08-2420-93/+77
|
* [core] Update ZoomHistory.lastInteger{Zoom,Time} if different from floor zoomBruno de Oliveira Abinader2017-08-221-16/+21
|