| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> |
| 3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> |
| 4 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> | 4 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> |
| 5 * Copyright (C) 2008 Apple Inc. All rights reserved. | 5 * Copyright (C) 2008 Apple Inc. All rights reserved. |
| 6 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> | 6 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> |
| 7 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 7 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
| 8 * | 8 * |
| 9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
| 10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
| (...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 566 ASSERT(m_keySplines.size() == m_values.size() - 1); | 566 ASSERT(m_keySplines.size() == m_values.size() - 1); |
| 567 effectivePercent = calculatePercentForSpline(effectivePercent, index); | 567 effectivePercent = calculatePercentForSpline(effectivePercent, index); |
| 568 } | 568 } |
| 569 } | 569 } |
| 570 | 570 |
| 571 void SVGAnimationElement::startedActiveInterval() { | 571 void SVGAnimationElement::startedActiveInterval() { |
| 572 m_animationValid = false; | 572 m_animationValid = false; |
| 573 | 573 |
| 574 if (!isValid()) | 574 if (!isValid()) |
| 575 return; | 575 return; |
| 576 | 576 if (!targetElement()) |
| 577 return; |
| 577 if (!hasValidAttributeType()) | 578 if (!hasValidAttributeType()) |
| 578 return; | 579 return; |
| 579 | 580 |
| 580 // These validations are appropriate for all animation modes. | 581 // These validations are appropriate for all animation modes. |
| 581 if (fastHasAttribute(SVGNames::keyPointsAttr) && | 582 if (fastHasAttribute(SVGNames::keyPointsAttr) && |
| 582 m_keyPoints.size() != m_keyTimes.size()) | 583 m_keyPoints.size() != m_keyTimes.size()) |
| 583 return; | 584 return; |
| 584 | 585 |
| 585 AnimationMode animationMode = this->getAnimationMode(); | 586 AnimationMode animationMode = this->getAnimationMode(); |
| 586 CalcMode calcMode = this->getCalcMode(); | 587 CalcMode calcMode = this->getCalcMode(); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 642 (m_keyTimes.size() > 1 && m_keyTimes.size() == m_keyPoints.size()); | 643 (m_keyTimes.size() > 1 && m_keyTimes.size() == m_keyPoints.size()); |
| 643 } | 644 } |
| 644 | 645 |
| 645 if (m_animationValid && (isAdditive() || isAccumulated())) | 646 if (m_animationValid && (isAdditive() || isAccumulated())) |
| 646 UseCounter::count(&document(), UseCounter::SVGSMILAdditiveAnimation); | 647 UseCounter::count(&document(), UseCounter::SVGSMILAdditiveAnimation); |
| 647 } | 648 } |
| 648 | 649 |
| 649 void SVGAnimationElement::updateAnimation(float percent, | 650 void SVGAnimationElement::updateAnimation(float percent, |
| 650 unsigned repeatCount, | 651 unsigned repeatCount, |
| 651 SVGSMILElement* resultElement) { | 652 SVGSMILElement* resultElement) { |
| 652 if (!m_animationValid) | 653 if (!m_animationValid || !targetElement()) |
| 653 return; | 654 return; |
| 654 | 655 |
| 655 float effectivePercent; | 656 float effectivePercent; |
| 656 CalcMode calcMode = this->getCalcMode(); | 657 CalcMode calcMode = this->getCalcMode(); |
| 657 AnimationMode animationMode = this->getAnimationMode(); | 658 AnimationMode animationMode = this->getAnimationMode(); |
| 658 if (animationMode == ValuesAnimation) { | 659 if (animationMode == ValuesAnimation) { |
| 659 String from; | 660 String from; |
| 660 String to; | 661 String to; |
| 661 currentValuesForValuesAnimation(percent, effectivePercent, from, to); | 662 currentValuesForValuesAnimation(percent, effectivePercent, from, to); |
| 662 if (from != m_lastValuesAnimationFrom || to != m_lastValuesAnimationTo) { | 663 if (from != m_lastValuesAnimationFrom || to != m_lastValuesAnimationTo) { |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 705 if (!hasInvalidCSSAttributeType) | 706 if (!hasInvalidCSSAttributeType) |
| 706 schedule(); | 707 schedule(); |
| 707 } | 708 } |
| 708 | 709 |
| 709 // Clear values that may depend on the previous target. | 710 // Clear values that may depend on the previous target. |
| 710 if (targetElement()) | 711 if (targetElement()) |
| 711 clearAnimatedType(); | 712 clearAnimatedType(); |
| 712 } | 713 } |
| 713 | 714 |
| 714 } // namespace blink | 715 } // namespace blink |
| OLD | NEW |