Index: cc/trees/property_tree.cc |
diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc |
index 20290755ee5a3b075b7503676c570ee3f9501c36..e7bcce95294477d1437bf65658e2fd8e9614d4c3 100644 |
--- a/cc/trees/property_tree.cc |
+++ b/cc/trees/property_tree.cc |
@@ -218,6 +218,28 @@ bool TransformTree::ComputeTranslation(int source_id, |
return true; |
} |
+void TransformTree::OnTransformAnimated(const gfx::Transform& transform, |
+ int id, |
+ LayerTreeImpl* layer_tree_impl) { |
+ TransformNode* node = Node(id); |
+ layer_tree_impl->AddToTransformAnimationsMap(node->owner_id, transform); |
+ if (node->local == transform) { |
+ return; |
+ } |
+ node->local = transform; |
+ node->needs_local_transform_update = true; |
+ node->transform_changed = true; |
+ property_trees()->changed = true; |
+ set_needs_update(true); |
+ layer_tree_impl->set_needs_update_draw_properties(); |
+ // TODO(ajuma): The current criteria for creating clip nodes means that |
+ // property trees may need to be rebuilt when the new transform isn't |
+ // axis-aligned wrt the old transform (see Layer::SetTransform). Since |
+ // rebuilding property trees every frame of a transform animation is |
+ // something we should try to avoid, change property tree-building so that |
+ // it doesn't depend on axis aliginment. |
ajuma
2016/08/23 23:40:12
I think this TODO is obsolete now, since we don't
jaydasika
2016/08/24 00:13:42
Removed!
|
+} |
+ |
bool TransformTree::NeedsSourceToParentUpdate(TransformNode* node) { |
return (source_to_parent_updates_allowed() && |
node->parent_id != node->source_node_id); |
@@ -917,6 +939,7 @@ void EffectTree::OnOpacityAnimated(float opacity, |
int id, |
LayerTreeImpl* layer_tree_impl) { |
EffectNode* node = Node(id); |
+ layer_tree_impl->AddToOpacityAnimationsMap(node->owner_id, opacity); |
if (node->opacity == opacity) |
return; |
node->opacity = opacity; |
@@ -924,7 +947,6 @@ void EffectTree::OnOpacityAnimated(float opacity, |
property_trees()->changed = true; |
property_trees()->effect_tree.set_needs_update(true); |
layer_tree_impl->set_needs_update_draw_properties(); |
- layer_tree_impl->AddToOpacityAnimationsMap(node->owner_id, opacity); |
} |
void EffectTree::UpdateEffects(int id) { |