Closed
Bug 1000382
Opened 11 years ago
Closed 11 years ago
Don't simplify the invalidation region before calling nsSVGIntegrationUtils::AdjustInvalidAreaForSVGEffects
Categories
(Core :: SVG, defect)
Core
SVG
Tracking
()
RESOLVED
FIXED
mozilla31
People
(Reporter: mstange, Assigned: mstange)
References
Details
Attachments
(1 file)
30.68 KB,
patch
|
roc
:
review+
|
Details | Diff | Splinter Review |
With bug 1000167 fixed, we still invalidate on its testcase (attachment 8411006 [details]) when scrolling far enough down that both the top and the bottom edge of the filtered or masked elements are out-of-view. That's because the inactive layer manager yields an invalid region that consists of a small strip at the top and a small strip at the bottom, and the .GetBounds() call prior to to the call to nsSVGIntegrationUtils::AdjustInvalidAreaForSVGEffects destroys our nice and tight invalid region.
All the FilterSupport methods are already setup to deal with regions instead of rects, so we just need to forward the regions along to the right places.
Attachment #8411217 -
Flags: review?(roc)
Comment on attachment 8411217 [details] [diff] [review]
patch + test
Review of attachment 8411217 [details] [diff] [review]:
-----------------------------------------------------------------
::: layout/svg/nsFilterInstance.cpp
@@ +600,5 @@
> + }
> + nsIntRegion result;
> + nsRegionRectIterator it(*aRegion);
> + while (const nsRect* r = it.Next()) {
> + result.Or(result, FrameSpaceToFilterSpace(r));
For this to work properly, FrameSpaceToFilterSpace needs to round out. I believe it does, but please document this requirement.
@@ +611,5 @@
> +{
> + nsRegion result;
> + nsIntRegionRectIterator it(aRegion);
> + while (const nsIntRect* r = it.Next()) {
> + result.Or(result, FilterSpaceToFrameSpace(*r));
Similar here
Attachment #8411217 -
Flags: review?(roc) → review+
Assignee | ||
Comment 2•11 years ago
|
||
Comment 3•11 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla31
You need to log in
before you can comment on or make changes to this bug.
Description
•