Could you please post the relevent code you are using? The &quot;fill a transparent arc on the mask&quot; part sounds incorrect, you need to clear it using CAIRO_OPERATOR_CLEAR.<br>example python code:<br>------<br>import cairo<br>
<br>canvas = cairo.ImageSurface(cairo.FORMAT_ARGB32,320,240)<br>ctx = cairo.Context(canvas)<br><br>#fill with blue<br>ctx.set_source_rgb(0,0,1)<br>ctx.paint()<br><br>#Construct Mask<br>maskSurface = cairo.ImageSurface(cairo.FORMAT_ARGB32,320,240)<br>
ctxM = cairo.Context(maskSurface)<br>ctxM.set_source_rgba(1,1,1,1)<br>ctxM.paint()<br><br>#knock out rectangle <br>ctxM.rectangle(50,50,100,100)<br>ctxM.set_source_rgba(0,0,0,1)<br>ctxM.set_operator(cairo.OPERATOR_CLEAR)<br>
ctxM.fill()<br><br>maskPattern = cairo.SurfacePattern(maskSurface)<br><br>debug = False<br>if debug:<br>&nbsp;&nbsp;&nbsp; #show mask<br>&nbsp;&nbsp;&nbsp; ctx.set_source(maskPattern)<br>&nbsp;&nbsp;&nbsp; ctx.paint()<br>else:<br>&nbsp;&nbsp;&nbsp; #use mask<br>&nbsp;&nbsp;&nbsp; ctx.set_source_rgb(0,1,0)<br>
&nbsp;&nbsp;&nbsp; ctx.mask(maskPattern)<br><br>canvas.write_to_png(&quot;out.png&quot;)<br>------<br><br><div class="gmail_quote">On Mon, May 26, 2008 at 12:36 PM, Ricky Wood &lt;<a href="mailto:rickywoodster@yahoo.co.uk">rickywoodster@yahoo.co.uk</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I&#39;m new to cairo and probably missing some obvious concept, please can someone enlighten me with this problem:<br>
<br>Basically, I have a surface with some shapes already drawn onto it.&nbsp; I now want to paint every part of the surface a single colour except a circle, i.e. leave the contents of the surface, where the circle lies, undisturbed.<br>
<br>The approach I took was:<br><br>- create a mask<br>- paint the mask totally opaque<br>- fill a transparent arc on the mask<br>- set the colour on the source<br>- cairo_mask<br><br>I thought the source colour would be transferred to the destination, leaving the circle masked.<br>
<br>Where have I gone wrong, or is there a better approach?<br><br>TIA.<br><div class="WgoR0d"><br><p> 



      </p><hr size="1">
Sent from <a href="http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http://us.rd.yahoo.com/evt=52418/*http://uk.docs.yahoo.com/nowyoucan.html" target="_blank">Yahoo! Mail</a>.
<br>
A Smarter Email.</div><br>_______________________________________________<br>
cairo mailing list<br>
<a href="mailto:cairo@cairographics.org">cairo@cairographics.org</a><br>
<a href="http://lists.cairographics.org/mailman/listinfo/cairo" target="_blank">http://lists.cairographics.org/mailman/listinfo/cairo</a><br></blockquote></div><br>