| 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 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 } | 177 } |
| 178 | 178 |
| 179 TransformNode* TransformTree::FindNodeFromElementId(ElementId id) { | 179 TransformNode* TransformTree::FindNodeFromElementId(ElementId id) { |
| 180 auto iterator = property_trees()->element_id_to_transform_node_index.find(id); | 180 auto iterator = property_trees()->element_id_to_transform_node_index.find(id); |
| 181 if (iterator == property_trees()->element_id_to_transform_node_index.end()) | 181 if (iterator == property_trees()->element_id_to_transform_node_index.end()) |
| 182 return nullptr; | 182 return nullptr; |
| 183 | 183 |
| 184 return Node(iterator->second); | 184 return Node(iterator->second); |
| 185 } | 185 } |
| 186 | 186 |
| 187 void TransformTree::OnTransformAnimated(const gfx::Transform& transform, | 187 bool TransformTree::OnTransformAnimated(ElementId element_id, |
| 188 int id, | 188 const gfx::Transform& transform) { |
| 189 LayerTreeImpl* layer_tree_impl) { | 189 TransformNode* node = FindNodeFromElementId(element_id); |
| 190 TransformNode* node = Node(id); | 190 DCHECK(node); |
| 191 layer_tree_impl->AddToTransformAnimationsMap(node->owning_layer_id, | 191 if (node->local == transform) |
| 192 transform); | 192 return false; |
| 193 if (node->local == transform) { | |
| 194 return; | |
| 195 } | |
| 196 node->local = transform; | 193 node->local = transform; |
| 197 node->needs_local_transform_update = true; | 194 node->needs_local_transform_update = true; |
| 198 node->transform_changed = true; | 195 node->transform_changed = true; |
| 199 property_trees()->changed = true; | 196 property_trees()->changed = true; |
| 200 set_needs_update(true); | 197 set_needs_update(true); |
| 201 layer_tree_impl->set_needs_update_draw_properties(); | 198 return true; |
| 202 } | 199 } |
| 203 | 200 |
| 204 bool TransformTree::NeedsSourceToParentUpdate(TransformNode* node) { | 201 bool TransformTree::NeedsSourceToParentUpdate(TransformNode* node) { |
| 205 return (source_to_parent_updates_allowed() && | 202 return (source_to_parent_updates_allowed() && |
| 206 node->parent_id != node->source_node_id); | 203 node->parent_id != node->source_node_id); |
| 207 } | 204 } |
| 208 | 205 |
| 209 void TransformTree::ResetChangeTracking() { | 206 void TransformTree::ResetChangeTracking() { |
| 210 for (int id = TransformTree::kContentsRootNodeId; | 207 for (int id = TransformTree::kContentsRootNodeId; |
| 211 id < static_cast<int>(size()); ++id) { | 208 id < static_cast<int>(size()); ++id) { |
| (...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 856 } | 853 } |
| 857 | 854 |
| 858 EffectNode* EffectTree::FindNodeFromElementId(ElementId id) { | 855 EffectNode* EffectTree::FindNodeFromElementId(ElementId id) { |
| 859 auto iterator = property_trees()->element_id_to_effect_node_index.find(id); | 856 auto iterator = property_trees()->element_id_to_effect_node_index.find(id); |
| 860 if (iterator == property_trees()->element_id_to_effect_node_index.end()) | 857 if (iterator == property_trees()->element_id_to_effect_node_index.end()) |
| 861 return nullptr; | 858 return nullptr; |
| 862 | 859 |
| 863 return Node(iterator->second); | 860 return Node(iterator->second); |
| 864 } | 861 } |
| 865 | 862 |
| 866 void EffectTree::OnOpacityAnimated(float opacity, | 863 bool EffectTree::OnOpacityAnimated(ElementId id, float opacity) { |
| 867 int id, | 864 EffectNode* node = FindNodeFromElementId(id); |
| 868 LayerTreeImpl* layer_tree_impl) { | 865 DCHECK(node); |
| 869 EffectNode* node = Node(id); | |
| 870 layer_tree_impl->AddToOpacityAnimationsMap(node->owning_layer_id, opacity); | |
| 871 if (node->opacity == opacity) | 866 if (node->opacity == opacity) |
| 872 return; | 867 return false; |
| 873 node->opacity = opacity; | 868 node->opacity = opacity; |
| 874 node->effect_changed = true; | 869 node->effect_changed = true; |
| 875 property_trees()->changed = true; | 870 property_trees()->changed = true; |
| 876 property_trees()->effect_tree.set_needs_update(true); | 871 property_trees()->effect_tree.set_needs_update(true); |
| 877 layer_tree_impl->set_needs_update_draw_properties(); | 872 return true; |
| 878 } | 873 } |
| 879 | 874 |
| 880 void EffectTree::OnFilterAnimated(const FilterOperations& filters, | 875 bool EffectTree::OnFilterAnimated(ElementId id, |
| 881 int id, | 876 const FilterOperations& filters) { |
| 882 LayerTreeImpl* layer_tree_impl) { | 877 EffectNode* node = FindNodeFromElementId(id); |
| 883 EffectNode* node = Node(id); | 878 DCHECK(node); |
| 884 layer_tree_impl->AddToFilterAnimationsMap(node->owning_layer_id, filters); | |
| 885 if (node->filters == filters) | 879 if (node->filters == filters) |
| 886 return; | 880 return false; |
| 887 node->filters = filters; | 881 node->filters = filters; |
| 888 node->effect_changed = true; | 882 node->effect_changed = true; |
| 889 property_trees()->changed = true; | 883 property_trees()->changed = true; |
| 890 property_trees()->effect_tree.set_needs_update(true); | 884 property_trees()->effect_tree.set_needs_update(true); |
| 891 layer_tree_impl->set_needs_update_draw_properties(); | 885 return true; |
| 892 } | 886 } |
| 893 | 887 |
| 894 void EffectTree::UpdateEffects(int id) { | 888 void EffectTree::UpdateEffects(int id) { |
| 895 EffectNode* node = Node(id); | 889 EffectNode* node = Node(id); |
| 896 EffectNode* parent_node = parent(node); | 890 EffectNode* parent_node = parent(node); |
| 897 | 891 |
| 898 UpdateOpacities(node, parent_node); | 892 UpdateOpacities(node, parent_node); |
| 899 UpdateIsDrawn(node, parent_node); | 893 UpdateIsDrawn(node, parent_node); |
| 900 UpdateEffectChanged(node, parent_node); | 894 UpdateEffectChanged(node, parent_node); |
| 901 UpdateBackfaceVisibility(node, parent_node); | 895 UpdateBackfaceVisibility(node, parent_node); |
| (...skipping 1215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2117 const EffectNode* effect_node = effect_tree.Node(effect_id); | 2111 const EffectNode* effect_node = effect_tree.Node(effect_id); |
| 2118 | 2112 |
| 2119 if (effect_node->surface_contents_scale.x() != 0.0 && | 2113 if (effect_node->surface_contents_scale.x() != 0.0 && |
| 2120 effect_node->surface_contents_scale.y() != 0.0) | 2114 effect_node->surface_contents_scale.y() != 0.0) |
| 2121 screen_space_transform.Scale(1.0 / effect_node->surface_contents_scale.x(), | 2115 screen_space_transform.Scale(1.0 / effect_node->surface_contents_scale.x(), |
| 2122 1.0 / effect_node->surface_contents_scale.y()); | 2116 1.0 / effect_node->surface_contents_scale.y()); |
| 2123 return screen_space_transform; | 2117 return screen_space_transform; |
| 2124 } | 2118 } |
| 2125 | 2119 |
| 2126 } // namespace cc | 2120 } // namespace cc |
| OLD | NEW |