emacs-devel
[Top][All Lists]
Advanced

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

Re: Unify the Platforms: Cairo+FreeType+Harfbuzz Everywhere (except TTY)


From: Eli Zaretskii
Subject: Re: Unify the Platforms: Cairo+FreeType+Harfbuzz Everywhere (except TTY)
Date: Sun, 17 May 2020 18:55:23 +0300

> Date: Sun, 17 May 2020 16:59:53 +0200
> From: Julius Pfrommer <address@hidden>
> Cc: address@hidden
> 
> Let me phrase the question differently: Would it be okay to have a hard
> dependency on the Cairo+FreeType+Harfbuzz (CFH) libraries, as they are
> available everywhere?

First, we need to establish that this is a solution, and for what
problem(s).  It is important to realize that the GUI backends we use
handle much more than just drawing text, they need to be able to
display GUI widgets, frame and window decorations (menu bar, tool bar,
scroll bars, the frame title, etc.), and much more.  Is the
configuration you propose capable of doing all that?  I don't think
the answer will be full and definitive until "Someone" walks through
all the APIs we implement in x/w32/ns/fns.c and x/w32/ns/term.c, and
makes sure they all can be covered.

Next, please be aware that we already made the decision to use
HarfBuzz as our main text-shaping engine.  X and w32 already use it;
for NS someone has to write the code (and they are not very likely to
do so because macOS users consider the native text shaping more
feature-rich).  Dropping the other font backends is a matter of time,
but it could take a long time.

In any case, the font backend is not the main issue here; in
particular, the likes of FreeType are hardly even seen except on very
low level of the code.  It's the other aspects of GUI code that
bothers me much more.

> Even on Linux, this would unlock quite a few simplifications. I count
> at least three font handling "backends" here.

Down to 2 and one deprecated one on master.  Bu again, font backends
is a relatively easy problem, and it is being dealt with.



reply via email to

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