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

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

Issue 1565783002: Revert of Determine a layer's IsAffectedByPageScale property without using Layer Tree (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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/layers/picture_layer_impl_unittest.cc ('k') | no next file » | 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/property_tree_builder.h" 5 #include "cc/trees/property_tree_builder.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 311
312 data_for_children->transform_tree->Insert(TransformNode(), parent_index); 312 data_for_children->transform_tree->Insert(TransformNode(), parent_index);
313 313
314 TransformNode* node = data_for_children->transform_tree->back(); 314 TransformNode* node = data_for_children->transform_tree->back();
315 layer->SetTransformTreeIndex(node->id); 315 layer->SetTransformTreeIndex(node->id);
316 if (layer->mask_layer()) 316 if (layer->mask_layer())
317 layer->mask_layer()->SetTransformTreeIndex(node->id); 317 layer->mask_layer()->SetTransformTreeIndex(node->id);
318 318
319 node->data.scrolls = is_scrollable; 319 node->data.scrolls = is_scrollable;
320 node->data.flattens_inherited_transform = data_for_children->should_flatten; 320 node->data.flattens_inherited_transform = data_for_children->should_flatten;
321
322 if (layer == data_from_ancestor.page_scale_layer)
323 data_for_children->in_subtree_of_page_scale_layer = true;
324 node->data.in_subtree_of_page_scale_layer = 321 node->data.in_subtree_of_page_scale_layer =
325 data_for_children->in_subtree_of_page_scale_layer; 322 data_for_children->in_subtree_of_page_scale_layer;
326 323
327 // Surfaces inherently flatten transforms. 324 // Surfaces inherently flatten transforms.
328 data_for_children->should_flatten = 325 data_for_children->should_flatten =
329 layer->should_flatten_transform() || has_surface; 326 layer->should_flatten_transform() || has_surface;
330 DCHECK_GT(data_from_ancestor.effect_tree->size(), 0u); 327 DCHECK_GT(data_from_ancestor.effect_tree->size(), 0u);
331 328
332 node->data.target_id = 329 node->data.target_id =
333 data_for_children->effect_tree->Node(data_from_ancestor.render_target) 330 data_for_children->effect_tree->Node(data_from_ancestor.render_target)
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 data_for_children->axis_align_since_render_target = true; 621 data_for_children->axis_align_since_render_target = true;
625 } 622 }
626 return should_create_render_surface; 623 return should_create_render_surface;
627 } 624 }
628 625
629 template <typename LayerType> 626 template <typename LayerType>
630 void BuildPropertyTreesInternal( 627 void BuildPropertyTreesInternal(
631 LayerType* layer, 628 LayerType* layer,
632 const DataForRecursion<LayerType>& data_from_parent) { 629 const DataForRecursion<LayerType>& data_from_parent) {
633 layer->set_property_tree_sequence_number(data_from_parent.sequence_number); 630 layer->set_property_tree_sequence_number(data_from_parent.sequence_number);
634 if (layer->mask_layer())
635 layer->mask_layer()->set_property_tree_sequence_number(
636 data_from_parent.sequence_number);
637
638 DataForRecursion<LayerType> data_for_children(data_from_parent); 631 DataForRecursion<LayerType> data_for_children(data_from_parent);
639 632
640 bool created_render_surface = 633 bool created_render_surface =
641 AddEffectNodeIfNeeded(data_from_parent, layer, &data_for_children); 634 AddEffectNodeIfNeeded(data_from_parent, layer, &data_for_children);
642 635
643 if (created_render_surface) { 636 if (created_render_surface) {
644 data_for_children.render_target = data_for_children.effect_tree_parent; 637 data_for_children.render_target = data_for_children.effect_tree_parent;
645 layer->set_draw_blend_mode(SkXfermode::kSrcOver_Mode); 638 layer->set_draw_blend_mode(SkXfermode::kSrcOver_Mode);
646 } else { 639 } else {
647 layer->set_draw_blend_mode(layer->blend_mode()); 640 layer->set_draw_blend_mode(layer->blend_mode());
648 } 641 }
649 642
650 bool created_transform_node = AddTransformNodeIfNeeded( 643 bool created_transform_node = AddTransformNodeIfNeeded(
651 data_from_parent, layer, created_render_surface, &data_for_children); 644 data_from_parent, layer, created_render_surface, &data_for_children);
652 AddClipNodeIfNeeded(data_from_parent, layer, created_render_surface, 645 AddClipNodeIfNeeded(data_from_parent, layer, created_render_surface,
653 created_transform_node, &data_for_children); 646 created_transform_node, &data_for_children);
654 647
648 if (layer == data_from_parent.page_scale_layer)
649 data_for_children.in_subtree_of_page_scale_layer = true;
650
655 data_for_children.is_hidden = 651 data_for_children.is_hidden =
656 layer->hide_layer_and_subtree() || data_from_parent.is_hidden; 652 layer->hide_layer_and_subtree() || data_from_parent.is_hidden;
657 layer->set_is_hidden_from_property_trees(data_for_children.is_hidden); 653 layer->set_is_hidden_from_property_trees(data_for_children.is_hidden);
658 654
659 for (size_t i = 0; i < layer->children().size(); ++i) { 655 for (size_t i = 0; i < layer->children().size(); ++i) {
660 if (!layer->child_at(i)->scroll_parent()) { 656 if (!layer->child_at(i)->scroll_parent()) {
661 BuildPropertyTreesInternal(layer->child_at(i), data_for_children); 657 BuildPropertyTreesInternal(layer->child_at(i), data_for_children);
662 } else { 658 } else {
663 // The child should be included in its scroll parent's list of scroll 659 // The child should be included in its scroll parent's list of scroll
664 // children. 660 // children.
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
789 const gfx::Transform& device_transform, 785 const gfx::Transform& device_transform,
790 PropertyTrees* property_trees) { 786 PropertyTrees* property_trees) {
791 BuildPropertyTreesTopLevelInternal( 787 BuildPropertyTreesTopLevelInternal(
792 root_layer, page_scale_layer, inner_viewport_scroll_layer, 788 root_layer, page_scale_layer, inner_viewport_scroll_layer,
793 outer_viewport_scroll_layer, overscroll_elasticity_layer, 789 outer_viewport_scroll_layer, overscroll_elasticity_layer,
794 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, 790 elastic_overscroll, page_scale_factor, device_scale_factor, viewport,
795 device_transform, property_trees); 791 device_transform, property_trees);
796 } 792 }
797 793
798 } // namespace cc 794 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_layer_impl_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698