summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/buckets
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #14126 from mapbox/gfx-refactor-4Konstantin Käfer2019-03-153-3/+3
| | | Graphics refactor #4
* [core] Add possibility of overriding paint properties inside format ↵Alexander Shalamov2019-03-132-16/+33
| | | | | | | | | | | | | | | | | | expression #14062 * [core] Add format override expression and formatted section to evaluation context * [core] Add textColor to TaggedString's formatted section * [core] Add FormatSectionOverrides and introduce overridable properties * [core] Populate symbol layer paint properties for text sections * [core] Add benchmark for style that uses text-color override * [core] Add unit test for FormatOverrideExpression * [core] Add unit test for FormatSectionOverrides
* [core] use abstract Context interface where possibleKonstantin Käfer2019-03-1218-18/+18
|
* [core] move Texture to the gfx namespaceKonstantin Käfer2019-03-122-5/+5
|
* [core] move BufferUsage enum to gfx namespaceKonstantin Käfer2019-03-061-8/+8
|
* [core] move VertexBuffer<> to gfx namespaceKonstantin Käfer2019-03-069-25/+25
|
* [core] move IndexBuffer to gfx namespaceKonstantin Käfer2019-03-069-22/+22
|
* [core] unify *Buffer/Vector namingKonstantin Käfer2019-03-068-26/+26
|
* [core] remove unused template parameter from gl::IndexBufferKonstantin Käfer2019-03-069-13/+13
|
* [core] move VertexVector/IndexVector to gfx namespaceKonstantin Käfer2019-03-0610-30/+30
|
* [core] move draw mode and primitives to gfx namespaceKonstantin Käfer2019-03-0111-27/+27
|
* [core] extract attribute structs and gl::Vertex to separate namespaceKonstantin Käfer2019-03-018-21/+21
|
* [core] SymbolBucket: use single map for paint properties dataMikhail Pozdnyakov2019-01-142-17/+18
| | | | Obviates unnecessary lookups, improves readability.
* [core] shader program must always match bucket in render symbol layerMikhail Pozdnyakov2019-01-112-7/+8
| | | | | | | | | Before this change, `RenderSymbolLayer` with updated style was trying to render symbols using the previous bucket (with paint property binders that matched a previous program). Now, symbol bucket caches the latest corresponding paint properties (caching is happening on complete tiles only). As a result, `RenderSymbolLayer` always picks the shader program and its parameters in sync with the obtained bucket.
* [core] Drop LayerTypeMikhail Pozdnyakov2019-01-0416-72/+85
| | | | | Drop LayerType and its remaining usages. The generic code should be layer type agnostic.
* [core] Do not consider X axis when constraining scaleBruno de Oliveira Abinader2018-11-291-4/+3
|
* [core] Remove casts in bucketsAlexander Shalamov2018-11-194-24/+6
|
* [core] Remove casts where expected type is part of the contractAlexander Shalamov2018-11-192-2/+2
|
* [core] Enable face culling for fill extrusion layersBruno de Oliveira Abinader2018-09-131-3/+9
| | | | | Use face culling for fill extrusion layers. Winding order is changed to ensure correct rendering.
* [core] Implement CrossFadedDataDrivenProperty to add support for feature ↵Molly Lloyd2018-08-3110-47/+127
| | | | expressions in `*-pattern` properties
* [core] Add `line-gradient` propertyMikhail Pozdnyakov2018-08-232-28/+78
| | | | | | | | Porting of https://github.com/mapbox/mapbox-gl-js/pull/6303 See the link above for the description of the feature and its limitations). Based on patch from @lbud (Lauren Budorick).
* [core] Fix build when building Qt Location plugin for AndroidSudarsana Babu Nagineni2018-08-101-2/+2
| | | | | | | - log2 is not available on Android before API 18. - Android doesn't have 'round' on the std:: namespace when using g++. Co-authored-by: Thiago Marcos P. Santos <thiago@mapbox.com>
* [core] Merge DataDrivenPropertyValue into PropertyValue (#12513)John Firebaugh2018-07-312-20/+20
|
* [core] Use hand-rolled RTTIJohn Firebaugh2018-07-2416-12/+64
|
* [core] Fix sort order for queryRenderedFeatures when features are filtered.Chris Loer2018-07-031-4/+4
| | | | Fixes issue #12104.
* Fix bug (always true + incorrect calculation) in fill_extrusion_bucket ↵Lauren Budorick2018-05-161-2/+2
| | | | edgedistance check
* [core] Only run placement for first layer per SymbolBucketChris Loer2018-05-032-0/+5
| | | | | | | | | Native version of mapbox/mapbox-gl-js#6548. Port of mapbox/mapbox-gl-js#6550. Prevents symbols that share the same layout properties from colliding against each other. Bump GL JS pin to get regression test. Rename "bucketName" -> "bucketLeaderID" to make it clearer what it represents.
* Port global symbol query from GL JS:Chris Loer2018-04-252-0/+6
| | | | | | | - Symbol querying is now global instead of per-tile - Symbols that bleed over tile boundaries no longer missed in queries - Symbol results now sorted based on rendering order (ie overlapping symbols change their sort order when a bearing change causes their render order to change) - Placement::retainedQueryData now responsible for maintaining symbol querying data for buckets that may no longer be in the TilePyramid.
* [core, ios, macos, android, node] Heatmap layer (#11046)Vladimir Agafonkin2018-02-152-0/+138
| | | | | Co-Authored-By: Konstantin Käfer <mail@kkaefer.com> Co-Authored-By: Anand Thakker <anandthakker@users.noreply.github.com> Co-Authored-By: Minh Nguyễn <1ec5@users.noreply.github.com>
* [core] add support for mapzen terrarium (#11154)Molly Lloyd2018-02-142-3/+4
| | | | | | | | | | | | * add support for mapzen terrarium * Encoding --> DEMEncoding, avoid if statement when unpacking elevation values * add Terrarium test * update submodule * remove redundant checks
* [core] add raster-dem source type and hillshade layer type (#10642)Molly Lloyd2018-01-232-0/+171
|
* [core] fix symbol flickering after data updatesAnsis Brammanis2018-01-111-0/+1
|
* [core] Account for circle-stroke-width in queryRenderedFeaturesJohn Firebaugh2018-01-101-1/+2
|
* [core] Better align fill-extrusion vertex layoutLauren Budorick2017-12-201-1/+5
|
* [core] Cleanup in response to review comments.Chris Loer2017-11-171-0/+1
|
* [core] Split MapMode::Still into Static and TileAnsis Brammanis2017-11-171-1/+1
| | | | | `Tile` makes sure the symbols in the resulting tile are tileable while symbols in `Still` match rendering in `Continuous` mode.
* [core] Switch from background to foreground placementChris Loer2017-11-172-25/+199
| | | | | | | | | | | | - Background placement code now just generates static symbol buffers - Don't render GeometryTiles until their symbols are loaded. This is necessary for the CrossTileSymbolIndex to successfully prevent flicker. - SymbolInstances are transferred to SymbolBucket for use on foreground during collision detection - Symbols are sorted on foreground by sorting their index buffer but leaving vertex buffers intact (only works within one segment) - Vertical glyphs are generated at same time as horizontal glyphs. `reprojectLineLabels` chooses which one to use at render time and hides the other. - Icons are now always represented with a single collision box, even if they're placed along a line (this means their rotation alignment may be wrong, but the approach of representing them with multiple collision boxes wasn't very accurate either). - Generate vertices for new debug collision boxes and collision circles - Only add symbols within tile boundaries (reduces work, avoids double-draw) - Update symbol_projection.cpp to support line label projection calls from CollisionIndex.
* [core] Use separate attribute component for line normalsJohn Firebaugh2017-08-081-3/+3
| | | | Broadcom GPUs don't cope well with using the least significant bit for this.
* [core] modify texture coordinate scaling (#9153)Molly Lloyd2017-07-271-9/+4
| | | | | | | | | ignore unsupported dds property tests fix tests remove unneeded texture extent variable bump gl-js to master
* [core][android][macos][ios] Implement property functions for line-join, ↵Lauren Budorick2017-07-262-6/+11
| | | | text-justify, text-anchor (#9583)
* [core] generate masks for raster tiles to avoid painting over childrenKonstantin Käfer2017-07-242-1/+68
|
* [core] Refactor Painter awayJohn Firebaugh2017-07-191-1/+1
|
* [core] Eliminate Bucket::renderJohn Firebaugh2017-07-1912-66/+2
|
* [core][ios][android][macos] Use premultiplied image directly for RasterTile ↵Asheem Mamoowala2017-07-172-8/+8
| | | | and ImageSource, un-premultiply in the shader for blending
* [core] Use shared pointer to manage Image source raster data and speed up ↵Asheem Mamoowala2017-07-172-5/+19
| | | | change detection
* [core] Rework attribute binding (again)John Firebaugh2017-07-127-15/+15
| | | | | | | | | | These changes are necessary for programs whose set of active attributes is not fixed at compile time by a template parameter pack, but rather varies based on the generated shader text at runtime. In such cases, the attribute location of a given named attribute may vary between instances of the same Program. Previously, attribute bindings were implicitly associated with a location based on template parameter order, and -1 was used to indicate an inactive attribute. This left us unable to disable the appropriate attribute when it went from active to inactive. Now, the state tracker for bindings explicitly associates locations and state, and an empty optional is used to indicate an inactive attribute. In addition, a gl::VertexArray class is now exposed, allowing more flexibility in the relationship between Programs, Segments, and attribute bindings. In this commit, that relationship does not change, but the subsequent commit adjusts it to match gl-js, reduce rebinds, and work around buggy VAO implementations. VertexArray uses a pimpl idiom in order to support implementations that lack the VAO extension. In that case, all VertexArrays share global binding state, reflecting the platform reality in the absence of VAOs, while still providing a uniform API.
* [core] add static asserts for more gl constantsAnsis Brammanis2017-07-111-2/+2
| | | | and rename BufferUsageType to BufferUsage
* [core] improve legibility of labels that follow linesAnsis Brammanis2017-07-112-2/+26
| | | | | | | | | | port https://github.com/mapbox/mapbox-gl-js/pull/4781 This improves legibility of labels that follow lines in pitched views. The previous approach used the limited information in the shader to calculate put the glyph in approximatelyright place. The new approach does this more accurately by doing it on the cpu where we have access to the entire line geometry.
* [core] Don't upload empty bucketsBruno de Oliveira Abinader2017-07-061-2/+1
|
* [core] Enable property functions for line-width (#9250)Lauren Budorick2017-06-191-1/+1
|