[webkit-dev] Box shadow

David Hyatt hyatt at apple.com
Tue Jan 9 13:41:20 PST 2007


The problem I ran into with box-shadow is that the shadow cannot show  
up anywhere within the contents of the box.  It has to be clipped  
out.  Maybe there's a clever way to get the same result that I'm not  
thinking of though.   Note that CG draws shadows in response to other  
drawing operations (in this case a fill).  As far as I can tell with  
CG, I can't just draw a shadow in a vacuum.  It has to be implicitly  
cast by some other drawing operation.  So I'm basically doing a fill,  
which casts the shadow, and then ensuring that the entire fill is  
clipped out so that it isn't seen.

dave

On Jan 9, 2007, at 7:04 AM, Mike Reed wrote:

> Do we need to use clips for round-rects? In my implementation these
> are always hard-edged (no antialiasing). Is that true for Qt as well?
> CG? I would prefer being asked to draw round-rects (filled or stroked)
> directly with no clipping...
>
> On 1/8/07, David Hyatt <hyatt at apple.com> wrote:
>> I just landed support for the CSS3 box-shadow property.  This
>> entailed adding a few new methods to GraphicsContext.  I stubbed
>> these methods out on Qt but did not implement them.
>>
>> They are:
>>
>> void clipOut(const IntRect&);
>>         Excludes the specified rect from the clipping region.
>>
>> void clipOutEllipseInRect(const IntRect&);
>>         Same, but for an ellipse drawn inside the specified rect.
>>
>> void fillRoundedRect(const IntRect&, const IntSize& topLeft, const
>> IntSize& topRight, const IntSize& bottomLeft, const IntSize&
>> bottomRight, const Color&);
>>          Fills a rounded rect (with elliptical curvature in the four
>> corners) with the specified color.
>>
>> Note that the fillRoundedRect method arguably should be cross-
>> platform, relying on primitives instead.   This is an area for
>> improvement, if someone wants to rework it to use the cross-platform
>> Path class etc.
>>
>> dave
>> (hyatt at apple.com)
>>
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev at lists.webkit.org
>> http://lists.webkit.org/mailman/listinfo/webkit-dev
>>




More information about the webkit-dev mailing list