[cairo] Re: cairo gradients
Jonathan Watt
jwatt at jwatt.org
Wed Apr 19 07:35:51 PDT 2006
Carl Worth wrote:
> On Tue, 18 Apr 2006 11:00:21 +0100, Jonathan Watt wrote:
>> David Reveman wrote:
>>> For the pixman backend, X server backend and glitz backend the results
>>> are undefined when some part of the inner circle is outside the outer
>>> circle. In general cairo tries to expose as few cases as possible that
>>> can result in undefined results
>
> Yes, cairo definitely does want to avoid undefined behavior.
>
> I didn't realize that that was what we got when the smaller circle
> intersects or is outside the larger circle.
>
> There shouldn't be any requirement for undefined behavior here. For
> example, PDF provides a two-circle specification of a radial gradient
> and carefully defines the result when one circle does not entirely
> containt the other, (giving the appearance of inward-pointing cone if
> the first circle is smaller and an outward-pointing code if the first
> circle is larger).
>
> The PDF semantics seem quite reasonable to me. So if someone wants to
> fix things, I don't see why we wouldn't follow that. We can put the
> new implementation into libpixman and avoid X server gradients when
> they are not compatible, (currently cairo is always avoiding X server
> gradients).
I'm not clear on what this means for Mozilla. Does this mean that cairo isn't
going to clamp the smaller circle, and so the clamping will need to happen in
Mozilla code? I don't mind either way, but I'd like to know whether I need to
provide a clamping patch for Mozilla.
Jonathan
More information about the cairo
mailing list