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

Side by Side Diff: cc/trees/layer_tree_host_common.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: Format the comments 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
« no previous file with comments | « cc/trees/layer_tree_host_common.h ('k') | cc/trees/layer_tree_host_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 PropertyTrees* property_trees, 531 PropertyTrees* property_trees,
532 bool subtree_visible_from_ancestor, 532 bool subtree_visible_from_ancestor,
533 bool can_render_to_separate_surface) { 533 bool can_render_to_separate_surface) {
534 bool layer_is_drawn; 534 bool layer_is_drawn;
535 DCHECK_GE(layer->effect_tree_index(), 0); 535 DCHECK_GE(layer->effect_tree_index(), 0);
536 layer_is_drawn = property_trees->effect_tree.Node(layer->effect_tree_index()) 536 layer_is_drawn = property_trees->effect_tree.Node(layer->effect_tree_index())
537 ->data.is_drawn; 537 ->data.is_drawn;
538 538
539 // The root layer cannot be skipped. 539 // The root layer cannot be skipped.
540 if (!IsRootLayer(layer) && 540 if (!IsRootLayer(layer) &&
541 draw_property_utils::LayerShouldBeSkipped( 541 draw_property_utils::LayerShouldBeSkipped(layer, layer_is_drawn,
542 layer, layer_is_drawn, property_trees->transform_tree)) { 542 property_trees->transform_tree,
543 property_trees->effect_tree)) {
543 layer->draw_properties().render_target = nullptr; 544 layer->draw_properties().render_target = nullptr;
544 return; 545 return;
545 } 546 }
546 547
547 bool render_to_separate_surface = 548 bool render_to_separate_surface =
548 IsRootLayer(layer) || 549 IsRootLayer(layer) ||
549 (can_render_to_separate_surface && layer->render_surface()); 550 (can_render_to_separate_surface && layer->render_surface());
550 551
551 if (render_to_separate_surface) { 552 if (render_to_separate_surface) {
552 DCHECK(layer->render_surface()) << IsRootLayer(layer) 553 DCHECK(layer->render_surface()) << IsRootLayer(layer)
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 598
598 // |can_render_to_separate_surface| and |current_render_surface_layer_list_id| 599 // |can_render_to_separate_surface| and |current_render_surface_layer_list_id|
599 // are settings that should stay the same during recursion. 600 // are settings that should stay the same during recursion.
600 bool layer_is_drawn = false; 601 bool layer_is_drawn = false;
601 DCHECK_GE(layer->effect_tree_index(), 0); 602 DCHECK_GE(layer->effect_tree_index(), 0);
602 layer_is_drawn = property_trees->effect_tree.Node(layer->effect_tree_index()) 603 layer_is_drawn = property_trees->effect_tree.Node(layer->effect_tree_index())
603 ->data.is_drawn; 604 ->data.is_drawn;
604 605
605 // The root layer cannot be skipped. 606 // The root layer cannot be skipped.
606 if (!IsRootLayer(layer) && 607 if (!IsRootLayer(layer) &&
607 draw_property_utils::LayerShouldBeSkipped( 608 draw_property_utils::LayerShouldBeSkipped(layer, layer_is_drawn,
608 layer, layer_is_drawn, property_trees->transform_tree)) { 609 property_trees->transform_tree,
610 property_trees->effect_tree)) {
609 if (layer->render_surface()) 611 if (layer->render_surface())
610 layer->ClearRenderSurfaceLayerList(); 612 layer->ClearRenderSurfaceLayerList();
611 layer->draw_properties().render_target = nullptr; 613 layer->draw_properties().render_target = nullptr;
612 return; 614 return;
613 } 615 }
614 616
615 bool render_to_separate_surface = 617 bool render_to_separate_surface =
616 IsRootLayer(layer) || 618 IsRootLayer(layer) ||
617 (can_render_to_separate_surface && layer->render_surface()); 619 (can_render_to_separate_surface && layer->render_surface());
618 620
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
921 inputs->root_layer, inputs->page_scale_layer, 923 inputs->root_layer, inputs->page_scale_layer,
922 inputs->inner_viewport_scroll_layer, inputs->outer_viewport_scroll_layer, 924 inputs->inner_viewport_scroll_layer, inputs->outer_viewport_scroll_layer,
923 overscroll_elasticity_layer, elastic_overscroll, 925 overscroll_elasticity_layer, elastic_overscroll,
924 inputs->page_scale_factor, inputs->device_scale_factor, 926 inputs->page_scale_factor, inputs->device_scale_factor,
925 gfx::Rect(inputs->device_viewport_size), inputs->device_transform, 927 gfx::Rect(inputs->device_viewport_size), inputs->device_transform,
926 property_trees); 928 property_trees);
927 draw_property_utils::UpdateRenderSurfaces(inputs->root_layer, property_trees); 929 draw_property_utils::UpdateRenderSurfaces(inputs->root_layer, property_trees);
928 draw_property_utils::UpdatePropertyTrees(property_trees, 930 draw_property_utils::UpdatePropertyTrees(property_trees,
929 can_render_to_separate_surface); 931 can_render_to_separate_surface);
930 draw_property_utils::FindLayersThatNeedUpdates( 932 draw_property_utils::FindLayersThatNeedUpdates(
931 inputs->root_layer, property_trees->transform_tree, 933 inputs->root_layer->layer_tree_host(), property_trees->transform_tree,
932 property_trees->effect_tree, &update_layer_list); 934 property_trees->effect_tree, &update_layer_list);
933 draw_property_utils::ComputeVisibleRectsForTesting( 935 draw_property_utils::ComputeVisibleRectsForTesting(
934 property_trees, can_render_to_separate_surface, &update_layer_list); 936 property_trees, can_render_to_separate_surface, &update_layer_list);
935 } 937 }
936 938
937 void LayerTreeHostCommon::CalculateDrawProperties( 939 void LayerTreeHostCommon::CalculateDrawProperties(
938 CalcDrawPropsImplInputs* inputs) { 940 CalcDrawPropsImplInputs* inputs) {
939 CalculateDrawPropertiesInternal(inputs, DONT_BUILD_PROPERTY_TREES); 941 CalculateDrawPropertiesInternal(inputs, DONT_BUILD_PROPERTY_TREES);
940 942
941 if (CdpPerfTracingEnabled()) { 943 if (CdpPerfTracingEnabled()) {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
993 995
994 PropertyTrees* GetPropertyTrees(Layer* layer) { 996 PropertyTrees* GetPropertyTrees(Layer* layer) {
995 return layer->layer_tree_host()->property_trees(); 997 return layer->layer_tree_host()->property_trees();
996 } 998 }
997 999
998 PropertyTrees* GetPropertyTrees(LayerImpl* layer) { 1000 PropertyTrees* GetPropertyTrees(LayerImpl* layer) {
999 return layer->layer_tree_impl()->property_trees(); 1001 return layer->layer_tree_impl()->property_trees();
1000 } 1002 }
1001 1003
1002 } // namespace cc 1004 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_common.h ('k') | cc/trees/layer_tree_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698