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 612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
623 kInvalidPropertyTreeNodeId); | 623 kInvalidPropertyTreeNodeId); |
624 | 624 |
625 node->has_potential_animation = has_potentially_animated_transform; | 625 node->has_potential_animation = has_potentially_animated_transform; |
626 node->is_currently_animating = TransformIsAnimating(layer); | 626 node->is_currently_animating = TransformIsAnimating(layer); |
627 if (has_potentially_animated_transform) { | 627 if (has_potentially_animated_transform) { |
628 node->has_only_translation_animations = | 628 node->has_only_translation_animations = |
629 HasOnlyTranslationTransforms(layer); | 629 HasOnlyTranslationTransforms(layer); |
630 } | 630 } |
631 | 631 |
632 float post_local_scale_factor = 1.0f; | 632 float post_local_scale_factor = 1.0f; |
633 if (is_root) | |
634 post_local_scale_factor = | |
635 data_for_children->property_trees->transform_tree.device_scale_factor(); | |
636 | 633 |
637 if (is_page_scale_layer) { | 634 if (is_page_scale_layer) { |
638 post_local_scale_factor *= data_from_ancestor.page_scale_factor; | 635 if (!is_root) |
| 636 post_local_scale_factor *= data_from_ancestor.page_scale_factor; |
639 data_for_children->property_trees->transform_tree.set_page_scale_factor( | 637 data_for_children->property_trees->transform_tree.set_page_scale_factor( |
640 data_from_ancestor.page_scale_factor); | 638 data_from_ancestor.page_scale_factor); |
641 } | 639 } |
642 | 640 |
643 if (has_surface && !is_root) | 641 if (has_surface && !is_root) |
644 node->needs_surface_contents_scale = true; | 642 node->needs_surface_contents_scale = true; |
645 | 643 |
646 node->source_node_id = source_index; | 644 node->source_node_id = source_index; |
647 node->post_local_scale_factor = post_local_scale_factor; | 645 node->post_local_scale_factor = post_local_scale_factor; |
648 if (is_root) { | 646 if (is_root) { |
(...skipping 683 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1332 const gfx::Transform& device_transform, | 1330 const gfx::Transform& device_transform, |
1333 PropertyTrees* property_trees, | 1331 PropertyTrees* property_trees, |
1334 SkColor color) { | 1332 SkColor color) { |
1335 if (!property_trees->needs_rebuild) { | 1333 if (!property_trees->needs_rebuild) { |
1336 draw_property_utils::UpdatePageScaleFactor( | 1334 draw_property_utils::UpdatePageScaleFactor( |
1337 property_trees, page_scale_layer, page_scale_factor, | 1335 property_trees, page_scale_layer, page_scale_factor, |
1338 device_scale_factor, device_transform); | 1336 device_scale_factor, device_transform); |
1339 draw_property_utils::UpdateElasticOverscroll( | 1337 draw_property_utils::UpdateElasticOverscroll( |
1340 property_trees, overscroll_elasticity_layer, elastic_overscroll); | 1338 property_trees, overscroll_elasticity_layer, elastic_overscroll); |
1341 property_trees->clip_tree.SetViewportClip(gfx::RectF(viewport)); | 1339 property_trees->clip_tree.SetViewportClip(gfx::RectF(viewport)); |
| 1340 float page_scale_factor_for_root = |
| 1341 page_scale_layer == root_layer ? page_scale_factor : 1.f; |
| 1342 property_trees->transform_tree.SetScreenSpaceScale( |
| 1343 device_scale_factor, page_scale_factor_for_root, device_transform); |
1342 property_trees->transform_tree.SetDeviceTransform(device_transform, | 1344 property_trees->transform_tree.SetDeviceTransform(device_transform, |
1343 root_layer->position()); | 1345 root_layer->position()); |
1344 return; | 1346 return; |
1345 } | 1347 } |
1346 | 1348 |
1347 property_trees->sequence_number++; | 1349 property_trees->sequence_number++; |
1348 | 1350 |
1349 DataForRecursion<LayerType> data_for_recursion; | 1351 DataForRecursion<LayerType> data_for_recursion; |
1350 data_for_recursion.property_trees = property_trees; | 1352 data_for_recursion.property_trees = property_trees; |
1351 data_for_recursion.transform_tree_parent = nullptr; | 1353 data_for_recursion.transform_tree_parent = nullptr; |
(...skipping 20 matching lines...) Expand all Loading... |
1372 true; | 1374 true; |
1373 data_for_recursion.device_transform = &device_transform; | 1375 data_for_recursion.device_transform = &device_transform; |
1374 | 1376 |
1375 data_for_recursion.property_trees->clear(); | 1377 data_for_recursion.property_trees->clear(); |
1376 data_for_recursion.compound_transform_since_render_target = gfx::Transform(); | 1378 data_for_recursion.compound_transform_since_render_target = gfx::Transform(); |
1377 data_for_recursion.axis_align_since_render_target = true; | 1379 data_for_recursion.axis_align_since_render_target = true; |
1378 data_for_recursion.property_trees->transform_tree.set_device_scale_factor( | 1380 data_for_recursion.property_trees->transform_tree.set_device_scale_factor( |
1379 device_scale_factor); | 1381 device_scale_factor); |
1380 data_for_recursion.safe_opaque_background_color = color; | 1382 data_for_recursion.safe_opaque_background_color = color; |
1381 | 1383 |
| 1384 float page_scale_factor_for_root = |
| 1385 page_scale_layer == root_layer ? page_scale_factor : 1.f; |
| 1386 data_for_recursion.property_trees->transform_tree.SetScreenSpaceScale( |
| 1387 device_scale_factor, page_scale_factor_for_root, device_transform); |
| 1388 |
1382 ClipNode root_clip; | 1389 ClipNode root_clip; |
1383 root_clip.resets_clip = true; | 1390 root_clip.resets_clip = true; |
1384 root_clip.applies_local_clip = true; | 1391 root_clip.applies_local_clip = true; |
1385 root_clip.clip = gfx::RectF(viewport); | 1392 root_clip.clip = gfx::RectF(viewport); |
1386 root_clip.transform_id = kRootPropertyTreeNodeId; | 1393 root_clip.transform_id = kRootPropertyTreeNodeId; |
| 1394 root_clip.target_transform_id = kRootPropertyTreeNodeId; |
1387 data_for_recursion.clip_tree_parent = | 1395 data_for_recursion.clip_tree_parent = |
1388 data_for_recursion.property_trees->clip_tree.Insert( | 1396 data_for_recursion.property_trees->clip_tree.Insert( |
1389 root_clip, kRootPropertyTreeNodeId); | 1397 root_clip, kRootPropertyTreeNodeId); |
1390 | 1398 |
1391 DataForRecursionFromChild<LayerType> data_from_child; | 1399 DataForRecursionFromChild<LayerType> data_from_child; |
1392 BuildPropertyTreesInternal(root_layer, data_for_recursion, &data_from_child); | 1400 BuildPropertyTreesInternal(root_layer, data_for_recursion, &data_from_child); |
1393 property_trees->needs_rebuild = false; | 1401 property_trees->needs_rebuild = false; |
1394 | 1402 |
1395 // The transform tree is kept up to date as it is built, but the | 1403 // The transform tree is kept up to date as it is built, but the |
1396 // combined_clips stored in the clip tree and the screen_space_opacity and | 1404 // combined_clips stored in the clip tree and the screen_space_opacity and |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1478 color = SkColorSetA(color, 255); | 1486 color = SkColorSetA(color, 255); |
1479 BuildPropertyTreesTopLevelInternal( | 1487 BuildPropertyTreesTopLevelInternal( |
1480 root_layer, page_scale_layer, inner_viewport_scroll_layer, | 1488 root_layer, page_scale_layer, inner_viewport_scroll_layer, |
1481 outer_viewport_scroll_layer, overscroll_elasticity_layer, | 1489 outer_viewport_scroll_layer, overscroll_elasticity_layer, |
1482 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, | 1490 elastic_overscroll, page_scale_factor, device_scale_factor, viewport, |
1483 device_transform, property_trees, color); | 1491 device_transform, property_trees, color); |
1484 property_trees->ResetCachedData(); | 1492 property_trees->ResetCachedData(); |
1485 } | 1493 } |
1486 | 1494 |
1487 } // namespace cc | 1495 } // namespace cc |
OLD | NEW |