<br><br><div class="gmail_quote">2011/6/21 Chris Wilson <span dir="ltr">&lt;<a href="mailto:chris@chris-wilson.co.uk">chris@chris-wilson.co.uk</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Tue, 21 Jun 2011 16:23:49 +0900, Taekyun Kim &lt;<a href="mailto:podain77@gmail.com">podain77@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; We cannot assume that given boxes are already clipped within clip<br>
&gt; region even when clip_region contains single rectangle. So if we<br>
&gt; have single rectangle clip_region, we have to manually clip boxes<br>
&gt; within the clip rectangle so that we can make clip region to NULL.<br>
<br>
</div>The boxes were meant to be clipped as they were constructed. That would<br>
appear to be the source of your bug.<br>
-Chris<br>
<font color="#888888"><br>
--<br>
Chris Wilson, Intel Open Source Technology Centre<br>
</font></blockquote></div><br><br><div>As you mentioned, if boxes are properly clipped and clip can be </div><div>reduced to a region, everything is correct.</div><div><br><div>I tried some tests to detect cases where _cairo_clip_get_boxes() fails </div>
<div>but _cairo_clip_get_region() succeed. I&#39;ve found such cases.</div><div><br></div><div>_cairo_clip_to_boxes() would return &quot;extents&quot; if clip cannot be reduced </div><div>to a set of boxes. In that case, our filling boxes might not be clipped.</div>
<div>So if _cairo_clip_get_boxes (inside of _cairo_clip_to_boxes) fails, we </div><div>cannot guarantee that boxes are clipped.</div><div><br></div><div>If what I understand is correct, region is a set of aligned rectangles and </div>
<div>boxes is a set of rectangles which do not need to be aligned. So if </div><div>_cairo_clip_get_region() succeed, _cairo_clip_get_boxes() should also </div><div>succeed. I think that is the source of this problem.</div>
<div><br></div><div>I&#39;ll go ahead and try to fix this.</div><div><br></div><div>-- <br>Best Regards,<div>Taekyun Kim</div><br>
</div></div>