OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/compositor/layer_animation_element.h" | 5 #include "ui/compositor/layer_animation_element.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
| 11 #include "base/memory/ptr_util.h" |
11 #include "cc/animation/animation.h" | 12 #include "cc/animation/animation.h" |
12 #include "cc/animation/animation_id_provider.h" | 13 #include "cc/animation/animation_id_provider.h" |
13 #include "ui/compositor/float_animation_curve_adapter.h" | 14 #include "ui/compositor/float_animation_curve_adapter.h" |
14 #include "ui/compositor/layer.h" | 15 #include "ui/compositor/layer.h" |
15 #include "ui/compositor/layer_animation_delegate.h" | 16 #include "ui/compositor/layer_animation_delegate.h" |
16 #include "ui/compositor/layer_animator.h" | 17 #include "ui/compositor/layer_animator.h" |
17 #include "ui/compositor/scoped_animation_duration_scale_mode.h" | 18 #include "ui/compositor/scoped_animation_duration_scale_mode.h" |
18 #include "ui/compositor/transform_animation_curve_adapter.h" | 19 #include "ui/compositor/transform_animation_curve_adapter.h" |
19 #include "ui/gfx/animation/tween.h" | 20 #include "ui/gfx/animation/tween.h" |
20 #include "ui/gfx/interpolated_transform.h" | 21 #include "ui/gfx/interpolated_transform.h" |
(...skipping 24 matching lines...) Expand all Loading... |
45 void OnGetTarget(TargetValue* target) const override {} | 46 void OnGetTarget(TargetValue* target) const override {} |
46 void OnAbort(LayerAnimationDelegate* delegate) override {} | 47 void OnAbort(LayerAnimationDelegate* delegate) override {} |
47 | 48 |
48 DISALLOW_COPY_AND_ASSIGN(Pause); | 49 DISALLOW_COPY_AND_ASSIGN(Pause); |
49 }; | 50 }; |
50 | 51 |
51 // InterpolatedTransformTransition --------------------------------------------- | 52 // InterpolatedTransformTransition --------------------------------------------- |
52 | 53 |
53 class InterpolatedTransformTransition : public LayerAnimationElement { | 54 class InterpolatedTransformTransition : public LayerAnimationElement { |
54 public: | 55 public: |
55 InterpolatedTransformTransition(InterpolatedTransform* interpolated_transform, | 56 InterpolatedTransformTransition( |
56 base::TimeDelta duration) | 57 std::unique_ptr<InterpolatedTransform> interpolated_transform, |
| 58 base::TimeDelta duration) |
57 : LayerAnimationElement(TRANSFORM, duration), | 59 : LayerAnimationElement(TRANSFORM, duration), |
58 interpolated_transform_(interpolated_transform) { | 60 interpolated_transform_(std::move(interpolated_transform)) {} |
59 } | |
60 ~InterpolatedTransformTransition() override {} | 61 ~InterpolatedTransformTransition() override {} |
61 | 62 |
62 protected: | 63 protected: |
63 void OnStart(LayerAnimationDelegate* delegate) override {} | 64 void OnStart(LayerAnimationDelegate* delegate) override {} |
64 | 65 |
65 bool OnProgress(double t, LayerAnimationDelegate* delegate) override { | 66 bool OnProgress(double t, LayerAnimationDelegate* delegate) override { |
66 delegate->SetTransformFromAnimation( | 67 delegate->SetTransformFromAnimation( |
67 interpolated_transform_->Interpolate(static_cast<float>(t))); | 68 interpolated_transform_->Interpolate(static_cast<float>(t))); |
68 return true; | 69 return true; |
69 } | 70 } |
(...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
591 return duration / kNonZeroDurationScaleDivisor; | 592 return duration / kNonZeroDurationScaleDivisor; |
592 case ScopedAnimationDurationScaleMode::ZERO_DURATION: | 593 case ScopedAnimationDurationScaleMode::ZERO_DURATION: |
593 return base::TimeDelta(); | 594 return base::TimeDelta(); |
594 default: | 595 default: |
595 NOTREACHED(); | 596 NOTREACHED(); |
596 return base::TimeDelta(); | 597 return base::TimeDelta(); |
597 } | 598 } |
598 } | 599 } |
599 | 600 |
600 // static | 601 // static |
601 LayerAnimationElement* LayerAnimationElement::CreateTransformElement( | 602 std::unique_ptr<LayerAnimationElement> |
602 const gfx::Transform& transform, | 603 LayerAnimationElement::CreateTransformElement(const gfx::Transform& transform, |
603 base::TimeDelta duration) { | 604 base::TimeDelta duration) { |
604 return new ThreadedTransformTransition(transform, duration); | 605 return base::MakeUnique<ThreadedTransformTransition>(transform, duration); |
605 } | 606 } |
606 | 607 |
607 // static | 608 // static |
608 LayerAnimationElement* | 609 std::unique_ptr<LayerAnimationElement> |
609 LayerAnimationElement::CreateInterpolatedTransformElement( | 610 LayerAnimationElement::CreateInterpolatedTransformElement( |
610 InterpolatedTransform* interpolated_transform, | 611 std::unique_ptr<InterpolatedTransform> interpolated_transform, |
611 base::TimeDelta duration) { | 612 base::TimeDelta duration) { |
612 return new InterpolatedTransformTransition(interpolated_transform, duration); | 613 return base::MakeUnique<InterpolatedTransformTransition>( |
| 614 std::move(interpolated_transform), duration); |
613 } | 615 } |
614 | 616 |
615 // static | 617 // static |
616 LayerAnimationElement* LayerAnimationElement::CreateBoundsElement( | 618 std::unique_ptr<LayerAnimationElement> |
617 const gfx::Rect& bounds, | 619 LayerAnimationElement::CreateBoundsElement(const gfx::Rect& bounds, |
618 base::TimeDelta duration) { | 620 base::TimeDelta duration) { |
619 return new BoundsTransition(bounds, duration); | 621 return base::MakeUnique<BoundsTransition>(bounds, duration); |
620 } | 622 } |
621 | 623 |
622 // static | 624 // static |
623 LayerAnimationElement* LayerAnimationElement::CreateOpacityElement( | 625 std::unique_ptr<LayerAnimationElement> |
624 float opacity, | 626 LayerAnimationElement::CreateOpacityElement(float opacity, |
625 base::TimeDelta duration) { | 627 base::TimeDelta duration) { |
626 return new ThreadedOpacityTransition(opacity, duration); | 628 return base::MakeUnique<ThreadedOpacityTransition>(opacity, duration); |
627 } | 629 } |
628 | 630 |
629 // static | 631 // static |
630 LayerAnimationElement* LayerAnimationElement::CreateVisibilityElement( | 632 std::unique_ptr<LayerAnimationElement> |
631 bool visibility, | 633 LayerAnimationElement::CreateVisibilityElement(bool visibility, |
632 base::TimeDelta duration) { | 634 base::TimeDelta duration) { |
633 return new VisibilityTransition(visibility, duration); | 635 return base::MakeUnique<VisibilityTransition>(visibility, duration); |
634 } | 636 } |
635 | 637 |
636 // static | 638 // static |
637 LayerAnimationElement* LayerAnimationElement::CreateBrightnessElement( | 639 std::unique_ptr<LayerAnimationElement> |
638 float brightness, | 640 LayerAnimationElement::CreateBrightnessElement(float brightness, |
639 base::TimeDelta duration) { | 641 base::TimeDelta duration) { |
640 return new BrightnessTransition(brightness, duration); | 642 return base::MakeUnique<BrightnessTransition>(brightness, duration); |
641 } | 643 } |
642 | 644 |
643 // static | 645 // static |
644 LayerAnimationElement* LayerAnimationElement::CreateGrayscaleElement( | 646 std::unique_ptr<LayerAnimationElement> |
645 float grayscale, | 647 LayerAnimationElement::CreateGrayscaleElement(float grayscale, |
646 base::TimeDelta duration) { | 648 base::TimeDelta duration) { |
647 return new GrayscaleTransition(grayscale, duration); | 649 return base::MakeUnique<GrayscaleTransition>(grayscale, duration); |
648 } | 650 } |
649 | 651 |
650 // static | 652 // static |
651 LayerAnimationElement* LayerAnimationElement::CreatePauseElement( | 653 std::unique_ptr<LayerAnimationElement> |
652 AnimatableProperties properties, | 654 LayerAnimationElement::CreatePauseElement(AnimatableProperties properties, |
653 base::TimeDelta duration) { | 655 base::TimeDelta duration) { |
654 return new Pause(properties, duration); | 656 return base::MakeUnique<Pause>(properties, duration); |
655 } | 657 } |
656 | 658 |
657 // static | 659 // static |
658 LayerAnimationElement* LayerAnimationElement::CreateColorElement( | 660 std::unique_ptr<LayerAnimationElement> |
659 SkColor color, | 661 LayerAnimationElement::CreateColorElement(SkColor color, |
660 base::TimeDelta duration) { | 662 base::TimeDelta duration) { |
661 return new ColorTransition(color, duration); | 663 return base::MakeUnique<ColorTransition>(color, duration); |
662 } | 664 } |
663 | 665 |
664 } // namespace ui | 666 } // namespace ui |
OLD | NEW |