diff options
Diffstat (limited to 'ui/compositor/layer_animation_element.cc')
-rw-r--r-- | ui/compositor/layer_animation_element.cc | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/ui/compositor/layer_animation_element.cc b/ui/compositor/layer_animation_element.cc index 4952583..015e3f7 100644 --- a/ui/compositor/layer_animation_element.cc +++ b/ui/compositor/layer_animation_element.cc @@ -11,12 +11,19 @@ #include "ui/compositor/float_animation_curve_adapter.h" #include "ui/compositor/layer_animation_delegate.h" #include "ui/compositor/layer_animator.h" +#include "ui/compositor/scoped_animation_duration_scale_mode.h" #include "ui/gfx/interpolated_transform.h" namespace ui { namespace { +// The factor by which duration is scaled up or down when +// ScopedAnimationDurationScaleMode::duration_scale_mode() is SLOW_DURATION or +// FAST_DURATION. +const int kSlowDurationScaleFactor = 4; +const int kFastDurationScaleFactor = 4; + // Pause ----------------------------------------------------------------------- class Pause : public LayerAnimationElement { public: @@ -628,13 +635,19 @@ LayerAnimationElement::ToAnimatableProperty( // static base::TimeDelta LayerAnimationElement::GetEffectiveDuration( const base::TimeDelta& duration) { - if (LayerAnimator::disable_animations_for_test()) - return base::TimeDelta(); - - if (LayerAnimator::slow_animation_mode()) - return duration * LayerAnimator::slow_animation_scale_factor(); - - return duration; + switch (ScopedAnimationDurationScaleMode::duration_scale_mode()) { + case ScopedAnimationDurationScaleMode::NORMAL_DURATION: + return duration; + case ScopedAnimationDurationScaleMode::FAST_DURATION: + return duration / kFastDurationScaleFactor; + case ScopedAnimationDurationScaleMode::SLOW_DURATION: + return duration * kSlowDurationScaleFactor; + case ScopedAnimationDurationScaleMode::ZERO_DURATION: + return base::TimeDelta(); + default: + NOTREACHED(); + return base::TimeDelta(); + } } // static |