small documentation update
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
diff --git a/CHANGES b/CHANGES
index aaed570..674907d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -12,7 +12,7 @@ LATEST CHANGES BETWEEN 2.0.2 and 2.0.1
the definition of the TT_CONFIG_OPTION_BYTECODE_INTERPRETER macro
in the file "include/freetype/config/ftoption.h"
- - The CFF driver has been improved by Tom Kacvinsky:
+ - The CFF driver has been improved by Tom Kacvinsky and Sander van der Wal:
* support for "seac" emulation
* support for "dotsection"
@@ -22,13 +22,15 @@ LATEST CHANGES BETWEEN 2.0.2 and 2.0.1
Type 1 fonts converted to the CFF formats by Adobe Acrobat.
- - the Type 1 driver was also improved by Tom:
+ - the Type 1 driver was also improved by Tom & others:
* better EM size computation
+
* better support for synthetic (transformed) fonts
+
* the Type 1 driver returns the charstrings corresponding to
each glyph in the "glyph->control_data" field after a call to
- "FT_Load_Glyph"
+ "FT_Load_Glyph" (thanks Ha Shao)
- various other bugfixes, including the following:
diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h
index 9bd80bf..9ae157d 100644
--- a/include/freetype/freetype.h
+++ b/include/freetype/freetype.h
@@ -824,33 +824,121 @@ FT_BEGIN_HEADER
/* */
+ /***********************************************************************
+ *
+ * @macro: FT_HAS_HORIZONTAL (face)
+ *
+ * @description:
+ * a macro that returns true whenever a face object contains horizontal
+ * metrics. (this is true for all font formats though).
+ *
+ * @also:
+ * @FT_HAS_VERTICAL can be used to check for vertical metrics.
+ */
#define FT_HAS_HORIZONTAL( face ) \
( face->face_flags & FT_FACE_FLAG_HORIZONTAL )
+ /***********************************************************************
+ *
+ * @macro: FT_HAS_VERTICAL (face)
+ *
+ * @description:
+ * a macro that returns true whenever a face object contains vertical
+ * metrics.
+ */
#define FT_HAS_VERTICAL( face ) \
( face->face_flags & FT_FACE_FLAG_VERTICAL )
+ /***********************************************************************
+ *
+ * @macro: FT_HAS_KERNING (face)
+ *
+ * @description:
+ * a macro that returns true whenever a face object contains kerning
+ * data that can be accessed with @FT_Get_Kerning
+ */
#define FT_HAS_KERNING( face ) \
( face->face_flags & FT_FACE_FLAG_KERNING )
+ /***********************************************************************
+ *
+ * @macro: FT_IS_SCALABLE (face)
+ *
+ * @description:
+ * a macro that returns true whenever a face object contains a scalable
+ * font face. I.e., true for TrueType, Type 1, CID and OpenType/CFF
+ * font formats.
+ */
#define FT_IS_SCALABLE( face ) \
( face->face_flags & FT_FACE_FLAG_SCALABLE )
+
+ /***********************************************************************
+ *
+ * @macro: FT_IS_SFNT (face)
+ *
+ * @description:
+ * a macro that returns true whenever a face object contains a font whose
+ * format is based on the SFNT storage scheme. This usually means:
+ * TrueType fonts, OpenType fonts, as well as SFNT-based embedded bitmap
+ * fonts.
+ *
+ * When this macro is true, all functions defined in @FT_SFNT_NAMES_H
+ * and @FT_TRUETYPE_TABLES_H are available
+ */
#define FT_IS_SFNT( face ) \
( face->face_flags & FT_FACE_FLAG_SFNT )
+ /***********************************************************************
+ *
+ * @macro: FT_IS_FIXED_WIDTH (face)
+ *
+ * @description:
+ * a macro that returns true whenever a face object contains a font
+ * face that contains fixed-width (or "monospace", "fixed-pitch", etc..)
+ * glyphs.
+ */
#define FT_IS_FIXED_WIDTH( face ) \
( face->face_flags & FT_FACE_FLAG_FIXED_WIDTH )
+
+ /***********************************************************************
+ *
+ * @macro: FT_IS_FIXED_SIZES (face)
+ *
+ * @description:
+ * a macro that returns true whenever a face object contains some
+ * embedded bitmaps. See the 'fixed_sizes' field of the @FT_FaceRec
+ * structure.
+ */
#define FT_HAS_FIXED_SIZES( face ) \
( face->face_flags & FT_FACE_FLAG_FIXED_SIZES )
+ /* */
+
#define FT_HAS_FAST_GLYPHS( face ) \
( face->face_flags & FT_FACE_FLAG_FAST_GLYPHS )
+ /***********************************************************************
+ *
+ * @macro: FT_HAS_GLYPH_NAMES (face)
+ *
+ * @description:
+ * a macro that returns true whenever a face object contains some
+ * glyph names that can be accessed through @FT_Get_Glyph_Names
+ */
#define FT_HAS_GLYPH_NAMES( face ) \
( face->face_flags & FT_FACE_FLAG_GLYPH_NAMES )
+ /***********************************************************************
+ *
+ * @macro: FT_HAS_MULTIPLE_MASTERS (face)
+ *
+ * @description:
+ * a macro that returns true whenever a face object contains some
+ * multiple masters. The functions provided by @FT_MULTIPLE_MASTERS_H
+ * are then available to choose the exact design you want.
+ */
#define FT_HAS_MULTIPLE_MASTERS( face ) \
( face->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS )