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

Side by Side Diff: cc/layers/layer.cc

Issue 1944623002: CC Animation: Use ElementId to attach CC animation players. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@erasedomids
Patch Set: Let CC clients generate their own ElementIds locally. Created 4 years, 7 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 2010 The Chromium Authors. All rights reserved. 1 // Copyright 2010 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/layers/layer.h" 5 #include "cc/layers/layer.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 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 } 114 }
115 } 115 }
116 116
117 void Layer::SetLayerTreeHost(LayerTreeHost* host) { 117 void Layer::SetLayerTreeHost(LayerTreeHost* host) {
118 if (layer_tree_host_ == host) 118 if (layer_tree_host_ == host)
119 return; 119 return;
120 120
121 if (layer_tree_host_) { 121 if (layer_tree_host_) {
122 layer_tree_host_->property_trees()->needs_rebuild = true; 122 layer_tree_host_->property_trees()->needs_rebuild = true;
123 layer_tree_host_->UnregisterLayer(this); 123 layer_tree_host_->UnregisterLayer(this);
124 if (element_id())
125 layer_tree_host_->UnregisterLayerForElementId(this);
124 } 126 }
125 if (host) { 127 if (host) {
126 host->property_trees()->needs_rebuild = true; 128 host->property_trees()->needs_rebuild = true;
127 host->RegisterLayer(this); 129 host->RegisterLayer(this);
130 if (element_id())
131 host->RegisterLayerForElementId(this);
128 } 132 }
129 133
130 layer_tree_host_ = host; 134 layer_tree_host_ = host;
131 InvalidatePropertyTreesIndices(); 135 InvalidatePropertyTreesIndices();
132 136
133 // When changing hosts, the layer needs to commit its properties to the impl 137 // When changing hosts, the layer needs to commit its properties to the impl
134 // side for the new host. 138 // side for the new host.
135 SetNeedsPushProperties(); 139 SetNeedsPushProperties();
136 140
137 for (size_t i = 0; i < children_.size(); ++i) 141 for (size_t i = 0; i < children_.size(); ++i)
(...skipping 694 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 if (!did_scroll_callback_.is_null()) 836 if (!did_scroll_callback_.is_null())
833 did_scroll_callback_.Run(); 837 did_scroll_callback_.Run();
834 // The callback could potentially change the layer structure: 838 // The callback could potentially change the layer structure:
835 // "this" may have been destroyed during the process. 839 // "this" may have been destroyed during the process.
836 } 840 }
837 841
838 void Layer::SetScrollClipLayerId(int clip_layer_id) { 842 void Layer::SetScrollClipLayerId(int clip_layer_id) {
839 DCHECK(IsPropertyChangeAllowed()); 843 DCHECK(IsPropertyChangeAllowed());
840 if (scroll_clip_layer_id_ == clip_layer_id) 844 if (scroll_clip_layer_id_ == clip_layer_id)
841 return; 845 return;
846
847 if (layer_tree_host_ && element_id())
848 layer_tree_host_->UnregisterLayerForElementId(this);
849
842 scroll_clip_layer_id_ = clip_layer_id; 850 scroll_clip_layer_id_ = clip_layer_id;
851
852 if (layer_tree_host_ && element_id())
853 layer_tree_host_->RegisterLayerForElementId(this);
854
843 SetNeedsCommit(); 855 SetNeedsCommit();
844 } 856 }
845 857
846 Layer* Layer::scroll_clip_layer() const { 858 Layer* Layer::scroll_clip_layer() const {
847 return layer_tree_host()->LayerById(scroll_clip_layer_id_); 859 return layer_tree_host()->LayerById(scroll_clip_layer_id_);
848 } 860 }
849 861
850 void Layer::SetUserScrollable(bool horizontal, bool vertical) { 862 void Layer::SetUserScrollable(bool horizontal, bool vertical) {
851 DCHECK(IsPropertyChangeAllowed()); 863 DCHECK(IsPropertyChangeAllowed());
852 if (user_scrollable_horizontal_ == horizontal && 864 if (user_scrollable_horizontal_ == horizontal &&
(...skipping 863 matching lines...) Expand 10 before | Expand all | Expand 10 after
1716 void Layer::RunMicroBenchmark(MicroBenchmark* benchmark) { 1728 void Layer::RunMicroBenchmark(MicroBenchmark* benchmark) {
1717 benchmark->RunOnLayer(this); 1729 benchmark->RunOnLayer(this);
1718 } 1730 }
1719 1731
1720 void Layer::SetElementId(ElementId id) { 1732 void Layer::SetElementId(ElementId id) {
1721 DCHECK(IsPropertyChangeAllowed()); 1733 DCHECK(IsPropertyChangeAllowed());
1722 if (element_id_ == id) 1734 if (element_id_ == id)
1723 return; 1735 return;
1724 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), 1736 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("compositor-worker"),
1725 "Layer::SetElementId", "id", id); 1737 "Layer::SetElementId", "id", id);
1738 if (layer_tree_host_ && element_id())
1739 layer_tree_host_->UnregisterLayerForElementId(this);
1740
1726 element_id_ = id; 1741 element_id_ = id;
1742
1743 if (layer_tree_host_ && element_id())
1744 layer_tree_host_->RegisterLayerForElementId(this);
1745
1727 SetNeedsCommit(); 1746 SetNeedsCommit();
1728 } 1747 }
1729 1748
1730 void Layer::SetMutableProperties(uint32_t properties) { 1749 void Layer::SetMutableProperties(uint32_t properties) {
1731 DCHECK(IsPropertyChangeAllowed()); 1750 DCHECK(IsPropertyChangeAllowed());
1732 if (mutable_properties_ == properties) 1751 if (mutable_properties_ == properties)
1733 return; 1752 return;
1734 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), 1753 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("compositor-worker"),
1735 "Layer::SetMutableProperties", "properties", properties); 1754 "Layer::SetMutableProperties", "properties", properties);
1736 mutable_properties_ = properties; 1755 mutable_properties_ = properties;
(...skipping 15 matching lines...) Expand all
1752 ->data.num_copy_requests_in_subtree; 1771 ->data.num_copy_requests_in_subtree;
1753 } 1772 }
1754 1773
1755 gfx::Transform Layer::screen_space_transform() const { 1774 gfx::Transform Layer::screen_space_transform() const {
1756 DCHECK_NE(transform_tree_index_, -1); 1775 DCHECK_NE(transform_tree_index_, -1);
1757 return draw_property_utils::ScreenSpaceTransform( 1776 return draw_property_utils::ScreenSpaceTransform(
1758 this, layer_tree_host_->property_trees()->transform_tree); 1777 this, layer_tree_host_->property_trees()->transform_tree);
1759 } 1778 }
1760 1779
1761 } // namespace cc 1780 } // namespace cc
OLDNEW
« no previous file with comments | « cc/cc_tests.gyp ('k') | cc/layers/layer_impl.cc » ('j') | cc/trees/layer_tree_host.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698