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=1f73f80edc72bc5fd251e03dd4ea341ef2393b9f;hp=96367759e5f920550577ba2365f94445956f26ea;hb=6fcd54cf99718c78d77cb8a9bf836059111afe16;hpb=4d8dff121a1c79d5a545bc80b1a18b7f0f12beb5 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..1f73f80 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,57 @@ void AnimatedVectorImageVisual::OnDoAction(const Property::Index actionId, const TriggerVectorRasterization(); } -void AnimatedVectorImageVisual::OnResourceReady(bool success) +void AnimatedVectorImageVisual::OnDoActionExtension(const Property::Index actionId, Dali::Any attributes) { - 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) + switch(actionId) { - if(success) + case DevelAnimatedVectorImageVisual::Action::SET_DYNAMIC_PROPERTY: { - actor.AddRenderer(mImpl->mRenderer); - ResourceReady(Toolkit::Visual::ResourceStatus::READY); + DevelAnimatedVectorImageVisual::DynamicPropertyInfo info = AnyCast(attributes); + mAnimationData.dynamicProperties.push_back(info); + mAnimationData.resendFlag |= VectorAnimationTask::RESEND_DYNAMIC_PROPERTY; + break; } - else + } + + TriggerVectorRasterization(); +} + +void AnimatedVectorImageVisual::OnResourceReady(VectorAnimationTask::ResourceStatus status) +{ + if(status == VectorAnimationTask::ResourceStatus::LOADED) + { + 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()