Say goodbye to core X fonts
- From: Owen Taylor <otaylor redhat com>
- To: gtk-i18n-list gnome org, gtk-devel-list gnome org
- Subject: Say goodbye to core X fonts
- Date: 15 Apr 2003 01:59:30 -0400
I'm just about ready to delete the pangox backend from the HEAD
branch of Pango.
To reiterate the reasons:
- With Xft2, there is no good reason that anybody should need
to use core X fonts rather than Xft.
- Xft2 and current versions of FreeType can access bitmap
fonts in BDF or PCF format.
- Xft2 provides code for rendering via the core protocol
on displays that don't support the RENDER extension
- The antialiased rendering fallback performs fine on
local displays. On remote displays, the non-antialised
fallback rendering mode of Xft can be used and provides
quite acceptable performance:
Even antialiased rendering can be made reasonably on remote
displays with a bit of enhancement to Xft, see:
- The limited capabilities of core X fonts cause problems
for extending Pango. Adding things like rotated text isn't
practically feasible while we have to support core X fonts.
- Most of the X backend modules are unmaintained; in addition
basically *all* of the X backend modules other than the
basic-x module require specialized fonts that aren't
On the other hand, the Xft backend makes good use of
standard font formats and widely available fonts.
- The PangoX backend has serious performance problems, and
it's not worth trying to fix them.
Problems that need to be dealt with, or at least thought
- Existing GTK+ programs have have a library dependency
on libpangox-1.0.so. So, we'll have to provide a dummy
libpangox-1.0.so so that these programs continue
- There may be some programs that use the PangoX
backend *directly*. The only case I'm actually aware
of this is the VTE terminal library. There's nothing
much we can do here; once the backend is gone, it's
gone. For VTE, it would actually help to stub out
all the PangoX API functions; that would keep old
versions of VTE starting up as long as they didn't
try to use the PangoX functions. (And VTE won't
use PangoX if Xft is available.)
- gdk_font_from_description[_for_display]() uses the
PangoX backend directly to find an X font matching
the font description.
My idea here is to simply do a really simply match
to find *some* font with the right charset, and
completely ignore the PangoFontDescription passed in.
[Note that this function causes the Pango X backend
to be initialized as soon as you call it. And for the
first program on the display that will take a couple
of seconds. So, it's always been a really bad idea
to call it.]
] [Thread Prev