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

Side by Side Diff: cc/trees/property_tree.cc

Issue 2762123004: cc: LayerTreeHostImpl uses element id to tick animations (Closed)
Patch Set: remove accidental debug print Created 3 years, 9 months 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 unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698