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

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

Issue 2087963003: cc: Stop creating unused 0 property tree nodes other than transform Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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_common.h" 5 #include "cc/trees/layer_tree_host_common.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 return jitter; 291 return jitter;
292 } 292 }
293 293
294 enum PropertyTreeOption { 294 enum PropertyTreeOption {
295 BUILD_PROPERTY_TREES_IF_NEEDED, 295 BUILD_PROPERTY_TREES_IF_NEEDED,
296 DONT_BUILD_PROPERTY_TREES 296 DONT_BUILD_PROPERTY_TREES
297 }; 297 };
298 298
299 static void ComputeLayerScrollsDrawnDescendants(LayerTreeImpl* layer_tree_impl, 299 static void ComputeLayerScrollsDrawnDescendants(LayerTreeImpl* layer_tree_impl,
300 ScrollTree* scroll_tree) { 300 ScrollTree* scroll_tree) {
301 for (int i = static_cast<int>(scroll_tree->size()) - 1; i > 0; --i) { 301 for (int i = static_cast<int>(scroll_tree->size()) - 1;
302 i > ScrollTree::kRootNodeId; --i) {
302 ScrollNode* node = scroll_tree->Node(i); 303 ScrollNode* node = scroll_tree->Node(i);
303 scroll_tree->parent(node)->data.num_drawn_descendants += 304 scroll_tree->parent(node)->data.num_drawn_descendants +=
304 node->data.num_drawn_descendants; 305 node->data.num_drawn_descendants;
305 } 306 }
306 for (LayerImpl* layer : *layer_tree_impl) { 307 for (LayerImpl* layer : *layer_tree_impl) {
307 bool scrolls_drawn_descendant = false; 308 bool scrolls_drawn_descendant = false;
308 if (layer->scrollable()) { 309 if (layer->scrollable()) {
309 ScrollNode* node = scroll_tree->Node(layer->scroll_tree_index()); 310 ScrollNode* node = scroll_tree->Node(layer->scroll_tree_index());
310 if (node->data.num_drawn_descendants > 0) 311 if (node->data.num_drawn_descendants > 0)
311 scrolls_drawn_descendant = true; 312 scrolls_drawn_descendant = true;
312 } 313 }
313 layer->set_scrolls_drawn_descendant(scrolls_drawn_descendant); 314 layer->set_scrolls_drawn_descendant(scrolls_drawn_descendant);
314 } 315 }
315 } 316 }
316 317
317 static void ComputeInitialRenderSurfaceLayerList( 318 static void ComputeInitialRenderSurfaceLayerList(
318 LayerTreeImpl* layer_tree_impl, 319 LayerTreeImpl* layer_tree_impl,
319 PropertyTrees* property_trees, 320 PropertyTrees* property_trees,
320 LayerImplList* render_surface_layer_list, 321 LayerImplList* render_surface_layer_list,
321 bool can_render_to_separate_surface) { 322 bool can_render_to_separate_surface) {
322 ScrollTree* scroll_tree = &property_trees->scroll_tree; 323 ScrollTree* scroll_tree = &property_trees->scroll_tree;
323 for (int i = 0; i < static_cast<int>(scroll_tree->size()); ++i) 324 for (int i = ScrollTree::kRootNodeId;
325 i < static_cast<int>(scroll_tree->size()); ++i)
324 scroll_tree->Node(i)->data.num_drawn_descendants = 0; 326 scroll_tree->Node(i)->data.num_drawn_descendants = 0;
325 327
326 // Add all non-skipped surfaces to the initial render surface layer list. Add 328 // Add all non-skipped surfaces to the initial render surface layer list. Add
327 // all non-skipped layers to the layer list of their target surface, and 329 // all non-skipped layers to the layer list of their target surface, and
328 // add their content rect to their target surface's accumulated content rect. 330 // add their content rect to their target surface's accumulated content rect.
329 for (LayerImpl* layer : *layer_tree_impl) { 331 for (LayerImpl* layer : *layer_tree_impl) {
330 if (layer->render_surface()) { 332 if (layer->render_surface()) {
331 layer->ClearRenderSurfaceLayerList(); 333 layer->ClearRenderSurfaceLayerList();
332 ClearMaskLayersAreDrawnRenderSurfaceLayerListMembers( 334 ClearMaskLayersAreDrawnRenderSurfaceLayerListMembers(
333 layer->render_surface()); 335 layer->render_surface());
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
684 686
685 PropertyTrees* GetPropertyTrees(Layer* layer) { 687 PropertyTrees* GetPropertyTrees(Layer* layer) {
686 return layer->layer_tree_host()->property_trees(); 688 return layer->layer_tree_host()->property_trees();
687 } 689 }
688 690
689 PropertyTrees* GetPropertyTrees(LayerImpl* layer) { 691 PropertyTrees* GetPropertyTrees(LayerImpl* layer) {
690 return layer->layer_tree_impl()->property_trees(); 692 return layer->layer_tree_impl()->property_trees();
691 } 693 }
692 694
693 } // namespace cc 695 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698