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

Issue 14852010: Revert 150342 "Implement filter primitive subregion for referenc..." (Closed)

Created:
7 years, 7 months ago by eseidel
Modified:
7 years, 7 months ago
Reviewers:
Stephen White
CC:
blink-reviews
Visibility:
Public.

Description

Revert 150342 "Implement filter primitive subregion for referenc..." This caused 2 tests to crash will null pointers: css3/filters/effect-reference-composite.html css3/filters/effect-reference-ordering-hw.html > Implement filter primitive subregion for reference CSS filters. This required copying determineFilterPrimitiveSubregion() from RenderSVGResourceFilter out into FilterEffect, and modifying it slightly (to accommodate CSS's inflatable result rects; see below). This also required refactoring m_filterRegion and m_absoluteFilterRegion into the Filter base class, and giving its accessors sane names. > > There was also a call to setClipsToBounds(false) for the FilterOperations nodes converted to FilterEffects. However, this is not correct for reference filters -- they should clip to their filter primitive subregion. (In fact, it was only being called on the final node in a reference effect chain, just to be super-confusing.) This was fixed by calling setEffectBoundaries() while building the reference filter, and skipping the call to setClipsToBounds(false). > > The filter outsets for reference filters are now computed by recursively traversing the DAG, so the graphics layers will be created at the appropriately-inflated size, as is done for shorthand filters. The actual per-FilterEffect-subclass computation (mapRect) was refactored from the existing code to compute absolutePaintRects, and made bidirectional. It's used for computing outsets in the forward direction, and source rects in the reverse direction. > > We now no longer call setMaxEffectsRects() directly, but instead call determineFilterPrimitiveSubregion() recursively on the output node. This will set the maxEffectRect as well as the absolutePaintRect, inflating and clipping as necessary. This uses the filter primitive subregion (if set, as in the reference filter case), or the source rect (if not). > > Note that this patch only supports filter primitive subregion, not filter effect region, which still defaults to 100% of the filterBoxRect. > > Finally, I noticed that the colorspace for reference filters was not being correctly set either (same place as the setClipsToBounds() call). That will require a bunch of rebaselines, however, so it'll be fixed in a separate patch. > > BUG=237518 > R=schenney@chromium.org > > Review URL: https://codereview.chromium.org/14652016 TBR=senorblanco@chromium.org Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=150369

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+80 lines, -685 lines) Patch
M trunk/LayoutTests/TestExpectations View 1 chunk +0 lines, -14 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-gaussianblur.html View 1 chunk +0 lines, -42 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-gaussianblur-expected.txt View 1 chunk +0 lines, -6 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-gaussianblur-xonly.html View 1 chunk +0 lines, -42 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-gaussianblur-xonly-expected.txt View 1 chunk +0 lines, -6 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-gaussianblur-yonly.html View 1 chunk +0 lines, -42 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-gaussianblur-yonly-expected.txt View 1 chunk +0 lines, -6 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-merge.html View 1 chunk +0 lines, -51 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-merge-expected.txt View 1 chunk +0 lines, -6 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-morphology.html View 1 chunk +0 lines, -42 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-morphology-expected.txt View 1 chunk +0 lines, -6 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-morphology-xonly.html View 1 chunk +0 lines, -42 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-morphology-xonly-expected.txt View 1 chunk +0 lines, -6 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-morphology-yonly.html View 1 chunk +0 lines, -42 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-morphology-yonly-expected.txt View 1 chunk +0 lines, -6 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-offset.html View 1 chunk +0 lines, -41 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-repaint-offset-expected.txt View 1 chunk +0 lines, -6 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-subregion.html View 1 chunk +0 lines, -20 lines 0 comments Download
D trunk/LayoutTests/css3/filters/effect-reference-subregion-nested.html View 1 chunk +0 lines, -31 lines 0 comments Download
M trunk/Source/core/platform/graphics/filters/FEDropShadow.h View 1 chunk +0 lines, -1 line 0 comments Download
M trunk/Source/core/platform/graphics/filters/FEDropShadow.cpp View 2 chunks +12 lines, -24 lines 0 comments Download
M trunk/Source/core/platform/graphics/filters/FEGaussianBlur.h View 1 chunk +0 lines, -1 line 0 comments Download
M trunk/Source/core/platform/graphics/filters/FEGaussianBlur.cpp View 2 chunks +9 lines, -14 lines 0 comments Download
M trunk/Source/core/platform/graphics/filters/FEMorphology.h View 1 chunk +0 lines, -1 line 0 comments Download
M trunk/Source/core/platform/graphics/filters/FEMorphology.cpp View 2 chunks +4 lines, -9 lines 0 comments Download
M trunk/Source/core/platform/graphics/filters/FEOffset.h View 1 chunk +0 lines, -1 line 0 comments Download
M trunk/Source/core/platform/graphics/filters/FEOffset.cpp View 1 chunk +0 lines, -10 lines 0 comments Download
M trunk/Source/core/platform/graphics/filters/FETile.cpp View 1 chunk +1 line, -1 line 0 comments Download
M trunk/Source/core/platform/graphics/filters/Filter.h View 2 chunks +2 lines, -9 lines 0 comments Download
M trunk/Source/core/platform/graphics/filters/FilterEffect.h View 2 chunks +0 lines, -15 lines 0 comments Download
M trunk/Source/core/platform/graphics/filters/FilterEffect.cpp View 2 chunks +0 lines, -78 lines 0 comments Download
M trunk/Source/core/platform/graphics/filters/FilterOperations.cpp View 2 chunks +1 line, -16 lines 0 comments Download
M trunk/Source/core/rendering/FilterEffectRenderer.h View 3 chunks +17 lines, -4 lines 0 comments Download
M trunk/Source/core/rendering/FilterEffectRenderer.cpp View 12 chunks +22 lines, -30 lines 0 comments Download
M trunk/Source/core/rendering/svg/RenderSVGResourceFilterPrimitive.cpp View 2 chunks +3 lines, -3 lines 0 comments Download
M trunk/Source/core/svg/SVGFilterElement.h View 2 chunks +0 lines, -7 lines 0 comments Download
M trunk/Source/core/svg/graphics/filters/SVGFilter.h View 2 chunks +5 lines, -0 lines 0 comments Download
M trunk/Source/core/svg/graphics/filters/SVGFilter.cpp View 1 chunk +4 lines, -4 lines 0 comments Download

Messages

Total messages: 2 (0 generated)
eseidel
7 years, 7 months ago (2013-05-14 22:34:50 UTC) #1
eseidel
7 years, 7 months ago (2013-05-14 22:35:14 UTC) #2
Message was sent while issue was closed.
Committed patchset #1 manually as r150369.

Powered by Google App Engine
This is Rietveld 408576698