| 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/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 Loading... |
| 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(); |
| 639 | 642 |
| 640 if (is_page_scale_layer) { | 643 if (is_page_scale_layer) { |
| 641 if (!is_root) | 644 post_local_scale_factor *= data_from_ancestor.page_scale_factor; |
| 642 post_local_scale_factor *= data_from_ancestor.page_scale_factor; | |
| 643 data_for_children->property_trees->transform_tree.set_page_scale_factor( | 645 data_for_children->property_trees->transform_tree.set_page_scale_factor( |
| 644 data_from_ancestor.page_scale_factor); | 646 data_from_ancestor.page_scale_factor); |
| 645 } | 647 } |
| 646 | 648 |
| 647 node->source_node_id = source_index; | 649 node->source_node_id = source_index; |
| 648 node->post_local_scale_factor = post_local_scale_factor; | 650 node->post_local_scale_factor = post_local_scale_factor; |
| 649 if (is_root) { | 651 if (is_root) { |
| 650 float page_scale_factor_for_root = | 652 data_for_children->property_trees->transform_tree.SetDeviceTransform( |
| 651 is_page_scale_layer ? data_from_ancestor.page_scale_factor : 1.f; | 653 *data_from_ancestor.device_transform, layer->position()); |
| 652 data_for_children->property_trees->transform_tree | 654 data_for_children->property_trees->transform_tree |
| 653 .SetRootTransformsAndScales(data_for_children->property_trees | 655 .SetDeviceTransformScaleFactor(*data_from_ancestor.device_transform); |
| 654 ->transform_tree.device_scale_factor(), | |
| 655 page_scale_factor_for_root, | |
| 656 *data_from_ancestor.device_transform, | |
| 657 layer->position()); | |
| 658 } else { | 656 } else { |
| 659 node->source_offset = source_offset; | 657 node->source_offset = source_offset; |
| 660 node->update_post_local_transform(layer->position(), | 658 node->update_post_local_transform(layer->position(), |
| 661 TransformOrigin(layer)); | 659 TransformOrigin(layer)); |
| 662 } | 660 } |
| 663 | 661 |
| 664 if (is_overscroll_elasticity_layer) { | 662 if (is_overscroll_elasticity_layer) { |
| 665 DCHECK(!is_scrollable); | 663 DCHECK(!is_scrollable); |
| 666 node->scroll_offset = | 664 node->scroll_offset = |
| 667 gfx::ScrollOffset(data_from_ancestor.elastic_overscroll); | 665 gfx::ScrollOffset(data_from_ancestor.elastic_overscroll); |
| (...skipping 676 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1344 const gfx::Transform& device_transform, | 1342 const gfx::Transform& device_transform, |
| 1345 PropertyTrees* property_trees, | 1343 PropertyTrees* property_trees, |
| 1346 SkColor color) { | 1344 SkColor color) { |
| 1347 if (!property_trees->needs_rebuild) { | 1345 if (!property_trees->needs_rebuild) { |
| 1348 draw_property_utils::UpdatePageScaleFactor( | 1346 draw_property_utils::UpdatePageScaleFactor( |
| 1349 property_trees, page_scale_layer, page_scale_factor, | 1347 property_trees, page_scale_layer, page_scale_factor, |
| 1350 device_scale_factor, device_transform); | 1348 device_scale_factor, device_transform); |
| 1351 draw_property_utils::UpdateElasticOverscroll( | 1349 draw_property_utils::UpdateElasticOverscroll( |
| 1352 property_trees, overscroll_elasticity_layer, elastic_overscroll); | 1350 property_trees, overscroll_elasticity_layer, elastic_overscroll); |
| 1353 property_trees->clip_tree.SetViewportClip(gfx::RectF(viewport)); | 1351 property_trees->clip_tree.SetViewportClip(gfx::RectF(viewport)); |
| 1354 float page_scale_factor_for_root = | 1352 property_trees->transform_tree.SetDeviceTransform(device_transform, |
| 1355 page_scale_layer == root_layer ? page_scale_factor : 1.f; | 1353 root_layer->position()); |
| 1356 property_trees->transform_tree.SetRootTransformsAndScales( | |
| 1357 device_scale_factor, page_scale_factor_for_root, device_transform, | |
| 1358 root_layer->position()); | |
| 1359 return; | 1354 return; |
| 1360 } | 1355 } |
| 1361 | 1356 |
| 1362 property_trees->sequence_number++; | 1357 property_trees->sequence_number++; |
| 1363 | 1358 |
| 1364 DataForRecursion<LayerType> data_for_recursion; | 1359 DataForRecursion<LayerType> data_for_recursion; |
| 1365 data_for_recursion.property_trees = property_trees; | 1360 data_for_recursion.property_trees = property_trees; |
| 1366 data_for_recursion.transform_tree_parent = nullptr; | 1361 data_for_recursion.transform_tree_parent = nullptr; |
| 1367 data_for_recursion.transform_fixed_parent = nullptr; | 1362 data_for_recursion.transform_fixed_parent = nullptr; |
| 1368 data_for_recursion.render_target = kRootPropertyTreeNodeId; | 1363 data_for_recursion.render_target = kRootPropertyTreeNodeId; |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1486 color = SkColorSetA(color, 255); | 1481 color = SkColorSetA(color, 255); |
| 1487 BuildPropertyTreesTopLevelInternal( | 1482 BuildPropertyTreesTopLevelInternal( |
| 1488 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 1483 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
| 1489 outer_viewport_scroll_layer, overscroll_elasticity_layer, | 1484 outer_viewport_scroll_layer, overscroll_elasticity_layer, |
| 1490 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, | 1485 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, |
| 1491 device_transform, property_trees, color); | 1486 device_transform, property_trees, color); |
| 1492 property_trees->ResetCachedData(); | 1487 property_trees->ResetCachedData(); |
| 1493 } | 1488 } |
| 1494 | 1489 |
| 1495 } // namespace cc | 1490 } // namespace cc |
| OLD | NEW |