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 #ifndef ScrollAnimatorCompositorCoordinator_h | 5 #ifndef ScrollAnimatorCompositorCoordinator_h |
6 #define ScrollAnimatorCompositorCoordinator_h | 6 #define ScrollAnimatorCompositorCoordinator_h |
7 | 7 |
8 #include "platform/PlatformExport.h" | 8 #include "platform/PlatformExport.h" |
9 #include "platform/heap/Handle.h" | 9 #include "platform/heap/Handle.h" |
10 #include "public/platform/WebCompositorAnimationDelegate.h" | 10 #include "public/platform/WebCompositorAnimationDelegate.h" |
11 #include "public/platform/WebCompositorAnimationPlayerClient.h" | 11 #include "public/platform/WebCompositorAnimationPlayerClient.h" |
12 #include "wtf/Allocator.h" | 12 #include "wtf/Allocator.h" |
13 #include "wtf/Noncopyable.h" | 13 #include "wtf/Noncopyable.h" |
14 #include "wtf/OwnPtr.h" | 14 #include "wtf/OwnPtr.h" |
15 | 15 |
16 namespace blink { | 16 namespace blink { |
17 | 17 |
18 class ScrollableArea; | 18 class ScrollableArea; |
19 class WebCompositorAnimationPlayer; | 19 class WebCompositorAnimationPlayer; |
20 class WebCompositorAnimationTimeline; | 20 class WebCompositorAnimationTimeline; |
21 | 21 |
22 class PLATFORM_EXPORT ScrollAnimatorCompositorCoordinator : public NoBaseWillBeG
arbageCollectedFinalized<ScrollAnimatorCompositorCoordinator>, private WebCompos
itorAnimationPlayerClient, WebCompositorAnimationDelegate { | 22 class PLATFORM_EXPORT ScrollAnimatorCompositorCoordinator : public NoBaseWillBeG
arbageCollectedFinalized<ScrollAnimatorCompositorCoordinator>, private WebCompos
itorAnimationPlayerClient, WebCompositorAnimationDelegate { |
23 USING_FAST_MALLOC_WILL_BE_REMOVED(ScrollAnimatorCompositorCoordinator); | 23 USING_FAST_MALLOC_WILL_BE_REMOVED(ScrollAnimatorCompositorCoordinator); |
24 WTF_MAKE_NONCOPYABLE(ScrollAnimatorCompositorCoordinator); | 24 WTF_MAKE_NONCOPYABLE(ScrollAnimatorCompositorCoordinator); |
25 public: | 25 public: |
26 virtual ~ScrollAnimatorCompositorCoordinator(); | 26 virtual ~ScrollAnimatorCompositorCoordinator(); |
27 | 27 |
28 bool hasAnimationThatRequiresService() const; | 28 bool hasAnimationThatRequiresService() const; |
| 29 void clearMainThreadScrollingReasons(bool clear); |
| 30 |
| 31 virtual bool hasRunningAnimation() const { return false; } |
29 | 32 |
30 virtual void resetAnimationState(); | 33 virtual void resetAnimationState(); |
31 virtual void cancelAnimation(); | 34 virtual void cancelAnimation(); |
32 | 35 |
33 virtual ScrollableArea* scrollableArea() const = 0; | 36 virtual ScrollableArea* scrollableArea() const = 0; |
34 virtual void tickAnimation(double monotonicTime) = 0; | 37 virtual void tickAnimation(double monotonicTime) = 0; |
35 virtual void updateCompositorAnimations() = 0; | 38 virtual void updateCompositorAnimations() = 0; |
36 virtual void notifyCompositorAnimationFinished(int groupId) = 0; | 39 virtual void notifyCompositorAnimationFinished(int groupId) = 0; |
37 virtual void notifyCompositorAnimationAborted(int groupId) = 0; | 40 virtual void notifyCompositorAnimationAborted(int groupId) = 0; |
38 virtual void layerForCompositedScrollingDidChange(WebCompositorAnimationTime
line*) = 0; | 41 virtual void layerForCompositedScrollingDidChange(WebCompositorAnimationTime
line*) = 0; |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 // Waiting to cancel the animation currently running on the compositor. | 83 // Waiting to cancel the animation currently running on the compositor. |
81 // There is no pending animation to replace the canceled animation. | 84 // There is no pending animation to replace the canceled animation. |
82 WaitingToCancelOnCompositor | 85 WaitingToCancelOnCompositor |
83 }; | 86 }; |
84 | 87 |
85 OwnPtr<WebCompositorAnimationPlayer> m_compositorPlayer; | 88 OwnPtr<WebCompositorAnimationPlayer> m_compositorPlayer; |
86 int m_compositorAnimationAttachedToLayerId; | 89 int m_compositorAnimationAttachedToLayerId; |
87 RunState m_runState; | 90 RunState m_runState; |
88 int m_compositorAnimationId; | 91 int m_compositorAnimationId; |
89 int m_compositorAnimationGroupId; | 92 int m_compositorAnimationGroupId; |
| 93 |
| 94 private: |
| 95 void clearMainThreadScrollingReasonsOnLayer(); |
| 96 |
| 97 bool m_clearMainThreadScrollingReasons; |
90 }; | 98 }; |
91 | 99 |
92 } // namespace blink | 100 } // namespace blink |
93 | 101 |
94 #endif // ScrollAnimatorCompositorCoordinator_h | 102 #endif // ScrollAnimatorCompositorCoordinator_h |
OLD | NEW |