void CompositeAnimationPrivate::styleAvailable() { if (m_numStyleAvailableWaiters == 0) return; // We have to go through animations in the order in which they appear in // the style, because order matters for additivity. Vector<RefPtr<KeyframeAnimation> > animations(m_keyframeAnimations.size()); copyValuesToVector(m_keyframeAnimations, animations); if (animations.size() > 1) std::stable_sort(animations.begin(), animations.end(), compareAnimationIndices); for (size_t i = 0; i < animations.size(); ++i) { KeyframeAnimation* anim = animations[i].get(); if (anim && anim->waitingForStyleAvailable()) anim->updateStateMachine(AnimationBase::AnimationStateInputStyleAvailable, -1); } CSSPropertyTransitionsMap::const_iterator end = m_transitions.end(); for (CSSPropertyTransitionsMap::const_iterator it = m_transitions.begin(); it != end; ++it) { ImplicitAnimation* anim = it->second.get(); if (anim && anim->waitingForStyleAvailable()) anim->updateStateMachine(AnimationBase::AnimationStateInputStyleAvailable, -1); } }
void CompositeAnimation::styleAvailable() { if (m_numStyleAvailableWaiters == 0) return; // We have to go through animations in the order in which they appear in // the style, because order matters for additivity. Vector<KeyframeAnimation*> animations(m_keyframeAnimations.size()); AnimationNameMap::const_iterator kfend = m_keyframeAnimations.end(); size_t i = 0; for (AnimationNameMap::const_iterator it = m_keyframeAnimations.begin(); it != kfend; ++it) { KeyframeAnimation* anim = it->second; // We can't just insert based on anim->index() because invalid animations don't // make it into the hash. animations[i++] = anim; } if (animations.size() > 1) std::stable_sort(animations.begin(), animations.end(), compareAnimationIndices); for (i = 0; i < animations.size(); ++i) { KeyframeAnimation* anim = animations[i]; if (anim && anim->waitingForStyleAvailable()) anim->updateStateMachine(AnimationBase::STATE_INPUT_STYLE_AVAILABLE, -1); } CSSPropertyTransitionsMap::const_iterator end = m_transitions.end(); for (CSSPropertyTransitionsMap::const_iterator it = m_transitions.begin(); it != end; ++it) { ImplicitAnimation* anim = it->second; if (anim && anim->waitingForStyleAvailable()) anim->updateStateMachine(AnimationBase::STATE_INPUT_STYLE_AVAILABLE, -1); } }
void CompositeAnimation::setAnimationStartTime(double t) { // set start time on all animations waiting for it AnimationNameMap::const_iterator kfend = m_keyframeAnimations.end(); for (AnimationNameMap::const_iterator it = m_keyframeAnimations.begin(); it != kfend; ++it) { KeyframeAnimation* anim = it->second; if (anim && anim->waitingForStartTime()) anim->updateStateMachine(AnimationBase::STATE_INPUT_START_TIME_SET, t); } }
void CompositeAnimationPrivate::setAnimationStartTime(double t) { // Set start time on all animations waiting for it AnimationNameMap::const_iterator end = m_keyframeAnimations.end(); for (AnimationNameMap::const_iterator it = m_keyframeAnimations.begin(); it != end; ++it) { KeyframeAnimation* anim = it->second.get(); if (anim && anim->waitingForStartTime()) anim->updateStateMachine(AnimationBase::AnimationStateInputStartTimeSet, t); } }