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

Side by Side Diff: third_party/WebKit/Source/core/animation/AnimationEffectReadOnly.cpp

Issue 2398373002: Construct KeyframeEffectReadOnly objects (Closed)
Patch Set: Test tweaks in response to review Created 4 years, 1 month 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 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 computedTiming.setCurrentIteration(ensureCalculated().currentIteration); 105 computedTiming.setCurrentIteration(ensureCalculated().currentIteration);
106 } else { 106 } else {
107 computedTiming.setLocalTimeToNull(); 107 computedTiming.setLocalTimeToNull();
108 computedTiming.setProgressToNull(); 108 computedTiming.setProgressToNull();
109 computedTiming.setCurrentIterationToNull(); 109 computedTiming.setCurrentIterationToNull();
110 } 110 }
111 111
112 // KeyframeEffectOptions members. 112 // KeyframeEffectOptions members.
113 computedTiming.setDelay(specifiedTiming().startDelay * 1000); 113 computedTiming.setDelay(specifiedTiming().startDelay * 1000);
114 computedTiming.setEndDelay(specifiedTiming().endDelay * 1000); 114 computedTiming.setEndDelay(specifiedTiming().endDelay * 1000);
115 computedTiming.setFill(Timing::fillModeString( 115 computedTiming.setFill(Timing::fillModeString(resolvedFillMode(
116 resolvedFillMode(specifiedTiming().fillMode, isKeyframeEffect()))); 116 specifiedTiming().fillMode, isKeyframeEffectReadOnly())));
117 computedTiming.setIterationStart(specifiedTiming().iterationStart); 117 computedTiming.setIterationStart(specifiedTiming().iterationStart);
118 computedTiming.setIterations(specifiedTiming().iterationCount); 118 computedTiming.setIterations(specifiedTiming().iterationCount);
119 119
120 UnrestrictedDoubleOrString duration; 120 UnrestrictedDoubleOrString duration;
121 duration.setUnrestrictedDouble(iterationDuration() * 1000); 121 duration.setUnrestrictedDouble(iterationDuration() * 1000);
122 computedTiming.setDuration(duration); 122 computedTiming.setDuration(duration);
123 123
124 computedTiming.setDirection( 124 computedTiming.setDirection(
125 Timing::playbackDirectionString(specifiedTiming().direction)); 125 Timing::playbackDirectionString(specifiedTiming().direction));
126 computedTiming.setEasing(specifiedTiming().timingFunction->toString()); 126 computedTiming.setEasing(specifiedTiming().timingFunction->toString());
(...skipping 19 matching lines...) Expand all
146 double timeToNextIteration = std::numeric_limits<double>::infinity(); 146 double timeToNextIteration = std::numeric_limits<double>::infinity();
147 if (needsUpdate) { 147 if (needsUpdate) {
148 const double activeDuration = this->activeDurationInternal(); 148 const double activeDuration = this->activeDurationInternal();
149 149
150 const Phase currentPhase = 150 const Phase currentPhase =
151 calculatePhase(activeDuration, localTime, m_timing); 151 calculatePhase(activeDuration, localTime, m_timing);
152 // FIXME: parentPhase depends on groups being implemented. 152 // FIXME: parentPhase depends on groups being implemented.
153 const AnimationEffectReadOnly::Phase parentPhase = 153 const AnimationEffectReadOnly::Phase parentPhase =
154 AnimationEffectReadOnly::PhaseActive; 154 AnimationEffectReadOnly::PhaseActive;
155 const double activeTime = calculateActiveTime( 155 const double activeTime = calculateActiveTime(
156 activeDuration, resolvedFillMode(m_timing.fillMode, isKeyframeEffect()), 156 activeDuration,
157 resolvedFillMode(m_timing.fillMode, isKeyframeEffectReadOnly()),
157 localTime, parentPhase, currentPhase, m_timing); 158 localTime, parentPhase, currentPhase, m_timing);
158 159
159 double currentIteration; 160 double currentIteration;
160 double progress; 161 double progress;
161 if (const double iterationDuration = this->iterationDuration()) { 162 if (const double iterationDuration = this->iterationDuration()) {
162 const double startOffset = multiplyZeroAlwaysGivesZero( 163 const double startOffset = multiplyZeroAlwaysGivesZero(
163 m_timing.iterationStart, iterationDuration); 164 m_timing.iterationStart, iterationDuration);
164 DCHECK_GE(startOffset, 0); 165 DCHECK_GE(startOffset, 0);
165 const double scaledActiveTime = calculateScaledActiveTime( 166 const double scaledActiveTime = calculateScaledActiveTime(
166 activeDuration, activeTime, startOffset, m_timing); 167 activeDuration, activeTime, startOffset, m_timing);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 : std::numeric_limits<double>::infinity(); 200 : std::numeric_limits<double>::infinity();
200 DCHECK_GE(localActiveDuration, 0); 201 DCHECK_GE(localActiveDuration, 0);
201 const double localLocalTime = 202 const double localLocalTime =
202 localTime < m_timing.startDelay 203 localTime < m_timing.startDelay
203 ? localTime 204 ? localTime
204 : localActiveDuration + m_timing.startDelay; 205 : localActiveDuration + m_timing.startDelay;
205 const AnimationEffectReadOnly::Phase localCurrentPhase = 206 const AnimationEffectReadOnly::Phase localCurrentPhase =
206 calculatePhase(localActiveDuration, localLocalTime, m_timing); 207 calculatePhase(localActiveDuration, localLocalTime, m_timing);
207 const double localActiveTime = calculateActiveTime( 208 const double localActiveTime = calculateActiveTime(
208 localActiveDuration, 209 localActiveDuration,
209 resolvedFillMode(m_timing.fillMode, isKeyframeEffect()), 210 resolvedFillMode(m_timing.fillMode, isKeyframeEffectReadOnly()),
210 localLocalTime, parentPhase, localCurrentPhase, m_timing); 211 localLocalTime, parentPhase, localCurrentPhase, m_timing);
211 const double startOffset = 212 const double startOffset =
212 m_timing.iterationStart * localIterationDuration; 213 m_timing.iterationStart * localIterationDuration;
213 DCHECK_GE(startOffset, 0); 214 DCHECK_GE(startOffset, 0);
214 const double scaledActiveTime = calculateScaledActiveTime( 215 const double scaledActiveTime = calculateScaledActiveTime(
215 localActiveDuration, localActiveTime, startOffset, m_timing); 216 localActiveDuration, localActiveTime, startOffset, m_timing);
216 const double iterationTime = calculateIterationTime( 217 const double iterationTime = calculateIterationTime(
217 localIterationDuration, localRepeatedDuration, scaledActiveTime, 218 localIterationDuration, localRepeatedDuration, scaledActiveTime,
218 startOffset, currentPhase, m_timing); 219 startOffset, currentPhase, m_timing);
219 220
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 AnimationEffectTimingReadOnly* AnimationEffectReadOnly::timing() { 267 AnimationEffectTimingReadOnly* AnimationEffectReadOnly::timing() {
267 return AnimationEffectTimingReadOnly::create(this); 268 return AnimationEffectTimingReadOnly::create(this);
268 } 269 }
269 270
270 DEFINE_TRACE(AnimationEffectReadOnly) { 271 DEFINE_TRACE(AnimationEffectReadOnly) {
271 visitor->trace(m_animation); 272 visitor->trace(m_animation);
272 visitor->trace(m_eventDelegate); 273 visitor->trace(m_eventDelegate);
273 } 274 }
274 275
275 } // namespace blink 276 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/animation/Animation.cpp ('k') | third_party/WebKit/Source/core/animation/ElementAnimation.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698