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

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

Issue 1864183002: cc: Main thread skip single layers instead of subtrees (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix the dependency problem Created 4 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_host.h" 5 #include "cc/trees/layer_tree_host.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 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 void LayerTreeHost::FinishCommitOnImplThread(LayerTreeHostImpl* host_impl) { 352 void LayerTreeHost::FinishCommitOnImplThread(LayerTreeHostImpl* host_impl) {
353 DCHECK(!IsRemoteServer()); 353 DCHECK(!IsRemoteServer());
354 DCHECK(task_runner_provider_->IsImplThread()); 354 DCHECK(task_runner_provider_->IsImplThread());
355 355
356 bool is_new_trace; 356 bool is_new_trace;
357 TRACE_EVENT_IS_NEW_TRACE(&is_new_trace); 357 TRACE_EVENT_IS_NEW_TRACE(&is_new_trace);
358 if (is_new_trace && 358 if (is_new_trace &&
359 frame_viewer_instrumentation::IsTracingLayerTreeSnapshots() && 359 frame_viewer_instrumentation::IsTracingLayerTreeSnapshots() &&
360 root_layer()) { 360 root_layer()) {
361 LayerTreeHostCommon::CallFunctionForEveryLayer( 361 LayerTreeHostCommon::CallFunctionForEveryLayer(
362 this, [](Layer* layer) { layer->DidBeginTracing(); }); 362 this, [](Layer* layer) { layer->DidBeginTracing(); },
363 CallFunctionLayerType::ALL_LAYERS);
363 } 364 }
364 365
365 LayerTreeImpl* sync_tree = host_impl->sync_tree(); 366 LayerTreeImpl* sync_tree = host_impl->sync_tree();
366 367
367 if (next_commit_forces_redraw_) { 368 if (next_commit_forces_redraw_) {
368 sync_tree->ForceRedrawNextActivation(); 369 sync_tree->ForceRedrawNextActivation();
369 next_commit_forces_redraw_ = false; 370 next_commit_forces_redraw_ = false;
370 } 371 }
371 372
372 sync_tree->set_source_frame_number(source_frame_number()); 373 sync_tree->set_source_frame_number(source_frame_number());
(...skipping 1192 matching lines...) Expand 10 before | Expand all | Expand 10 after
1565 // It is required to create new PropertyTrees before deserializing it. 1566 // It is required to create new PropertyTrees before deserializing it.
1566 property_trees_ = PropertyTrees(); 1567 property_trees_ = PropertyTrees();
1567 property_trees_.FromProtobuf(proto.property_trees()); 1568 property_trees_.FromProtobuf(proto.property_trees());
1568 1569
1569 // Forcefully override the sequence number of all layers in the tree to have 1570 // Forcefully override the sequence number of all layers in the tree to have
1570 // a valid sequence number. Changing the sequence number for a layer does not 1571 // a valid sequence number. Changing the sequence number for a layer does not
1571 // need a commit, so the value will become out of date for layers that are not 1572 // need a commit, so the value will become out of date for layers that are not
1572 // updated for other reasons. All layers that at this point are part of the 1573 // updated for other reasons. All layers that at this point are part of the
1573 // layer tree are valid, so it is OK that they have a valid sequence number. 1574 // layer tree are valid, so it is OK that they have a valid sequence number.
1574 int seq_num = property_trees_.sequence_number; 1575 int seq_num = property_trees_.sequence_number;
1575 LayerTreeHostCommon::CallFunctionForEveryLayer(this, [seq_num](Layer* layer) { 1576 LayerTreeHostCommon::CallFunctionForEveryLayer(
1576 layer->set_property_tree_sequence_number(seq_num); 1577 this,
1577 }); 1578 [seq_num](Layer* layer) {
1579 layer->set_property_tree_sequence_number(seq_num);
1580 },
1581 CallFunctionLayerType::ALL_LAYERS);
1578 1582
1579 surface_id_namespace_ = proto.surface_id_namespace(); 1583 surface_id_namespace_ = proto.surface_id_namespace();
1580 next_surface_sequence_ = proto.next_surface_sequence(); 1584 next_surface_sequence_ = proto.next_surface_sequence();
1581 } 1585 }
1582 1586
1583 } // namespace cc 1587 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698