#include "config.h"
#include "SVGFilter.h"
namespace WebCore {
SVGFilter::SVGFilter(const AffineTransform& absoluteTransform, const FloatRect& absoluteSourceDrawingRegion, const FloatRect& targetBoundingBox, const FloatRect& filterRegion, bool effectBBoxMode)
: Filter(absoluteTransform)
, m_absoluteSourceDrawingRegion(absoluteSourceDrawingRegion)
, m_targetBoundingBox(targetBoundingBox)
, m_filterRegion(filterRegion)
, m_effectBBoxMode(effectBBoxMode)
{
m_absoluteFilterRegion = absoluteTransform.mapRect(filterRegion);
}
FloatSize SVGFilter::scaledByFilterResolution(FloatSize size) const
{
if (m_effectBBoxMode)
size = size * m_targetBoundingBox.size();
return Filter::scaledByFilterResolution(size) * m_absoluteFilterRegion.size() / m_filterRegion.size();
}
Ref<SVGFilter> SVGFilter::create(const AffineTransform& absoluteTransform, const FloatRect& absoluteSourceDrawingRegion, const FloatRect& targetBoundingBox, const FloatRect& filterRegion, bool effectBBoxMode)
{
return adoptRef(*new SVGFilter(absoluteTransform, absoluteSourceDrawingRegion, targetBoundingBox, filterRegion, effectBBoxMode));
}
}