[Xcb] GTK-XCB is in progress
supermaper at gmail.com
Tue Nov 7 04:19:01 PST 2006
I am always working on the xcb port of gtk. So far most common gtk
applications can run well atop the gdk-xcb backend. As the dependency of
gtk, Pango and Xft are ported as well.
These XCB backends are built on the 1.0 RC3 (0.9.93) release of xcb-proto
and libxcb(http://xcb.freedesktop.org/dist/), as well as the latest
development version of xcb-util(git://anongit.freedesktop.org/git/xcb/util).
Maybe the utility libraries are unstable, but I have employed it.
These XCB backends are not built by default, and you must explicitly use the
* Xft: --enable-xcb
* pango: --enable-xcb
* gtk: --with-gdktarget=xcb
You can get all my xcb-porting work from "
http://gtk-xcb.svn.sourceforge.net/viewvc/gtk-xcb/" , then try to build
them. If all works well, you can get libgtk-xcb-2.0.so and
GTK-XCB is now entirely XCB based, claiming the full benefits of XCB. I have
not taken codes sharing into account between the two X backends, perhaps it
brings a huge maintenance burden, maintaining two copies of that that differ
only in their interface to the X protocol.
I have used gtkperf to test the gdk-xcb performance on PC, but the benchmark
data shows gdk-xcb is a bit slow than gdk-x11 :(
Followings are the next steps :
* event handling
There is still a bug in window redraw. Originally the area in window does
redraw when its window content is fully visible after the overlapping window
disappear. But if you repeat to make the window partially obscured, and
fully visible many times, the area then does not redraw any more.
* error handling.
Build a library atop libxcb to provide such functions as XSetErrorHandler
* Key handling.
Rewrite XKeysymToString and XStringToKeysym in a library built on XCB, to
provide the transformation between keyname and keyvalue.
* GC contents caches
XCB does not cache the GC contents on client-side. Maybe should I cache the
gc values in gdk-xcb backend to implement gdk_gc_get_values?
Anyway, I'd appreciate any advice/pointers you could provide, poking at the
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Xcb