5172
|
1 |
FreeType font driver for PCF fonts
|
|
2 |
|
|
3 |
Francesco Zappa Nardelli
|
|
4 |
<francesco.zappa.nardelli@ens.fr>
|
|
5 |
|
|
6 |
|
|
7 |
Introduction
|
|
8 |
************
|
|
9 |
|
|
10 |
PCF (Portable Compiled Format) is a binary bitmap font format, largely used
|
|
11 |
in X world. This code implements a PCF driver for the FreeType library.
|
|
12 |
Glyph images are loaded into memory only on demand, thus leading to a small
|
|
13 |
memory footprint.
|
|
14 |
|
|
15 |
Information on the PCF font format can only be worked out from
|
|
16 |
`pcfread.c', and `pcfwrite.c', to be found, for instance, in the XFree86
|
|
17 |
(www.xfree86.org) source tree (xc/lib/font/bitmap/).
|
|
18 |
|
|
19 |
Many good bitmap fonts in bdf format come with XFree86: they can be
|
|
20 |
compiled into the pcf format using the `bdftopcf' utility.
|
|
21 |
|
|
22 |
|
|
23 |
Supported hardware
|
|
24 |
******************
|
|
25 |
|
|
26 |
The driver has been tested on linux/x86 and sunos5.5/sparc. In both
|
|
27 |
cases the compiler was gcc. When back in Paris, I will test it also
|
|
28 |
on linux/alpha.
|
|
29 |
|
|
30 |
|
|
31 |
Encodings
|
|
32 |
*********
|
|
33 |
|
|
34 |
Use `FT_Get_BDF_Charset_ID' to access the encoding and registry.
|
|
35 |
|
|
36 |
The driver always exports `ft_encoding_none' as face->charmap.encoding.
|
|
37 |
FT_Get_Char_Index() behavior is unmodified, that is, it converts the ULong
|
|
38 |
value given as argument into the corresponding glyph number.
|
|
39 |
|
|
40 |
|
|
41 |
Known problems
|
|
42 |
**************
|
|
43 |
|
|
44 |
- dealing explicitly with encodings breaks the uniformity of freetype2
|
|
45 |
api.
|
|
46 |
|
|
47 |
- except for encodings properties, client applications have no
|
|
48 |
visibility of the PCF_Face object. This means that applications
|
|
49 |
cannot directly access font tables and are obliged to trust
|
|
50 |
FreeType.
|
|
51 |
|
|
52 |
- currently, glyph names and ink_metrics are ignored.
|
|
53 |
|
|
54 |
I plan to give full visibility of the PCF_Face object in the next
|
|
55 |
release of the driver, thus implementing also glyph names and
|
|
56 |
ink_metrics.
|
|
57 |
|
|
58 |
- height is defined as (ascent - descent). Is this correct?
|
|
59 |
|
|
60 |
- if unable to read size information from the font, PCF_Init_Face
|
|
61 |
sets available_size->width and available_size->height to 12.
|
|
62 |
|
|
63 |
- too many english grammar errors in the readme file :-(
|
|
64 |
|
|
65 |
|
|
66 |
License
|
|
67 |
*******
|
|
68 |
|
|
69 |
Copyright (C) 2000 by Francesco Zappa Nardelli
|
|
70 |
|
|
71 |
Permission is hereby granted, free of charge, to any person obtaining
|
|
72 |
a copy of this software and associated documentation files (the
|
|
73 |
"Software"), to deal in the Software without restriction, including
|
|
74 |
without limitation the rights to use, copy, modify, merge, publish,
|
|
75 |
distribute, sublicense, and/or sell copies of the Software, and to
|
|
76 |
permit persons to whom the Software is furnished to do so, subject to
|
|
77 |
the following conditions:
|
|
78 |
|
|
79 |
The above copyright notice and this permission notice shall be
|
|
80 |
included in all copies or substantial portions of the Software.
|
|
81 |
|
|
82 |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
83 |
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
84 |
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
85 |
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
86 |
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
87 |
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
88 |
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
89 |
|
|
90 |
|
|
91 |
Credits
|
|
92 |
*******
|
|
93 |
|
|
94 |
Keith Packard wrote the pcf driver found in XFree86. His work is at
|
|
95 |
the same time the specification and the sample implementation of the
|
|
96 |
PCF format. Undoubtedly, this driver is inspired from his work.
|