[Webkit-unassigned] [Bug 52200] Small filter primitive renderer improvements

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jan 19 04:12:06 PST 2011


https://bugs.webkit.org/show_bug.cgi?id=52200





--- Comment #17 from Zoltan Herczeg <zherczeg at webkit.org>  2011-01-19 04:12:06 PST ---
Krit, you asked me not to introduce unused functions, but you want to see the work in small steps in the same time. This is impossible because of the dependencies.

I try to explain you the concept.

The issue:

   Filter     1 --- 1  Filter Renderer         1 --- n  List of FilterBuilder
      | 1 - n               | 1 - n                              | 1 - n
FilterElement 1 --- 1 Filter Primitve Renderer              FilterEffects

When an attribute of the FilterElement changes, it needs to update its FilterEffects (created by this FilterElement before).

Since only the FilterRenderer access the currently existing FilterEffects, all FilterElements needs to implement this function:

void SVGFE*::setFilterEffectAttribute(FilterEffect* effect, const QualifiedName& attrName)

The function is called when we call setAllFilterEffectsAttribute(attrName) in svgAttributeChanged (thus we can put the assert to SVGFilterPrimitiveStandardAttributes.cpp:76)

Note: the other way, accessing the FilterElement from a FilterEffect would cause layering violation.

This patch demonstrates the concept of updating the FilterEffects when the diffuseConstant of DiffuseLighting updates (and invalidates all filter images dependent of this particular DiffuseLighting FilterEffect - this is done automatically). So the FilterBuilders are not changed at all, only some attributes changed, and some existing images freed.

However, the repainting is not implemented, so we do the relayaout as before. This is the smallest step I can think of. Do you wish to implement this a different way?

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list