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

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: . 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
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;
652 data_for_children->property_trees->transform_tree
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());
654 data_for_children->property_trees->transform_tree 658 data_for_children->property_trees->transform_tree
655 .SetDeviceTransformScaleFactor(*data_from_ancestor.device_transform); 659 .SetDeviceTransformScaleFactor(*data_from_ancestor.device_transform);
656 } else { 660 } else {
657 node->source_offset = source_offset; 661 node->source_offset = source_offset;
658 node->update_post_local_transform(layer->position(), 662 node->update_post_local_transform(layer->position(),
659 TransformOrigin(layer)); 663 TransformOrigin(layer));
660 } 664 }
661 665
662 if (is_overscroll_elasticity_layer) { 666 if (is_overscroll_elasticity_layer) {
663 DCHECK(!is_scrollable); 667 DCHECK(!is_scrollable);
(...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after
1352 const gfx::Transform& device_transform, 1356 const gfx::Transform& device_transform,
1353 PropertyTrees* property_trees, 1357 PropertyTrees* property_trees,
1354 SkColor color) { 1358 SkColor color) {
1355 if (!property_trees->needs_rebuild) { 1359 if (!property_trees->needs_rebuild) {
1356 draw_property_utils::UpdatePageScaleFactor( 1360 draw_property_utils::UpdatePageScaleFactor(
1357 property_trees, page_scale_layer, page_scale_factor, 1361 property_trees, page_scale_layer, page_scale_factor,
1358 device_scale_factor, device_transform); 1362 device_scale_factor, device_transform);
1359 draw_property_utils::UpdateElasticOverscroll( 1363 draw_property_utils::UpdateElasticOverscroll(
1360 property_trees, overscroll_elasticity_layer, elastic_overscroll); 1364 property_trees, overscroll_elasticity_layer, elastic_overscroll);
1361 property_trees->clip_tree.SetViewportClip(gfx::RectF(viewport)); 1365 property_trees->clip_tree.SetViewportClip(gfx::RectF(viewport));
1362 property_trees->transform_tree.SetDeviceTransform(device_transform, 1366 float page_scale_factor_for_root =
1363 root_layer->position()); 1367 page_scale_layer == root_layer ? page_scale_factor : 1.f;
1368 property_trees->transform_tree.SetRootTransformsAndScales(
1369 device_scale_factor, page_scale_factor_for_root, device_transform,
1370 root_layer->position());
1364 return; 1371 return;
1365 } 1372 }
1366 1373
1367 property_trees->sequence_number++; 1374 property_trees->sequence_number++;
1368 1375
1369 DataForRecursion<LayerType> data_for_recursion; 1376 DataForRecursion<LayerType> data_for_recursion;
1370 data_for_recursion.property_trees = property_trees; 1377 data_for_recursion.property_trees = property_trees;
1371 data_for_recursion.transform_tree_parent = nullptr; 1378 data_for_recursion.transform_tree_parent = nullptr;
1372 data_for_recursion.transform_fixed_parent = nullptr; 1379 data_for_recursion.transform_fixed_parent = nullptr;
1373 data_for_recursion.render_target = kRootPropertyTreeNodeId; 1380 data_for_recursion.render_target = kRootPropertyTreeNodeId;
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
1491 color = SkColorSetA(color, 255); 1498 color = SkColorSetA(color, 255);
1492 BuildPropertyTreesTopLevelInternal( 1499 BuildPropertyTreesTopLevelInternal(
1493 root_layer, page_scale_layer, inner_viewport_scroll_layer, 1500 root_layer, page_scale_layer, inner_viewport_scroll_layer,
1494 outer_viewport_scroll_layer, overscroll_elasticity_layer, 1501 outer_viewport_scroll_layer, overscroll_elasticity_layer,
1495 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, 1502 elastic_overscroll, page_scale_factor, device_scale_factor, viewport,
1496 device_transform, property_trees, color); 1503 device_transform, property_trees, color);
1497 property_trees->ResetCachedData(); 1504 property_trees->ResetCachedData();
1498 } 1505 }
1499 1506
1500 } // namespace cc 1507 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698