Say goodbye to core X fonts

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
   widely available.

   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 So, we'll have to provide a dummy so that these programs continue
   to run.

 - 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.]


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