summaryrefslogtreecommitdiffstats
path: root/WebCore/svg/graphics/filters/SVGFEOffset.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/svg/graphics/filters/SVGFEOffset.cpp')
-rw-r--r--WebCore/svg/graphics/filters/SVGFEOffset.cpp26
1 files changed, 13 insertions, 13 deletions
diff --git a/WebCore/svg/graphics/filters/SVGFEOffset.cpp b/WebCore/svg/graphics/filters/SVGFEOffset.cpp
index e12b8e0..685bd7b 100644
--- a/WebCore/svg/graphics/filters/SVGFEOffset.cpp
+++ b/WebCore/svg/graphics/filters/SVGFEOffset.cpp
@@ -31,17 +31,16 @@
namespace WebCore {
-FEOffset::FEOffset(FilterEffect* in, const float& dx, const float& dy)
+FEOffset::FEOffset(float dx, float dy)
: FilterEffect()
- , m_in(in)
, m_dx(dx)
, m_dy(dy)
{
}
-PassRefPtr<FEOffset> FEOffset::create(FilterEffect* in, const float& dx, const float& dy)
+PassRefPtr<FEOffset> FEOffset::create(float dx, float dy)
{
- return adoptRef(new FEOffset(in, dx, dy));
+ return adoptRef(new FEOffset(dx, dy));
}
float FEOffset::dx() const
@@ -66,15 +65,16 @@ void FEOffset::setDy(float dy)
void FEOffset::apply(Filter* filter)
{
- m_in->apply(filter);
- if (!m_in->resultImage())
+ FilterEffect* in = inputEffect(0);
+ in->apply(filter);
+ if (!in->resultImage())
return;
GraphicsContext* filterContext = getEffectContext();
if (!filterContext)
return;
- setIsAlphaImage(m_in->isAlphaImage());
+ setIsAlphaImage(in->isAlphaImage());
FloatRect sourceImageRect = filter->sourceImageRect();
sourceImageRect.scale(filter->filterResolution().width(), filter->filterResolution().height());
@@ -86,12 +86,12 @@ void FEOffset::apply(Filter* filter)
m_dx *= filter->filterResolution().width();
m_dy *= filter->filterResolution().height();
- FloatRect dstRect = FloatRect(m_dx + m_in->scaledSubRegion().x() - scaledSubRegion().x(),
- m_dy + m_in->scaledSubRegion().y() - scaledSubRegion().y(),
- m_in->scaledSubRegion().width(),
- m_in->scaledSubRegion().height());
+ FloatRect dstRect = FloatRect(m_dx + in->repaintRectInLocalCoordinates().x() - repaintRectInLocalCoordinates().x(),
+ m_dy + in->repaintRectInLocalCoordinates().y() - repaintRectInLocalCoordinates().y(),
+ in->repaintRectInLocalCoordinates().width(),
+ in->repaintRectInLocalCoordinates().height());
- filterContext->drawImageBuffer(m_in->resultImage(), DeviceColorSpace, dstRect);
+ filterContext->drawImageBuffer(in->resultImage(), DeviceColorSpace, dstRect);
}
void FEOffset::dump()
@@ -104,7 +104,7 @@ TextStream& FEOffset::externalRepresentation(TextStream& ts, int indent) const
ts << "[feOffset";
FilterEffect::externalRepresentation(ts);
ts << " dx=\"" << dx() << "\" dy=\"" << dy() << "\"]\n";
- m_in->externalRepresentation(ts, indent + 1);
+ inputEffect(0)->externalRepresentation(ts, indent + 1);
return ts;
}