home *** CD-ROM | disk | FTP | other *** search
- @#introduction
- Getting the best from the Acorn Outline Font Manager
- ====================================================
-
- @%drawing#Drawing characters
- @%configure#Configuration commands
- @%notes#Miscellaneous Notes
-
- This document describes some aspects of RISC OS' new Outline Font Manager,
- and contains some hints as to how to get the best from it. The font manager
- is a complex piece of software which must sometimes make delicate tradeoffs
- between speed, space, and font quality. Getting this completely optimal
- involves reading the user's mind and predicting the future, both of which
- most computers still find a little tricky.
-
- The fonts controlled by the Font Manager live in files in some filing
- system, usually inside a directory called !Fonts. Although it can still read
- the font files used in the old Font Manager, the recommended form in which
- they now exist defines each character by its *outline*. This can then be
- scaled to any desired size, when rendering the character on a printer or on
- the screen.
-
- @#drawing
- Two sophisticated tricks are used to improve the quality of the rendered
- fonts, and one sophisticated trick to improve the speed of the overall
- system.
-
- The first is called *anti-aliasing*: rather than just rendering the
- characters using black and white pixels, grey pixels are also used to make
- curves look smoother, and to provide a better approximation to the desired
- image when few pixels are available. This results in an astonishing jump in
- quality when few pixels are available, such as on the screen. The old Arthur
- 1.20 Font Manager also used this.
-
- The second is called *hinting*. This means subtly altering the outline of
- the character being rendered in ways that depend on the target pixel grid.
- This allows properties concerning the symmetry of the character to be
- accurately preserved when the character is arbitrarily scaled. This is
- particularly useful when grey pixels are not available (such as on most
- printers). This is the major innovation of the new Outline Font Manager,
- previously such algorithms have only been in general use inside expensive
- PostScript printers. Acorn's implementation of this is so effective that
- many people find hinted character quality on the screen perfectly acceptable
- even without anti-alasing.
-
- The performance trick is called *cacheing*. Unfortunately, loading a
- character's outline from a file and computing a bitmap from it (using
- hinting and/or anti-aliasing) takes time. In order to get round this, such
- bitmaps are retained in the font manager when they have been computed, in
- case they are needed again. This is where predicting the future comes in: of
- the many hundreds and thousands of characters and sizes that the font
- manager must cache (e.g. retain), which ones are worth keeping? All that the
- Font Manager can do is to keep as many as it has space for, discarding ones
- that have not been used for some time.
-
- As the user of this system you can provide input to this process in the
- following way (this is where the Font Manager's inability at mind-reading is
- annoying).
-
- First, only you can decide how much memory the Font Manager may use for
- cacheing, and how much you need for other things. This is done by setting
- the Font cache size in the Task Window, or via *Configure FontSize (the
- latter will set the power-on default value).
-
- You can also spend disc memory to main certain operations faster. It's
- possible to save extra files inside !Fonts that contain prescaled,
- anti-aliased files
-
- Second, only you can decide how important character quality is to you, and
- how much time and memory you are prepared to spend on the quality of the
- results you see on the screen. Different people have different perceptions
- of "quality" too.
-
- @#configure
- You can control this using several new *Configure commands, as follows. If
- you do not touch these values then you will find that reasonable defaults
- are set up.
-
- *Configure FontMax2
- This sets the maximum size of anti-aliased characters, in pixels. If a
- character is larger than this value then anti-aliasing will not be used.
- Anti-aliasing quadruples the size of retained bitmaps in the cache, and
- slows down conversion from outlines too. Set this to 0 to turn anti-aliasing
- off entirely.
-
- *Configure FontMax3
- This sets of the maximum size of any form of retained bitmap. If a character
- to be drawn is larger than this then the outline will be drawn directly to
- the screen (or printer) with no cacheing happening at all. This is so that
- document headings, etc., where a few larger characters appear, do not flush
- everything else out of the font cache.
-
- The value is set in pixels (rather than points) because it is the pixel size
- that affects cache usage. This corresponds to different point sizes on the
- screen and on the printer.
-
- *Configure FontMax4
- If this is non-zero then *leulaGeout