summaryrefslogtreecommitdiffstats
path: root/cc/test
diff options
context:
space:
mode:
authordanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-08 11:53:26 +0000
committerdanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-08 11:53:26 +0000
commit6a9cff9d269299bd3c1897d9d8c73cac25d8a588 (patch)
tree6d698f959963e5015ab0da7e69d836d7d3eeaa89 /cc/test
parentd9feb04b5ee64242dfdd2e128cfe265805cdb3d1 (diff)
downloadchromium_src-6a9cff9d269299bd3c1897d9d8c73cac25d8a588.zip
chromium_src-6a9cff9d269299bd3c1897d9d8c73cac25d8a588.tar.gz
chromium_src-6a9cff9d269299bd3c1897d9d8c73cac25d8a588.tar.bz2
cc: Do not save the rasterScale for layers until they are finished animating transforms.
Currently we save the rasterScale for a layer the first time we see it. However, if the layer is animating, the value we save isn't very accurate. Instead, avoid saving the value until the animation is complete. Tests: cc_unittests:LayerTreeHostCommonTest.verifyContentsScaleForAnimatingLayer R=enne BUG=159937 Review URL: https://chromiumcodereview.appspot.com/11362151 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166660 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/test')
-rw-r--r--cc/test/animation_test_common.cc41
-rw-r--r--cc/test/animation_test_common.h12
2 files changed, 30 insertions, 23 deletions
diff --git a/cc/test/animation_test_common.cc b/cc/test/animation_test_common.cc
index 5033377..9b8bff0 100644
--- a/cc/test/animation_test_common.cc
+++ b/cc/test/animation_test_common.cc
@@ -16,8 +16,10 @@ using namespace cc;
namespace {
+static int nextAnimationId = 0;
+
template <class Target>
-void addOpacityTransition(Target& target, double duration, float startOpacity, float endOpacity, bool useTimingFunction)
+int addOpacityTransition(Target& target, double duration, float startOpacity, float endOpacity, bool useTimingFunction)
{
scoped_ptr<KeyframedFloatAnimationCurve> curve(KeyframedFloatAnimationCurve::create());
@@ -28,16 +30,18 @@ void addOpacityTransition(Target& target, double duration, float startOpacity, f
curve->addKeyframe(FloatKeyframe::create(0, startOpacity, func.Pass()));
curve->addKeyframe(FloatKeyframe::create(duration, endOpacity, scoped_ptr<cc::TimingFunction>()));
- scoped_ptr<ActiveAnimation> animation(ActiveAnimation::create(curve.PassAs<AnimationCurve>(), 0, 0, ActiveAnimation::Opacity));
+ int id = nextAnimationId++;
+
+ scoped_ptr<ActiveAnimation> animation(ActiveAnimation::create(curve.PassAs<AnimationCurve>(), id, 0, ActiveAnimation::Opacity));
animation->setNeedsSynchronizedStartTime(true);
target.addAnimation(animation.Pass());
+ return id;
}
template <class Target>
-void addAnimatedTransform(Target& target, double duration, int deltaX, int deltaY)
+int addAnimatedTransform(Target& target, double duration, int deltaX, int deltaY)
{
- static int id = 0;
scoped_ptr<KeyframedTransformAnimationCurve> curve(KeyframedTransformAnimationCurve::create());
if (duration > 0) {
@@ -50,10 +54,13 @@ void addAnimatedTransform(Target& target, double duration, int deltaX, int delta
operations.appendTranslate(deltaX, deltaY, 0);
curve->addKeyframe(TransformKeyframe::create(duration, operations, scoped_ptr<cc::TimingFunction>()));
- scoped_ptr<ActiveAnimation> animation(ActiveAnimation::create(curve.PassAs<AnimationCurve>(), id++, 0, ActiveAnimation::Transform));
+ int id = nextAnimationId++;
+
+ scoped_ptr<ActiveAnimation> animation(ActiveAnimation::create(curve.PassAs<AnimationCurve>(), id, 0, ActiveAnimation::Transform));
animation->setNeedsSynchronizedStartTime(true);
target.addAnimation(animation.Pass());
+ return id;
}
} // namespace
@@ -177,34 +184,34 @@ scoped_ptr<cc::AnimationCurve> FakeFloatTransition::clone() const
return make_scoped_ptr(new FakeFloatTransition(*this)).PassAs<cc::AnimationCurve>();
}
-void addOpacityTransitionToController(cc::LayerAnimationController& controller, double duration, float startOpacity, float endOpacity, bool useTimingFunction)
+int addOpacityTransitionToController(cc::LayerAnimationController& controller, double duration, float startOpacity, float endOpacity, bool useTimingFunction)
{
- addOpacityTransition(controller, duration, startOpacity, endOpacity, useTimingFunction);
+ return addOpacityTransition(controller, duration, startOpacity, endOpacity, useTimingFunction);
}
-void addAnimatedTransformToController(cc::LayerAnimationController& controller, double duration, int deltaX, int deltaY)
+int addAnimatedTransformToController(cc::LayerAnimationController& controller, double duration, int deltaX, int deltaY)
{
- addAnimatedTransform(controller, duration, deltaX, deltaY);
+ return addAnimatedTransform(controller, duration, deltaX, deltaY);
}
-void addOpacityTransitionToLayer(cc::Layer& layer, double duration, float startOpacity, float endOpacity, bool useTimingFunction)
+int addOpacityTransitionToLayer(cc::Layer& layer, double duration, float startOpacity, float endOpacity, bool useTimingFunction)
{
- addOpacityTransition(layer, duration, startOpacity, endOpacity, useTimingFunction);
+ return addOpacityTransition(layer, duration, startOpacity, endOpacity, useTimingFunction);
}
-void addOpacityTransitionToLayer(cc::LayerImpl& layer, double duration, float startOpacity, float endOpacity, bool useTimingFunction)
+int addOpacityTransitionToLayer(cc::LayerImpl& layer, double duration, float startOpacity, float endOpacity, bool useTimingFunction)
{
- addOpacityTransition(*layer.layerAnimationController(), duration, startOpacity, endOpacity, useTimingFunction);
+ return addOpacityTransition(*layer.layerAnimationController(), duration, startOpacity, endOpacity, useTimingFunction);
}
-void addAnimatedTransformToLayer(cc::Layer& layer, double duration, int deltaX, int deltaY)
+int addAnimatedTransformToLayer(cc::Layer& layer, double duration, int deltaX, int deltaY)
{
- addAnimatedTransform(layer, duration, deltaX, deltaY);
+ return addAnimatedTransform(layer, duration, deltaX, deltaY);
}
-void addAnimatedTransformToLayer(cc::LayerImpl& layer, double duration, int deltaX, int deltaY)
+int addAnimatedTransformToLayer(cc::LayerImpl& layer, double duration, int deltaX, int deltaY)
{
- addAnimatedTransform(*layer.layerAnimationController(), duration, deltaX, deltaY);
+ return addAnimatedTransform(*layer.layerAnimationController(), duration, deltaX, deltaY);
}
} // namespace WebKitTests
diff --git a/cc/test/animation_test_common.h b/cc/test/animation_test_common.h
index bdce62c..6839800 100644
--- a/cc/test/animation_test_common.h
+++ b/cc/test/animation_test_common.h
@@ -77,14 +77,14 @@ private:
WebKit::WebTransformationMatrix m_transform;
};
-void addOpacityTransitionToController(cc::LayerAnimationController&, double duration, float startOpacity, float endOpacity, bool useTimingFunction);
-void addAnimatedTransformToController(cc::LayerAnimationController&, double duration, int deltaX, int deltaY);
+int addOpacityTransitionToController(cc::LayerAnimationController&, double duration, float startOpacity, float endOpacity, bool useTimingFunction);
+int addAnimatedTransformToController(cc::LayerAnimationController&, double duration, int deltaX, int deltaY);
-void addOpacityTransitionToLayer(cc::Layer&, double duration, float startOpacity, float endOpacity, bool useTimingFunction);
-void addOpacityTransitionToLayer(cc::LayerImpl&, double duration, float startOpacity, float endOpacity, bool useTimingFunction);
+int addOpacityTransitionToLayer(cc::Layer&, double duration, float startOpacity, float endOpacity, bool useTimingFunction);
+int addOpacityTransitionToLayer(cc::LayerImpl&, double duration, float startOpacity, float endOpacity, bool useTimingFunction);
-void addAnimatedTransformToLayer(cc::Layer&, double duration, int deltaX, int deltaY);
-void addAnimatedTransformToLayer(cc::LayerImpl&, double duration, int deltaX, int deltaY);
+int addAnimatedTransformToLayer(cc::Layer&, double duration, int deltaX, int deltaY);
+int addAnimatedTransformToLayer(cc::LayerImpl&, double duration, int deltaX, int deltaY);
} // namespace WebKitTests