Hello,<br><br><div class="gmail_quote">On Mon, May 7, 2012 at 4:15 PM,  <span dir="ltr">&lt;<a href="mailto:robertk54@aol.com" target="_blank">robertk54@aol.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<font color="black" face="Arial, Helvetica, sans-serif">
<div>
<div style="margin-right:0px;margin-left:0px;margin-bottom:0px;margin-top:0px"><div><pre><tt><font face="Arial, Helvetica, sans-serif"><span style="white-space:normal">&gt;</span></font><font face="Tahoma, Verdana, Arial, sans-serif"><span style="font-size:9pt">&gt;&gt;Another workaround is to prerender the text to a similar surface
&gt;&gt;&gt;(cairo_surface_create_similar) and paint that intermediate surface to
&gt;&gt;&gt;the destination surface with the correct offset.
&gt;&gt;
&gt;&gt; Would using the latter method prevent me from using semi-transparent text
&gt;&gt; and / or backgrounds?
&gt;
&gt;It would not if you pass CAIRO_CONTENT_COLOR_ALPHA to the function, see
</span></font>&gt;<a href="http://cairographics.org/manual/cairo-cairo-surface-t.html#cairo-surface-create-similar" style="font-family:Tahoma,Verdana,Arial,sans-serif;font-size:9pt" target="_blank">http://cairographics.org/manual/cairo-cairo-surface-t.html#cairo-surface-create-similar</a><font face="Tahoma, Verdana, Arial, sans-serif"><span style="font-size:9pt">
&gt;
&gt;Prerendering the text is much faster that having to render the text
&gt;again in every frame. It&#39;s only really a reasonable shortcut when the
&gt;text is only translated and perhaps rotated, but not zoomed though.

</span></font></tt></pre></div><pre><tt><font face="Tahoma, Verdana, Arial, sans-serif"><span style="font-size:9pt">I would love to pre-render the text but I think my use case makes it a bit more complex.  </span></font></tt></pre>

<pre><tt><font face="Tahoma, Verdana, Arial, sans-serif"><span style="font-size:9pt">The video frame is a fixed size ARGB surface which makes sense.  However, the text can </span></font></tt></pre><pre><tt><font face="Tahoma, Verdana, Arial, sans-serif"><span style="font-size:9pt">be any size </span></font></tt><span style="font-size:9pt;font-family:Tahoma,Verdana,Arial,sans-serif">and often much wider than the video image.  I imagine this prevents me from being </span></pre>

<pre><span style="font-size:9pt;font-family:Tahoma,Verdana,Arial,sans-serif">able to use </span><span style="font-size:9pt;font-family:Tahoma,Verdana,Arial,sans-serif">&#39;create similar&#39; since this would be using the video frame&#39;s surface, no?  I guess </span></pre>

<pre><span style="font-size:9pt;font-family:Tahoma,Verdana,Arial,sans-serif">I could </span><span style="font-size:9pt;font-family:Tahoma,Verdana,Arial,sans-serif">create a new ARGB image surface using the text dimensions?</span></pre>

<pre><span style="font-size:9pt;font-family:Tahoma,Verdana,Arial,sans-serif"><br></span></pre></div></div></font></blockquote>I have done this before using cairo and pango, basically a ticker bar on a N width screen with smooth scrolling. My approach was something like this:<br>
<br>Make a text rendering surface 2 * N + C, C = 16 or such.<br><br>do {<br>Render text in the off screen part of the surface (which is now the rightmost half of the surface).<br>Composite that surface from X=0 at X=0 to your main surface.<br>
Composite that surface from X=2 at X=0 to your main surface (assuming your step size = 2 pixels).<br>When you reach X = 2N render in the offscreen part of the text render surface (which is now the leftmost half of the surface).<br>
} while (true);<br><br>Regards,<br><br>Leon.<br>
</div>