DescriptionInclude filter-generated content bounds in visual rects
PaintLayer::mapRectForFilter was used to map from changed bounds in the
filtered content to changed bounds once the filter has been applied.
For example, an offset filter (FEOffset) would simply apply an offset
to the input bounds. PaintLayer::mapRectForFilter was used for
calculating the filtered element's visual rect in
LayoutBox::inflateVisualRectForReflectionAndFilter.
Some filters such as FETurbulence [1] generate filtered output that
can fill the entire filtered region (i.e., including object margins).
When these filters are used, the visual rect is independent of the
paint invalidation rect, so mapRectForFilter has been refactored as
"PaintLayer::mapRectToAffectedFilterRegion".
This patch uses FilterEffect::determineFilterPrimitiveSubregion to
calculate the full filter boundaries in cases like FETurbulence,
fixing the visual rect for cases like effect-reference-hidpi.html as
well as similar tests with FEImage.
[1] https://drafts.fxtf.org/filters/#elementdef-feturbulence
BUG=640264
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Patch Set 1 #
Total comments: 2
Messages
Total messages: 13 (8 generated)
|