emacs-devel
[Top][All Lists]
Advanced

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

Re: removing flickering in emacs


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-method

I 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.





reply via email to

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