From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Can we go GTK-only? Date: Mon, 31 Oct 2016 17:57:51 +0200 Message-ID: <838tt4pl34.fsf@gnu.org> References: <24db2975-17ca-ad01-20c8-df12071fa89a@dancol.org> <4615E73A-19E2-4B79-9889-D3FA686DDDE6@raeburn.org> <11E61536-1345-4B81-999D-2E17F8B14C62@dancol.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1477931524 22488 195.159.176.226 (31 Oct 2016 16:32:04 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 31 Oct 2016 16:32:04 +0000 (UTC) Cc: dancol@dancol.org, raeburn@raeburn.org, emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Oct 31 17:32:00 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1c1FV7-00053j-6W for ged-emacs-devel@m.gmane.org; Mon, 31 Oct 2016 17:31:57 +0100 Original-Received: from localhost ([::1]:36847 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c1FV9-0003gV-Rd for ged-emacs-devel@m.gmane.org; Mon, 31 Oct 2016 12:31:59 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60233) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c1Exy-00064s-G1 for emacs-devel@gnu.org; Mon, 31 Oct 2016 11:57:43 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c1Exu-0002Fq-Ks for emacs-devel@gnu.org; Mon, 31 Oct 2016 11:57:42 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:49528) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c1Exu-0002Fi-IS; Mon, 31 Oct 2016 11:57:38 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3137 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1c1Ext-0004Bj-ME; Mon, 31 Oct 2016 11:57:38 -0400 In-reply-to: (message from Stefan Monnier on Sun, 30 Oct 2016 19:57:31 -0400) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:209023 Archived-At: > From: Stefan Monnier > Date: Sun, 30 Oct 2016 19:57:31 -0400 > Cc: Ken Raeburn , emacs-devel@gnu.org > > Good, point we can decouple the two a bit more this way. Actually, we > already have this copy since we have 2 sets of matrices. So we just > need to say that the "current matrix" belongs to the GUI thread/process, > while the "desired matrix" belongs to the redisplay. And the "send > a copy" is done by comparing the two, so only the part that changed is > sent (and so the GUI thread gets to know which part needs to be redrawn). This will need some very careful design, because currently the data structures we pass the terminal-specific backend is intimately tied up to information known only to the display engine, like the faces (identified just by their numbers), the font and font driver to use, the window and the frame where to draw the glyphs, etc. Dividing this between 2 threads, let alone processes, is not easy.