Closed
Bug 459512
Opened 16 years ago
Closed 16 years ago
Translated elements with filters don't work any more
Categories
(Core :: SVG, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: longsonr, Assigned: roc)
References
()
Details
(Keywords: regression, testcase)
Attachments
(3 files, 1 obsolete file)
663 bytes,
image/svg+xml
|
Details | |
271 bytes,
image/svg+xml
|
Details | |
8.55 KB,
patch
|
longsonr
:
review+
MatsPalmgren_bugz
:
superreview+
|
Details | Diff | Splinter Review |
No description provided.
Reporter | ||
Comment 1•16 years ago
|
||
http://www.w3.org/Graphics/SVG/Test/20061213/htmlObjectHarness/full-filters-example-01-b.html and http://www.w3.org/Graphics/SVG/Test/20061213/htmlObjectHarness/full-filters-gauss-01-b.html are also broken.
Reporter | ||
Updated•16 years ago
|
Summary: some morphology filters don't work any more → some filters don't work any more
Reporter | ||
Comment 2•16 years ago
|
||
I see missing filters in the examples. One the top left filter is displayed. In the example-01-b I only see a grey box. A regression range might help.
Keywords: qawanted
Comment 3•16 years ago
|
||
This regressed between 2008-09-10 and 2008-09-11: http://hg.mozilla.org/mozilla-central/pushloghtml?startdate=2008-09-10+04%3A00%3A00&enddate=2008-09-11+12%3A00%3A00 Regression from bug 450340?
Reporter | ||
Comment 4•16 years ago
|
||
Something goes wrong when the filter is transformed. I.e. having the use within a <g transform="...".
Flags: wanted1.9.1?
Flags: blocking1.9.1?
Reporter | ||
Updated•16 years ago
|
Summary: some filters don't work any more → Translated elements with filters don't work any more
Reporter | ||
Comment 6•16 years ago
|
||
Any ideas what's happening here roc?
Assignee | ||
Comment 7•16 years ago
|
||
Nothing springs to mind. Got a reduced testcase?
Reporter | ||
Comment 8•16 years ago
|
||
Is the one in bug 459675 any good?
Assignee | ||
Comment 9•16 years ago
|
||
That one passes for me on Mac. The w3.org tests fail though.
Reporter | ||
Comment 10•16 years ago
|
||
If I take the path that is within the morphologySource <g>, replace the use with it and stick the filter directly on the path I do see something so this is about as small as it gets I think.
Reporter | ||
Comment 11•16 years ago
|
||
This makes filters display and returns us to the way we processed filters before bug 450340 i.e. passing null as the dirtyRect but it's wallpaper. clearly there is a problem in nsSVGFilterInstance::BuildSourceImages in the calculation of the dirty rect. Some translation is missing. Can you see what it is roc?
Attachment #343298 -
Flags: review?(roc)
Reporter | ||
Comment 12•16 years ago
|
||
Not so much a review request as a cry for help ;-)
Reporter | ||
Updated•16 years ago
|
Assignee | ||
Comment 13•16 years ago
|
||
Assignee | ||
Comment 14•16 years ago
|
||
In nsSVGFilterInstance::BuildSourceImages, we render the source <g>, but that fails to paint the <rect> child because in nsSVGUtils::PaintChildWithEffects the <rect>'s frame's mRect is tested against the dirty rect and they don't intersect. The problem is, mRect is relative to the root <svg>, but aDirty is in "user space" for the frame.
Assignee | ||
Comment 15•16 years ago
|
||
-- Transform the dirty rect from user space CSS pixels to outer-SVG device pixels -- Instead of using SetOverrideCTM, just set the transform the gfxContext. By doing this in the nsSVGFilterInstance, we can remove the transform parameter from nsSVGFilterPaintCallback::Paint. This works because SetMatrixPropagation(PR_FALSE) is guaranteed to be in effect (it actually happens in nsAutoFilterInstance::nsAutoFilterInstance in nsSVGFilterFrame). The reason I'm doing this here is that I think the current code is buggy, since it doesn't do SetOverrideCTM(nsnull) and an associated NotifySVGChanged, which it really should. Also with the latter change, there are no more real users of SetOverrideCTM and we can remove that stuff completely! I'll file a separate bug for that cleanup.
Assignee: nobody → roc
Attachment #343298 -
Attachment is obsolete: true
Attachment #343349 -
Flags: superreview?(mats.palmgren)
Attachment #343349 -
Flags: review?(longsonr)
Attachment #343298 -
Flags: review?(roc)
Comment 16•16 years ago
|
||
Comment on attachment 343349 [details] [diff] [review] fix sr=mats In nsSVGFilterPaintCallback.h - you forgot to remove "@param aTransform ..." In nsSVGUtils.cpp - please end comment sentences with a period.
Attachment #343349 -
Flags: superreview?(mats.palmgren) → superreview+
Reporter | ||
Comment 17•16 years ago
|
||
Comment on attachment 343349 [details] [diff] [review] fix I've moved the good bits of my original patch to bug 460210
Attachment #343349 -
Flags: review?(longsonr) → review+
Assignee | ||
Comment 18•16 years ago
|
||
Pushed dfdda0399888, thanks
Status: NEW → RESOLVED
Closed: 16 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Reporter | ||
Updated•16 years ago
|
Flags: wanted1.9.1?
Flags: blocking1.9.1?
You need to log in
before you can comment on or make changes to this bug.
Description
•