On Feb 12, 2009, at 4:22 PM, David Hyatt wrote:
> On Feb 12, 2009, at 4:15 PM, Robert O'Callahan wrote:
>
>> On Fri, Feb 13, 2009 at 10:52 AM, Brad Kemper
>> <brad.kemper@gmail.com> wrote:
>> On Thu, Feb 12, 2009 at 12:22 PM, Robert O'Callahan <robert@ocallahan.org
>> > wrote:
>> On Fri, Feb 13, 2009 at 8:43 AM, Brad Kemper
>> <brad.kemper@gmail.com> wrote:
>> 1. How to deal with soft image edges, where there is variable
>> opacity? Currently, WebKit seems to clip shadows to the vector edge
>> of the border box, and not draw them behind areas of variable
>> opacity (such as backgrounds). It seems like for a raster image
>> that was 50% opaque, it would have draw the shadow behind the whole
>> image at 50% of its normal opacity.
>>
>> That's the way to go. What you would do is construct a mask the
>> size of the border-box whose alpha values in the border are the
>> border-image's alpha values, and whose alpha values in the padding-
>> box are 1. Then you apply blur to that mask (or not)
>>
>> ..and then clip out the padding-box from that, which ordinarily
>> would not have a shadow from the border cast onto it (or does this
>> shadow still get drawn behind the padding box?)...
>>
>> You build the element's mask, then you build the shadow, then you
>> cut the mask out of the shadow by painting alpha=0 with the
>> "source" Porter-Duff operator using the element's mask as the mask.
>> The alpha values of the cut-out shadow will be the shadow alpha
>> value multiplied by (1 - the mask alpha value). So no shadow will
>> draw under the padding-box.
>
> It's a given that the shadow itself when offset will contain only
> transparent pixels in its own offset padding are
"Pre-blur" that is. Obviously blurring it could result in pixels in
the offset padding area. ;)
dave