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

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

Issue 1921503005: cc: Move main thread hierarchy dependencies into PropertyTreeBuilder (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 7 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/damage_tracker_unittest.cc ('k') | cc/trees/layer_tree_host.h » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/draw_property_utils.h" 5 #include "cc/trees/draw_property_utils.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 DCHECK(layer->background_filters().IsEmpty()) << "layer: " << layer->id(); 64 DCHECK(layer->background_filters().IsEmpty()) << "layer: " << layer->id();
65 DCHECK(!IsRootLayer(layer)) << "layer: " << layer->id(); 65 DCHECK(!IsRootLayer(layer)) << "layer: " << layer->id();
66 if (EffectNodeOwner(layer)->replica_layer() == layer) 66 if (EffectNodeOwner(layer)->replica_layer() == layer)
67 return; 67 return;
68 DCHECK(!layer->mask_layer()) << "layer: " << layer->id(); 68 DCHECK(!layer->mask_layer()) << "layer: " << layer->id();
69 DCHECK(!layer->replica_layer()) << "layer: " << layer->id(); 69 DCHECK(!layer->replica_layer()) << "layer: " << layer->id();
70 DCHECK(!layer->HasCopyRequest()) << "layer: " << layer->id(); 70 DCHECK(!layer->HasCopyRequest()) << "layer: " << layer->id();
71 ValidateIsNotRootForIsolatedGroup(layer); 71 ValidateIsNotRootForIsolatedGroup(layer);
72 } 72 }
73 73
74 static void ValidateRenderSurfacesRecursive(Layer* layer) {
75 ValidateRenderSurfaceForLayer(layer);
76 for (size_t i = 0; i < layer->children().size(); ++i)
77 ValidateRenderSurfacesRecursive(layer->child_at(i));
78 }
79 #endif 74 #endif
80 75
81 template <typename LayerType> 76 template <typename LayerType>
82 void CalculateVisibleRects( 77 void CalculateVisibleRects(
83 const typename LayerType::LayerListType& visible_layer_list, 78 const typename LayerType::LayerListType& visible_layer_list,
84 const ClipTree& clip_tree, 79 const ClipTree& clip_tree,
85 const TransformTree& transform_tree, 80 const TransformTree& transform_tree,
86 bool non_root_surfaces_enabled) { 81 bool non_root_surfaces_enabled) {
87 for (auto& layer : visible_layer_list) { 82 for (auto& layer : visible_layer_list) {
88 gfx::Size layer_bounds = layer->bounds(); 83 gfx::Size layer_bounds = layer->bounds();
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 } 361 }
367 362
368 EffectNode* node = effect_tree->Node(layer->effect_tree_index()); 363 EffectNode* node = effect_tree->Node(layer->effect_tree_index());
369 364
370 if (node->owner_id == layer->id() && node->data.has_render_surface) 365 if (node->owner_id == layer->id() && node->data.has_render_surface)
371 layer->SetHasRenderSurface(true); 366 layer->SetHasRenderSurface(true);
372 else 367 else
373 layer->SetHasRenderSurface(false); 368 layer->SetHasRenderSurface(false);
374 } 369 }
375 370
376 void UpdateRenderSurfacesForLayersRecursive(EffectTree* effect_tree,
377 Layer* layer) {
378 UpdateRenderSurfaceForLayer(effect_tree, true, layer);
379
380 for (size_t i = 0; i < layer->children().size(); ++i) {
381 UpdateRenderSurfacesForLayersRecursive(effect_tree, layer->child_at(i));
382 }
383 }
384
385 } // namespace 371 } // namespace
386 372
387 template <typename LayerType> 373 template <typename LayerType>
388 static inline bool LayerShouldBeSkippedInternal( 374 static inline bool LayerShouldBeSkippedInternal(
389 LayerType* layer, 375 LayerType* layer,
390 bool layer_is_drawn, 376 bool layer_is_drawn,
391 const TransformTree& transform_tree, 377 const TransformTree& transform_tree,
392 const EffectTree& effect_tree) { 378 const EffectTree& effect_tree) {
393 const TransformNode* transform_node = 379 const TransformNode* transform_node =
394 transform_tree.Node(layer->transform_tree_index()); 380 transform_tree.Node(layer->transform_tree_index());
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 637
652 FindLayersThatNeedUpdates( 638 FindLayersThatNeedUpdates(
653 root_layer->layer_tree_impl(), property_trees->transform_tree, 639 root_layer->layer_tree_impl(), property_trees->transform_tree,
654 property_trees->effect_tree, update_layer_list, visible_layer_list); 640 property_trees->effect_tree, update_layer_list, visible_layer_list);
655 CalculateVisibleRects<LayerImpl>( 641 CalculateVisibleRects<LayerImpl>(
656 *visible_layer_list, property_trees->clip_tree, 642 *visible_layer_list, property_trees->clip_tree,
657 property_trees->transform_tree, can_render_to_separate_surface); 643 property_trees->transform_tree, can_render_to_separate_surface);
658 } 644 }
659 645
660 void UpdateRenderSurfaces(Layer* root_layer, PropertyTrees* property_trees) { 646 void UpdateRenderSurfaces(Layer* root_layer, PropertyTrees* property_trees) {
661 UpdateRenderSurfacesForLayersRecursive(&property_trees->effect_tree, 647 for (auto* layer : *root_layer->layer_tree_host()) {
662 root_layer); 648 UpdateRenderSurfaceForLayer(&property_trees->effect_tree, true, layer);
663 #if DCHECK_IS_ON() 649 #if DCHECK_IS_ON()
664 ValidateRenderSurfacesRecursive(root_layer); 650 ValidateRenderSurfaceForLayer(layer);
665 #endif 651 #endif
652 }
666 } 653 }
667 654
668 void UpdatePropertyTrees(PropertyTrees* property_trees, 655 void UpdatePropertyTrees(PropertyTrees* property_trees,
669 bool can_render_to_separate_surface) { 656 bool can_render_to_separate_surface) {
670 if (property_trees->non_root_surfaces_enabled != 657 if (property_trees->non_root_surfaces_enabled !=
671 can_render_to_separate_surface) { 658 can_render_to_separate_surface) {
672 property_trees->non_root_surfaces_enabled = can_render_to_separate_surface; 659 property_trees->non_root_surfaces_enabled = can_render_to_separate_surface;
673 property_trees->transform_tree.set_needs_update(true); 660 property_trees->transform_tree.set_needs_update(true);
674 } 661 }
675 if (property_trees->transform_tree.needs_update()) 662 if (property_trees->transform_tree.needs_update())
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after
1126 void UpdateElasticOverscroll(PropertyTrees* property_trees, 1113 void UpdateElasticOverscroll(PropertyTrees* property_trees,
1127 const Layer* overscroll_elasticity_layer, 1114 const Layer* overscroll_elasticity_layer,
1128 const gfx::Vector2dF& elastic_overscroll) { 1115 const gfx::Vector2dF& elastic_overscroll) {
1129 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, 1116 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer,
1130 elastic_overscroll); 1117 elastic_overscroll);
1131 } 1118 }
1132 1119
1133 } // namespace draw_property_utils 1120 } // namespace draw_property_utils
1134 1121
1135 } // namespace cc 1122 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/damage_tracker_unittest.cc ('k') | cc/trees/layer_tree_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698