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

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

Issue 2473453002: cc : Reland move screen space scale factor to root transform node (Closed)
Patch Set: comments Created 4 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
« no previous file with comments | « cc/trees/property_tree.cc ('k') | cc/trees/property_tree_unittest.cc » ('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/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 618 matching lines...) Expand 10 before | Expand all | Expand 10 after
629 kInvalidPropertyTreeNodeId); 629 kInvalidPropertyTreeNodeId);
630 630
631 node->has_potential_animation = has_potentially_animated_transform; 631 node->has_potential_animation = has_potentially_animated_transform;
632 node->is_currently_animating = TransformIsAnimating(layer); 632 node->is_currently_animating = TransformIsAnimating(layer);
633 if (has_potentially_animated_transform) { 633 if (has_potentially_animated_transform) {
634 node->has_only_translation_animations = 634 node->has_only_translation_animations =
635 HasOnlyTranslationTransforms(layer); 635 HasOnlyTranslationTransforms(layer);
636 } 636 }
637 637
638 float post_local_scale_factor = 1.0f; 638 float post_local_scale_factor = 1.0f;
639 if (is_root)
640 post_local_scale_factor =
641 data_for_children->property_trees->transform_tree.device_scale_factor();
642 639
643 if (is_page_scale_layer) { 640 if (is_page_scale_layer) {
644 post_local_scale_factor *= data_from_ancestor.page_scale_factor; 641 if (!is_root)
642 post_local_scale_factor *= data_from_ancestor.page_scale_factor;
645 data_for_children->property_trees->transform_tree.set_page_scale_factor( 643 data_for_children->property_trees->transform_tree.set_page_scale_factor(
646 data_from_ancestor.page_scale_factor); 644 data_from_ancestor.page_scale_factor);
647 } 645 }
648 646
649 node->source_node_id = source_index; 647 node->source_node_id = source_index;
650 node->post_local_scale_factor = post_local_scale_factor; 648 node->post_local_scale_factor = post_local_scale_factor;
651 if (is_root) { 649 if (is_root) {
652 data_for_children->property_trees->transform_tree.SetDeviceTransform( 650 float page_scale_factor_for_root =
653 *data_from_ancestor.device_transform, layer->position()); 651 is_page_scale_layer ? data_from_ancestor.page_scale_factor : 1.f;
654 data_for_children->property_trees->transform_tree 652 data_for_children->property_trees->transform_tree
655 .SetDeviceTransformScaleFactor(*data_from_ancestor.device_transform); 653 .SetRootTransformsAndScales(data_for_children->property_trees
654 ->transform_tree.device_scale_factor(),
655 page_scale_factor_for_root,
656 *data_from_ancestor.device_transform,
657 layer->position());
656 } else { 658 } else {
657 node->source_offset = source_offset; 659 node->source_offset = source_offset;
658 node->update_post_local_transform(layer->position(), 660 node->update_post_local_transform(layer->position(),
659 TransformOrigin(layer)); 661 TransformOrigin(layer));
660 } 662 }
661 663
662 if (is_overscroll_elasticity_layer) { 664 if (is_overscroll_elasticity_layer) {
663 DCHECK(!is_scrollable); 665 DCHECK(!is_scrollable);
664 node->scroll_offset = 666 node->scroll_offset =
665 gfx::ScrollOffset(data_from_ancestor.elastic_overscroll); 667 gfx::ScrollOffset(data_from_ancestor.elastic_overscroll);
(...skipping 686 matching lines...) Expand 10 before | Expand all | Expand 10 after
1352 const gfx::Transform& device_transform, 1354 const gfx::Transform& device_transform,
1353 PropertyTrees* property_trees, 1355 PropertyTrees* property_trees,
1354 SkColor color) { 1356 SkColor color) {
1355 if (!property_trees->needs_rebuild) { 1357 if (!property_trees->needs_rebuild) {
1356 draw_property_utils::UpdatePageScaleFactor( 1358 draw_property_utils::UpdatePageScaleFactor(
1357 property_trees, page_scale_layer, page_scale_factor, 1359 property_trees, page_scale_layer, page_scale_factor,
1358 device_scale_factor, device_transform); 1360 device_scale_factor, device_transform);
1359 draw_property_utils::UpdateElasticOverscroll( 1361 draw_property_utils::UpdateElasticOverscroll(
1360 property_trees, overscroll_elasticity_layer, elastic_overscroll); 1362 property_trees, overscroll_elasticity_layer, elastic_overscroll);
1361 property_trees->clip_tree.SetViewportClip(gfx::RectF(viewport)); 1363 property_trees->clip_tree.SetViewportClip(gfx::RectF(viewport));
1362 property_trees->transform_tree.SetDeviceTransform(device_transform, 1364 float page_scale_factor_for_root =
1363 root_layer->position()); 1365 page_scale_layer == root_layer ? page_scale_factor : 1.f;
1366 property_trees->transform_tree.SetRootTransformsAndScales(
1367 device_scale_factor, page_scale_factor_for_root, device_transform,
1368 root_layer->position());
1364 return; 1369 return;
1365 } 1370 }
1366 1371
1367 property_trees->sequence_number++; 1372 property_trees->sequence_number++;
1368 1373
1369 DataForRecursion<LayerType> data_for_recursion; 1374 DataForRecursion<LayerType> data_for_recursion;
1370 data_for_recursion.property_trees = property_trees; 1375 data_for_recursion.property_trees = property_trees;
1371 data_for_recursion.transform_tree_parent = nullptr; 1376 data_for_recursion.transform_tree_parent = nullptr;
1372 data_for_recursion.transform_fixed_parent = nullptr; 1377 data_for_recursion.transform_fixed_parent = nullptr;
1373 data_for_recursion.render_target = kRootPropertyTreeNodeId; 1378 data_for_recursion.render_target = kRootPropertyTreeNodeId;
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
1491 color = SkColorSetA(color, 255); 1496 color = SkColorSetA(color, 255);
1492 BuildPropertyTreesTopLevelInternal( 1497 BuildPropertyTreesTopLevelInternal(
1493 root_layer, page_scale_layer, inner_viewport_scroll_layer, 1498 root_layer, page_scale_layer, inner_viewport_scroll_layer,
1494 outer_viewport_scroll_layer, overscroll_elasticity_layer, 1499 outer_viewport_scroll_layer, overscroll_elasticity_layer,
1495 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, 1500 elastic_overscroll, page_scale_factor, device_scale_factor, viewport,
1496 device_transform, property_trees, color); 1501 device_transform, property_trees, color);
1497 property_trees->ResetCachedData(); 1502 property_trees->ResetCachedData();
1498 } 1503 }
1499 1504
1500 } // namespace cc 1505 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/property_tree.cc ('k') | cc/trees/property_tree_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698