[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] master 48fd5bb: Documentation updates.
From: |
Werner LEMBERG |
Subject: |
[freetype2] master 48fd5bb: Documentation updates. |
Date: |
Tue, 27 Dec 2016 09:20:35 +0000 (UTC) |
branch: master
commit 48fd5bb2b6a1eb8cff453e72eb58c9223c03095d
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>
Documentation updates.
* docs/CHANGES: Add missing information.
* docs/formats.txt: Rewritten and updated.
---
ChangeLog | 8 ++
docs/CHANGES | 27 ++++++
docs/formats.txt | 279 +++++++++++++++++++++++++++++-------------------------
3 files changed, 185 insertions(+), 129 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index c6a336f..133ce21 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2016-12-27 Werner Lemberg <address@hidden>
+ Documentation updates.
+
+ * docs/CHANGES: Add missing information.
+
+ * docs/formats.txt: Rewritten and updated.
+
+2016-12-27 Werner Lemberg <address@hidden>
+
[truetype, type1] Implement `FT_Get_Var_Design_Coordinates'.
* src/truetype/ttgxvar.c (TT_Get_Var_Design): Implement.
diff --git a/docs/CHANGES b/docs/CHANGES
index 5b50fa2..dccdb6e 100644
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -3,6 +3,15 @@ CHANGES BETWEEN 2.7 and 2.7.1
I. IMPORTANT CHANGES
+ - Support for the new CFF2 font format as introduced with OpenType
+ 1.8 has been contributed by Dave Arnolds from Adobe.
+
+ - Preliminary support for variation fonts as specified in OpenType
+ 1.8 (in addition to the already existing support for Adobe's MM
+ and Apple's GX formats). Dave Arnolds contributed handling of
+ advance width change variation; more will come in the next
+ version.
+
II. IMPORTANT BUG FIXES
@@ -37,9 +46,27 @@ CHANGES BETWEEN 2.7 and 2.7.1
blend coordinates of the currently selected variation instance
has been added to the Multiple Masters interface.
+ - A new function `FT_Get_Var_Design_Coordinates' to retrieve the
+ design coordinates of the currently selected variation instance
+ has been added to the Multiple Masters interface.
+
- A new load flag `FT_LOAD_BITMAP_METRICS_ONLY' to retrieve bitmap
information without loading the (embedded) bitmap itself.
+ - Retrieving advance widths from bitmap strikes (using
+ `FT_Get_Advance' and `FT_Get_Advances') have been sped up.
+
+ - The usual round of fuzzer fixes to better reject malformed
+ fonts.
+
+ - The `ftmulti' demo program can now switch engines with key `H'.
+
+ - The `ftstring' demo program can now show some built-in,
+ non-latin sample strings (to be selected with the TAB key).
+
+ - The `ftview' demo program can now switch between a font's
+ charmaps using the TAB key.
+
======================================================================
diff --git a/docs/formats.txt b/docs/formats.txt
index ae8c95f..2181352 100644
--- a/docs/formats.txt
+++ b/docs/formats.txt
@@ -1,141 +1,161 @@
-This file contains a list of various font formats. It gives the
+This file contains a list of various font formats. It gives the
reference document and whether it is supported in FreeType 2.
+Table fields
+------------
- file type:
- The only special case is `MAC'; on older Mac OS versions, a `file'
- is stored as a data and a resource fork, this is, within two
- separate data chunks. In all other cases, the font data is stored
- in a single file.
-
- wrapper format:
- The format used to represent the font data. In the table below it
- is used only if the font format differs. Possible values are `SFNT'
- (binary), `PS' (a text header, followed by binary or text data),
- `LZW' (compressed with either `gzip' or `compress'), and
+ wrapper format
+ The format used to represent the font data. In the table below it
+ is used only if the font format differs. Possible values are
+ `SFNT' (binary), `PS' (a text header, followed by binary or text
+ data), `LZW' (compressed with either `gzip' or `compress'), and
`BZ2' (compressed with `bzip2`).
- font format:
- How the font is to be accessed, possibly after converting the file
- type and wrapper format into a generic form. Bitmap formats are
- `BDF', `PCF', and one form of `WINFNT'; all others are vector
- formats.
-
- font type:
- Sub-formats of the font format. `SBIT' and `MACSBIT' are bitmap
- formats, `MM' and `VAR' support optical axes.
-
- glyph access:
- If not specified, the glyph access is `standard' to the font format.
- Values are `CID' for CID-keyed fonts, `SYNTHETIC' for fonts which
- are modified versions of other fonts by means of a transformation
- matrix, `COLLECTION' for collecting multiple fonts (sharing most of
- the data) into a single file, and `TYPE_0' for PS fonts which are to
- be accessed in a tree-like structure.
-
- FreeType driver:
- The module in the FreeType library which handles the specific font
- format. A missing entry means that FreeType doesn't support the
+ font format
+ How the font is to be accessed, possibly after converting the file
+ type and wrapper format into a generic form. Bitmap formats are
+ `BDF', `PCF', and one form of `WINFNT'; all others are vector
+ formats. `PS' indicates third-order, `TT' second-order Bézier
+ curves.
+
+ font type
+ Sub-formats of the font format. `SBIT' and `MACSBIT' are bitmap
+ formats, `MM' and `VAR' support optical axes. `CFF2' supports
+ optical axes also.
+
+ glyph access
+ If not specified, the glyph access is `standard' to the font
+ format. Values are `CID' for CID-keyed fonts, `SYNTHETIC' for
+ fonts that are modified versions of other fonts by means of a
+ transformation matrix, and `TYPE_0' for PS fonts which are to be
+ accessed in a tree-like structure.
+
+ FreeType driver
+ The module in the FreeType library which handles the specific font
+ format. A missing entry means that FreeType doesn't support the
font format (yet).
-Please send additions and/or corrections to address@hidden or to the
-FreeType developer's list at address@hidden (for subscribers
-only). If you can provide a font example for a format which isn't
-supported yet please send a mail too.
-
-
-file wrapper font font glyph FreeType reference
-type format format type access driver documents
-----------------------------------------------------------------------------
-
---- --- BDF --- --- bdf 5005.BDF_Spec.pdf, X11
-
-
---- SFNT PS TYPE_1 --- type1 Type 1 GX Font Format
- (for the Mac) [3]
-MAC SFNT PS TYPE_1 --- type1 Type 1 GX Font Format
- (for the Mac) [3]
---- SFNT PS TYPE_1 CID cid 5180.sfnt.pdf (for the Mac)
- [3]
-MAC SFNT PS TYPE_1 CID cid 5180.sfnt.pdf (for the Mac)
- [3]
---- SFNT PS CFF --- cff OT spec, 5176.CFF.pdf
- (`OTTO' format)
-MAC SFNT PS CFF --- cff OT spec, 5176.CFF.pdf
- (`OTTO' format)
---- SFNT PS CFF CID cff OT spec, 5176.CFF.pdf
-MAC SFNT PS CFF CID cff OT spec, 5176.CFF.pdf
---- SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
-MAC SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
---- SFNT TT SBIT --- sfnt XFree86 (bitmaps only;
- with `head' table)
---- SFNT TT MACSBIT --- sfnt OT spec (for the Mac;
- bitmaps only; `bhed' table)
-MAC SFNT TT MACSBIT --- sfnt OT spec (for the Mac;
- bitmaps only; `bhed' table)
---- SFNT TT --- --- truetype OT spec (`normal' TT font)
-MAC SFNT TT --- --- truetype OT spec (`normal' TT font)
-MAC SFNT TT VAR --- truetype GX spec (`?var' tables)
---- SFNT TT --- COLLECTION truetype OT spec (this can't be CFF)
-MAC SFNT TT --- COLLECTION truetype OT spec (this can't be CFF)
-
-
---- --- PS TYPE_1 --- type1 T1_SPEC.pdf
- (`normal' Type 1 font)
-MAC --- PS TYPE_1 --- type1 T1_SPEC.pdf
- (`normal' Type 1 font)
---- --- PS TYPE_1 CID cid PLRM.pdf (CID Font Type 0;
- Type 9 font)
---- --- PS MM --- type1 5015.Type1_Supp.pdf
- (Multiple Masters)
---- --- PS CFF --- cff 5176.CFF.pdf (`pure' CFF)
---- --- PS CFF CID cff 5176.CFF.pdf (`pure' CFF)
---- --- PS CFF SYNTHETIC --- 5176.CFF.pdf (`pure' CFF)
---- PS PS CFF --- --- PLRM.pdf (Type 2) [1]
---- PS PS CFF CID --- PLRM.pdf (Type 2) [1]
---- PS PS CFF SYNTHETIC --- PLRM.pdf (Type 2) [1]
---- --- PS --- TYPE_0 --- PLRM.pdf
---- --- PS TYPE_3 --- --- PLRM.pdf (never supported)
---- --- PS TYPE_3 CID --- PLRM.pdf (CID Font Type 1;
- Type 10 font; never supported)
---- PS PS TYPE_14 --- --- PLRM.pdf (Chameleon font;
- Type 14 font; never supported?)
---- --- PS TYPE_32 CID --- PLRM.pdf (CID Font Type 4;
- Type 32 font; never supported?)
---- PS TT --- --- type42 5012.Type42_Spec.pdf
- (Type 42 font)
---- PS TT --- CID --- PLRM.pdf (CID Font Type 2;
- Type 11 font)
-
-
---- ? ? CEF ? cff ?
-
-
---- --- PCF --- --- pcf X11 [4]
---- LZW PCF --- --- pcf X11 [4]
---- BZ2 PCF --- --- pcf X11 [4]
-
-
---- --- PFR PFR0 --- pfr [2]
---- --- PFR PFR1 --- --- (undocumented, proprietary;
- probably never supported)
-
-
---- --- WINFNT --- --- winfonts Windows developer's notes [5]
---- --- WINFNT VECTOR --- --- Windows developer's notes [5]
-
-
-[1] Support should be rather simple since this is identical to `CFF' but
- in a PS wrapper.
+Notes
+-----
+
+ The SFNT container format also provides `collections' (usually
+ having the file extension `.ttc' or `.otc'). A collection contains
+ multiple font faces that share some tables to avoid redundancy, thus
+ reducing the file size. In FreeType, elements of a collection can
+ be accessed with a proper face index.
+
+ Both the GX and the OpenType 1.8 variation fonts provide `named
+ instances'. FreeType maps them to face indices (they can also be
+ accessed with the standard MM interface).
+
+ Other font formats (not using the SFNT wrapper) also provide
+ multiple faces within one file; they are marked with an asterisk
+ (`*') in the table below.
+
+ FreeType can be configured to support Mac files (on older Mac OS
+ versions, a `file' is stored as a data and a resource fork, this is,
+ within two separate data chunks). If a file can't be opened as a
+ font, FreeType then checks whether it is a resource fork, trying to
+ extract the contained font data from either a `POST' or `sfnt'
+ resource.
+
+
+Please send additions and/or corrections to address@hidden or to the
+FreeType developer's list at address@hidden (for
+subscribers only). If you can provide a font example for a format
+which isn't supported yet please send a mail too.
+
+
+ wrapper font font glyph FreeType reference
+ format format type access driver documents
+ -----------------------------------------------------------------------------
+
+ --- BDF --- --- bdf 5005.BDF_Spec.pdf, X11
+
+
+ SFNT PS TYPE_1 --- type1 Type 1 GX Font Format
+ (for the Mac) [3]
+ SFNT PS TYPE_1 CID cid 5180.sfnt.pdf (for the Mac)
+ [3]
+ SFNT PS CFF --- cff OT spec, 5176.CFF.pdf
+ (`OTTO' format)
+ SFNT PS CFF CID cff OT spec, 5176.CFF.pdf
+ SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
+ SFNT PS CFF2 --- cff OT spec 1.8
+
+ SFNT TT SBIT --- sfnt XFree86 (bitmaps only;
+ with `head' table)
+ SFNT TT MACSBIT --- sfnt OT spec (for the Mac;
+ bitmaps only; `bhed' table)
+ SFNT TT --- --- truetype OT spec (`normal' TT font)
+ SFNT TT VAR --- truetype GX spec (`?var' tables)
+ SFNT TT VAR --- truetype OT spec 1.8
+ (`?var' + `?VAR' tables)
+
+
+ --- PS TYPE_1 --- type1 T1_SPEC.pdf
+ (`normal' Type 1 font)
+ --- PS TYPE_1 CID cid PLRM.pdf (CID Font Type 0;
+ Type 9 font)
+ --- PS MM --- type1 5015.Type1_Supp.pdf
+ (Multiple Masters)
+ --- PS CFF --- cff 5176.CFF.pdf (`pure' CFF)
+ --- PS* CFF CID cff 5176.CFF.pdf (`pure' CFF)
+ --- PS CFF SYNTHETIC --- 5176.CFF.pdf (`pure' CFF)
+ --- PS CFF/MM --- cff old 5167.CFF.pdf (`pure' CFF)
+ [3]
+ --- PS* CFF/MM CID cff old 5167.CFF.pdf (`pure' CFF)
+ [3]
+ --- PS CFF/MM SYNTHETIC --- old 5167.CFF.pdf (`pure' CFF)
+ [3]
+ PS PS CFF --- --- PLRM.pdf (Type 2) [1]
+ PS PS* CFF CID --- PLRM.pdf (Type 2) [1]
+ PS PS CFF SYNTHETIC --- PLRM.pdf (Type 2) [1]
+ PS PS CFF/MM --- --- PLRM.pdf (Type 2) [1]
+ PS PS* CFF/MM CID --- PLRM.pdf (Type 2) [1]
+ PS PS CFF/MM SYNTHETIC --- PLRM.pdf (Type 2) [1]
+ --- PS --- TYPE_0 --- PLRM.pdf
+ --- PS TYPE_3 --- --- PLRM.pdf (never supported)
+ --- PS TYPE_3 CID --- PLRM.pdf (CID Font Type 1;
+ Type 10 font; never supported)
+ PS PS TYPE_14 --- --- PLRM.pdf (Chameleon font;
+ Type 14 font; never supported?)
+ --- PS TYPE_32 CID --- PLRM.pdf (CID Font Type 4;
+ Type 32 font; never supported?)
+ PS TT --- --- type42 5012.Type42_Spec.pdf
+ (Type 42 font)
+ PS TT --- CID --- PLRM.pdf (CID Font Type 2;
+ Type 11 font)
+
+
+ ? ? CEF ? cff ?
+
+
+ --- PCF --- --- pcf X11 [4]
+ LZW PCF --- --- pcf X11 [4]
+ BZ2 PCF --- --- pcf X11 [4]
+
+
+ --- PFR* PFR0 --- pfr [2]
+ --- PFR PFR1 --- --- (undocumented, proprietary;
+ probably never supported)
+
+
+ --- WINFNT* --- --- winfonts Windows developer's notes [5]
+ --- WINFNT VECTOR --- --- Windows developer's notes [5]
+
+
+[1] Support should be rather simple since this is identical to `CFF'
+ but in a PS wrapper.
[2] Official PFR specification:
http://www.bitstream.com/categories/developer/truedoc/pfrspec.html
http://www.bitstream.com/categories/developer/truedoc/pfrspec1.2.pdf
- The syntax of the auxiliary data is not defined there, but is
- partially defined in MHP 1.0.3 (also called ETSI TS 101812 V1.3.1)
+ The syntax of the auxiliary data is not defined there, but is
+ partially defined in MHP 1.0.3 (also called ETSI TS 101812 V1.3.1)
section 7.4.
http://www.etsi.org/
@@ -143,7 +163,8 @@ MAC --- PS TYPE_1 --- type1 T1_SPEC.pdf
(free registration required).
-[3] Support is rudimentary currently; some tables are not loaded yet.
+[3] Support is rudimentary currently; some tables or data are not
+ loaded yet.
[4] See
@@ -151,10 +172,10 @@ MAC --- PS TYPE_1 --- type1
T1_SPEC.pdf
Elias Israel, Erik Fortune, Digital Press, 1992
ISBN 1-55558-096-3
- for a specification given in Appendix D on pgs. 436-450. However,
- this information might be out of date; unfortunately, there is no
- PCF specification available online, and this book is out of print.
- George Williams deduced the font format from the X11 sources and
+ for a specification given in Appendix D on pgs. 436-450. However,
+ this information might be out of date; unfortunately, there is no
+ PCF specification available online, and this book is out of print.
+ George Williams deduced the font format from the X11 sources and
documented it for his FontForge font editor:
http://fontforge.github.io/pcf-format.html
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] master 48fd5bb: Documentation updates.,
Werner LEMBERG <=