Subject: bug#28236: closed (Re: bug#28236: 'configure --with-cairo' causes 'emacs -font' to fail)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 08 Jun 2019 05:14:02 +0000

Your bug report

#28236: 'configure --with-cairo' causes 'emacs -font' to fail

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
28236: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=28236
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#28236: 'configure --with-cairo' causes 'emacs -font' to fail
From: YAMAMOTO Mitsuharu <[email-masked]>
To: Robert Pluim <[email-masked]>
Cc: [email-masked], [email-masked], [email-masked], [email-masked]
Date: Sat, 08 Jun 2019 14:13:44 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

On Tue, 04 Jun 2019 16:47:56 +0900,
YAMAMOTO Mitsuharu wrote:
> 
> On Thu, 13 Dec 2018 23:56:21 +0900,
> Robert Pluim wrote:
> > 
> > >> So xfns.c only initializes the xfont driver when not using Cairo. I
> > >> made the obvious changes there, and 'emacs -Q -fn 7x14' starts up, and
> > >> 'C-u C-x =' tells me:
> > >> 
> > >>  x:-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1 (#x68)
> > >> 
> > >> Unfortunately *scratch* does not (re-)display properly
> > >
> > > Can you tell more details about this improper redisplay?
> > 
> > I see text for the menu-bar, but *scratch* looks empty (and thereʼs no
> > text displayed in the mode-line). The text is actually there in
> > *scratch*, though.
> > 
> > I donʼt think this is a viable path to look at, especially given Ari's
> > workaround of copying the required fonts.
> 
> Previously the cairo drawing code does its own double-buffering using
> the image surface, where all the drawing should happen on the client
> side and not compatible with X core fonts that are drawn on the server
> side.  Copying back the result of server side drawing is not
> impossible, but inefficient.
> 
> Recently, I've made a change to the cairo drawing code in the master
> so it draws into Xlib surfaces instead of image ones if the X Double
> Buffer Extension is available.  On top of that, it is rather
> straightforward to cope with X core fonts.
> 
> I implemented both in the attached patch.  The former corresponds to
> the case that the frame parameter `inhibit-double-buffering' is t, and
> the latter to nil.  I think the latter is usable, but the former is
> not.  The code for the former is not an total waste because we can use
> it for exporting displayed contents to bitmap images, i.e.,
> (x-export-frames FRAME 'png).  The same approach cannot be used for
> exporting to outline images (PDF or SVG), so characters in X core
> fonts are replaced with hollow boxes in such cases.

Pushed to master as faf10bd8eb3.

				     YAMAMOTO Mitsuharu
				[email-masked]

Subject: 'configure --with-cairo' causes 'emacs -font' to fail
From: [email-masked]
To: [email-masked]
Date: Fri, 25 Aug 2017 22:57:59 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello.

I've been checking out the master branch periodically for quite a while but never
configured it with cairo.
Today I gave it a try, appending the option to my regular option list, as below.

$ git show HEAD
commit 579890f1c7703cd8ecfe2e56f52cc06fcd1b2442
Author: Eli Zaretskii <[email-masked]>
Date:   Fri Aug 25 18:01:19 2017 +0300

  bash# ./configure --with-xft --with-x-toolkit=lucid --with-dbus \
                    --with-cairo && make ...
  => ... [ ok ]
The resulted executable complains about a font that otherwise
"orthodoxically" built one never has done (as the font really exists,
 which xlsfonts double-proves:

  bash# xlsfonts | grep 7x14
  =>7x14
).

  bash# src/emacs -Q -font 7x14
  => Font ‘7x14’ is not defined

This effect is observed in earlier commits as well. (I first suspected the
failure was introduced by a commit in the range started from my last
pull (about two weeks ago)).

I've not investigated any further, still hope this report is not in
vain.

Using this chance, thank you all for working and maintaining this
wonderful piece of software!

Andrelkin.