summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin R. Miller <incanus@codesorcery.net>2014-06-01 11:21:04 -0700
committerJustin R. Miller <incanus@codesorcery.net>2014-06-01 11:21:04 -0700
commit3c249e7c9e57890105653d2ab4718b62c439188c (patch)
tree890a11a6f07a5e84ffc2f43117edd8ad6b39e8a6
parent4d66a51d220dcd57b9c0884bfa429f3d258fd726 (diff)
parente1bc73257676dbe10c19cb518fdce4b12ee1325b (diff)
downloadqtlocation-mapboxgl-3c249e7c9e57890105653d2ab4718b62c439188c.tar.gz
Merge branch 'master' of github.com:mapbox/llmr-native
-rw-r--r--bin/style.js26
-rw-r--r--include/llmr/style/properties.hpp8
m---------ios/MVKMapKit0
-rw-r--r--src/renderer/painter_fill.cpp4
-rw-r--r--src/style/style_parser.cpp2
5 files changed, 24 insertions, 16 deletions
diff --git a/bin/style.js b/bin/style.js
index eb2994fdf9..d851c1f16a 100644
--- a/bin/style.js
+++ b/bin/style.js
@@ -1820,10 +1820,16 @@ module.exports = {
{"z": 16, "val": 10},
{"z": 17, "val": 11}
],
+ "hillshade_prerender": [
+ "stops",
+ {"z": 11, "val": 0},
+ {"z": 12, "val": 1}
+ ],
"hillshade_prerender_size": [
"stops",
- {"z": 13, "val": 1024 },
- {"z": 14, "val": 512 }
+ {"z": 11, "val": 1056},
+ {"z": 12, "val": 512},
+ {"z": 13, "val": 256}
]
},
"classes": [
@@ -1977,7 +1983,7 @@ module.exports = {
"hillshade_full_shadow": {
"color": "#103",
"antialias": false,
- "prerender": true,
+ "prerender": "hillshade_prerender",
"prerender-size": "hillshade_prerender_size",
"prerender-blur": 1,
"opacity": [
@@ -1992,7 +1998,7 @@ module.exports = {
"hillshade_medium_shadow": {
"color": "#206",
"antialias": false,
- "prerender": true,
+ "prerender": "hillshade_prerender",
"prerender-size": "hillshade_prerender_size",
"prerender-blur": 1,
"opacity": [
@@ -2007,7 +2013,7 @@ module.exports = {
"hillshade_full_highlight": {
"color": "#fffff3",
"antialias": false,
- "prerender": true,
+ "prerender": "hillshade_prerender",
"prerender-size": "hillshade_prerender_size",
"prerender-blur": 1,
"opacity": [
@@ -2022,7 +2028,7 @@ module.exports = {
"hillshade_medium_highlight": {
"color": "#ffd",
"antialias": false,
- "prerender": true,
+ "prerender": "hillshade_prerender",
"prerender-size": "hillshade_prerender_size",
"prerender-blur": 1,
"opacity": [
@@ -2789,7 +2795,7 @@ module.exports = {
"hillshade_full_shadow": {
"color": "#103",
"antialias": false,
- "prerender": true,
+ "prerender": "hillshade_prerender",
"prerender-size": "hillshade_prerender_size",
"prerender-blur": 1,
"opacity": [
@@ -2803,7 +2809,7 @@ module.exports = {
"hillshade_medium_shadow": {
"color": "#206",
"antialias": false,
- "prerender": true,
+ "prerender": "hillshade_prerender",
"prerender-size": "hillshade_prerender_size",
"prerender-blur": 1,
"opacity": [
@@ -2817,7 +2823,7 @@ module.exports = {
"hillshade_full_highlight": {
"color": "#fdfdad",
"antialias": false,
- "prerender": true,
+ "prerender": "hillshade_prerender",
"prerender-size": "hillshade_prerender_size",
"prerender-blur": 1,
"opacity": [
@@ -2832,7 +2838,7 @@ module.exports = {
"hillshade_medium_highlight": {
"color": "#ffe1b7",
"antialias": false,
- "prerender": true,
+ "prerender": "hillshade_prerender",
"prerender-size": "hillshade_prerender_size",
"prerender-blur": 1,
"opacity": [
diff --git a/include/llmr/style/properties.hpp b/include/llmr/style/properties.hpp
index 96e49b7e89..487f2d6c65 100644
--- a/include/llmr/style/properties.hpp
+++ b/include/llmr/style/properties.hpp
@@ -93,7 +93,7 @@ struct GenericClass {
boost::optional<TranslateAnchor> translateAnchor;
boost::optional<FunctionProperty> opacity;
boost::optional<PropertyTransition> opacity_transition;
- float prerender = false;
+ boost::optional<FunctionProperty> prerender;
boost::optional<FunctionProperty> prerenderBuffer;
boost::optional<FunctionProperty> prerenderSize;
boost::optional<FunctionProperty> prerenderBlur;
@@ -110,13 +110,17 @@ struct GenericProperties {
std::array<float, 2> translate = {{ 0, 0 }};
TranslateAnchor translateAnchor = TranslateAnchor::Map;
float opacity = 1.0;
- bool prerender;
// These are unresolved properties because the value here is per tile, so it might differ.
+ boost::optional<FunctionProperty> prerender;
boost::optional<FunctionProperty> prerenderBuffer;
boost::optional<FunctionProperty> prerenderSize;
boost::optional<FunctionProperty> prerenderBlur;
+ inline bool getPrerender(int8_t z) const {
+ return prerender && prerender.get().evaluate<bool>(z);
+ }
+
// Obtains prerender properties by integer zoom level.
inline PrerenderProperties getPrerenderProperties(int8_t z) const {
PrerenderProperties props;
diff --git a/ios/MVKMapKit b/ios/MVKMapKit
new file mode 160000
+Subproject 7c7bb2310216a8d18108db40b09db08732df1f8
diff --git a/src/renderer/painter_fill.cpp b/src/renderer/painter_fill.cpp
index 0d3a415115..fd5b1a334f 100644
--- a/src/renderer/painter_fill.cpp
+++ b/src/renderer/painter_fill.cpp
@@ -152,10 +152,8 @@ void Painter::renderFill(FillBucket& bucket, const std::string& layer_name, cons
: defaultFillProperties;
if (!properties.enabled) return;
- if (properties.prerender) {
+ if (properties.prerender && properties.getPrerender(id.z)) {
if (pass == Translucent) {
-
-
// Buffer value around the 0..4096 extent that will be drawn into the 256x256 pixel
// texture. We later scale the texture so that the actual bounds will align with this
// tile's bounds. The reason we do this is so that the
diff --git a/src/style/style_parser.cpp b/src/style/style_parser.cpp
index fb3ab59578..2b6c0e3f22 100644
--- a/src/style/style_parser.cpp
+++ b/src/style/style_parser.cpp
@@ -557,7 +557,7 @@ void StyleParser::parseGenericClass(GenericClass &klass, JSVal value) {
}
if (value.HasMember("prerender")) {
- klass.prerender = parseBoolean(value["prerender"]);
+ klass.prerender = parseFunction(value["prerender"]);
}
if (value.HasMember("prerender-buffer")) {