summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [core] Remove priority from the constructorThiago Marcos P. Santos2019-05-282-21/+12
| | | | Make the constructor less verbose and set good defaults.
* [core] RenderTile returns textures by const referenceMikhail Pozdnyakov2019-05-286-17/+19
|
* [core] Placement::placeLayerBucket() -> placeBucket()Mikhail Pozdnyakov2019-05-283-3/+3
|
* [core] Encapsulate symbol bucket placement code in Placement::placeLayerBucket()Mikhail Pozdnyakov2019-05-287-91/+71
|
* [core] RenderTile does not expose TileMikhail Pozdnyakov2019-05-2834-92/+189
| | | | | | RenderTile and Tile will be split when ochestration movces to a separate thread. This PR improves encapsulation of Tiles management: now performed within TilePyramid.
* [core] Offset viewport center when edge insets are specifiedAleksandar Stojiljkovic2019-05-287-71/+79
| | | | | | | | | | | | | | | | | | | | | 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
* FillBucket::triangles could be empty: skip creating buffer and draw. (#14761)Aleksandar Stojiljkovic2019-05-242-12/+14
|
* [core] Prefer breaking lines at zero width space (ZWSP)Alexander Shalamov2019-05-242-11/+26
|
* [core] SymbolBucket updates complete at placement stageMikhail Pozdnyakov2019-05-2411-194/+143
| | | | | | | | `RenderSymbolLayer` does not have to update dynamic vertices of its buckets, this logic is moved to placement (which is already updates opacity vertices). * fixes clustering of labels when text variable placement enabled - as assignes `usesVariablePlacement` per bucket * simplifies the code in `RenderSymbolLayer` (the `RenderSymbolLayer::upload()` is now omitted). * symbol buckets are not modified after orchestration finishes
* [core] round color string's alpha to 2 decimal placesŁukasz Paczos2019-05-221-1/+1
|
* [core] option to perform platform specific operations when ↵Łukasz Paczos2019-05-222-0/+4
| | | | creating/destroying core threads
* [core] RenderLayer::render(PaintParameters, RenderSource*) -> ↵Mikhail Pozdnyakov2019-05-2225-72/+90
| | | | render(PaintParameters)
* [core] RenderLayer::setRenderTiles(RenderTiles) -> ↵Mikhail Pozdnyakov2019-05-225-10/+18
| | | | | | | prepare(LayerPrepareParameters) RenderLayer::prepare() is responsible for the complete initialization of a render layer, so that it can render.
* [core] Prepare render sources before render layers are initializedMikhail Pozdnyakov2019-05-2223-58/+84
|
* [core] Forward ImageManagerObserver::onRemoveUnusedStyleImages to ↵Alexander Shalamov2019-05-214-0/+14
| | | | MapObserver interface
* [core] Add onRemoveUnusedStyleImages observer APIAlexander Shalamov2019-05-214-47/+76
|
* [core] Remove binary shader supportThiago Marcos P. Santos2019-05-2112-416/+0
| | | | | | | | | | | | | | | | | | | | | | 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
* [core] Don't use optional unique_ptr in function coversion codeAnder Conselvan de Oliveira2019-05-212-22/+25
| | | | | Since unique_ptr is already nullable there is no need to wrap it in an optional<>.
* [core] Forward args in style::expression::dsl::compound()Ander Conselvan de Oliveira2019-05-211-2/+2
|
* [core] Pass legacy/categorical/*-default expression testsAnder Conselvan de Oliveira2019-05-211-14/+26
| | | | | Handle categorical function default value properly in conversion to expreexpression so related tests pass.
* [core] Fix legacy/{interval,exponential}/*-default expression testsAnder Conselvan de Oliveira2019-05-211-20/+63
| | | | | Consider the function default value in interval and exponential functions conversion.
* [core] Expose dsl::compound() internallyAnder Conselvan de Oliveira2019-05-213-6/+24
| | | | | This will be used in a follow up patch by the function to expression conversion code.
* [core] Fix some of the legacy interval function expression testsAnder Conselvan de Oliveira2019-05-211-0/+12
| | | | | The tests for conversion of legacy interval functions to expressions expects that the first stop in the "step" expression be omitted.
* [core] Fix most identity function with default legacy expression testsAnder Conselvan de Oliveira2019-05-212-20/+47
| | | | | Add handling of default value to the conversion of legacy identity functions. The color and enum tests still don't pass though.
* [core] Fix indentation of src/mbgl/style/conversion/function.cppAnder Conselvan de Oliveira2019-05-211-1/+1
| | | | One line in that file was indented with tabs instead of spaces.
* [core] Remove re-linking programs approach (#14482)Aleksandar Stojiljkovic2019-05-205-71/+35
| | | | | | | | | | | | | | | | | | | | | | | Remove re-linking programs as redundant. It costs (cheaper to link once than twice) and (subjective) is not that common GL API usage pattern, although perfectly legal and permitted. Initial idea, behind the removed code, was to enable work on optimization that would reduce number of attrib setup calls in case when VAO is not available (as described in #9433). As such optimization is not implemented, and it is arguable if it makes sense to do it now, we can remove re-linking. Related to closed PRs #9433 and PR #11583. I have [measured the time spent just on relinking](https://gist.github.com/astojilj/29bd5a5c5dc0b2d9f29ecb660da07fbf) using release build on iPhone SE (A9, same as iPhone 6S): - 1st run after reboot or installation Total 37.14ms, average per program:1.86ms - reopening Total: 2.47ms, average per program: 0.12ms This time we save using the patch here.
* [core] CrossTileSymbolIndex::pruneUnusedLayers() does not create ↵Mikhail Pozdnyakov2019-05-201-7/+5
| | | | intermadiate containers
* [core] Check if pattern dependencies or pattern positions are missingAlexander Shalamov2019-05-201-8/+18
| | | | | Add check for optional pattern dependencies and don't bind empty vertex buffers if pattern positions are missing.
* [core] Avoid bucket downcasting in PlacementMikhail Pozdnyakov2019-05-195-44/+65
|
* [core] Remove Bucket::supportsLayerMikhail Pozdnyakov2019-05-1917-46/+1
|
* [core] Remove RenderLayerSymbolInterfaceMikhail Pozdnyakov2019-05-1922-89/+53
|
* [core] Placement accepts RenderLayer instancesMikhail Pozdnyakov2019-05-195-37/+24
|
* [core] Avoid unneeded proj matrix calculations in rendererMikhail Pozdnyakov2019-05-191-3/+2
|
* [core] RenderLayerSymbolInterface is not used in CrossTileSymbolIndexMikhail Pozdnyakov2019-05-199-43/+71
|
* [core] add gfx::UploadPass, split startRender into prepare and uploadKonstantin Käfer2019-05-1587-529/+924
|
* [core] don't upload empty buffersKonstantin Käfer2019-05-152-9/+10
|
* [core] use float for storing opacity attributeKonstantin Käfer2019-05-152-2/+2
|
* [core] add gfx::CommandEncoder::present()Konstantin Käfer2019-05-154-0/+12
|
* [core] use unique IDs for DrawScopesKonstantin Käfer2019-05-1513-24/+70
|
* [core] GeometryTile and TileLoader keep strong reference to FileSourceMikhail Pozdnyakov2019-05-147-11/+14
| | | | Thus we fix a potential bug: if `Renderer` outlives the `Map` it will hold a stale reference to the `FileSource` instance.
* [core] Create glyph manager at renderer construction timeMikhail Pozdnyakov2019-05-145-21/+20
| | | | Avoid unnecessary glyph manager presence check in `Renderer::Impl::()`.
* [core] RenderTile shall never be created for a not renderable tileMikhail Pozdnyakov2019-05-145-19/+11
| | | | | | | | A RenderTile is already never created for a not renderable tile, guarantied by the checks in `updateRenderables()`. However, the client code had plenty of `isRenderable()` checks in the render path, which complicated the code and affected rendering performance. This patch removes the unneeded checks from the client code and puts an assertion to `TilePyramid::addRenderTile()`.
* Refactor: coordinatePointMatrix skip recomputation (#14507)Aleksandar Stojiljkovic2019-05-132-6/+6
| | | | | | | | coordinatePointMatrix is always used with getZoom(): Projection::worldSize(scale) / std::pow(2, z) is computed as scale * util::tileSize / std::pow(2, z) scale is equal to std::pow(2, z). ____________________________________=> Projection::worldSize(scale) / std::pow(2, z) => util::tileSize.
* [core] Make the BackgroundScheduler a singletonThiago Marcos P. Santos2019-05-1020-42/+128
| | | | | | | | | | - 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`.
* [core] Make ActorRef methods constMikhail Pozdnyakov2019-05-101-1/+1
| | | | So that the lambdas calling these methods do not have to be mutable.
* [core] Schedule invocation of onStyleImageMissing completion callback on the ↵Alexander Shalamov2019-05-092-9/+26
| | | | | | | | | 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.
* [core] Failed sprite requests do not block tiles renderingMikhail Pozdnyakov2019-05-091-0/+3
|
* [core] Remove clipping option from RenderTile and style::LayerMikhail Pozdnyakov2019-05-0813-14/+0
|
* [core] upgrade mapbox-gl-js pin to the most recent versionKonstantin Käfer2019-05-0833-659/+689
|
* [core] render extrusions directly in the main framebufferKonstantin Käfer2019-05-0825-721/+604
|