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

Side by Side Diff: third_party/WebKit/Source/platform/scroll/ScrollAnimatorCompositorCoordinator.cpp

Issue 1616653002: CC Animation: Move files from cc_blink to Source/platform/animation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Fix copyrights and years. Created 4 years, 10 months 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
OLDNEW
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 "platform/RuntimeEnabledFeatures.h" 7 #include "platform/RuntimeEnabledFeatures.h"
8 #include "platform/animation/CompositorAnimationPlayer.h"
9 #include "platform/animation/CompositorAnimationTimeline.h"
10 #include "platform/graphics/CompositorFactory.h"
8 #include "platform/graphics/GraphicsLayer.h" 11 #include "platform/graphics/GraphicsLayer.h"
9 #include "platform/scroll/ScrollableArea.h" 12 #include "platform/scroll/ScrollableArea.h"
10 #include "public/platform/Platform.h" 13 #include "public/platform/Platform.h"
11 #include "public/platform/WebCompositorAnimationPlayer.h"
12 #include "public/platform/WebCompositorAnimationTimeline.h"
13 #include "public/platform/WebCompositorSupport.h" 14 #include "public/platform/WebCompositorSupport.h"
14 15
15 namespace blink { 16 namespace blink {
16 17
17 ScrollAnimatorCompositorCoordinator::ScrollAnimatorCompositorCoordinator() 18 ScrollAnimatorCompositorCoordinator::ScrollAnimatorCompositorCoordinator()
18 : m_compositorAnimationAttachedToLayerId(0) 19 : m_compositorAnimationAttachedToLayerId(0)
19 , m_runState(RunState::Idle) 20 , m_runState(RunState::Idle)
20 , m_compositorAnimationId(0) 21 , m_compositorAnimationId(0)
21 , m_compositorAnimationGroupId(0) 22 , m_compositorAnimationGroupId(0)
22 { 23 {
23 if (RuntimeEnabledFeatures::compositorAnimationTimelinesEnabled()) { 24 if (RuntimeEnabledFeatures::compositorAnimationTimelinesEnabled()) {
24 ASSERT(Platform::current()->compositorSupport()); 25 ASSERT(Platform::current()->compositorSupport());
25 m_compositorPlayer = adoptPtr(Platform::current()->compositorSupport()-> createAnimationPlayer()); 26 m_compositorPlayer = adoptPtr(CompositorFactory::current().createAnimati onPlayer());
26 ASSERT(m_compositorPlayer); 27 ASSERT(m_compositorPlayer);
27 m_compositorPlayer->setAnimationDelegate(this); 28 m_compositorPlayer->setAnimationDelegate(this);
28 } 29 }
29 } 30 }
30 31
31 ScrollAnimatorCompositorCoordinator::~ScrollAnimatorCompositorCoordinator() 32 ScrollAnimatorCompositorCoordinator::~ScrollAnimatorCompositorCoordinator()
32 { 33 {
33 if (m_compositorPlayer) { 34 if (m_compositorPlayer) {
34 m_compositorPlayer->setAnimationDelegate(nullptr); 35 m_compositorPlayer->setAnimationDelegate(nullptr);
35 m_compositorPlayer.clear(); 36 m_compositorPlayer.clear();
(...skipping 18 matching lines...) Expand all
54 case RunState::RunningOnMainThread: 55 case RunState::RunningOnMainThread:
55 case RunState::RunningOnCompositorButNeedsUpdate: 56 case RunState::RunningOnCompositorButNeedsUpdate:
56 case RunState::WaitingToCancelOnCompositor: 57 case RunState::WaitingToCancelOnCompositor:
57 return true; 58 return true;
58 } 59 }
59 ASSERT_NOT_REACHED(); 60 ASSERT_NOT_REACHED();
60 return false; 61 return false;
61 } 62 }
62 63
63 bool ScrollAnimatorCompositorCoordinator::addAnimation( 64 bool ScrollAnimatorCompositorCoordinator::addAnimation(
64 PassOwnPtr<WebCompositorAnimation> animation) 65 PassOwnPtr<CompositorAnimation> animation)
65 { 66 {
66 if (m_compositorPlayer) { 67 if (m_compositorPlayer) {
67 if (m_compositorPlayer->isLayerAttached()) { 68 if (m_compositorPlayer->isLayerAttached()) {
68 m_compositorPlayer->addAnimation(animation.leakPtr()); 69 m_compositorPlayer->addAnimation(animation.leakPtr());
69 return true; 70 return true;
70 } 71 }
71 } else { 72 } else {
72 return scrollableArea()->layerForScrolling()->addAnimation(animation); 73 return scrollableArea()->layerForScrolling()->addAnimation(animation);
73 } 74 }
74 return false; 75 return false;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 case RunState::RunningOnCompositorButNeedsUpdate: 145 case RunState::RunningOnCompositorButNeedsUpdate:
145 case RunState::WaitingToCancelOnCompositor: 146 case RunState::WaitingToCancelOnCompositor:
146 m_runState = RunState::PostAnimationCleanup; 147 m_runState = RunState::PostAnimationCleanup;
147 148
148 // Get serviced the next time compositor updates are allowed. 149 // Get serviced the next time compositor updates are allowed.
149 scrollableArea()->registerForAnimation(); 150 scrollableArea()->registerForAnimation();
150 } 151 }
151 } 152 }
152 153
153 void ScrollAnimatorCompositorCoordinator::reattachCompositorPlayerIfNeeded( 154 void ScrollAnimatorCompositorCoordinator::reattachCompositorPlayerIfNeeded(
154 WebCompositorAnimationTimeline* timeline) 155 CompositorAnimationTimeline* timeline)
155 { 156 {
156 int compositorAnimationAttachedToLayerId = 0; 157 int compositorAnimationAttachedToLayerId = 0;
157 if (scrollableArea()->layerForScrolling()) 158 if (scrollableArea()->layerForScrolling())
158 compositorAnimationAttachedToLayerId = scrollableArea()->layerForScrolli ng()->platformLayer()->id(); 159 compositorAnimationAttachedToLayerId = scrollableArea()->layerForScrolli ng()->platformLayer()->id();
159 160
160 if (compositorAnimationAttachedToLayerId != m_compositorAnimationAttachedToL ayerId) { 161 if (compositorAnimationAttachedToLayerId != m_compositorAnimationAttachedToL ayerId) {
161 if (m_compositorPlayer && timeline) { 162 if (m_compositorPlayer && timeline) {
162 // Detach from old layer (if any). 163 // Detach from old layer (if any).
163 if (m_compositorAnimationAttachedToLayerId) { 164 if (m_compositorAnimationAttachedToLayerId) {
164 if (m_compositorPlayer->isLayerAttached()) 165 if (m_compositorPlayer->isLayerAttached())
(...skipping 24 matching lines...) Expand all
189 } 190 }
190 191
191 void ScrollAnimatorCompositorCoordinator::notifyAnimationAborted( 192 void ScrollAnimatorCompositorCoordinator::notifyAnimationAborted(
192 double monotonicTime, int group) 193 double monotonicTime, int group)
193 { 194 {
194 // An animation aborted by the compositor is treated as a finished 195 // An animation aborted by the compositor is treated as a finished
195 // animation. 196 // animation.
196 notifyCompositorAnimationFinished(group); 197 notifyCompositorAnimationFinished(group);
197 } 198 }
198 199
199 WebCompositorAnimationPlayer* ScrollAnimatorCompositorCoordinator::compositorPla yer() const 200 CompositorAnimationPlayer* ScrollAnimatorCompositorCoordinator::compositorPlayer () const
200 { 201 {
201 return m_compositorPlayer.get(); 202 return m_compositorPlayer.get();
202 } 203 }
203 204
204 } // namespace blink 205 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698