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

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

Issue 1413153014: Add a flag for enabling compositor property trees (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698