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 20:27:53 +0300 Message-ID: <83imhixkva.fsf@gnu.org> References: <875zdikdge.fsf.ref@yahoo.com> <875zdikdge.fsf@yahoo.com> <834kt21yyo.fsf@gnu.org> <87zhau1uog.fsf@yahoo.com> <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> Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="37880"; 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 19:29:46 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 1jTqWn-0009kW-QM for ged-emacs-devel@m.gmane-mx.org; Wed, 29 Apr 2020 19:29:45 +0200 Original-Received: from localhost ([::1]:41640 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTqWm-0005FD-PM for ged-emacs-devel@m.gmane-mx.org; Wed, 29 Apr 2020 13:29:44 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55434) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTqVJ-0004Kf-ON for emacs-devel@gnu.org; Wed, 29 Apr 2020 13:29:01 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:59713) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTqVI-0005os-VJ; Wed, 29 Apr 2020 13:28:13 -0400 Original-Received: from [176.228.60.248] (port=3052 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jTqVH-0001sY-Ka; Wed, 29 Apr 2020 13:28:12 -0400 In-Reply-To: <20200429171619.GB20842@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:248168 Archived-At: > Date: Wed, 29 Apr 2020 19:16:19 +0200 > From: > > > Drawing over normal text, if we don't want to redesign the entire > > display engine, needs some new kind of "display element" ( a sibling > > to "character", "image", "stretch", etc.), one that doesn't > > necessarily have any effect on the metrics of the screen lines it is > > drawn upon. I'm not sure I have a clear idea about what features such > > a drawing will need to support, but it could be possible to add such > > an element with not too much effort. Would someone want to come up > > with a reasonable list of requirements for such a feature? > > That sounds... exciting. Basically, Emacs would have to have a "display > list" of graphical elements to draw, each one perhaps having a bounding > box (to discard those from redisplay which aren't currently visible) > and perhaps a "layer" (more to the background or foreground). That's not how Emacs controls what's on display. It basically represents each window as a 2D array of glyphs, each one of which has a certain graphical representation. The representation itself is of no concern to the display engine (well, almost); the only thing it cares about is the metrics of each glyph, because that's what it needs to do layout calculations. We need to try to fit into this framework, if possible.