diff options
author | Chris Loer <chris.loer@gmail.com> | 2018-07-06 13:09:15 -0700 |
---|---|---|
committer | Chris Loer <chris.loer@mapbox.com> | 2018-07-23 13:33:27 -0700 |
commit | f9b36f9f5b4cf09e08c2ff0181b339b53e8d0014 (patch) | |
tree | c1dbbdd657d7f5edee1defb239773576e43d27d0 /src/mbgl/renderer | |
parent | 870d7fda4d5b65d9a4993f35322678bc6f50767c (diff) | |
download | qtlocation-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.cpp | 22 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_symbol_layer.hpp | 2 |
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 |