Fix next frame time build issue to cast to platform supported duration. 91/216691/2
authorAnton Obzhirov <a.obzhirov@samsung.com>
Wed, 30 Oct 2019 17:04:05 +0000 (17:04 +0000)
committerAnton Obzhirov <a.obzhirov@samsung.com>
Thu, 31 Oct 2019 11:15:28 +0000 (11:15 +0000)
Change-Id: I87e79baad181286e13c8eac6732add246f778c66

dali-toolkit/internal/visuals/animated-vector-image/vector-animation-task.cpp

index 7af08ac..db42b67 100644 (file)
@@ -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 )
   {