| 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 |