Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1262)

Unified Diff: Source/core/paint/SVGFilterPainter.cpp

Issue 1108763004: Replace FilterData::boundaries with Filter::filterRegion() (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix silly rebase error. Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/layout/svg/LayoutSVGResourceFilter.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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());
« no previous file with comments | « Source/core/layout/svg/LayoutSVGResourceFilter.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698