From 185db7fdcfdd0e78434d56d9e4c046451932372f Mon Sep 17 00:00:00 2001 From: Anton Obzhirov Date: Wed, 30 Oct 2019 17:04:05 +0000 Subject: [PATCH] Fix next frame time build issue to cast to platform supported duration. Change-Id: I87e79baad181286e13c8eac6732add246f778c66 --- .../visuals/animated-vector-image/vector-animation-task.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dali-toolkit/internal/visuals/animated-vector-image/vector-animation-task.cpp b/dali-toolkit/internal/visuals/animated-vector-image/vector-animation-task.cpp index 7af08ac..db42b67 100644 --- a/dali-toolkit/internal/visuals/animated-vector-image/vector-animation-task.cpp +++ b/dali-toolkit/internal/visuals/animated-vector-image/vector-animation-task.cpp @@ -500,7 +500,11 @@ uint32_t VectorAnimationTask::GetStoppedFrame( uint32_t startFrame, uint32_t end std::chrono::time_point< std::chrono::system_clock > VectorAnimationTask::CalculateNextFrameTime( bool renderNow ) { - mNextFrameStartTime = mNextFrameStartTime + std::chrono::nanoseconds( mFrameDurationNanoSeconds ); + // std::chrono::time_point template has second parameter duration which defaults to the std::chrono::system_clock supported + // duration. In some C++11 implementations it is a milliseconds duration, so it fails to compile unless mNextFrameStartTime + // is casted to use the default duration. + mNextFrameStartTime = std::chrono::time_point_cast< std::chrono::time_point< std::chrono::system_clock >::duration >( + mNextFrameStartTime + std::chrono::nanoseconds( mFrameDurationNanoSeconds ) ); auto current = std::chrono::system_clock::now(); if( renderNow || mNextFrameStartTime < current ) { -- 2.7.4