From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: YAMAMOTO Mitsuharu Newsgroups: gmane.emacs.devel Subject: Re: Printing Date: Sat, 04 Apr 2009 11:44:27 +0900 Organization: Faculty of Science, Chiba University Message-ID: References: <5f0660120903280331y780c80b7i57a8115dc4b029eb@mail.gmail.com> <49CE3A84.9070705@swipnet.se> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: multipart/mixed; boundary="Multipart_Sat_Apr__4_11:44:27_2009-1" X-Trace: ger.gmane.org 1238813097 24920 80.91.229.12 (4 Apr 2009 02:44:57 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 4 Apr 2009 02:44:57 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Apr 04 04:46:15 2009 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Lpvtb-00044r-Q6 for ged-emacs-devel@m.gmane.org; Sat, 04 Apr 2009 04:46:13 +0200 Original-Received: from localhost ([127.0.0.1]:32891 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LpvsD-0005Go-K6 for ged-emacs-devel@m.gmane.org; Fri, 03 Apr 2009 22:44:45 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Lpvs7-0005Gh-UR for emacs-devel@gnu.org; Fri, 03 Apr 2009 22:44:39 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Lpvs2-0005GV-KW for emacs-devel@gnu.org; Fri, 03 Apr 2009 22:44:38 -0400 Original-Received: from [199.232.76.173] (port=56898 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lpvs2-0005GS-G1 for emacs-devel@gnu.org; Fri, 03 Apr 2009 22:44:34 -0400 Original-Received: from ntp.math.s.chiba-u.ac.jp ([133.82.132.2]:56876 helo=mathmail.math.s.chiba-u.ac.jp) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Lpvs1-0006YP-7q for emacs-devel@gnu.org; Fri, 03 Apr 2009 22:44:34 -0400 Original-Received: from church.math.s.chiba-u.ac.jp (church [133.82.132.36]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id 44A302C40 for ; Sat, 4 Apr 2009 11:44:27 +0900 (JST) In-Reply-To: User-Agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (=?ISO-8859-4?Q?Shij=F2?=) APEL/10.6 Emacs/22.3 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) X-detected-operating-system: by monty-python.gnu.org: NetBSD 3.0 (DF) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:110055 Archived-At: --Multipart_Sat_Apr__4_11:44:27_2009-1 Content-Type: text/plain; charset=US-ASCII >>>>> On Thu, 02 Apr 2009 18:39:24 +0900, YAMAMOTO Mitsuharu said: > I tried making a really preliminary proof-of-concept cairo port. :-) > It's still rough and has several glitches/limitations, but at least > it can generate a "resolution-independent screenshot" PDF as > attached. Maybe I'll clean up the code this weekend and hopefully > post a patch. Here's the patch for the Emacs 23.0.92 pretest (not the trunk HEAD). * No configure support. The easiest way would be to compile it with the GTK+ support that is already linked with cairo libs. Add -DUSE_CAIRO to CFLAGS to activate the cairo code. * With an experimental function (x-export-frame-image FRAME TYPE), you can get the current FRAME screenshot as a unibyte string in TYPE format. TYPE can be 'pdf, 'ps, 'png, or 'svg if the installed cairo supports their formats. * Currently, texts, rectangles (filling and stroking), and trapezoids for reliefs are drawn using cairo by hooking the corresponding drawing routine calls in xterm.c. They use X11 GC (with extension data) for colors and clipping rectangles, but operations on them can easily be ported to non-X11 (e.g., terminal-only) environments just like the Carbon port. * Images could also be drawn with cairo, but I didn't do that because the image drawing in xterm.c depends on X-specific data structures. As a result, you can't see any images in the exported screenshot as of now. * Stipples are ignored (both on screen and exported one). * Exported png images seem to be incorrect in some cases. I suspect it has something to do with cairo's cluttering the activated FT_Size mentioned in ftcrfont.c, but I'm not sure. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp --Multipart_Sat_Apr__4_11:44:27_2009-1 Content-Type: application/octet-stream; type=gzip Content-Disposition: attachment; filename="emacs-23.0.92-cairo.patch.gz" Content-Transfer-Encoding: base64 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 --Multipart_Sat_Apr__4_11:44:27_2009-1--