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

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

Issue 2341923002: Harmonize FilterEffect::mapRect and mapPaintRect (Closed)
Patch Set: Baselines (again) Created 4 years, 3 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
Index: third_party/WebKit/Source/core/paint/SVGFilterPainter.cpp
diff --git a/third_party/WebKit/Source/core/paint/SVGFilterPainter.cpp b/third_party/WebKit/Source/core/paint/SVGFilterPainter.cpp
index 49c035b3a1e6abc0f5b03271856be7154a227cff..878c6bcb5712639ea5760d15a0137d0980cbc969 100644
--- a/third_party/WebKit/Source/core/paint/SVGFilterPainter.cpp
+++ b/third_party/WebKit/Source/core/paint/SVGFilterPainter.cpp
@@ -48,7 +48,7 @@ void SVGFilterRecordingContext::endContent(FilterData* filterData)
filterData->m_state = FilterData::ReadyToPaint;
}
-static void paintFilteredContent(GraphicsContext& context, FilterData* filterData)
+static void paintFilteredContent(GraphicsContext& context, const LayoutObject& object, FilterData* filterData)
{
DCHECK_EQ(filterData->m_state, FilterData::ReadyToPaint);
DCHECK(filterData->filter->getSourceGraphic());
@@ -60,7 +60,7 @@ static void paintFilteredContent(GraphicsContext& context, FilterData* filterDat
context.save();
// Clip drawing of filtered image to the minimum required paint rect.
- context.clipRect(lastEffect->determineAbsolutePaintRect(lastEffect->absoluteBounds()));
+ context.clipRect(lastEffect->mapRect(object.strokeBoundingBox()));
Stephen White 2016/09/20 15:36:19 Does mapRect() now take into effect filters which
fs 2016/09/20 19:14:14 Yes, it should.
FloatRect boundaries = filterData->filter->filterRegion();
context.beginLayer(1, SkXfermode::kSrcOver_Mode, &boundaries, ColorFilterNone, std::move(imageFilter));
Stephen White 2016/09/20 15:36:19 Not new to this patch, but Skia may ignore the bou
fs 2016/09/20 19:14:14 mapRect() should apply that, which should hopefull
Stephen White 2016/09/20 19:46:38 Eventually, we can probably pass nullptr, and just
@@ -131,7 +131,7 @@ void SVGFilterPainter::finishEffect(const LayoutObject& object, SVGFilterRecordi
FloatRect filterRegion = filterData ? filterData->filter->filterRegion() : FloatRect();
LayoutObjectDrawingRecorder recorder(context, object, DisplayItem::kSVGFilter, filterRegion);
if (filterData && filterData->m_state == FilterData::ReadyToPaint)
- paintFilteredContent(context, filterData);
+ paintFilteredContent(context, object, filterData);
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698