diff options
Diffstat (limited to 'src/mbgl/layout/symbol_projection.cpp')
-rw-r--r-- | src/mbgl/layout/symbol_projection.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mbgl/layout/symbol_projection.cpp b/src/mbgl/layout/symbol_projection.cpp index 8a7bc3cd71..652e04151e 100644 --- a/src/mbgl/layout/symbol_projection.cpp +++ b/src/mbgl/layout/symbol_projection.cpp @@ -3,6 +3,7 @@ #include <mbgl/renderer/render_tile.hpp> #include <mbgl/renderer/buckets/symbol_bucket.hpp> #include <mbgl/renderer/layers/render_symbol_layer.hpp> +#include <mbgl/renderer/frame_history.hpp> #include <mbgl/util/optional.hpp> #include <mbgl/util/math.hpp> @@ -48,7 +49,7 @@ namespace mbgl { return { static_cast<float>(pos[0] / pos[3]), static_cast<float>(pos[1] / pos[3]) }; } - bool isVisible(const vec4& anchorPos, const float, const std::array<double, 2>& clippingBuffer) { + bool isVisible(const vec4& anchorPos, const float placementZoom, const std::array<double, 2>& clippingBuffer, const FrameHistory& frameHistory) { const float x = anchorPos[0] / anchorPos[3]; const float y = anchorPos[1] / anchorPos[3]; const bool inPaddedViewport = ( @@ -56,8 +57,7 @@ namespace mbgl { x <= clippingBuffer[0] && y >= -clippingBuffer[1] && y <= clippingBuffer[1]); - // TODO do framehistory check here as well - return inPaddedViewport; + return inPaddedViewport && frameHistory.isVisible(placementZoom); } void addDynamicAttributes(const Point<float>& anchorPoint, const float angle, const float placementZoom, @@ -161,7 +161,7 @@ namespace mbgl { void reprojectLineLabels(SymbolBucket& bucket, const mat4& posMatrix, const bool isText, const style::SymbolPropertyValues& values, //const RenderTile& tile, const TransformState& state) { - const RenderTile&, const TransformState& state) { + const RenderTile&, const TransformState& state, const FrameHistory& frameHistory) { // const sizeData = isText ? bucket.textSizeData : bucket.iconSizeData; // const partiallyEvaluatedSize = symbolSize.evaluateSizeForZoom(sizeData, painter.transform, layer, isText); @@ -183,7 +183,7 @@ namespace mbgl { matrix::transformMat4(anchorPos, anchorPos, posMatrix); // Don't bother calculating the correct point for invisible labels. - if (!isVisible(anchorPos, placedSymbol.placementZoom, clippingBuffer)) { + if (!isVisible(anchorPos, placedSymbol.placementZoom, clippingBuffer, frameHistory)) { hideGlyphs(placedSymbol.glyphOffsets.size(), dynamicVertexArray); continue; } |