Changeset 44839 in webkit


Ignore:
Timestamp:
Jun 18, 2009 9:44:29 PM (15 years ago)
Author:
krit@webkit.org
Message:

2009-06-18 Dirk Schulze <krit@webkit.org>

Reviewed by Oliver Hunt.

feMerge implementation
https://bugs.webkit.org/show_bug.cgi?id=26480

Added feMerge to the SVG Filter system.

Test: svg/filters/feMerge.svg

  • svg/graphics/filters/SVGFEMerge.cpp: (WebCore::FEMerge::uniteChildEffectSubregions): (WebCore::FEMerge::apply):
  • svg/graphics/filters/SVGFEMerge.h:

Check the feMerge implementation.

  • platform/mac/svg/filters/feMerge-expected.checksum: Added.
  • platform/mac/svg/filters/feMerge-expected.png: Added.
  • platform/mac/svg/filters/feMerge-expected.txt: Added.
  • svg/filters/feMerge.svg: Added.
Location:
trunk
Files:
4 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r44835 r44839  
     12009-06-18  Dirk Schulze  <krit@webkit.org>
     2
     3        Reviewed by Oliver Hunt.
     4
     5        Check the feMerge implementation.
     6
     7        * platform/mac/svg/filters/feMerge-expected.checksum: Added.
     8        * platform/mac/svg/filters/feMerge-expected.png: Added.
     9        * platform/mac/svg/filters/feMerge-expected.txt: Added.
     10        * svg/filters/feMerge.svg: Added.
     11
    1122009-06-18  Chris Fleizach  <cfleizach@apple.com>
    213
  • trunk/WebCore/ChangeLog

    r44837 r44839  
     12009-06-18  Dirk Schulze  <krit@webkit.org>
     2
     3        Reviewed by Oliver Hunt.
     4
     5        feMerge implementation
     6        [https://bugs.webkit.org/show_bug.cgi?id=26480]
     7
     8        Added feMerge to the SVG Filter system.
     9
     10        Test: svg/filters/feMerge.svg
     11
     12        * svg/graphics/filters/SVGFEMerge.cpp:
     13        (WebCore::FEMerge::uniteChildEffectSubregions):
     14        (WebCore::FEMerge::apply):
     15        * svg/graphics/filters/SVGFEMerge.h:
     16
    1172009-06-18  Mark Rowe  <mrowe@apple.com>
    218
  • trunk/WebCore/svg/graphics/filters/SVGFEMerge.cpp

    r44655 r44839  
    2424#if ENABLE(SVG) && ENABLE(FILTERS)
    2525#include "SVGFEMerge.h"
     26
     27#include "Filter.h"
     28#include "GraphicsContext.h"
    2629#include "SVGRenderTreeAsText.h"
    27 #include "Filter.h"
    2830
    2931namespace WebCore {
     
    5052}
    5153
    52 FloatRect FEMerge::uniteEffectRect(Filter* filter)
     54FloatRect FEMerge::uniteChildEffectSubregions(Filter* filter)
    5355{
    54     if (m_mergeInputs.isEmpty())
    55         return FloatRect();
     56    ASSERT(!m_mergeInputs.isEmpty());
    5657
    5758    FloatRect uniteEffectRect = m_mergeInputs[0]->calculateEffectRect(filter);
     
    6364}
    6465
    65 void FEMerge::apply(Filter*)
     66void FEMerge::apply(Filter* filter)
    6667{
     68    ASSERT(!m_mergeInputs.isEmpty());
     69
     70    for (unsigned i = 0; i < m_mergeInputs.size(); i++) {
     71        m_mergeInputs[i]->apply(filter);
     72        if (!m_mergeInputs[i]->resultImage())
     73            return;
     74    }
     75
     76    GraphicsContext* filterContext = getEffectContext();
     77    if (!filterContext)
     78        return;
     79
     80    for (unsigned i = 0; i < m_mergeInputs.size(); i++) {
     81        FloatRect destRect = calculateDrawingRect(m_mergeInputs[i]->subRegion());
     82        filterContext->drawImage(m_mergeInputs[i]->resultImage()->image(), destRect);
     83    }
    6784}
    6885
  • trunk/WebCore/svg/graphics/filters/SVGFEMerge.h

    r44655 r44839  
    3737        void setMergeInputs(const Vector<FilterEffect*>& mergeInputs);
    3838
    39         virtual FloatRect uniteEffectRect(Filter*);
     39        virtual FloatRect uniteChildEffectSubregions(Filter*);
    4040        void apply(Filter*);
    4141        void dump();
Note: See TracChangeset for help on using the changeset viewer.