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

Issue 208683008: Fix deferred filter application with shearing or rotating CTM. (Closed)

Created:
6 years, 9 months ago by Stephen White
Modified:
6 years, 9 months ago
Reviewers:
f(malita)
CC:
blink-reviews, jamesr, krit, jbroman, bemjb+rendering_chromium.org, dsinclair, zoltan1, eae+blinkwatch, leviw+renderwatch, kouhei+svg_chromium.org, fs, danakj, ed+blinkwatch_opera.com, Rik, gyuyoung.kim_webkit.org, jchaffraix+rendering, pdr., rwlbuis, Stephen Chennney, rune+blink
Visibility:
Public.

Description

Fix deferred filter application with shearing or rotating CTM. NOTE: this requires Skia change https://codereview.chromium.org/211103006/ to land and roll into Chromium. Pixel-moving filters (e.g., blur, morphology) don't work well with matrices applying anything more than scale and translate. (We do a best-effort, but it's really wrong.) To fix, we separate out only the scaling and translation components from the CTM, process the filters with that, and apply the remainder of the CTM as a final matrix transform image filter. Since the matrix image filter is a generalization of the resize image filter, we switch the filterRes implementation over to use that as well. Covered by svg/batik/filters/feTile.svg and svg/filters/filterRes.svg when run with --enable-deferred-filters. R=fmalita@chromium.org BUG=353630 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=170104

Patch Set 1 #

Patch Set 2 : Revert spurious TestExpectations changes #

Patch Set 3 : Fix resampling quality #

Total comments: 7

Patch Set 4 : Fixes per review comments; update to ToT. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+22 lines, -5 lines) Patch
M Source/core/rendering/svg/RenderSVGResourceFilter.cpp View 1 2 3 1 chunk +17 lines, -1 line 0 comments Download
M Source/platform/graphics/filters/SkiaImageFilterBuilder.h View 2 chunks +2 lines, -1 line 0 comments Download
M Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp View 1 2 2 chunks +3 lines, -3 lines 0 comments Download

Messages

Total messages: 10 (0 generated)
Stephen White
Florin: PTAL. Thanks!
6 years, 9 months ago (2014-03-25 20:02:18 UTC) #1
f(malita)
It's unfortunate we still care about the record-time CTM with deferred filters... will this still ...
6 years, 9 months ago (2014-03-26 13:28:25 UTC) #2
f(malita)
Also, is fixing the Skia filters to handle arbitrary transforms not feasible?
6 years, 9 months ago (2014-03-26 13:30:46 UTC) #3
Stephen White
> It's unfortunate we still care about the record-time CTM with deferred filters... will this ...
6 years, 9 months ago (2014-03-26 19:09:51 UTC) #4
Stephen White
New patch up. https://codereview.chromium.org/208683008/diff/50001/Source/core/rendering/svg/RenderSVGResourceFilter.cpp File Source/core/rendering/svg/RenderSVGResourceFilter.cpp (right): https://codereview.chromium.org/208683008/diff/50001/Source/core/rendering/svg/RenderSVGResourceFilter.cpp#newcode246 Source/core/rendering/svg/RenderSVGResourceFilter.cpp:246: scaleAndTranslate.translate(ctm.e(), ctm.f()); On 2014/03/26 19:09:52, Stephen ...
6 years, 9 months ago (2014-03-26 20:26:08 UTC) #5
f(malita)
lgtm
6 years, 9 months ago (2014-03-26 20:28:32 UTC) #6
Stephen White
On 2014/03/26 13:30:46, Florin Malita wrote: > Also, is fixing the Skia filters to handle ...
6 years, 9 months ago (2014-03-26 20:38:25 UTC) #7
Stephen White
The CQ bit was checked by senorblanco@chromium.org
6 years, 9 months ago (2014-03-26 20:47:42 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/senorblanco@chromium.org/208683008/110001
6 years, 9 months ago (2014-03-26 20:47:45 UTC) #9
commit-bot: I haz the power
6 years, 9 months ago (2014-03-26 21:32:43 UTC) #10
Message was sent while issue was closed.
Change committed as 170104

Powered by Google App Engine
This is Rietveld 408576698