|
|
|
Created:
4 years, 10 months ago by pdr. Modified:
4 years, 10 months ago CC:
blink-reviews, blink-reviews-paint_chromium.org, dshwang, slimming-paint-reviews_chromium.org Base URL:
https://chromium.googlesource.com/chromium/blink.git@master Target Ref:
refs/heads/master Project:
blink Visibility:
Public. |
DescriptionFix masking cull rects
This patch fixes the cull rect used by SVG masks to be finite. This
fixes mask clipping and cleans up the code a bit.
TEST=svg/W3C-SVG-1.1/masking-intro-01-f.svg with the following flags:
--additional-driver-flag=--enable-slimming-paint
--additional-driver-flag=--enable-blink-features=SlimmingPaintStrictCullRectClipping
BUG=498857
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=197055
Patch Set 1 #
Total comments: 3
Patch Set 2 : Early out and use the paint invalidation bounding box #Patch Set 3 : No bounding boxes! #Messages
Total messages: 23 (10 generated)
The CQ bit was checked by pdr@chromium.org
The CQ bit was unchecked by pdr@chromium.org
pdr@chromium.org changed reviewers: + chrishtr@chromium.org, fs@opera.com
The CQ bit was checked by pdr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1184633004/1
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
https://codereview.chromium.org/1184633004/diff/1/Source/core/paint/SVGMaskPa... File Source/core/paint/SVGMaskPainter.cpp (right): https://codereview.chromium.org/1184633004/diff/1/Source/core/paint/SVGMaskPa... Source/core/paint/SVGMaskPainter.cpp:74: LayoutObjectDrawingRecorder drawingRecorder(*context, layoutObject, DisplayItem::SVGMask, targetBoundingBox); targetBoundingBox could be too tight - maybe expose m_maskContentBoundaries and use that? (Or use the paintInvalidationRect from object.) https://codereview.chromium.org/1184633004/diff/1/Source/core/paint/SVGMaskPa... Source/core/paint/SVGMaskPainter.cpp:75: if (!drawingRecorder.canUseCachedDrawing()) { Early out?
https://codereview.chromium.org/1184633004/diff/1/Source/core/paint/SVGMaskPa... File Source/core/paint/SVGMaskPainter.cpp (left): https://codereview.chromium.org/1184633004/diff/1/Source/core/paint/SVGMaskPa... Source/core/paint/SVGMaskPainter.cpp:78: LayoutObjectDrawingRecorder drawingRecorder(*context, layoutObject, DisplayItem::SVGMask, LayoutRect::infiniteIntRect()); Curious: why did the infinite rect not work?
The CQ bit was checked by pdr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1184633004/20001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by pdr@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1184633004/40001
@fs, good catch with the bounding box. In the latest patchset I've switched to not specifying a bounding box at all, like SVGClipPainter.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by chrishtr@chromium.org
lgtm
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1184633004/40001
Message was sent while issue was closed.
Committed patchset #3 (id:40001) as https://src.chromium.org/viewvc/blink?view=rev&revision=197055 |
Chromium Code Reviews