| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 771 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 782 TransformNode* target_node = Node(TargetId(id)); | 782 TransformNode* target_node = Node(TargetId(id)); |
| 783 TransformNode* source_node = Node(node->data.source_node_id); | 783 TransformNode* source_node = Node(node->data.source_node_id); |
| 784 property_trees()->UpdateCachedNumber(); | 784 property_trees()->UpdateCachedNumber(); |
| 785 if (node->data.needs_local_transform_update || | 785 if (node->data.needs_local_transform_update || |
| 786 NeedsSourceToParentUpdate(node)) | 786 NeedsSourceToParentUpdate(node)) |
| 787 UpdateLocalTransform(node); | 787 UpdateLocalTransform(node); |
| 788 else | 788 else |
| 789 UndoSnapping(node); | 789 UndoSnapping(node); |
| 790 UpdateScreenSpaceTransform(node, parent_node, target_node); | 790 UpdateScreenSpaceTransform(node, parent_node, target_node); |
| 791 UpdateSublayerScale(node); | 791 UpdateSublayerScale(node); |
| 792 UpdateTargetSpaceTransform(node, target_node); | |
| 793 UpdateAnimationProperties(node, parent_node); | 792 UpdateAnimationProperties(node, parent_node); |
| 794 UpdateSnapping(node); | 793 UpdateSnapping(node); |
| 794 UpdateTargetSpaceTransform(node, target_node); |
| 795 UpdateNodeAndAncestorsHaveIntegerTranslations(node, parent_node); | 795 UpdateNodeAndAncestorsHaveIntegerTranslations(node, parent_node); |
| 796 UpdateTransformChanged(node, parent_node, source_node); | 796 UpdateTransformChanged(node, parent_node, source_node); |
| 797 UpdateNodeAndAncestorsAreAnimatedOrInvertible(node, parent_node); | 797 UpdateNodeAndAncestorsAreAnimatedOrInvertible(node, parent_node); |
| 798 } | 798 } |
| 799 | 799 |
| 800 bool TransformTree::IsDescendant(int desc_id, int source_id) const { | 800 bool TransformTree::IsDescendant(int desc_id, int source_id) const { |
| 801 while (desc_id != source_id) { | 801 while (desc_id != source_id) { |
| 802 if (desc_id < 0) | 802 if (desc_id < 0) |
| 803 return false; | 803 return false; |
| 804 desc_id = Node(desc_id)->parent_id; | 804 desc_id = Node(desc_id)->parent_id; |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1068 | 1068 |
| 1069 gfx::Vector2dF translation = delta.To2dTranslation(); | 1069 gfx::Vector2dF translation = delta.To2dTranslation(); |
| 1070 | 1070 |
| 1071 // Now that we have our scroll delta, we must apply it to each of our | 1071 // Now that we have our scroll delta, we must apply it to each of our |
| 1072 // combined, to/from matrices. | 1072 // combined, to/from matrices. |
| 1073 SetToScreen(node->id, rounded); | 1073 SetToScreen(node->id, rounded); |
| 1074 node->data.to_parent.Translate(translation.x(), translation.y()); | 1074 node->data.to_parent.Translate(translation.x(), translation.y()); |
| 1075 gfx::Transform from_screen = FromScreen(node->id); | 1075 gfx::Transform from_screen = FromScreen(node->id); |
| 1076 from_screen.matrix().postTranslate(-translation.x(), -translation.y(), 0); | 1076 from_screen.matrix().postTranslate(-translation.x(), -translation.y(), 0); |
| 1077 SetFromScreen(node->id, from_screen); | 1077 SetFromScreen(node->id, from_screen); |
| 1078 gfx::Transform to_target = ToTarget(node->id); | |
| 1079 to_target.Translate(translation.x(), translation.y()); | |
| 1080 SetToTarget(node->id, to_target); | |
| 1081 gfx::Transform from_target = FromTarget(node->id); | |
| 1082 from_target.matrix().postTranslate(-translation.x(), -translation.y(), 0); | |
| 1083 SetFromTarget(node->id, from_target); | |
| 1084 node->data.scroll_snap = translation; | 1078 node->data.scroll_snap = translation; |
| 1085 } | 1079 } |
| 1086 | 1080 |
| 1087 void TransformTree::UpdateTransformChanged(TransformNode* node, | 1081 void TransformTree::UpdateTransformChanged(TransformNode* node, |
| 1088 TransformNode* parent_node, | 1082 TransformNode* parent_node, |
| 1089 TransformNode* source_node) { | 1083 TransformNode* source_node) { |
| 1090 if (parent_node && parent_node->data.transform_changed) { | 1084 if (parent_node && parent_node->data.transform_changed) { |
| 1091 node->data.transform_changed = true; | 1085 node->data.transform_changed = true; |
| 1092 return; | 1086 return; |
| 1093 } | 1087 } |
| (...skipping 1356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2450 cached_data_.property_tree_update_number = 0; | 2444 cached_data_.property_tree_update_number = 0; |
| 2451 cached_data_.animation_scales = std::vector<AnimationScaleData>( | 2445 cached_data_.animation_scales = std::vector<AnimationScaleData>( |
| 2452 transform_tree.nodes().size(), AnimationScaleData()); | 2446 transform_tree.nodes().size(), AnimationScaleData()); |
| 2453 } | 2447 } |
| 2454 | 2448 |
| 2455 void PropertyTrees::UpdateCachedNumber() { | 2449 void PropertyTrees::UpdateCachedNumber() { |
| 2456 cached_data_.property_tree_update_number++; | 2450 cached_data_.property_tree_update_number++; |
| 2457 } | 2451 } |
| 2458 | 2452 |
| 2459 } // namespace cc | 2453 } // namespace cc |
| OLD | NEW |