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 618 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
629 keyframeTimingFunction = &keyframe->easing(); | 629 keyframeTimingFunction = &keyframe->easing(); |
630 } | 630 } |
631 | 631 |
632 // FIXME: This relies on StringKeyframes being eagerly evaluated, which
will | 632 // FIXME: This relies on StringKeyframes being eagerly evaluated, which
will |
633 // not happen eventually. Instead we should extract the CSSValue here | 633 // not happen eventually. Instead we should extract the CSSValue here |
634 // and convert using another set of toAnimatableXXXOperations functions. | 634 // and convert using another set of toAnimatableXXXOperations functions. |
635 const AnimatableValue* value = keyframe->getAnimatableValue().get(); | 635 const AnimatableValue* value = keyframe->getAnimatableValue().get(); |
636 | 636 |
637 switch (curve.type()) { | 637 switch (curve.type()) { |
638 case CompositorAnimationCurve::AnimationCurveTypeFilter: { | 638 case CompositorAnimationCurve::AnimationCurveTypeFilter: { |
639 OwnPtr<CompositorFilterOperations> ops = adoptPtr(CompositorFactory:
:current().createFilterOperations()); | 639 OwnPtr<CompositorFilterOperations> ops = CompositorFactory::current(
).createFilterOperations(); |
640 toCompositorFilterOperations(toAnimatableFilterOperations(value)->op
erations(), ops.get()); | 640 toCompositorFilterOperations(toAnimatableFilterOperations(value)->op
erations(), ops.get()); |
641 | 641 |
642 CompositorFilterKeyframe filterKeyframe(keyframe->offset(), ops.rele
ase()); | 642 CompositorFilterKeyframe filterKeyframe(keyframe->offset(), ops.rele
ase()); |
643 CompositorFilterAnimationCurve* filterCurve = static_cast<Compositor
FilterAnimationCurve*>(&curve); | 643 CompositorFilterAnimationCurve* filterCurve = static_cast<Compositor
FilterAnimationCurve*>(&curve); |
644 addKeyframeWithTimingFunction(*filterCurve, filterKeyframe, keyframe
TimingFunction); | 644 addKeyframeWithTimingFunction(*filterCurve, filterKeyframe, keyframe
TimingFunction); |
645 break; | 645 break; |
646 } | 646 } |
647 case CompositorAnimationCurve::AnimationCurveTypeFloat: { | 647 case CompositorAnimationCurve::AnimationCurveTypeFloat: { |
648 CompositorFloatKeyframe floatKeyframe(keyframe->offset(), toAnimatab
leDouble(value)->toDouble()); | 648 CompositorFloatKeyframe floatKeyframe(keyframe->offset(), toAnimatab
leDouble(value)->toDouble()); |
649 CompositorFloatAnimationCurve* floatCurve = static_cast<CompositorFl
oatAnimationCurve*>(&curve); | 649 CompositorFloatAnimationCurve* floatCurve = static_cast<CompositorFl
oatAnimationCurve*>(&curve); |
650 addKeyframeWithTimingFunction(*floatCurve, floatKeyframe, keyframeTi
mingFunction); | 650 addKeyframeWithTimingFunction(*floatCurve, floatKeyframe, keyframeTi
mingFunction); |
651 break; | 651 break; |
652 } | 652 } |
653 case CompositorAnimationCurve::AnimationCurveTypeTransform: { | 653 case CompositorAnimationCurve::AnimationCurveTypeTransform: { |
654 OwnPtr<CompositorTransformOperations> ops = adoptPtr(CompositorFacto
ry::current().createTransformOperations()); | 654 OwnPtr<CompositorTransformOperations> ops = CompositorFactory::curre
nt().createTransformOperations(); |
655 toCompositorTransformOperations(toAnimatableTransform(value)->transf
ormOperations(), ops.get()); | 655 toCompositorTransformOperations(toAnimatableTransform(value)->transf
ormOperations(), ops.get()); |
656 | 656 |
657 CompositorTransformKeyframe transformKeyframe(keyframe->offset(), op
s.release()); | 657 CompositorTransformKeyframe transformKeyframe(keyframe->offset(), op
s.release()); |
658 CompositorTransformAnimationCurve* transformCurve = static_cast<Comp
ositorTransformAnimationCurve*>(&curve); | 658 CompositorTransformAnimationCurve* transformCurve = static_cast<Comp
ositorTransformAnimationCurve*>(&curve); |
659 addKeyframeWithTimingFunction(*transformCurve, transformKeyframe, ke
yframeTimingFunction); | 659 addKeyframeWithTimingFunction(*transformCurve, transformKeyframe, ke
yframeTimingFunction); |
660 break; | 660 break; |
661 } | 661 } |
662 default: | 662 default: |
663 ASSERT_NOT_REACHED(); | 663 ASSERT_NOT_REACHED(); |
664 } | 664 } |
(...skipping 12 matching lines...) Expand all Loading... |
677 for (const auto& property : properties) { | 677 for (const auto& property : properties) { |
678 PropertySpecificKeyframeVector values; | 678 PropertySpecificKeyframeVector values; |
679 getKeyframeValuesForProperty(&effect, property, compositorTiming.scaledD
uration, values); | 679 getKeyframeValuesForProperty(&effect, property, compositorTiming.scaledD
uration, values); |
680 | 680 |
681 CompositorAnimation::TargetProperty targetProperty; | 681 CompositorAnimation::TargetProperty targetProperty; |
682 OwnPtr<CompositorAnimationCurve> curve; | 682 OwnPtr<CompositorAnimationCurve> curve; |
683 switch (property.cssProperty()) { | 683 switch (property.cssProperty()) { |
684 case CSSPropertyOpacity: { | 684 case CSSPropertyOpacity: { |
685 targetProperty = CompositorAnimation::TargetPropertyOpacity; | 685 targetProperty = CompositorAnimation::TargetPropertyOpacity; |
686 | 686 |
687 CompositorFloatAnimationCurve* floatCurve = CompositorFactory::curre
nt().createFloatAnimationCurve(); | 687 OwnPtr<CompositorFloatAnimationCurve> floatCurve = CompositorFactory
::current().createFloatAnimationCurve(); |
688 addKeyframesToCurve(*floatCurve, values, timing); | 688 addKeyframesToCurve(*floatCurve, values, timing); |
689 setTimingFunctionOnCurve(*floatCurve, timing.timingFunction.get()); | 689 setTimingFunctionOnCurve(*floatCurve, timing.timingFunction.get()); |
690 curve = adoptPtr(floatCurve); | 690 curve = floatCurve.release(); |
691 break; | 691 break; |
692 } | 692 } |
693 case CSSPropertyWebkitFilter: | 693 case CSSPropertyWebkitFilter: |
694 case CSSPropertyBackdropFilter: { | 694 case CSSPropertyBackdropFilter: { |
695 targetProperty = CompositorAnimation::TargetPropertyFilter; | 695 targetProperty = CompositorAnimation::TargetPropertyFilter; |
696 CompositorFilterAnimationCurve* filterCurve = CompositorFactory::cur
rent().createFilterAnimationCurve(); | 696 OwnPtr<CompositorFilterAnimationCurve> filterCurve = CompositorFacto
ry::current().createFilterAnimationCurve(); |
697 addKeyframesToCurve(*filterCurve, values, timing); | 697 addKeyframesToCurve(*filterCurve, values, timing); |
698 setTimingFunctionOnCurve(*filterCurve, timing.timingFunction.get()); | 698 setTimingFunctionOnCurve(*filterCurve, timing.timingFunction.get()); |
699 curve = adoptPtr(filterCurve); | 699 curve = filterCurve.release(); |
700 break; | 700 break; |
701 } | 701 } |
702 case CSSPropertyRotate: | 702 case CSSPropertyRotate: |
703 case CSSPropertyScale: | 703 case CSSPropertyScale: |
704 case CSSPropertyTranslate: | 704 case CSSPropertyTranslate: |
705 case CSSPropertyTransform: { | 705 case CSSPropertyTransform: { |
706 targetProperty = CompositorAnimation::TargetPropertyTransform; | 706 targetProperty = CompositorAnimation::TargetPropertyTransform; |
707 CompositorTransformAnimationCurve* transformCurve = CompositorFactor
y::current().createTransformAnimationCurve(); | 707 OwnPtr<CompositorTransformAnimationCurve> transformCurve = Composito
rFactory::current().createTransformAnimationCurve(); |
708 addKeyframesToCurve(*transformCurve, values, timing); | 708 addKeyframesToCurve(*transformCurve, values, timing); |
709 setTimingFunctionOnCurve(*transformCurve, timing.timingFunction.get(
)); | 709 setTimingFunctionOnCurve(*transformCurve, timing.timingFunction.get(
)); |
710 curve = adoptPtr(transformCurve); | 710 curve = transformCurve.release(); |
711 break; | 711 break; |
712 } | 712 } |
713 default: | 713 default: |
714 ASSERT_NOT_REACHED(); | 714 ASSERT_NOT_REACHED(); |
715 continue; | 715 continue; |
716 } | 716 } |
717 ASSERT(curve.get()); | 717 ASSERT(curve.get()); |
718 | 718 |
719 OwnPtr<CompositorAnimation> animation = adoptPtr(CompositorFactory::curr
ent().createAnimation(*curve, targetProperty, group, 0)); | 719 OwnPtr<CompositorAnimation> animation = CompositorFactory::current().cre
ateAnimation(*curve, targetProperty, group, 0); |
720 | 720 |
721 if (!std::isnan(startTime)) | 721 if (!std::isnan(startTime)) |
722 animation->setStartTime(startTime); | 722 animation->setStartTime(startTime); |
723 | 723 |
724 animation->setIterations(compositorTiming.adjustedIterationCount); | 724 animation->setIterations(compositorTiming.adjustedIterationCount); |
725 animation->setIterationStart(compositorTiming.iterationStart); | 725 animation->setIterationStart(compositorTiming.iterationStart); |
726 animation->setTimeOffset(compositorTiming.scaledTimeOffset); | 726 animation->setTimeOffset(compositorTiming.scaledTimeOffset); |
727 | 727 |
728 switch (compositorTiming.direction) { | 728 switch (compositorTiming.direction) { |
729 case Timing::PlaybackDirectionNormal: | 729 case Timing::PlaybackDirectionNormal: |
(...skipping 28 matching lines...) Expand all Loading... |
758 break; | 758 break; |
759 default: | 759 default: |
760 ASSERT_NOT_REACHED(); | 760 ASSERT_NOT_REACHED(); |
761 } | 761 } |
762 animations.append(animation.release()); | 762 animations.append(animation.release()); |
763 } | 763 } |
764 ASSERT(!animations.isEmpty()); | 764 ASSERT(!animations.isEmpty()); |
765 } | 765 } |
766 | 766 |
767 } // namespace blink | 767 } // namespace blink |
OLD | NEW |