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

Side by Side Diff: Source/core/animation/Animation.cpp

Issue 732153003: Update a result vector when sampling animation effects. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 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
« no previous file with comments | « no previous file | Source/core/animation/AnimationEffect.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 142
143 void Animation::applyEffects() 143 void Animation::applyEffects()
144 { 144 {
145 ASSERT(isInEffect()); 145 ASSERT(isInEffect());
146 ASSERT(player()); 146 ASSERT(player());
147 if (!m_target || !m_effect) 147 if (!m_target || !m_effect)
148 return; 148 return;
149 149
150 double iteration = currentIteration(); 150 double iteration = currentIteration();
151 ASSERT(iteration >= 0); 151 ASSERT(iteration >= 0);
152 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > in terpolations = m_sampledEffect ? m_sampledEffect->mutableInterpolations() : null ptr;
152 // FIXME: Handle iteration values which overflow int. 153 // FIXME: Handle iteration values which overflow int.
153 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation> > > in terpolations = m_effect->sample(static_cast<int>(iteration), timeFraction(), ite rationDuration()); 154 m_effect->sample(static_cast<int>(iteration), timeFraction(), iterationDurat ion(), interpolations);
154 if (m_sampledEffect) { 155 if (m_sampledEffect) {
155 m_sampledEffect->setInterpolations(interpolations.release()); 156 m_sampledEffect->setInterpolations(interpolations.release());
156 } else if (!interpolations->isEmpty()) { 157 } else if (interpolations && !interpolations->isEmpty()) {
157 OwnPtrWillBeRawPtr<SampledEffect> sampledEffect = SampledEffect::create( this, interpolations.release()); 158 OwnPtrWillBeRawPtr<SampledEffect> sampledEffect = SampledEffect::create( this, interpolations.release());
158 m_sampledEffect = sampledEffect.get(); 159 m_sampledEffect = sampledEffect.get();
159 ensureAnimationStack(m_target).add(sampledEffect.release()); 160 ensureAnimationStack(m_target).add(sampledEffect.release());
160 } else { 161 } else {
161 return; 162 return;
162 } 163 }
163 164
164 m_target->setNeedsAnimationStyleRecalc(); 165 m_target->setNeedsAnimationStyleRecalc();
165 } 166 }
166 167
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 313
313 void Animation::trace(Visitor* visitor) 314 void Animation::trace(Visitor* visitor)
314 { 315 {
315 visitor->trace(m_target); 316 visitor->trace(m_target);
316 visitor->trace(m_effect); 317 visitor->trace(m_effect);
317 visitor->trace(m_sampledEffect); 318 visitor->trace(m_sampledEffect);
318 AnimationNode::trace(visitor); 319 AnimationNode::trace(visitor);
319 } 320 }
320 321
321 } // namespace blink 322 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | Source/core/animation/AnimationEffect.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698