summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbehara.ms <behara.ms@samsung.com>2014-11-11 21:09:08 -0800
committerCommit bot <commit-bot@chromium.org>2014-11-12 05:09:29 +0000
commit71ff07f3e8b5d1861877cefc046bcea53125c7f7 (patch)
tree5663ad8b541bfa8669fa530ff43a683cfb5956df
parentb70363420dbfe0825e96e3d025fb0bacb26ff2f4 (diff)
downloadchromium_src-71ff07f3e8b5d1861877cefc046bcea53125c7f7.zip
chromium_src-71ff07f3e8b5d1861877cefc046bcea53125c7f7.tar.gz
chromium_src-71ff07f3e8b5d1861877cefc046bcea53125c7f7.tar.bz2
Make cc::Animation::TrimTimeToCurrentIteration and
cc::AnimationCurve::Duration use TimeTicks/TimeDelta to represent time. This patch adds a new file time_util.h which adds new class TimeUtil. This TimeUtil class holds helper functions to operate on TimeDelta in double because base::TimeDelta class doesnot allow multiply/divide operations in double. Review URL: https://codereview.chromium.org/693883004 Cr-Commit-Position: refs/heads/master@{#303790}
-rw-r--r--cc/BUILD.gn1
-rw-r--r--cc/animation/animation.cc50
-rw-r--r--cc/animation/animation.h5
-rw-r--r--cc/animation/animation_curve.h3
-rw-r--r--cc/animation/animation_unittest.cc867
-rw-r--r--cc/animation/keyframed_animation_curve.cc20
-rw-r--r--cc/animation/keyframed_animation_curve.h9
-rw-r--r--cc/animation/layer_animation_controller.cc8
-rw-r--r--cc/animation/layer_animation_controller_unittest.cc24
-rw-r--r--cc/animation/scroll_offset_animation_curve.cc4
-rw-r--r--cc/animation/scroll_offset_animation_curve.h2
-rw-r--r--cc/animation/scroll_offset_animation_curve_unittest.cc62
-rw-r--r--cc/base/time_util.h30
-rw-r--r--cc/blink/web_scroll_offset_animation_curve_impl.cc2
-rw-r--r--cc/cc.gyp1
-rw-r--r--cc/test/animation_test_common.cc21
-rw-r--r--cc/test/animation_test_common.h12
-rw-r--r--cc/trees/layer_tree_host_impl.cc7
-rw-r--r--cc/trees/layer_tree_host_unittest_animation.cc4
-rw-r--r--ui/compositor/float_animation_curve_adapter.cc4
-rw-r--r--ui/compositor/float_animation_curve_adapter.h2
-rw-r--r--ui/compositor/transform_animation_curve_adapter.cc8
-rw-r--r--ui/compositor/transform_animation_curve_adapter.h4
23 files changed, 742 insertions, 408 deletions
diff --git a/cc/BUILD.gn b/cc/BUILD.gn
index e9ef9e2..0b59c7e 100644
--- a/cc/BUILD.gn
+++ b/cc/BUILD.gn
@@ -64,6 +64,7 @@ component("cc") {
"base/switches.h",
"base/tiling_data.cc",
"base/tiling_data.h",
+ "base/time_util.h",
"base/unique_notifier.cc",
"base/unique_notifier.h",
"base/util.h",
diff --git a/cc/animation/animation.cc b/cc/animation/animation.cc
index e49cf1e..f5abfa0 100644
--- a/cc/animation/animation.cc
+++ b/cc/animation/animation.cc
@@ -9,6 +9,7 @@
#include "base/debug/trace_event.h"
#include "base/strings/string_util.h"
#include "cc/animation/animation_curve.h"
+#include "cc/base/time_util.h"
namespace {
@@ -154,17 +155,18 @@ bool Animation::IsFinishedAt(base::TimeTicks monotonic_time) const {
return false;
return run_state_ == Running && iterations_ >= 0 &&
- iterations_ * curve_->Duration() / std::abs(playback_rate_) <=
- (monotonic_time + time_offset_ - start_time_ - total_paused_time_)
- .InSecondsF();
+ TimeUtil::Scale(curve_->Duration(),
+ iterations_ / std::abs(playback_rate_)) <=
+ (monotonic_time + time_offset_ - start_time_ - total_paused_time_);
}
bool Animation::InEffect(base::TimeTicks monotonic_time) const {
- return ConvertToActiveTime(monotonic_time) >= 0 ||
+ return ConvertToActiveTime(monotonic_time) >= base::TimeDelta() ||
(fill_mode_ == FillModeBoth || fill_mode_ == FillModeBackwards);
}
-double Animation::ConvertToActiveTime(base::TimeTicks monotonic_time) const {
+base::TimeDelta Animation::ConvertToActiveTime(
+ base::TimeTicks monotonic_time) const {
base::TimeTicks trimmed = monotonic_time + time_offset_;
// If we're paused, time is 'stuck' at the pause time.
@@ -181,56 +183,60 @@ double Animation::ConvertToActiveTime(base::TimeTicks monotonic_time) const {
needs_synchronized_start_time())
trimmed = base::TimeTicks() + time_offset_;
- return (trimmed - base::TimeTicks()).InSecondsF();
+ return (trimmed - base::TimeTicks());
}
-double Animation::TrimTimeToCurrentIteration(
+base::TimeDelta Animation::TrimTimeToCurrentIteration(
base::TimeTicks monotonic_time) const {
// Check for valid parameters
DCHECK(playback_rate_);
DCHECK_GE(iteration_start_, 0);
- double active_time = ConvertToActiveTime(monotonic_time);
- double start_offset = iteration_start_ * curve_->Duration();
+ base::TimeDelta active_time = ConvertToActiveTime(monotonic_time);
+ base::TimeDelta start_offset =
+ TimeUtil::Scale(curve_->Duration(), iteration_start_);
// Return start offset if we are before the start of the animation
- if (active_time < 0)
+ if (active_time < base::TimeDelta())
return start_offset;
-
// Always return zero if we have no iterations.
if (!iterations_)
- return 0;
+ return base::TimeDelta();
// Don't attempt to trim if we have no duration.
- if (curve_->Duration() <= 0)
- return 0;
+ if (curve_->Duration() <= base::TimeDelta())
+ return base::TimeDelta();
- double repeated_duration = iterations_ * curve_->Duration();
- double active_duration = repeated_duration / std::abs(playback_rate_);
+ base::TimeDelta repeated_duration =
+ TimeUtil::Scale(curve_->Duration(), iterations_);
+ base::TimeDelta active_duration =
+ TimeUtil::Scale(repeated_duration, 1.0 / std::abs(playback_rate_));
// Check if we are past active duration
if (iterations_ > 0 && active_time >= active_duration)
active_time = active_duration;
// Calculate the scaled active time
- double scaled_active_time;
+ base::TimeDelta scaled_active_time;
if (playback_rate_ < 0)
scaled_active_time =
- (active_time - active_duration) * playback_rate_ + start_offset;
+ TimeUtil::Scale((active_time - active_duration), playback_rate_) +
+ start_offset;
else
- scaled_active_time = active_time * playback_rate_ + start_offset;
+ scaled_active_time =
+ TimeUtil::Scale(active_time, playback_rate_) + start_offset;
// Calculate the iteration time
- double iteration_time;
+ base::TimeDelta iteration_time;
if (scaled_active_time - start_offset == repeated_duration &&
fmod(iterations_ + iteration_start_, 1) == 0)
iteration_time = curve_->Duration();
else
- iteration_time = fmod(scaled_active_time, curve_->Duration());
+ iteration_time = TimeUtil::Mod(scaled_active_time, curve_->Duration());
// Calculate the current iteration
int iteration;
- if (scaled_active_time <= 0)
+ if (scaled_active_time <= base::TimeDelta())
iteration = 0;
else if (iteration_time == curve_->Duration())
iteration = ceil(iteration_start_ + iterations_ - 1);
diff --git a/cc/animation/animation.h b/cc/animation/animation.h
index 7856497..80c0763 100644
--- a/cc/animation/animation.h
+++ b/cc/animation/animation.h
@@ -142,7 +142,8 @@ class CC_EXPORT Animation {
// Takes the given absolute time, and using the start time and the number
// of iterations, returns the relative time in the current iteration.
- double TrimTimeToCurrentIteration(base::TimeTicks monotonic_time) const;
+ base::TimeDelta TrimTimeToCurrentIteration(
+ base::TimeTicks monotonic_time) const;
scoped_ptr<Animation> CloneAndInitialize(RunState initial_run_state) const;
@@ -169,7 +170,7 @@ class CC_EXPORT Animation {
int group_id,
TargetProperty target_property);
- double ConvertToActiveTime(base::TimeTicks monotonic_time) const;
+ base::TimeDelta ConvertToActiveTime(base::TimeTicks monotonic_time) const;
scoped_ptr<AnimationCurve> curve_;
diff --git a/cc/animation/animation_curve.h b/cc/animation/animation_curve.h
index 57c42c7..c03feb8 100644
--- a/cc/animation/animation_curve.h
+++ b/cc/animation/animation_curve.h
@@ -6,6 +6,7 @@
#define CC_ANIMATION_ANIMATION_CURVE_H_
#include "base/memory/scoped_ptr.h"
+#include "base/time/time.h"
#include "cc/base/cc_export.h"
#include "cc/output/filter_operations.h"
#include "ui/gfx/transform.h"
@@ -30,7 +31,7 @@ class CC_EXPORT AnimationCurve {
virtual ~AnimationCurve() {}
- virtual double Duration() const = 0;
+ virtual base::TimeDelta Duration() const = 0;
virtual CurveType Type() const = 0;
virtual scoped_ptr<AnimationCurve> Clone() const = 0;
diff --git a/cc/animation/animation_unittest.cc b/cc/animation/animation_unittest.cc
index b1592d6..2522f19 100644
--- a/cc/animation/animation_unittest.cc
+++ b/cc/animation/animation_unittest.cc
@@ -41,166 +41,257 @@ scoped_ptr<Animation> CreateAnimation(double iterations) {
TEST(AnimationTest, TrimTimeZeroIterations) {
scoped_ptr<Animation> anim(CreateAnimation(0));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
+ EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
}
TEST(AnimationTest, TrimTimeOneIteration) {
scoped_ptr<Animation> anim(CreateAnimation(1));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
+ EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
}
TEST(AnimationTest, TrimTimeOneHalfIteration) {
scoped_ptr<Animation> anim(CreateAnimation(1.5));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.9, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.9)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.9, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.9))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeInfiniteIterations) {
scoped_ptr<Animation> anim(CreateAnimation(-1));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeReverse) {
scoped_ptr<Animation> anim(CreateAnimation(-1));
anim->set_direction(Animation::Reverse);
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)));
+ EXPECT_EQ(
+ 1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)).InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeAlternateInfiniteIterations) {
scoped_ptr<Animation> anim(CreateAnimation(-1));
anim->set_direction(Animation::Alternate);
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)));
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeAlternateOneIteration) {
scoped_ptr<Animation> anim(CreateAnimation(1));
anim->set_direction(Animation::Alternate);
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)));
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeAlternateTwoIterations) {
scoped_ptr<Animation> anim(CreateAnimation(2));
anim->set_direction(Animation::Alternate);
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25)));
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
+ .InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeAlternateTwoHalfIterations) {
scoped_ptr<Animation> anim(CreateAnimation(2.5));
anim->set_direction(Animation::Alternate);
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.50)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.75)));
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
+ .InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
+ .InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.50))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.75))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeAlternateReverseInfiniteIterations) {
scoped_ptr<Animation> anim(CreateAnimation(-1));
anim->set_direction(Animation::AlternateReverse);
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)));
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeAlternateReverseOneIteration) {
scoped_ptr<Animation> anim(CreateAnimation(1));
anim->set_direction(Animation::AlternateReverse);
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)));
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeAlternateReverseTwoIterations) {
scoped_ptr<Animation> anim(CreateAnimation(2));
anim->set_direction(Animation::AlternateReverse);
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25)));
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
+ .InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeStartTime) {
scoped_ptr<Animation> anim(CreateAnimation(1));
anim->set_start_time(TicksFromSecondsF(4));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(6.0)));
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0)).InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5))
+ .InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)).InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(6.0)).InSecondsF());
}
TEST(AnimationTest, TrimTimeStartTimeReverse) {
scoped_ptr<Animation> anim(CreateAnimation(1));
anim->set_start_time(TicksFromSecondsF(4));
anim->set_direction(Animation::Reverse);
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(6.0)));
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)).InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(6.0)).InSecondsF());
}
TEST(AnimationTest, TrimTimeTimeOffset) {
scoped_ptr<Animation> anim(CreateAnimation(1));
anim->set_time_offset(TimeDelta::FromMilliseconds(4000));
anim->set_start_time(TicksFromSecondsF(4));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
}
TEST(AnimationTest, TrimTimeTimeOffsetReverse) {
@@ -208,20 +299,28 @@ TEST(AnimationTest, TrimTimeTimeOffsetReverse) {
anim->set_time_offset(TimeDelta::FromMilliseconds(4000));
anim->set_start_time(TicksFromSecondsF(4));
anim->set_direction(Animation::Reverse);
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
}
TEST(AnimationTest, TrimTimeNegativeTimeOffset) {
scoped_ptr<Animation> anim(CreateAnimation(1));
anim->set_time_offset(TimeDelta::FromMilliseconds(-4000));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)));
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0)).InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5))
+ .InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)).InSecondsF());
}
TEST(AnimationTest, TrimTimeNegativeTimeOffsetReverse) {
@@ -229,103 +328,149 @@ TEST(AnimationTest, TrimTimeNegativeTimeOffsetReverse) {
anim->set_time_offset(TimeDelta::FromMilliseconds(-4000));
anim->set_direction(Animation::Reverse);
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)));
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)).InSecondsF());
}
TEST(AnimationTest, TrimTimePauseResume) {
scoped_ptr<Animation> anim(CreateAnimation(1));
anim->SetRunState(Animation::Running, TicksFromSecondsF(0.0));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
anim->SetRunState(Animation::Paused, TicksFromSecondsF(0.5));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)));
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
+ .InSecondsF());
anim->SetRunState(Animation::Running, TicksFromSecondsF(1024.0));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.5)));
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
+ .InSecondsF());
+ EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.5))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimePauseResumeReverse) {
scoped_ptr<Animation> anim(CreateAnimation(1));
anim->set_direction(Animation::Reverse);
anim->SetRunState(Animation::Running, TicksFromSecondsF(0.0));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
anim->SetRunState(Animation::Paused, TicksFromSecondsF(0.25));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)));
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
+ .InSecondsF());
anim->SetRunState(Animation::Running, TicksFromSecondsF(1024.0));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.75)));
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
+ .InSecondsF());
+ EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.75))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeSuspendResume) {
scoped_ptr<Animation> anim(CreateAnimation(1));
anim->SetRunState(Animation::Running, TicksFromSecondsF(0.0));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
anim->Suspend(TicksFromSecondsF(0.5));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)));
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
+ .InSecondsF());
anim->Resume(TicksFromSecondsF(1024));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.5)));
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
+ .InSecondsF());
+ EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.5))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeSuspendResumeReverse) {
scoped_ptr<Animation> anim(CreateAnimation(1));
anim->set_direction(Animation::Reverse);
anim->SetRunState(Animation::Running, TicksFromSecondsF(0.0));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)));
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
+ .InSecondsF());
anim->Suspend(TicksFromSecondsF(0.75));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)));
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
+ .InSecondsF());
anim->Resume(TicksFromSecondsF(1024));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.25)));
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
+ .InSecondsF());
+ EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.25))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeZeroDuration) {
scoped_ptr<Animation> anim(CreateAnimation(0, 0));
anim->SetRunState(Animation::Running, TicksFromSecondsF(0.0));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
+ EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
}
TEST(AnimationTest, TrimTimeStarting) {
scoped_ptr<Animation> anim(CreateAnimation(1, 5.0));
anim->SetRunState(Animation::Starting, TicksFromSecondsF(0.0));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
anim->set_time_offset(TimeDelta::FromMilliseconds(2000));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
anim->set_start_time(TicksFromSecondsF(1.0));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeNeedsSynchronizedStartTime) {
scoped_ptr<Animation> anim(CreateAnimation(1, 5.0));
anim->SetRunState(Animation::Running, TicksFromSecondsF(0.0));
anim->set_needs_synchronized_start_time(true);
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
anim->set_time_offset(TimeDelta::FromMilliseconds(2000));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
anim->set_start_time(TicksFromSecondsF(1.0));
anim->set_needs_synchronized_start_time(false);
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
+ .InSecondsF());
}
TEST(AnimationTest, IsFinishedAtZeroIterations) {
@@ -437,223 +582,362 @@ TEST(AnimationTest, RunStateChangesIgnoredWhileSuspended) {
TEST(AnimationTest, TrimTimePlaybackNormal) {
scoped_ptr<Animation> anim(CreateAnimation(1, 1, 1));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
+ EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
}
TEST(AnimationTest, TrimTimePlaybackSlow) {
scoped_ptr<Animation> anim(CreateAnimation(1, 1, 0.5));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0)));
+ EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0)).InSecondsF());
}
TEST(AnimationTest, TrimTimePlaybackFast) {
scoped_ptr<Animation> anim(CreateAnimation(1, 4, 2));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
- EXPECT_EQ(4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)));
+ EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)).InSecondsF());
+ EXPECT_EQ(
+ 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
+ EXPECT_EQ(
+ 3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)).InSecondsF());
+ EXPECT_EQ(
+ 4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
+ EXPECT_EQ(
+ 4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)).InSecondsF());
}
TEST(AnimationTest, TrimTimePlaybackNormalReverse) {
scoped_ptr<Animation> anim(CreateAnimation(1, 2, -1));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)));
- EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)));
+ EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(
+ 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)).InSecondsF());
+ EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)).InSecondsF());
}
TEST(AnimationTest, TrimTimePlaybackSlowReverse) {
scoped_ptr<Animation> anim(CreateAnimation(1, 2, -0.5));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)));
- EXPECT_EQ(1.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(1.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3)));
- EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5)));
+ EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(
+ 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)).InSecondsF());
+ EXPECT_EQ(1.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(1.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
+ .InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
+ EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3)).InSecondsF());
+ EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4)).InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5)).InSecondsF());
}
TEST(AnimationTest, TrimTimePlaybackFastReverse) {
scoped_ptr<Animation> anim(CreateAnimation(1, 2, -2));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)));
- EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
+ EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(
+ 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)).InSecondsF());
+ EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
+ .InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)).InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)).InSecondsF());
}
TEST(AnimationTest, TrimTimePlaybackFastInfiniteIterations) {
scoped_ptr<Animation> anim(CreateAnimation(-1, 4, 4));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1000.0)));
- EXPECT_EQ(2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1000.5)));
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(
+ 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)).InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
+ EXPECT_EQ(
+ 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)).InSecondsF());
+ EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1000.0))
+ .InSecondsF());
+ EXPECT_EQ(2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1000.5))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimePlaybackNormalDoubleReverse) {
scoped_ptr<Animation> anim(CreateAnimation(1, 1, -1));
anim->set_direction(Animation::Reverse);
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
+ EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
}
TEST(AnimationTest, TrimTimePlaybackFastDoubleReverse) {
scoped_ptr<Animation> anim(CreateAnimation(1, 4, -2));
anim->set_direction(Animation::Reverse);
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
- EXPECT_EQ(4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)));
+ EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(
+ 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
+ EXPECT_EQ(
+ 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)).InSecondsF());
+ EXPECT_EQ(
+ 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
+ EXPECT_EQ(
+ 3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)).InSecondsF());
+ EXPECT_EQ(
+ 4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
+ EXPECT_EQ(
+ 4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)).InSecondsF());
}
TEST(AnimationTest, TrimTimeAlternateTwoIterationsPlaybackFast) {
scoped_ptr<Animation> anim(CreateAnimation(2, 2, 2));
anim->set_direction(Animation::Alternate);
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25)));
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeAlternateTwoIterationsPlaybackFastReverse) {
scoped_ptr<Animation> anim(CreateAnimation(2, 2, 2));
anim->set_direction(Animation::AlternateReverse);
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
- EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25)));
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
+ .InSecondsF());
+ EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeAlternateTwoIterationsPlaybackFastDoubleReverse) {
scoped_ptr<Animation> anim(CreateAnimation(2, 2, -2));
anim->set_direction(Animation::AlternateReverse);
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
- EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25)));
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
+ .InSecondsF());
+ EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25))
+ .InSecondsF());
}
TEST(AnimationTest,
TrimTimeAlternateReverseThreeIterationsPlaybackFastAlternateReverse) {
scoped_ptr<Animation> anim(CreateAnimation(3, 2, -2));
anim->set_direction(Animation::AlternateReverse);
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)));
- EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.75)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.25)));
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5))
+ .InSecondsF());
+ EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.75))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.25))
+ .InSecondsF());
}
TEST(AnimationTest,
TrimTimeAlternateReverseTwoIterationsPlaybackNormalAlternate) {
scoped_ptr<Animation> anim(CreateAnimation(2, 2, -1));
anim->set_direction(Animation::Alternate);
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
- EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5)));
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
+ .InSecondsF());
+ EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
+ .InSecondsF());
+ EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeIterationStart) {
scoped_ptr<Animation> anim(CreateAnimation(2, 1, 1));
anim->set_iteration_start(0.5);
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)));
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeIterationStartAlternate) {
scoped_ptr<Animation> anim(CreateAnimation(2, 1, 1));
anim->set_direction(Animation::Alternate);
anim->set_iteration_start(0.3);
- EXPECT_EQ(0.3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(0.3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.8, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.7)));
- EXPECT_EQ(0.7, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.2)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.7)));
+ EXPECT_EQ(0.3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.8, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.7))
+ .InSecondsF());
+ EXPECT_EQ(0.7, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.2))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.7))
+ .InSecondsF());
}
TEST(AnimationTest, TrimTimeIterationStartAlternateThreeIterations) {
scoped_ptr<Animation> anim(CreateAnimation(3, 1, 1));
anim->set_direction(Animation::Alternate);
anim->set_iteration_start(1);
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5)));
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
+ .InSecondsF());
+ EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5))
+ .InSecondsF());
}
TEST(AnimationTest,
@@ -661,11 +945,16 @@ TEST(AnimationTest,
scoped_ptr<Animation> anim(CreateAnimation(3, 1, -1));
anim->set_direction(Animation::Alternate);
anim->set_iteration_start(1);
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)));
- EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0)));
- EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5)));
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
+ .InSecondsF());
+ EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0))
+ .InSecondsF());
+ EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5))
+ .InSecondsF());
}
TEST(AnimationTest, InEffectFillMode) {
diff --git a/cc/animation/keyframed_animation_curve.cc b/cc/animation/keyframed_animation_curve.cc
index 333a5c9..a6dc8c5 100644
--- a/cc/animation/keyframed_animation_curve.cc
+++ b/cc/animation/keyframed_animation_curve.cc
@@ -205,8 +205,9 @@ void KeyframedColorAnimationCurve::AddKeyframe(
InsertKeyframe(keyframe.Pass(), &keyframes_);
}
-double KeyframedColorAnimationCurve::Duration() const {
- return keyframes_.back()->Time() - keyframes_.front()->Time();
+base::TimeDelta KeyframedColorAnimationCurve::Duration() const {
+ return base::TimeDelta::FromSecondsD(keyframes_.back()->Time() -
+ keyframes_.front()->Time());
}
scoped_ptr<AnimationCurve> KeyframedColorAnimationCurve::Clone() const {
@@ -252,8 +253,9 @@ void KeyframedFloatAnimationCurve::AddKeyframe(
InsertKeyframe(keyframe.Pass(), &keyframes_);
}
-double KeyframedFloatAnimationCurve::Duration() const {
- return keyframes_.back()->Time() - keyframes_.front()->Time();
+base::TimeDelta KeyframedFloatAnimationCurve::Duration() const {
+ return base::TimeDelta::FromSecondsD(keyframes_.back()->Time() -
+ keyframes_.front()->Time());
}
scoped_ptr<AnimationCurve> KeyframedFloatAnimationCurve::Clone() const {
@@ -297,8 +299,9 @@ void KeyframedTransformAnimationCurve::AddKeyframe(
InsertKeyframe(keyframe.Pass(), &keyframes_);
}
-double KeyframedTransformAnimationCurve::Duration() const {
- return keyframes_.back()->Time() - keyframes_.front()->Time();
+base::TimeDelta KeyframedTransformAnimationCurve::Duration() const {
+ return base::TimeDelta::FromSecondsD(keyframes_.back()->Time() -
+ keyframes_.front()->Time());
}
scoped_ptr<AnimationCurve> KeyframedTransformAnimationCurve::Clone() const {
@@ -408,8 +411,9 @@ void KeyframedFilterAnimationCurve::AddKeyframe(
InsertKeyframe(keyframe.Pass(), &keyframes_);
}
-double KeyframedFilterAnimationCurve::Duration() const {
- return keyframes_.back()->Time() - keyframes_.front()->Time();
+base::TimeDelta KeyframedFilterAnimationCurve::Duration() const {
+ return base::TimeDelta::FromSecondsD(keyframes_.back()->Time() -
+ keyframes_.front()->Time());
}
scoped_ptr<AnimationCurve> KeyframedFilterAnimationCurve::Clone() const {
diff --git a/cc/animation/keyframed_animation_curve.h b/cc/animation/keyframed_animation_curve.h
index a6e6740..ff746fe 100644
--- a/cc/animation/keyframed_animation_curve.h
+++ b/cc/animation/keyframed_animation_curve.h
@@ -5,6 +5,7 @@
#ifndef CC_ANIMATION_KEYFRAMED_ANIMATION_CURVE_H_
#define CC_ANIMATION_KEYFRAMED_ANIMATION_CURVE_H_
+#include "base/time/time.h"
#include "cc/animation/animation_curve.h"
#include "cc/animation/timing_function.h"
#include "cc/animation/transform_operations.h"
@@ -126,7 +127,7 @@ class CC_EXPORT KeyframedColorAnimationCurve : public ColorAnimationCurve {
}
// AnimationCurve implementation
- double Duration() const override;
+ base::TimeDelta Duration() const override;
scoped_ptr<AnimationCurve> Clone() const override;
// BackgrounColorAnimationCurve implementation
@@ -156,7 +157,7 @@ class CC_EXPORT KeyframedFloatAnimationCurve : public FloatAnimationCurve {
}
// AnimationCurve implementation
- double Duration() const override;
+ base::TimeDelta Duration() const override;
scoped_ptr<AnimationCurve> Clone() const override;
// FloatAnimationCurve implementation
@@ -187,7 +188,7 @@ class CC_EXPORT KeyframedTransformAnimationCurve
}
// AnimationCurve implementation
- double Duration() const override;
+ base::TimeDelta Duration() const override;
scoped_ptr<AnimationCurve> Clone() const override;
// TransformAnimationCurve implementation
@@ -224,7 +225,7 @@ class CC_EXPORT KeyframedFilterAnimationCurve
}
// AnimationCurve implementation
- double Duration() const override;
+ base::TimeDelta Duration() const override;
scoped_ptr<AnimationCurve> Clone() const override;
// FilterAnimationCurve implementation
diff --git a/cc/animation/layer_animation_controller.cc b/cc/animation/layer_animation_controller.cc
index e34fc4a..f621ad3 100644
--- a/cc/animation/layer_animation_controller.cc
+++ b/cc/animation/layer_animation_controller.cc
@@ -148,7 +148,8 @@ void LayerAnimationController::AccumulatePropertyUpdates(
if (!animation->InEffect(monotonic_time))
continue;
- double trimmed = animation->TrimTimeToCurrentIteration(monotonic_time);
+ double trimmed =
+ animation->TrimTimeToCurrentIteration(monotonic_time).InSecondsF();
switch (animation->target_property()) {
case Animation::Opacity: {
AnimationEvent event(AnimationEvent::PropertyUpdate,
@@ -860,8 +861,9 @@ void LayerAnimationController::TickAnimations(base::TimeTicks monotonic_time) {
if (!animations_[i]->InEffect(monotonic_time))
continue;
- double trimmed =
- animations_[i]->TrimTimeToCurrentIteration(monotonic_time);
+ double trimmed = animations_[i]
+ ->TrimTimeToCurrentIteration(monotonic_time)
+ .InSecondsF();
switch (animations_[i]->target_property()) {
case Animation::Transform: {
diff --git a/cc/animation/layer_animation_controller_unittest.cc b/cc/animation/layer_animation_controller_unittest.cc
index 49ac0a5..4fa3d84 100644
--- a/cc/animation/layer_animation_controller_unittest.cc
+++ b/cc/animation/layer_animation_controller_unittest.cc
@@ -673,14 +673,11 @@ TEST(LayerAnimationControllerTest, ScrollOffsetTransition) {
controller->PushAnimationUpdatesTo(controller_impl.get());
controller_impl->ActivateAnimations();
EXPECT_TRUE(controller_impl->GetAnimation(Animation::ScrollOffset));
- double duration_in_seconds =
- controller_impl->GetAnimation(Animation::ScrollOffset)
- ->curve()
- ->Duration();
- TimeDelta duration = TimeDelta::FromMicroseconds(
- duration_in_seconds * base::Time::kMicrosecondsPerSecond);
+ TimeDelta duration = controller_impl->GetAnimation(Animation::ScrollOffset)
+ ->curve()
+ ->Duration();
EXPECT_EQ(
- duration_in_seconds,
+ duration,
controller->GetAnimation(Animation::ScrollOffset)->curve()->Duration());
controller->Animate(kInitialTickTime);
@@ -755,12 +752,11 @@ TEST(LayerAnimationControllerTest, ScrollOffsetTransitionNoImplProvider) {
controller->PushAnimationUpdatesTo(controller_impl.get());
controller_impl->ActivateAnimations();
EXPECT_TRUE(controller_impl->GetAnimation(Animation::ScrollOffset));
- double duration_in_seconds =
- controller_impl->GetAnimation(Animation::ScrollOffset)
- ->curve()
- ->Duration();
+ TimeDelta duration = controller_impl->GetAnimation(Animation::ScrollOffset)
+ ->curve()
+ ->Duration();
EXPECT_EQ(
- duration_in_seconds,
+ duration,
controller->GetAnimation(Animation::ScrollOffset)->curve()->Duration());
controller->Animate(kInitialTickTime);
@@ -776,8 +772,6 @@ TEST(LayerAnimationControllerTest, ScrollOffsetTransitionNoImplProvider) {
const AnimationEvent* event = GetMostRecentPropertyUpdateEvent(events.get());
EXPECT_FALSE(event);
- TimeDelta duration = TimeDelta::FromMicroseconds(
- duration_in_seconds * base::Time::kMicrosecondsPerSecond);
controller->NotifyAnimationStarted((*events)[0]);
controller->Animate(kInitialTickTime + duration / 2);
@@ -820,7 +814,7 @@ TEST(LayerAnimationControllerTest, ScrollOffsetTransitionOnImplOnly) {
target_value,
EaseInOutTimingFunction::Create().Pass()));
curve->SetInitialValue(initial_value);
- double duration_in_seconds = curve->Duration();
+ double duration_in_seconds = curve->Duration().InSecondsF();
scoped_ptr<Animation> animation(
Animation::Create(curve.Pass(), 1, 0, Animation::ScrollOffset));
diff --git a/cc/animation/scroll_offset_animation_curve.cc b/cc/animation/scroll_offset_animation_curve.cc
index 641c9e0..e0b1a3b5 100644
--- a/cc/animation/scroll_offset_animation_curve.cc
+++ b/cc/animation/scroll_offset_animation_curve.cc
@@ -83,8 +83,8 @@ gfx::ScrollOffset ScrollOffsetAnimationCurve::GetValue(double t) const {
progress, initial_value_.y(), target_value_.y()));
}
-double ScrollOffsetAnimationCurve::Duration() const {
- return total_animation_duration_.InSecondsF();
+base::TimeDelta ScrollOffsetAnimationCurve::Duration() const {
+ return total_animation_duration_;
}
AnimationCurve::CurveType ScrollOffsetAnimationCurve::Type() const {
diff --git a/cc/animation/scroll_offset_animation_curve.h b/cc/animation/scroll_offset_animation_curve.h
index 0c8692a..50dfb17 100644
--- a/cc/animation/scroll_offset_animation_curve.h
+++ b/cc/animation/scroll_offset_animation_curve.h
@@ -29,7 +29,7 @@ class CC_EXPORT ScrollOffsetAnimationCurve : public AnimationCurve {
void UpdateTarget(double t, const gfx::ScrollOffset& new_target);
// AnimationCurve implementation
- double Duration() const override;
+ base::TimeDelta Duration() const override;
CurveType Type() const override;
scoped_ptr<AnimationCurve> Clone() const override;
diff --git a/cc/animation/scroll_offset_animation_curve_unittest.cc b/cc/animation/scroll_offset_animation_curve_unittest.cc
index d89784a0..d57814e 100644
--- a/cc/animation/scroll_offset_animation_curve_unittest.cc
+++ b/cc/animation/scroll_offset_animation_curve_unittest.cc
@@ -19,39 +19,39 @@ TEST(ScrollOffsetAnimationCurveTest, Duration) {
EaseInOutTimingFunction::Create().Pass()));
curve->SetInitialValue(target_value);
- EXPECT_DOUBLE_EQ(0.0, curve->Duration());
+ EXPECT_DOUBLE_EQ(0.0, curve->Duration().InSecondsF());
// x decreases, y stays the same.
curve->SetInitialValue(gfx::ScrollOffset(136.f, 200.f));
- EXPECT_DOUBLE_EQ(0.1, curve->Duration());
+ EXPECT_DOUBLE_EQ(0.1, curve->Duration().InSecondsF());
// x increases, y stays the same.
curve->SetInitialValue(gfx::ScrollOffset(19.f, 200.f));
- EXPECT_DOUBLE_EQ(0.15, curve->Duration());
+ EXPECT_DOUBLE_EQ(0.15, curve->Duration().InSecondsF());
// x stays the same, y decreases.
curve->SetInitialValue(gfx::ScrollOffset(100.f, 344.f));
- EXPECT_DOUBLE_EQ(0.2, curve->Duration());
+ EXPECT_DOUBLE_EQ(0.2, curve->Duration().InSecondsF());
// x stays the same, y increases.
curve->SetInitialValue(gfx::ScrollOffset(100.f, 191.f));
- EXPECT_DOUBLE_EQ(0.05, curve->Duration());
+ EXPECT_DOUBLE_EQ(0.05, curve->Duration().InSecondsF());
// x decreases, y decreases.
curve->SetInitialValue(gfx::ScrollOffset(32500.f, 500.f));
- EXPECT_DOUBLE_EQ(3.0, curve->Duration());
+ EXPECT_DOUBLE_EQ(3.0, curve->Duration().InSecondsF());
// x decreases, y increases.
curve->SetInitialValue(gfx::ScrollOffset(150.f, 119.f));
- EXPECT_DOUBLE_EQ(0.15, curve->Duration());
+ EXPECT_DOUBLE_EQ(0.15, curve->Duration().InSecondsF());
// x increases, y decreases.
curve->SetInitialValue(gfx::ScrollOffset(0.f, 14600.f));
- EXPECT_DOUBLE_EQ(2.0, curve->Duration());
+ EXPECT_DOUBLE_EQ(2.0, curve->Duration().InSecondsF());
// x increases, y increases.
curve->SetInitialValue(gfx::ScrollOffset(95.f, 191.f));
- EXPECT_DOUBLE_EQ(0.05, curve->Duration());
+ EXPECT_DOUBLE_EQ(0.05, curve->Duration().InSecondsF());
}
TEST(ScrollOffsetAnimationCurveTest, GetValue) {
@@ -63,22 +63,22 @@ TEST(ScrollOffsetAnimationCurveTest, GetValue) {
EaseInOutTimingFunction::Create().Pass()));
curve->SetInitialValue(initial_value);
- double duration = curve->Duration();
- EXPECT_GT(curve->Duration(), 0);
- EXPECT_LT(curve->Duration(), 0.1);
+ double duration_in_seconds = curve->Duration().InSecondsF();
+ EXPECT_GT(curve->Duration().InSecondsF(), 0);
+ EXPECT_LT(curve->Duration().InSecondsF(), 0.1);
EXPECT_EQ(AnimationCurve::ScrollOffset, curve->Type());
- EXPECT_EQ(duration, curve->Duration());
+ EXPECT_EQ(duration_in_seconds, curve->Duration().InSecondsF());
EXPECT_VECTOR2DF_EQ(initial_value, curve->GetValue(-1.0));
EXPECT_VECTOR2DF_EQ(initial_value, curve->GetValue(0.0));
EXPECT_VECTOR2DF_EQ(gfx::ScrollOffset(6.f, 30.f),
- curve->GetValue(duration/2.0));
- EXPECT_VECTOR2DF_EQ(target_value, curve->GetValue(duration));
- EXPECT_VECTOR2DF_EQ(target_value, curve->GetValue(duration+1.0));
+ curve->GetValue(duration_in_seconds / 2.0));
+ EXPECT_VECTOR2DF_EQ(target_value, curve->GetValue(duration_in_seconds));
+ EXPECT_VECTOR2DF_EQ(target_value, curve->GetValue(duration_in_seconds + 1.0));
// Verify that GetValue takes the timing function into account.
- gfx::ScrollOffset value = curve->GetValue(duration/4.0);
+ gfx::ScrollOffset value = curve->GetValue(duration_in_seconds / 4.0);
EXPECT_NEAR(3.0333f, value.x(), 0.00015f);
EXPECT_NEAR(37.4168f, value.y(), 0.00015f);
}
@@ -92,30 +92,30 @@ TEST(ScrollOffsetAnimationCurveTest, Clone) {
target_value,
EaseInOutTimingFunction::Create().Pass()));
curve->SetInitialValue(initial_value);
- double duration = curve->Duration();
+ double duration_in_seconds = curve->Duration().InSecondsF();
scoped_ptr<AnimationCurve> clone(curve->Clone().Pass());
EXPECT_EQ(AnimationCurve::ScrollOffset, clone->Type());
- EXPECT_EQ(duration, clone->Duration());
+ EXPECT_EQ(duration_in_seconds, clone->Duration().InSecondsF());
EXPECT_VECTOR2DF_EQ(initial_value,
clone->ToScrollOffsetAnimationCurve()->GetValue(-1.0));
EXPECT_VECTOR2DF_EQ(initial_value,
clone->ToScrollOffsetAnimationCurve()->GetValue(0.0));
- EXPECT_VECTOR2DF_EQ(
- gfx::ScrollOffset(6.f, 30.f),
- clone->ToScrollOffsetAnimationCurve()->GetValue(duration / 2.0));
- EXPECT_VECTOR2DF_EQ(
- target_value,
- clone->ToScrollOffsetAnimationCurve()->GetValue(duration));
+ EXPECT_VECTOR2DF_EQ(gfx::ScrollOffset(6.f, 30.f),
+ clone->ToScrollOffsetAnimationCurve()->GetValue(
+ duration_in_seconds / 2.0));
EXPECT_VECTOR2DF_EQ(
target_value,
- clone->ToScrollOffsetAnimationCurve()->GetValue(duration + 1.0));
+ clone->ToScrollOffsetAnimationCurve()->GetValue(duration_in_seconds));
+ EXPECT_VECTOR2DF_EQ(target_value,
+ clone->ToScrollOffsetAnimationCurve()->GetValue(
+ duration_in_seconds + 1.0));
// Verify that the timing function was cloned correctly.
- gfx::ScrollOffset value =
- clone->ToScrollOffsetAnimationCurve()->GetValue(duration / 4.0);
+ gfx::ScrollOffset value = clone->ToScrollOffsetAnimationCurve()->GetValue(
+ duration_in_seconds / 4.0);
EXPECT_NEAR(3.0333f, value.x(), 0.00015f);
EXPECT_NEAR(37.4168f, value.y(), 0.00015f);
}
@@ -127,20 +127,20 @@ TEST(ScrollOffsetAnimationCurveTest, UpdateTarget) {
ScrollOffsetAnimationCurve::Create(
target_value, EaseInOutTimingFunction::Create().Pass()));
curve->SetInitialValue(initial_value);
- EXPECT_EQ(1.0, curve->Duration());
+ EXPECT_EQ(1.0, curve->Duration().InSecondsF());
EXPECT_EQ(1800.0, curve->GetValue(0.5).y());
EXPECT_EQ(3600.0, curve->GetValue(1.0).y());
curve->UpdateTarget(0.5, gfx::ScrollOffset(0.0, 9900.0));
- EXPECT_EQ(2.0, curve->Duration());
+ EXPECT_EQ(2.0, curve->Duration().InSecondsF());
EXPECT_EQ(1800.0, curve->GetValue(0.5).y());
EXPECT_NEAR(5566.49, curve->GetValue(1.0).y(), 0.01);
EXPECT_EQ(9900.0, curve->GetValue(2.0).y());
curve->UpdateTarget(1.0, gfx::ScrollOffset(0.0, 7200.0));
- EXPECT_NEAR(1.674, curve->Duration(), 0.01);
+ EXPECT_NEAR(1.674, curve->Duration().InSecondsF(), 0.01);
EXPECT_NEAR(5566.49, curve->GetValue(1.0).y(), 0.01);
EXPECT_EQ(7200.0, curve->GetValue(1.674).y());
}
diff --git a/cc/base/time_util.h b/cc/base/time_util.h
new file mode 100644
index 0000000..dc07e74
--- /dev/null
+++ b/cc/base/time_util.h
@@ -0,0 +1,30 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CC_BASE_TIME_UTIL_H_
+#define CC_BASE_TIME_UTIL_H_
+
+namespace base {
+class TimeDelta;
+}
+
+namespace cc {
+
+class CC_EXPORT TimeUtil {
+ public:
+ static base::TimeDelta Scale(base::TimeDelta time_delta, double value) {
+ return base::TimeDelta::FromInternalValue(static_cast<int64>(
+ static_cast<double>(time_delta.ToInternalValue()) * value));
+ }
+
+ static base::TimeDelta Mod(base::TimeDelta dividend,
+ base::TimeDelta divisor) {
+ return base::TimeDelta::FromInternalValue(dividend.ToInternalValue() %
+ divisor.ToInternalValue());
+ }
+};
+
+} // namespace cc
+
+#endif // CC_BASE_TIME_UTIL_H_
diff --git a/cc/blink/web_scroll_offset_animation_curve_impl.cc b/cc/blink/web_scroll_offset_animation_curve_impl.cc
index e789631..ba55d5b 100644
--- a/cc/blink/web_scroll_offset_animation_curve_impl.cc
+++ b/cc/blink/web_scroll_offset_animation_curve_impl.cc
@@ -39,7 +39,7 @@ WebFloatPoint WebScrollOffsetAnimationCurveImpl::getValue(double time) const {
}
double WebScrollOffsetAnimationCurveImpl::duration() const {
- return curve_->Duration();
+ return curve_->Duration().InSecondsF();
}
scoped_ptr<cc::AnimationCurve>
diff --git a/cc/cc.gyp b/cc/cc.gyp
index 2552f9e..21fb242 100644
--- a/cc/cc.gyp
+++ b/cc/cc.gyp
@@ -92,6 +92,7 @@
'base/switches.h',
'base/tiling_data.cc',
'base/tiling_data.h',
+ 'base/time_util.h',
'base/unique_notifier.cc',
'base/unique_notifier.h',
'base/util.h',
diff --git a/cc/test/animation_test_common.cc b/cc/test/animation_test_common.cc
index 5ab8942..fba3166 100644
--- a/cc/test/animation_test_common.cc
+++ b/cc/test/animation_test_common.cc
@@ -124,14 +124,16 @@ int AddAnimatedFilter(Target* target,
}
FakeFloatAnimationCurve::FakeFloatAnimationCurve()
- : duration_(1.0) {}
+ : duration_(base::TimeDelta::FromSecondsD(1.0)) {
+}
FakeFloatAnimationCurve::FakeFloatAnimationCurve(double duration)
- : duration_(duration) {}
+ : duration_(base::TimeDelta::FromSecondsD(duration)) {
+}
FakeFloatAnimationCurve::~FakeFloatAnimationCurve() {}
-double FakeFloatAnimationCurve::Duration() const {
+base::TimeDelta FakeFloatAnimationCurve::Duration() const {
return duration_;
}
@@ -144,11 +146,12 @@ scoped_ptr<AnimationCurve> FakeFloatAnimationCurve::Clone() const {
}
FakeTransformTransition::FakeTransformTransition(double duration)
- : duration_(duration) {}
+ : duration_(base::TimeDelta::FromSecondsD(duration)) {
+}
FakeTransformTransition::~FakeTransformTransition() {}
-double FakeTransformTransition::Duration() const {
+base::TimeDelta FakeTransformTransition::Duration() const {
return duration_;
}
@@ -175,18 +178,18 @@ scoped_ptr<AnimationCurve> FakeTransformTransition::Clone() const {
return make_scoped_ptr(new FakeTransformTransition(*this));
}
-
FakeFloatTransition::FakeFloatTransition(double duration, float from, float to)
- : duration_(duration), from_(from), to_(to) {}
+ : duration_(base::TimeDelta::FromSecondsD(duration)), from_(from), to_(to) {
+}
FakeFloatTransition::~FakeFloatTransition() {}
-double FakeFloatTransition::Duration() const {
+base::TimeDelta FakeFloatTransition::Duration() const {
return duration_;
}
float FakeFloatTransition::GetValue(double time) const {
- time /= duration_;
+ time /= duration_.InSecondsF();
if (time >= 1.0)
time = 1.0;
return (1.0 - time) * from_ + time * to_;
diff --git a/cc/test/animation_test_common.h b/cc/test/animation_test_common.h
index 328ae84..a69f0c9 100644
--- a/cc/test/animation_test_common.h
+++ b/cc/test/animation_test_common.h
@@ -26,12 +26,12 @@ class FakeFloatAnimationCurve : public FloatAnimationCurve {
explicit FakeFloatAnimationCurve(double duration);
~FakeFloatAnimationCurve() override;
- double Duration() const override;
+ base::TimeDelta Duration() const override;
float GetValue(double now) const override;
scoped_ptr<AnimationCurve> Clone() const override;
private:
- double duration_;
+ base::TimeDelta duration_;
};
class FakeTransformTransition : public TransformAnimationCurve {
@@ -39,7 +39,7 @@ class FakeTransformTransition : public TransformAnimationCurve {
explicit FakeTransformTransition(double duration);
~FakeTransformTransition() override;
- double Duration() const override;
+ base::TimeDelta Duration() const override;
gfx::Transform GetValue(double time) const override;
bool AnimatedBoundsForBox(const gfx::BoxF& box,
gfx::BoxF* bounds) const override;
@@ -51,7 +51,7 @@ class FakeTransformTransition : public TransformAnimationCurve {
scoped_ptr<AnimationCurve> Clone() const override;
private:
- double duration_;
+ base::TimeDelta duration_;
};
class FakeFloatTransition : public FloatAnimationCurve {
@@ -59,13 +59,13 @@ class FakeFloatTransition : public FloatAnimationCurve {
FakeFloatTransition(double duration, float from, float to);
~FakeFloatTransition() override;
- double Duration() const override;
+ base::TimeDelta Duration() const override;
float GetValue(double time) const override;
scoped_ptr<AnimationCurve> Clone() const override;
private:
- double duration_;
+ base::TimeDelta duration_;
float from_;
float to_;
};
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index cfe9c4f..a2f4f32 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -2369,9 +2369,10 @@ InputHandler::ScrollStatus LayerTreeHostImpl::ScrollAnimated(
new_target.SetToMax(gfx::ScrollOffset());
new_target.SetToMin(layer_impl->MaxScrollOffset());
- curve->UpdateTarget(animation->TrimTimeToCurrentIteration(
- CurrentBeginFrameArgs().frame_time),
- new_target);
+ curve->UpdateTarget(
+ animation->TrimTimeToCurrentIteration(
+ CurrentBeginFrameArgs().frame_time).InSecondsF(),
+ new_target);
return ScrollStarted;
}
diff --git a/cc/trees/layer_tree_host_unittest_animation.cc b/cc/trees/layer_tree_host_unittest_animation.cc
index 470be01..9c346e2 100644
--- a/cc/trees/layer_tree_host_unittest_animation.cc
+++ b/cc/trees/layer_tree_host_unittest_animation.cc
@@ -504,10 +504,10 @@ class LayerTreeHostAnimationTestAddAnimationWithTimingFunction
const FloatAnimationCurve* curve =
animation->curve()->ToFloatAnimationCurve();
float start_opacity = curve->GetValue(0.0);
- float end_opacity = curve->GetValue(curve->Duration());
+ float end_opacity = curve->GetValue(curve->Duration().InSecondsF());
float linearly_interpolated_opacity =
0.25f * end_opacity + 0.75f * start_opacity;
- double time = curve->Duration() * 0.25;
+ double time = curve->Duration().InSecondsF() * 0.25;
// If the linear timing function associated with this animation was not
// picked up, then the linearly interpolated opacity would be different
// because of the default ease timing function.
diff --git a/ui/compositor/float_animation_curve_adapter.cc b/ui/compositor/float_animation_curve_adapter.cc
index 308fc1e..3b5e155 100644
--- a/ui/compositor/float_animation_curve_adapter.cc
+++ b/ui/compositor/float_animation_curve_adapter.cc
@@ -17,8 +17,8 @@ FloatAnimationCurveAdapter::FloatAnimationCurveAdapter(
duration_(duration) {
}
-double FloatAnimationCurveAdapter::Duration() const {
- return duration_.InSecondsF();
+base::TimeDelta FloatAnimationCurveAdapter::Duration() const {
+ return duration_;
}
scoped_ptr<cc::AnimationCurve> FloatAnimationCurveAdapter::Clone() const {
diff --git a/ui/compositor/float_animation_curve_adapter.h b/ui/compositor/float_animation_curve_adapter.h
index 1c7b8b3..88d5870 100644
--- a/ui/compositor/float_animation_curve_adapter.h
+++ b/ui/compositor/float_animation_curve_adapter.h
@@ -21,7 +21,7 @@ class FloatAnimationCurveAdapter : public cc::FloatAnimationCurve {
~FloatAnimationCurveAdapter() override {}
// FloatAnimationCurve implementation.
- double Duration() const override;
+ base::TimeDelta Duration() const override;
scoped_ptr<cc::AnimationCurve> Clone() const override;
float GetValue(double t) const override;
diff --git a/ui/compositor/transform_animation_curve_adapter.cc b/ui/compositor/transform_animation_curve_adapter.cc
index fa73140..2c11488 100644
--- a/ui/compositor/transform_animation_curve_adapter.cc
+++ b/ui/compositor/transform_animation_curve_adapter.cc
@@ -22,8 +22,8 @@ TransformAnimationCurveAdapter::TransformAnimationCurveAdapter(
TransformAnimationCurveAdapter::~TransformAnimationCurveAdapter() {
}
-double TransformAnimationCurveAdapter::Duration() const {
- return duration_.InSecondsF();
+base::TimeDelta TransformAnimationCurveAdapter::Duration() const {
+ return duration_;
}
scoped_ptr<cc::AnimationCurve> TransformAnimationCurveAdapter::Clone() const {
@@ -86,8 +86,8 @@ InverseTransformCurveAdapter::InverseTransformCurveAdapter(
InverseTransformCurveAdapter::~InverseTransformCurveAdapter() {
}
-double InverseTransformCurveAdapter::Duration() const {
- return duration_.InSeconds();
+base::TimeDelta InverseTransformCurveAdapter::Duration() const {
+ return duration_;
}
scoped_ptr<cc::AnimationCurve> InverseTransformCurveAdapter::Clone() const {
diff --git a/ui/compositor/transform_animation_curve_adapter.h b/ui/compositor/transform_animation_curve_adapter.h
index 7aa318e..c08024d 100644
--- a/ui/compositor/transform_animation_curve_adapter.h
+++ b/ui/compositor/transform_animation_curve_adapter.h
@@ -25,7 +25,7 @@ class COMPOSITOR_EXPORT TransformAnimationCurveAdapter
~TransformAnimationCurveAdapter() override;
// TransformAnimationCurve implementation.
- double Duration() const override;
+ base::TimeDelta Duration() const override;
scoped_ptr<AnimationCurve> Clone() const override;
gfx::Transform GetValue(double t) const override;
bool AnimatedBoundsForBox(const gfx::BoxF& box,
@@ -55,7 +55,7 @@ class COMPOSITOR_EXPORT InverseTransformCurveAdapter
~InverseTransformCurveAdapter() override;
- double Duration() const override;
+ base::TimeDelta Duration() const override;
scoped_ptr<AnimationCurve> Clone() const override;
gfx::Transform GetValue(double t) const override;
bool AnimatedBoundsForBox(const gfx::BoxF& box,