emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: When and how to register various font backends


From: YAMAMOTO Mitsuharu
Subject: Re: When and how to register various font backends
Date: Fri, 14 Jun 2019 19:52:07 +0900
User-agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM/1.14.9 (Gojō) APEL/10.8 EasyPG/1.0.0 Emacs/25.3 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)

On Sat, 08 Jun 2019 04:40:45 +0900,
Eli Zaretskii wrote:
> 
> The question is how to implement this preference.  In the code that is
> currently on master, you will see one way of implementing it in
> w32fns.c, where the Windows code creates GUI frames (look in
> x-create-frame).  Basically, after determining whether Uniscribe was
> explicitly requested, this implementation registers or doesn't
> register Uniscribe for each new frame.  This means the backends to be
> available to a frame must be specified at frame creation time, or be
> known by that time.
> 
> Yamamoto-san suggested a slightly different way of implementing the
> same idea; I will let him explain his proposal in more detail.

Attached is my proposal.  The idea is to register all the drivers in
x-create-frame as before, but tweak the function font_update_drivers
(in font.c) so it only chooses "unsuperseded" drivers if the user did
not explicitly specify font backends (i.e., if NEW_DRIVERS is t).
Unlike Eli's current code in w32fns.c, this leaves the room to change
the font backend from uniscribe to harfbuzz (and vice versa) for the
same frame.  (You can't change xft/frcr to xfthb/ftcrhb on X
regardless of this patch because Bug#23386).

                                     YAMAMOTO Mitsuharu
                                address@hidden

Attachment: font-driver-supersede.diff
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]