OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 "cc/trees/layer_tree_impl.h" | 5 #include "cc/trees/layer_tree_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
718 // their own ways of synchronizing across commits. This occurs to push | 718 // their own ways of synchronizing across commits. This occurs to push |
719 // updates from scrolling deltas on the compositor thread that have occurred | 719 // updates from scrolling deltas on the compositor thread that have occurred |
720 // after begin frame and updates from animations that have ticked since begin | 720 // after begin frame and updates from animations that have ticked since begin |
721 // frame to a newly-committed property tree. | 721 // frame to a newly-committed property tree. |
722 if (layer_list_.empty()) | 722 if (layer_list_.empty()) |
723 return; | 723 return; |
724 std::vector<int> layer_ids_to_remove; | 724 std::vector<int> layer_ids_to_remove; |
725 for (auto& layer_id_to_opacity : opacity_animations_map_) { | 725 for (auto& layer_id_to_opacity : opacity_animations_map_) { |
726 const int id = layer_id_to_opacity.first; | 726 const int id = layer_id_to_opacity.first; |
727 if (EffectNode* node = | 727 if (EffectNode* node = |
728 property_trees_.effect_tree.FindNodeFromOwningLayerId(id)) { | 728 property_trees_.effect_tree.UpdateNodeFromOwningLayerId(id)) { |
729 if (!node->is_currently_animating_opacity || | 729 if (!node->is_currently_animating_opacity || |
730 node->opacity == layer_id_to_opacity.second) { | 730 node->opacity == layer_id_to_opacity.second) { |
731 layer_ids_to_remove.push_back(id); | 731 layer_ids_to_remove.push_back(id); |
732 continue; | 732 continue; |
733 } | 733 } |
734 node->opacity = layer_id_to_opacity.second; | 734 node->opacity = layer_id_to_opacity.second; |
735 property_trees_.effect_tree.set_needs_update(true); | 735 property_trees_.effect_tree.set_needs_update(true); |
736 } | 736 } |
737 } | 737 } |
738 for (auto id : layer_ids_to_remove) | 738 for (auto id : layer_ids_to_remove) |
739 opacity_animations_map_.erase(id); | 739 opacity_animations_map_.erase(id); |
740 layer_ids_to_remove.clear(); | 740 layer_ids_to_remove.clear(); |
741 | 741 |
742 for (auto& layer_id_to_transform : transform_animations_map_) { | 742 for (auto& layer_id_to_transform : transform_animations_map_) { |
743 const int id = layer_id_to_transform.first; | 743 const int id = layer_id_to_transform.first; |
744 if (TransformNode* node = | 744 if (TransformNode* node = |
745 property_trees_.transform_tree.FindNodeFromOwningLayerId(id)) { | 745 property_trees_.transform_tree.UpdateNodeFromOwningLayerId(id)) { |
746 if (!node->is_currently_animating || | 746 if (!node->is_currently_animating || |
747 node->local == layer_id_to_transform.second) { | 747 node->local == layer_id_to_transform.second) { |
748 layer_ids_to_remove.push_back(id); | 748 layer_ids_to_remove.push_back(id); |
749 continue; | 749 continue; |
750 } | 750 } |
751 node->local = layer_id_to_transform.second; | 751 node->local = layer_id_to_transform.second; |
752 node->needs_local_transform_update = true; | 752 node->needs_local_transform_update = true; |
753 property_trees_.transform_tree.set_needs_update(true); | 753 property_trees_.transform_tree.set_needs_update(true); |
754 } | 754 } |
755 } | 755 } |
756 for (auto id : layer_ids_to_remove) | 756 for (auto id : layer_ids_to_remove) |
757 transform_animations_map_.erase(id); | 757 transform_animations_map_.erase(id); |
758 layer_ids_to_remove.clear(); | 758 layer_ids_to_remove.clear(); |
759 | 759 |
760 for (auto& layer_id_to_filters : filter_animations_map_) { | 760 for (auto& layer_id_to_filters : filter_animations_map_) { |
761 const int id = layer_id_to_filters.first; | 761 const int id = layer_id_to_filters.first; |
762 if (EffectNode* node = | 762 if (EffectNode* node = |
763 property_trees_.effect_tree.FindNodeFromOwningLayerId(id)) { | 763 property_trees_.effect_tree.UpdateNodeFromOwningLayerId(id)) { |
764 if (!node->is_currently_animating_filter || | 764 if (!node->is_currently_animating_filter || |
765 node->filters == layer_id_to_filters.second) { | 765 node->filters == layer_id_to_filters.second) { |
766 layer_ids_to_remove.push_back(id); | 766 layer_ids_to_remove.push_back(id); |
767 continue; | 767 continue; |
768 } | 768 } |
769 node->filters = layer_id_to_filters.second; | 769 node->filters = layer_id_to_filters.second; |
770 property_trees_.effect_tree.set_needs_update(true); | 770 property_trees_.effect_tree.set_needs_update(true); |
771 } | 771 } |
772 } | 772 } |
773 for (auto id : layer_ids_to_remove) | 773 for (auto id : layer_ids_to_remove) |
(...skipping 1371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2145 | 2145 |
2146 void LayerTreeImpl::ResetAllChangeTracking() { | 2146 void LayerTreeImpl::ResetAllChangeTracking() { |
2147 layers_that_should_push_properties_.clear(); | 2147 layers_that_should_push_properties_.clear(); |
2148 // Iterate over all layers, including masks. | 2148 // Iterate over all layers, including masks. |
2149 for (auto& layer : *layers_) | 2149 for (auto& layer : *layers_) |
2150 layer->ResetChangeTracking(); | 2150 layer->ResetChangeTracking(); |
2151 property_trees_.ResetAllChangeTracking(); | 2151 property_trees_.ResetAllChangeTracking(); |
2152 } | 2152 } |
2153 | 2153 |
2154 } // namespace cc | 2154 } // namespace cc |
OLD | NEW |