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 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 return; | 243 return; |
244 | 244 |
245 m_keyframeGroups = adoptPtr(new KeyframeGroupMap); | 245 m_keyframeGroups = adoptPtr(new KeyframeGroupMap); |
246 const KeyframeVector keyframes = normalizedKeyframes(getFrames()); | 246 const KeyframeVector keyframes = normalizedKeyframes(getFrames()); |
247 for (KeyframeVector::const_iterator keyframeIter = keyframes.begin(); keyfra
meIter != keyframes.end(); ++keyframeIter) { | 247 for (KeyframeVector::const_iterator keyframeIter = keyframes.begin(); keyfra
meIter != keyframes.end(); ++keyframeIter) { |
248 const Keyframe* keyframe = keyframeIter->get(); | 248 const Keyframe* keyframe = keyframeIter->get(); |
249 PropertySet keyframeProperties = keyframe->properties(); | 249 PropertySet keyframeProperties = keyframe->properties(); |
250 for (PropertySet::const_iterator propertyIter = keyframeProperties.begin
(); propertyIter != keyframeProperties.end(); ++propertyIter) { | 250 for (PropertySet::const_iterator propertyIter = keyframeProperties.begin
(); propertyIter != keyframeProperties.end(); ++propertyIter) { |
251 CSSPropertyID property = *propertyIter; | 251 CSSPropertyID property = *propertyIter; |
252 KeyframeGroupMap::iterator groupIter = m_keyframeGroups->find(proper
ty); | 252 KeyframeGroupMap::iterator groupIter = m_keyframeGroups->find(proper
ty); |
253 if (groupIter == m_keyframeGroups->end()) { | 253 PropertySpecificKeyframeGroup* group; |
254 KeyframeGroupMap::AddResult result = m_keyframeGroups->add(prope
rty, adoptPtr(new PropertySpecificKeyframeGroup)); | 254 if (groupIter == m_keyframeGroups->end()) |
255 ASSERT(result.isNewEntry); | 255 group = m_keyframeGroups->add(property, adoptPtr(new PropertySpe
cificKeyframeGroup)).storedValue->value.get(); |
256 groupIter = result.iterator; | 256 else |
257 } | 257 group = groupIter->value.get(); |
258 groupIter->value->appendKeyframe(adoptPtr( | 258 |
| 259 group->appendKeyframe(adoptPtr( |
259 new PropertySpecificKeyframe(keyframe->offset(), keyframe->easin
g(), keyframe->propertyValue(property), keyframe->composite()))); | 260 new PropertySpecificKeyframe(keyframe->offset(), keyframe->easin
g(), keyframe->propertyValue(property), keyframe->composite()))); |
260 } | 261 } |
261 } | 262 } |
262 | 263 |
263 // Add synthetic keyframes. | 264 // Add synthetic keyframes. |
264 for (KeyframeGroupMap::iterator iter = m_keyframeGroups->begin(); iter != m_
keyframeGroups->end(); ++iter) { | 265 for (KeyframeGroupMap::iterator iter = m_keyframeGroups->begin(); iter != m_
keyframeGroups->end(); ++iter) { |
265 iter->value->addSyntheticKeyframeIfRequired(); | 266 iter->value->addSyntheticKeyframeIfRequired(); |
266 iter->value->removeRedundantKeyframes(); | 267 iter->value->removeRedundantKeyframes(); |
267 } | 268 } |
268 } | 269 } |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 if ((*after)->offset() == offset) | 383 if ((*after)->offset() == offset) |
383 return const_cast<CompositableValue*>((*after)->value()); | 384 return const_cast<CompositableValue*>((*after)->value()); |
384 | 385 |
385 double fraction = (offset - (*before)->offset()) / ((*after)->offset() - (*b
efore)->offset()); | 386 double fraction = (offset - (*before)->offset()) / ((*after)->offset() - (*b
efore)->offset()); |
386 if (const TimingFunction* timingFunction = (*before)->easing()) | 387 if (const TimingFunction* timingFunction = (*before)->easing()) |
387 fraction = timingFunction->evaluate(fraction, accuracyForKeyframeEasing)
; | 388 fraction = timingFunction->evaluate(fraction, accuracyForKeyframeEasing)
; |
388 return BlendedCompositableValue::create((*before)->value(), (*after)->value(
), fraction); | 389 return BlendedCompositableValue::create((*before)->value(), (*after)->value(
), fraction); |
389 } | 390 } |
390 | 391 |
391 } // namespace | 392 } // namespace |
OLD | NEW |