X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fanimated-vector-image%2Fanimated-vector-image-visual.cpp;h=4b547b4e8a5e904cbaa302c29b1b071b9109a613;hp=96367759e5f920550577ba2365f94445956f26ea;hb=e8954068388a568c9d89de31ae033fe94d0ce20d;hpb=959f0134ef092cda808d6b810708bc21c95cd7d6 diff --git a/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp b/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp index 9636775..4b547b4 100644 --- a/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp +++ b/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp @@ -374,7 +374,7 @@ void AnimatedVectorImageVisual::DoSetOnScene(Actor& actor) void AnimatedVectorImageVisual::DoSetOffScene(Actor& actor) { StopAnimation(); - SendAnimationData(); + TriggerVectorRasterization(); if(mImpl->mRenderer) { @@ -423,7 +423,7 @@ void AnimatedVectorImageVisual::OnSetTransform() mAnimationData.resendFlag |= VectorAnimationTask::RESEND_PLAY_STATE; } - SendAnimationData(); + TriggerVectorRasterization(); } } @@ -489,31 +489,41 @@ void AnimatedVectorImageVisual::OnDoAction(const Property::Index actionId, const TriggerVectorRasterization(); } -void AnimatedVectorImageVisual::OnResourceReady(bool success) +void AnimatedVectorImageVisual::OnResourceReady(VectorAnimationTask::ResourceStatus status) { - mLoadFailed = !success; - - // If weak handle is holding a placement actor, it is the time to add the renderer to actor. - Actor actor = mPlacementActor.GetHandle(); - if(actor && !mRendererAdded) + if(status == VectorAnimationTask::ResourceStatus::LOADED) { - if(success) - { - actor.AddRenderer(mImpl->mRenderer); - ResourceReady(Toolkit::Visual::ResourceStatus::READY); - } - else + if(mImpl->mEventObserver) { - Vector2 imageSize = actor.GetProperty(Actor::Property::SIZE).Get(); - mFactoryCache.UpdateBrokenImageRenderer(mImpl->mRenderer, imageSize); - actor.AddRenderer(mImpl->mRenderer); - ResourceReady(Toolkit::Visual::ResourceStatus::FAILED); + mImpl->mEventObserver->RelayoutRequest(*this); } + } + else + { + mLoadFailed = status == VectorAnimationTask::ResourceStatus::FAILED ? true : false; - mRendererAdded = true; + // If weak handle is holding a placement actor, it is the time to add the renderer to actor. + Actor actor = mPlacementActor.GetHandle(); + if(actor && !mRendererAdded) + { + if(!mLoadFailed) + { + actor.AddRenderer(mImpl->mRenderer); + ResourceReady(Toolkit::Visual::ResourceStatus::READY); + } + else + { + Vector2 imageSize = actor.GetProperty(Actor::Property::SIZE).Get(); + mFactoryCache.UpdateBrokenImageRenderer(mImpl->mRenderer, imageSize); + actor.AddRenderer(mImpl->mRenderer); + ResourceReady(Toolkit::Visual::ResourceStatus::FAILED); + } - DALI_LOG_INFO(gVectorAnimationLogFilter, Debug::Verbose, "Renderer is added (success = %d) [%p]\n", success, this); + mRendererAdded = true; + } } + + DALI_LOG_INFO(gVectorAnimationLogFilter, Debug::Verbose, "Renderer is added (status = %d) [%p]\n", status, this); } void AnimatedVectorImageVisual::OnAnimationFinished()