From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: David Engster Newsgroups: gmane.emacs.devel Subject: Re: Emacs canvas support Date: Wed, 29 Apr 2020 18:14:55 +0200 Message-ID: <87o8rae0ao.fsf@randomsample> 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> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="101633"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.91 (gnu/linux) Cc: Eli Zaretskii , emacs-devel@gnu.org To: Po Lu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Apr 29 18:17:37 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 1jTpOx-000QHf-Nw for ged-emacs-devel@m.gmane-mx.org; Wed, 29 Apr 2020 18:17:35 +0200 Original-Received: from localhost ([::1]:49692 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTpOw-0005Jq-O1 for ged-emacs-devel@m.gmane-mx.org; Wed, 29 Apr 2020 12:17:34 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45172) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTpNS-0003an-Du for emacs-devel@gnu.org; Wed, 29 Apr 2020 12:16:15 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTpMa-0007T4-J6 for emacs-devel@gnu.org; Wed, 29 Apr 2020 12:16:02 -0400 Original-Received: from zplane.randomsample.de ([192.145.45.252]:51902 helo=randomsample.de) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTpMZ-0007Ka-UA; Wed, 29 Apr 2020 12:15:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=randomsample.de; s=a; h=Content-Type:MIME-Version:Message-ID:Date: References:In-Reply-To:Subject:Cc:To:From:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=HBPQD2eyDaLEcn3SYS/Rz2sBmkarh6yD8Mzsng7Lh4g=; b=FiTW4/KIF318Szi0Mo16pRkl0 rvUjeNpLQmD1e8Gv6qNaFZNH7d5NEfqx9W7JoOvMTciUkYmrEEIaOr1OT9FW2E8LzVobmOykUnF91 jGGJD7LWooQEXTm5tR0/nvpOt2QzXRbmE0S2M1mYkcm3b6L7mogMnPaOvADgC8fMNdy4+9xoTnoyy pevha9fb5RO+Ym4eKCw8qZsUxQ2E1+v16Fyuov7wBHt92PWPw5DIbQSoYOPwQPWxa+jFHz/pW4xlk +Vp96jfAKOA+tR2xAdIW+00T5SBDlF2yVyLHIlfiCBSPFdrcaEcLen8Js+OID1AyPjx23uSktW5yN F2fmOQNxA==; Original-Received: from ip5f5abaee.dynamic.kabel-deutschland.de ([95.90.186.238] helo=void) by randomsample.de with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jTpMO-0003mM-5K; Wed, 29 Apr 2020 18:14:56 +0200 In-Reply-To: <877dxy1smz.fsf@yahoo.com> (Po Lu's message of "Wed, 29 Apr 2020 18:41:08 +0800") Received-SPF: pass client-ip=192.145.45.252; envelope-from=deng@randomsample.de; helo=randomsample.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 12:14:59 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 192.145.45.252 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:248160 Archived-At: > While right now svg.el seems to have more features, it isn't > particularly well suited to displaying things quickly. > > In fact, my own bad experiences with using svg.el to draw rapidly > changing information inspired me to begin working on this. > > In the future, I hope that canvases also become more flexible than > svg.el. A nice goal would be to have everything cairo has. A while ago I played around with using Cairo primitives to draw in Emacs. While it would be nice to have something like a 'canvas object' to draw on, Eli is correct that you can achieve similar things already with SVG - it may be slow, but that could be fixable. IMHO, What would be much more exciting, is if you could draw directly over normal text. This would enable a whole new set of possibilities. For instance, I always liked visual diff tools like 'Meld' or 'Code Compare', but I don't see how you could do this with Emacs. Or things like proper indentation guides, or widgets inside text for code folding. Yes, those can be done in Emacs today, but it is very difficult to get right and often not really satisfactory (weird interactions between packages, too slow, etc.). I know the tricky part is not the drawing, but redisplay. I would have no idea how to handle this. -David