emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs and Gnome Canvas


From: YAMAMOTO Mitsuharu
Subject: Re: Emacs and Gnome Canvas
Date: Sun, 18 Jul 2010 12:51:49 +0900
User-agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (Shijō) APEL/10.6 Emacs/22.3 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI)

>>>>> On Sat, 17 Jul 2010 12:26:06 +0200, Jan Djärv <address@hidden> said:

>> Sorry, I don't understand.  Does GTK+ or GDK do double-buffering
>> for drawings outside the handler of (possibly synthetic) expose
>> events?

> No, not outside expose events.  But if I insert a character in a
> text edit widget, it invalidates itself. That generates a syntetic
> expose event.  When the event is processed, Gdk arranges for all
> drawings to go to the backing store.  When the event is fully
> processed, the backing store is copied to the window.

That's what I've been talking: during redisplay, we invalidate the
area to be updated (i.e., make it dirty) rather than drawing directly.
Instead, all the drawings are done inside the expose handler.  This
way, double-buffering can be introduced straightforwardly.  For
example, the area that should be copied to the window is already
passed to the handler, and we don't have to keep window and backing
store contents in sync (the backing store can be created at the
beginning of global expose handler without copying the current window
contents to the buffer, and also can be freed after copying it to the
window).  It does match better with transparency or overlapping
widgets.

You've rather been talking about an alternative double-buffering that
is for drawing during redisplay (i.e., outside the expose handler),
and said that is how GTK+ operates all the time.

                                     YAMAMOTO Mitsuharu
                                address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]