trunk: filter regression (r12532)

Bug #1229326 reported by su_v on 2013-09-23
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Inkscape
High
Markus Engel

Bug Description

Steps to reproduce:
1) launch inkscape (default prefs, default new doc)
2) open 'turbulence_filters.svg' from '/usr/share/inkscape/examples'

The filtered object at the bottom right renders solid black instead of a colorful filter effect ('crumbled_tin_foil').

First encountered with
- Inkscape 0.48+devel r12577 on OS X 10.7.5
Reproduced on
- Ubuntu 13.04 (VM, 64bit) with r12573 (PPA)
- Ubuntu 12.10 (VM, 64bit) with r12577 (local build)

Based on tests with archived builds on OS X 10.7.5:
- not reproduced with r12531 and earlier
- reproduced with r12532 and later builds
this regression was likely introduced with the merge of the C++ification of the SP tree in r12532:
<http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/12532>

su_v (suv-lp) wrote :

Attaching sample file from current trunk (r12577).

Changed in inkscape:
milestone: none → 0.49
Markus Engel (engelmarkus) wrote :

This should fix it. I forgot to register the feDistantLight. I'll have to find out why there is no warning on the console.

Changed in inkscape:
assignee: nobody → Markus Engel (engelmarkus)
status: New → In Progress
su_v (suv-lp) wrote :

Patch tested successfully with r12579 on OS X 10.7.5.

Changed in inkscape:
importance: Undecided → High
Markus Engel (engelmarkus) wrote :

Fixed in r12580.

Changed in inkscape:
status: In Progress → Fix Released
su_v (suv-lp) wrote :

Thx for the speedy fix :)

Changed in inkscape:
milestone: 0.49 → none
su_v (suv-lp) wrote :

From the commit log:
> r12580: (…) made sure warnings on missing types are always issued.

Some more, this time form 'share/examples/replace-hue.svg':

** (inkscape:27265): WARNING **: TypeNotRegistered exception: svg:feFuncR

** (inkscape:27265): WARNING **: TypeNotRegistered exception: svg:feFuncG

** (inkscape:27265): WARNING **: TypeNotRegistered exception: svg:feFuncB

Markus Engel (engelmarkus) wrote :

That's right. FeComponentTransfer, to which these nodes belong, has never been implemented:
http://wiki.inkscape.org/wiki/index.php/Filter_Effects
Take a look at "src/filters/componenttransfer-funcnode.cpp", this is a stub.

Markus Engel (engelmarkus) wrote :

Oops, no wait, I think that's wrong... I'll have a look.

su_v (suv-lp) wrote :

Compare how the filtered image in the center renders with current trunk, and e.g. with r12500.

If the difference (missing color) is not related to how the other filter primitive (feDistantLight) failed, I'll file a separate report about it.

(Note: don't test with r12512-12531 to compare - filters had serious regressions at that time).

Markus Engel (engelmarkus) wrote :

Sorry for that, I was sure this was not implemented. Actually, only writing feComponentTransfers is not supported, neither by SPFeFuncNode nor by the UI.
Please give this patch a try.

su_v (suv-lp) wrote :

Patch tested successfully with r12581, using the same file ('share/examples/replace-hue.svg').

Markus Engel (engelmarkus) wrote :

FeComponentTransfer fixed in r12582.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers