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

Unified Diff: cc/trees/layer_tree_impl.cc

Issue 988693005: Chromium roll (https://codereview.chromium.org/976353002) (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: fixed bad android build patch Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/trees/layer_tree_impl.h ('k') | cc/trees/layer_tree_settings.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_impl.cc
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
index 62e4cd36bed352c3ce953c43235fcfb8503c51f9..5114fdcecca669bac2dd4d3f5395f9520d2eb1a9 100644
--- a/cc/trees/layer_tree_impl.cc
+++ b/cc/trees/layer_tree_impl.cc
@@ -121,13 +121,18 @@ void LayerTreeImpl::Shutdown() {
}
void LayerTreeImpl::ReleaseResources() {
- if (root_layer_)
- ProcessLayersRecursive(root_layer_.get(), &LayerImpl::ReleaseResources);
+ if (root_layer_) {
+ LayerTreeHostCommon::CallFunctionForSubtree(
+ root_layer_.get(), [](LayerImpl* layer) { layer->ReleaseResources(); });
+ }
}
void LayerTreeImpl::RecreateResources() {
- if (root_layer_)
- ProcessLayersRecursive(root_layer_.get(), &LayerImpl::RecreateResources);
+ if (root_layer_) {
+ LayerTreeHostCommon::CallFunctionForSubtree(
+ root_layer_.get(),
+ [](LayerImpl* layer) { layer->RecreateResources(); });
+ }
}
void LayerTreeImpl::SetRootLayer(scoped_ptr<LayerImpl> layer) {
@@ -475,10 +480,6 @@ gfx::Rect LayerTreeImpl::RootScrollLayerDeviceViewportBounds() const {
gfx::Rect(layer->content_bounds()));
}
-static void ApplySentScrollDeltasFromAbortedCommitTo(LayerImpl* layer) {
- layer->ApplySentScrollDeltasFromAbortedCommit();
-}
-
void LayerTreeImpl::ApplySentScrollAndScaleDeltasFromAbortedCommit() {
DCHECK(IsActiveTree());
@@ -490,7 +491,9 @@ void LayerTreeImpl::ApplySentScrollAndScaleDeltasFromAbortedCommit() {
return;
LayerTreeHostCommon::CallFunctionForSubtree(
- root_layer(), base::Bind(&ApplySentScrollDeltasFromAbortedCommitTo));
+ root_layer(), [](LayerImpl* layer) {
+ layer->ApplySentScrollDeltasFromAbortedCommit();
+ });
}
void LayerTreeImpl::SetViewportLayersFromIds(
@@ -748,17 +751,6 @@ void LayerTreeImpl::PushPersistedState(LayerTreeImpl* pending_tree) {
currently_scrolling_layer_ ? currently_scrolling_layer_->id() : 0));
}
-static void DidBecomeActiveRecursive(LayerImpl* layer) {
- layer->DidBecomeActive();
- if (layer->mask_layer())
- layer->mask_layer()->DidBecomeActive();
- if (layer->replica_layer() && layer->replica_layer()->mask_layer())
- layer->replica_layer()->mask_layer()->DidBecomeActive();
-
- for (size_t i = 0; i < layer->children().size(); ++i)
- DidBecomeActiveRecursive(layer->children()[i]);
-}
-
void LayerTreeImpl::DidBecomeActive() {
if (next_activation_forces_redraw_) {
layer_tree_host_impl_->SetFullRootLayerDamage();
@@ -774,8 +766,10 @@ void LayerTreeImpl::DidBecomeActive() {
// if we were in a good state.
layer_tree_host_impl_->ResetRequiresHighResToDraw();
- if (root_layer())
- DidBecomeActiveRecursive(root_layer());
+ if (root_layer()) {
+ LayerTreeHostCommon::CallFunctionForSubtree(
+ root_layer(), [](LayerImpl* layer) { layer->DidBecomeActive(); });
+ }
devtools_instrumentation::DidActivateLayerTree(layer_tree_host_impl_->id(),
source_frame_number_);
@@ -1267,18 +1261,6 @@ const std::vector<LayerImpl*>& LayerTreeImpl::LayersWithCopyOutputRequest()
return layers_with_copy_output_request_;
}
-void LayerTreeImpl::ProcessLayersRecursive(LayerImpl* current,
- void (LayerImpl::*function)()) {
- DCHECK(current);
- (current->*function)();
- if (current->mask_layer())
- ProcessLayersRecursive(current->mask_layer(), function);
- if (current->replica_layer())
- ProcessLayersRecursive(current->replica_layer(), function);
- for (size_t i = 0; i < current->children().size(); ++i)
- ProcessLayersRecursive(current->children()[i], function);
-}
-
template <typename LayerType>
static inline bool LayerClipsSubtree(LayerType* layer) {
return layer->masks_to_bounds() || layer->mask_layer();
« no previous file with comments | « cc/trees/layer_tree_impl.h ('k') | cc/trees/layer_tree_settings.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698