Re: Using Cairo and Pango to scroll text on video

[email protected]
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>



>>>>Another workaround is to prerender the text to a similar surface
>>>>(cairo_surface_create_similar) and paint that intermediate surface to
>>>>the destination surface with the correct offset.
>>>
>>> Would using the latter method prevent me from using semi-transparent text
>>> and / or backgrounds?
>>
>>It would not if you pass CAIRO_CONTENT_COLOR_ALPHA to the function, see
>>http://cairographics.org/manual/cairo-cairo-surface-t.html#cairo-surface-create-similar
>>
>>Prerendering the text is much faster that having to render the text
>>again in every frame. It's only really a reasonable shortcut when the
>>text is only translated and perhaps rotated, but not zoomed though.



>>I would love to pre-render the text but I think my use case makes it a bit more complex.  
>>The video frame is a fixed size ARGB surface which makes sense.  However, the text can 
>>be any size and often much wider than the video image.  I imagine this prevents me from being 
>>able to use 'create similar' since this would be using the video frame's surface, no?  I guess 
>>I could create a new ARGB image surface using the text dimensions?



>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:

>Make a text rendering surface 2 * N + C, C = 16 or such.

>do {
>Render text in the off screen part of the surface (which is now the rightmost half of the surface).
>Composite that surface from X=0 at X=0 to your main surface.
>Composite that surface from X=2 at X=0 to your main surface (assuming your step size = 2 pixels).
>When you reach X = 2N render in the offscreen part of the text render surface (which is now the leftmost half of the surface).
>} while (true);

It looks like you are pre-rendering the text in chunks and updating the chunks as the text scrolls.  Is there a way to render the entire text to a cairo surface whole?  As far as I can see one needs a cairo surface before creating the pango layout.  However, in my case, I do not know the dimensions of the cairo surface needed until after I start working in pango.


Thanks again,
Bob

--
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.