[cairo] cairo-xcb without RENDER extension?

Uli Schlachter psychon at znc.in
Mon Oct 12 11:05:11 PDT 2015


Hi,

Am 12.10.2015 um 11:08 schrieb Ingo Bürk:
[...]
> From the docs, I would expect that the RENDER extension is optional,
> not mandatory for cairo-xcb. Is this correct?

Yes

> If so, are there any
> tips on how we have to use cairo to make it work if RENDER is not
> available?

Use cairo_surface_flush() where needed.
For example, after drawing to a window, use cairo_surface_flush(). Between
drawing to a pixmap and using xcb_copy_area() to move the drawing elsewhere, use
cairo_surface_flush().

The technical detail is:
When cairo-xcb needs to do a fallback to an image surface (some drawing that has
to be done that the X11 server cannot do for it), it keeps using that image
surface as long as possible, so that it doesn't needlessly upload/download some
buffer repeatedly. The #1 reason for fallbacks is "the server does not support
the RENDER extension", but this can also happen when the RENDER extension is
available.

Cheers,
Uli
-- 
"Are you preparing for another war, Plutarch?" I ask.
"Oh, not now. Now we're in that sweet period where everyone agrees that our
recent horrors should never be repeated," he says. "But collective thinking is
usually short-lived. We're fickle, stupid beings with poor memories and a great
gift for self-destruction.


More information about the cairo mailing list