Chromium Code Reviews| 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 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 211 return false; | 211 return false; |
| 212 transform->ConcatTransform(from_screen); | 212 transform->ConcatTransform(from_screen); |
| 213 } | 213 } |
| 214 } | 214 } |
| 215 | 215 |
| 216 DCHECK( | 216 DCHECK( |
| 217 transform->IsApproximatelyIdentityOrTranslation(SkDoubleToMScalar(1e-4))); | 217 transform->IsApproximatelyIdentityOrTranslation(SkDoubleToMScalar(1e-4))); |
| 218 return true; | 218 return true; |
| 219 } | 219 } |
| 220 | 220 |
| 221 void TransformTree::OnTransformAnimated(const gfx::Transform& transform, | |
| 222 int id, | |
| 223 LayerTreeImpl* layer_tree_impl) { | |
| 224 TransformNode* node = Node(id); | |
| 225 layer_tree_impl->AddToTransformAnimationsMap(node->owner_id, transform); | |
| 226 if (node->local == transform) { | |
| 227 return; | |
| 228 } | |
| 229 node->local = transform; | |
| 230 node->needs_local_transform_update = true; | |
| 231 node->transform_changed = true; | |
| 232 property_trees()->changed = true; | |
| 233 set_needs_update(true); | |
| 234 layer_tree_impl->set_needs_update_draw_properties(); | |
| 235 // TODO(ajuma): The current criteria for creating clip nodes means that | |
| 236 // property trees may need to be rebuilt when the new transform isn't | |
| 237 // axis-aligned wrt the old transform (see Layer::SetTransform). Since | |
| 238 // rebuilding property trees every frame of a transform animation is | |
| 239 // something we should try to avoid, change property tree-building so that | |
| 240 // it doesn't depend on axis aliginment. | |
|
ajuma
2016/08/23 23:40:12
I think this TODO is obsolete now, since we don't
jaydasika
2016/08/24 00:13:42
Removed!
| |
| 241 } | |
| 242 | |
| 221 bool TransformTree::NeedsSourceToParentUpdate(TransformNode* node) { | 243 bool TransformTree::NeedsSourceToParentUpdate(TransformNode* node) { |
| 222 return (source_to_parent_updates_allowed() && | 244 return (source_to_parent_updates_allowed() && |
| 223 node->parent_id != node->source_node_id); | 245 node->parent_id != node->source_node_id); |
| 224 } | 246 } |
| 225 | 247 |
| 226 void TransformTree::ResetChangeTracking() { | 248 void TransformTree::ResetChangeTracking() { |
| 227 for (int id = 1; id < static_cast<int>(size()); ++id) { | 249 for (int id = 1; id < static_cast<int>(size()); ++id) { |
| 228 TransformNode* node = Node(id); | 250 TransformNode* node = Node(id); |
| 229 node->transform_changed = false; | 251 node->transform_changed = false; |
| 230 } | 252 } |
| (...skipping 679 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 910 layer_scale_factor *= transform_tree.page_scale_factor(); | 932 layer_scale_factor *= transform_tree.page_scale_factor(); |
| 911 effect_node->surface_contents_scale = | 933 effect_node->surface_contents_scale = |
| 912 MathUtil::ComputeTransform2dScaleComponents( | 934 MathUtil::ComputeTransform2dScaleComponents( |
| 913 transform_tree.ToScreen(transform_node->id), layer_scale_factor); | 935 transform_tree.ToScreen(transform_node->id), layer_scale_factor); |
| 914 } | 936 } |
| 915 | 937 |
| 916 void EffectTree::OnOpacityAnimated(float opacity, | 938 void EffectTree::OnOpacityAnimated(float opacity, |
| 917 int id, | 939 int id, |
| 918 LayerTreeImpl* layer_tree_impl) { | 940 LayerTreeImpl* layer_tree_impl) { |
| 919 EffectNode* node = Node(id); | 941 EffectNode* node = Node(id); |
| 942 layer_tree_impl->AddToOpacityAnimationsMap(node->owner_id, opacity); | |
| 920 if (node->opacity == opacity) | 943 if (node->opacity == opacity) |
| 921 return; | 944 return; |
| 922 node->opacity = opacity; | 945 node->opacity = opacity; |
| 923 node->effect_changed = true; | 946 node->effect_changed = true; |
| 924 property_trees()->changed = true; | 947 property_trees()->changed = true; |
| 925 property_trees()->effect_tree.set_needs_update(true); | 948 property_trees()->effect_tree.set_needs_update(true); |
| 926 layer_tree_impl->set_needs_update_draw_properties(); | 949 layer_tree_impl->set_needs_update_draw_properties(); |
| 927 layer_tree_impl->AddToOpacityAnimationsMap(node->owner_id, opacity); | |
| 928 } | 950 } |
| 929 | 951 |
| 930 void EffectTree::UpdateEffects(int id) { | 952 void EffectTree::UpdateEffects(int id) { |
| 931 EffectNode* node = Node(id); | 953 EffectNode* node = Node(id); |
| 932 EffectNode* parent_node = parent(node); | 954 EffectNode* parent_node = parent(node); |
| 933 | 955 |
| 934 UpdateOpacities(node, parent_node); | 956 UpdateOpacities(node, parent_node); |
| 935 UpdateIsDrawn(node, parent_node); | 957 UpdateIsDrawn(node, parent_node); |
| 936 UpdateEffectChanged(node, parent_node); | 958 UpdateEffectChanged(node, parent_node); |
| 937 UpdateBackfaceVisibility(node, parent_node); | 959 UpdateBackfaceVisibility(node, parent_node); |
| (...skipping 1265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2203 from_target.ConcatTransform(draw_transforms.from_target); | 2225 from_target.ConcatTransform(draw_transforms.from_target); |
| 2204 from_target.Scale(effect_node->surface_contents_scale.x(), | 2226 from_target.Scale(effect_node->surface_contents_scale.x(), |
| 2205 effect_node->surface_contents_scale.y()); | 2227 effect_node->surface_contents_scale.y()); |
| 2206 DCHECK(from_target.ApproximatelyEqual(*transform) || | 2228 DCHECK(from_target.ApproximatelyEqual(*transform) || |
| 2207 !draw_transforms.invertible); | 2229 !draw_transforms.invertible); |
| 2208 } | 2230 } |
| 2209 return success; | 2231 return success; |
| 2210 } | 2232 } |
| 2211 | 2233 |
| 2212 } // namespace cc | 2234 } // namespace cc |
| OLD | NEW |