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

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

Issue 2762123004: cc: LayerTreeHostImpl uses element id to tick animations (Closed)
Patch Set: review comments Created 3 years, 8 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 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 624 matching lines...) Expand 10 before | Expand all | Expand 10 after
635 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING); 635 IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING);
636 636
637 element_layers_map_.erase(layer->element_id()); 637 element_layers_map_.erase(layer->element_id());
638 } 638 }
639 639
640 void LayerTreeImpl::AddToOpacityAnimationsMap(int id, float opacity) { 640 void LayerTreeImpl::AddToOpacityAnimationsMap(int id, float opacity) {
641 if (LayerImpl* layer = LayerById(id)) 641 if (LayerImpl* layer = LayerById(id))
642 element_id_to_opacity_animations_[layer->element_id()] = opacity; 642 element_id_to_opacity_animations_[layer->element_id()] = opacity;
643 } 643 }
644 644
645 void LayerTreeImpl::AddToTransformAnimationsMap(int id, 645 void LayerTreeImpl::SetTransformMutated(ElementId element_id,
646 gfx::Transform transform) { 646 const gfx::Transform& transform) {
647 if (LayerImpl* layer = LayerById(id)) 647 DCHECK_EQ(1u, property_trees()->element_id_to_transform_node_index.count(
648 element_id_to_transform_animations_[layer->element_id()] = transform; 648 element_id));
649 element_id_to_transform_animations_[element_id] = transform;
650 if (!property_trees()->transform_tree.OnTransformAnimated(element_id,
651 transform))
652 return;
653
654 if (LayerImpl* layer = LayerByElementId(element_id))
655 layer->set_was_ever_ready_since_last_transform_animation(false);
656
657 set_needs_update_draw_properties();
649 } 658 }
650 659
651 void LayerTreeImpl::AddToFilterAnimationsMap(int id, 660 void LayerTreeImpl::SetOpacityMutated(ElementId element_id, float opacity) {
652 const FilterOperations& filters) { 661 DCHECK_EQ(
653 if (LayerImpl* layer = LayerById(id)) 662 1u, property_trees()->element_id_to_effect_node_index.count(element_id));
654 element_id_to_filter_animations_[layer->element_id()] = filters; 663 element_id_to_opacity_animations_[element_id] = opacity;
664 if (property_trees()->effect_tree.OnOpacityAnimated(element_id, opacity))
665 set_needs_update_draw_properties();
666 }
667
668 void LayerTreeImpl::SetFilterMutated(ElementId element_id,
669 const FilterOperations& filters) {
670 DCHECK_EQ(
671 1u, property_trees()->element_id_to_effect_node_index.count(element_id));
672 element_id_to_filter_animations_[element_id] = filters;
673 if (property_trees()->effect_tree.OnFilterAnimated(element_id, filters))
674 set_needs_update_draw_properties();
655 } 675 }
656 676
657 LayerImpl* LayerTreeImpl::InnerViewportContainerLayer() const { 677 LayerImpl* LayerTreeImpl::InnerViewportContainerLayer() const {
658 return InnerViewportScrollLayer() 678 return InnerViewportScrollLayer()
659 ? InnerViewportScrollLayer()->scroll_clip_layer() 679 ? InnerViewportScrollLayer()->scroll_clip_layer()
660 : NULL; 680 : NULL;
661 } 681 }
662 682
663 LayerImpl* LayerTreeImpl::OuterViewportContainerLayer() const { 683 LayerImpl* LayerTreeImpl::OuterViewportContainerLayer() const {
664 return OuterViewportScrollLayer() 684 return OuterViewportScrollLayer()
(...skipping 1492 matching lines...) Expand 10 before | Expand all | Expand 10 after
2157 2177
2158 void LayerTreeImpl::ResetAllChangeTracking() { 2178 void LayerTreeImpl::ResetAllChangeTracking() {
2159 layers_that_should_push_properties_.clear(); 2179 layers_that_should_push_properties_.clear();
2160 // Iterate over all layers, including masks. 2180 // Iterate over all layers, including masks.
2161 for (auto& layer : *layers_) 2181 for (auto& layer : *layers_)
2162 layer->ResetChangeTracking(); 2182 layer->ResetChangeTracking();
2163 property_trees_.ResetAllChangeTracking(); 2183 property_trees_.ResetAllChangeTracking();
2164 } 2184 }
2165 2185
2166 } // namespace cc 2186 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698