[cairo] cairo as an immediate base for retained API and gsave/grestore

Jost Boekemeier jost2345 at yahoo.de
Wed Jul 21 13:55:41 PDT 2004

> It uses gsave/grestore mechanism inherited from 
> PostScript API model, which is not only
> inconvenient, 

Even if cairo_save/restore gets in our way (which I
don't think is the case) the "cairo_canvas" (or
whatever we call it) needs to wrap cairo anyway, so I
don't see a problem.

> but prevents you from implementing
> automatic redraw and hit-tests without 
> unreasonable effort and duplication on retained-
> mode API level. 

Cairo is only a API for direct drawing.  It doesn't
handle input-area transformations or "automatic
redraw".  A toolkit which uses cairo directly or
indirectly would provide this.

I think the retained mode implementation should
support not only cairo as the backend but also
backends where animations can be hardware accelerated,
e.g. GL ("display lists") or DirectX.

Ideally if I create a shape and send it to the server,
it should be possible to animate the shape _and_ the
event area without using the CPU.  But to make this
possible we have to talk to the GPU directly by using
some standard API (either GL, DirectX) or we would
create a X11 extension.

But let's do one step after the other, please.  Let's
first look what the gnome people have written already,
then have a look at the Avalon MIL and after that we
can decide how the cairo retained mode API should look



Gesendet von Yahoo! Mail - Jetzt mit 100MB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de

More information about the cairo mailing list