On Wed, Oct 13, 2010 at 10:29 AM, Andrea Canciani <span dir="ltr">&lt;<a href="mailto:ranma42@gmail.com">ranma42@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
These guarantees (expecially if both need to hold simultaneously) look very<br>
strong. Currently they holst most of the times in most backends (the only<br>
exceptions I know of being the dithering in xlib and gradients in quartz).<br>
The &quot;virtual extents&quot; API might be a good way to control this: it would<br>
probably be possible to guarantee that the rasterization depends only<br>
on the virtual extents.<br></blockquote><div><br>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 window.<br>
<br>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.<br><br>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.<br>
<br>We could set the virtual extents rect to the path extents for each fill, stroke or show_glyphs operation we perform.<br><br>Maybe the second option is best.<br></div></div><br clear="all">Rob<br>-- <br>&quot;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.&quot; [Acts 17:11]<br>