Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 #ifndef CC_ANIMATION_LAYER_ANIMATION_CONTROLLER_H_ | 5 #ifndef CC_ANIMATION_LAYER_ANIMATION_CONTROLLER_H_ |
| 6 #define CC_ANIMATION_LAYER_ANIMATION_CONTROLLER_H_ | 6 #define CC_ANIMATION_LAYER_ANIMATION_CONTROLLER_H_ |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/containers/hash_tables.h" | 9 #include "base/containers/hash_tables.h" |
| 10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 23 } | 23 } |
| 24 | 24 |
| 25 namespace cc { | 25 namespace cc { |
| 26 | 26 |
| 27 class Animation; | 27 class Animation; |
| 28 class AnimationDelegate; | 28 class AnimationDelegate; |
| 29 class AnimationRegistrar; | 29 class AnimationRegistrar; |
| 30 class FilterOperations; | 30 class FilterOperations; |
| 31 class KeyframeValueList; | 31 class KeyframeValueList; |
| 32 class LayerAnimationValueObserver; | 32 class LayerAnimationValueObserver; |
| 33 class LayerAnimationValueProvider; | |
| 33 | 34 |
| 34 class CC_EXPORT LayerAnimationController | 35 class CC_EXPORT LayerAnimationController |
| 35 : public base::RefCounted<LayerAnimationController> { | 36 : public base::RefCounted<LayerAnimationController> { |
| 36 public: | 37 public: |
| 37 static scoped_refptr<LayerAnimationController> Create(int id); | 38 static scoped_refptr<LayerAnimationController> Create(int id); |
| 38 | 39 |
| 39 int id() const { return id_; } | 40 int id() const { return id_; } |
| 40 | 41 |
| 41 void AddAnimation(scoped_ptr<Animation> animation); | 42 void AddAnimation(scoped_ptr<Animation> animation); |
| 42 void PauseAnimation(int animation_id, double time_offset); | 43 void PauseAnimation(int animation_id, double time_offset); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 88 double wall_clock_time); | 89 double wall_clock_time); |
| 89 void NotifyAnimationAborted(const AnimationEvent& event); | 90 void NotifyAnimationAborted(const AnimationEvent& event); |
| 90 void NotifyAnimationPropertyUpdate(const AnimationEvent& event); | 91 void NotifyAnimationPropertyUpdate(const AnimationEvent& event); |
| 91 | 92 |
| 92 void AddValueObserver(LayerAnimationValueObserver* observer); | 93 void AddValueObserver(LayerAnimationValueObserver* observer); |
| 93 void RemoveValueObserver(LayerAnimationValueObserver* observer); | 94 void RemoveValueObserver(LayerAnimationValueObserver* observer); |
| 94 | 95 |
| 95 void AddEventObserver(LayerAnimationEventObserver* observer); | 96 void AddEventObserver(LayerAnimationEventObserver* observer); |
| 96 void RemoveEventObserver(LayerAnimationEventObserver* observer); | 97 void RemoveEventObserver(LayerAnimationEventObserver* observer); |
| 97 | 98 |
| 99 void set_value_provider(LayerAnimationValueProvider* provider) { | |
| 100 value_provider_ = provider; | |
| 101 } | |
| 102 | |
| 103 void remove_value_provider(LayerAnimationValueProvider* provider) { | |
|
Ian Vollick
2013/11/29 15:29:29
Why not just set_value_provider(NULL)?
ajuma
2013/11/29 21:18:41
The issue is that a LayerImpl might not know wheth
Ian Vollick
2013/12/02 21:23:32
Thanks for the explanation.
| |
| 104 if (value_provider_ == provider) | |
| 105 value_provider_ = NULL; | |
| 106 } | |
| 107 | |
| 98 void set_layer_animation_delegate(AnimationDelegate* delegate) { | 108 void set_layer_animation_delegate(AnimationDelegate* delegate) { |
| 99 layer_animation_delegate_ = delegate; | 109 layer_animation_delegate_ = delegate; |
| 100 } | 110 } |
| 101 | 111 |
| 102 bool AnimatedBoundsForBox(const gfx::BoxF& box, gfx::BoxF* bounds); | 112 bool AnimatedBoundsForBox(const gfx::BoxF& box, gfx::BoxF* bounds); |
| 103 | 113 |
| 104 protected: | 114 protected: |
| 105 friend class base::RefCounted<LayerAnimationController>; | 115 friend class base::RefCounted<LayerAnimationController>; |
| 106 | 116 |
| 107 explicit LayerAnimationController(int id); | 117 explicit LayerAnimationController(int id); |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 129 | 139 |
| 130 enum UpdateActivationType { | 140 enum UpdateActivationType { |
| 131 NormalActivation, | 141 NormalActivation, |
| 132 ForceActivation | 142 ForceActivation |
| 133 }; | 143 }; |
| 134 void UpdateActivation(UpdateActivationType type); | 144 void UpdateActivation(UpdateActivationType type); |
| 135 | 145 |
| 136 void NotifyObserversOpacityAnimated(float opacity); | 146 void NotifyObserversOpacityAnimated(float opacity); |
| 137 void NotifyObserversTransformAnimated(const gfx::Transform& transform); | 147 void NotifyObserversTransformAnimated(const gfx::Transform& transform); |
| 138 void NotifyObserversFilterAnimated(const FilterOperations& filter); | 148 void NotifyObserversFilterAnimated(const FilterOperations& filter); |
| 149 void NotifyObserversScrollOffsetAnimated(gfx::Vector2dF scroll_offset); | |
| 139 | 150 |
| 140 void NotifyObserversAnimationWaitingForDeletion(); | 151 void NotifyObserversAnimationWaitingForDeletion(); |
| 141 | 152 |
| 142 bool HasValueObserver(); | 153 bool HasValueObserver(); |
| 143 bool HasActiveValueObserver(); | 154 bool HasActiveValueObserver(); |
| 144 | 155 |
| 145 AnimationRegistrar* registrar_; | 156 AnimationRegistrar* registrar_; |
| 146 int id_; | 157 int id_; |
| 147 ScopedPtrVector<Animation> active_animations_; | 158 ScopedPtrVector<Animation> active_animations_; |
| 148 | 159 |
| 149 // This is used to ensure that we don't spam the registrar. | 160 // This is used to ensure that we don't spam the registrar. |
| 150 bool is_active_; | 161 bool is_active_; |
| 151 | 162 |
| 152 double last_tick_time_; | 163 double last_tick_time_; |
| 153 | 164 |
| 154 ObserverList<LayerAnimationValueObserver> value_observers_; | 165 ObserverList<LayerAnimationValueObserver> value_observers_; |
| 155 ObserverList<LayerAnimationEventObserver> event_observers_; | 166 ObserverList<LayerAnimationEventObserver> event_observers_; |
| 156 | 167 |
| 168 LayerAnimationValueProvider* value_provider_; | |
| 169 | |
| 157 AnimationDelegate* layer_animation_delegate_; | 170 AnimationDelegate* layer_animation_delegate_; |
| 158 | 171 |
| 159 DISALLOW_COPY_AND_ASSIGN(LayerAnimationController); | 172 DISALLOW_COPY_AND_ASSIGN(LayerAnimationController); |
| 160 }; | 173 }; |
| 161 | 174 |
| 162 } // namespace cc | 175 } // namespace cc |
| 163 | 176 |
| 164 #endif // CC_ANIMATION_LAYER_ANIMATION_CONTROLLER_H_ | 177 #endif // CC_ANIMATION_LAYER_ANIMATION_CONTROLLER_H_ |
| OLD | NEW |