From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Jan D." Newsgroups: gmane.emacs.devel Subject: Re: Cairo branch. Date: Thu, 12 Feb 2015 16:01:11 +0100 Message-ID: <54DCC037.7030202@swipnet.se> References: <54DB723D.5030303@swipnet.se> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1423753320 32543 80.91.229.3 (12 Feb 2015 15:02:00 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 12 Feb 2015 15:02:00 +0000 (UTC) Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Feb 12 16:01:54 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YLvH7-0007fk-5T for ged-emacs-devel@m.gmane.org; Thu, 12 Feb 2015 16:01:53 +0100 Original-Received: from localhost ([::1]:50604 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLvH6-0008Vx-NL for ged-emacs-devel@m.gmane.org; Thu, 12 Feb 2015 10:01:52 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43071) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLvGd-0008Va-A2 for emacs-devel@gnu.org; Thu, 12 Feb 2015 10:01:30 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YLvGY-0005O5-JK for emacs-devel@gnu.org; Thu, 12 Feb 2015 10:01:23 -0500 Original-Received: from mailfe08.swip.net ([212.247.154.225]:47843 helo=swip.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLvGY-0005ND-D2 for emacs-devel@gnu.org; Thu, 12 Feb 2015 10:01:18 -0500 X-T2-Spam-Status: No, hits=0.8 required=5.0 tests=BAYES_50 Original-Received: from hosdjarv.se (account mj138573@tele2.se [46.59.42.57] verified) by mailfe08.swip.net (CommuniGate Pro SMTP 5.4.4) with ESMTPA id 573493594; Thu, 12 Feb 2015 16:01:15 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 212.247.154.225 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:182954 Archived-At: Stefan Monnier skrev den 2015-02-11 22:49: >> I have pushed a cairo branch. > > Can you give a short summary of what it brings (and/or what it could > bring)? > YAMAMOTO Mitsuharu made the patch to demonstrate printing, so that is new (see x-print-frames-dialog or the Printing section in xfns.c). Otherwise it is just a step to keep up with the times, i.e. server side (as in X11 server) rendering is going away as it seems. So Emacs must at some point develop client side (cairo) rendering. It could form a basis for porting to other window systems like Wayland, that has no rendering of its own, but relies on cairo. That takes more effort, the cairo branch is X only. Note that porting to Wayland isn't as simple as switching rendering, the whole event handling must be implemented. As for user visible changes, there is nothing, except printing. The current X rendering is still better, for speed and image support. Image support when using cairo is lacking, PNG only. Work needs to be done here (hint, hint :-). I think using cairo and going double buffer in Emacs is easier than making X double buffered. The main obstacle to double buffering is the way Emacs does redraw, i.e. not in the GUI loop, but outside it. This is tricky to change, as there are lots of flags in the redraw code that gets set and reset at various points. Figuring all that stuff out is not easy. Jan D.