How to move forward with fonts on X is a worthy discussion and I'm glad to see people thinking about it.
I'd like to add a bit of input but from a different perspective. There has been a lot of discussion about X fonts recently in the mozilla world. This has caused me to look at X fonts from many directions. X fonts are currently lag fonts on the Mac and Microsoft Windows. I believe that this is directly caused by the choice to put font handling on the X server. The choice to put X font handling on the server as opposed to the client has some advantages (feel free to add more): sharing a common resource => memory savings the pixels are at the X server => minimal network bandwidth The choice to put X font handling on the server as opposed to the client has some disadvantages (feel free to add more): New font types require a X server (or X font server) upgrade which means it takes a long time for it to propagate on to users desktops since upgrading one's X server (or font server) is not commonly done except when the OS is upgraded or when a user gets a new system. It is hard to get new font information such as TrueType's GSUB, GPOS table down to the client. Any efficient way basically requires a X protocol upgrade/change. Changing the X protocol will take a long time since it requires people to agree on the protcol change and then the X servers in the field to be upgraded. It is hard to get the fonts to the printer. This is an area where X has lacked for a long time. >From my perspective the client-side vs server-side font choice boils down to: server-side font handling: most memory efficient most network bandwidth efficient client-side font handling: fastest way to get new features in While I said that server-side font handling is most memory efficient this is not always the case. If an app wants one large glyph (or one CJK glyph) the X server currently renders the entire set of characters which uses a lot of server memory (anyone know if Xfs does incremental rasterization?). This can be fixed (and should be fixed) but even when it is fixed it will take a while for the bulk of users to see the benefit because it is on the server side and requires a X server upgrade. While I said that server-side font handling is most network bandwidth efficient this is not always the case. If an app want one glyph from a font with a large amount of glyphs (think Unicode fonts) the X server currently has to send the per-glyph metrics for the entire set of characters (1). I don't know whether Keith directly considered this issue when he designed Xft or just thought "I can make a big improvement in X fonts and get it into the users hands (without a protocol change)". Either way I agree with his choice to have Xft do client side rendering. It allows new features to get into the field without requiring a server upgrade every time a new feature comes along. I believe that Xft's choice to do client-side font handling will lead to a vast improvment in X fonts over the next few years. A couple of things to note about Xft: Xft uses the Xrender extension to draw which give relatively good network performance since Xft/Xrender does require the glyphs to be sent up to the server (once) but Xft does not require the per-glyph metrics to be sent down from the server to the client. Xft is relatively memory efficient since apps only generate per-glyphs metrics for the glyphs they actually use and (assuming I understand this) the glyphs at the server are shared. -- Brian Stell Notes: 1: There si a trick an app can do using XLFD to workaround downloading the entire per-glyphs metrics for a font. This trick involves modifing the font XLDF name to specify a subset of glyphs. This can only work if "an app knows ahead of time what characters it needs". While this could be true for simple display programs it cannot be true for work processors. It also cannot be true for browsers which start displaying the page before the entire page is received (makes slow modem display tolerable). _______________________________________________ Fonts mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/fonts