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

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: Add WTF_MAKE_NONCOPYABLE. Remove INSIDE_BLINK for keyframes. 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 "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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698