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

Unified Diff: Source/core/animation/Animation.cpp

Issue 946323002: Animations: Introduce compositor AnimationPlayer and AnimationTimeline. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Implement layer attach/detach. Fix code review issues. Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/animation/Animation.cpp
diff --git a/Source/core/animation/Animation.cpp b/Source/core/animation/Animation.cpp
index 23297a040c5752e4c47c38bbd8c2802d4cce067d..013799ac7b01bfba39f5ff3a01fad0156c8c830b 100644
--- a/Source/core/animation/Animation.cpp
+++ b/Source/core/animation/Animation.cpp
@@ -243,7 +243,7 @@ bool Animation::maybeStartAnimationOnCompositor(int group, double startTime, dou
return false;
if (!CompositorAnimations::instance()->canStartAnimationOnCompositor(*m_target))
return false;
- if (!CompositorAnimations::instance()->startAnimationOnCompositor(*m_target, group, startTime, currentTime, specifiedTiming(), player(), *effect(), m_compositorAnimationIds, playerPlaybackRate))
+ if (!CompositorAnimations::instance()->startAnimationOnCompositor(*m_target, group, startTime, currentTime, specifiedTiming(), *player(), *effect(), m_compositorAnimationIds, playerPlaybackRate))
return false;
ASSERT(!m_compositorAnimationIds.isEmpty());
return true;
@@ -274,8 +274,9 @@ bool Animation::cancelAnimationOnCompositor()
return false;
if (!m_target || !m_target->layoutObject())
return false;
+ ASSERT(player());
for (const auto& compositorAnimationId : m_compositorAnimationIds)
- CompositorAnimations::instance()->cancelAnimationOnCompositor(*m_target, compositorAnimationId);
+ CompositorAnimations::instance()->cancelAnimationOnCompositor(*m_target, *player(), compositorAnimationId);
m_compositorAnimationIds.clear();
return true;
}
@@ -297,8 +298,24 @@ void Animation::pauseAnimationForTestingOnCompositor(double pauseTime)
ASSERT(hasActiveAnimationsOnCompositor());
if (!m_target || !m_target->layoutObject())
return;
+ ASSERT(player());
for (const auto& compositorAnimationId : m_compositorAnimationIds)
- CompositorAnimations::instance()->pauseAnimationForTestingOnCompositor(*m_target, compositorAnimationId, pauseTime);
+ CompositorAnimations::instance()->pauseAnimationForTestingOnCompositor(*m_target, *player(), compositorAnimationId, pauseTime);
+}
+
+bool Animation::canAttachElementToCompositorPlayer() const
+{
+ if (!m_target || !player())
+ return false;
+
+ return CompositorAnimations::instance()->canAttachElementToCompositorPlayer(*m_target, *player());
+}
+
+void Animation::attachElementToCompositorPlayer()
+{
+ ASSERT(m_target);
+ ASSERT(player());
+ CompositorAnimations::instance()->attachElementToCompositorPlayer(*m_target, *player());
}
DEFINE_TRACE(Animation)

Powered by Google App Engine
This is Rietveld 408576698