Changeset 34971 in webkit


Ignore:
Timestamp:
Jul 2, 2008 10:55:50 PM (16 years ago)
Author:
oliver@apple.com
Message:

2008-07-01 Alex Mathews <possessedpenguinbob@gmail.com>

Reviewed by Oliver Hunt.

Renaming of class SVGFEBlend to FEBlend as well as removing
a little bit of antiquated code. This includes the removal of
SVGFEBlendCg.mm; the feBlend element will now no longer
render.

  • WebCore.xcodeproj/project.pbxproj:
  • svg/FilterBuilder.h: (WebCore::FilterBuilder::add): (WebCore::FilterBuilder::getEffectById):
  • svg/SVGFEBlendElement.cpp: (WebCore::SVGFEBlendElement::SVGFEBlendElement): (WebCore::SVGFEBlendElement::parseMappedAttribute): (WebCore::SVGFEBlendElement::filterEffect): (WebCore::SVGFEBlendElement::build):
  • svg/SVGFEBlendElement.h:
  • svg/SVGFilterPrimitiveStandardAttributes.h:
  • svg/graphics/filters/SVGFEBlend.cpp: (WebCore::FEBlend::FEBlend): (WebCore::FEBlend::create): (WebCore::FEBlend::in2): (WebCore::FEBlend::setIn2): (WebCore::FEBlend::blendMode): (WebCore::FEBlend::setBlendMode): (WebCore::FEBlend::apply): (WebCore::FEBlend::dump):
  • svg/graphics/filters/SVGFEBlend.h: (WebCore::):
  • svg/graphics/filters/cg/SVGFEBlendCg.mm: Removed.
Location:
trunk/WebCore
Files:
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r34963 r34971  
     12008-07-01  Alex Mathews  <possessedpenguinbob@gmail.com>
     2
     3        Reviewed by Oliver Hunt.
     4
     5        Renaming of class SVGFEBlend to FEBlend as well as removing
     6        a little bit of antiquated code. This includes the removal of
     7        SVGFEBlendCg.mm; the feBlend element will now no longer
     8        render.
     9
     10        * WebCore.xcodeproj/project.pbxproj:
     11        * svg/FilterBuilder.h:
     12        (WebCore::FilterBuilder::add):
     13        (WebCore::FilterBuilder::getEffectById):
     14        * svg/SVGFEBlendElement.cpp:
     15        (WebCore::SVGFEBlendElement::SVGFEBlendElement):
     16        (WebCore::SVGFEBlendElement::parseMappedAttribute):
     17        (WebCore::SVGFEBlendElement::filterEffect):
     18        (WebCore::SVGFEBlendElement::build):
     19        * svg/SVGFEBlendElement.h:
     20        * svg/SVGFilterPrimitiveStandardAttributes.h:
     21        * svg/graphics/filters/SVGFEBlend.cpp:
     22        (WebCore::FEBlend::FEBlend):
     23        (WebCore::FEBlend::create):
     24        (WebCore::FEBlend::in2):
     25        (WebCore::FEBlend::setIn2):
     26        (WebCore::FEBlend::blendMode):
     27        (WebCore::FEBlend::setBlendMode):
     28        (WebCore::FEBlend::apply):
     29        (WebCore::FEBlend::dump):
     30        * svg/graphics/filters/SVGFEBlend.h:
     31        (WebCore::):
     32        * svg/graphics/filters/cg/SVGFEBlendCg.mm: Removed.
     33
    1342008-07-02  Beth Dakin  <bdakin@apple.com>
    235
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r34942 r34971  
    30023002                B25599350D00D8BA00BB825C /* SVGResourceFilterCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B25598990D00D8B800BB825C /* SVGResourceFilterCg.mm */; };
    30033003                B25599370D00D8BA00BB825C /* SVGResourceMaskerCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B255989B0D00D8B800BB825C /* SVGResourceMaskerCg.mm */; };
    3004                 B25599380D00D8BA00BB825C /* SVGFEBlendCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B255989E0D00D8B800BB825C /* SVGFEBlendCg.mm */; };
    30053004                B25599390D00D8BA00BB825C /* SVGFEColorMatrixCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B255989F0D00D8B800BB825C /* SVGFEColorMatrixCg.mm */; };
    30063005                B255993A0D00D8BA00BB825C /* SVGFEComponentTransferCg.mm in Sources */ = {isa = PBXBuildFile; fileRef = B25598A00D00D8B800BB825C /* SVGFEComponentTransferCg.mm */; };
     
    73547353                B25598990D00D8B800BB825C /* SVGResourceFilterCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGResourceFilterCg.mm; sourceTree = "<group>"; };
    73557354                B255989B0D00D8B800BB825C /* SVGResourceMaskerCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGResourceMaskerCg.mm; sourceTree = "<group>"; };
    7356                 B255989E0D00D8B800BB825C /* SVGFEBlendCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEBlendCg.mm; sourceTree = "<group>"; };
    73577355                B255989F0D00D8B800BB825C /* SVGFEColorMatrixCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEColorMatrixCg.mm; sourceTree = "<group>"; };
    73587356                B25598A00D00D8B800BB825C /* SVGFEComponentTransferCg.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = SVGFEComponentTransferCg.mm; sourceTree = "<group>"; };
     
    1141611414                                E415F1830D9A1A830033CE97 /* ElementTimeControl.h */,
    1141711415                                E415F10C0D9A05870033CE97 /* ElementTimeControl.idl */,
     11416                                50A5E4710E1AEF3A000A03AE /* Filter.cpp */,
    1141811417                                50A5DF730E1A13C9000A03AE /* Filter.h */,
    1141911418                                50A5DF740E1A13C9000A03AE /* FilterBuilder.h */,
     11419                                50A5E4730E1AEF84000A03AE /* FilterEffect.cpp */,
    1142011420                                50A5E20F0E1ABAF2000A03AE /* FilterEffect.h */,
    1142111421                                B22277CD0D00BF1F0071B782 /* GradientAttributes.h */,
     
    1148511485                                B22278160D00BF1F0071B782 /* SVGDefinitionSrcElement.idl */,
    1148611486                                B22278170D00BF1F0071B782 /* SVGDefsElement.cpp */,
    11487                                 50A5E4710E1AEF3A000A03AE /* Filter.cpp */,
    1148811487                                B22278180D00BF1F0071B782 /* SVGDefsElement.h */,
    11489                                 50A5E4730E1AEF84000A03AE /* FilterEffect.cpp */,
    1149011488                                B22278190D00BF1F0071B782 /* SVGDefsElement.idl */,
    1149111489                                B222781A0D00BF1F0071B782 /* SVGDescElement.cpp */,
     
    1194711945                        isa = PBXGroup;
    1194811946                        children = (
    11949                                 B255989E0D00D8B800BB825C /* SVGFEBlendCg.mm */,
    1195011947                                B255989F0D00D8B800BB825C /* SVGFEColorMatrixCg.mm */,
    1195111948                                B25598A00D00D8B800BB825C /* SVGFEComponentTransferCg.mm */,
     
    1656916566                                B22279C40D00BF220071B782 /* SVGExternalResourcesRequired.cpp in Sources */,
    1657016567                                B25599720D00D8BA00BB825C /* SVGFEBlend.cpp in Sources */,
    16571                                 B25599380D00D8BA00BB825C /* SVGFEBlendCg.mm in Sources */,
    1657216568                                B22279C70D00BF220071B782 /* SVGFEBlendElement.cpp in Sources */,
    1657316569                                B25599740D00D8BA00BB825C /* SVGFEColorMatrix.cpp in Sources */,
  • trunk/WebCore/svg/FilterBuilder.h

    r34942 r34971  
    3535    class FilterBuilder : public RefCounted<FilterBuilder> {
    3636    public:
    37         void add(const String& id, PassRefPtr<FilterEffect> effect) { m_namedEffects.set(id, effect); }
    38         FilterEffect* getEffectById(const String& id) const { return m_namedEffects.get(id).get(); }
     37        void add(const String& id, PassRefPtr<FilterEffect> effect) { m_namedEffects.set(id.impl(), effect); }
     38        FilterEffect* getEffectById(const String& id) const { return m_namedEffects.get(id.impl()).get(); }
    3939       
    4040        PassRefPtr<Filter> filter() const { return m_filter; }
    4141       
    4242    private:
    43         HashMap<String, RefPtr<FilterEffect> > m_namedEffects;
     43        HashMap<StringImpl*, RefPtr<FilterEffect> > m_namedEffects;
    4444       
    4545        RefPtr<Filter> m_filter;
  • trunk/WebCore/svg/SVGFEBlendElement.cpp

    r34656 r34971  
    3232SVGFEBlendElement::SVGFEBlendElement(const QualifiedName& tagName, Document* doc)
    3333    : SVGFilterPrimitiveStandardAttributes(tagName, doc)
    34     , m_mode(SVG_FEBLEND_MODE_NORMAL)
     34    , m_mode(FEBLEND_MODE_NORMAL)
    3535    , m_filterEffect(0)
    3636{
     
    5050    if (attr->name() == SVGNames::modeAttr) {
    5151        if (value == "normal")
    52             setModeBaseValue(SVG_FEBLEND_MODE_NORMAL);
     52            setModeBaseValue(FEBLEND_MODE_NORMAL);
    5353        else if (value == "multiply")
    54             setModeBaseValue(SVG_FEBLEND_MODE_MULTIPLY);
     54            setModeBaseValue(FEBLEND_MODE_MULTIPLY);
    5555        else if (value == "screen")
    56             setModeBaseValue(SVG_FEBLEND_MODE_SCREEN);
     56            setModeBaseValue(FEBLEND_MODE_SCREEN);
    5757        else if (value == "darken")
    58             setModeBaseValue(SVG_FEBLEND_MODE_DARKEN);
     58            setModeBaseValue(FEBLEND_MODE_DARKEN);
    5959        else if (value == "lighten")
    60             setModeBaseValue(SVG_FEBLEND_MODE_LIGHTEN);
     60            setModeBaseValue(FEBLEND_MODE_LIGHTEN);
    6161    } else if (attr->name() == SVGNames::inAttr)
    6262        setIn1BaseValue(value);
     
    6767}
    6868
    69 SVGFEBlend* SVGFEBlendElement::filterEffect(SVGResourceFilter* filter) const
     69SVGFilterEffect* SVGFEBlendElement::filterEffect(SVGResourceFilter* filter) const
    7070{
    71     if (!m_filterEffect)
    72         m_filterEffect = SVGFEBlend::create(filter);
     71    ASSERT_NOT_REACHED();
     72    return 0;
     73}
     74
     75bool SVGFEBlendElement::build(FilterBuilder* builder)
     76{
     77    FilterEffect* input1 = builder->getEffectById(in1());
     78    FilterEffect* input2 = builder->getEffectById(in2());
    7379   
    74     m_filterEffect->setBlendMode((SVGBlendModeType) mode());
    75     m_filterEffect->setIn(in1());
    76     m_filterEffect->setIn2(in2());
    77     setStandardAttributes(m_filterEffect.get());
    78     return m_filterEffect.get();
     80    if(!input1 || !input2)
     81        return false;
     82
     83    RefPtr<FilterEffect> addedEffect = FEBlend::create(input1, input2, static_cast<BlendModeType> (mode()));
     84    builder->add(result(), addedEffect.release());
     85   
     86    return true;
    7987}
    8088
  • trunk/WebCore/svg/SVGFEBlendElement.h

    r34925 r34971  
    2525
    2626#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
     27#include "FilterBuilder.h"
    2728#include "SVGFEBlend.h"
    2829#include "SVGFilterPrimitiveStandardAttributes.h"
     
    3738
    3839        virtual void parseMappedAttribute(MappedAttribute*);
    39         virtual SVGFEBlend* filterEffect(SVGResourceFilter*) const;
     40        virtual SVGFilterEffect* filterEffect(SVGResourceFilter*) const;
     41        bool build(FilterBuilder*);
    4042
    4143    protected:
     
    4749        ANIMATED_PROPERTY_DECLARATIONS(SVGFEBlendElement, int, int, Mode, mode)
    4850
    49         mutable RefPtr<SVGFEBlend> m_filterEffect;
     51        mutable RefPtr<FEBlend> m_filterEffect;
    5052    };
    5153
  • trunk/WebCore/svg/graphics/filters/SVGFEBlend.cpp

    r34656 r34971  
    2828namespace WebCore {
    2929
    30 SVGFEBlend::SVGFEBlend(SVGResourceFilter* filter)
    31     : SVGFilterEffect(filter)
    32     , m_mode(SVG_FEBLEND_MODE_UNKNOWN)
     30FEBlend::FEBlend(FilterEffect* in, FilterEffect* in2, BlendModeType mode)
     31    : FilterEffect()
     32    , m_in(in)
     33    , m_in2(in2)
     34    , m_mode(mode)
    3335{
    3436}
    3537
    36 PassRefPtr<SVGFEBlend> SVGFEBlend::create(SVGResourceFilter* filter)
     38PassRefPtr<FEBlend> FEBlend::create(FilterEffect* in, FilterEffect* in2, BlendModeType mode)
    3739{
    38     return adoptRef(new SVGFEBlend(filter));
     40    return adoptRef(new FEBlend(in, in2, mode));
    3941}
    4042
    41 String SVGFEBlend::in2() const
     43FilterEffect* FEBlend::in2() const
    4244{
    43     return m_in2;
     45    return m_in2.get();
    4446}
    4547
    46 void SVGFEBlend::setIn2(const String& in2)
     48void FEBlend::setIn2(FilterEffect* in2)
    4749{
    4850    m_in2 = in2;
    4951}
    5052
    51 SVGBlendModeType SVGFEBlend::blendMode() const
     53BlendModeType FEBlend::blendMode() const
    5254{
    5355    return m_mode;
    5456}
    5557
    56 void SVGFEBlend::setBlendMode(SVGBlendModeType mode)
     58void FEBlend::setBlendMode(BlendModeType mode)
    5759{
    5860    m_mode = mode;
    5961}
    6062
    61 static TextStream& operator<<(TextStream& ts, SVGBlendModeType t)
     63void FEBlend::apply()
    6264{
    63     switch (t)
    64     {
    65         case SVG_FEBLEND_MODE_UNKNOWN:
    66             ts << "UNKNOWN"; break;
    67         case SVG_FEBLEND_MODE_NORMAL:
    68             ts << "NORMAL"; break;
    69         case SVG_FEBLEND_MODE_MULTIPLY:
    70             ts << "MULTIPLY"; break;
    71         case SVG_FEBLEND_MODE_SCREEN:
    72             ts << "SCREEN"; break;
    73         case SVG_FEBLEND_MODE_DARKEN:
    74             ts << "DARKEN"; break;
    75         case SVG_FEBLEND_MODE_LIGHTEN:
    76             ts << "LIGHTEN"; break;
    77     }
    78     return ts;
    7965}
    8066
    81 TextStream& SVGFEBlend::externalRepresentation(TextStream& ts) const
     67void FEBlend::dump()
    8268{
    83     ts << "[type=BLEND] ";
    84     SVGFilterEffect::externalRepresentation(ts);
    85     if (!m_in2.isEmpty())
    86         ts << " [in2=\"" << m_in2 << "\"]";
    87     ts << " [blend mode=" << m_mode << "]";
    88     return ts;
    8969}
    9070
  • trunk/WebCore/svg/graphics/filters/SVGFEBlend.h

    r34656 r34971  
    2424
    2525#if ENABLE(SVG) && ENABLE(SVG_FILTERS)
     26#include "FilterEffect.h"
    2627#include "SVGFilterEffect.h"
    2728
    2829namespace WebCore {
    2930
    30 enum SVGBlendModeType {
    31     SVG_FEBLEND_MODE_UNKNOWN  = 0,
    32     SVG_FEBLEND_MODE_NORMAL   = 1,
    33     SVG_FEBLEND_MODE_MULTIPLY = 2,
    34     SVG_FEBLEND_MODE_SCREEN   = 3,
    35     SVG_FEBLEND_MODE_DARKEN   = 4,
    36     SVG_FEBLEND_MODE_LIGHTEN  = 5
    37 };
     31    enum BlendModeType {
     32        FEBLEND_MODE_UNKNOWN  = 0,
     33        FEBLEND_MODE_NORMAL   = 1,
     34        FEBLEND_MODE_MULTIPLY = 2,
     35        FEBLEND_MODE_SCREEN   = 3,
     36        FEBLEND_MODE_DARKEN   = 4,
     37        FEBLEND_MODE_LIGHTEN  = 5
     38    };
    3839
    39 class SVGFEBlend : public SVGFilterEffect {
    40 public:
    41     static PassRefPtr<SVGFEBlend> create(SVGResourceFilter*);
    42    
    43     String in2() const;
    44     void setIn2(const String&);
     40    class FEBlend : public FilterEffect {
     41    public:
     42        static PassRefPtr<FEBlend> create(FilterEffect*, FilterEffect*, BlendModeType);
     43       
     44        FilterEffect* in2() const;
     45        void setIn2(FilterEffect*);
    4546
    46     SVGBlendModeType blendMode() const;
    47     void setBlendMode(SVGBlendModeType);
     47        BlendModeType blendMode() const;
     48        void setBlendMode(BlendModeType);
     49       
     50        virtual void apply();
     51        virtual void dump();
    4852
    49     virtual TextStream& externalRepresentation(TextStream&) const;
     53    private:
     54        FEBlend(FilterEffect*, FilterEffect*, BlendModeType);
    5055
    51 #if PLATFORM(CI)
    52     virtual CIFilter* getCIFilter(const FloatRect& bbox) const;
    53 #endif
    54 
    55 private:
    56     SVGFEBlend(SVGResourceFilter*);
    57 
    58     SVGBlendModeType m_mode;
    59     String m_in2;
    60 };
     56        RefPtr<FilterEffect> m_in;
     57        RefPtr<FilterEffect> m_in2;
     58        BlendModeType m_mode;
     59    };
    6160
    6261} // namespace WebCore
Note: See TracChangeset for help on using the changeset viewer.