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

Side by Side Diff: Source/core/frame/animation/CSSPropertyAnimation.cpp

Issue 112003003: [SVG] SVGLength{,List} migration to new SVG property impl. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebaselined Created 7 years 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) 2007, 2008, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved.
3 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. 3 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 || from.left().type() != to.left().type()) 190 || from.left().type() != to.left().type())
191 return to; 191 return to;
192 192
193 LengthBox result(blendFunc(anim, from.top(), to.top(), progress), 193 LengthBox result(blendFunc(anim, from.top(), to.top(), progress),
194 blendFunc(anim, from.right(), to.right(), progress), 194 blendFunc(anim, from.right(), to.right(), progress),
195 blendFunc(anim, from.bottom(), to.bottom(), progress), 195 blendFunc(anim, from.bottom(), to.bottom(), progress),
196 blendFunc(anim, from.left(), to.left(), progress)); 196 blendFunc(anim, from.left(), to.left(), progress));
197 return result; 197 return result;
198 } 198 }
199 199
200 static inline SVGLength blendFunc(const AnimationBase*, const SVGLength& from, c onst SVGLength& to, double progress) 200 static inline PassRefPtr<SVGLength> blendFunc(const AnimationBase*, SVGLength* f rom, SVGLength* to, double progress)
201 { 201 {
202 return to.blend(from, narrowPrecisionToFloat(progress)); 202 return to->blend(from, narrowPrecisionToFloat(progress));
203 } 203 }
204 204
205 static inline Vector<SVGLength> blendFunc(const AnimationBase*, const Vector<SVG Length>& from, const Vector<SVGLength>& to, double progress) 205 static inline PassRefPtr<SVGLengthList> blendFunc(const AnimationBase*, SVGLengt hList* from, SVGLengthList* to, double progress)
206 { 206 {
207 size_t fromLength = from.size(); 207 size_t fromLength = from->numberOfItems();
208 size_t toLength = to.size(); 208 size_t toLength = to->numberOfItems();
209 if (!fromLength) 209 if (!fromLength)
210 return !progress ? from : to; 210 return !progress ? from->clone() : to->clone();
211 if (!toLength) 211 if (!toLength)
212 return progress == 1 ? from : to; 212 return progress == 1 ? from->clone() : to->clone();
213 213
214 size_t resultLength = fromLength; 214 size_t resultLength = fromLength;
215 if (fromLength != toLength) { 215 if (fromLength != toLength) {
216 if (!(fromLength % toLength)) 216 if (!(fromLength % toLength))
217 resultLength = fromLength; 217 resultLength = fromLength;
218 else if (!(toLength % fromLength)) 218 else if (!(toLength % fromLength))
219 resultLength = toLength; 219 resultLength = toLength;
220 else 220 else
221 resultLength = fromLength * toLength; 221 resultLength = fromLength * toLength;
222 } 222 }
223 Vector<SVGLength> result(resultLength); 223 RefPtr<SVGLengthList> result;
224 for (size_t i = 0; i < resultLength; ++i) 224 for (size_t i = 0; i < resultLength; ++i)
225 result[i] = to[i % toLength].blend(from[i % fromLength], narrowPrecision ToFloat(progress)); 225 result->append(to->at(i % toLength)->blend(from->at(i % fromLength), nar rowPrecisionToFloat(progress)));
226 return result; 226 return result;
227 } 227 }
228 228
229 static inline PassRefPtr<StyleImage> crossfadeBlend(const AnimationBase*, StyleF etchedImage* fromStyleImage, StyleFetchedImage* toStyleImage, double progress) 229 static inline PassRefPtr<StyleImage> crossfadeBlend(const AnimationBase*, StyleF etchedImage* fromStyleImage, StyleFetchedImage* toStyleImage, double progress)
230 { 230 {
231 // If progress is at one of the extremes, we want getComputedStyle to show t he image, 231 // If progress is at one of the extremes, we want getComputedStyle to show t he image,
232 // not a completed cross-fade, so we hand back one of the existing images. 232 // not a completed cross-fade, so we hand back one of the existing images.
233 if (!progress) 233 if (!progress)
234 return fromStyleImage; 234 return fromStyleImage;
235 if (progress == 1) 235 if (progress == 1)
(...skipping 821 matching lines...) Expand 10 before | Expand all | Expand 10 after
1057 1057
1058 gPropertyWrappers->append(new PropertyWrapperShadow(CSSPropertyBoxShadow, &R enderStyle::boxShadow, &RenderStyle::setBoxShadow)); 1058 gPropertyWrappers->append(new PropertyWrapperShadow(CSSPropertyBoxShadow, &R enderStyle::boxShadow, &RenderStyle::setBoxShadow));
1059 gPropertyWrappers->append(new PropertyWrapperShadow(CSSPropertyWebkitBoxShad ow, &RenderStyle::boxShadow, &RenderStyle::setBoxShadow)); 1059 gPropertyWrappers->append(new PropertyWrapperShadow(CSSPropertyWebkitBoxShad ow, &RenderStyle::boxShadow, &RenderStyle::setBoxShadow));
1060 gPropertyWrappers->append(new PropertyWrapperShadow(CSSPropertyTextShadow, & RenderStyle::textShadow, &RenderStyle::setTextShadow)); 1060 gPropertyWrappers->append(new PropertyWrapperShadow(CSSPropertyTextShadow, & RenderStyle::textShadow, &RenderStyle::setTextShadow));
1061 1061
1062 gPropertyWrappers->append(new PropertyWrapperSVGPaint(CSSPropertyFill, &Rend erStyle::fillPaintType, &RenderStyle::fillPaintColor, &RenderStyle::setFillPaint Color)); 1062 gPropertyWrappers->append(new PropertyWrapperSVGPaint(CSSPropertyFill, &Rend erStyle::fillPaintType, &RenderStyle::fillPaintColor, &RenderStyle::setFillPaint Color));
1063 gPropertyWrappers->append(new PropertyWrapper<float>(CSSPropertyFillOpacity, &RenderStyle::fillOpacity, &RenderStyle::setFillOpacity)); 1063 gPropertyWrappers->append(new PropertyWrapper<float>(CSSPropertyFillOpacity, &RenderStyle::fillOpacity, &RenderStyle::setFillOpacity));
1064 1064
1065 gPropertyWrappers->append(new PropertyWrapperSVGPaint(CSSPropertyStroke, &Re nderStyle::strokePaintType, &RenderStyle::strokePaintColor, &RenderStyle::setStr okePaintColor)); 1065 gPropertyWrappers->append(new PropertyWrapperSVGPaint(CSSPropertyStroke, &Re nderStyle::strokePaintType, &RenderStyle::strokePaintColor, &RenderStyle::setStr okePaintColor));
1066 gPropertyWrappers->append(new PropertyWrapper<float>(CSSPropertyStrokeOpacit y, &RenderStyle::strokeOpacity, &RenderStyle::setStrokeOpacity)); 1066 gPropertyWrappers->append(new PropertyWrapper<float>(CSSPropertyStrokeOpacit y, &RenderStyle::strokeOpacity, &RenderStyle::setStrokeOpacity));
1067 gPropertyWrappers->append(new PropertyWrapper<SVGLength>(CSSPropertyStrokeWi dth, &RenderStyle::strokeWidth, &RenderStyle::setStrokeWidth)); 1067 gPropertyWrappers->append(new RefCountedPropertyWrapper<SVGLength>(CSSProper tyStrokeWidth, &RenderStyle::strokeWidth, &RenderStyle::setStrokeWidth));
1068 gPropertyWrappers->append(new PropertyWrapper< Vector<SVGLength> >(CSSProper tyStrokeDasharray, &RenderStyle::strokeDashArray, &RenderStyle::setStrokeDashArr ay)); 1068 gPropertyWrappers->append(new RefCountedPropertyWrapper<SVGLengthList>(CSSPr opertyStrokeDasharray, &RenderStyle::strokeDashArray, &RenderStyle::setStrokeDas hArray));
1069 gPropertyWrappers->append(new PropertyWrapper<SVGLength>(CSSPropertyStrokeDa shoffset, &RenderStyle::strokeDashOffset, &RenderStyle::setStrokeDashOffset)); 1069 gPropertyWrappers->append(new RefCountedPropertyWrapper<SVGLength>(CSSProper tyStrokeDashoffset, &RenderStyle::strokeDashOffset, &RenderStyle::setStrokeDashO ffset));
1070 gPropertyWrappers->append(new PropertyWrapper<float>(CSSPropertyStrokeMiterl imit, &RenderStyle::strokeMiterLimit, &RenderStyle::setStrokeMiterLimit)); 1070 gPropertyWrappers->append(new PropertyWrapper<float>(CSSPropertyStrokeMiterl imit, &RenderStyle::strokeMiterLimit, &RenderStyle::setStrokeMiterLimit));
1071 1071
1072 gPropertyWrappers->append(new PropertyWrapper<float>(CSSPropertyFloodOpacity , &RenderStyle::floodOpacity, &RenderStyle::setFloodOpacity)); 1072 gPropertyWrappers->append(new PropertyWrapper<float>(CSSPropertyFloodOpacity , &RenderStyle::floodOpacity, &RenderStyle::setFloodOpacity));
1073 gPropertyWrappers->append(new PropertyWrapperMaybeInvalidColor(CSSPropertyFl oodColor, &RenderStyle::floodColor, &RenderStyle::setFloodColor)); 1073 gPropertyWrappers->append(new PropertyWrapperMaybeInvalidColor(CSSPropertyFl oodColor, &RenderStyle::floodColor, &RenderStyle::setFloodColor));
1074 1074
1075 gPropertyWrappers->append(new PropertyWrapper<float>(CSSPropertyStopOpacity, &RenderStyle::stopOpacity, &RenderStyle::setStopOpacity)); 1075 gPropertyWrappers->append(new PropertyWrapper<float>(CSSPropertyStopOpacity, &RenderStyle::stopOpacity, &RenderStyle::setStopOpacity));
1076 gPropertyWrappers->append(new PropertyWrapperMaybeInvalidColor(CSSPropertySt opColor, &RenderStyle::stopColor, &RenderStyle::setStopColor)); 1076 gPropertyWrappers->append(new PropertyWrapperMaybeInvalidColor(CSSPropertySt opColor, &RenderStyle::stopColor, &RenderStyle::setStopColor));
1077 1077
1078 gPropertyWrappers->append(new PropertyWrapperMaybeInvalidColor(CSSPropertyLi ghtingColor, &RenderStyle::lightingColor, &RenderStyle::setLightingColor)); 1078 gPropertyWrappers->append(new PropertyWrapperMaybeInvalidColor(CSSPropertyLi ghtingColor, &RenderStyle::lightingColor, &RenderStyle::setLightingColor));
1079 1079
1080 gPropertyWrappers->append(new PropertyWrapper<SVGLength>(CSSPropertyBaseline Shift, &RenderStyle::baselineShiftValue, &RenderStyle::setBaselineShiftValue)); 1080 gPropertyWrappers->append(new RefCountedPropertyWrapper<SVGLength>(CSSProper tyBaselineShift, &RenderStyle::baselineShiftValue, &RenderStyle::setBaselineShif tValue));
1081 gPropertyWrappers->append(new PropertyWrapper<SVGLength>(CSSPropertyKerning, &RenderStyle::kerning, &RenderStyle::setKerning)); 1081 gPropertyWrappers->append(new RefCountedPropertyWrapper<SVGLength>(CSSProper tyKerning, &RenderStyle::kerning, &RenderStyle::setKerning));
1082 1082
1083 if (RuntimeEnabledFeatures::webAnimationsCSSEnabled()) { 1083 if (RuntimeEnabledFeatures::webAnimationsCSSEnabled()) {
1084 gPropertyWrappers->append(new PropertyWrapper<float>(CSSPropertyFlexGrow , &RenderStyle::flexGrow, &RenderStyle::setFlexGrow)); 1084 gPropertyWrappers->append(new PropertyWrapper<float>(CSSPropertyFlexGrow , &RenderStyle::flexGrow, &RenderStyle::setFlexGrow));
1085 gPropertyWrappers->append(new PropertyWrapper<float>(CSSPropertyFlexShri nk, &RenderStyle::flexShrink, &RenderStyle::setFlexShrink)); 1085 gPropertyWrappers->append(new PropertyWrapper<float>(CSSPropertyFlexShri nk, &RenderStyle::flexShrink, &RenderStyle::setFlexShrink));
1086 gPropertyWrappers->append(new PropertyWrapper<Length>(CSSPropertyFlexBas is, &RenderStyle::flexBasis, &RenderStyle::setFlexBasis)); 1086 gPropertyWrappers->append(new PropertyWrapper<Length>(CSSPropertyFlexBas is, &RenderStyle::flexBasis, &RenderStyle::setFlexBasis));
1087 } 1087 }
1088 1088
1089 // TODO: 1089 // TODO:
1090 // 1090 //
1091 // CSSPropertyVerticalAlign 1091 // CSSPropertyVerticalAlign
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1159 } 1159 }
1160 1160
1161 int CSSPropertyAnimation::getNumProperties() 1161 int CSSPropertyAnimation::getNumProperties()
1162 { 1162 {
1163 ensurePropertyMap(); 1163 ensurePropertyMap();
1164 1164
1165 return gPropertyWrappers->size(); 1165 return gPropertyWrappers->size();
1166 } 1166 }
1167 1167
1168 } 1168 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698