| OLD | NEW |
| 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 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 const TransformTree& transform_tree, | 413 const TransformTree& transform_tree, |
| 414 const EffectTree& effect_tree) { | 414 const EffectTree& effect_tree) { |
| 415 return LayerShouldBeSkippedInternal(layer, layer_is_drawn, transform_tree, | 415 return LayerShouldBeSkippedInternal(layer, layer_is_drawn, transform_tree, |
| 416 effect_tree); | 416 effect_tree); |
| 417 } | 417 } |
| 418 | 418 |
| 419 void FindLayersThatNeedUpdates(LayerTreeHost* layer_tree_host, | 419 void FindLayersThatNeedUpdates(LayerTreeHost* layer_tree_host, |
| 420 const TransformTree& transform_tree, | 420 const TransformTree& transform_tree, |
| 421 const EffectTree& effect_tree, | 421 const EffectTree& effect_tree, |
| 422 LayerList* update_layer_list) { | 422 LayerList* update_layer_list) { |
| 423 LayerTreeHostCommon::CallFunctionForEveryLayer( | 423 for (auto* layer : *layer_tree_host) { |
| 424 layer_tree_host, | 424 bool layer_is_drawn = |
| 425 [&](Layer* layer) { | 425 effect_tree.Node(layer->effect_tree_index())->data.is_drawn; |
| 426 bool layer_is_drawn = | |
| 427 effect_tree.Node(layer->effect_tree_index())->data.is_drawn; | |
| 428 | 426 |
| 429 if (!IsRootLayer(layer) && | 427 if (!IsRootLayer(layer) && |
| 430 LayerShouldBeSkipped(layer, layer_is_drawn, transform_tree, | 428 LayerShouldBeSkipped(layer, layer_is_drawn, transform_tree, |
| 431 effect_tree)) | 429 effect_tree)) |
| 432 return; | 430 continue; |
| 433 | 431 |
| 434 if (LayerNeedsUpdate(layer, layer_is_drawn, transform_tree)) { | 432 if (LayerNeedsUpdate(layer, layer_is_drawn, transform_tree)) { |
| 435 update_layer_list->push_back(layer); | 433 update_layer_list->push_back(layer); |
| 436 } | 434 } |
| 437 | 435 |
| 438 // Append mask layers to the update layer list. They don't have valid | 436 // Append mask layers to the update layer list. They don't have valid |
| 439 // visible rects, so need to get added after the above calculation. | 437 // visible rects, so need to get added after the above calculation. |
| 440 // Replica layers don't need to be updated. | 438 // Replica layers don't need to be updated. |
| 441 if (Layer* mask_layer = layer->mask_layer()) | 439 if (Layer* mask_layer = layer->mask_layer()) |
| 442 update_layer_list->push_back(mask_layer); | 440 update_layer_list->push_back(mask_layer); |
| 443 if (Layer* replica_layer = layer->replica_layer()) { | 441 if (Layer* replica_layer = layer->replica_layer()) { |
| 444 if (Layer* mask_layer = replica_layer->mask_layer()) | 442 if (Layer* mask_layer = replica_layer->mask_layer()) |
| 445 update_layer_list->push_back(mask_layer); | 443 update_layer_list->push_back(mask_layer); |
| 446 } | 444 } |
| 447 }, | 445 } |
| 448 CallFunctionLayerType::BASIC_LAYER); | |
| 449 } | 446 } |
| 450 | 447 |
| 451 static void ResetIfHasNanCoordinate(gfx::RectF* rect) { | 448 static void ResetIfHasNanCoordinate(gfx::RectF* rect) { |
| 452 if (std::isnan(rect->x()) || std::isnan(rect->y()) || | 449 if (std::isnan(rect->x()) || std::isnan(rect->y()) || |
| 453 std::isnan(rect->right()) || std::isnan(rect->bottom())) | 450 std::isnan(rect->right()) || std::isnan(rect->bottom())) |
| 454 *rect = gfx::RectF(); | 451 *rect = gfx::RectF(); |
| 455 } | 452 } |
| 456 | 453 |
| 457 void ComputeClips(ClipTree* clip_tree, | 454 void ComputeClips(ClipTree* clip_tree, |
| 458 const TransformTree& transform_tree, | 455 const TransformTree& transform_tree, |
| (...skipping 664 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1123 void UpdateElasticOverscroll(PropertyTrees* property_trees, | 1120 void UpdateElasticOverscroll(PropertyTrees* property_trees, |
| 1124 const Layer* overscroll_elasticity_layer, | 1121 const Layer* overscroll_elasticity_layer, |
| 1125 const gfx::Vector2dF& elastic_overscroll) { | 1122 const gfx::Vector2dF& elastic_overscroll) { |
| 1126 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, | 1123 UpdateElasticOverscrollInternal(property_trees, overscroll_elasticity_layer, |
| 1127 elastic_overscroll); | 1124 elastic_overscroll); |
| 1128 } | 1125 } |
| 1129 | 1126 |
| 1130 } // namespace draw_property_utils | 1127 } // namespace draw_property_utils |
| 1131 | 1128 |
| 1132 } // namespace cc | 1129 } // namespace cc |
| OLD | NEW |