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 |