| 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_host.h" | 5 #include "cc/animation/animation_host.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 void AnimationHost::RegisterPlayerForElement(ElementId element_id, | 121 void AnimationHost::RegisterPlayerForElement(ElementId element_id, |
| 122 AnimationPlayer* player) { | 122 AnimationPlayer* player) { |
| 123 DCHECK(element_id); | 123 DCHECK(element_id); |
| 124 DCHECK(player); | 124 DCHECK(player); |
| 125 | 125 |
| 126 scoped_refptr<ElementAnimations> element_animations = | 126 scoped_refptr<ElementAnimations> element_animations = |
| 127 GetElementAnimationsForElementId(element_id); | 127 GetElementAnimationsForElementId(element_id); |
| 128 if (!element_animations) { | 128 if (!element_animations) { |
| 129 element_animations = ElementAnimations::Create(); | 129 element_animations = ElementAnimations::Create(); |
| 130 element_animations->SetElementId(element_id); | 130 element_animations->SetElementId(element_id); |
| 131 RegisterElementAnimations(element_animations.get()); | 131 element_to_animations_map_[element_animations->element_id()] = |
| 132 element_animations; |
| 132 } | 133 } |
| 133 | 134 |
| 134 if (element_animations->animation_host() != this) { | 135 if (element_animations->animation_host() != this) { |
| 135 element_animations->SetAnimationHost(this); | 136 element_animations->SetAnimationHost(this); |
| 136 element_animations->InitAffectedElementTypes(); | 137 element_animations->InitAffectedElementTypes(); |
| 137 } | 138 } |
| 138 | 139 |
| 139 element_animations->AddPlayer(player); | 140 element_animations->AddPlayer(player); |
| 140 } | 141 } |
| 141 | 142 |
| 142 void AnimationHost::UnregisterPlayerForElement(ElementId element_id, | 143 void AnimationHost::UnregisterPlayerForElement(ElementId element_id, |
| 143 AnimationPlayer* player) { | 144 AnimationPlayer* player) { |
| 144 DCHECK(element_id); | 145 DCHECK(element_id); |
| 145 DCHECK(player); | 146 DCHECK(player); |
| 146 | 147 |
| 147 scoped_refptr<ElementAnimations> element_animations = | 148 scoped_refptr<ElementAnimations> element_animations = |
| 148 GetElementAnimationsForElementId(element_id); | 149 GetElementAnimationsForElementId(element_id); |
| 149 DCHECK(element_animations); | 150 DCHECK(element_animations); |
| 150 element_animations->RemovePlayer(player); | 151 element_animations->RemovePlayer(player); |
| 151 | 152 |
| 152 if (element_animations->IsEmpty()) { | 153 if (element_animations->IsEmpty()) { |
| 153 element_animations->ClearAffectedElementTypes(); | 154 element_animations->ClearAffectedElementTypes(); |
| 154 UnregisterElementAnimations(element_animations.get()); | 155 element_to_animations_map_.erase(element_animations->element_id()); |
| 156 DidDeactivateElementAnimations(element_animations.get()); |
| 155 element_animations->SetAnimationHost(nullptr); | 157 element_animations->SetAnimationHost(nullptr); |
| 156 } | 158 } |
| 157 } | 159 } |
| 158 | 160 |
| 159 void AnimationHost::SetMutatorHostClient(MutatorHostClient* client) { | 161 void AnimationHost::SetMutatorHostClient(MutatorHostClient* client) { |
| 160 if (mutator_host_client_ == client) | 162 if (mutator_host_client_ == client) |
| 161 return; | 163 return; |
| 162 | 164 |
| 163 mutator_host_client_ = client; | 165 mutator_host_client_ = client; |
| 164 | 166 |
| (...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 555 active_element_to_animations_map_[element_animations->element_id()] = | 557 active_element_to_animations_map_[element_animations->element_id()] = |
| 556 element_animations; | 558 element_animations; |
| 557 } | 559 } |
| 558 | 560 |
| 559 void AnimationHost::DidDeactivateElementAnimations( | 561 void AnimationHost::DidDeactivateElementAnimations( |
| 560 ElementAnimations* element_animations) { | 562 ElementAnimations* element_animations) { |
| 561 DCHECK(element_animations->element_id()); | 563 DCHECK(element_animations->element_id()); |
| 562 active_element_to_animations_map_.erase(element_animations->element_id()); | 564 active_element_to_animations_map_.erase(element_animations->element_id()); |
| 563 } | 565 } |
| 564 | 566 |
| 565 void AnimationHost::RegisterElementAnimations( | |
| 566 ElementAnimations* element_animations) { | |
| 567 DCHECK(element_animations->element_id()); | |
| 568 element_to_animations_map_[element_animations->element_id()] = | |
| 569 element_animations; | |
| 570 } | |
| 571 | |
| 572 void AnimationHost::UnregisterElementAnimations( | |
| 573 ElementAnimations* element_animations) { | |
| 574 DCHECK(element_animations->element_id()); | |
| 575 element_to_animations_map_.erase(element_animations->element_id()); | |
| 576 DidDeactivateElementAnimations(element_animations); | |
| 577 } | |
| 578 | |
| 579 const AnimationHost::ElementToAnimationsMap& | 567 const AnimationHost::ElementToAnimationsMap& |
| 580 AnimationHost::active_element_animations_for_testing() const { | 568 AnimationHost::active_element_animations_for_testing() const { |
| 581 return active_element_to_animations_map_; | 569 return active_element_to_animations_map_; |
| 582 } | 570 } |
| 583 | 571 |
| 584 const AnimationHost::ElementToAnimationsMap& | 572 const AnimationHost::ElementToAnimationsMap& |
| 585 AnimationHost::all_element_animations_for_testing() const { | 573 AnimationHost::all_element_animations_for_testing() const { |
| 586 return element_to_animations_map_; | 574 return element_to_animations_map_; |
| 587 } | 575 } |
| 588 | 576 |
| 589 } // namespace cc | 577 } // namespace cc |
| OLD | NEW |