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

Unified Diff: cc/layers/layer.cc

Issue 95763002: cc: Support animating scroll offset (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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
Index: cc/layers/layer.cc
diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc
index 77907193b59a9c2ddd23ce2f3cf1c54c0b381acd..b15cdc88c0dee3fd692c18e9616b2bef9dfe6907 100644
--- a/cc/layers/layer.cc
+++ b/cc/layers/layer.cc
@@ -12,6 +12,7 @@
#include "base/single_thread_task_runner.h"
#include "cc/animation/animation.h"
#include "cc/animation/animation_events.h"
+#include "cc/animation/keyframed_animation_curve.h"
#include "cc/animation/layer_animation_controller.h"
#include "cc/layers/layer_client.h"
#include "cc/layers/layer_impl.h"
@@ -72,6 +73,7 @@ Layer::Layer()
layer_animation_controller_ = LayerAnimationController::Create(layer_id_);
layer_animation_controller_->AddValueObserver(this);
+ layer_animation_controller_->set_value_provider(this);
}
Layer::~Layer() {
@@ -83,6 +85,7 @@ Layer::~Layer() {
DCHECK(!layer_tree_host());
layer_animation_controller_->RemoveValueObserver(this);
+ layer_animation_controller_->remove_value_provider(this);
// Remove the parent reference from all children and dependents.
RemoveAllChildren();
@@ -1048,6 +1051,10 @@ void Layer::ClearRenderSurface() {
draw_properties_.render_surface.reset();
}
+gfx::Vector2dF Layer::ScrollOffsetForAnimation() const {
+ return TotalScrollOffset();
+}
+
// On<Property>Animated is called due to an ongoing accelerated animation.
// Since this animation is also being run on the compositor thread, there
// is no need to request a commit to push this value over, so the value is
@@ -1064,6 +1071,12 @@ void Layer::OnTransformAnimated(const gfx::Transform& transform) {
transform_ = transform;
}
+void Layer::OnScrollOffsetAnimated(gfx::Vector2dF scroll_offset) {
+ // Do nothing. Scroll deltas will be sent from the compositor thread back
+ // to the main thread in the same manner as during non-animated
+ // compositor-driven scrolling.
ajuma 2013/11/28 22:33:36 SingleThreadProxy doesn't send back scroll deltas.
Ian Vollick 2013/11/29 15:29:29 Re 2), we could use scroll to on the main frame, t
ajuma 2013/11/29 21:18:41 Ah, I missed that usesCompositedScrolling doesn't
+}
+
void Layer::OnAnimationWaitingForDeletion() {
// Animations are only deleted during PushProperties.
SetNeedsPushProperties();

Powered by Google App Engine
This is Rietveld 408576698