[cairo] gtkcairo double buffering, and win32 port

Øyvind Kolås islewind at gmail.com
Thu Jun 17 09:45:14 PDT 2004


On Thu, 17 Jun 2004 17:38:15 +0200, Jost Boekemeier <jost2345 at yahoo.de> wrote:
> I use Keith Packard's X server for my tests; I've found the XFree render
> implementation unusable.

The crashing is probably somehow due to glitz, but since all other
gtkcairo applications work, it is the combination of ways bauxite uses
glitz that make it fail when the system is shutdown. Is the glitz back
end available using keithp's X server as well?

> Your gtkcairo.c flushes the output for the glx backend only.  But for
> the gdk/xlib backend the output is double-buffered and I think that gdk
> swaps the buffers in the idle thead only or when input is requested.

Am I really double buffering?
if I am I'd like to be able to utilize the double buffering properly,
but I've had a hard time understanding the gdk/x11 internals I'm
using, my understanding of the current situation is that I force
drawing by cairo directly to the screen. A re expose always leads to
reissuing of all cairo drawing commands. Gtk probably collapses series
of redraws, but cairo is not fast enough to keep up with a fluid user
experience when dragging another window over, causing frequent
exposes.

[use XVideo instead of gtkcairo]

Probably, but keeping the number dependencies / subsystems in use is a
good thing IMO, and if I can rely on cairo for most of my display
needs I'm a happier coder.

[win32 and gtkcairo]

Not yet, but I virtualized all the back end specific code to seperate
files, by adding the image backend rendering to a gdkpixbuf, gdkcairo
should probably be usable on all platforms gtk+ supports. I don't know
anything about how to get cairo working on win32, nor do I have a
development environment where I can test things, but I'd appreciate
help, or tips about how it could be done.

/pippin




More information about the cairo mailing list