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

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

Issue 148173018: [SVG] SVGAnimatedString{,List} migration to new SVG property impl. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: remove debug print Created 6 years, 10 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) 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 15 matching lines...) Expand all
26 #include "core/svg/SVGElementInstance.h" 26 #include "core/svg/SVGElementInstance.h"
27 #include "core/svg/SVGParserUtilities.h" 27 #include "core/svg/SVGParserUtilities.h"
28 #include "core/svg/graphics/filters/SVGFilterBuilder.h" 28 #include "core/svg/graphics/filters/SVGFilterBuilder.h"
29 #include "platform/geometry/FloatPoint.h" 29 #include "platform/geometry/FloatPoint.h"
30 #include "platform/geometry/IntPoint.h" 30 #include "platform/geometry/IntPoint.h"
31 #include "platform/geometry/IntSize.h" 31 #include "platform/geometry/IntSize.h"
32 32
33 namespace WebCore { 33 namespace WebCore {
34 34
35 // Animated property definitions 35 // Animated property definitions
36 DEFINE_ANIMATED_STRING(SVGFEConvolveMatrixElement, SVGNames::inAttr, In1, in1)
37 DEFINE_ANIMATED_INTEGER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames:: orderAttr, orderXIdentifier(), OrderX, orderX) 36 DEFINE_ANIMATED_INTEGER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames:: orderAttr, orderXIdentifier(), OrderX, orderX)
38 DEFINE_ANIMATED_INTEGER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames:: orderAttr, orderYIdentifier(), OrderY, orderY) 37 DEFINE_ANIMATED_INTEGER_MULTIPLE_WRAPPERS(SVGFEConvolveMatrixElement, SVGNames:: orderAttr, orderYIdentifier(), OrderY, orderY)
39 DEFINE_ANIMATED_INTEGER(SVGFEConvolveMatrixElement, SVGNames::targetXAttr, Targe tX, targetX) 38 DEFINE_ANIMATED_INTEGER(SVGFEConvolveMatrixElement, SVGNames::targetXAttr, Targe tX, targetX)
40 DEFINE_ANIMATED_INTEGER(SVGFEConvolveMatrixElement, SVGNames::targetYAttr, Targe tY, targetY) 39 DEFINE_ANIMATED_INTEGER(SVGFEConvolveMatrixElement, SVGNames::targetYAttr, Targe tY, targetY)
41 DEFINE_ANIMATED_ENUMERATION(SVGFEConvolveMatrixElement, SVGNames::edgeModeAttr, EdgeMode, edgeMode, EdgeModeType) 40 DEFINE_ANIMATED_ENUMERATION(SVGFEConvolveMatrixElement, SVGNames::edgeModeAttr, EdgeMode, edgeMode, EdgeModeType)
42 41
43 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFEConvolveMatrixElement) 42 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFEConvolveMatrixElement)
44 REGISTER_LOCAL_ANIMATED_PROPERTY(in1)
45 REGISTER_LOCAL_ANIMATED_PROPERTY(orderX) 43 REGISTER_LOCAL_ANIMATED_PROPERTY(orderX)
46 REGISTER_LOCAL_ANIMATED_PROPERTY(orderY) 44 REGISTER_LOCAL_ANIMATED_PROPERTY(orderY)
47 REGISTER_LOCAL_ANIMATED_PROPERTY(targetX) 45 REGISTER_LOCAL_ANIMATED_PROPERTY(targetX)
48 REGISTER_LOCAL_ANIMATED_PROPERTY(targetY) 46 REGISTER_LOCAL_ANIMATED_PROPERTY(targetY)
49 REGISTER_LOCAL_ANIMATED_PROPERTY(edgeMode) 47 REGISTER_LOCAL_ANIMATED_PROPERTY(edgeMode)
50 REGISTER_PARENT_ANIMATED_PROPERTIES(SVGFilterPrimitiveStandardAttributes) 48 REGISTER_PARENT_ANIMATED_PROPERTIES(SVGFilterPrimitiveStandardAttributes)
51 END_REGISTER_ANIMATED_PROPERTIES 49 END_REGISTER_ANIMATED_PROPERTIES
52 50
53 inline SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement(Document& document ) 51 inline SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement(Document& document )
54 : SVGFilterPrimitiveStandardAttributes(SVGNames::feConvolveMatrixTag, docume nt) 52 : SVGFilterPrimitiveStandardAttributes(SVGNames::feConvolveMatrixTag, docume nt)
55 , m_preserveAlpha(SVGAnimatedBoolean::create(this, SVGNames::preserveAlphaAt tr, SVGBoolean::create())) 53 , m_preserveAlpha(SVGAnimatedBoolean::create(this, SVGNames::preserveAlphaAt tr, SVGBoolean::create()))
56 , m_divisor(SVGAnimatedNumber::create(this, SVGNames::divisorAttr, SVGNumber ::create())) 54 , m_divisor(SVGAnimatedNumber::create(this, SVGNames::divisorAttr, SVGNumber ::create()))
57 , m_bias(SVGAnimatedNumber::create(this, SVGNames::biasAttr, SVGNumber::crea te())) 55 , m_bias(SVGAnimatedNumber::create(this, SVGNames::biasAttr, SVGNumber::crea te()))
58 , m_kernelUnitLength(SVGAnimatedNumberOptionalNumber::create(this, SVGNames: :kernelUnitLengthAttr)) 56 , m_kernelUnitLength(SVGAnimatedNumberOptionalNumber::create(this, SVGNames: :kernelUnitLengthAttr))
59 , m_kernelMatrix(SVGAnimatedNumberList::create(this, SVGNames::kernelMatrixA ttr, SVGNumberList::create())) 57 , m_kernelMatrix(SVGAnimatedNumberList::create(this, SVGNames::kernelMatrixA ttr, SVGNumberList::create()))
58 , m_in1(SVGAnimatedString::create(this, SVGNames::inAttr, SVGString::create( )))
60 , m_edgeMode(EDGEMODE_DUPLICATE) 59 , m_edgeMode(EDGEMODE_DUPLICATE)
61 { 60 {
62 ScriptWrappable::init(this); 61 ScriptWrappable::init(this);
63 62
64 addToPropertyMap(m_preserveAlpha); 63 addToPropertyMap(m_preserveAlpha);
65 addToPropertyMap(m_divisor); 64 addToPropertyMap(m_divisor);
66 addToPropertyMap(m_bias); 65 addToPropertyMap(m_bias);
67 addToPropertyMap(m_kernelUnitLength); 66 addToPropertyMap(m_kernelUnitLength);
68 addToPropertyMap(m_kernelMatrix); 67 addToPropertyMap(m_kernelMatrix);
68 addToPropertyMap(m_in1);
69 registerAnimatedPropertiesForSVGFEConvolveMatrixElement(); 69 registerAnimatedPropertiesForSVGFEConvolveMatrixElement();
70 } 70 }
71 71
72 PassRefPtr<SVGFEConvolveMatrixElement> SVGFEConvolveMatrixElement::create(Docume nt& document) 72 PassRefPtr<SVGFEConvolveMatrixElement> SVGFEConvolveMatrixElement::create(Docume nt& document)
73 { 73 {
74 return adoptRef(new SVGFEConvolveMatrixElement(document)); 74 return adoptRef(new SVGFEConvolveMatrixElement(document));
75 } 75 }
76 76
77 const AtomicString& SVGFEConvolveMatrixElement::orderXIdentifier() 77 const AtomicString& SVGFEConvolveMatrixElement::orderXIdentifier()
78 { 78 {
(...skipping 25 matching lines...) Expand all
104 return supportedAttributes.contains<SVGAttributeHashTranslator>(attrName); 104 return supportedAttributes.contains<SVGAttributeHashTranslator>(attrName);
105 } 105 }
106 106
107 void SVGFEConvolveMatrixElement::parseAttribute(const QualifiedName& name, const AtomicString& value) 107 void SVGFEConvolveMatrixElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
108 { 108 {
109 if (!isSupportedAttribute(name)) { 109 if (!isSupportedAttribute(name)) {
110 SVGFilterPrimitiveStandardAttributes::parseAttribute(name, value); 110 SVGFilterPrimitiveStandardAttributes::parseAttribute(name, value);
111 return; 111 return;
112 } 112 }
113 113
114 if (name == SVGNames::inAttr) {
115 setIn1BaseValue(value);
116 return;
117 }
118
119 if (name == SVGNames::orderAttr) { 114 if (name == SVGNames::orderAttr) {
120 float x, y; 115 float x, y;
121 if (parseNumberOptionalNumber(value, x, y) && x >= 1 && y >= 1) { 116 if (parseNumberOptionalNumber(value, x, y) && x >= 1 && y >= 1) {
122 setOrderXBaseValue(x); 117 setOrderXBaseValue(x);
123 setOrderYBaseValue(y); 118 setOrderYBaseValue(y);
124 } else { 119 } else {
125 document().accessSVGExtensions()->reportWarning( 120 document().accessSVGExtensions()->reportWarning(
126 "feConvolveMatrix: problem parsing order=\"" + value 121 "feConvolveMatrix: problem parsing order=\"" + value
127 + "\". Filtered element will not be displayed."); 122 + "\". Filtered element will not be displayed.");
128 } 123 }
(...skipping 16 matching lines...) Expand all
145 return; 140 return;
146 } 141 }
147 142
148 if (name == SVGNames::targetYAttr) { 143 if (name == SVGNames::targetYAttr) {
149 setTargetYBaseValue(value.string().toUIntStrict()); 144 setTargetYBaseValue(value.string().toUIntStrict());
150 return; 145 return;
151 } 146 }
152 147
153 SVGParsingError parseError = NoError; 148 SVGParsingError parseError = NoError;
154 149
155 if (name == SVGNames::divisorAttr) 150 if (name == SVGNames::inAttr)
151 m_in1->setBaseValueAsString(value, parseError);
152 else if (name == SVGNames::divisorAttr)
156 m_divisor->setBaseValueAsString(value, parseError); 153 m_divisor->setBaseValueAsString(value, parseError);
157 else if (name == SVGNames::biasAttr) 154 else if (name == SVGNames::biasAttr)
158 m_bias->setBaseValueAsString(value, parseError); 155 m_bias->setBaseValueAsString(value, parseError);
159 else if (name == SVGNames::kernelUnitLengthAttr) 156 else if (name == SVGNames::kernelUnitLengthAttr)
160 m_kernelUnitLength->setBaseValueAsString(value, parseError); 157 m_kernelUnitLength->setBaseValueAsString(value, parseError);
161 else if (name == SVGNames::kernelMatrixAttr) 158 else if (name == SVGNames::kernelMatrixAttr)
162 m_kernelMatrix->setBaseValueAsString(value, parseError); 159 m_kernelMatrix->setBaseValueAsString(value, parseError);
163 else if (name == SVGNames::preserveAlphaAttr) 160 else if (name == SVGNames::preserveAlphaAttr)
164 m_preserveAlpha->setBaseValueAsString(value, parseError); 161 m_preserveAlpha->setBaseValueAsString(value, parseError);
165 else 162 else
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 || attrName == SVGNames::kernelMatrixAttr) { 226 || attrName == SVGNames::kernelMatrixAttr) {
230 invalidate(); 227 invalidate();
231 return; 228 return;
232 } 229 }
233 230
234 ASSERT_NOT_REACHED(); 231 ASSERT_NOT_REACHED();
235 } 232 }
236 233
237 PassRefPtr<FilterEffect> SVGFEConvolveMatrixElement::build(SVGFilterBuilder* fil terBuilder, Filter* filter) 234 PassRefPtr<FilterEffect> SVGFEConvolveMatrixElement::build(SVGFilterBuilder* fil terBuilder, Filter* filter)
238 { 235 {
239 FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(in1CurrentV alue())); 236 FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->curr entValue()->value()));
240 237
241 if (!input1) 238 if (!input1)
242 return 0; 239 return 0;
243 240
244 int orderXValue = orderXCurrentValue(); 241 int orderXValue = orderXCurrentValue();
245 int orderYValue = orderYCurrentValue(); 242 int orderYValue = orderYCurrentValue();
246 if (!hasAttribute(SVGNames::orderAttr)) { 243 if (!hasAttribute(SVGNames::orderAttr)) {
247 orderXValue = 3; 244 orderXValue = 3;
248 orderYValue = 3; 245 orderYValue = 3;
249 } 246 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 289
293 RefPtr<FilterEffect> effect = FEConvolveMatrix::create(filter, 290 RefPtr<FilterEffect> effect = FEConvolveMatrix::create(filter,
294 IntSize(orderXValue, orderYValue), divisorValue, 291 IntSize(orderXValue, orderYValue), divisorValue,
295 m_bias->currentValue()->value(), IntPoint(targetXValue, targ etYValue), edgeModeCurrentValue(), 292 m_bias->currentValue()->value(), IntPoint(targetXValue, targ etYValue), edgeModeCurrentValue(),
296 FloatPoint(kernelUnitLengthXValue, kernelUnitLengthYValue), m_preserveAlpha->currentValue()->value(), m_kernelMatrix->currentValue()->toFloa tVector()); 293 FloatPoint(kernelUnitLengthXValue, kernelUnitLengthYValue), m_preserveAlpha->currentValue()->value(), m_kernelMatrix->currentValue()->toFloa tVector());
297 effect->inputEffects().append(input1); 294 effect->inputEffects().append(input1);
298 return effect.release(); 295 return effect.release();
299 } 296 }
300 297
301 } // namespace WebCore 298 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/svg/SVGFEConvolveMatrixElement.h ('k') | Source/core/svg/SVGFEDiffuseLightingElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698