Changeset 44297 in webkit
- Timestamp:
- May 31, 2009 11:22:20 AM (15 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r44296 r44297 1 2009-05-31 Dirk Schulze <krit@webkit.org> 2 3 Reviewed by Nikolas Zimmermann. 4 5 WebKit needs cross-platform filter system 6 [https://bugs.webkit.org/show_bug.cgi?id=19991] 7 8 Adding 'in1' attribute support for <feFlood>, as specified in SVG 1.1. 9 This change helps creating test cases, once filters are activated. 10 11 * svg/SVGFEFloodElement.cpp: 12 (WebCore::SVGFEFloodElement::SVGFEFloodElement): 13 (WebCore::SVGFEFloodElement::parseMappedAttribute): 14 (WebCore::SVGFEFloodElement::build): 15 * svg/SVGFEFloodElement.h: 16 * svg/SVGFEFloodElement.idl: 17 * svg/graphics/filters/SVGFEFlood.cpp: 18 (WebCore::FEFlood::FEFlood): 19 (WebCore::FEFlood::create): 20 * svg/graphics/filters/SVGFEFlood.h: 21 1 22 2009-05-31 Dirk Schulze <krit@webkit.org> 2 23 -
trunk/WebCore/svg/SVGFEFloodElement.cpp
r44253 r44297 26 26 #include "SVGFEFloodElement.h" 27 27 28 #include "Attr.h" 29 #include "Document.h" 28 #include "MappedAttribute.h" 30 29 #include "RenderStyle.h" 31 #include "SVGNames.h"32 30 #include "SVGRenderStyle.h" 33 31 #include "SVGResourceFilter.h" … … 37 35 SVGFEFloodElement::SVGFEFloodElement(const QualifiedName& tagName, Document* doc) 38 36 : SVGFilterPrimitiveStandardAttributes(tagName, doc) 37 , m_in1(this, SVGNames::inAttr) 39 38 , m_filterEffect(0) 40 39 { … … 47 46 void SVGFEFloodElement::parseMappedAttribute(MappedAttribute* attr) 48 47 { 49 SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr); 48 const String& value = attr->value(); 49 if (attr->name() == SVGNames::inAttr) 50 setIn1BaseValue(value); 51 else 52 SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr); 50 53 } 51 54 … … 58 61 bool SVGFEFloodElement::build(FilterBuilder* builder) 59 62 { 63 FilterEffect* input = builder->getEffectById(in1()); 64 65 if(!input) 66 return false; 67 60 68 RefPtr<RenderStyle> filterStyle = styleForRenderer(); 61 69 … … 63 71 float opacity = filterStyle->svgStyle()->floodOpacity(); 64 72 65 builder->add(result(), FEFlood::create( color, opacity));73 builder->add(result(), FEFlood::create(input, color, opacity)); 66 74 67 75 return true; -
trunk/WebCore/svg/SVGFEFloodElement.h
r44253 r44297 25 25 26 26 #if ENABLE(SVG) && ENABLE(FILTERS) 27 #include "SVGFEFlood.h" 27 28 #include "SVGFilterPrimitiveStandardAttributes.h" 28 #include "SVGFEFlood.h"29 29 30 30 namespace WebCore … … 41 41 42 42 private: 43 ANIMATED_PROPERTY_DECLARATIONS(SVGFEFloodElement, SVGNames::feFloodTagString, SVGNames::inAttrString, String, In1, in1) 44 43 45 mutable RefPtr<FEFlood> m_filterEffect; 44 46 }; -
trunk/WebCore/svg/SVGFEFloodElement.idl
r44253 r44297 26 26 module svg { 27 27 28 interface [Conditional=SVG&FILTERS ] SVGFEFloodElement : SVGElement,28 interface [Conditional=SVG&FILTERS, GenerateConstructor] SVGFEFloodElement : SVGElement, 29 29 SVGFilterPrimitiveStandardAttributes { 30 31 readonly attribute SVGAnimatedString in1; 32 30 33 }; 31 32 34 } -
trunk/WebCore/svg/graphics/filters/SVGFEFlood.cpp
r44296 r44297 29 29 namespace WebCore { 30 30 31 FEFlood::FEFlood( const Color& floodColor, const float& floodOpacity)31 FEFlood::FEFlood(FilterEffect* in, const Color& floodColor, const float& floodOpacity) 32 32 : FilterEffect() 33 33 , m_floodColor(floodColor) 34 34 , m_floodOpacity(floodOpacity) 35 , m_in(in) 35 36 { 36 37 } 37 38 38 PassRefPtr<FEFlood> FEFlood::create( const Color& floodColor, const float& floodOpacity)39 PassRefPtr<FEFlood> FEFlood::create(FilterEffect* in, const Color& floodColor, const float& floodOpacity) 39 40 { 40 return adoptRef(new FEFlood( floodColor, floodOpacity));41 return adoptRef(new FEFlood(in, floodColor, floodOpacity)); 41 42 } 42 43 -
trunk/WebCore/svg/graphics/filters/SVGFEFlood.h
r44296 r44297 32 32 class FEFlood : public FilterEffect { 33 33 public: 34 static PassRefPtr<FEFlood> create( const Color&, const float&);34 static PassRefPtr<FEFlood> create(FilterEffect*, const Color&, const float&); 35 35 36 36 Color floodColor() const; … … 45 45 46 46 private: 47 FEFlood( const Color&, const float&);47 FEFlood(FilterEffect*, const Color&, const float&); 48 48 49 RefPtr<FilterEffect> m_in; 49 50 Color m_floodColor; 50 51 float m_floodOpacity;
Note: See TracChangeset
for help on using the changeset viewer.