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

Side by Side Diff: Source/core/svg/SVGFESpecularLightingElement.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
« no previous file with comments | « Source/core/svg/SVGFESpecularLightingElement.h ('k') | Source/core/svg/SVGFETileElement.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) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
4 * Copyright (C) 2005 Oliver Hunt <oliver@nerget.com> 4 * Copyright (C) 2005 Oliver Hunt <oliver@nerget.com>
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 14 matching lines...) Expand all
25 25
26 #include "platform/graphics/filters/FilterEffect.h" 26 #include "platform/graphics/filters/FilterEffect.h"
27 #include "core/rendering/style/RenderStyle.h" 27 #include "core/rendering/style/RenderStyle.h"
28 #include "core/svg/SVGElementInstance.h" 28 #include "core/svg/SVGElementInstance.h"
29 #include "core/svg/SVGParserUtilities.h" 29 #include "core/svg/SVGParserUtilities.h"
30 #include "core/svg/graphics/filters/SVGFilterBuilder.h" 30 #include "core/svg/graphics/filters/SVGFilterBuilder.h"
31 31
32 namespace WebCore { 32 namespace WebCore {
33 33
34 // Animated property definitions 34 // Animated property definitions
35 DEFINE_ANIMATED_STRING(SVGFESpecularLightingElement, SVGNames::inAttr, In1, in1)
36 35
37 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFESpecularLightingElement) 36 BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGFESpecularLightingElement)
38 REGISTER_LOCAL_ANIMATED_PROPERTY(in1)
39 REGISTER_PARENT_ANIMATED_PROPERTIES(SVGFilterPrimitiveStandardAttributes) 37 REGISTER_PARENT_ANIMATED_PROPERTIES(SVGFilterPrimitiveStandardAttributes)
40 END_REGISTER_ANIMATED_PROPERTIES 38 END_REGISTER_ANIMATED_PROPERTIES
41 39
42 inline SVGFESpecularLightingElement::SVGFESpecularLightingElement(Document& docu ment) 40 inline SVGFESpecularLightingElement::SVGFESpecularLightingElement(Document& docu ment)
43 : SVGFilterPrimitiveStandardAttributes(SVGNames::feSpecularLightingTag, docu ment) 41 : SVGFilterPrimitiveStandardAttributes(SVGNames::feSpecularLightingTag, docu ment)
44 , m_specularConstant(SVGAnimatedNumber::create(this, SVGNames::specularConst antAttr, SVGNumber::create(1))) 42 , m_specularConstant(SVGAnimatedNumber::create(this, SVGNames::specularConst antAttr, SVGNumber::create(1)))
45 , m_specularExponent(SVGAnimatedNumber::create(this, SVGNames::specularExpon entAttr, SVGNumber::create(1))) 43 , m_specularExponent(SVGAnimatedNumber::create(this, SVGNames::specularExpon entAttr, SVGNumber::create(1)))
46 , m_surfaceScale(SVGAnimatedNumber::create(this, SVGNames::surfaceScaleAttr, SVGNumber::create(1))) 44 , m_surfaceScale(SVGAnimatedNumber::create(this, SVGNames::surfaceScaleAttr, SVGNumber::create(1)))
47 , m_kernelUnitLength(SVGAnimatedNumberOptionalNumber::create(this, SVGNames: :surfaceScaleAttr)) 45 , m_kernelUnitLength(SVGAnimatedNumberOptionalNumber::create(this, SVGNames: :surfaceScaleAttr))
46 , m_in1(SVGAnimatedString::create(this, SVGNames::inAttr, SVGString::create( )))
48 { 47 {
49 ScriptWrappable::init(this); 48 ScriptWrappable::init(this);
50 49
51 addToPropertyMap(m_specularConstant); 50 addToPropertyMap(m_specularConstant);
52 addToPropertyMap(m_specularExponent); 51 addToPropertyMap(m_specularExponent);
53 addToPropertyMap(m_surfaceScale); 52 addToPropertyMap(m_surfaceScale);
54 addToPropertyMap(m_kernelUnitLength); 53 addToPropertyMap(m_kernelUnitLength);
54 addToPropertyMap(m_in1);
55 registerAnimatedPropertiesForSVGFESpecularLightingElement(); 55 registerAnimatedPropertiesForSVGFESpecularLightingElement();
56 } 56 }
57 57
58 PassRefPtr<SVGFESpecularLightingElement> SVGFESpecularLightingElement::create(Do cument& document) 58 PassRefPtr<SVGFESpecularLightingElement> SVGFESpecularLightingElement::create(Do cument& document)
59 { 59 {
60 return adoptRef(new SVGFESpecularLightingElement(document)); 60 return adoptRef(new SVGFESpecularLightingElement(document));
61 } 61 }
62 62
63 bool SVGFESpecularLightingElement::isSupportedAttribute(const QualifiedName& att rName) 63 bool SVGFESpecularLightingElement::isSupportedAttribute(const QualifiedName& att rName)
64 { 64 {
65 DEFINE_STATIC_LOCAL(HashSet<QualifiedName>, supportedAttributes, ()); 65 DEFINE_STATIC_LOCAL(HashSet<QualifiedName>, supportedAttributes, ());
66 if (supportedAttributes.isEmpty()) { 66 if (supportedAttributes.isEmpty()) {
67 supportedAttributes.add(SVGNames::inAttr); 67 supportedAttributes.add(SVGNames::inAttr);
68 supportedAttributes.add(SVGNames::specularConstantAttr); 68 supportedAttributes.add(SVGNames::specularConstantAttr);
69 supportedAttributes.add(SVGNames::specularExponentAttr); 69 supportedAttributes.add(SVGNames::specularExponentAttr);
70 supportedAttributes.add(SVGNames::surfaceScaleAttr); 70 supportedAttributes.add(SVGNames::surfaceScaleAttr);
71 supportedAttributes.add(SVGNames::kernelUnitLengthAttr); 71 supportedAttributes.add(SVGNames::kernelUnitLengthAttr);
72 } 72 }
73 return supportedAttributes.contains<SVGAttributeHashTranslator>(attrName); 73 return supportedAttributes.contains<SVGAttributeHashTranslator>(attrName);
74 } 74 }
75 75
76 void SVGFESpecularLightingElement::parseAttribute(const QualifiedName& name, con st AtomicString& value) 76 void SVGFESpecularLightingElement::parseAttribute(const QualifiedName& name, con st AtomicString& value)
77 { 77 {
78 if (!isSupportedAttribute(name)) { 78 if (!isSupportedAttribute(name)) {
79 SVGFilterPrimitiveStandardAttributes::parseAttribute(name, value); 79 SVGFilterPrimitiveStandardAttributes::parseAttribute(name, value);
80 return; 80 return;
81 } 81 }
82 82
83 if (name == SVGNames::inAttr) {
84 setIn1BaseValue(value);
85 return;
86 }
87
88 SVGParsingError parseError = NoError; 83 SVGParsingError parseError = NoError;
89 84
90 if (name == SVGNames::surfaceScaleAttr) 85 if (name == SVGNames::inAttr)
86 m_in1->setBaseValueAsString(value, parseError);
87 else if (name == SVGNames::surfaceScaleAttr)
91 m_surfaceScale->setBaseValueAsString(value, parseError); 88 m_surfaceScale->setBaseValueAsString(value, parseError);
92 else if (name == SVGNames::specularConstantAttr) 89 else if (name == SVGNames::specularConstantAttr)
93 m_specularConstant->setBaseValueAsString(value, parseError); 90 m_specularConstant->setBaseValueAsString(value, parseError);
94 else if (name == SVGNames::specularExponentAttr) 91 else if (name == SVGNames::specularExponentAttr)
95 m_specularExponent->setBaseValueAsString(value, parseError); 92 m_specularExponent->setBaseValueAsString(value, parseError);
96 else if (name == SVGNames::kernelUnitLengthAttr) 93 else if (name == SVGNames::kernelUnitLengthAttr)
97 m_kernelUnitLength->setBaseValueAsString(value, parseError); 94 m_kernelUnitLength->setBaseValueAsString(value, parseError);
98 else 95 else
99 ASSERT_NOT_REACHED(); 96 ASSERT_NOT_REACHED();
100 97
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 { 174 {
178 if (SVGFELightElement::findLightElement(this) != lightElement) 175 if (SVGFELightElement::findLightElement(this) != lightElement)
179 return; 176 return;
180 177
181 // The light element has different attribute names so attrName can identify the requested attribute. 178 // The light element has different attribute names so attrName can identify the requested attribute.
182 primitiveAttributeChanged(attrName); 179 primitiveAttributeChanged(attrName);
183 } 180 }
184 181
185 PassRefPtr<FilterEffect> SVGFESpecularLightingElement::build(SVGFilterBuilder* f ilterBuilder, Filter* filter) 182 PassRefPtr<FilterEffect> SVGFESpecularLightingElement::build(SVGFilterBuilder* f ilterBuilder, Filter* filter)
186 { 183 {
187 FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(in1CurrentV alue())); 184 FilterEffect* input1 = filterBuilder->getEffectById(AtomicString(m_in1->curr entValue()->value()));
188 185
189 if (!input1) 186 if (!input1)
190 return 0; 187 return 0;
191 188
192 RefPtr<LightSource> lightSource = SVGFELightElement::findLightSource(this); 189 RefPtr<LightSource> lightSource = SVGFELightElement::findLightSource(this);
193 if (!lightSource) 190 if (!lightSource)
194 return 0; 191 return 0;
195 192
196 RenderObject* renderer = this->renderer(); 193 RenderObject* renderer = this->renderer();
197 if (!renderer) 194 if (!renderer)
198 return 0; 195 return 0;
199 196
200 ASSERT(renderer->style()); 197 ASSERT(renderer->style());
201 Color color = renderer->style()->svgStyle()->lightingColor(); 198 Color color = renderer->style()->svgStyle()->lightingColor();
202 199
203 RefPtr<FilterEffect> effect = FESpecularLighting::create(filter, color, m_su rfaceScale->currentValue()->value(), m_specularConstant->currentValue()->value() , 200 RefPtr<FilterEffect> effect = FESpecularLighting::create(filter, color, m_su rfaceScale->currentValue()->value(), m_specularConstant->currentValue()->value() ,
204 m_specularExponent->currentValue()->value(), kernelUnitLengthX()->curren tValue()->value(), kernelUnitLengthY()->currentValue()->value(), lightSource.rel ease()); 201 m_specularExponent->currentValue()->value(), kernelUnitLengthX()->curren tValue()->value(), kernelUnitLengthY()->currentValue()->value(), lightSource.rel ease());
205 effect->inputEffects().append(input1); 202 effect->inputEffects().append(input1);
206 return effect.release(); 203 return effect.release();
207 } 204 }
208 205
209 } 206 }
OLDNEW
« no previous file with comments | « Source/core/svg/SVGFESpecularLightingElement.h ('k') | Source/core/svg/SVGFETileElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698