W3C home > Mailing lists > Public > public-fx@w3.org > January to March 2012

Re: [filters] Custom filter functions proposal

From: Lea Verou <leaverou@gmail.com>
Date: Fri, 24 Feb 2012 12:47:49 +0200
Message-ID: <4F476AD5.5040808@gmail.com>
To: Rik Cabanier <cabanier@gmail.com>
CC: Chris Marrin <cmarrin@apple.com>, Lea Verou <leaverou@gmail.com>, public-fx@w3.org
The src descriptor could accept multiple values so that if one can't be 
used, fall back to the 2nd, 3rd etc, like the src descriptor in @font-face.

Lea Verou (http://lea.verou.me | @LeaVerou)

On 24/2/12 06:22, Rik Cabanier wrote:
> Hi Chris,
>
> that's a terrific idea.
> Depending where we go with the security model, we could design a way 
> to switch to the SVG filter implementation if we detect that the 
> shader violates the rule. Could this still be done with a media query? 
> It seems that more would be necessary...
> (This is of course assuming that SVG filter don't suffer from the same 
> security issues.)
>
> Rik
>
> On Thu, Feb 23, 2012 at 5:06 PM, Chris Marrin <cmarrin@apple.com 
> <mailto:cmarrin@apple.com>> wrote:
>
>
>     On Feb 19, 2012, at 8:31 AM, Lea Verou wrote:
>
>>     On 19/2/12 17:48, Rik Cabanier wrote:
>>     > Hi Lea,
>>     > I can see how this would be very useful.
>>     > It would also allow people to create libraries with filters
>>     that could be used as short hands.
>>
>>     Exactly! This is one of the benefits I mentioned ;)
>>
>>     > Can you write out a complete example of such a filter?
>>     > Rik
>>
>>     Sure. My imagination is running kinda low at the moment, so lets
>>     assume hue-rotate wasn't already in the draft.
>>
>>     An author would include this filter in an SVG called
>>     filterlib.svg (which could obviously include other filters as well):
>>
>>     <filter id="hue-rotate">
>>     <feColorMatrix type="hueRotate" values="param(angle) 0"/>
>>     </filter>
>>
>>     Note that the syntax of param() and its default value (of 0 here)
>>     is defined in SVGParam [1].
>>
>>     And then would define it as a function in their CSS like so:
>>
>>     @filter {
>>      src: url(/path/to/filterlib.svg#hue-rotate);
>>      name: hue-rotate;
>>      parameters: angle;
>>      default: 0;
>>     }
>>
>>     And then they'd be able to use hue-rotate() as is currently
>>     defined by the Filter Effects draft.
>>
>>     An alternative syntax could include the function name outside the
>>     braces, @keyframes-style:
>>
>>     @filter hue-rotate {
>>      src: url(/path/to/filterlib.svg#hue-rotate);
>>      parameters: angle;
>>      default: 0;
>>     }
>>
>>     `default` isn't really needed in this case, as the SVG already
>>     defines a default, so it could be omitted.
>>
>>     [1]: http://www.w3.org/TR/SVGParam/
>
>     I really like the idea of an @filter rule for customized filter
>     functions. But I'd really like to be able to define a CSS shader
>     as the underlying implementation. SVG filters give authors a lot
>     of power. But they're very difficult to hardware accelerate. If
>     @filter can accommodate both SVG filters and CSS shaders it leaves
>     authors with path for assuring a hardware acceleration path.
>     Assuming there is a media query for SVG filter and CSS shader
>     support, authors can supply both and the appropriate one can be
>     chosen for the platform.
>
>     -----
>     ~Chris
>     cmarrin@apple.com <mailto:cmarrin@apple.com>
>
>
Received on Friday, 24 February 2012 10:48:25 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 24 February 2012 10:48:27 GMT