summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer
diff options
context:
space:
mode:
authorChris Loer <chris.loer@gmail.com>2018-07-06 13:09:15 -0700
committerChris Loer <chris.loer@mapbox.com>2018-07-23 13:33:27 -0700
commitf9b36f9f5b4cf09e08c2ff0181b339b53e8d0014 (patch)
treec1dbbdd657d7f5edee1defb239773576e43d27d0 /src/mbgl/renderer
parent870d7fda4d5b65d9a4993f35322678bc6f50767c (diff)
downloadqtlocation-mapboxgl-f9b36f9f5b4cf09e08c2ff0181b339b53e8d0014.tar.gz
[core] Add `symbol-placement: line-center`
- Remove unused/vestigial 'maxCameraDistance' - Create a single collision circle for line labels that are less than half the width of a collision circle
Diffstat (limited to 'src/mbgl/renderer')
-rw-r--r--src/mbgl/renderer/layers/render_symbol_layer.cpp22
-rw-r--r--src/mbgl/renderer/layers/render_symbol_layer.hpp2
2 files changed, 4 insertions, 20 deletions
diff --git a/src/mbgl/renderer/layers/render_symbol_layer.cpp b/src/mbgl/renderer/layers/render_symbol_layer.cpp
index 3a3545122e..861112526b 100644
--- a/src/mbgl/renderer/layers/render_symbol_layer.cpp
+++ b/src/mbgl/renderer/layers/render_symbol_layer.cpp
@@ -130,7 +130,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) {
auto values = iconPropertyValues(layout);
auto paintPropertyValues = iconPaintProperties();
- const bool alongLine = layout.get<SymbolPlacement>() == SymbolPlacementType::Line &&
+ const bool alongLine = layout.get<SymbolPlacement>() != SymbolPlacementType::Point &&
layout.get<IconRotationAlignment>() == AlignmentType::Map;
if (alongLine) {
@@ -191,7 +191,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) {
auto values = textPropertyValues(layout);
auto paintPropertyValues = textPaintProperties();
- const bool alongLine = layout.get<SymbolPlacement>() == SymbolPlacementType::Line &&
+ const bool alongLine = layout.get<SymbolPlacement>() != SymbolPlacementType::Point &&
layout.get<TextRotationAlignment>() == AlignmentType::Map;
if (alongLine) {
@@ -335,24 +335,11 @@ style::SymbolPropertyValues RenderSymbolLayer::iconPropertyValues(const style::S
evaluated.get<style::IconTranslateAnchor>(),
evaluated.get<style::IconHaloColor>().constantOr(Color::black()).a > 0 &&
evaluated.get<style::IconHaloWidth>().constantOr(1),
- evaluated.get<style::IconColor>().constantOr(Color::black()).a > 0,
- 10.0f
+ evaluated.get<style::IconColor>().constantOr(Color::black()).a > 0
};
}
style::SymbolPropertyValues RenderSymbolLayer::textPropertyValues(const style::SymbolLayoutProperties::PossiblyEvaluated& layout_) const {
- // We hide line labels with viewport alignment as they move into the distance
- // because the approximations we use for drawing their glyphs get progressively worse
- // The "1.5" here means we start hiding them when the distance from the label
- // to the camera is 50% greater than the distance from the center of the map
- // to the camera. Depending on viewport properties, you might expect this to filter
- // the top third of the screen at pitch 60, and do almost nothing at pitch 45
- // "10" is effectively infinite at any pitch we support
- const bool limitMaxDistance =
- layout_.get<style::SymbolPlacement>() == style::SymbolPlacementType::Line
- && layout_.get<style::TextRotationAlignment>() == style::AlignmentType::Map
- && layout_.get<style::TextPitchAlignment>() == style::AlignmentType::Viewport;
-
return style::SymbolPropertyValues {
layout_.get<style::TextPitchAlignment>(),
layout_.get<style::TextRotationAlignment>(),
@@ -361,8 +348,7 @@ style::SymbolPropertyValues RenderSymbolLayer::textPropertyValues(const style::S
evaluated.get<style::TextTranslateAnchor>(),
evaluated.get<style::TextHaloColor>().constantOr(Color::black()).a > 0 &&
evaluated.get<style::TextHaloWidth>().constantOr(1),
- evaluated.get<style::TextColor>().constantOr(Color::black()).a > 0,
- limitMaxDistance ? 1.5f : 10.0f
+ evaluated.get<style::TextColor>().constantOr(Color::black()).a > 0
};
}
diff --git a/src/mbgl/renderer/layers/render_symbol_layer.hpp b/src/mbgl/renderer/layers/render_symbol_layer.hpp
index 83709b5122..5b73b30294 100644
--- a/src/mbgl/renderer/layers/render_symbol_layer.hpp
+++ b/src/mbgl/renderer/layers/render_symbol_layer.hpp
@@ -48,8 +48,6 @@ public:
bool hasHalo;
bool hasFill;
-
- float maxCameraDistance; // 1.5 for road labels, or 10 (essentially infinite) for everything else
};
} // namespace style