| 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 <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "cc/base/math_util.h" | 9 #include "cc/base/math_util.h" |
| 10 #include "cc/layers/draw_properties.h" | 10 #include "cc/layers/draw_properties.h" |
| (...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 581 for (int i = 1; i < static_cast<int>(effect_tree->size()); ++i) | 581 for (int i = 1; i < static_cast<int>(effect_tree->size()); ++i) |
| 582 effect_tree->UpdateOpacities(i); | 582 effect_tree->UpdateOpacities(i); |
| 583 effect_tree->set_needs_update(false); | 583 effect_tree->set_needs_update(false); |
| 584 } | 584 } |
| 585 | 585 |
| 586 template <typename LayerType> | 586 template <typename LayerType> |
| 587 void ComputeVisibleRectsUsingPropertyTreesInternal( | 587 void ComputeVisibleRectsUsingPropertyTreesInternal( |
| 588 LayerType* root_layer, | 588 LayerType* root_layer, |
| 589 PropertyTrees* property_trees, | 589 PropertyTrees* property_trees, |
| 590 bool can_render_to_separate_surface, | 590 bool can_render_to_separate_surface, |
| 591 typename LayerType::LayerListType* update_layer_list) { | 591 typename LayerType::LayerListType* update_layer_list, |
| 592 std::vector<LayerType*>* visible_layer_list) { |
| 592 if (property_trees->non_root_surfaces_enabled != | 593 if (property_trees->non_root_surfaces_enabled != |
| 593 can_render_to_separate_surface) { | 594 can_render_to_separate_surface) { |
| 594 property_trees->non_root_surfaces_enabled = can_render_to_separate_surface; | 595 property_trees->non_root_surfaces_enabled = can_render_to_separate_surface; |
| 595 property_trees->transform_tree.set_needs_update(true); | 596 property_trees->transform_tree.set_needs_update(true); |
| 596 } | 597 } |
| 597 if (property_trees->transform_tree.needs_update()) | 598 if (property_trees->transform_tree.needs_update()) |
| 598 property_trees->clip_tree.set_needs_update(true); | 599 property_trees->clip_tree.set_needs_update(true); |
| 599 ComputeTransforms(&property_trees->transform_tree); | 600 ComputeTransforms(&property_trees->transform_tree); |
| 600 ComputeClips(&property_trees->clip_tree, property_trees->transform_tree, | 601 ComputeClips(&property_trees->clip_tree, property_trees->transform_tree, |
| 601 can_render_to_separate_surface); | 602 can_render_to_separate_surface); |
| 602 ComputeOpacities(&property_trees->effect_tree); | 603 ComputeOpacities(&property_trees->effect_tree); |
| 603 | 604 |
| 604 const bool subtree_is_visible_from_ancestor = true; | 605 const bool subtree_is_visible_from_ancestor = true; |
| 605 std::vector<LayerType*> visible_layer_list; | |
| 606 FindLayersThatNeedUpdates(root_layer, property_trees->transform_tree, | 606 FindLayersThatNeedUpdates(root_layer, property_trees->transform_tree, |
| 607 subtree_is_visible_from_ancestor, update_layer_list, | 607 subtree_is_visible_from_ancestor, update_layer_list, |
| 608 &visible_layer_list); | 608 visible_layer_list); |
| 609 CalculateVisibleRects<LayerType>( | 609 CalculateVisibleRects<LayerType>( |
| 610 visible_layer_list, property_trees->clip_tree, | 610 *visible_layer_list, property_trees->clip_tree, |
| 611 property_trees->transform_tree, can_render_to_separate_surface); | 611 property_trees->transform_tree, can_render_to_separate_surface); |
| 612 } | 612 } |
| 613 | 613 |
| 614 void BuildPropertyTreesAndComputeVisibleRects( | 614 void BuildPropertyTreesAndComputeVisibleRects( |
| 615 Layer* root_layer, | 615 Layer* root_layer, |
| 616 const Layer* page_scale_layer, | 616 const Layer* page_scale_layer, |
| 617 const Layer* inner_viewport_scroll_layer, | 617 const Layer* inner_viewport_scroll_layer, |
| 618 const Layer* outer_viewport_scroll_layer, | 618 const Layer* outer_viewport_scroll_layer, |
| 619 float page_scale_factor, | 619 float page_scale_factor, |
| 620 float device_scale_factor, | 620 float device_scale_factor, |
| (...skipping 15 matching lines...) Expand all Loading... |
| 636 LayerImpl* root_layer, | 636 LayerImpl* root_layer, |
| 637 const LayerImpl* page_scale_layer, | 637 const LayerImpl* page_scale_layer, |
| 638 const LayerImpl* inner_viewport_scroll_layer, | 638 const LayerImpl* inner_viewport_scroll_layer, |
| 639 const LayerImpl* outer_viewport_scroll_layer, | 639 const LayerImpl* outer_viewport_scroll_layer, |
| 640 float page_scale_factor, | 640 float page_scale_factor, |
| 641 float device_scale_factor, | 641 float device_scale_factor, |
| 642 const gfx::Rect& viewport, | 642 const gfx::Rect& viewport, |
| 643 const gfx::Transform& device_transform, | 643 const gfx::Transform& device_transform, |
| 644 bool can_render_to_separate_surface, | 644 bool can_render_to_separate_surface, |
| 645 PropertyTrees* property_trees, | 645 PropertyTrees* property_trees, |
| 646 LayerImplList* update_layer_list) { | 646 LayerImplList* visible_layer_list) { |
| 647 PropertyTreeBuilder::BuildPropertyTrees( | 647 PropertyTreeBuilder::BuildPropertyTrees( |
| 648 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 648 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
| 649 outer_viewport_scroll_layer, page_scale_factor, device_scale_factor, | 649 outer_viewport_scroll_layer, page_scale_factor, device_scale_factor, |
| 650 viewport, device_transform, property_trees); | 650 viewport, device_transform, property_trees); |
| 651 ComputeVisibleRectsUsingPropertyTrees(root_layer, property_trees, | 651 ComputeVisibleRectsUsingPropertyTrees(root_layer, property_trees, |
| 652 can_render_to_separate_surface, | 652 can_render_to_separate_surface, |
| 653 update_layer_list); | 653 visible_layer_list); |
| 654 } | 654 } |
| 655 | 655 |
| 656 void ComputeVisibleRectsUsingPropertyTrees(Layer* root_layer, | 656 void ComputeVisibleRectsUsingPropertyTrees(Layer* root_layer, |
| 657 PropertyTrees* property_trees, | 657 PropertyTrees* property_trees, |
| 658 bool can_render_to_separate_surface, | 658 bool can_render_to_separate_surface, |
| 659 LayerList* update_layer_list) { | 659 LayerList* update_layer_list) { |
| 660 ComputeVisibleRectsUsingPropertyTreesInternal(root_layer, property_trees, | 660 std::vector<Layer*> visible_layer_list; |
| 661 can_render_to_separate_surface, | 661 ComputeVisibleRectsUsingPropertyTreesInternal( |
| 662 update_layer_list); | 662 root_layer, property_trees, can_render_to_separate_surface, |
| 663 update_layer_list, &visible_layer_list); |
| 663 } | 664 } |
| 664 | 665 |
| 665 void ComputeVisibleRectsUsingPropertyTrees(LayerImpl* root_layer, | 666 void ComputeVisibleRectsUsingPropertyTrees(LayerImpl* root_layer, |
| 666 PropertyTrees* property_trees, | 667 PropertyTrees* property_trees, |
| 667 bool can_render_to_separate_surface, | 668 bool can_render_to_separate_surface, |
| 668 LayerImplList* update_layer_list) { | 669 LayerImplList* visible_layer_list) { |
| 669 ComputeVisibleRectsUsingPropertyTreesInternal(root_layer, property_trees, | 670 LayerImplList update_layer_list; |
| 670 can_render_to_separate_surface, | 671 ComputeVisibleRectsUsingPropertyTreesInternal( |
| 671 update_layer_list); | 672 root_layer, property_trees, can_render_to_separate_surface, |
| 673 &update_layer_list, visible_layer_list); |
| 672 } | 674 } |
| 673 | 675 |
| 674 template <typename LayerType> | 676 template <typename LayerType> |
| 675 gfx::Transform DrawTransformFromPropertyTreesInternal( | 677 gfx::Transform DrawTransformFromPropertyTreesInternal( |
| 676 const LayerType* layer, | 678 const LayerType* layer, |
| 677 const TransformNode* node) { | 679 const TransformNode* node) { |
| 678 gfx::Transform xform; | 680 gfx::Transform xform; |
| 679 const bool owns_non_root_surface = | 681 const bool owns_non_root_surface = |
| 680 layer->parent() && layer->has_render_surface(); | 682 layer->parent() && layer->has_render_surface(); |
| 681 if (!owns_non_root_surface) { | 683 if (!owns_non_root_surface) { |
| (...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1050 const Layer* page_scale_layer, | 1052 const Layer* page_scale_layer, |
| 1051 float page_scale_factor, | 1053 float page_scale_factor, |
| 1052 float device_scale_factor, | 1054 float device_scale_factor, |
| 1053 const gfx::Transform device_transform) { | 1055 const gfx::Transform device_transform) { |
| 1054 UpdatePageScaleFactorInPropertyTreesInternal( | 1056 UpdatePageScaleFactorInPropertyTreesInternal( |
| 1055 property_trees, page_scale_layer, page_scale_factor, device_scale_factor, | 1057 property_trees, page_scale_layer, page_scale_factor, device_scale_factor, |
| 1056 device_transform); | 1058 device_transform); |
| 1057 } | 1059 } |
| 1058 | 1060 |
| 1059 } // namespace cc | 1061 } // namespace cc |
| OLD | NEW |