Changeset 44297 in webkit


Ignore:
Timestamp:
May 31, 2009 11:22:20 AM (15 years ago)
Author:
krit@webkit.org
Message:

2009-05-31 Dirk Schulze <krit@webkit.org>

Reviewed by Nikolas Zimmermann.

WebKit needs cross-platform filter system
https://bugs.webkit.org/show_bug.cgi?id=19991

Adding 'in1' attribute support for <feFlood>, as specified in SVG 1.1.
This change helps creating test cases, once filters are activated.

  • svg/SVGFEFloodElement.cpp: (WebCore::SVGFEFloodElement::SVGFEFloodElement): (WebCore::SVGFEFloodElement::parseMappedAttribute): (WebCore::SVGFEFloodElement::build):
  • svg/SVGFEFloodElement.h:
  • svg/SVGFEFloodElement.idl:
  • svg/graphics/filters/SVGFEFlood.cpp: (WebCore::FEFlood::FEFlood): (WebCore::FEFlood::create):
  • svg/graphics/filters/SVGFEFlood.h:
Location:
trunk/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r44296 r44297  
     12009-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
    1222009-05-31  Dirk Schulze  <krit@webkit.org>
    223
  • trunk/WebCore/svg/SVGFEFloodElement.cpp

    r44253 r44297  
    2626#include "SVGFEFloodElement.h"
    2727
    28 #include "Attr.h"
    29 #include "Document.h"
     28#include "MappedAttribute.h"
    3029#include "RenderStyle.h"
    31 #include "SVGNames.h"
    3230#include "SVGRenderStyle.h"
    3331#include "SVGResourceFilter.h"
     
    3735SVGFEFloodElement::SVGFEFloodElement(const QualifiedName& tagName, Document* doc)
    3836    : SVGFilterPrimitiveStandardAttributes(tagName, doc)
     37    , m_in1(this, SVGNames::inAttr)
    3938    , m_filterEffect(0)
    4039{
     
    4746void SVGFEFloodElement::parseMappedAttribute(MappedAttribute* attr)
    4847{
    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);
    5053}
    5154
     
    5861bool SVGFEFloodElement::build(FilterBuilder* builder)
    5962{
     63    FilterEffect* input = builder->getEffectById(in1());
     64
     65    if(!input)
     66        return false;
     67
    6068    RefPtr<RenderStyle> filterStyle = styleForRenderer();
    6169
     
    6371    float opacity = filterStyle->svgStyle()->floodOpacity();
    6472
    65     builder->add(result(), FEFlood::create(color, opacity));
     73    builder->add(result(), FEFlood::create(input, color, opacity));
    6674   
    6775    return true;
  • trunk/WebCore/svg/SVGFEFloodElement.h

    r44253 r44297  
    2525
    2626#if ENABLE(SVG) && ENABLE(FILTERS)
     27#include "SVGFEFlood.h"
    2728#include "SVGFilterPrimitiveStandardAttributes.h"
    28 #include "SVGFEFlood.h"
    2929
    3030namespace WebCore
     
    4141
    4242    private:
     43        ANIMATED_PROPERTY_DECLARATIONS(SVGFEFloodElement, SVGNames::feFloodTagString, SVGNames::inAttrString, String, In1, in1)
     44
    4345        mutable RefPtr<FEFlood> m_filterEffect;
    4446    };
  • trunk/WebCore/svg/SVGFEFloodElement.idl

    r44253 r44297  
    2626module svg {
    2727
    28     interface [Conditional=SVG&FILTERS] SVGFEFloodElement : SVGElement,
     28    interface [Conditional=SVG&FILTERS, GenerateConstructor] SVGFEFloodElement : SVGElement,
    2929                                                    SVGFilterPrimitiveStandardAttributes {
     30
     31        readonly attribute SVGAnimatedString      in1;
     32
    3033    };
    31 
    3234}
  • trunk/WebCore/svg/graphics/filters/SVGFEFlood.cpp

    r44296 r44297  
    2929namespace WebCore {
    3030
    31 FEFlood::FEFlood(const Color& floodColor, const float& floodOpacity)
     31FEFlood::FEFlood(FilterEffect* in, const Color& floodColor, const float& floodOpacity)
    3232    : FilterEffect()
    3333    , m_floodColor(floodColor)
    3434    , m_floodOpacity(floodOpacity)
     35    , m_in(in)
    3536{
    3637}
    3738
    38 PassRefPtr<FEFlood> FEFlood::create(const Color& floodColor, const float& floodOpacity)
     39PassRefPtr<FEFlood> FEFlood::create(FilterEffect* in, const Color& floodColor, const float& floodOpacity)
    3940{
    40     return adoptRef(new FEFlood(floodColor, floodOpacity));
     41    return adoptRef(new FEFlood(in, floodColor, floodOpacity));
    4142}
    4243
  • trunk/WebCore/svg/graphics/filters/SVGFEFlood.h

    r44296 r44297  
    3232    class FEFlood : public FilterEffect {
    3333    public:
    34         static PassRefPtr<FEFlood> create(const Color&, const float&);
     34        static PassRefPtr<FEFlood> create(FilterEffect*, const Color&, const float&);
    3535
    3636        Color floodColor() const;
     
    4545
    4646    private:
    47         FEFlood(const Color&, const float&);
     47        FEFlood(FilterEffect*, const Color&, const float&);
    4848
     49        RefPtr<FilterEffect> m_in;
    4950        Color m_floodColor;
    5051        float m_floodOpacity;
Note: See TracChangeset for help on using the changeset viewer.