Index: cc/trees/layer_tree_host_impl.cc |
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
index a49c516fbfe0aa93bf76bf5736f794b19b32a5f8..b7b5f00d2f63fbfa9c54d3630b76da6da05d37ff 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -15,6 +15,7 @@ |
#include "base/strings/stringprintf.h" |
#include "base/trace_event/trace_event_argument.h" |
#include "cc/animation/animation_id_provider.h" |
+#include "cc/animation/animation_timeline.h" |
#include "cc/animation/scroll_offset_animation_curve.h" |
#include "cc/animation/scrollbar_animation_controller.h" |
#include "cc/animation/timing_function.h" |
@@ -926,6 +927,18 @@ void LayerTreeHostImpl::SetViewportDamage(const gfx::Rect& damage_rect) { |
viewport_damage_rect_.Union(damage_rect); |
} |
+void LayerTreeHostImpl::SetAnimationTimeline( |
+ scoped_refptr<AnimationTimeline> timeline) { |
+ if (animation_timeline_.get() == timeline.get()) |
+ return; |
+ |
+ if (animation_timeline_.get()) |
+ animation_timeline_->SetLayerTreeMutatorsClient(nullptr); |
+ animation_timeline_ = timeline; |
+ if (animation_timeline_.get()) |
+ animation_timeline_->SetLayerTreeMutatorsClient(this); |
+} |
+ |
static inline RenderPass* FindRenderPassById( |
RenderPassId render_pass_id, |
const LayerTreeHostImpl::FrameData& frame) { |
@@ -3480,4 +3493,75 @@ void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfForwardingToMainThread() { |
(*it)->OnForwardScrollUpdateToMainThreadOnImpl(); |
} |
+AnimationRegistrar* LayerTreeHostImpl::GetAnimationRegistrar() const { |
+ return animation_registrar_.get(); |
+} |
+ |
+void LayerTreeHostImpl::SetMutatorsNeedCommit() { |
+ SetNeedsCommit(); |
+} |
+ |
+void LayerTreeHostImpl::SetTreeLayerFilterMutated( |
+ int layer_id, |
+ LayerTreeImpl* tree, |
+ const FilterOperations& filters) { |
+ LayerAnimationValueObserver* layer = tree->LayerById(layer_id); |
+ if (layer) |
+ layer->OnFilterAnimated(filters); |
+} |
+ |
+void LayerTreeHostImpl::SetTreeLayerOpacityMutated(int layer_id, |
+ LayerTreeImpl* tree, |
+ float opacity) { |
+ LayerAnimationValueObserver* layer = tree->LayerById(layer_id); |
+ if (layer) |
+ layer->OnOpacityAnimated(opacity); |
+} |
+ |
+void LayerTreeHostImpl::SetTreeLayerTransformMutated( |
+ int layer_id, |
+ LayerTreeImpl* tree, |
+ const gfx::Transform& transform) { |
+ if (!tree) |
+ return; |
+ |
+ LayerAnimationValueObserver* layer = tree->LayerById(layer_id); |
+ if (layer) |
+ layer->OnTransformAnimated(transform); |
+} |
+ |
+void LayerTreeHostImpl::SetLayerFilterMutated(int layer_id, |
+ bool affects_active_tree, |
+ const FilterOperations& filters) { |
+ if (affects_active_tree) { |
+ SetTreeLayerFilterMutated(layer_id, active_tree(), filters); |
+ } else { |
+ SetTreeLayerFilterMutated(layer_id, pending_tree(), filters); |
+ SetTreeLayerFilterMutated(layer_id, recycle_tree(), filters); |
+ } |
+} |
+ |
+void LayerTreeHostImpl::SetLayerOpacityMutated(int layer_id, |
+ bool affects_active_tree, |
+ float opacity) { |
+ if (affects_active_tree) { |
+ SetTreeLayerOpacityMutated(layer_id, active_tree(), opacity); |
+ } else { |
+ SetTreeLayerOpacityMutated(layer_id, pending_tree(), opacity); |
+ SetTreeLayerOpacityMutated(layer_id, recycle_tree(), opacity); |
+ } |
+} |
+ |
+void LayerTreeHostImpl::SetLayerTransformMutated( |
+ int layer_id, |
+ bool affects_active_tree, |
+ const gfx::Transform& transform) { |
+ if (affects_active_tree) { |
+ SetTreeLayerTransformMutated(layer_id, active_tree(), transform); |
+ } else { |
+ SetTreeLayerTransformMutated(layer_id, pending_tree(), transform); |
+ SetTreeLayerTransformMutated(layer_id, recycle_tree(), transform); |
+ } |
+} |
+ |
} // namespace cc |