Index: Source/core/animation/AnimationPlayer.h |
diff --git a/Source/core/animation/AnimationPlayer.h b/Source/core/animation/AnimationPlayer.h |
index ea016e22c22c1440b19f96c7720500de6f9c8714..55b58766c0a4c6cc38ad6cfbf34283ece965efeb 100644 |
--- a/Source/core/animation/AnimationPlayer.h |
+++ b/Source/core/animation/AnimationPlayer.h |
@@ -39,6 +39,8 @@ |
#include "core/dom/DOMException.h" |
#include "core/events/EventTarget.h" |
#include "platform/heap/Handle.h" |
+#include "public/platform/WebCompositorAnimationDelegate.h" |
+#include "public/platform/WebCompositorAnimationPlayerClient.h" |
#include "wtf/RefPtr.h" |
namespace blink { |
@@ -46,11 +48,14 @@ namespace blink { |
class AnimationTimeline; |
class Element; |
class ExceptionState; |
+class WebCompositorAnimationPlayer; |
class AnimationPlayer final |
- : public EventTargetWithInlineData |
- , public RefCountedWillBeNoBase<AnimationPlayer> |
- , public ActiveDOMObject { |
+ : public EventTargetWithInlineData, |
+ public RefCountedWillBeNoBase<AnimationPlayer>, |
+ public ActiveDOMObject, |
+ public WebCompositorAnimationDelegate, |
+ public WebCompositorAnimationPlayerClient { |
DEFINE_WRAPPERTYPEINFO(); |
REFCOUNTED_EVENT_TARGET(AnimationPlayer); |
WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(AnimationPlayer); |
@@ -140,7 +145,8 @@ public: |
void setOutdated(); |
bool outdated() { return m_outdated; } |
- bool canStartAnimationOnCompositor(); |
+ bool canStartAnimationOnCompositor() const; |
+ bool isCandidateForAnimationOnCompositor() const; |
bool maybeStartAnimationOnCompositor(); |
void cancelAnimationOnCompositor(); |
void restartAnimationOnCompositor(); |
@@ -149,6 +155,10 @@ public: |
void setCompositorPending(bool sourceChanged = false); |
void notifyCompositorStartTime(double timelineTime); |
void notifyStartTime(double timelineTime); |
+ // WebCompositorAnimationPlayerClient implementation. |
+ WebCompositorAnimationPlayer* compositorPlayer() const override { return m_compositorPlayer.get(); } |
+ |
+ void updateCompositedLayersAttachment(); |
bool affects(const Element&, CSSPropertyID) const; |
@@ -183,6 +193,16 @@ private: |
void beginUpdatingState(); |
void endUpdatingState(); |
+ void createCompositorPlayer(); |
+ void destroyCompositorPlayer(); |
+ void attachCompositorTimeline(); |
+ void detachCompositorTimeline(); |
+ void attachCompositedLayers(); |
+ void detachCompositedLayers(); |
+ // WebCompositorAnimationDelegate implementation. |
+ void notifyAnimationStarted(double monotonicTime, int group) override; |
+ void notifyAnimationFinished(double monotonicTime, int group) override { } |
+ |
AnimationPlayState m_playState; |
double m_playbackRate; |
double m_startTime; |
@@ -258,9 +278,11 @@ private: |
bool m_compositorPending; |
int m_compositorGroup; |
+ OwnPtr<WebCompositorAnimationPlayer> m_compositorPlayer; |
+ bool m_attachCompositedLayers; |
+ |
bool m_currentTimePending; |
bool m_stateIsBeingUpdated; |
- |
}; |
} // namespace blink |