diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp index 75f778893..c7a47abeb 100644 --- a/src/mbgl/map/map.cpp +++ b/src/mbgl/map/map.cpp @@ -408,7 +408,6 @@ void Map::cancelTransitions() { void Map::setGestureInProgress(bool inProgress) { impl->transform.setGestureInProgress(inProgress); - impl->onUpdate(Update::Repaint); } bool Map::isGestureInProgress() const { diff --git a/src/mbgl/map/transform_state.cpp b/src/mbgl/map/transform_state.cpp index 5dc7feffc..188b3aa79 100644 --- a/src/mbgl/map/transform_state.cpp +++ b/src/mbgl/map/transform_state.cpp @@ -175,10 +175,6 @@ float TransformState::getPitch() const { #pragma mark - State -bool TransformState::isChanging() const { - return rotating || scaling || panning || gestureInProgress; -} - bool TransformState::isRotating() const { return rotating; } diff --git a/src/mbgl/map/transform_state.hpp b/src/mbgl/map/transform_state.hpp index 6faaf4ac4..c274ce1fc 100644 --- a/src/mbgl/map/transform_state.hpp +++ b/src/mbgl/map/transform_state.hpp @@ -60,7 +60,6 @@ public: float getPitch() const; // State - bool isChanging() const; bool isRotating() const; bool isScaling() const; bool isPanning() const; diff --git a/src/mbgl/renderer/painter_symbol.cpp b/src/mbgl/renderer/painter_symbol.cpp index d4ac5f94e..a7b0d3fa6 100644 --- a/src/mbgl/renderer/painter_symbol.cpp +++ b/src/mbgl/renderer/painter_symbol.cpp @@ -70,7 +70,7 @@ void Painter::renderSymbol(PaintParameters& parameters, SpriteAtlas& atlas = *layer.impl->spriteAtlas; const bool iconScaled = values.paintSize != 1.0f || frame.pixelRatio != atlas.getPixelRatio() || bucket.iconsNeedLinear; const bool iconTransformed = values.rotationAlignment == AlignmentType::Map || state.getPitch() != 0; - atlas.bind(bucket.sdfIcons || state.isChanging() || iconScaled || iconTransformed, context, 0); + atlas.bind(bucket.sdfIcons || state.isScaling() || state.isRotating() || iconScaled || iconTransformed, context, 0); std::array texsize {{ atlas.getWidth(), atlas.getHeight() }}; diff --git a/test/api/annotations.test.cpp b/test/api/annotations.test.cpp index 06a0a61b0..be71ba85c 100644 --- a/test/api/annotations.test.cpp +++ b/test/api/annotations.test.cpp @@ -49,6 +49,7 @@ TEST(Annotations, SymbolAnnotation) { auto screenBox = ScreenBox { {}, { double(size.width), double(size.height) } }; auto features = test.map.queryPointAnnotations(screenBox); EXPECT_EQ(features.size(), 1u); + test.checkRendering("point_annotation"); test.map.setZoom(test.map.getMaxZoom()); test.checkRendering("point_annotation"); @@ -57,6 +58,21 @@ TEST(Annotations, SymbolAnnotation) { EXPECT_EQ(features.size(), 1u); } +TEST(Annotations, SymbolLinearInterpolation) +{ + AnnotationTest test; + + test.map.setStyleJSON(util::read_file("test/fixtures/api/empty.json")); + test.map.addAnnotationIcon("default_marker", namedMarker("default_marker.png")); + test.map.addAnnotation(SymbolAnnotation { Point(0.15, 0.15), "default_marker" }); + test.checkRendering("point_annotation"); + + // Should not trigger GL_LINEAR when binding the symbol shader. + test.map.setGestureInProgress(true); + test.map.moveBy({}); + test.checkRendering("point_annotation"); +} + TEST(Annotations, LineAnnotation) { AnnotationTest test;