| 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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 BlendedCompositableValue(const AnimationEffect::CompositableValue* before, c
onst AnimationEffect::CompositableValue* after, double fraction) | 88 BlendedCompositableValue(const AnimationEffect::CompositableValue* before, c
onst AnimationEffect::CompositableValue* after, double fraction) |
| 89 : m_before(const_cast<AnimationEffect::CompositableValue*>(before)) | 89 : m_before(const_cast<AnimationEffect::CompositableValue*>(before)) |
| 90 , m_after(const_cast<AnimationEffect::CompositableValue*>(after)) | 90 , m_after(const_cast<AnimationEffect::CompositableValue*>(after)) |
| 91 , m_fraction(fraction) | 91 , m_fraction(fraction) |
| 92 { } | 92 { } |
| 93 RefPtr<AnimationEffect::CompositableValue> m_before; | 93 RefPtr<AnimationEffect::CompositableValue> m_before; |
| 94 RefPtr<AnimationEffect::CompositableValue> m_after; | 94 RefPtr<AnimationEffect::CompositableValue> m_after; |
| 95 double m_fraction; | 95 double m_fraction; |
| 96 }; | 96 }; |
| 97 | 97 |
| 98 bool compareOffsets(const RefPtr<Keyframe>& a, const RefPtr<Keyframe>& b) | |
| 99 { | |
| 100 return a->offset() < b->offset(); | |
| 101 } | |
| 102 | |
| 103 } // namespace | 98 } // namespace |
| 104 | 99 |
| 105 | 100 |
| 106 namespace WebCore { | 101 namespace WebCore { |
| 107 | 102 |
| 108 Keyframe::Keyframe() | 103 Keyframe::Keyframe() |
| 109 : m_offset(std::numeric_limits<double>::quiet_NaN()) | 104 : m_offset(std::numeric_limits<double>::quiet_NaN()) |
| 110 , m_composite(AnimationEffect::CompositeReplace) | 105 , m_composite(AnimationEffect::CompositeReplace) |
| 111 { } | 106 { } |
| 112 | 107 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 Keyframe* lastKeyframe = keyframes.last().get(); | 155 Keyframe* lastKeyframe = keyframes.last().get(); |
| 161 if (lastKeyframe && std::isnan(lastKeyframe->offset())) | 156 if (lastKeyframe && std::isnan(lastKeyframe->offset())) |
| 162 lastKeyframe->setOffset(1.0); | 157 lastKeyframe->setOffset(1.0); |
| 163 } | 158 } |
| 164 | 159 |
| 165 // FIXME: Distribute offsets where missing. | 160 // FIXME: Distribute offsets where missing. |
| 166 for (KeyframeVector::iterator iter = keyframes.begin(); iter != keyframes.en
d(); ++iter) | 161 for (KeyframeVector::iterator iter = keyframes.begin(); iter != keyframes.en
d(); ++iter) |
| 167 ASSERT(!std::isnan((*iter)->offset())); | 162 ASSERT(!std::isnan((*iter)->offset())); |
| 168 | 163 |
| 169 // Sort by offset. | 164 // Sort by offset. |
| 170 std::stable_sort(keyframes.begin(), keyframes.end(), compareOffsets); | 165 std::stable_sort(keyframes.begin(), keyframes.end(), Keyframe::compareOffset
s); |
| 171 return keyframes; | 166 return keyframes; |
| 172 } | 167 } |
| 173 | 168 |
| 174 void KeyframeAnimationEffect::ensureKeyframeGroups() | 169 void KeyframeAnimationEffect::ensureKeyframeGroups() |
| 175 { | 170 { |
| 176 if (m_keyframeGroups) | 171 if (m_keyframeGroups) |
| 177 return; | 172 return; |
| 178 | 173 |
| 179 m_keyframeGroups = adoptPtr(new KeyframeGroupMap); | 174 m_keyframeGroups = adoptPtr(new KeyframeGroupMap); |
| 180 const KeyframeVector& keyframes = normalizedKeyframes(); | 175 const KeyframeVector& keyframes = normalizedKeyframes(); |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 306 | 301 |
| 307 if ((*before)->offset() == offset) | 302 if ((*before)->offset() == offset) |
| 308 return const_cast<CompositableValue*>((*before)->value()); | 303 return const_cast<CompositableValue*>((*before)->value()); |
| 309 if ((*after)->offset() == offset) | 304 if ((*after)->offset() == offset) |
| 310 return const_cast<CompositableValue*>((*after)->value()); | 305 return const_cast<CompositableValue*>((*after)->value()); |
| 311 return BlendedCompositableValue::create((*before)->value(), (*after)->value(
), | 306 return BlendedCompositableValue::create((*before)->value(), (*after)->value(
), |
| 312 (offset - (*before)->offset()) / ((*after)->offset() - (*before)->offset
())); | 307 (offset - (*before)->offset()) / ((*after)->offset() - (*before)->offset
())); |
| 313 } | 308 } |
| 314 | 309 |
| 315 } // namespace | 310 } // namespace |
| OLD | NEW |