Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1101)

Unified Diff: cc/animation/keyframed_animation_curve.cc

Issue 719453007: Make Keyframe use TimeTicks/TimeDelta to represent time instead of double. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/animation/keyframed_animation_curve.h ('k') | cc/animation/keyframed_animation_curve_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/animation/keyframed_animation_curve.cc
diff --git a/cc/animation/keyframed_animation_curve.cc b/cc/animation/keyframed_animation_curve.cc
index a6dc8c537e63fc1e33ed421e4b5925f3cb8ea8af..9642329ebe7728ea158789e4d5befe443d547e13 100644
--- a/cc/animation/keyframed_animation_curve.cc
+++ b/cc/animation/keyframed_animation_curve.cc
@@ -5,6 +5,7 @@
#include <algorithm>
#include "cc/animation/keyframed_animation_curve.h"
+#include "cc/base/time_util.h"
#include "ui/gfx/animation/tween.h"
#include "ui/gfx/geometry/box_f.h"
@@ -30,16 +31,18 @@ void InsertKeyframe(scoped_ptr<KeyframeType> keyframe,
}
template <typename KeyframeType>
-double TransformedAnimationTime(
+base::TimeDelta TransformedAnimationTime(
const ScopedPtrVector<KeyframeType>& keyframes,
const scoped_ptr<TimingFunction>& timing_function,
- double time) {
+ base::TimeDelta time) {
if (timing_function) {
- double start_time = keyframes.front()->Time();
- double duration = keyframes.back()->Time() - start_time;
- double progress = (time - start_time) / duration;
+ base::TimeDelta start_time = keyframes.front()->Time();
+ base::TimeDelta duration =
+ keyframes.back()->Time() - keyframes.front()->Time();
+ double progress = TimeUtil::Divide(time - start_time, duration);
- time = timing_function->GetValue(progress) * duration + start_time;
+ time = TimeUtil::Scale(duration, timing_function->GetValue(progress)) +
+ start_time;
}
return time;
@@ -47,7 +50,7 @@ double TransformedAnimationTime(
template <typename KeyframeType>
size_t GetActiveKeyframe(const ScopedPtrVector<KeyframeType>& keyframes,
- double time) {
+ base::TimeDelta time) {
DCHECK_GE(keyframes.size(), 2ul);
size_t i = 0;
for (; i < keyframes.size() - 2; ++i) { // Last keyframe is never active.
@@ -61,10 +64,11 @@ size_t GetActiveKeyframe(const ScopedPtrVector<KeyframeType>& keyframes,
template <typename KeyframeType>
double TransformedKeyframeProgress(
const ScopedPtrVector<KeyframeType>& keyframes,
- double time,
+ base::TimeDelta time,
size_t i) {
- double progress = (time - keyframes[i]->Time()) /
- (keyframes[i + 1]->Time() - keyframes[i]->Time());
+ double progress =
+ TimeUtil::Divide(time - keyframes[i]->Time(),
+ keyframes[i + 1]->Time() - keyframes[i]->Time());
if (keyframes[i]->timing_function()) {
progress = keyframes[i]->timing_function()->GetValue(progress);
@@ -75,29 +79,30 @@ double TransformedKeyframeProgress(
} // namespace
-Keyframe::Keyframe(double time, scoped_ptr<TimingFunction> timing_function)
- : time_(time),
- timing_function_(timing_function.Pass()) {}
+Keyframe::Keyframe(base::TimeDelta time,
+ scoped_ptr<TimingFunction> timing_function)
+ : time_(time), timing_function_(timing_function.Pass()) {
+}
Keyframe::~Keyframe() {}
-double Keyframe::Time() const {
+base::TimeDelta Keyframe::Time() const {
return time_;
}
scoped_ptr<ColorKeyframe> ColorKeyframe::Create(
- double time,
+ base::TimeDelta time,
SkColor value,
scoped_ptr<TimingFunction> timing_function) {
return make_scoped_ptr(
new ColorKeyframe(time, value, timing_function.Pass()));
}
-ColorKeyframe::ColorKeyframe(double time,
+ColorKeyframe::ColorKeyframe(base::TimeDelta time,
SkColor value,
scoped_ptr<TimingFunction> timing_function)
- : Keyframe(time, timing_function.Pass()),
- value_(value) {}
+ : Keyframe(time, timing_function.Pass()), value_(value) {
+}
ColorKeyframe::~ColorKeyframe() {}
@@ -111,18 +116,18 @@ scoped_ptr<ColorKeyframe> ColorKeyframe::Clone() const {
}
scoped_ptr<FloatKeyframe> FloatKeyframe::Create(
- double time,
+ base::TimeDelta time,
float value,
scoped_ptr<TimingFunction> timing_function) {
return make_scoped_ptr(
new FloatKeyframe(time, value, timing_function.Pass()));
}
-FloatKeyframe::FloatKeyframe(double time,
+FloatKeyframe::FloatKeyframe(base::TimeDelta time,
float value,
scoped_ptr<TimingFunction> timing_function)
- : Keyframe(time, timing_function.Pass()),
- value_(value) {}
+ : Keyframe(time, timing_function.Pass()), value_(value) {
+}
FloatKeyframe::~FloatKeyframe() {}
@@ -138,18 +143,18 @@ scoped_ptr<FloatKeyframe> FloatKeyframe::Clone() const {
}
scoped_ptr<TransformKeyframe> TransformKeyframe::Create(
- double time,
+ base::TimeDelta time,
const TransformOperations& value,
scoped_ptr<TimingFunction> timing_function) {
return make_scoped_ptr(
new TransformKeyframe(time, value, timing_function.Pass()));
}
-TransformKeyframe::TransformKeyframe(double time,
+TransformKeyframe::TransformKeyframe(base::TimeDelta time,
const TransformOperations& value,
scoped_ptr<TimingFunction> timing_function)
- : Keyframe(time, timing_function.Pass()),
- value_(value) {}
+ : Keyframe(time, timing_function.Pass()), value_(value) {
+}
TransformKeyframe::~TransformKeyframe() {}
@@ -165,18 +170,18 @@ scoped_ptr<TransformKeyframe> TransformKeyframe::Clone() const {
}
scoped_ptr<FilterKeyframe> FilterKeyframe::Create(
- double time,
+ base::TimeDelta time,
const FilterOperations& value,
scoped_ptr<TimingFunction> timing_function) {
return make_scoped_ptr(
new FilterKeyframe(time, value, timing_function.Pass()));
}
-FilterKeyframe::FilterKeyframe(double time,
+FilterKeyframe::FilterKeyframe(base::TimeDelta time,
const FilterOperations& value,
scoped_ptr<TimingFunction> timing_function)
- : Keyframe(time, timing_function.Pass()),
- value_(value) {}
+ : Keyframe(time, timing_function.Pass()), value_(value) {
+}
FilterKeyframe::~FilterKeyframe() {}
@@ -206,8 +211,7 @@ void KeyframedColorAnimationCurve::AddKeyframe(
}
base::TimeDelta KeyframedColorAnimationCurve::Duration() const {
- return base::TimeDelta::FromSecondsD(keyframes_.back()->Time() -
- keyframes_.front()->Time());
+ return keyframes_.back()->Time() - keyframes_.front()->Time();
}
scoped_ptr<AnimationCurve> KeyframedColorAnimationCurve::Clone() const {
@@ -222,7 +226,7 @@ scoped_ptr<AnimationCurve> KeyframedColorAnimationCurve::Clone() const {
return to_return.Pass();
}
-SkColor KeyframedColorAnimationCurve::GetValue(double t) const {
+SkColor KeyframedColorAnimationCurve::GetValue(base::TimeDelta t) const {
if (t <= keyframes_.front()->Time())
return keyframes_.front()->Value();
@@ -254,8 +258,7 @@ void KeyframedFloatAnimationCurve::AddKeyframe(
}
base::TimeDelta KeyframedFloatAnimationCurve::Duration() const {
- return base::TimeDelta::FromSecondsD(keyframes_.back()->Time() -
- keyframes_.front()->Time());
+ return keyframes_.back()->Time() - keyframes_.front()->Time();
}
scoped_ptr<AnimationCurve> KeyframedFloatAnimationCurve::Clone() const {
@@ -270,7 +273,7 @@ scoped_ptr<AnimationCurve> KeyframedFloatAnimationCurve::Clone() const {
return to_return.Pass();
}
-float KeyframedFloatAnimationCurve::GetValue(double t) const {
+float KeyframedFloatAnimationCurve::GetValue(base::TimeDelta t) const {
if (t <= keyframes_.front()->Time())
return keyframes_.front()->Value();
@@ -300,8 +303,7 @@ void KeyframedTransformAnimationCurve::AddKeyframe(
}
base::TimeDelta KeyframedTransformAnimationCurve::Duration() const {
- return base::TimeDelta::FromSecondsD(keyframes_.back()->Time() -
- keyframes_.front()->Time());
+ return keyframes_.back()->Time() - keyframes_.front()->Time();
}
scoped_ptr<AnimationCurve> KeyframedTransformAnimationCurve::Clone() const {
@@ -316,7 +318,8 @@ scoped_ptr<AnimationCurve> KeyframedTransformAnimationCurve::Clone() const {
return to_return.Pass();
}
-gfx::Transform KeyframedTransformAnimationCurve::GetValue(double t) const {
+gfx::Transform KeyframedTransformAnimationCurve::GetValue(
+ base::TimeDelta t) const {
if (t <= keyframes_.front()->Time())
return keyframes_.front()->Value().Apply();
@@ -412,8 +415,7 @@ void KeyframedFilterAnimationCurve::AddKeyframe(
}
base::TimeDelta KeyframedFilterAnimationCurve::Duration() const {
- return base::TimeDelta::FromSecondsD(keyframes_.back()->Time() -
- keyframes_.front()->Time());
+ return keyframes_.back()->Time() - keyframes_.front()->Time();
}
scoped_ptr<AnimationCurve> KeyframedFilterAnimationCurve::Clone() const {
@@ -428,7 +430,8 @@ scoped_ptr<AnimationCurve> KeyframedFilterAnimationCurve::Clone() const {
return to_return.Pass();
}
-FilterOperations KeyframedFilterAnimationCurve::GetValue(double t) const {
+FilterOperations KeyframedFilterAnimationCurve::GetValue(
+ base::TimeDelta t) const {
if (t <= keyframes_.front()->Time())
return keyframes_.front()->Value();
« no previous file with comments | « cc/animation/keyframed_animation_curve.h ('k') | cc/animation/keyframed_animation_curve_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698