Draining the font swamp
mdz at ubuntu.com
Tue May 22 08:33:32 UTC 2007
On Mon, May 21, 2007 at 10:52:46AM -0400, Phillip Susi wrote:
> Matt Zimmerman wrote:
> > - Xfont, which provides font services (including selection and rendering)
> > through the X server. This is basically obsolete in favour of client-side
> > fonts.
> Why is this? Client side fonts are bad for several reasons:
This paper provides some of the rationale behind this movement:
"This approach had the advantage of limiting the amount of data that
text-based applications have to send to the server, but it also caused lots
of frustration among application developers. PDF or Postscript viewers for
instance need to be able to render fonts that are embedded in the document
they are displaying. Moreover applications need access to more than just
bitmaps in the fonts spec- ifications for precise rendering. Attempts to
extend the server-based font rendering model have all failed to solve all
problems. So, together with the introduction of Render, a radical decision
has been taken to move font rendering from the server to client
> 1) You end up with the mess you point out, where you have several
> different client side font systems.
Actually, those systems (apart from xft and fontconfig, the new standard for
that layer) evolved while most of us were still using server-side fonts, for
exactly the above reasons. Applications needed to do things with fonts
other than draw text on an X display.
> 3) Performance suffers. The X server is in the best position to render
> fonts using any hardware acceleration provided by the video card, and
> allows for those fonts to be shared by all applications, reducing
> duplication and waste. Also for remote X sessions, you want the fonts
> rendered on the server so much less data needs exchanged between the
> client and server.
This is why we have Xrender.
> Other than the fact that the client side implementations have advanced
> beyond the X server ones in recent times, is there any advantage to client
> side font rendering over server side? If not, then we should push to
> bring the client side advancements back into the server where font
> rendering belongs.
I'm inclined to follow X.org and our other upstreams in this regard, and
continue to embrace client-side fonts.
More information about the Ubuntu-devel-discuss