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

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

Issue 98663004: Add support for unprefixed CSS Transforms (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase. Created 6 years, 9 months 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 | Annotate | Revision Log
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 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 // Check all the properties can be accelerated 143 // Check all the properties can be accelerated
144 const PropertySet properties = frames[i]->properties(); // FIXME: proper ties creates a whole new PropertySet! 144 const PropertySet properties = frames[i]->properties(); // FIXME: proper ties creates a whole new PropertySet!
145 145
146 if (properties.isEmpty()) 146 if (properties.isEmpty())
147 return false; 147 return false;
148 148
149 for (PropertySet::const_iterator it = properties.begin(); it != properti es.end(); ++it) { 149 for (PropertySet::const_iterator it = properties.begin(); it != properti es.end(); ++it) {
150 switch (*it) { 150 switch (*it) {
151 case CSSPropertyOpacity: 151 case CSSPropertyOpacity:
152 continue; 152 continue;
153 case CSSPropertyWebkitTransform: 153 case CSSPropertyTransform:
154 if (toAnimatableTransform(frames[i]->propertyValue(CSSPropertyWe bkitTransform))->transformOperations().dependsOnBoxSize()) 154 if (toAnimatableTransform(frames[i]->propertyValue(CSSPropertyTr ansform))->transformOperations().dependsOnBoxSize())
155 return false; 155 return false;
156 continue; 156 continue;
157 case CSSPropertyWebkitFilter: { 157 case CSSPropertyWebkitFilter: {
158 const FilterOperations& operations = toAnimatableFilterOperation s(frames[i]->propertyValue(CSSPropertyWebkitFilter))->operations(); 158 const FilterOperations& operations = toAnimatableFilterOperation s(frames[i]->propertyValue(CSSPropertyWebkitFilter))->operations();
159 if (operations.hasFilterThatMovesPixels()) 159 if (operations.hasFilterThatMovesPixels())
160 return false; 160 return false;
161 for (size_t i = 0; i < operations.size(); i++) { 161 for (size_t i = 0; i < operations.size(); i++) {
162 const FilterOperation& op = *operations.at(i); 162 const FilterOperation& op = *operations.at(i);
163 if (op.type() == FilterOperation::VALIDATED_CUSTOM || op.typ e() == FilterOperation::CUSTOM) 163 if (op.type() == FilterOperation::VALIDATED_CUSTOM || op.typ e() == FilterOperation::CUSTOM)
164 return false; 164 return false;
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 curve = adoptPtr(floatCurve); 468 curve = adoptPtr(floatCurve);
469 break; 469 break;
470 } 470 }
471 case CSSPropertyWebkitFilter: { 471 case CSSPropertyWebkitFilter: {
472 targetProperty = blink::WebAnimation::TargetPropertyFilter; 472 targetProperty = blink::WebAnimation::TargetPropertyFilter;
473 blink::WebFilterAnimationCurve* filterCurve = blink::Platform::curre nt()->compositorSupport()->createFilterAnimationCurve(); 473 blink::WebFilterAnimationCurve* filterCurve = blink::Platform::curre nt()->compositorSupport()->createFilterAnimationCurve();
474 addKeyframesToCurve(*filterCurve, values, compositorTiming.reverse); 474 addKeyframesToCurve(*filterCurve, values, compositorTiming.reverse);
475 curve = adoptPtr(filterCurve); 475 curve = adoptPtr(filterCurve);
476 break; 476 break;
477 } 477 }
478 case CSSPropertyWebkitTransform: { 478 case CSSPropertyTransform: {
479 targetProperty = blink::WebAnimation::TargetPropertyTransform; 479 targetProperty = blink::WebAnimation::TargetPropertyTransform;
480 blink::WebTransformAnimationCurve* transformCurve = blink::Platform: :current()->compositorSupport()->createTransformAnimationCurve(); 480 blink::WebTransformAnimationCurve* transformCurve = blink::Platform: :current()->compositorSupport()->createTransformAnimationCurve();
481 addKeyframesToCurve(*transformCurve, values, compositorTiming.revers e); 481 addKeyframesToCurve(*transformCurve, values, compositorTiming.revers e);
482 curve = adoptPtr(transformCurve); 482 curve = adoptPtr(transformCurve);
483 break; 483 break;
484 } 484 }
485 default: 485 default:
486 ASSERT_NOT_REACHED(); 486 ASSERT_NOT_REACHED();
487 continue; 487 continue;
488 } 488 }
489 ASSERT(curve.get()); 489 ASSERT(curve.get());
490 490
491 OwnPtr<blink::WebAnimation> animation = adoptPtr(blink::Platform::curren t()->compositorSupport()->createAnimation(*curve, targetProperty)); 491 OwnPtr<blink::WebAnimation> animation = adoptPtr(blink::Platform::curren t()->compositorSupport()->createAnimation(*curve, targetProperty));
492 492
493 animation->setIterations(compositorTiming.adjustedIterationCount); 493 animation->setIterations(compositorTiming.adjustedIterationCount);
494 animation->setTimeOffset(compositorTiming.scaledTimeOffset); 494 animation->setTimeOffset(compositorTiming.scaledTimeOffset);
495 animation->setAlternatesDirection(compositorTiming.alternate); 495 animation->setAlternatesDirection(compositorTiming.alternate);
496 496
497 animations.append(animation.release()); 497 animations.append(animation.release());
498 } 498 }
499 ASSERT(!animations.isEmpty()); 499 ASSERT(!animations.isEmpty());
500 } 500 }
501 501
502 } // namespace WebCore 502 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/animation/AnimatableValue.h ('k') | Source/core/animation/CompositorAnimationsTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698