Brian J. Tarricone wrote: > Michael McCann wrote: > >> Brian J. Tarricone wrote: >> >>> Don't use gdk in the CPU-intensive function: >>> >> Unfortunately, the GDK calls _are_ what is CPU-intensive. I believe the >> gdk_pixbuf_get_from_drawable() call is the most intensive. None of my >> "regular" code is CPU-intensive. >> > > How large is the GdkDrawable?
It's the size of the entire screen: 1024x768 > I wouldn't imagine that to eat too much > CPU. You can try only acquiring the gdk lock in your thread when > absolutely necessary to see if that helps, like this: > > do_something_without_gdk(); > gdk_threads_enter(); > gdk_pixbuf_get_from_drawable(); > gdk_threads_leave(); > do_other_stuff_without_gdk(); > gdk_threads_enter(); > do_some_stuff_with_the_gdk_drawable(); > gdk_threads_leave(); > ... > Yes, I've already tried that, to no avail. My code basically only consists of: gdk_screen_get_default(): Get the default screen gdk_screen_get_root_window(): Get the root window gdk_pixbuf_get_from_drawable(): Get a pixbuf from the entire screen gdk_pixbuf_save_to_bufferv(): Save the pixbuf to a buffer. Remove all of the GDK calls, and there is no UI freeze. I can even throw in an infinite loop to any function in the non-UI thread, and the UI does not freeze, which is to be expected. _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list