W3C home > Mailing lists > Public > whatwg@whatwg.org > November 2012

Re: [whatwg] [canvas] inner shadows

From: Dirk Schulze <dschulze@adobe.com>
Date: Fri, 23 Nov 2012 15:49:53 -0800
To: Ian Hickson <ian@hixie.ch>
Message-ID: <C7E8EB76-CDC6-4403-B5F3-CC306DEDB242@adobe.com>
Cc: Tyler Larson <talltyler@gmail.com>, "whatwg@whatwg.org" <whatwg@whatwg.org>

On Nov 23, 2012, at 2:36 PM, Ian Hickson <ian@hixie.ch> wrote:

> On Fri, 21 Sep 2012, Tyler Larson wrote:
>> On Sep 20, 2012, at 6:49 PM, Ian Hickson <ian@hixie.ch> wrote:
>>> Can't you do this using clip() easily enough? Maybe I'm missing 
>>> something important here. Can you elaborate?
>> 
>> Here is an example of what I am talking about. 
>> http://i.imgur.com/Sy4xM.png
>> Clip would mask something but adding an inner shadow is different and 
>> pretty difficult to reproduce when you take into account complex shapes.
> 
> Ah, yeah, I see what you mean. The problem is that the canvas rendering 
> model always renders the shadow under the shape, and uses the shape's 
> alpha to work out where to paint the shape.
> 
> What we could do is offer control that would change the shadows from 
> rendering under the shape to rendering over the shape, or, maybe even 
> better, have a mode that only renders the shadows. Then you could achieve 
> these effects relatively easily (by clipping to the shape so that the 
> shadow only renders inside the shape).

Dependent if Canvas supports Filter Effects in the future or not (including SVG filters), the overlay shadow can be done with a combination of SourceAlpha and gaussian blur. There are already Canvas libraries that offer SVG Filters on Canvas.

Greetings,
Dirk

> 
> Is this something implementors would be interested in?
> 
> -- 
> Ian Hickson               U+1047E                )\._.,--....,'``.    fL
> http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
> Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'
Received on Saturday, 24 November 2012 00:55:15 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 30 January 2013 18:48:11 GMT