|
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. |