bool animationFinished = animation->Stop(mSceneGraphBuffers.GetUpdateBufferIndex());
- // Queue this animation into notify required animations. Since we need to send Finished signal
- mImpl->notifyRequiredAnimations.PushBack(animation->GetNotifyId());
-
mImpl->animationFinishedDuringUpdate = mImpl->animationFinishedDuringUpdate || animationFinished;
}
+void UpdateManager::ClearAnimation(Animation* animation)
+{
+ DALI_ASSERT_DEBUG(animation && "NULL animation called to clear");
+
+ animation->ClearAnimator(mSceneGraphBuffers.GetUpdateBufferIndex());
+}
+
void UpdateManager::RemoveAnimation(Animation* animation)
{
DALI_ASSERT_DEBUG(animation && "NULL animation called to remove");
bool UpdateManager::Animate(BufferIndex bufferIndex, float elapsedSeconds)
{
bool animationActive = false;
- bool animationLooped = false;
auto&& iter = mImpl->animations.Begin();
{
Animation* animation = *iter;
bool finished = false;
- bool looped = false;
+ bool stopped = false;
bool progressMarkerReached = false;
- animation->Update(bufferIndex, elapsedSeconds, looped, finished, progressMarkerReached);
+ animation->Update(bufferIndex, elapsedSeconds, stopped, finished, progressMarkerReached);
animationActive = animationActive || animation->IsActive();
}
mImpl->animationFinishedDuringUpdate = mImpl->animationFinishedDuringUpdate || finished;
- animationLooped = animationLooped || looped;
- // queue the notification on finished or stoped or looped (to update loop count)
- if(finished || looped)
+ // queue the notification on finished or stopped
+ if(finished || stopped)
{
mImpl->notifyRequiredAnimations.PushBack(animation->GetNotifyId());
}
// Reset dirty flag
for(auto&& renderer : mImpl->renderers)
{
- renderer->ResetDirtyFlag();
+ renderer->SetUpdated(false);
}
for(auto&& shader : mImpl->shaders)