From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Emacs canvas support Date: Wed, 29 Apr 2020 21:19:51 -0400 Message-ID: References: <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> <83a72uxffz.fsf@gnu.org> <20200429195930.GA29703@tuxteam.de> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="126321"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: Eli Zaretskii , emacs-devel@gnu.org To: tomas@tuxteam.de Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Apr 30 03:22:55 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 1jTxuh-000Wm5-OG for ged-emacs-devel@m.gmane-mx.org; Thu, 30 Apr 2020 03:22:55 +0200 Original-Received: from localhost ([::1]:56890 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTxug-0007sL-QJ for ged-emacs-devel@m.gmane-mx.org; Wed, 29 Apr 2020 21:22:54 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:53686) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTxt3-0006NI-DY for emacs-devel@gnu.org; Wed, 29 Apr 2020 21:21:16 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTxss-0004iR-Pv for emacs-devel@gnu.org; Wed, 29 Apr 2020 21:21:12 -0400 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:42517) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jTxro-0004GY-3z; Wed, 29 Apr 2020 21:19:56 -0400 Original-Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id E37898108F; Wed, 29 Apr 2020 21:19:54 -0400 (EDT) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id DE1E78072A; Wed, 29 Apr 2020 21:19:52 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1588209592; bh=C/En3JbmMxjQVx63kG7p7ykxLWDhSvXeMHIlxKnob+I=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=Z78QRspunGuYOVAO1L9aDVPMxQAEmm7dZh8PI5mWK91GFjUHJdBgV7k7GVpyoX0QL OpH4XO/nV8JaNoAE55/FriVGX0y/mBkG51LF4PA+J5oo/jBlO/8u6O+gxftiyLFcjq ASUtmczXugsrk60dPdA6dJK2i/V12aGpCaRoHVP3dNHZ/YVcramtI3vnyAoSa3Rtbn ouejXG3mTsw5UZfpHPVdVaI5f/0VxOm4H1bvkCiyL/4mj7CKO9yBIwGsI7yxa9ms93 /AYGrMabsmjKyRgJyTAsPvPENV87xkke+E5H0jrx7dpOIra3YILdofDS58El3Zl2K+ rORKd3pGHZHuA== Original-Received: from alfajor (unknown [216.154.3.202]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 48B35120312; Wed, 29 Apr 2020 21:19:52 -0400 (EDT) In-Reply-To: <20200429195930.GA29703@tuxteam.de> (tomas@tuxteam.de's message of "Wed, 29 Apr 2020 21:59:30 +0200") Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/29 21:08:16 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Received-From: 132.204.25.50 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:248195 Archived-At: > Now imagine there's a (graphical) line going from (text) display > line 3 to 7. You are not implying that we have to segment that > into four chunks, one per text line? I think it would make more sense to treat the overlaid canvas as a completely separate pixmap: when we get an request to redraw a particular area of the screen, we'd ask the current redisplay code to redraw the corresponding text content and then we'd ask the canvas code to draw on top of it. So for rendering of the canvas code we don't need to know which part of the canvas cover which characters, we just render the glyph matrix into a pixmap, render the canvas into another pixmap and then combine them onto the screen. Stefan