summaryrefslogtreecommitdiff
path: root/src/mbgl/style/layers/circle_layer_impl.cpp
diff options
context:
space:
mode:
authorJesse Bounds <jesse@rebounds.net>2017-02-15 14:35:45 -0800
committerJohn Firebaugh <john.firebaugh@gmail.com>2017-02-17 14:36:36 -0800
commit9924535415cfaa45aa27d613f6141b96c7f16a68 (patch)
tree5c01c8bad6db31fce012ce964db69da43067077a /src/mbgl/style/layers/circle_layer_impl.cpp
parentab20d38883a6fdd2f861a5b799c51d0b09306e79 (diff)
downloadqtlocation-mapboxgl-9924535415cfaa45aa27d613f6141b96c7f16a68.tar.gz
[core] Render a circle if either the color or stroke color are visible
This updates the circle paint check to pass if the circle stroke is visible but: * The circle color is clear * The circle is transparent * The circle has a radius of 0 Previously, a transparent circle or a circle with a radius of 0 would cause the layer to be passed up even if the circle stroke color had a non zero alpha.
Diffstat (limited to 'src/mbgl/style/layers/circle_layer_impl.cpp')
-rw-r--r--src/mbgl/style/layers/circle_layer_impl.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mbgl/style/layers/circle_layer_impl.cpp b/src/mbgl/style/layers/circle_layer_impl.cpp
index 655ad9b5b9..ea1d4eeb65 100644
--- a/src/mbgl/style/layers/circle_layer_impl.cpp
+++ b/src/mbgl/style/layers/circle_layer_impl.cpp
@@ -14,9 +14,12 @@ void CircleLayer::Impl::cascade(const CascadeParameters& parameters) {
bool CircleLayer::Impl::evaluate(const PropertyEvaluationParameters& parameters) {
paint.evaluate(parameters);
- passes = (paint.evaluated.get<CircleRadius>().constantOr(1) > 0
- && paint.evaluated.get<CircleColor>().constantOr(Color::black()).a > 0
- && paint.evaluated.get<CircleOpacity>().constantOr(1) > 0)
+ passes = ((paint.evaluated.get<CircleRadius>().constantOr(1) > 0 ||
+ paint.evaluated.get<CircleStrokeWidth>().constantOr(1) > 0)
+ && (paint.evaluated.get<CircleColor>().constantOr(Color::black()).a > 0 ||
+ paint.evaluated.get<CircleStrokeColor>().constantOr(Color::black()).a > 0)
+ && (paint.evaluated.get<CircleOpacity>().constantOr(1) > 0 ||
+ paint.evaluated.get<CircleStrokeOpacity>().constantOr(1) > 0))
? RenderPass::Translucent : RenderPass::None;
return paint.hasTransition();