From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: redisplay system of emacs Date: Tue, 16 Feb 2010 22:00:16 +0200 Message-ID: <83hbphx86n.fsf@gnu.org> References: "35766.130.55.118.19.1266338417.squirrel@webmail.lanl.gov" <4B7AEFE6.4000305@gmx.de> Reply-To: Eli Zaretskii NNTP-Posting-Host: lo.gmane.org X-Trace: ger.gmane.org 1266350587 23455 80.91.229.12 (16 Feb 2010 20:03:07 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 16 Feb 2010 20:03:07 +0000 (UTC) Cc: emacs-devel@gnu.org To: grischka Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Feb 16 21:03:04 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1NhTdQ-0002xr-Fx for ged-emacs-devel@m.gmane.org; Tue, 16 Feb 2010 21:03:04 +0100 Original-Received: from localhost ([127.0.0.1]:33361 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NhTdQ-0002Wo-30 for ged-emacs-devel@m.gmane.org; Tue, 16 Feb 2010 15:03:04 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NhTce-0002Bj-75 for emacs-devel@gnu.org; Tue, 16 Feb 2010 15:02:16 -0500 Original-Received: from [140.186.70.92] (port=47855 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NhTcd-0002BR-EF for emacs-devel@gnu.org; Tue, 16 Feb 2010 15:02:15 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NhTcc-0003CO-HX for emacs-devel@gnu.org; Tue, 16 Feb 2010 15:02:15 -0500 Original-Received: from mtaout22.012.net.il ([80.179.55.172]:63758) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NhTcc-0003CI-8y for emacs-devel@gnu.org; Tue, 16 Feb 2010 15:02:14 -0500 Original-Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0KXY00300A6YTL00@a-mtaout22.012.net.il> for emacs-devel@gnu.org; Tue, 16 Feb 2010 22:02:12 +0200 (IST) Original-Received: from HOME-C4E4A596F7 ([84.228.213.68]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0KXY001GTABNE070@a-mtaout22.012.net.il>; Tue, 16 Feb 2010 22:02:12 +0200 (IST) In-reply-to: <4B7AEFE6.4000305@gmx.de> X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:121149 Archived-At: > Date: Tue, 16 Feb 2010 20:20:06 +0100 > From: grischka > Cc: emacs-devel@gnu.org > > >> Redisplay_internal does lots and lots of computations to detect which part > >> of the buffer should be redisplayed at a given moment. All these > >> computations can be avoided using a system of subwindows (1 for every > >> char). > > > > Those computations are complicated because the buffer contents (or window > > width, or scroll amount, or...) might have changed, not just because the > > window might have been damaged in some complicated fashion. > > It's not _that_complicated. Basically it just draws the new screen to > memory, then compares it with the current screen and then updates the > differences. That's only a small part of the story. It draws only part of the screen, not all of it (unless optimizations fail), and it goes to great lengths to minimize that part of the screen. The reason is that delivering to the screen is not the heaviest part of the redisplay; it's that ``drawing to memory'' that is.