[cairo] quartz & unbounded operators
Vladimir Vukicevic
vladimir at pobox.com
Mon Mar 10 16:58:53 PDT 2008
One of the last major pieces for the Quartz backend is fixing support
for unbounded operators. The native Quartz implementations of these
has the resulting rendering incorrectly bound by the mask. I have a
working patch that goes back after the rendering is complete and
clears out the rest of the clip area, but this obviously leads to some
color fringing due to coverage at antialiased edges. (If antialiasing
is disabled, everything is pixel-correct.)
An alternate approach is to compute the mask needed for the operation,
clear the inverse of the mask first, and then render the source
through the mask. This should give the correct result. (Right?)
However, the way the surface backend is structured, it would take a
good chunk of work to make that happen in a clean fashion -- basically
every core operation will need to know how to shunt its path rendering
off to a mask and how to draw the source through that mask. So I'd
rather go with the current post-rendering fixup, especially given that
these operators aren't often used in practice.
Does this sound acceptable for now?
- Vlad
More information about the cairo
mailing list