From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Emacs canvas support Date: Wed, 29 Apr 2020 22:25:04 +0300 Message-ID: <83a72uxffz.fsf@gnu.org> References: <83sggmzjp8.fsf@gnu.org> <87mu6u1tii.fsf@yahoo.com> <83o8raziis.fsf@gnu.org> <877dxy1smz.fsf@yahoo.com> <87o8rae0ao.fsf@randomsample> <83lfmexmfp.fsf@gnu.org> <20200429171619.GB20842@tuxteam.de> <83imhixkva.fsf@gnu.org> <20200429185128.GA27164@tuxteam.de> <83ees6xggr.fsf@gnu.org> <20200429190854.GC27164@tuxteam.de> Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="50058"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: tomas@tuxteam.de Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Apr 29 21:29:20 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jTsOV-000Cuz-Je for ged-emacs-devel@m.gmane-mx.org; Wed, 29 Apr 2020 21:29:19 +0200 Original-Received: from localhost ([::1]:36368 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTsOU-0006tQ-LO for ged-emacs-devel@m.gmane-mx.org; Wed, 29 Apr 2020 15:29:18 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45612) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTsKw-0004y7-0R for emacs-devel@gnu.org; Wed, 29 Apr 2020 15:28:27 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:33694) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTsKv-0008FS-Mv; Wed, 29 Apr 2020 15:25:37 -0400 Original-Received: from [176.228.60.248] (port=2202 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jTsKg-0006FT-8n; Wed, 29 Apr 2020 15:25:35 -0400 In-Reply-To: <20200429190854.GC27164@tuxteam.de> (tomas@tuxteam.de) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:248183 Archived-At: > Date: Wed, 29 Apr 2020 21:08:54 +0200 > From: tomas@tuxteam.de > Cc: emacs-devel@gnu.org > > > > I think the "interesting" problem is to know (quickly) which > > > graphical objects intersect the (visible) window -- something > > > graphics programs do as their main job. > > > > That's easy, we have infrastructure for that already -- it is used in > > expose_frame and its subroutines. > > This sounds... encouraging :-) > > (TBH I was coming from the other side: index the graphics objects > in a way that one doesn't need to look at most of those which > are currently hidden). The current display engine works by screen lines, so if we want to keep it, we must use the existing framework. When a portion of a window is exposed, we redraw all the glyphs in the exposed area(s), and we find the glyphs that need to be redrawn by comparing their coordinates with those of the exposed rectangle(s).