Commit Graph

126 Commits

Author SHA1 Message Date
Thiago Marcos P. Santos
cf95bc2bb2 [build] Disable clang-format on generated code
Nice to have, but would make maintain the templates a lot harder.
2019-09-25 18:59:07 +03:00
Mikhail Pozdnyakov
30e659beed [core] Fix formatting 2019-09-18 16:21:59 +03:00
Mikhail Pozdnyakov
152d4c35fc [core] Add LayerTypeInfo::TileKind 2019-09-18 16:21:59 +03:00
Alexander Shalamov
e3421e042f [core] Fix for FormatSectionOverrides::hasOverride 2019-09-17 11:16:42 +03:00
Bruno de Oliveira Abinader
6fdf07e3a7 [core] Use mbgl::underlying_type in style properties 2019-09-11 14:29:26 +03:00
Mikhail Pozdnyakov
68de60c8d0 [core] Fill layer pattern change must cause re-layout
Otherwise, pattern properties update is not taken in action.
This caused the following render tests failure:
`build/mbgl-render-test runtime-styling/layer-add-fill regressions/mapbox-gl-js#3107 --recycle-map`
2019-08-22 14:27:27 +03:00
Alexander Shalamov
075d458403 [core] Add style bindings for "text-writing-mode" layout property 2019-08-13 13:32:56 +03:00
Mikhail Pozdnyakov
c144591322 [core] Introduce LayerProperties::constantsMask()
Constants mask for data-driven paint properties is a reliable
criteria of whether the given updated properties can still be used
with the existing bucket (and the gl program instance).
2019-07-02 16:05:09 +03:00
Mikhail Pozdnyakov
f2ad89c463 [core] Remove RenderLayerSymbolInterface 2019-05-19 18:15:33 +03:00
Mikhail Pozdnyakov
cb73f0dd1c [core] Remove clipping option from RenderTile and style::Layer 2019-05-08 15:18:33 +03:00
Konstantin Käfer
2489afdd0d [build] change style code generator to sort properties alphabetically
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.
2019-05-02 17:44:18 +02:00
Konstantin Käfer
a48152a981 [build] change special casing for LineFloorWidth in shader generation 2019-05-02 17:44:18 +02:00
Mikhail Pozdnyakov
a0c83808c0 [core] Add FadingTiles layer type property 2019-04-17 17:21:41 +03:00
Mikhail Pozdnyakov
4b21560cf5 [core] Use style::LayerProperties in render layers, buckets and layouts. 2019-04-17 17:21:41 +03:00
Mikhail Pozdnyakov
1a66a02097 [core] Introduce style::LayerProperties interface and its implementations 2019-04-17 17:21:41 +03:00
Alexander Shalamov
905ca29866 [core] Enable 'symbol-sort-key' layout property and generate style code 2019-04-17 15:04:08 +03:00
Alexander Shalamov
e329492f0f [core] Add 'auto' enum value to symbol-z-order layout property 2019-04-17 15:04:08 +03:00
Konstantin Käfer
3ceabcd3ec [core] clang-tidy fixes 2019-04-05 11:49:17 +02:00
Mikhail Pozdnyakov
ebe6f7dea3 [core] Remove RenderLinePaintProperties
This patch removes the `RenderLinePaintProperties` by
making `LineFloorWidth` part of the `style::LinePaintProperties`.

It normalizes paint properties evaluation for the line layer.
2019-04-02 17:56:16 +03:00
Mikhail Pozdnyakov
2b9a52f5e4 [core] Enable 'text-radial-offset' property 2019-03-29 16:18:41 +02:00
Mikhail Pozdnyakov
a6d8742e63 [core] Enable text-variable-anchor property 2019-03-29 16:18:41 +02:00
Alexander Shalamov
4e335d0b05 [core] Traverse expression tree when checking for property overrides
Before this change, symbol layer was only checking whether top level
'text-field' layout property expression is FormatExpression and if it
has paint property overrides. This change takes into account that
'text-field' might have nested expressions, thus, requires traversal
over child expressions.

Fixes: #14254
2019-03-28 22:27:59 +02:00
Konstantin Käfer
0ad2375e10 [core] remove a_/u_ prefix from attribute/uniform types 2019-03-20 15:40:47 +01:00
Alexander Shalamov
8be135231d [core] Add possibility of overriding paint properties inside format 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
2019-03-13 17:14:53 +02:00
Konstantin Käfer
95deab32ce [core] extract attribute structs and gl::Vertex to separate namespace 2019-03-01 09:33:37 +01:00
Konstantin Käfer
1185fe0d31 [core] return constexpr strings from functions to avoid ODR compile failures 2019-01-11 16:05:17 +01:00
Mikhail Pozdnyakov
d4d12fb8a5 [core] Use eternal::hash_map in style::Layers 2018-12-19 19:09:19 +02:00
Mikhail Pozdnyakov
ebd87a5442 [core, android, darwin] Move layer factories to separate files 2018-12-10 18:20:32 +02:00
Bruno de Oliveira Abinader
e64c28613a [core] Support fill-extrusion-vertical-gradient 2018-11-29 14:23:55 +02:00
Mikhail Pozdnyakov
361982fef8 [core][Android][Darwin] LayerManager creates RenderLayer instances
`LayerManager` is now responsible for `RenderLayer` instances creation,
so that there is a single entry point for creating of objects, which
correspond to a certain layer type.

The `LayerType type` field is dropped from `Layer::Impl`.
2018-11-27 18:10:21 +02:00
Mikhail Pozdnyakov
8ac87ec5cb Refactor util::fontStacks()
So that it does not downcast `Layer::Impl` instances.
Also, an unneeded `std::vector` construction was removed from
`Parser::fontStacks()`.
2018-11-19 17:16:54 +02:00
Alexander Shalamov
527851e2aa [core] Add static layer properties to mbgl::style::LayerTypeInfo 2018-11-19 14:06:21 +02:00
Mikhail Pozdnyakov
33818233cf [core][android] Introduce mbgl::style::LayerTypeInfo
The `LayerTypeInfo` contains static meta data about certain layer type.

Each layer module should have a single immutable `LayerTypeInfo` instance
for the represented layer type. Both `LayerImpl` and `LayerFactory` from the
module always refer to the same `LayerTypeInfo` instance, so address of this
instance can be used as a layer module Id during the process life time.
2018-11-15 18:32:31 +02:00
Mikhail Pozdnyakov
5a70f2b150 noexcept specifier for layer factory methods 2018-11-07 16:34:20 +02:00
Mikhail Pozdnyakov
ffdeef3a26 Refer corresponding LayerFactory instance from the Layer::Impl 2018-11-07 16:34:20 +02:00
Mikhail Pozdnyakov
cfcb53128b Introduce the style::Layer factory classes
This patch introduces the initial implementation of
- A `LayerFactory` abstract class that creates `style::Layer` instances of
  a certain layer type (line, hillshade, round, ..)
- A singleton `LayerManager` class, which is responsible for initializing
  the `LayerFactory` instances and forwarding the `create()` calls to the
  corresponding factory.
2018-10-31 18:05:01 +02:00
Mikhail Pozdnyakov
56808731b6 Remove style::Layer::is()/as() 2018-10-31 11:22:46 +02:00
Mikhail Pozdnyakov
7a9461a8d4 Consolidate style::Layer properties API
The `style::Layer` class now exposes all the properties contained at `style::LayerImpl`.
This allowed to drop `style::Layer::accept()` method usage, avoid the repeated generated code
and thus save some binary size.

This patch is a part of the layers modularization effort.
2018-10-25 22:42:43 +03:00
Chris Loer
ce76bde13d [core] Initial implementation of 'format' expression 2018-10-15 13:15:46 -07:00
ryanhamley
31cca05fc6 Port symbol-z-order symbol layout style-spec property to Native 2018-09-07 13:05:19 -07:00
Molly Lloyd
4a5dc37245 [core] Implement CrossFadedDataDrivenProperty to add support for feature expressions in *-pattern properties 2018-08-31 13:08:47 -07:00
Mikhail Pozdnyakov
fb5afd34b9 [core] Add line-gradient property
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).
2018-08-23 19:01:40 +03:00
Konstantin Käfer
112bbc7ab2 [core] make style/conversion.hpp implementation private 2018-08-19 13:09:16 +02:00
John Firebaugh
d886d3e4c0 [core] Factor out setVisibility conversion 2018-08-13 12:39:44 -07:00
John Firebaugh
58202eaf80 [core] Optimize generated set{Paint,Layout}Property code 2018-08-13 12:39:44 -07:00
John Firebaugh
b2f60a4bf2 [core] Eliminate setProperty & co. 2018-08-13 12:39:44 -07:00
Bruno de Oliveira Abinader
83bd4c2135 [core] Replace remaining dynamic_cast with static_cast 2018-08-08 14:14:34 +03:00
John Firebaugh
9bdd765a02 [core] Merge DataDrivenPropertyValue into PropertyValue (#12513) 2018-07-31 14:21:47 -07:00
Mikhail Pozdnyakov
514485502d Rename HeatmapColorPropertyValue to ColorRampPropertyValue
Based on patch from @lbud (Lauren Budorick).

Give `HeatmapColorPropertyValue` a more generic name,
since the same value type will be used for both `heatmap-color`
and `line-gradient` properties.
2018-07-05 15:11:14 +03:00
Molly Lloyd
e1af62e87d [core] add raster-resampling property (#12176)
* update style-code for raster-resampling

* implement user-defined raster-resampling

* invert filter condition

* raster-resampling -> raster-resampling-mode for darwin language conventions
2018-06-21 14:37:17 -07:00