Index: Source/core/svg/animation/SMILTimeContainer.h |
diff --git a/Source/core/svg/animation/SMILTimeContainer.h b/Source/core/svg/animation/SMILTimeContainer.h |
index bff4ae935b6faaa287b39e1d2914ee0559c475e8..98e9e11a4c6660a303feb8e218498549769a7c25 100644 |
--- a/Source/core/svg/animation/SMILTimeContainer.h |
+++ b/Source/core/svg/animation/SMILTimeContainer.h |
@@ -38,6 +38,8 @@ |
namespace WebCore { |
+class AnimationClock; |
+class Document; |
class SVGElement; |
class SVGSMILElement; |
class SVGSVGElement; |
@@ -61,6 +63,9 @@ public: |
void resume(); |
void setElapsed(SMILTime); |
+ void serviceAnimations(double monotonicAnimationStartTime); |
+ bool hasAnimations() const; |
+ |
void setDocumentOrderIndexesDirty() { m_documentOrderIndexesDirty = true; } |
private: |
@@ -70,12 +75,15 @@ private: |
void scheduleAnimationFrame(SMILTime fireTime); |
void scheduleAnimationFrame(); |
void cancelAnimationFrame(); |
- void timerFired(Timer<SMILTimeContainer>*); |
+ void wakeupTimerFired(Timer<SMILTimeContainer>*); |
void updateAnimations(SMILTime elapsed, bool seekToTime = false); |
+ void serviceOnNextFrame(); |
void updateDocumentOrderIndexes(); |
double lastResumeTime() const { return m_resumeTime ? m_resumeTime : m_beginTime; } |
+ Document& document() const; |
+ |
double m_beginTime; |
double m_pauseTime; |
double m_resumeTime; |
@@ -83,8 +91,10 @@ private: |
double m_presetStartTime; |
bool m_documentOrderIndexesDirty; |
+ bool m_framePending; |
- Timer<SMILTimeContainer> m_timer; |
+ OwnPtr<AnimationClock> m_animationClock; |
+ Timer<SMILTimeContainer> m_wakeupTimer; |
typedef pair<SVGElement*, QualifiedName> ElementAttributePair; |
typedef Vector<SVGSMILElement*> AnimationsVector; |