Posted Feb 11, 2008 9:40 UTC (Mon) by jamesh
In reply to: what about....
Parent article: LCA: Two talks on the state of X
Pretty much any application ends up needing font metrics on the client side to handle things like wrapped text, or sizing a widget to fit a string of text.
The old font system had a number of problems related to this, namely:
- To determine the metrics of a font at a particular size, it would rasterise it. This gets expensive for large fonts or large font sizes.
- As i18n has improved, today's fonts have more glyphs than those in the past. This increases the cost of determining the metrics ...
- While the font information provided by the old font system was okay for basic rendering of latin text, it completely fails for certain scripts that require complex shaping. The information needed to render these fonts are usually found in OpenType tables that are not exposed.
Now if you are running into speed problems with client side font rendering to remote displays, there are a few things you should check. The most important one is to check if the display supports the RENDER extension.
If it does not, then you should get a noticeable speed increase by disabling anti-aliasing. With anti-aliasing enabled but without RENDER, the X client downloads the background pixmap underneath where it will render the text, composites the text locally then sends the result back to the server. With anti-aliasing disabled, it can simply send the glyphs to the server to draw directly (which is comparable to what happens in the RENDER case, anti-aliased or not).
to post comments)