From 60eae41549cec18dfeed5175fe1d6c327060a8de Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Thu, 29 Jun 2017 22:40:50 +0300 Subject: [core] Factor timePoint initialization: take 2 --- src/mbgl/map/map.cpp | 4 +++- src/mbgl/map/zoom_history.hpp | 7 ++++--- src/mbgl/renderer/render_style.cpp | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp index 4d073802c2..034e43f260 100644 --- a/src/mbgl/map/map.cpp +++ b/src/mbgl/map/map.cpp @@ -207,7 +207,9 @@ void Map::render(View& view) { } void Map::Impl::render(View& view) { - TimePoint timePoint = Clock::now(); + TimePoint timePoint = mode == MapMode::Continuous + ? Clock::now() + : Clock::time_point::max(); transform.updateTransitions(timePoint); diff --git a/src/mbgl/map/zoom_history.hpp b/src/mbgl/map/zoom_history.hpp index 308846b1e3..697e28573c 100644 --- a/src/mbgl/map/zoom_history.hpp +++ b/src/mbgl/map/zoom_history.hpp @@ -13,19 +13,20 @@ struct ZoomHistory { bool first = true; bool update(float z, const TimePoint& now) { + constexpr TimePoint zero = TimePoint(Duration::zero()); if (first) { first = false; lastIntegerZoom = std::floor(z); - lastIntegerZoomTime = TimePoint(Duration::zero()); + lastIntegerZoomTime = zero; lastZoom = z; return true; } else { if (std::floor(lastZoom) < std::floor(z)) { lastIntegerZoom = std::floor(z); - lastIntegerZoomTime = now; + lastIntegerZoomTime = now == Clock::time_point::max() ? zero : now; } else if (std::floor(lastZoom) > std::floor(z)) { lastIntegerZoom = std::floor(z + 1); - lastIntegerZoomTime = now; + lastIntegerZoomTime = now == Clock::time_point::max() ? zero : now; } if (z != lastZoom) { diff --git a/src/mbgl/renderer/render_style.cpp b/src/mbgl/renderer/render_style.cpp index 79b20a9d71..91efb6c737 100644 --- a/src/mbgl/renderer/render_style.cpp +++ b/src/mbgl/renderer/render_style.cpp @@ -86,13 +86,13 @@ void RenderStyle::update(const UpdateParameters& parameters) { const bool zoomChanged = zoomHistory.update(parameters.transformState.getZoom(), parameters.timePoint); const TransitionParameters transitionParameters { - parameters.mode == MapMode::Continuous ? parameters.timePoint : Clock::time_point::max(), + parameters.timePoint, parameters.mode == MapMode::Continuous ? parameters.transitionOptions : TransitionOptions() }; const PropertyEvaluationParameters evaluationParameters { zoomHistory, - parameters.mode == MapMode::Continuous ? parameters.timePoint : Clock::time_point::max(), + parameters.timePoint, parameters.mode == MapMode::Continuous ? util::DEFAULT_TRANSITION_DURATION : Duration::zero() }; -- cgit v1.2.1