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

Side by Side Diff: Source/core/svg/SVGFEConvolveMatrixElement.cpp

Issue 131253002: [SVG] SVGAnimatedBoolean migration to new SVG property impl. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebased Created 6 years, 11 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
« no previous file with comments | « Source/core/svg/SVGFEConvolveMatrixElement.h ('k') | Source/core/svg/SVGLength.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> 2 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 26 matching lines...) Expand all
37 DEFINE_ANIMATED_INTEGER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames:: orderAttr, orderXIdentifier(), OrderX, orderX) 37 DEFINE_ANIMATED_INTEGER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames:: orderAttr, orderXIdentifier(), OrderX, orderX)
38 DEFINE_ANIMATED_INTEGER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames:: orderAttr, orderYIdentifier(), OrderY, orderY) 38 DEFINE_ANIMATED_INTEGER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames:: orderAttr, orderYIdentifier(), OrderY, orderY)
39 DEFINE_ANIMATED_NUMBER_LIST(SVGFEConvolveMatrixElement, SVGNames::kernelMatrixAt tr, KernelMatrix, kernelMatrix) 39 DEFINE_ANIMATED_NUMBER_LIST(SVGFEConvolveMatrixElement, SVGNames::kernelMatrixAt tr, KernelMatrix, kernelMatrix)
40 DEFINE_ANIMATED_NUMBER(SVGFEConvolveMatrixElement, SVGNames::divisorAttr, Diviso r, divisor) 40 DEFINE_ANIMATED_NUMBER(SVGFEConvolveMatrixElement, SVGNames::divisorAttr, Diviso r, divisor)
41 DEFINE_ANIMATED_NUMBER(SVGFEConvolveMatrixElement, SVGNames::biasAttr, Bias, bia s) 41 DEFINE_ANIMATED_NUMBER(SVGFEConvolveMatrixElement, SVGNames::biasAttr, Bias, bia s)
42 DEFINE_ANIMATED_INTEGER(SVGFEConvolveMatrixElement, SVGNames::targetXAttr, Targe tX, targetX) 42 DEFINE_ANIMATED_INTEGER(SVGFEConvolveMatrixElement, SVGNames::targetXAttr, Targe tX, targetX)
43 DEFINE_ANIMATED_INTEGER(SVGFEConvolveMatrixElement, SVGNames::targetYAttr, Targe tY, targetY) 43 DEFINE_ANIMATED_INTEGER(SVGFEConvolveMatrixElement, SVGNames::targetYAttr, Targe tY, targetY)
44 DEFINE_ANIMATED_ENUMERATION(SVGFEConvolveMatrixElement, SVGNames::edgeModeAttr, EdgeMode, edgeMode, EdgeModeType) 44 DEFINE_ANIMATED_ENUMERATION(SVGFEConvolveMatrixElement, SVGNames::edgeModeAttr, EdgeMode, edgeMode, EdgeModeType)
45 DEFINE_ANIMATED_NUMBER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames::k ernelUnitLengthAttr, kernelUnitLengthXIdentifier(), KernelUnitLengthX, kernelUni tLengthX) 45 DEFINE_ANIMATED_NUMBER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames::k ernelUnitLengthAttr, kernelUnitLengthXIdentifier(), KernelUnitLengthX, kernelUni tLengthX)
46 DEFINE_ANIMATED_NUMBER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames::k ernelUnitLengthAttr, kernelUnitLengthYIdentifier(), KernelUnitLengthY, kernelUni tLengthY) 46 DEFINE_ANIMATED_NUMBER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames::k ernelUnitLengthAttr, kernelUnitLengthYIdentifier(), KernelUnitLengthY, kernelUni tLengthY)
47 DEFINE_ANIMATED_BOOLEAN(SVGFEConvolveMatrixElement, SVGNames::preserveAlphaAttr, PreserveAlpha, preserveAlpha)
48 47
49 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFEConvolveMatrixElement) 48 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFEConvolveMatrixElement)
50 REGISTER_LOCAL_ANIMATED_PROPERTY(in1) 49 REGISTER_LOCAL_ANIMATED_PROPERTY(in1)
51 REGISTER_LOCAL_ANIMATED_PROPERTY(orderX) 50 REGISTER_LOCAL_ANIMATED_PROPERTY(orderX)
52 REGISTER_LOCAL_ANIMATED_PROPERTY(orderY) 51 REGISTER_LOCAL_ANIMATED_PROPERTY(orderY)
53 REGISTER_LOCAL_ANIMATED_PROPERTY(kernelMatrix) 52 REGISTER_LOCAL_ANIMATED_PROPERTY(kernelMatrix)
54 REGISTER_LOCAL_ANIMATED_PROPERTY(divisor) 53 REGISTER_LOCAL_ANIMATED_PROPERTY(divisor)
55 REGISTER_LOCAL_ANIMATED_PROPERTY(bias) 54 REGISTER_LOCAL_ANIMATED_PROPERTY(bias)
56 REGISTER_LOCAL_ANIMATED_PROPERTY(targetX) 55 REGISTER_LOCAL_ANIMATED_PROPERTY(targetX)
57 REGISTER_LOCAL_ANIMATED_PROPERTY(targetY) 56 REGISTER_LOCAL_ANIMATED_PROPERTY(targetY)
58 REGISTER_LOCAL_ANIMATED_PROPERTY(edgeMode) 57 REGISTER_LOCAL_ANIMATED_PROPERTY(edgeMode)
59 REGISTER_LOCAL_ANIMATED_PROPERTY(kernelUnitLengthX) 58 REGISTER_LOCAL_ANIMATED_PROPERTY(kernelUnitLengthX)
60 REGISTER_LOCAL_ANIMATED_PROPERTY(kernelUnitLengthY) 59 REGISTER_LOCAL_ANIMATED_PROPERTY(kernelUnitLengthY)
61 REGISTER_LOCAL_ANIMATED_PROPERTY(preserveAlpha)
62 REGISTER_PARENT_ANIMATED_PROPERTIES(SVGFilterPrimitiveStandardAttributes) 60 REGISTER_PARENT_ANIMATED_PROPERTIES(SVGFilterPrimitiveStandardAttributes)
63 END_REGISTER_ANIMATED_PROPERTIES 61 END_REGISTER_ANIMATED_PROPERTIES
64 62
65 inline SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement(Document& document ) 63 inline SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement(Document& document )
66 : SVGFilterPrimitiveStandardAttributes(SVGNames::feConvolveMatrixTag, docume nt) 64 : SVGFilterPrimitiveStandardAttributes(SVGNames::feConvolveMatrixTag, docume nt)
65 , m_preserveAlpha(SVGAnimatedBoolean::create(this, SVGNames::preserveAlphaAt tr, SVGBoolean::create()))
67 , m_edgeMode(EDGEMODE_DUPLICATE) 66 , m_edgeMode(EDGEMODE_DUPLICATE)
68 { 67 {
69 ScriptWrappable::init(this); 68 ScriptWrappable::init(this);
69
70 addToPropertyMap(m_preserveAlpha);
71
70 registerAnimatedPropertiesForSVGFEConvolveMatrixElement(); 72 registerAnimatedPropertiesForSVGFEConvolveMatrixElement();
71 } 73 }
72 74
73 PassRefPtr<SVGFEConvolveMatrixElement> SVGFEConvolveMatrixElement::create(Docume nt& document) 75 PassRefPtr<SVGFEConvolveMatrixElement> SVGFEConvolveMatrixElement::create(Docume nt& document)
74 { 76 {
75 return adoptRef(new SVGFEConvolveMatrixElement(document)); 77 return adoptRef(new SVGFEConvolveMatrixElement(document));
76 } 78 }
77 79
78 const AtomicString& SVGFEConvolveMatrixElement::kernelUnitLengthXIdentifier() 80 const AtomicString& SVGFEConvolveMatrixElement::kernelUnitLengthXIdentifier()
79 { 81 {
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 setKernelUnitLengthYBaseValue(y); 196 setKernelUnitLengthYBaseValue(y);
195 } else { 197 } else {
196 document().accessSVGExtensions()->reportWarning( 198 document().accessSVGExtensions()->reportWarning(
197 "feConvolveMatrix: problem parsing kernelUnitLength=\"" + value 199 "feConvolveMatrix: problem parsing kernelUnitLength=\"" + value
198 + "\". Filtered element will not be displayed."); 200 + "\". Filtered element will not be displayed.");
199 } 201 }
200 return; 202 return;
201 } 203 }
202 204
203 if (name == SVGNames::preserveAlphaAttr) { 205 if (name == SVGNames::preserveAlphaAttr) {
204 if (value == "true") 206 SVGParsingError parseError = NoError;
205 setPreserveAlphaBaseValue(true); 207 m_preserveAlpha->setBaseValueAsString(value, parseError);
206 else if (value == "false") 208 reportAttributeParsingError(parseError, name, value);
207 setPreserveAlphaBaseValue(false);
208 else
209 document().accessSVGExtensions()->reportWarning(
210 "feConvolveMatrix: problem parsing preserveAlphaAttr=\"" + value
211 + "\". Filtered element will not be displayed.");
212 return; 209 return;
213 } 210 }
214 211
215 ASSERT_NOT_REACHED(); 212 ASSERT_NOT_REACHED();
216 } 213 }
217 214
218 bool SVGFEConvolveMatrixElement::setFilterEffectAttribute(FilterEffect* effect, const QualifiedName& attrName) 215 bool SVGFEConvolveMatrixElement::setFilterEffectAttribute(FilterEffect* effect, const QualifiedName& attrName)
219 { 216 {
220 FEConvolveMatrix* convolveMatrix = static_cast<FEConvolveMatrix*>(effect); 217 FEConvolveMatrix* convolveMatrix = static_cast<FEConvolveMatrix*>(effect);
221 if (attrName == SVGNames::edgeModeAttr) 218 if (attrName == SVGNames::edgeModeAttr)
222 return convolveMatrix->setEdgeMode(edgeModeCurrentValue()); 219 return convolveMatrix->setEdgeMode(edgeModeCurrentValue());
223 if (attrName == SVGNames::divisorAttr) 220 if (attrName == SVGNames::divisorAttr)
224 return convolveMatrix->setDivisor(divisorCurrentValue()); 221 return convolveMatrix->setDivisor(divisorCurrentValue());
225 if (attrName == SVGNames::biasAttr) 222 if (attrName == SVGNames::biasAttr)
226 return convolveMatrix->setBias(biasCurrentValue()); 223 return convolveMatrix->setBias(biasCurrentValue());
227 if (attrName == SVGNames::targetXAttr) 224 if (attrName == SVGNames::targetXAttr)
228 return convolveMatrix->setTargetOffset(IntPoint(targetXCurrentValue(), t argetYCurrentValue())); 225 return convolveMatrix->setTargetOffset(IntPoint(targetXCurrentValue(), t argetYCurrentValue()));
229 if (attrName == SVGNames::targetYAttr) 226 if (attrName == SVGNames::targetYAttr)
230 return convolveMatrix->setTargetOffset(IntPoint(targetXCurrentValue(), t argetYCurrentValue())); 227 return convolveMatrix->setTargetOffset(IntPoint(targetXCurrentValue(), t argetYCurrentValue()));
231 if (attrName == SVGNames::kernelUnitLengthAttr) 228 if (attrName == SVGNames::kernelUnitLengthAttr)
232 return convolveMatrix->setKernelUnitLength(FloatPoint(kernelUnitLengthXC urrentValue(), kernelUnitLengthYCurrentValue())); 229 return convolveMatrix->setKernelUnitLength(FloatPoint(kernelUnitLengthXC urrentValue(), kernelUnitLengthYCurrentValue()));
233 if (attrName == SVGNames::preserveAlphaAttr) 230 if (attrName == SVGNames::preserveAlphaAttr)
234 return convolveMatrix->setPreserveAlpha(preserveAlphaCurrentValue()); 231 return convolveMatrix->setPreserveAlpha(m_preserveAlpha->currentValue()- >value());
235 232
236 ASSERT_NOT_REACHED(); 233 ASSERT_NOT_REACHED();
237 return false; 234 return false;
238 } 235 }
239 236
240 void SVGFEConvolveMatrixElement::setOrder(float x, float y) 237 void SVGFEConvolveMatrixElement::setOrder(float x, float y)
241 { 238 {
242 setOrderXBaseValue(x); 239 setOrderXBaseValue(x);
243 setOrderYBaseValue(y); 240 setOrderYBaseValue(y);
244 invalidate(); 241 invalidate();
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 if (!hasAttribute(SVGNames::divisorAttr)) { 329 if (!hasAttribute(SVGNames::divisorAttr)) {
333 for (int i = 0; i < kernelMatrixSize; ++i) 330 for (int i = 0; i < kernelMatrixSize; ++i)
334 divisorValue += kernelMatrix.at(i).value(); 331 divisorValue += kernelMatrix.at(i).value();
335 if (!divisorValue) 332 if (!divisorValue)
336 divisorValue = 1; 333 divisorValue = 1;
337 } 334 }
338 335
339 RefPtr<FilterEffect> effect = FEConvolveMatrix::create(filter, 336 RefPtr<FilterEffect> effect = FEConvolveMatrix::create(filter,
340 IntSize(orderXValue, orderYValue), divisorValue, 337 IntSize(orderXValue, orderYValue), divisorValue,
341 biasCurrentValue(), IntPoint(targetXValue, targetYValue), ed geModeCurrentValue(), 338 biasCurrentValue(), IntPoint(targetXValue, targetYValue), ed geModeCurrentValue(),
342 FloatPoint(kernelUnitLengthXValue, kernelUnitLengthYValue), preserveAlphaCurrentValue(), kernelMatrix.toFloatVector()); 339 FloatPoint(kernelUnitLengthXValue, kernelUnitLengthYValue), m_preserveAlpha->currentValue()->value(), kernelMatrix.toFloatVector());
343 effect->inputEffects().append(input1); 340 effect->inputEffects().append(input1);
344 return effect.release(); 341 return effect.release();
345 } 342 }
346 343
347 } // namespace WebCore 344 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/svg/SVGFEConvolveMatrixElement.h ('k') | Source/core/svg/SVGLength.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698