[cairo] Quartz gradients consistency

Robert O'Callahan robert at ocallahan.org
Wed Oct 13 05:07:27 PDT 2010

On Wed, Oct 13, 2010 at 10:29 AM, Andrea Canciani <ranma42 at gmail.com> wrote:

> These guarantees (expecially if both need to hold simultaneously) look very
> strong. Currently they holst most of the times in most backends (the only
> exceptions I know of being the dithering in xlib and gradients in quartz).
> The "virtual extents" API might be a good way to control this: it would
> probably be possible to guarantee that the rasterization depends only
> on the virtual extents.

This seems like the right idea but how would we use an API that sets the
virtual extents rect? I think the hard case is when the user resizes a
window to make it larger and we want to avoid having to repaint the whole

We could try to make the virtual extents rect as large as the largest window
could ever be, but there might not actually be a limit and in any case that
seems suboptimal.

We could increase the virtual extents rect by powers of two as needed, and
completely repaint the window every time the virtual extents rect changes.

We could set the virtual extents rect to the path extents for each fill,
stroke or show_glyphs operation we perform.

Maybe the second option is best.

"Now the Bereans were of more noble character than the Thessalonians, for
they received the message with great eagerness and examined the Scriptures
every day to see if what Paul said was true." [Acts 17:11]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo/attachments/20101014/864be3de/attachment.htm>

More information about the cairo mailing list