X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fanimated-vector-image%2Fvector-animation-task.cpp;h=55968e10111f1a6907e938d5126c99c5482a45a4;hb=160d5d7d3f87c50540f4083ac82458309a3a4610;hp=6072ce52b1672688f33c844808e4c1eb3f388072;hpb=65fe4d97a7a58199b2f5ad2d84e26acbb2b6ae39;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git 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 6072ce5..55968e1 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 @@ -74,7 +74,8 @@ VectorAnimationTask::VectorAnimationTask( VisualFactoryCache& factoryCache, cons mForward( true ), mUpdateFrameNumber( false ), mNeedAnimationFinishedTrigger( true ), - mAnimationDataUpdated( false ) + mAnimationDataUpdated( false ), + mDestroyTask( false ) { Initialize(); } @@ -95,6 +96,8 @@ void VectorAnimationTask::Finalize() } mVectorRenderer.Finalize(); + + mDestroyTask = true; } void VectorAnimationTask::SetRenderer( Renderer renderer ) @@ -372,6 +375,15 @@ bool VectorAnimationTask::Rasterize() bool stopped = false; uint32_t currentFrame; + { + ConditionalWait::ScopedLock lock( mConditionalWait ); + if( mDestroyTask ) + { + // The task will be destroyed. We don't need rasterization. + return false; + } + } + ApplyAnimationData(); if( mPlayState == PlayState::PLAYING && mUpdateFrameNumber )