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 21:45:50 +0300

> Date: Sun, 17 May 2020 20:28:02 +0200
> From: Julius Pfrommer <address@hidden>
> Cc: address@hidden
> 
> Cairo is a vector-drawing library and only responsible for the "glass"
> of each frame (called the "canvas" in other communities). All the
> event-handling logic, menu-drawing, etc. is untouched by it.

Which is what I said.  So Cairo alone will be unable to provide all
the GUI features we need, we will need something else.  And that
something is done different on different platforms.

> Looking at xterm.c, it is littered with #ifdef USE_CAIRO.

Yes, because Cairo and Xlib are two quite different ways of doing GUI
display.

> A first step could be to assume Cairo on X-based platforms and remove
> duplicate code.

We are going there, but it takes time.  We've just made Cairo the
default build on master; it couldn't be that previously because the
Cairo code had several grave bugs which took us time to fix.

> The second step could be to decouple the "glass" from
> the tookit "chrome" more thoroughly in xterm.c. That is easier to do
> when a Cairo-canvas can be assumed for drawing.
> 
> Then, that entire "glass" could be reused by other platforms once they
> have a Cairo-canvas for drawing as well. (Modulo the XWidget support
> that depends on GTK.)
> 
> Once a switchover is in reach, it can live separately to the existing
> platform-specific "glass" until all the kinks are worked out.

Sounds like a good plan for several years, maybe more, of extensive
development on several platforms.  Can I interest you in doing this?

And meanwhile, we also need to come up with enough new features every
2 - 3 years to keep our users engaged and attract new ones.



reply via email to

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