LaserWriter 2.0 ROM: Changes to Font Cache


Operation of the font cache has changed somewhat. Formerly there was a single
limit on the number of bytes occupied by a character in the cache; a character
larger than that would not be cached. Now there are two cache thresholds, upper
and lower. If a character is larger than the upper threshold (as determined by
the bounding box specified to 'setcachedevice'), it will not be cached,
otherwise it will be. If a character is cached and is larger than the lower
threshold, it will be compressed, otherwise it will be stored as a full pixel
array.

The two thresholds are manipulated by the new operators 'setcacheparms' and
'currentcacheparms', described below. The old operators, principally
'cachestatus' and 'setcachelimit', remain valid. PostScript programs rarely
deal with these operators.

Although they consume much less space in the font cache than full pixel arrays
(by a factor of up to 40), compressed characters require more computation to
reconstitute when they are needed. Reconstituting a compressed character is
still substantially faster than re-executing the original character
description. In systems printing at 300 pixels per inch or less (including the
LaserWriter), the default lower threshold is set so that characters up to about

20 points are stored as full pixel arrays while larger ones are stored in
compressed form. Caching of regular-sized body text occurs with the full pixel
array representation which is time-efficient while caching of large characters
occurs with the compressed representation which is space-efficient.
Published Date: Feb 18, 2012