void AnimationControllerPrivate::animationTimerFired(Timer<AnimationControllerPrivate>*) { // Make sure animationUpdateTime is updated, so that it is current even if no // styleChange has happened (e.g. accelerated animations) setBeginAnimationUpdateTime(cBeginAnimationUpdateTimeNotSet); serviceAnimations(); }
void AnimationControllerPrivate::animationTimerFired(Timer<AnimationControllerPrivate>*) { // Make sure animationUpdateTime is updated, so that it is current even if no // styleChange has happened (e.g. accelerated animations) setBeginAnimationUpdateTime(cBeginAnimationUpdateTimeNotSet); // When the timer fires, all we do is call setChanged on all DOM nodes with running animations and then do an immediate // updateRendering. It will then call back to us with new information. updateAnimationTimer(true); }
void AnimationControllerPrivate::resumeAnimationsForDocument(Document* document) { setBeginAnimationUpdateTime(cBeginAnimationUpdateTimeNotSet); for (auto it = m_compositeAnimations.begin(), end = m_compositeAnimations.end(); it != end; ++it) { if (&it->key->document() == document) it->value->resumeAnimations(); } updateAnimationTimer(); }
void AnimationControllerPrivate::animationTimerFired(Timer<AnimationControllerPrivate>&) { // Make sure animationUpdateTime is updated, so that it is current even if no // styleChange has happened (e.g. accelerated animations) setBeginAnimationUpdateTime(cBeginAnimationUpdateTimeNotSet); // When the timer fires, all we do is call setChanged on all DOM nodes with running animations and then do an immediate // updateStyleIfNeeded. It will then call back to us with new information. updateAnimationTimer(CallSetChanged); // Fire events right away, to avoid a flash of unanimated style after an animation completes, and before // the 'end' event fires. fireEventsAndUpdateStyle(); }
PassRefPtr<RenderStyle> AnimationControllerPrivate::getAnimatedStyleForRenderer(RenderObject* renderer) { if (!renderer) return 0; RefPtr<CompositeAnimation> rendererAnimations = m_compositeAnimations.get(renderer); if (!rendererAnimations) return renderer->style(); // Make sure animationUpdateTime is updated, so that it is current even if no // styleChange has happened (e.g. accelerated animations). setBeginAnimationUpdateTime(cBeginAnimationUpdateTimeNotSet); return rendererAnimations->getAnimatedStyle(); }
void AnimationControllerPrivate::resumeAnimationsForDocument(Document* document) { setBeginAnimationUpdateTime(cBeginAnimationUpdateTimeNotSet); RenderObjectAnimationMap::const_iterator animationsEnd = m_compositeAnimations.end(); for (RenderObjectAnimationMap::const_iterator it = m_compositeAnimations.begin(); it != animationsEnd; ++it) { RenderObject* renderer = it->key; if (&renderer->document() == document) { CompositeAnimation* compAnim = it->value.get(); compAnim->resumeAnimations(); } } updateAnimationTimer(); }
void AnimationControllerPrivate::suspendAnimations(Document* document) { setBeginAnimationUpdateTime(cBeginAnimationUpdateTimeNotSet); RenderObjectAnimationMap::const_iterator animationsEnd = m_compositeAnimations.end(); for (RenderObjectAnimationMap::const_iterator it = m_compositeAnimations.begin(); it != animationsEnd; ++it) { RenderObject* renderer = it->first; if (renderer->document() == document) { CompositeAnimation* compAnim = it->second.get(); compAnim->suspendAnimations(); } } updateAnimationTimer(); }
void AnimationControllerPrivate::beginAnimationUpdate() { if (!m_beginAnimationUpdateCount) setBeginAnimationUpdateTime(cBeginAnimationUpdateTimeNotSet); ++m_beginAnimationUpdateCount; }