summaryrefslogtreecommitdiff
path: root/src/mbgl/layout
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2019-12-10 13:38:36 +0100
committerAlexander Shalamov <alexander.shalamov@mapbox.com>2020-01-15 15:02:11 +0200
commit027e803b722301a03e9ef53b584c2795ff47e7bd (patch)
treed40e718688a00980ad5c40dc5db7200fb732410a /src/mbgl/layout
parent1342cb44b3f8bb0cd5c019174b62886b84d62cf8 (diff)
downloadqtlocation-mapboxgl-027e803b722301a03e9ef53b584c2795ff47e7bd.tar.gz
[core] move icon rotation from shaping to quad generation to mirror JS
Diffstat (limited to 'src/mbgl/layout')
-rw-r--r--src/mbgl/layout/symbol_instance.cpp5
-rw-r--r--src/mbgl/layout/symbol_instance.hpp1
-rw-r--r--src/mbgl/layout/symbol_layout.cpp4
3 files changed, 6 insertions, 4 deletions
diff --git a/src/mbgl/layout/symbol_instance.cpp b/src/mbgl/layout/symbol_instance.cpp
index 3a16d25de6..01ba3e26a6 100644
--- a/src/mbgl/layout/symbol_instance.cpp
+++ b/src/mbgl/layout/symbol_instance.cpp
@@ -26,14 +26,15 @@ SymbolInstanceSharedData::SymbolInstanceSharedData(GeometryCoordinates line_,
const style::SymbolPlacementType textPlacement,
const std::array<float, 2>& textOffset,
const ImageMap& imageMap,
+ float iconRotation,
SymbolContent iconType,
bool allowVerticalPlacement)
: line(std::move(line_)) {
// Create the quads used for rendering the icon and glyphs.
if (shapedIcon) {
- iconQuads = getIconQuads(*shapedIcon, iconType);
+ iconQuads = getIconQuads(*shapedIcon, iconRotation, iconType);
if (verticallyShapedIcon) {
- verticalIconQuads = getIconQuads(*verticallyShapedIcon, iconType);
+ verticalIconQuads = getIconQuads(*verticallyShapedIcon, iconRotation, iconType);
}
}
diff --git a/src/mbgl/layout/symbol_instance.hpp b/src/mbgl/layout/symbol_instance.hpp
index 74124d3364..56dd82240e 100644
--- a/src/mbgl/layout/symbol_instance.hpp
+++ b/src/mbgl/layout/symbol_instance.hpp
@@ -32,6 +32,7 @@ struct SymbolInstanceSharedData {
const style::SymbolPlacementType textPlacement,
const std::array<float, 2>& textOffset,
const ImageMap& imageMap,
+ float iconRotation,
SymbolContent iconType,
bool allowVerticalPlacement);
bool empty() const;
diff --git a/src/mbgl/layout/symbol_layout.cpp b/src/mbgl/layout/symbol_layout.cpp
index 98274136ec..1772d1ef91 100644
--- a/src/mbgl/layout/symbol_layout.cpp
+++ b/src/mbgl/layout/symbol_layout.cpp
@@ -474,8 +474,7 @@ void SymbolLayout::prepareSymbols(const GlyphMap& glyphMap,
iconType = SymbolContent::IconRGBA;
shapedIcon = PositionedIcon::shapeIcon(imagePositions.at(feature.icon->id()),
layout->evaluate<IconOffset>(zoom, feature),
- layout->evaluate<IconAnchor>(zoom, feature),
- layout->evaluate<IconRotate>(zoom, feature) * util::DEG2RAD);
+ layout->evaluate<IconAnchor>(zoom, feature));
if (image->second->sdf) {
iconType = SymbolContent::IconSDF;
}
@@ -601,6 +600,7 @@ void SymbolLayout::addFeature(const std::size_t layoutFeatureIndex,
textPlacement,
textOffset,
imageMap,
+ iconRotation,
iconType,
allowVerticalPlacement);
};