OLD | NEW |
---|---|
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 "platform/scroll/ScrollAnimatorCompositorCoordinator.h" | 5 #include "platform/scroll/ScrollAnimatorCompositorCoordinator.h" |
6 | 6 |
7 #include "cc/animation/animation_player.h" | |
jbroman
2016/02/01 15:44:36
Are cc includes needed here?
loyso (OOO)
2016/02/04 05:49:29
I wanted to use forward declaration of cc::Animati
| |
8 #include "cc/animation/animation_timeline.h" | |
9 #include "platform/CompositorFactory.h" | |
7 #include "platform/RuntimeEnabledFeatures.h" | 10 #include "platform/RuntimeEnabledFeatures.h" |
11 #include "platform/animation/CompositorAnimationPlayer.h" | |
12 #include "platform/animation/CompositorAnimationTimeline.h" | |
8 #include "platform/graphics/GraphicsLayer.h" | 13 #include "platform/graphics/GraphicsLayer.h" |
9 #include "platform/scroll/ScrollableArea.h" | 14 #include "platform/scroll/ScrollableArea.h" |
10 #include "public/platform/Platform.h" | 15 #include "public/platform/Platform.h" |
11 #include "public/platform/WebCompositorAnimationPlayer.h" | |
12 #include "public/platform/WebCompositorAnimationTimeline.h" | |
13 #include "public/platform/WebCompositorSupport.h" | 16 #include "public/platform/WebCompositorSupport.h" |
14 | 17 |
15 namespace blink { | 18 namespace blink { |
16 | 19 |
17 ScrollAnimatorCompositorCoordinator::ScrollAnimatorCompositorCoordinator() | 20 ScrollAnimatorCompositorCoordinator::ScrollAnimatorCompositorCoordinator() |
18 : m_compositorAnimationAttachedToLayerId(0) | 21 : m_compositorAnimationAttachedToLayerId(0) |
19 , m_runState(RunState::Idle) | 22 , m_runState(RunState::Idle) |
20 , m_compositorAnimationId(0) | 23 , m_compositorAnimationId(0) |
21 , m_compositorAnimationGroupId(0) | 24 , m_compositorAnimationGroupId(0) |
22 { | 25 { |
23 if (RuntimeEnabledFeatures::compositorAnimationTimelinesEnabled()) { | 26 if (RuntimeEnabledFeatures::compositorAnimationTimelinesEnabled()) { |
24 ASSERT(Platform::current()->compositorSupport()); | 27 ASSERT(Platform::current()->compositorSupport()); |
25 m_compositorPlayer = adoptPtr(Platform::current()->compositorSupport()-> createAnimationPlayer()); | 28 m_compositorPlayer = adoptPtr(CompositorFactory::current().createAnimati onPlayer()); |
26 ASSERT(m_compositorPlayer); | 29 ASSERT(m_compositorPlayer); |
27 m_compositorPlayer->setAnimationDelegate(this); | 30 m_compositorPlayer->setAnimationDelegate(this); |
28 } | 31 } |
29 } | 32 } |
30 | 33 |
31 ScrollAnimatorCompositorCoordinator::~ScrollAnimatorCompositorCoordinator() | 34 ScrollAnimatorCompositorCoordinator::~ScrollAnimatorCompositorCoordinator() |
32 { | 35 { |
33 if (m_compositorPlayer) { | 36 if (m_compositorPlayer) { |
34 m_compositorPlayer->setAnimationDelegate(nullptr); | 37 m_compositorPlayer->setAnimationDelegate(nullptr); |
35 m_compositorPlayer.clear(); | 38 m_compositorPlayer.clear(); |
(...skipping 17 matching lines...) Expand all Loading... | |
53 case RunState::RunningOnMainThread: | 56 case RunState::RunningOnMainThread: |
54 case RunState::RunningOnCompositorButNeedsUpdate: | 57 case RunState::RunningOnCompositorButNeedsUpdate: |
55 case RunState::WaitingToCancelOnCompositor: | 58 case RunState::WaitingToCancelOnCompositor: |
56 return true; | 59 return true; |
57 } | 60 } |
58 ASSERT_NOT_REACHED(); | 61 ASSERT_NOT_REACHED(); |
59 return false; | 62 return false; |
60 } | 63 } |
61 | 64 |
62 bool ScrollAnimatorCompositorCoordinator::addAnimation( | 65 bool ScrollAnimatorCompositorCoordinator::addAnimation( |
63 PassOwnPtr<WebCompositorAnimation> animation) | 66 PassOwnPtr<CompositorAnimation> animation) |
64 { | 67 { |
65 if (m_compositorPlayer) { | 68 if (m_compositorPlayer) { |
66 if (m_compositorPlayer->isLayerAttached()) { | 69 if (m_compositorPlayer->isLayerAttached()) { |
67 m_compositorPlayer->addAnimation(animation.leakPtr()); | 70 m_compositorPlayer->addAnimation(animation.leakPtr()); |
68 return true; | 71 return true; |
69 } | 72 } |
70 } else { | 73 } else { |
71 return scrollableArea()->layerForScrolling()->addAnimation(animation); | 74 return scrollableArea()->layerForScrolling()->addAnimation(animation); |
72 } | 75 } |
73 return false; | 76 return false; |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
138 case RunState::WaitingToSendToCompositor: | 141 case RunState::WaitingToSendToCompositor: |
139 break; | 142 break; |
140 case RunState::RunningOnCompositor: | 143 case RunState::RunningOnCompositor: |
141 case RunState::RunningOnCompositorButNeedsUpdate: | 144 case RunState::RunningOnCompositorButNeedsUpdate: |
142 case RunState::WaitingToCancelOnCompositor: | 145 case RunState::WaitingToCancelOnCompositor: |
143 resetAnimationState(); | 146 resetAnimationState(); |
144 } | 147 } |
145 } | 148 } |
146 | 149 |
147 void ScrollAnimatorCompositorCoordinator::reattachCompositorPlayerIfNeeded( | 150 void ScrollAnimatorCompositorCoordinator::reattachCompositorPlayerIfNeeded( |
148 WebCompositorAnimationTimeline* timeline) | 151 CompositorAnimationTimeline* timeline) |
149 { | 152 { |
150 int compositorAnimationAttachedToLayerId = 0; | 153 int compositorAnimationAttachedToLayerId = 0; |
151 if (scrollableArea()->layerForScrolling()) | 154 if (scrollableArea()->layerForScrolling()) |
152 compositorAnimationAttachedToLayerId = scrollableArea()->layerForScrolli ng()->platformLayer()->id(); | 155 compositorAnimationAttachedToLayerId = scrollableArea()->layerForScrolli ng()->platformLayer()->id(); |
153 | 156 |
154 if (compositorAnimationAttachedToLayerId != m_compositorAnimationAttachedToL ayerId) { | 157 if (compositorAnimationAttachedToLayerId != m_compositorAnimationAttachedToL ayerId) { |
155 if (m_compositorPlayer && timeline) { | 158 if (m_compositorPlayer && timeline) { |
156 // Detach from old layer (if any). | 159 // Detach from old layer (if any). |
157 if (m_compositorAnimationAttachedToLayerId) { | 160 if (m_compositorAnimationAttachedToLayerId) { |
158 if (m_compositorPlayer->isLayerAttached()) | 161 if (m_compositorPlayer->isLayerAttached()) |
(...skipping 24 matching lines...) Expand all Loading... | |
183 } | 186 } |
184 | 187 |
185 void ScrollAnimatorCompositorCoordinator::notifyAnimationAborted( | 188 void ScrollAnimatorCompositorCoordinator::notifyAnimationAborted( |
186 double monotonicTime, int group) | 189 double monotonicTime, int group) |
187 { | 190 { |
188 // An animation aborted by the compositor is treated as a finished | 191 // An animation aborted by the compositor is treated as a finished |
189 // animation. | 192 // animation. |
190 notifyCompositorAnimationFinished(group); | 193 notifyCompositorAnimationFinished(group); |
191 } | 194 } |
192 | 195 |
193 WebCompositorAnimationPlayer* ScrollAnimatorCompositorCoordinator::compositorPla yer() const | 196 CompositorAnimationPlayer* ScrollAnimatorCompositorCoordinator::compositorPlayer () const |
194 { | 197 { |
195 return m_compositorPlayer.get(); | 198 return m_compositorPlayer.get(); |
196 } | 199 } |
197 | 200 |
198 } // namespace blink | 201 } // namespace blink |
OLD | NEW |