| OLD | NEW |
| 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 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 return element->ensureElementAnimations().defaultStack(); | 129 return element->ensureElementAnimations().defaultStack(); |
| 130 } | 130 } |
| 131 | 131 |
| 132 void KeyframeEffect::applyEffects() | 132 void KeyframeEffect::applyEffects() |
| 133 { | 133 { |
| 134 ASSERT(isInEffect()); | 134 ASSERT(isInEffect()); |
| 135 ASSERT(animation()); | 135 ASSERT(animation()); |
| 136 if (!m_target || !m_model) | 136 if (!m_target || !m_model) |
| 137 return; | 137 return; |
| 138 | 138 |
| 139 // Cancel composited animation of transform if a motion path has been introd
uced on the element. | 139 // Cancel composited animation of transform if a motion path or |
| 140 // transform properties has been introduced on the element. |
| 140 if (m_target->computedStyle() | 141 if (m_target->computedStyle() |
| 141 && m_target->computedStyle()->hasMotionPath() | 142 && (m_target->computedStyle()->hasMotionPath() || m_target->computedStyl
e()->hasTransformProperties()) |
| 142 && animation()->hasActiveAnimationsOnCompositor() | 143 && animation()->hasActiveAnimationsOnCompositor() |
| 143 && animation()->affects(*m_target, CSSPropertyTransform)) { | 144 && animation()->affects(*m_target, CSSPropertyTransform)) { |
| 144 animation()->cancelAnimationOnCompositor(); | 145 animation()->cancelAnimationOnCompositor(); |
| 145 } | 146 } |
| 146 | 147 |
| 147 double iteration = currentIteration(); | 148 double iteration = currentIteration(); |
| 148 ASSERT(iteration >= 0); | 149 ASSERT(iteration >= 0); |
| 149 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> inte
rpolations = m_sampledEffect ? m_sampledEffect->mutableInterpolations() : nullpt
r; | 150 OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<Interpolation>>> inte
rpolations = m_sampledEffect ? m_sampledEffect->mutableInterpolations() : nullpt
r; |
| 150 // FIXME: Handle iteration values which overflow int. | 151 // FIXME: Handle iteration values which overflow int. |
| 151 m_model->sample(static_cast<int>(iteration), timeFraction(), iterationDurati
on(), interpolations); | 152 m_model->sample(static_cast<int>(iteration), timeFraction(), iterationDurati
on(), interpolations); |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 m_sampledEffect = nullptr; | 236 m_sampledEffect = nullptr; |
| 236 if (sampledEffect) | 237 if (sampledEffect) |
| 237 sampledEffect->clear(); | 238 sampledEffect->clear(); |
| 238 } | 239 } |
| 239 #endif | 240 #endif |
| 240 | 241 |
| 241 bool KeyframeEffect::isCandidateForAnimationOnCompositor(double animationPlaybac
kRate) const | 242 bool KeyframeEffect::isCandidateForAnimationOnCompositor(double animationPlaybac
kRate) const |
| 242 { | 243 { |
| 243 if (!model() | 244 if (!model() |
| 244 || !m_target | 245 || !m_target |
| 245 || (m_target->computedStyle() && m_target->computedStyle()->hasMotionPat
h())) | 246 || (m_target->computedStyle() && (m_target->computedStyle()->hasMotionPa
th() || m_target->computedStyle()->hasTransformProperties()))) |
| 246 return false; | 247 return false; |
| 247 | 248 |
| 248 return CompositorAnimations::instance()->isCandidateForAnimationOnCompositor
(specifiedTiming(), *m_target, animation(), *model(), animationPlaybackRate); | 249 return CompositorAnimations::instance()->isCandidateForAnimationOnCompositor
(specifiedTiming(), *m_target, animation(), *model(), animationPlaybackRate); |
| 249 } | 250 } |
| 250 | 251 |
| 251 bool KeyframeEffect::maybeStartAnimationOnCompositor(int group, double startTime
, double currentTime, double animationPlaybackRate) | 252 bool KeyframeEffect::maybeStartAnimationOnCompositor(int group, double startTime
, double currentTime, double animationPlaybackRate) |
| 252 { | 253 { |
| 253 ASSERT(!hasActiveAnimationsOnCompositor()); | 254 ASSERT(!hasActiveAnimationsOnCompositor()); |
| 254 if (!isCandidateForAnimationOnCompositor(animationPlaybackRate)) | 255 if (!isCandidateForAnimationOnCompositor(animationPlaybackRate)) |
| 255 return false; | 256 return false; |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 | 333 |
| 333 DEFINE_TRACE(KeyframeEffect) | 334 DEFINE_TRACE(KeyframeEffect) |
| 334 { | 335 { |
| 335 visitor->trace(m_target); | 336 visitor->trace(m_target); |
| 336 visitor->trace(m_model); | 337 visitor->trace(m_model); |
| 337 visitor->trace(m_sampledEffect); | 338 visitor->trace(m_sampledEffect); |
| 338 AnimationEffect::trace(visitor); | 339 AnimationEffect::trace(visitor); |
| 339 } | 340 } |
| 340 | 341 |
| 341 } // namespace blink | 342 } // namespace blink |
| OLD | NEW |