Index: Source/core/paint/SVGFilterPainter.cpp |
diff --git a/Source/core/paint/SVGFilterPainter.cpp b/Source/core/paint/SVGFilterPainter.cpp |
index b5a327e0803cde27c15c4f2493300954f68e08fc..70617f29dda1c1db991b1f45ecadce096ccbf6a8 100644 |
--- a/Source/core/paint/SVGFilterPainter.cpp |
+++ b/Source/core/paint/SVGFilterPainter.cpp |
@@ -29,7 +29,7 @@ static GraphicsContext* beginRecordingContent(GraphicsContext* context, FilterDa |
filterData->m_context = adoptPtr(new GraphicsContext(filterData->m_displayItemList.get())); |
context = filterData->m_context.get(); |
} else { |
- context->beginRecording(filterData->boundaries); |
+ context->beginRecording(filterData->filter->filterRegion()); |
} |
filterData->m_state = FilterData::RecordingContent; |
@@ -50,7 +50,7 @@ static void endRecordingContent(GraphicsContext* context, FilterData* filterData |
ASSERT(filterData->m_displayItemList); |
ASSERT(filterData->m_context); |
context = filterData->m_context.get(); |
- context->beginRecording(filterData->boundaries); |
+ context->beginRecording(filterData->filter->filterRegion()); |
filterData->m_displayItemList->commitNewDisplayItemsAndReplay(*context); |
} |
@@ -75,7 +75,7 @@ static void paintFilteredContent(GraphicsContext* context, FilterData* filterDat |
ASSERT(sourceGraphic); |
builder.setSourceGraphic(sourceGraphic); |
RefPtr<SkImageFilter> imageFilter = builder.build(filterData->builder->lastEffect(), ColorSpaceDeviceRGB); |
- FloatRect boundaries = filterData->boundaries; |
+ FloatRect boundaries = filterData->filter->filterRegion(); |
context->save(); |
// Clip drawing of filtered image to the minimum required paint rect. |
@@ -144,15 +144,15 @@ GraphicsContext* SVGFilterPainter::prepareEffect(LayoutObject& object, GraphicsC |
FloatRect targetBoundingBox = object.objectBoundingBox(); |
SVGFilterElement* filterElement = toSVGFilterElement(m_filter.element()); |
- filterData->boundaries = SVGLengthContext::resolveRectangle<SVGFilterElement>(filterElement, filterElement->filterUnits()->currentValue()->enumValue(), targetBoundingBox); |
- if (filterData->boundaries.isEmpty()) |
+ FloatRect filterRegion = SVGLengthContext::resolveRectangle<SVGFilterElement>(filterElement, filterElement->filterUnits()->currentValue()->enumValue(), targetBoundingBox); |
+ if (filterRegion.isEmpty()) |
return nullptr; |
// Create the SVGFilter object. |
FloatRect drawingRegion = object.strokeBoundingBox(); |
- drawingRegion.intersect(filterData->boundaries); |
+ drawingRegion.intersect(filterRegion); |
bool primitiveBoundingBoxMode = filterElement->primitiveUnits()->currentValue()->enumValue() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX; |
- filterData->filter = SVGFilter::create(enclosingIntRect(drawingRegion), targetBoundingBox, filterData->boundaries, primitiveBoundingBoxMode); |
+ filterData->filter = SVGFilter::create(enclosingIntRect(drawingRegion), targetBoundingBox, filterRegion, primitiveBoundingBoxMode); |
// Create all relevant filter primitives. |
filterData->builder = m_filter.buildPrimitives(filterData->filter.get()); |