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

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

Issue 2269143003: cc : Add OnTransformAnimated to transform tree (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 3 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
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 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 }
236
221 bool TransformTree::NeedsSourceToParentUpdate(TransformNode* node) { 237 bool TransformTree::NeedsSourceToParentUpdate(TransformNode* node) {
222 return (source_to_parent_updates_allowed() && 238 return (source_to_parent_updates_allowed() &&
223 node->parent_id != node->source_node_id); 239 node->parent_id != node->source_node_id);
224 } 240 }
225 241
226 void TransformTree::ResetChangeTracking() { 242 void TransformTree::ResetChangeTracking() {
227 for (int id = 1; id < static_cast<int>(size()); ++id) { 243 for (int id = 1; id < static_cast<int>(size()); ++id) {
228 TransformNode* node = Node(id); 244 TransformNode* node = Node(id);
229 node->transform_changed = false; 245 node->transform_changed = false;
230 } 246 }
(...skipping 679 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 layer_scale_factor *= transform_tree.page_scale_factor(); 926 layer_scale_factor *= transform_tree.page_scale_factor();
911 effect_node->surface_contents_scale = 927 effect_node->surface_contents_scale =
912 MathUtil::ComputeTransform2dScaleComponents( 928 MathUtil::ComputeTransform2dScaleComponents(
913 transform_tree.ToScreen(transform_node->id), layer_scale_factor); 929 transform_tree.ToScreen(transform_node->id), layer_scale_factor);
914 } 930 }
915 931
916 void EffectTree::OnOpacityAnimated(float opacity, 932 void EffectTree::OnOpacityAnimated(float opacity,
917 int id, 933 int id,
918 LayerTreeImpl* layer_tree_impl) { 934 LayerTreeImpl* layer_tree_impl) {
919 EffectNode* node = Node(id); 935 EffectNode* node = Node(id);
936 layer_tree_impl->AddToOpacityAnimationsMap(node->owner_id, opacity);
920 if (node->opacity == opacity) 937 if (node->opacity == opacity)
921 return; 938 return;
922 node->opacity = opacity; 939 node->opacity = opacity;
923 node->effect_changed = true; 940 node->effect_changed = true;
924 property_trees()->changed = true; 941 property_trees()->changed = true;
925 property_trees()->effect_tree.set_needs_update(true); 942 property_trees()->effect_tree.set_needs_update(true);
926 layer_tree_impl->set_needs_update_draw_properties(); 943 layer_tree_impl->set_needs_update_draw_properties();
927 layer_tree_impl->AddToOpacityAnimationsMap(node->owner_id, opacity);
928 } 944 }
929 945
930 void EffectTree::UpdateEffects(int id) { 946 void EffectTree::UpdateEffects(int id) {
931 EffectNode* node = Node(id); 947 EffectNode* node = Node(id);
932 EffectNode* parent_node = parent(node); 948 EffectNode* parent_node = parent(node);
933 949
934 UpdateOpacities(node, parent_node); 950 UpdateOpacities(node, parent_node);
935 UpdateIsDrawn(node, parent_node); 951 UpdateIsDrawn(node, parent_node);
936 UpdateEffectChanged(node, parent_node); 952 UpdateEffectChanged(node, parent_node);
937 UpdateBackfaceVisibility(node, parent_node); 953 UpdateBackfaceVisibility(node, parent_node);
(...skipping 1265 matching lines...) Expand 10 before | Expand all | Expand 10 after
2203 from_target.ConcatTransform(draw_transforms.from_target); 2219 from_target.ConcatTransform(draw_transforms.from_target);
2204 from_target.Scale(effect_node->surface_contents_scale.x(), 2220 from_target.Scale(effect_node->surface_contents_scale.x(),
2205 effect_node->surface_contents_scale.y()); 2221 effect_node->surface_contents_scale.y());
2206 DCHECK(from_target.ApproximatelyEqual(*transform) || 2222 DCHECK(from_target.ApproximatelyEqual(*transform) ||
2207 !draw_transforms.invertible); 2223 !draw_transforms.invertible);
2208 } 2224 }
2209 return success; 2225 return success;
2210 } 2226 }
2211 2227
2212 } // namespace cc 2228 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/property_tree.h ('k') | third_party/WebKit/Source/platform/graphics/CompositorMutableState.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698