<br><font size=2 face="sans-serif">Perfect! &nbsp;An instant ~2x performance
boost, and my dignity restored! &nbsp;:-)</font>
<br>
<br><font size=2 face="sans-serif">Thank you so much Carl for this information,</font>
<br>
<br><font size=2 face="sans-serif">&nbsp;- Marty</font>
<br>
<br><tt><font size=2>Carl Worth &lt;cworth@cworth.org&gt; wrote on 03/06/2007
04:07:02 PM:<br>
&gt; <br>
&gt; So, copying the sub-piece of big_surface of interest would be as<br>
&gt; simple as this:<br>
&gt; <br>
&gt; &nbsp; &nbsp;cairo_t *cr = cairo_create (small_surface);<br>
&gt; &nbsp; &nbsp;cairo_set_source_surface (cr, big_surface, -x, -y);<br>
&gt; &nbsp; &nbsp;cairo_rectangle (cr, 0, 0, width, height);<br>
&gt; &nbsp; &nbsp;cairo_fill (cr);<br>
&gt; <br>
&gt; The interesting thing to note here, (and what will hopefully be an<br>
&gt; &quot;Ah-ha!&quot; moment for some readers), is that cairo does not
have any<br>
&gt; drawing operation that is &quot;paint an image&quot;. Instead, cairo
has a much<br>
&gt; more general notion where you can use an image, (or other more general<br>
&gt; patterns, such as gradients), as the source pattern. And with that,<br>
&gt; you can draw any shape you want, and the appropriate pieces of the<br>
&gt; source surface will appear within that shape.<br>
&gt; <br>
&gt; Does that make sense? Give the above sequence a try and let us know<br>
&gt; how it goes.<br>
&gt; <br>
&gt; &gt; Congratulations on Cairo version 1.4.0. &nbsp;It's really a super
package.<br>
&gt; <br>
&gt; Thanks! I hope you have lots of fun with it.<br>
&gt; <br>
&gt; &gt; p.s. I'm using rcairo on Red Hat, if that matters.<br>
&gt; <br>
&gt; I'm not up on ruby syntax, but hopefully it is extremely<br>
&gt; straightforward for you to translate the above from C to ruby.<br>
&gt; <br>
&gt; -Carl<br>
</font></tt>