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

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

Issue 2122193002: cc: transform tree UpdateSnapping before UpdateTargetSpaceTransform (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months 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 | « no previous file | no next file » | 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 <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
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
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
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
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698