[cairo] GTK+, Cairo, XLib integration for fast 2D graphics drawing
Christos Sotiriou
csotiriou at gmail.com
Sun Mar 18 08:37:06 PDT 2012
Hello all,
I have a serious 2D drawing performance problem with GTK+ and Cairo on a
GTK+ linux app. I suspect that my implementation does not use any Xlib or
other 2D acceleration (is it supported by GTK/Cairo?).
I was wondering if you could help me.
My GTK+ application is based around a main application window is used for
drawing a very large number of drawables (>100K) (mainly rectangles) on a
map, and should support both scrolling and zooming in and out.
I have implemented this main window as a scrolled window, i.e.
GtkScrolledWindow (http://developer.gnome.org/gtk3/stable/ ...
indow.html<http://developer.gnome.org/gtk3/stable/GtkScrolledWindow.html>),
containing a GtkLayout (
http://developer.gnome.org/gtk3/stable/GtkLayout.html).
The GtkLayout is drawn upon using the cairo context provided by function
gdk_cairo_create() on the GTK_LAYOUT()->bin_window. I hope this is making
sense.
My problem is that drawing is too, too slow when drawing >100K rectangles.
I have tried double buffering in two ways (a) by using a cairo image
surface, drawing upon it and then copying the pattern to my drawing
context, and (b) by using cairo's surface_create_similar() function, which
supposedly uses X.
I have found that drawing is simply toooooo slow, every which way.
What am I doing wrong? How can I use cairo's Xlib capability without
explicitly creating an Xlib surface?
Any help is very much appreciated.
Christos.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(email:csotiriou at gmail.com)
--
--------------------------------------------------------------------------
Christos P. Sotiriou
email: csotiriou at gmail.com
Cell: +30 697 8984 222
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo/attachments/20120318/1b5d7c8c/attachment.html>
More information about the cairo
mailing list