|
From: | Jan D. |
Subject: | Re: removing flickering in emacs |
Date: | Mon, 12 Dec 2005 11:39:30 +0100 |
User-agent: | Mozilla Thunderbird 1.0 (X11/20041206) |
Michal Maruška wrote:
Hello, I have written a patch for CVS emacs as a proof-of-concept for my method of removing flickering caused by using background (pixel or pixmap) of windows in X11, flickering which happens on Exposure, and on resizing. The method is described at http://maruska.dyndns.org/wiki/anti-flicker-methodI don't know Xt, so I limit myself to xlib, and I tested the patch with ./configure --with-x-toolkit=no --without-gtk (--with-png --with-jpeg --without-xim)I would appreciate comments from people who know the display code. The patch itself is: http://maruska.dyndns.org/comp/packages/cvs-emacs-flicker-free.patch
I find the patch hard to follow, there are too much #if 0 and code that is commented out. But reading your anti-flicker-method page it seem that the theory is to use window background None and explicitly write the background yourself. I can not see how that would improve things, instead of having the X server clear the background itself, you are doing it from the client. This introduces more client to server calls and no visible advantage.
You wonder about Gtk+ on you page. IMHO they have taken the proper approach to flikering by using double buffering everywhere. Unfortunately Emacs compiled for GTK can not use this feature, except for menus, scrollbars and toolbars. But as a principle, double buffering is easier to implement (no need to keep track of intersecting areas) and is sure to remove flicker.
As a side not, I haven't seen much flicker in Emacs, and the time that there where some, those places where bugs that has been fixed. Can you supply a test case where flickering in Emacs can be clearly seen?
Jan D.
[Prev in Thread] | Current Thread | [Next in Thread] |