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

Side by Side Diff: cc/animation/layer_animation_controller.cc

Issue 99733003: Add monotonic time and target property to cc::AnimationDelegate notifications (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "cc/animation/layer_animation_controller.h" 5 #include "cc/animation/layer_animation_controller.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "cc/animation/animation.h" 9 #include "cc/animation/animation.h"
10 #include "cc/animation/animation_delegate.h" 10 #include "cc/animation/animation_delegate.h"
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 UpdateActivation(ForceActivation); 268 UpdateActivation(ForceActivation);
269 } 269 }
270 270
271 void LayerAnimationController::NotifyAnimationStarted( 271 void LayerAnimationController::NotifyAnimationStarted(
272 const AnimationEvent& event, 272 const AnimationEvent& event,
273 double wall_clock_time) { 273 double wall_clock_time) {
274 if (event.is_impl_only) { 274 if (event.is_impl_only) {
275 FOR_EACH_OBSERVER(LayerAnimationEventObserver, event_observers_, 275 FOR_EACH_OBSERVER(LayerAnimationEventObserver, event_observers_,
276 OnAnimationStarted(event)); 276 OnAnimationStarted(event));
277 if (layer_animation_delegate_) 277 if (layer_animation_delegate_)
278 layer_animation_delegate_->NotifyAnimationStarted(wall_clock_time); 278 layer_animation_delegate_->NotifyAnimationStarted(
279 wall_clock_time, event.monotonic_time, event.target_property);
279 280
280 return; 281 return;
281 } 282 }
282 283
283 for (size_t i = 0; i < active_animations_.size(); ++i) { 284 for (size_t i = 0; i < active_animations_.size(); ++i) {
284 if (active_animations_[i]->group() == event.group_id && 285 if (active_animations_[i]->group() == event.group_id &&
285 active_animations_[i]->target_property() == event.target_property && 286 active_animations_[i]->target_property() == event.target_property &&
286 active_animations_[i]->needs_synchronized_start_time()) { 287 active_animations_[i]->needs_synchronized_start_time()) {
287 active_animations_[i]->set_needs_synchronized_start_time(false); 288 active_animations_[i]->set_needs_synchronized_start_time(false);
288 active_animations_[i]->set_start_time(event.monotonic_time); 289 active_animations_[i]->set_start_time(event.monotonic_time);
289 290
290 FOR_EACH_OBSERVER(LayerAnimationEventObserver, event_observers_, 291 FOR_EACH_OBSERVER(LayerAnimationEventObserver, event_observers_,
291 OnAnimationStarted(event)); 292 OnAnimationStarted(event));
292 if (layer_animation_delegate_) 293 if (layer_animation_delegate_)
293 layer_animation_delegate_->NotifyAnimationStarted(wall_clock_time); 294 layer_animation_delegate_->NotifyAnimationStarted(
295 wall_clock_time, event.monotonic_time, event.target_property);
294 296
295 return; 297 return;
296 } 298 }
297 } 299 }
298 } 300 }
299 301
300 void LayerAnimationController::NotifyAnimationFinished( 302 void LayerAnimationController::NotifyAnimationFinished(
301 const AnimationEvent& event, 303 const AnimationEvent& event,
302 double wall_clock_time) { 304 double wall_clock_time) {
303 if (event.is_impl_only) { 305 if (event.is_impl_only) {
304 if (layer_animation_delegate_) 306 if (layer_animation_delegate_)
305 layer_animation_delegate_->NotifyAnimationFinished(wall_clock_time); 307 layer_animation_delegate_->NotifyAnimationFinished(
308 wall_clock_time, event.monotonic_time, event.target_property);
306 return; 309 return;
307 } 310 }
308 311
309 for (size_t i = 0; i < active_animations_.size(); ++i) { 312 for (size_t i = 0; i < active_animations_.size(); ++i) {
310 if (active_animations_[i]->group() == event.group_id && 313 if (active_animations_[i]->group() == event.group_id &&
311 active_animations_[i]->target_property() == event.target_property) { 314 active_animations_[i]->target_property() == event.target_property) {
312 active_animations_[i]->set_received_finished_event(true); 315 active_animations_[i]->set_received_finished_event(true);
313 if (layer_animation_delegate_) 316 if (layer_animation_delegate_)
314 layer_animation_delegate_->NotifyAnimationFinished(wall_clock_time); 317 layer_animation_delegate_->NotifyAnimationFinished(
318 wall_clock_time, event.monotonic_time, event.target_property);
315 319
316 return; 320 return;
317 } 321 }
318 } 322 }
319 } 323 }
320 324
321 void LayerAnimationController::NotifyAnimationAborted( 325 void LayerAnimationController::NotifyAnimationAborted(
322 const AnimationEvent& event) { 326 const AnimationEvent& event) {
323 for (size_t i = 0; i < active_animations_.size(); ++i) { 327 for (size_t i = 0; i < active_animations_.size(); ++i) {
324 if (active_animations_[i]->group() == event.group_id && 328 if (active_animations_[i]->group() == event.group_id &&
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after
745 value_observers_); 749 value_observers_);
746 LayerAnimationValueObserver* obs; 750 LayerAnimationValueObserver* obs;
747 while ((obs = it.GetNext()) != NULL) 751 while ((obs = it.GetNext()) != NULL)
748 if (obs->IsActive()) 752 if (obs->IsActive())
749 return true; 753 return true;
750 } 754 }
751 return false; 755 return false;
752 } 756 }
753 757
754 } // namespace cc 758 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698