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 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 ExceptionState& exceptionState) const { | 246 ExceptionState& exceptionState) const { |
247 SMILTime duration = simpleDuration(); | 247 SMILTime duration = simpleDuration(); |
248 if (!duration.isFinite()) { | 248 if (!duration.isFinite()) { |
249 exceptionState.throwDOMException(NotSupportedError, | 249 exceptionState.throwDOMException(NotSupportedError, |
250 "No simple duration defined."); | 250 "No simple duration defined."); |
251 return 0; | 251 return 0; |
252 } | 252 } |
253 return clampTo<float>(duration.value()); | 253 return clampTo<float>(duration.value()); |
254 } | 254 } |
255 | 255 |
256 void SVGAnimationElement::beginElement() { | |
257 beginElementAt(0); | |
258 } | |
259 | |
260 void SVGAnimationElement::beginElementAt(float offset) { | 256 void SVGAnimationElement::beginElementAt(float offset) { |
261 ASSERT(std::isfinite(offset)); | 257 DCHECK(std::isfinite(offset)); |
262 SMILTime elapsed = this->elapsed(); | 258 addInstanceTime(Begin, elapsed() + offset, SMILTimeWithOrigin::ScriptOrigin); |
263 addBeginTime(elapsed, elapsed + offset, SMILTimeWithOrigin::ScriptOrigin); | |
264 } | |
265 | |
266 void SVGAnimationElement::endElement() { | |
267 endElementAt(0); | |
268 } | 259 } |
269 | 260 |
270 void SVGAnimationElement::endElementAt(float offset) { | 261 void SVGAnimationElement::endElementAt(float offset) { |
271 ASSERT(std::isfinite(offset)); | 262 DCHECK(std::isfinite(offset)); |
272 SMILTime elapsed = this->elapsed(); | 263 addInstanceTime(End, elapsed() + offset, SMILTimeWithOrigin::ScriptOrigin); |
273 addEndTime(elapsed, elapsed + offset, SMILTimeWithOrigin::ScriptOrigin); | |
274 } | 264 } |
275 | 265 |
276 void SVGAnimationElement::updateAnimationMode() { | 266 void SVGAnimationElement::updateAnimationMode() { |
277 // http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncValues | 267 // http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncValues |
278 if (hasAttribute(SVGNames::valuesAttr)) | 268 if (hasAttribute(SVGNames::valuesAttr)) |
279 setAnimationMode(ValuesAnimation); | 269 setAnimationMode(ValuesAnimation); |
280 else if (!toValue().isEmpty()) | 270 else if (!toValue().isEmpty()) |
281 setAnimationMode(fromValue().isEmpty() ? ToAnimation : FromToAnimation); | 271 setAnimationMode(fromValue().isEmpty() ? ToAnimation : FromToAnimation); |
282 else if (!byValue().isEmpty()) | 272 else if (!byValue().isEmpty()) |
283 setAnimationMode(fromValue().isEmpty() ? ByAnimation : FromByAnimation); | 273 setAnimationMode(fromValue().isEmpty() ? ByAnimation : FromByAnimation); |
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
621 calculatePercentForSpline(percent, calculateKeyTimesIndex(percent)); | 611 calculatePercentForSpline(percent, calculateKeyTimesIndex(percent)); |
622 else if (animationMode == FromToAnimation || animationMode == ToAnimation) | 612 else if (animationMode == FromToAnimation || animationMode == ToAnimation) |
623 effectivePercent = calculatePercentForFromTo(percent); | 613 effectivePercent = calculatePercentForFromTo(percent); |
624 else | 614 else |
625 effectivePercent = percent; | 615 effectivePercent = percent; |
626 | 616 |
627 calculateAnimatedValue(effectivePercent, repeatCount, resultElement); | 617 calculateAnimatedValue(effectivePercent, repeatCount, resultElement); |
628 } | 618 } |
629 | 619 |
630 } // namespace blink | 620 } // namespace blink |
OLD | NEW |