Photon font server
phfont [-A] [-D directory] [-d directory]
[-E rule] [-e file] [-I]
[-i file] [-L] [-l list]
[-N number] [-n name]
[-U family] [-u file] [-X]
- -A
- Force all text bitmaps to be anti-aliased wherever possible.
Only scalable fonts can be anti-aliased.
- -D directory
- Specify the configuration directory that holds the
fontdir, fontext, fontmap, and fontopt files.
The default is /usr/photon/font_repository.
- -d directory
- Specify the font directory. All configuration files and font files
are assumed to be in this directory.
The default is /usr/photon/font_repository.
- -E rule
- Specify the extension/dropout rule to use. The fontext file may contain a number of
different extension rules (e.g. language rules that search the Chinese, Japanese, or Korean character
set) of which only one is active. By default, the first "+"
rule in the fontext file is used.
- -e file
- Specify the font extension/dropout file. This file contains rules that extend a base output character set to
include multiple font files (e.g. to add special symbols or languages other than English).
The default file is fontext.
- -I
- Use strict international mapping rules.
- -i file
- Specify the font index file. This file contains header information of every known/usable font in the
system and allows the font server to quickly perform font mappings and
character dropouts without accessing the disk. The default file is fontdir.
- -L
- Deny local metrics loading.
- -l list
- Specify a list of fonts to preload and lock into cache.
You can use this to ensure fast access to common
fonts. The list is formatted as a comma-separated list of font names. For example:
helv10,phcursor,cour10b,swissi
Default is none.
- -M
- Disable the display of missing-character symbols. By default, whenever a character is rendered
for which no definition can be found, the font server displays an empty rectangle.
- -N number
- Specify the number of times the font manager tries to attach a device before exiting.
Default is 15.
- -n name
-
Specify the name to register the font server with. By default the value of the PHFONT environment
variable is used; if this isn't set, the prefix /dev/phfont is used.
- -U family
- Specify the font family to use for unknown fonts. Whenever a named font doesn't exist and can't be
resolved by explicit mapping entries, this default font family is used.
By default the ? entry in the fontmap file is used.
- -u file
- Specify the unknown font-mapping table file. This file creates font synonyms (or virtual fonts) and
configuration rules for augmenting bitmap fonts with scalable fonts. The default file is fontmap.
- -X
- Prevent the font server from terminating after the last client disconnects. The default is for the font
server to exit once all clients have terminated.
|
Options can be passed through the -F option to io-graphics when not running an external font server.
The format is slightly different, based on the getsubopt() format. For example:
io-graphics -F"-d=/usr/photon/font_repository,-A,-N=10" ...
See PfSetOptionsDll() for more information. |
The phfont utility provides all font services to Photon applications and drivers. This includes the calculation of text extents and metrics and the generation of bitmaps representing character strings. It also maintains a central cache of font metric and bitmap data.
The phfont utility loads the phfont.so DLL to provide font rendering services.
The phfont.so loads DLLs located in /lib/dll/font which provide rendering services for specific font types, such as PHF, TTF, TTC, PFR, Stroke, etc.
If a particular type of rendering is not desired, you can remove the specific dll. To determine which services are provided
by each DLL, use the use dll_name command, which displays the usage message for that particular DLL. If an external font
server is not started, io-graphics attempts to invoke a font server instance.
|
For optimum performance, it is best to run an external fontserver. Because the graphics driver
still invokes a font library instance, there is no negative performance effect in using the external fontserver.
Since the graphics driver runs at a priority higher than other applications, it processes the draw stream without
being interrupted by outside applications requesting font services.
However, if you are more concerned about memory footprint,
don't run an external font server, though there is the potential of some graphic processing slow down. Any increased
memory footprint is mostly data, since both instances share common code libraries. |
Start the server:
phfont -d /usr/photon/font_repository &
|
Normally the font server is started from the ph script. |
The rendering DLLs used by the font server are located in /lib/dll/font/*.dll.
These files support rendering for at least these font types:
- TrueType
- TrueType collections
- Bitstream TrueDoc PFR
- Photon Bitmap
- Bitstream Stroke
- Bitstream Speedo
- Bitstream T2K
- Adobe Type1
- Adobe Type2
Use the use command to view the font types supported by a DLL.
Other files used by phfont include:
|
Don't edit these files by hand! Use the graphical tool
fontadmin
to
configure the phfont files. |
- fontdir
- Directory of known fonts. Each entry in this file contains information such as the name
and type of the font, its size and style, a textual description of the
font family, and the range of characters defined within the font.
To be available to an application, at least one font must be defined in this configuration file.
Entries in this file are static, they can't be loaded dynamically.
- fontext
- A set of extension rules to handle character dropouts (missing characters).
- font-traplist
- This file contains a dynamic list of fonts.
The ph script regenerates this file if it does not exist or if the contents of the
font_repository have changed. Each entry in the font-traplist file
contains information such as the name and type of the font, its size and style,
a textual description of the font family, and the range of characters defined within the font.
You may uninstall fonts specified in this file by deleting entries in
/etc/system/config/font-traplist.
- fontmap
- A set of mapping rules. There are two types:
- Synonym entries, that have the form:
newfont = realfont
In this mapping rule, newfont doesn't exist, but realfont does.
If you try to use newfont as a font name, it's mapped to realfont.
The following special-case entry is a default mapping for any unknown font name:
? = realfont
For example, if geneva = helv, then the font geneva12 is translated to helv12.
- Scaling entries, that have the form:
font = {when}scalefont
In this mapping rule, both font and scalefont must exist.
When there isn't an exact PHF file for font, then a
scaled version of scalefont is made according to the when character used:
- *
- always scale when no exact PHF file exists for font
- +
- scale only when above the largest size PHF defined for font
- -
- scale only when below the smallest size PHF defined for font
- #
- scale when outside the range of sizes of PHF files for font
For example, if the files helv08.phf,
helv10.phf, and helv12.phf are present
and swiss is a scalable font, the following translations
would be made:
Rule |
Input font |
Translated font
|
helv = *swiss
|
helv06
|
swiss06
|
|
helv11
|
swiss11
|
|
helv23
|
swiss23
|
helv = -swiss
|
helv06
|
swiss06
|
|
helv11
|
helv10
|
|
helv23
|
helv12
|
helv = +swiss
|
helv06
|
missing-symbol box
|
|
helv11
|
helv10
|
|
helv23
|
swiss23
|
helv = #swiss
|
helv06
|
swiss06
|
|
helv11
|
helv10
|
|
helv23
|
swiss23
|
In all cases, the fonts helv08, helv10, and
helv12 (known valid fonts) would be used directly.
- fontopt
- Deprecated, no longer used.
- fontopts
- Contains the command-line options, one option per line.
Options are located under the appropriate schema section. For example, phfont-specific options are
located in the [io-font] section. Options targeted towards a specific rendering DLL are divided into
subsections: boolean, numeral, string. They are formatted as follows:
[dll id-subsection-schema]
The font server may run in one of two modes: server mode, or private client DLL mode. In order
to differentiate options between the two, by default there is a "dll" schema. If the font server is running
in server mode, it searches for options under [dll id-subsection], but if the font server is running in
client DLL mode, it searchs for options under [dll id-subsection-dll]. If no options are specified, the
default values are used.
- mappings
- For internal use only. Entries in this file override the
descriptive name (e.g. "Helvetica") for a particular font stem ("helv").
- PHFONT
- The default name with which to register the font server.
bdftophf2,
fontadmin,
mkfontdir
Using the Photon microGUI
and
Configuring Your Environment
in the Neutrino User's Guide