| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 394 const TimingFunction* keyframeTimingFunction = 0; | 394 const TimingFunction* keyframeTimingFunction = 0; |
| 395 if (i < keyframes.size() - 1) { // Ignore timing function of last frame. | 395 if (i < keyframes.size() - 1) { // Ignore timing function of last frame. |
| 396 if (reverse) { | 396 if (reverse) { |
| 397 reversedTimingFunction = CompositorAnimationsTimingFunctionRever
ser::reverse(keyframes[i + 1]->easing()); | 397 reversedTimingFunction = CompositorAnimationsTimingFunctionRever
ser::reverse(keyframes[i + 1]->easing()); |
| 398 keyframeTimingFunction = reversedTimingFunction.get(); | 398 keyframeTimingFunction = reversedTimingFunction.get(); |
| 399 } else { | 399 } else { |
| 400 keyframeTimingFunction = keyframes[i]->easing(); | 400 keyframeTimingFunction = keyframes[i]->easing(); |
| 401 } | 401 } |
| 402 } | 402 } |
| 403 | 403 |
| 404 ASSERT(!keyframes[i]->value()->dependsOnUnderlyingValue()); | 404 const AnimatableValue* value = keyframes[i]->value(); |
| 405 RefPtr<AnimatableValue> value = keyframes[i]->value()->compositeOnto(0); | |
| 406 | 405 |
| 407 switch (curve.type()) { | 406 switch (curve.type()) { |
| 408 case blink::WebAnimationCurve::AnimationCurveTypeFilter: { | 407 case blink::WebAnimationCurve::AnimationCurveTypeFilter: { |
| 409 OwnPtr<blink::WebFilterOperations> ops = adoptPtr(blink::Platform::c
urrent()->compositorSupport()->createFilterOperations()); | 408 OwnPtr<blink::WebFilterOperations> ops = adoptPtr(blink::Platform::c
urrent()->compositorSupport()->createFilterOperations()); |
| 410 bool converted = toWebFilterOperations(toAnimatableFilterOperations(
value.get())->operations(), ops.get()); | 409 bool converted = toWebFilterOperations(toAnimatableFilterOperations(
value)->operations(), ops.get()); |
| 411 ASSERT_UNUSED(converted, converted); | 410 ASSERT_UNUSED(converted, converted); |
| 412 | 411 |
| 413 blink::WebFilterKeyframe filterKeyframe(keyframes[i]->offset(), ops.
release()); | 412 blink::WebFilterKeyframe filterKeyframe(keyframes[i]->offset(), ops.
release()); |
| 414 blink::WebFilterAnimationCurve* filterCurve = static_cast<blink::Web
FilterAnimationCurve*>(&curve); | 413 blink::WebFilterAnimationCurve* filterCurve = static_cast<blink::Web
FilterAnimationCurve*>(&curve); |
| 415 addKeyframeWithTimingFunction(*filterCurve, filterKeyframe, keyframe
TimingFunction); | 414 addKeyframeWithTimingFunction(*filterCurve, filterKeyframe, keyframe
TimingFunction); |
| 416 break; | 415 break; |
| 417 } | 416 } |
| 418 case blink::WebAnimationCurve::AnimationCurveTypeFloat: { | 417 case blink::WebAnimationCurve::AnimationCurveTypeFloat: { |
| 419 blink::WebFloatKeyframe floatKeyframe(keyframes[i]->offset(), toAnim
atableDouble(value.get())->toDouble()); | 418 blink::WebFloatKeyframe floatKeyframe(keyframes[i]->offset(), toAnim
atableDouble(value)->toDouble()); |
| 420 blink::WebFloatAnimationCurve* floatCurve = static_cast<blink::WebFl
oatAnimationCurve*>(&curve); | 419 blink::WebFloatAnimationCurve* floatCurve = static_cast<blink::WebFl
oatAnimationCurve*>(&curve); |
| 421 addKeyframeWithTimingFunction(*floatCurve, floatKeyframe, keyframeTi
mingFunction); | 420 addKeyframeWithTimingFunction(*floatCurve, floatKeyframe, keyframeTi
mingFunction); |
| 422 break; | 421 break; |
| 423 } | 422 } |
| 424 case blink::WebAnimationCurve::AnimationCurveTypeTransform: { | 423 case blink::WebAnimationCurve::AnimationCurveTypeTransform: { |
| 425 OwnPtr<blink::WebTransformOperations> ops = adoptPtr(blink::Platform
::current()->compositorSupport()->createTransformOperations()); | 424 OwnPtr<blink::WebTransformOperations> ops = adoptPtr(blink::Platform
::current()->compositorSupport()->createTransformOperations()); |
| 426 toWebTransformOperations(toAnimatableTransform(value.get())->transfo
rmOperations(), ops.get()); | 425 toWebTransformOperations(toAnimatableTransform(value)->transformOper
ations(), ops.get()); |
| 427 | 426 |
| 428 blink::WebTransformKeyframe transformKeyframe(keyframes[i]->offset()
, ops.release()); | 427 blink::WebTransformKeyframe transformKeyframe(keyframes[i]->offset()
, ops.release()); |
| 429 blink::WebTransformAnimationCurve* transformCurve = static_cast<blin
k::WebTransformAnimationCurve*>(&curve); | 428 blink::WebTransformAnimationCurve* transformCurve = static_cast<blin
k::WebTransformAnimationCurve*>(&curve); |
| 430 addKeyframeWithTimingFunction(*transformCurve, transformKeyframe, ke
yframeTimingFunction); | 429 addKeyframeWithTimingFunction(*transformCurve, transformKeyframe, ke
yframeTimingFunction); |
| 431 break; | 430 break; |
| 432 } | 431 } |
| 433 default: | 432 default: |
| 434 ASSERT_NOT_REACHED(); | 433 ASSERT_NOT_REACHED(); |
| 435 } | 434 } |
| 436 } | 435 } |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 490 animation->setIterations(compositorTiming.adjustedIterationCount); | 489 animation->setIterations(compositorTiming.adjustedIterationCount); |
| 491 animation->setTimeOffset(compositorTiming.scaledTimeOffset); | 490 animation->setTimeOffset(compositorTiming.scaledTimeOffset); |
| 492 animation->setAlternatesDirection(compositorTiming.alternate); | 491 animation->setAlternatesDirection(compositorTiming.alternate); |
| 493 | 492 |
| 494 animations.append(animation.release()); | 493 animations.append(animation.release()); |
| 495 } | 494 } |
| 496 ASSERT(!animations.isEmpty()); | 495 ASSERT(!animations.isEmpty()); |
| 497 } | 496 } |
| 498 | 497 |
| 499 } // namespace WebCore | 498 } // namespace WebCore |
| OLD | NEW |