| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 } | 179 } |
| 180 | 180 |
| 181 TransformNode* TransformTree::FindNodeFromElementId(ElementId id) { | 181 TransformNode* TransformTree::FindNodeFromElementId(ElementId id) { |
| 182 auto iterator = property_trees()->element_id_to_transform_node_index.find(id); | 182 auto iterator = property_trees()->element_id_to_transform_node_index.find(id); |
| 183 if (iterator == property_trees()->element_id_to_transform_node_index.end()) | 183 if (iterator == property_trees()->element_id_to_transform_node_index.end()) |
| 184 return nullptr; | 184 return nullptr; |
| 185 | 185 |
| 186 return Node(iterator->second); | 186 return Node(iterator->second); |
| 187 } | 187 } |
| 188 | 188 |
| 189 void TransformTree::OnTransformAnimated(const gfx::Transform& transform, | 189 void TransformTree::OnTransformAnimated(ElementId element_id, |
| 190 int id, | 190 const gfx::Transform& transform) { |
| 191 LayerTreeImpl* layer_tree_impl) { | 191 TransformNode* node = FindNodeFromElementId(element_id); |
| 192 TransformNode* node = Node(id); | 192 DCHECK(node); |
| 193 layer_tree_impl->AddToTransformAnimationsMap(node->owning_layer_id, | |
| 194 transform); | |
| 195 if (node->local == transform) { | 193 if (node->local == transform) { |
| 196 return; | 194 return; |
| 197 } | 195 } |
| 198 node->local = transform; | 196 node->local = transform; |
| 199 node->needs_local_transform_update = true; | 197 node->needs_local_transform_update = true; |
| 200 node->transform_changed = true; | 198 node->transform_changed = true; |
| 201 property_trees()->changed = true; | 199 property_trees()->changed = true; |
| 202 set_needs_update(true); | 200 set_needs_update(true); |
| 203 layer_tree_impl->set_needs_update_draw_properties(); | |
| 204 } | 201 } |
| 205 | 202 |
| 206 bool TransformTree::NeedsSourceToParentUpdate(TransformNode* node) { | 203 bool TransformTree::NeedsSourceToParentUpdate(TransformNode* node) { |
| 207 return (source_to_parent_updates_allowed() && | 204 return (source_to_parent_updates_allowed() && |
| 208 node->parent_id != node->source_node_id); | 205 node->parent_id != node->source_node_id); |
| 209 } | 206 } |
| 210 | 207 |
| 211 void TransformTree::ResetChangeTracking() { | 208 void TransformTree::ResetChangeTracking() { |
| 212 for (int id = TransformTree::kContentsRootNodeId; | 209 for (int id = TransformTree::kContentsRootNodeId; |
| 213 id < static_cast<int>(size()); ++id) { | 210 id < static_cast<int>(size()); ++id) { |
| (...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 858 } | 855 } |
| 859 | 856 |
| 860 EffectNode* EffectTree::FindNodeFromElementId(ElementId id) { | 857 EffectNode* EffectTree::FindNodeFromElementId(ElementId id) { |
| 861 auto iterator = property_trees()->element_id_to_effect_node_index.find(id); | 858 auto iterator = property_trees()->element_id_to_effect_node_index.find(id); |
| 862 if (iterator == property_trees()->element_id_to_effect_node_index.end()) | 859 if (iterator == property_trees()->element_id_to_effect_node_index.end()) |
| 863 return nullptr; | 860 return nullptr; |
| 864 | 861 |
| 865 return Node(iterator->second); | 862 return Node(iterator->second); |
| 866 } | 863 } |
| 867 | 864 |
| 868 void EffectTree::OnOpacityAnimated(float opacity, | 865 void EffectTree::OnOpacityAnimated(ElementId id, float opacity) { |
| 869 int id, | 866 EffectNode* node = FindNodeFromElementId(id); |
| 870 LayerTreeImpl* layer_tree_impl) { | |
| 871 EffectNode* node = Node(id); | |
| 872 layer_tree_impl->AddToOpacityAnimationsMap(node->owning_layer_id, opacity); | |
| 873 if (node->opacity == opacity) | 867 if (node->opacity == opacity) |
| 874 return; | 868 return; |
| 875 node->opacity = opacity; | 869 node->opacity = opacity; |
| 876 node->effect_changed = true; | 870 node->effect_changed = true; |
| 877 property_trees()->changed = true; | 871 property_trees()->changed = true; |
| 878 property_trees()->effect_tree.set_needs_update(true); | 872 property_trees()->effect_tree.set_needs_update(true); |
| 879 layer_tree_impl->set_needs_update_draw_properties(); | |
| 880 } | 873 } |
| 881 | 874 |
| 882 void EffectTree::OnFilterAnimated(const FilterOperations& filters, | 875 void EffectTree::OnFilterAnimated(ElementId id, |
| 883 int id, | 876 const FilterOperations& filters) { |
| 884 LayerTreeImpl* layer_tree_impl) { | 877 EffectNode* node = FindNodeFromElementId(id); |
| 885 EffectNode* node = Node(id); | |
| 886 layer_tree_impl->AddToFilterAnimationsMap(node->owning_layer_id, filters); | |
| 887 if (node->filters == filters) | 878 if (node->filters == filters) |
| 888 return; | 879 return; |
| 889 node->filters = filters; | 880 node->filters = filters; |
| 890 node->effect_changed = true; | 881 node->effect_changed = true; |
| 891 property_trees()->changed = true; | 882 property_trees()->changed = true; |
| 892 property_trees()->effect_tree.set_needs_update(true); | 883 property_trees()->effect_tree.set_needs_update(true); |
| 893 layer_tree_impl->set_needs_update_draw_properties(); | |
| 894 } | 884 } |
| 895 | 885 |
| 896 void EffectTree::UpdateEffects(int id) { | 886 void EffectTree::UpdateEffects(int id) { |
| 897 EffectNode* node = Node(id); | 887 EffectNode* node = Node(id); |
| 898 EffectNode* parent_node = parent(node); | 888 EffectNode* parent_node = parent(node); |
| 899 | 889 |
| 900 UpdateOpacities(node, parent_node); | 890 UpdateOpacities(node, parent_node); |
| 901 UpdateIsDrawn(node, parent_node); | 891 UpdateIsDrawn(node, parent_node); |
| 902 UpdateEffectChanged(node, parent_node); | 892 UpdateEffectChanged(node, parent_node); |
| 903 UpdateBackfaceVisibility(node, parent_node); | 893 UpdateBackfaceVisibility(node, parent_node); |
| (...skipping 1194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2098 const EffectNode* effect_node = effect_tree.Node(effect_id); | 2088 const EffectNode* effect_node = effect_tree.Node(effect_id); |
| 2099 | 2089 |
| 2100 if (effect_node->surface_contents_scale.x() != 0.0 && | 2090 if (effect_node->surface_contents_scale.x() != 0.0 && |
| 2101 effect_node->surface_contents_scale.y() != 0.0) | 2091 effect_node->surface_contents_scale.y() != 0.0) |
| 2102 screen_space_transform.Scale(1.0 / effect_node->surface_contents_scale.x(), | 2092 screen_space_transform.Scale(1.0 / effect_node->surface_contents_scale.x(), |
| 2103 1.0 / effect_node->surface_contents_scale.y()); | 2093 1.0 / effect_node->surface_contents_scale.y()); |
| 2104 return screen_space_transform; | 2094 return screen_space_transform; |
| 2105 } | 2095 } |
| 2106 | 2096 |
| 2107 } // namespace cc | 2097 } // namespace cc |
| OLD | NEW |