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

Unified Diff: cc/layers/layer_impl.cc

Issue 1752993002: cc : Delete LayerImpl::NoteLayerPropertyChangedForSubtree (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: cc/layers/layer_impl.cc
diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
index 3c2d6b4a991f4611dca6bf22e5b5b60cd3b505cf..7c70487c1814482dd0205fa9b47ca5890c50901a 100644
--- a/cc/layers/layer_impl.cc
+++ b/cc/layers/layer_impl.cc
@@ -706,7 +706,9 @@ base::DictionaryValue* LayerImpl::LayerTreeAsJson() const {
}
bool LayerImpl::LayerPropertyChanged() const {
- if (layer_property_changed_)
+ if (layer_property_changed_ ||
+ (layer_tree_impl()->property_trees() &&
+ layer_tree_impl()->property_trees()->full_tree_damaged))
return true;
if (transform_tree_index() == -1)
return false;
@@ -720,7 +722,7 @@ bool LayerImpl::LayerPropertyChanged() const {
EffectNode* effect_node =
layer_tree_impl()->property_trees()->effect_tree.Node(
effect_tree_index());
- if (effect_node && effect_node->data.opacity_changed)
+ if (effect_node && effect_node->data.effect_changed)
return true;
return false;
}
@@ -731,27 +733,6 @@ void LayerImpl::NoteLayerPropertyChanged() {
SetNeedsPushProperties();
}
-void LayerImpl::NoteLayerPropertyChangedForSubtree() {
- layer_property_changed_ = true;
- layer_tree_impl()->set_needs_update_draw_properties();
- for (size_t i = 0; i < children_.size(); ++i)
- children_[i]->NoteLayerPropertyChangedForDescendantsInternal();
- SetNeedsPushProperties();
-}
-
-void LayerImpl::NoteLayerPropertyChangedForDescendantsInternal() {
- layer_property_changed_ = true;
- for (size_t i = 0; i < children_.size(); ++i)
- children_[i]->NoteLayerPropertyChangedForDescendantsInternal();
-}
-
-void LayerImpl::NoteLayerPropertyChangedForDescendants() {
- layer_tree_impl()->set_needs_update_draw_properties();
- for (size_t i = 0; i < children_.size(); ++i)
- children_[i]->NoteLayerPropertyChangedForDescendantsInternal();
- SetNeedsPushProperties();
-}
-
void LayerImpl::PushLayerPropertyChangedForSubtreeInternal() {
if (LayerPropertyChanged())
NoteLayerPropertyChanged();
@@ -768,7 +749,7 @@ void LayerImpl::PushLayerPropertyChangedForSubtree() {
for (int i = 1; i < static_cast<int>(effect_tree.size()); ++i) {
EffectNode* node = effect_tree.Node(i);
EffectNode* parent_node = effect_tree.parent(node);
- effect_tree.UpdateOpacityChanged(node, parent_node);
+ effect_tree.UpdateEffectChanged(node, parent_node);
}
for (int i = 1; i < static_cast<int>(transform_tree.size()); ++i) {
TransformNode* node = transform_tree.Node(i);
@@ -915,7 +896,7 @@ void LayerImpl::UpdatePropertyTreeOpacity() {
if (node->owner_id != id() || node->data.opacity == effective_opacity)
return;
node->data.opacity = effective_opacity;
- node->data.opacity_changed = true;
+ node->data.effect_changed = true;
layer_tree_impl()->property_trees()->changed = true;
effect_tree.set_needs_update(true);
}
@@ -940,7 +921,17 @@ gfx::ScrollOffset LayerImpl::ScrollOffsetForAnimation() const {
}
void LayerImpl::OnFilterAnimated(const FilterOperations& filters) {
- SetFilters(filters);
+ if (filters_ != filters) {
+ SetFilters(filters);
+ SetNeedsPushProperties();
+ layer_tree_impl()->set_needs_update_draw_properties();
+ EffectTree& effect_tree = layer_tree_impl()->property_trees()->effect_tree;
+ EffectNode* node = effect_tree.Node(effect_tree_index_);
+ DCHECK_EQ(node->owner_id, id());
+ node->data.effect_changed = true;
+ layer_tree_impl()->property_trees()->changed = true;
+ effect_tree.set_needs_update(true);
+ }
}
void LayerImpl::OnOpacityAnimated(float opacity) {
@@ -1037,8 +1028,8 @@ void LayerImpl::SetBoundsDelta(const gfx::Vector2dF& bounds_delta) {
gfx::PointF() + offset_to_transform_parent(), gfx::SizeF(bounds()));
property_trees->clip_tree.set_needs_update(true);
}
-
- NoteLayerPropertyChangedForSubtree();
+ property_trees->full_tree_damaged = true;
+ layer_tree_impl()->set_needs_update_draw_properties();
} else {
NoteLayerPropertyChanged();
}
@@ -1143,7 +1134,6 @@ void LayerImpl::SetFilters(const FilterOperations& filters) {
return;
filters_ = filters;
- NoteLayerPropertyChangedForSubtree();
}
bool LayerImpl::FilterIsAnimating() const {
@@ -1549,9 +1539,17 @@ void LayerImpl::DidUpdateScrollOffset() {
DCHECK(scroll_offset_);
layer_tree_impl()->DidUpdateScrollState(id());
- NoteLayerPropertyChangedForSubtree();
- UpdatePropertyTreeScrollOffset();
+ if (transform_tree_index_ != -1) {
+ UpdatePropertyTreeScrollOffset();
+ TransformTree& transform_tree =
+ layer_tree_impl()->property_trees()->transform_tree;
+ TransformNode* node = transform_tree.Node(transform_tree_index_);
+ node->data.transform_changed = true;
+ layer_tree_impl()->property_trees()->changed = true;
+ layer_tree_impl()->set_needs_update_draw_properties();
+ SetNeedsPushProperties();
+ }
// Inform the pending twin that a property changed.
if (layer_tree_impl()->IsActiveTree()) {

Powered by Google App Engine
This is Rietveld 408576698