[cairo] Reducing CPU usage in News Ticker Implementation

Gerdus van Zyl gerdusvanzyl at gmail.com
Fri Aug 31 03:09:41 PDT 2007

Is it necesary to render the text every draw request? so far I know
text rendering/calculation is very expensive.

I suggest rendering to an buffer

when the text changes
surf = cr.get_target()
self.buffer = surf.create_similar(cairo.CONTENT_COLOR,max_width,max_height)

ctx = cairo.Context(surfb)

then render buffer on expose:

~Gerdus van Zyl

On 31/08/2007, Darwin Bautista <djclue917 at gmail.com> wrote:
> The problem is that
> the ticker consumes a lot of CPU when the Pango layout is relatively
> big (377 character-long text, DejaVu Serif Semi-Condensed 40) since X
> performs a lot of redrawing every second (e.g., 50 redraws/second if
> the scroll timeout is set to 20ms).

More information about the cairo mailing list