| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/animation_player.h" | 5 #include "cc/animation/animation_player.h" |
| 6 | 6 |
| 7 #include "cc/animation/animation_host.h" | 7 #include "cc/animation/animation_host.h" |
| 8 #include "cc/animation/animation_registrar.h" | 8 #include "cc/animation/animation_registrar.h" |
| 9 #include "cc/animation/animation_timeline.h" | 9 #include "cc/animation/animation_timeline.h" |
| 10 #include "cc/layers/layer.h" | 10 #include "cc/layers/layer.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 | 30 |
| 31 void OnTransformAnimated(const gfx::Transform& transform) override { | 31 void OnTransformAnimated(const gfx::Transform& transform) override { |
| 32 player_->SetTransformMutated(is_active_, transform); | 32 player_->SetTransformMutated(is_active_, transform); |
| 33 } | 33 } |
| 34 | 34 |
| 35 void OnScrollOffsetAnimated(const gfx::ScrollOffset& scroll_offset) override { | 35 void OnScrollOffsetAnimated(const gfx::ScrollOffset& scroll_offset) override { |
| 36 player_->SetScrollOffsetMutated(is_active_, scroll_offset); | 36 player_->SetScrollOffsetMutated(is_active_, scroll_offset); |
| 37 } | 37 } |
| 38 | 38 |
| 39 void OnAnimationWaitingForDeletion() override { | 39 void OnAnimationWaitingForDeletion() override { |
| 40 // TODO(loyso): implement it. | 40 // TODO(loyso): See Layer::OnAnimationWaitingForDeletion. But we always do |
| 41 // PushProperties for AnimationTimelines for now. |
| 41 } | 42 } |
| 42 | 43 |
| 43 bool IsActive() const override { return is_active_; } | 44 bool IsActive() const override { return is_active_; } |
| 44 | 45 |
| 45 private: | 46 private: |
| 46 AnimationPlayer* player_; | 47 AnimationPlayer* player_; |
| 47 bool is_active_; | 48 bool is_active_; |
| 48 | 49 |
| 49 DISALLOW_COPY_AND_ASSIGN(ValueObserver); | 50 DISALLOW_COPY_AND_ASSIGN(ValueObserver); |
| 50 }; | 51 }; |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 } | 164 } |
| 164 } | 165 } |
| 165 | 166 |
| 166 void AnimationPlayer::LayerUnregistered(int layer_id, bool is_active_tree) { | 167 void AnimationPlayer::LayerUnregistered(int layer_id, bool is_active_tree) { |
| 167 DCHECK_EQ(layer_id_, layer_id); | 168 DCHECK_EQ(layer_id_, layer_id); |
| 168 is_active_tree ? DestroyActiveValueObserver() : DestroyPendingValueObserver(); | 169 is_active_tree ? DestroyActiveValueObserver() : DestroyPendingValueObserver(); |
| 169 } | 170 } |
| 170 | 171 |
| 171 void AnimationPlayer::AddAnimation(scoped_ptr<Animation> animation) { | 172 void AnimationPlayer::AddAnimation(scoped_ptr<Animation> animation) { |
| 172 DCHECK(layer_animation_controller_); | 173 DCHECK(layer_animation_controller_); |
| 174 DCHECK(animation->target_property() != Animation::SCROLL_OFFSET || |
| 175 !animation_host_ || animation_host_->GetSupportsScrollAnimations()); |
| 173 layer_animation_controller_->AddAnimation(animation.Pass()); | 176 layer_animation_controller_->AddAnimation(animation.Pass()); |
| 174 SetNeedsCommit(); | 177 SetNeedsCommit(); |
| 175 } | 178 } |
| 176 | 179 |
| 177 void AnimationPlayer::PauseAnimation(int animation_id, double time_offset) { | 180 void AnimationPlayer::PauseAnimation(int animation_id, double time_offset) { |
| 178 DCHECK(layer_animation_controller_); | 181 DCHECK(layer_animation_controller_); |
| 179 layer_animation_controller_->PauseAnimation( | 182 layer_animation_controller_->PauseAnimation( |
| 180 animation_id, base::TimeDelta::FromSecondsD(time_offset)); | 183 animation_id, base::TimeDelta::FromSecondsD(time_offset)); |
| 181 SetNeedsCommit(); | 184 SetNeedsCommit(); |
| 182 } | 185 } |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 } | 284 } |
| 282 | 285 |
| 283 void AnimationPlayer::DestroyPendingValueObserver() { | 286 void AnimationPlayer::DestroyPendingValueObserver() { |
| 284 if (layer_animation_controller_ && pending_value_observer_) | 287 if (layer_animation_controller_ && pending_value_observer_) |
| 285 layer_animation_controller_->RemoveValueObserver( | 288 layer_animation_controller_->RemoveValueObserver( |
| 286 pending_value_observer_.get()); | 289 pending_value_observer_.get()); |
| 287 pending_value_observer_ = nullptr; | 290 pending_value_observer_ = nullptr; |
| 288 } | 291 } |
| 289 | 292 |
| 290 gfx::ScrollOffset AnimationPlayer::ScrollOffsetForAnimation() const { | 293 gfx::ScrollOffset AnimationPlayer::ScrollOffsetForAnimation() const { |
| 291 // TODO(loyso): implement it. | 294 DCHECK(layer_id_); |
| 295 if (animation_host()) { |
| 296 DCHECK(animation_host()->layer_tree_mutators_client()); |
| 297 return animation_host() |
| 298 ->layer_tree_mutators_client() |
| 299 ->GetScrollOffsetForAnimation(layer_id_); |
| 300 } |
| 301 |
| 292 return gfx::ScrollOffset(); | 302 return gfx::ScrollOffset(); |
| 293 } | 303 } |
| 294 | 304 |
| 295 } // namespace cc | 305 } // namespace cc |
| OLD | NEW |